mod options should save on game exit + anim tweaks

This commit is contained in:
Platinum 2020-04-25 11:08:00 -07:00
parent 31dd3719a1
commit 02de084521
5 changed files with 16 additions and 7 deletions

View file

@ -465,7 +465,6 @@
<defNames> <defNames>
<li>Human</li> <li>Human</li>
</defNames> </defNames>
<initiator>true</initiator>
</li> </li>
<li> <li>
<defNames> <defNames>

View file

@ -158,6 +158,7 @@ namespace Rimworld_Animations {
if (animTicks < anim.animationTimeTicks) { if (animTicks < anim.animationTimeTicks) {
tickStage(); tickStage();
} else { } else {
isAnimating = false; isAnimating = false;
} }
} }
@ -175,6 +176,10 @@ namespace Rimworld_Animations {
clipPercent = 0; clipPercent = 0;
} }
if(curStage >= anim.animationStages.Count && animTicks < anim.animationTimeTicks && pawn.jobs.curDriver is JobDriver_SexBaseInitiator) {
pawn.jobs.curDriver.ReadyForNextToil();
}
tickClip(); tickClip();
} }

View file

@ -8,6 +8,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using UnityEngine; using UnityEngine;
using Verse; using Verse;
using AlienRace;
namespace Rimworld_Animations { namespace Rimworld_Animations {
[StaticConstructorOnStartup] [StaticConstructorOnStartup]
@ -41,17 +42,17 @@ namespace Rimworld_Animations {
public static bool Prefix_AnimateHeadAddons(bool portrait, Vector3 vector, Pawn pawn, Quaternion quat, Rot4 rotation, bool invisible) { public static bool Prefix_AnimateHeadAddons(bool portrait, Vector3 vector, Pawn pawn, Quaternion quat, Rot4 rotation, bool invisible) {
if (portrait || pawn.TryGetComp<CompBodyAnimator>() == null || !pawn.TryGetComp<CompBodyAnimator>().isAnimating) return true; if (portrait || pawn.TryGetComp<CompBodyAnimator>() == null || !pawn.TryGetComp<CompBodyAnimator>().isAnimating) return true;
if (!(pawn.def is AlienRace.ThingDef_AlienRace alienProps) || invisible) return false; if (!(pawn.def is ThingDef_AlienRace alienProps) || invisible) return false;
List<AlienRace.AlienPartGenerator.BodyAddon> addons = alienProps.alienRace.generalSettings.alienPartGenerator.bodyAddons; List<AlienPartGenerator.BodyAddon> addons = alienProps.alienRace.generalSettings.alienPartGenerator.bodyAddons;
AlienRace.AlienPartGenerator.AlienComp alienComp = pawn.GetComp<AlienRace.AlienPartGenerator.AlienComp>(); AlienPartGenerator.AlienComp alienComp = pawn.GetComp<AlienPartGenerator.AlienComp>();
CompBodyAnimator pawnAnimator = pawn.TryGetComp<CompBodyAnimator>(); CompBodyAnimator pawnAnimator = pawn.TryGetComp<CompBodyAnimator>();
for (int i = 0; i < addons.Count; i++) { for (int i = 0; i < addons.Count; i++) {
AlienRace.AlienPartGenerator.BodyAddon ba = addons[index: i]; AlienPartGenerator.BodyAddon ba = addons[index: i];
if (!ba.CanDrawAddon(pawn: pawn)) continue; if (!ba.CanDrawAddon(pawn: pawn)) continue;
AlienRace.AlienPartGenerator.RotationOffset offset; AlienPartGenerator.RotationOffset offset;
if (ba.drawnInBed) { if (ba.drawnInBed) {
offset = pawnAnimator.headFacing == Rot4.South ? offset = pawnAnimator.headFacing == Rot4.South ?

View file

@ -13,13 +13,16 @@ namespace Rimworld_Animations {
public static float shiverIntensity = 2f; public static float shiverIntensity = 2f;
public override void ExposeData() { public override void ExposeData() {
base.ExposeData();
Scribe_Values.Look(ref orgasmQuiver, "orgasmQuiver"); Scribe_Values.Look(ref orgasmQuiver, "orgasmQuiver");
Scribe_Values.Look(ref rapeShiver, "rapeShiver"); Scribe_Values.Look(ref rapeShiver, "rapeShiver");
Scribe_Values.Look(ref hearts, "heartsOnLovin"); Scribe_Values.Look(ref hearts, "heartsOnLovin");
Scribe_Values.Look(ref soundOverride, "rjwAnimSoundOverride", true); Scribe_Values.Look(ref soundOverride, "rjwAnimSoundOverride", true);
Scribe_Values.Look(ref shiverIntensity, "shiverIntensity", 2f); Scribe_Values.Look(ref shiverIntensity, "shiverIntensity", 2f);
base.ExposeData();
} }
} }
@ -27,6 +30,7 @@ namespace Rimworld_Animations {
public class RJW_Animations : Mod { public class RJW_Animations : Mod {
public RJW_Animations(ModContentPack content) : base(content) { public RJW_Animations(ModContentPack content) : base(content) {
GetSettings<AnimationSettings>();
} }
public override void DoSettingsWindowContents(Rect inRect) { public override void DoSettingsWindowContents(Rect inRect) {