mirror of
https://gitgud.io/c0ffeeeeeeee/rimworld-animations.git
synced 2024-08-15 00:43:45 +00:00
merge from main
This commit is contained in:
commit
4cd35051ee
9 changed files with 3018 additions and 15 deletions
BIN
1.1/Assemblies/0Harmony.dll
Normal file
BIN
1.1/Assemblies/0Harmony.dll
Normal file
Binary file not shown.
2900
1.1/Assemblies/0Harmony.xml
Normal file
2900
1.1/Assemblies/0Harmony.xml
Normal file
File diff suppressed because it is too large
Load diff
45
Patches/CompatibilityPatch_FacialAnimation.xml
Normal file
45
Patches/CompatibilityPatch_FacialAnimation.xml
Normal 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>
|
32
Patches/CompatibilityPatch_HCSK.xml
Normal file
32
Patches/CompatibilityPatch_HCSK.xml
Normal 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>
|
|
@ -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" />
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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,11 +35,13 @@ 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) {
|
||||||
|
|
||||||
Pawn Target = __instance.Target as Pawn;
|
Pawn Target = __instance.Target as Pawn;
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue