From ce09ac0b2a308118432239dae0a1d92d8e958a81 Mon Sep 17 00:00:00 2001 From: Platinum Date: Thu, 7 May 2020 10:51:39 -0700 Subject: [PATCH 1/2] patch for dont shave your head --- Rimworld-Animations.csproj | 1 + .../Patches/HarmonyPatch_DontShaveYourHead.cs | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 Source/Patches/HarmonyPatch_DontShaveYourHead.cs diff --git a/Rimworld-Animations.csproj b/Rimworld-Animations.csproj index 01db0fe..593d1ec 100644 --- a/Rimworld-Animations.csproj +++ b/Rimworld-Animations.csproj @@ -91,6 +91,7 @@ + diff --git a/Source/Patches/HarmonyPatch_DontShaveYourHead.cs b/Source/Patches/HarmonyPatch_DontShaveYourHead.cs new file mode 100644 index 0000000..fa5a5cc --- /dev/null +++ b/Source/Patches/HarmonyPatch_DontShaveYourHead.cs @@ -0,0 +1,29 @@ +using HarmonyLib; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace Rimworld_Animations { + class HarmonyPatch_DontShaveYourHead { + + [StaticConstructorOnStartup] + public static class Patch_DontShaveYourHead { + + static Patch_DontShaveYourHead() { + try { + ((Action)(() => + { + if (LoadedModManager.RunningModsListForReading.Any(x => x.Name == "Don't Shave Your Head 1.0")) { + (new Harmony("rjw")).Patch(AccessTools.Method(AccessTools.TypeByName("DontShaveYourHead.Harmony_PawnRenderer"), "DrawHairReroute"), //typeof(ShowHair.Patch_PawnRenderer_RenderPawnInternal), nameof(ShowHair.Patch_PawnRenderer_RenderPawnInternal.Postfix)), + transpiler: new HarmonyMethod(AccessTools.Method(typeof(Patch_ShowHairWithHats), "Transpiler"))); + } + }))(); + } + catch (TypeLoadException ex) { } + } + } + } +} From 04717154e3f7292f0a6a9f55a14d70371094d01e Mon Sep 17 00:00:00 2001 From: Platinum Date: Fri, 8 May 2020 18:19:38 -0700 Subject: [PATCH 2/2] better bodytype offsets for hulk --- 1.1/Assemblies/Rimworld-Animations.dll | Bin 48128 -> 50176 bytes Defs/AnimationDefs/Animations_vanilla.xml | 21 +++++++++++++++++++ Rimworld-Animations.csproj | 1 + Source/Actors/Actor.cs | 1 + Source/Actors/BodyTypeOffset.cs | 18 ++++++++++++++++ Source/AnimationUtility.cs | 4 ++-- Source/Comps/CompBodyAnimator.cs | 24 ++++++++++++++++++++++ 7 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 Source/Actors/BodyTypeOffset.cs diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll index 341fd9de113209c28d6ae1c3592f4fc96bbab09e..06d7fa435f032ef692a6eb57aefee02133916157 100644 GIT binary patch literal 50176 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 diff --git a/Defs/AnimationDefs/Animations_vanilla.xml b/Defs/AnimationDefs/Animations_vanilla.xml index 7657f83..08b4870 100644 --- a/Defs/AnimationDefs/Animations_vanilla.xml +++ b/Defs/AnimationDefs/Animations_vanilla.xml @@ -23,6 +23,9 @@ true true + + (0, 0.2) + @@ -465,6 +468,9 @@
  • Human
  • + + (0, -0.2) +
  • @@ -473,6 +479,9 @@ true true true + + (0, 0.2) +
  • @@ -879,6 +888,9 @@
  • Human
  • true + + (0, 0.2) +
  • @@ -886,6 +898,9 @@ true true + + (0, 0.2) +
  • @@ -1984,6 +1999,9 @@ true true + + (0, 0.2) +
  • @@ -1992,6 +2010,9 @@ true true + + (0, -0.2) +
  • diff --git a/Rimworld-Animations.csproj b/Rimworld-Animations.csproj index 593d1ec..85b59fc 100644 --- a/Rimworld-Animations.csproj +++ b/Rimworld-Animations.csproj @@ -73,6 +73,7 @@ + diff --git a/Source/Actors/Actor.cs b/Source/Actors/Actor.cs index 2cb548c..b3ff494 100644 --- a/Source/Actors/Actor.cs +++ b/Source/Actors/Actor.cs @@ -16,6 +16,7 @@ namespace Rimworld_Animations { public bool isFucking = false; public bool isFucked = false; public bool controlGenitalAngle = false; + public BodyTypeOffset bodyTypeOffset = new BodyTypeOffset(); public Vector3 offset = new Vector2(0, 0); } } diff --git a/Source/Actors/BodyTypeOffset.cs b/Source/Actors/BodyTypeOffset.cs new file mode 100644 index 0000000..82a23a3 --- /dev/null +++ b/Source/Actors/BodyTypeOffset.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace Rimworld_Animations { + public class BodyTypeOffset { + + public Vector2? Male; + public Vector2? Female; + public Vector2? Thin; + public Vector2? Hulk; + public Vector2? Fat; + + } +} diff --git a/Source/AnimationUtility.cs b/Source/AnimationUtility.cs index df9b5a8..6f40e3b 100644 --- a/Source/AnimationUtility.cs +++ b/Source/AnimationUtility.cs @@ -78,10 +78,10 @@ namespace Rimworld_Animations { //TESTING ANIMATIONS ONLY REMEMBER TO COMMENT OUT BEFORE PUSH /* - if (x.defName != "Cowgirl") + if (x.defName != "Doggystyle") return false; - */ + */ if (x.actors[i].isFucking && !rjw.xxx.can_fuck(localParticipants[i])) { Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " can't fuck"); diff --git a/Source/Comps/CompBodyAnimator.cs b/Source/Comps/CompBodyAnimator.cs index 7a2f2c4..730b2ab 100644 --- a/Source/Comps/CompBodyAnimator.cs +++ b/Source/Comps/CompBodyAnimator.cs @@ -105,6 +105,30 @@ namespace Rimworld_Animations { anchor.z += raceOffset.offset.y; } + //change the offset based on pawn body type + if(pawn?.story?.bodyType != null) { + if (pawn.story.bodyType == BodyTypeDefOf.Fat && anim?.actors[actor]?.bodyTypeOffset?.Fat != null) { + anchor.x += anim.actors[actor].bodyTypeOffset.Fat.Value.x * (mirror ? -1f : 1f); + anchor.z += anim.actors[actor].bodyTypeOffset.Fat.Value.y; + } + else if (pawn.story.bodyType == BodyTypeDefOf.Female && anim?.actors[actor]?.bodyTypeOffset?.Female != null) { + anchor.x += anim.actors[actor].bodyTypeOffset.Female.Value.x * (mirror ? -1f : 1f); + anchor.z += anim.actors[actor].bodyTypeOffset.Female.Value.y; + } + else if (pawn.story.bodyType == BodyTypeDefOf.Male && anim?.actors[actor]?.bodyTypeOffset?.Male != null) { + anchor.x += anim.actors[actor].bodyTypeOffset.Male.Value.x * (mirror ? -1f : 1f); + anchor.z += anim.actors[actor].bodyTypeOffset.Male.Value.y; + } + else if (pawn.story.bodyType == BodyTypeDefOf.Thin && anim?.actors[actor]?.bodyTypeOffset?.Thin != null) { + anchor.x += anim.actors[actor].bodyTypeOffset.Thin.Value.x * (mirror ? -1f : 1f); + anchor.z += anim.actors[actor].bodyTypeOffset.Thin.Value.y; + } + else if (pawn.story.bodyType == BodyTypeDefOf.Hulk && anim?.actors[actor]?.bodyTypeOffset?.Hulk != null) { + anchor.x += anim.actors[actor].bodyTypeOffset.Hulk.Value.x * (mirror ? -1f : 1f); + anchor.z += anim.actors[actor].bodyTypeOffset.Hulk.Value.y; + } + } + pawn.jobs.posture = PawnPosture.Standing; this.actor = actor;