This commit is contained in:
Platinum 2020-04-09 17:03:56 -07:00
parent df7623a856
commit b04afef7b1
4 changed files with 10 additions and 9 deletions

View file

@ -118,7 +118,7 @@ namespace Rimworld_Animations {
tickAnim(); tickAnim();
if (pawn?.jobs?.curDriver == null || (pawn?.jobs?.curDriver != null && !(pawn?.jobs?.curDriver is rjw.JobDriver_Sex))) { if (pawn?.jobs?.curDriver == null || (pawn?.jobs?.curDriver != null && !(pawn?.jobs?.curDriver is rjw.JobDriver_Sex))) {
Animating = false; isAnimating = false;
} }
} }
} }

View file

@ -31,7 +31,7 @@ namespace Rimworld_Animations {
CompBodyAnimator bodyAnim = ___pawn.TryGetComp<CompBodyAnimator>(); CompBodyAnimator bodyAnim = ___pawn.TryGetComp<CompBodyAnimator>();
if (bodyAnim.isAnimating && !portrait) { if (bodyAnim != null && bodyAnim.isAnimating && !portrait) {
headFacing = bodyAnim.headFacing; headFacing = bodyAnim.headFacing;
headOrigin = new Vector3(bodyAnim.getPawnHeadPosition().x, headOrigin.y, bodyAnim.getPawnHeadPosition().z); headOrigin = new Vector3(bodyAnim.getPawnHeadPosition().x, headOrigin.y, bodyAnim.getPawnHeadPosition().z);

View file

@ -68,12 +68,18 @@ namespace Rimworld_Animations {
Log.Message("Now playing " + anim.defName); Log.Message("Now playing " + anim.defName);
bool mirror = GenTicks.TicksGame % 2 == 0; bool mirror = GenTicks.TicksGame % 2 == 0;
IntVec3 pos = pawn.Position;
for (int i = 0; i < pawnsToAnimate.Count; i++) { for (int i = 0; i < pawnsToAnimate.Count; i++) {
if (bed != null) if (bed != null)
pawnsToAnimate[i].TryGetComp<CompBodyAnimator>().setAnchor(bed); pawnsToAnimate[i].TryGetComp<CompBodyAnimator>().setAnchor(bed);
else else {
pawnsToAnimate[i].TryGetComp<CompBodyAnimator>().setAnchor(pawn);
pawnsToAnimate[i].TryGetComp<CompBodyAnimator>().setAnchor(pos);
}
pawnsToAnimate[i].TryGetComp<CompBodyAnimator>().StartAnimation(anim, i, mirror); pawnsToAnimate[i].TryGetComp<CompBodyAnimator>().StartAnimation(anim, i, mirror);
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticks_left = anim.animationTimeTicks; (pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticks_left = anim.animationTimeTicks;
@ -112,11 +118,6 @@ namespace Rimworld_Animations {
if (!((parteners[i].jobs.curDriver as JobDriver_SexBaseInitiator) != null && (parteners[i].jobs.curDriver as JobDriver_SexBaseInitiator).Target != __instance.pawn)) if (!((parteners[i].jobs.curDriver as JobDriver_SexBaseInitiator) != null && (parteners[i].jobs.curDriver as JobDriver_SexBaseInitiator).Target != __instance.pawn))
parteners[i].TryGetComp<CompBodyAnimator>().isAnimating = false; parteners[i].TryGetComp<CompBodyAnimator>().isAnimating = false;
if (xxx.is_human(parteners[i])) {
parteners[i].Drawer.renderer.graphics.ResolveApparelGraphics();
PortraitsCache.SetDirty(parteners[i]);
}
} }
__instance.Target.TryGetComp<CompBodyAnimator>().isAnimating = false; __instance.Target.TryGetComp<CompBodyAnimator>().isAnimating = false;