mirror of
https://gitgud.io/AbstractConcept/rimworld-animations-patch.git
synced 2024-08-15 00:43:27 +00:00
v2.0.1
Change log v 2.0.1 - Fixed issue with a hand animation calling a missing method - Fixed errored that was triggering at the end of sex - Dependency on Humanoid Alien Race is now listed and enforced in the mod load screen - Made XML patching more robust
This commit is contained in:
parent
ae95e34137
commit
767317773b
15 changed files with 157 additions and 127 deletions
Binary file not shown.
|
@ -24,6 +24,12 @@
|
||||||
<displayName>Rimworld-Animations</displayName>
|
<displayName>Rimworld-Animations</displayName>
|
||||||
<downloadUrl>https://gitgud.io/c0ffeeeeeeee/rimworld-animations</downloadUrl>
|
<downloadUrl>https://gitgud.io/c0ffeeeeeeee/rimworld-animations</downloadUrl>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<packageId>erdelf.HumanoidAlienRaces</packageId>
|
||||||
|
<displayName>Humanoid Alien Races</displayName>
|
||||||
|
<downloadUrl>https://github.com/erdelf/AlienRaces</downloadUrl>
|
||||||
|
</li>
|
||||||
</modDependencies>
|
</modDependencies>
|
||||||
<loadBefore>
|
<loadBefore>
|
||||||
<li>Dubwise.DubsApparelTweaks</li>
|
<li>Dubwise.DubsApparelTweaks</li>
|
||||||
|
@ -40,7 +46,7 @@
|
||||||
<description>
|
<description>
|
||||||
A patch for RimWorld Animations and RJW, adding some additional functions and tweaks
|
A patch for RimWorld Animations and RJW, adding some additional functions and tweaks
|
||||||
|
|
||||||
This mod requires both RimWorld Animations and RJW to function - RimNudeWorld isn't required, but it is recommended
|
This mod requires RimWorld Animations, RJW and Humanoid Alien Races to function - RimNudeWorld isn't required, but it is recommended
|
||||||
|
|
||||||
Here's a brief overview of what's included in this mod
|
Here's a brief overview of what's included in this mod
|
||||||
- 12 animations for casual sex
|
- 12 animations for casual sex
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
Change log v 2.0.0
|
|
||||||
- Initial re-release (for RimWorld 1.4)
|
|
8
About/Changelog_v2.0.1.txt
Normal file
8
About/Changelog_v2.0.1.txt
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
Change log v 2.0.1
|
||||||
|
- Fixed issue with a hand animation calling a missing method
|
||||||
|
- Fixed errored that was triggering at the end of sex
|
||||||
|
- Dependency on Humanoid Alien Race is now listed and enforced in the mod load screen
|
||||||
|
- Made XML patching more robust
|
||||||
|
|
||||||
|
Change log v 2.0.0
|
||||||
|
- Initial re-release (for RimWorld 1.4)
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<Manifest>
|
<Manifest>
|
||||||
<version>2.0.0</version>
|
<version>2.0.1</version>
|
||||||
<downloadUri>https://gitgud.io/AbstractConcept/rimworld-animations-patch</downloadUri>
|
<downloadUri>https://gitgud.io/AbstractConcept/rimworld-animations-patch</downloadUri>
|
||||||
</Manifest>
|
</Manifest>
|
|
@ -1,77 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<Patch>
|
|
||||||
<Operation Class="PatchOperationSequence">
|
|
||||||
<success>Normal</success>
|
|
||||||
<operations>
|
|
||||||
|
|
||||||
|
|
||||||
<li Class="PatchOperationAdd">
|
|
||||||
<success>Always</success>
|
|
||||||
<xpath>Defs/ThingDef[race][not(comps)]</xpath>
|
|
||||||
<value>
|
|
||||||
<comps />
|
|
||||||
</value>
|
|
||||||
</li>
|
|
||||||
<li Class="PatchOperationAdd">
|
|
||||||
<success>Always</success>
|
|
||||||
<xpath>Defs/AlienRace.ThingDef_AlienRace[not(comps)]</xpath>
|
|
||||||
<value>
|
|
||||||
<comps />
|
|
||||||
</value>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li Class="PatchOperationAdd">
|
|
||||||
<xpath>Defs/ThingDef[@Name="BasePawn"]/comps</xpath>
|
|
||||||
<value>
|
|
||||||
<li Class="Rimworld_Animations_Patch.CompProperties_PawnSexData" />
|
|
||||||
</value>
|
|
||||||
</li>
|
|
||||||
<li Class="PatchOperationAdd">
|
|
||||||
<xpath>Defs/AlienRace.ThingDef_AlienRace/comps</xpath>
|
|
||||||
<value>
|
|
||||||
<li Class="Rimworld_Animations_Patch.CompProperties_PawnSexData" />
|
|
||||||
</value>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li Class="PatchOperationConditional">
|
|
||||||
<xpath>/Defs/ThingDef[thingClass="Apparel"]/comps</xpath>
|
|
||||||
<match Class="PatchOperationAdd">
|
|
||||||
<xpath>Defs/ThingDef[thingClass="Apparel"]/comps</xpath>
|
|
||||||
<value>
|
|
||||||
<li Class="Rimworld_Animations_Patch.CompProperties_ApparelVisibility">
|
|
||||||
<compClass>Rimworld_Animations_Patch.CompApparelVisibility</compClass>
|
|
||||||
</li>
|
|
||||||
</value>
|
|
||||||
</match>
|
|
||||||
<nomatch Class="PatchOperationAdd">
|
|
||||||
<xpath>/Defs/ThingDef[thingClass="Apparel"]</xpath>
|
|
||||||
<value>
|
|
||||||
<comps>
|
|
||||||
<li Class="Rimworld_Animations_Patch.CompProperties_ApparelVisibility">
|
|
||||||
<compClass>Rimworld_Animations_Patch.CompApparelVisibility</compClass>
|
|
||||||
</li>
|
|
||||||
</comps>
|
|
||||||
</value>
|
|
||||||
</nomatch>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!--<li Class="PatchOperationConditional">
|
|
||||||
<xpath>/Defs/ThingDef[thingClass="Apparel"]/apparel/bodyPartGroups/Torso</xpath>
|
|
||||||
<match Class="PatchOperationInsert">
|
|
||||||
<xpath>/Defs/ThingDef[thingClass="Apparel"]/apparel/bodyPartGroups/Torso</xpath>
|
|
||||||
<value>
|
|
||||||
<li>ChestBPG</li>
|
|
||||||
</value>
|
|
||||||
</match>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li Class="PatchOperationInsert">
|
|
||||||
<xpath>/Defs/ThingDef[thingClass="Apparel"]/apparel/bodyPartGroups/Legs</xpath>
|
|
||||||
<value>
|
|
||||||
<li>GenitalsBPG</li>
|
|
||||||
</value>
|
|
||||||
</li>-->
|
|
||||||
|
|
||||||
</operations>
|
|
||||||
</Operation>
|
|
||||||
</Patch>
|
|
|
@ -1,24 +1,32 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<Patch>
|
<Patch>
|
||||||
|
|
||||||
<Operation Class="PatchOperationReplace">
|
<!-- Moves genitals to the legs -->
|
||||||
<xpath>/Defs/BodyDef/corePart/parts/li[def = "Genitals"]/groups</xpath>
|
<Operation Class="PatchOperationConditional">
|
||||||
<value>
|
<xpath>Defs/BodyDef/corePart/parts/li[def = "Genitals"]/groups</xpath>
|
||||||
<groups>
|
<match Class="PatchOperationReplace">
|
||||||
<li>Legs</li>
|
<xpath>Defs/BodyDef/corePart/parts/li[def = "Genitals"]/groups</xpath>
|
||||||
<li>GenitalsBPG</li>
|
<value>
|
||||||
</groups>
|
<groups>
|
||||||
</value>
|
<li>Legs</li>
|
||||||
|
<li>GenitalsBPG</li>
|
||||||
|
</groups>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
</Operation>
|
</Operation>
|
||||||
|
|
||||||
<Operation Class="PatchOperationReplace">
|
<!-- Moves anus to the legs -->
|
||||||
<xpath>/Defs/BodyDef/corePart/parts/li[def = "Anus"]/groups</xpath>
|
<Operation Class="PatchOperationConditional">
|
||||||
<value>
|
<xpath>Defs/BodyDef/corePart/parts/li[def = "Anus"]/groups</xpath>
|
||||||
<groups>
|
<match Class="PatchOperationReplace">
|
||||||
<li>Legs</li>
|
<xpath>Defs/BodyDef/corePart/parts/li[def = "Anus"]/groups</xpath>
|
||||||
<li>AnusBPG</li>
|
<value>
|
||||||
</groups>
|
<groups>
|
||||||
</value>
|
<li>Legs</li>
|
||||||
|
<li>AnusBPG</li>
|
||||||
|
</groups>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
</Operation>
|
</Operation>
|
||||||
|
|
||||||
</Patch>
|
</Patch>
|
65
Patches/CompProperties.xml
Normal file
65
Patches/CompProperties.xml
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Patch>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationConditional">
|
||||||
|
<xpath>Defs/ThingDef[@Name="BasePawn"]/comps</xpath>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[@Name="BasePawn"]/comps</xpath>
|
||||||
|
<value>
|
||||||
|
<li Class="Rimworld_Animations_Patch.CompProperties_PawnSexData" />
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
<nomatch Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[@Name="BasePawn"]</xpath>
|
||||||
|
<value>
|
||||||
|
<comps>
|
||||||
|
<li Class="Rimworld_Animations_Patch.CompProperties_PawnSexData" />
|
||||||
|
</comps>
|
||||||
|
</value>
|
||||||
|
</nomatch>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationConditional">
|
||||||
|
<xpath>Defs/AlienRace.ThingDef_AlienRace</xpath>
|
||||||
|
<match Class="PatchOperationConditional">
|
||||||
|
<xpath>Defs/AlienRace.ThingDef_AlienRace/comps</xpath>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/AlienRace.ThingDef_AlienRace/comps</xpath>
|
||||||
|
<value>
|
||||||
|
<li Class="Rimworld_Animations_Patch.CompProperties_PawnSexData" />
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
<nomatch Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/AlienRace.ThingDef_AlienRace</xpath>
|
||||||
|
<value>
|
||||||
|
<comps>
|
||||||
|
<li Class="Rimworld_Animations_Patch.CompProperties_PawnSexData" />
|
||||||
|
</comps>
|
||||||
|
</value>
|
||||||
|
</nomatch>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationConditional">
|
||||||
|
<xpath>/Defs/ThingDef[thingClass="Apparel"]/comps</xpath>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[thingClass="Apparel"]/comps</xpath>
|
||||||
|
<value>
|
||||||
|
<li Class="Rimworld_Animations_Patch.CompProperties_ApparelVisibility">
|
||||||
|
<compClass>Rimworld_Animations_Patch.CompApparelVisibility</compClass>
|
||||||
|
</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
<nomatch Class="PatchOperationAdd">
|
||||||
|
<xpath>/Defs/ThingDef[thingClass="Apparel"]</xpath>
|
||||||
|
<value>
|
||||||
|
<comps>
|
||||||
|
<li Class="Rimworld_Animations_Patch.CompProperties_ApparelVisibility">
|
||||||
|
<compClass>Rimworld_Animations_Patch.CompApparelVisibility</compClass>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</value>
|
||||||
|
</nomatch>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
</Patch>
|
|
@ -5,20 +5,27 @@
|
||||||
<li>OTY_NUDE Unofficial Update</li>
|
<li>OTY_NUDE Unofficial Update</li>
|
||||||
</mods>
|
</mods>
|
||||||
<match Class="PatchOperationSequence">
|
<match Class="PatchOperationSequence">
|
||||||
<success>Normal</success>
|
|
||||||
<operations>
|
<operations>
|
||||||
|
|
||||||
<li Class="PatchOperationReplace">
|
<!-- Anus should be behind the pawn -->
|
||||||
|
<li Class="PatchOperationConditional">
|
||||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Anus"]/inFrontOfBody</xpath>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Anus"]/inFrontOfBody</xpath>
|
||||||
<value>
|
<match Class="PatchOperationReplace">
|
||||||
<inFrontOfBody>false</inFrontOfBody>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Anus"]/inFrontOfBody</xpath>
|
||||||
</value>
|
<value>
|
||||||
|
<inFrontOfBody>false</inFrontOfBody>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li Class="PatchOperationRemove">
|
<!-- Hiding these bodyparts is now handled by code -->
|
||||||
|
<li Class="PatchOperationConditional">
|
||||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Anus"]/hiddenUnderApparelFor</xpath>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Anus"]/hiddenUnderApparelFor</xpath>
|
||||||
|
<match Class="PatchOperationRemove">
|
||||||
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Anus"]/hiddenUnderApparelFor</xpath>
|
||||||
|
</match>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</operations>
|
</operations>
|
||||||
</match>
|
</match>
|
||||||
</Operation>
|
</Operation>
|
||||||
|
|
|
@ -5,38 +5,52 @@
|
||||||
<li>RimNudeWorld</li>
|
<li>RimNudeWorld</li>
|
||||||
</mods>
|
</mods>
|
||||||
<match Class="PatchOperationSequence">
|
<match Class="PatchOperationSequence">
|
||||||
<success>Normal</success>
|
|
||||||
<operations>
|
<operations>
|
||||||
|
|
||||||
<!-- Hiding these bodyparts is now handled by code -->
|
<!-- Hiding these bodyparts is now handled by code -->
|
||||||
<li Class="PatchOperationRemove">
|
<li Class="PatchOperationConditional">
|
||||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Genitals"]/hiddenUnderApparelFor</xpath>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Genitals"]/hiddenUnderApparelFor</xpath>
|
||||||
|
<match Class="PatchOperationRemove">
|
||||||
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Genitals"]/hiddenUnderApparelFor</xpath>
|
||||||
|
</match>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li Class="PatchOperationRemove">
|
<li Class="PatchOperationConditional">
|
||||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Chest"]/hiddenUnderApparelFor</xpath>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Chest"]/hiddenUnderApparelFor</xpath>
|
||||||
|
<match Class="PatchOperationRemove">
|
||||||
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Chest"]/hiddenUnderApparelFor</xpath>
|
||||||
|
</match>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<!-- Changes the layering of belly graphics so they are rendered first -->
|
<!-- Changes the layering of belly graphics so they are rendered first -->
|
||||||
<li Class="PatchOperationReplace">
|
<li Class="PatchOperationConditional">
|
||||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/south/layerOffset</xpath>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/south/layerOffset</xpath>
|
||||||
<value>
|
<match Class="PatchOperationReplace">
|
||||||
<layerOffset>-0.291</layerOffset>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/south/layerOffset</xpath>
|
||||||
</value>
|
<value>
|
||||||
|
<layerOffset>-0.291</layerOffset>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li Class="PatchOperationReplace">
|
<li Class="PatchOperationConditional">
|
||||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/north/layerOffset</xpath>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/north/layerOffset</xpath>
|
||||||
<value>
|
<match Class="PatchOperationReplace">
|
||||||
<layerOffset>-0.294</layerOffset>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/north/layerOffset</xpath>
|
||||||
</value>
|
<value>
|
||||||
|
<layerOffset>-0.294</layerOffset>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li Class="PatchOperationReplace">
|
<li Class="PatchOperationConditional">
|
||||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/east/layerOffset</xpath>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/east/layerOffset</xpath>
|
||||||
<value>
|
<match Class="PatchOperationReplace">
|
||||||
<layerOffset>-0.291</layerOffset>
|
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/north/layerOffset</xpath>
|
||||||
</value>
|
<value>
|
||||||
|
<layerOffset>-0.291</layerOffset>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</operations>
|
</operations>
|
||||||
|
|
Binary file not shown.
|
@ -11,7 +11,7 @@ using Verse;
|
||||||
|
|
||||||
namespace Rimworld_Animations_Patch
|
namespace Rimworld_Animations_Patch
|
||||||
{
|
{
|
||||||
public class Motion_StrokeGenitalsUpAndDown_FacingNS : HandMotion
|
public class StrokeGenitalsUpAndDown_FacingNS : HandMotion
|
||||||
{
|
{
|
||||||
public override Vector3 GetHandPosition(Pawn pawn, HandAnimationData handAnimationData, float baseAngle)
|
public override Vector3 GetHandPosition(Pawn pawn, HandAnimationData handAnimationData, float baseAngle)
|
||||||
{
|
{
|
||||||
|
|
|
@ -320,12 +320,13 @@ namespace Rimworld_Animations_Patch
|
||||||
// Clear all partners out when sex ends to prevent issues with threesome animations
|
// Clear all partners out when sex ends to prevent issues with threesome animations
|
||||||
public static void Postfix(ref JobDriver_SexBaseInitiator __instance)
|
public static void Postfix(ref JobDriver_SexBaseInitiator __instance)
|
||||||
{
|
{
|
||||||
if (__instance.Partner != null && __instance?.Partner?.jobs?.curDriver != null && __instance.Partner.Dead == false && __instance.Partner?.jobs.curDriver is JobDriver_SexBaseReciever)
|
if (__instance.Partner != null &&__instance.Partner.Dead == false && __instance.Partner?.jobs?.curDriver != null && __instance.Partner?.jobs?.curDriver is JobDriver_SexBaseReciever)
|
||||||
{
|
{
|
||||||
foreach (Pawn participant in (__instance.Partner?.jobs.curDriver as JobDriver_SexBaseReciever).parteners)
|
foreach (Pawn participant in (__instance.Partner?.jobs.curDriver as JobDriver_SexBaseReciever).parteners)
|
||||||
{ participant.jobs.EndCurrentJob(JobCondition.Succeeded, false, true); }
|
{
|
||||||
|
if (__instance.pawn != participant)
|
||||||
(__instance.Partner?.jobs.curDriver as JobDriver_SexBaseReciever).parteners.Clear();
|
{ participant.jobs.EndCurrentJob(JobCondition.Succeeded, false, true); }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue