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>
|
||||
<downloadUrl>https://gitgud.io/c0ffeeeeeeee/rimworld-animations</downloadUrl>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<packageId>erdelf.HumanoidAlienRaces</packageId>
|
||||
<displayName>Humanoid Alien Races</displayName>
|
||||
<downloadUrl>https://github.com/erdelf/AlienRaces</downloadUrl>
|
||||
</li>
|
||||
</modDependencies>
|
||||
<loadBefore>
|
||||
<li>Dubwise.DubsApparelTweaks</li>
|
||||
|
@ -40,7 +46,7 @@
|
|||
<description>
|
||||
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
|
||||
- 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"?>
|
||||
<Manifest>
|
||||
<version>2.0.0</version>
|
||||
<version>2.0.1</version>
|
||||
<downloadUri>https://gitgud.io/AbstractConcept/rimworld-animations-patch</downloadUri>
|
||||
</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" ?>
|
||||
<Patch>
|
||||
|
||||
<Operation Class="PatchOperationReplace">
|
||||
<xpath>/Defs/BodyDef/corePart/parts/li[def = "Genitals"]/groups</xpath>
|
||||
<value>
|
||||
<groups>
|
||||
<li>Legs</li>
|
||||
<li>GenitalsBPG</li>
|
||||
</groups>
|
||||
</value>
|
||||
|
||||
<!-- Moves genitals to the legs -->
|
||||
<Operation Class="PatchOperationConditional">
|
||||
<xpath>Defs/BodyDef/corePart/parts/li[def = "Genitals"]/groups</xpath>
|
||||
<match Class="PatchOperationReplace">
|
||||
<xpath>Defs/BodyDef/corePart/parts/li[def = "Genitals"]/groups</xpath>
|
||||
<value>
|
||||
<groups>
|
||||
<li>Legs</li>
|
||||
<li>GenitalsBPG</li>
|
||||
</groups>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
|
||||
<Operation Class="PatchOperationReplace">
|
||||
<xpath>/Defs/BodyDef/corePart/parts/li[def = "Anus"]/groups</xpath>
|
||||
<value>
|
||||
<groups>
|
||||
<li>Legs</li>
|
||||
<li>AnusBPG</li>
|
||||
</groups>
|
||||
</value>
|
||||
<!-- Moves anus to the legs -->
|
||||
<Operation Class="PatchOperationConditional">
|
||||
<xpath>Defs/BodyDef/corePart/parts/li[def = "Anus"]/groups</xpath>
|
||||
<match Class="PatchOperationReplace">
|
||||
<xpath>Defs/BodyDef/corePart/parts/li[def = "Anus"]/groups</xpath>
|
||||
<value>
|
||||
<groups>
|
||||
<li>Legs</li>
|
||||
<li>AnusBPG</li>
|
||||
</groups>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
|
||||
</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>
|
||||
</mods>
|
||||
<match Class="PatchOperationSequence">
|
||||
<success>Normal</success>
|
||||
<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>
|
||||
<value>
|
||||
<inFrontOfBody>false</inFrontOfBody>
|
||||
</value>
|
||||
<match Class="PatchOperationReplace">
|
||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Anus"]/inFrontOfBody</xpath>
|
||||
<value>
|
||||
<inFrontOfBody>false</inFrontOfBody>
|
||||
</value>
|
||||
</match>
|
||||
</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>
|
||||
<match Class="PatchOperationRemove">
|
||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Anus"]/hiddenUnderApparelFor</xpath>
|
||||
</match>
|
||||
</li>
|
||||
|
||||
|
||||
</operations>
|
||||
</match>
|
||||
</Operation>
|
||||
|
|
|
@ -5,38 +5,52 @@
|
|||
<li>RimNudeWorld</li>
|
||||
</mods>
|
||||
<match Class="PatchOperationSequence">
|
||||
<success>Normal</success>
|
||||
<operations>
|
||||
|
||||
<!-- 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>
|
||||
<match Class="PatchOperationRemove">
|
||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[bodyPart="Genitals"]/hiddenUnderApparelFor</xpath>
|
||||
</match>
|
||||
</li>
|
||||
|
||||
<li Class="PatchOperationRemove">
|
||||
<li Class="PatchOperationConditional">
|
||||
<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>
|
||||
|
||||
|
||||
<!-- 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>
|
||||
<value>
|
||||
<layerOffset>-0.291</layerOffset>
|
||||
</value>
|
||||
<match Class="PatchOperationReplace">
|
||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/south/layerOffset</xpath>
|
||||
<value>
|
||||
<layerOffset>-0.291</layerOffset>
|
||||
</value>
|
||||
</match>
|
||||
</li>
|
||||
|
||||
<li Class="PatchOperationReplace">
|
||||
<li Class="PatchOperationConditional">
|
||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/north/layerOffset</xpath>
|
||||
<value>
|
||||
<layerOffset>-0.294</layerOffset>
|
||||
</value>
|
||||
<match Class="PatchOperationReplace">
|
||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/north/layerOffset</xpath>
|
||||
<value>
|
||||
<layerOffset>-0.294</layerOffset>
|
||||
</value>
|
||||
</match>
|
||||
</li>
|
||||
|
||||
<li Class="PatchOperationReplace">
|
||||
<li Class="PatchOperationConditional">
|
||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/east/layerOffset</xpath>
|
||||
<value>
|
||||
<layerOffset>-0.291</layerOffset>
|
||||
</value>
|
||||
<match Class="PatchOperationReplace">
|
||||
<xpath>Defs/ThingDef/alienRace/generalSettings/alienPartGenerator/bodyAddons/li[hediffGraphics/RJW_pregnancy]/offsets/north/layerOffset</xpath>
|
||||
<value>
|
||||
<layerOffset>-0.291</layerOffset>
|
||||
</value>
|
||||
</match>
|
||||
</li>
|
||||
|
||||
</operations>
|
||||
|
|
Binary file not shown.
|
@ -11,7 +11,7 @@ using Verse;
|
|||
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -320,12 +320,13 @@ namespace Rimworld_Animations_Patch
|
|||
// Clear all partners out when sex ends to prevent issues with threesome animations
|
||||
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)
|
||||
{ participant.jobs.EndCurrentJob(JobCondition.Succeeded, false, true); }
|
||||
|
||||
(__instance.Partner?.jobs.curDriver as JobDriver_SexBaseReciever).parteners.Clear();
|
||||
{
|
||||
if (__instance.pawn != participant)
|
||||
{ participant.jobs.EndCurrentJob(JobCondition.Succeeded, false, true); }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue