merge from main

This commit is contained in:
Platinum 2020-08-03 11:27:10 -07:00
commit 4cd35051ee
9 changed files with 3018 additions and 15 deletions

BIN
1.1/Assemblies/0Harmony.dll Normal file

Binary file not shown.

2900
1.1/Assemblies/0Harmony.xml Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>[NL] Facial Animation - WIP</li>
</mods>
<match Class="PatchOperationSequence">
<success>Always</success>
<operations>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/animationFrames/li[1]/headOffset</xpath>
<success>Always</success>
</li>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/animationFrames/li[2]/headOffset</xpath>
<success>Always</success>
</li>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/animationFrames/li[3]/headOffset</xpath>
<success>Always</success>
</li>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/animationFrames/li[4]/headOffset</xpath>
<success>Always</success>
</li>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/animationFrames/li[5]/headOffset</xpath>
<success>Always</success>
</li>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/animationFrames/li[6]/headOffset</xpath>
<success>Always</success>
</li>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/animationFrames/li[7]/headOffset</xpath>
<success>Always</success>
</li>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/animationFrames/li[8]/headOffset</xpath>
<success>Always</success>
</li>
</operations>
</match>
</Operation>
</Patch>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
<!-- Patch for HCSK, to attach to differently written thingdefs -->
<Operation Class="PatchOperationFindMod">
<mods>
<li>Core SK</li>
</mods>
<match Class="PatchOperationSequence">
<success>Always</success>
<operations>
<li Class="PatchOperationConditional">
<xpath>/Defs/Verse.ThingDef/comps</xpath>
<success>Always</success>
<nomatch Class="PatchOperationAdd">
<xpath>/Defs/Verse.ThingDef</xpath>
<value>
<comps />
</value>
</nomatch>
</li>
<li Class="PatchOperationAdd">
<xpath>/Defs/Verse.ThingDef/comps</xpath>
<value>
<li Class="Rimworld_Animations.CompProperties_BodyAnimator" />
</value>
</li>
</operations>
</match>
</Operation>
</Patch>

View file

@ -31,10 +31,8 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="0Harmony, Version=2.0.0.8, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="0Harmony">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
<HintPath>..\..\..\..\workshop\content\294100\2009463077\v1.1\Assemblies\0Harmony.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="Assembly-CSharp, Version=1.1.7397.36407, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Assembly-CSharp, Version=1.1.7397.36407, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@ -42,7 +40,7 @@
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="RJW"> <Reference Include="RJW">
<HintPath>..\rjw-master\1.1\Assemblies\RJW.dll</HintPath> <HintPath>..\RJW\1.1\Assemblies\RJW.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
@ -100,6 +98,7 @@
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_DrawSemen.cs" /> <Compile Include="Source\Patches\rjwPatches\HarmonyPatch_DrawSemen.cs" />
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_JobDriver_SexBaseInitiator.cs" /> <Compile Include="Source\Patches\rjwPatches\HarmonyPatch_JobDriver_SexBaseInitiator.cs" />
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_JoinInBedGiveJob.cs" /> <Compile Include="Source\Patches\rjwPatches\HarmonyPatch_JoinInBedGiveJob.cs" />
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_PlayAnimJoinInBedRMB.cs" />
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_SexTick.cs" /> <Compile Include="Source\Patches\rjwPatches\HarmonyPatch_SexTick.cs" />
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_WorkGiverSex.cs" /> <Compile Include="Source\Patches\rjwPatches\HarmonyPatch_WorkGiverSex.cs" />
<Compile Include="Source\Settings\AnimationSettings.cs" /> <Compile Include="Source\Settings\AnimationSettings.cs" />

View file

@ -130,7 +130,7 @@ namespace Rimworld_Animations {
else { else {
Quaternion addonRotation = quat; Quaternion addonRotation = quat;
if (AnimationSettings.controlGenitalRotation && pawnAnimator.controlGenitalAngle && ba.hediffGraphics[0]?.path != null && (ba.hediffGraphics[0].path.Contains("Penis") || ba.hediffGraphics[0].path.Contains("penis"))) { if (AnimationSettings.controlGenitalRotation && pawnAnimator.controlGenitalAngle && ba?.hediffGraphics != null && ba.hediffGraphics.Count != 0 && ba.hediffGraphics[0]?.path != null && (ba.hediffGraphics[0].path.Contains("Penis") || ba.hediffGraphics[0].path.Contains("penis"))) {
addonRotation = Quaternion.AngleAxis(angle: pawnAnimator.genitalAngle, axis: Vector3.up); addonRotation = Quaternion.AngleAxis(angle: pawnAnimator.genitalAngle, axis: Vector3.up);
} }

View file

@ -51,6 +51,8 @@ namespace Rimworld_Animations {
public static List<string> rjwLovinDefNames = new List<string>{ public static List<string> rjwLovinDefNames = new List<string>{
"Lovin", "Lovin",
"Quickie",
"GettingQuickie",
"JoinInBed", "JoinInBed",
"JoinInBedAnimation", "JoinInBedAnimation",
"GettinLovedAnimation", "GettinLovedAnimation",
@ -59,9 +61,10 @@ namespace Rimworld_Animations {
"GettinSucked", "GettinSucked",
"GettinRaped", "GettinRaped",
"ViolateCorpse", "ViolateCorpse",
"Masturbate_Bed", "RJW_Masturbate",
"Masturbate_Quick",
"GettinBred", "GettinBred",
"Breed",
"RJW_Mate",
"Bestiality", "Bestiality",
"BestialityForFemale", "BestialityForFemale",
"StruggleInBondageGear", "StruggleInBondageGear",

View file

@ -18,18 +18,15 @@ namespace Rimworld_Animations {
These particular jobs need special code These particular jobs need special code
don't play anim for now don't play anim for now
*/ */
if(__instance is JobDriver_Masturbate_Bed || __instance is JobDriver_Masturbate_Quick || __instance is JobDriver_ViolateCorpse) { if(__instance is JobDriver_Masturbate || __instance is JobDriver_ViolateCorpse) {
return; return;
} }
if(__instance is JobDriver_JoinInBed) {
Log.Warning("Playing regular RJW joininbed jobdriver, if it animates properly ignore this warning");
}
Pawn pawn = __instance.pawn; Pawn pawn = __instance.pawn;
Building_Bed bed = __instance.Bed; Building_Bed bed = __instance.Bed;
/*
if (__instance is JobDriver_BestialityForFemale) if (__instance is JobDriver_BestialityForFemale)
bed = (__instance as JobDriver_BestialityForFemale).Bed; bed = (__instance as JobDriver_BestialityForFemale).Bed;
else if (__instance is JobDriver_WhoreIsServingVisitors) { else if (__instance is JobDriver_WhoreIsServingVisitors) {
@ -38,10 +35,12 @@ namespace Rimworld_Animations {
else if (__instance is JobDriver_SexCasualForAnimation) { else if (__instance is JobDriver_SexCasualForAnimation) {
bed = (__instance as JobDriver_SexCasualForAnimation).Bed; bed = (__instance as JobDriver_SexCasualForAnimation).Bed;
} }
else if (__instance is JobDriver_Masturbate_Bed) else if (__instance is JobDriver_Masturbate)
bed = (__instance as JobDriver_Masturbate_Bed).Bed; bed = (__instance as JobDriver_Masturbate).Bed;
else if (__instance is JobDriver_Rape) else if (__instance is JobDriver_Rape)
bed = (__instance?.Partner?.jobs?.curDriver as JobDriver_Sex)?.Bed; bed = (__instance?.Partner?.jobs?.curDriver as JobDriver_Sex)?.Bed;
*/
if ((__instance.Target as Pawn)?.jobs?.curDriver is JobDriver_SexBaseReciever) { if ((__instance.Target as Pawn)?.jobs?.curDriver is JobDriver_SexBaseReciever) {

View file

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RimWorld;
using Verse.AI;
using rjw;
using HarmonyLib;
using Verse;
namespace Rimworld_Animations {
[HarmonyPatch(typeof(Pawn_JobTracker), "TryTakeOrderedJob")]
class HarmonyPatch_PlayAnimJoinInBedRMB {
public static void Prefix(ref Job job) {
if(job.def == xxx.casual_sex) {
Log.Message("Replacing vanilla RJW JoinInBed JobDriver for animation JobDriver");
job = new Job(DefDatabase<JobDef>.GetNamed("JoinInBedAnimation", true), job.targetA, job.targetB, job.targetC);
}
}
}
}