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>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="0Harmony, Version=2.0.0.8, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\workshop\content\294100\2009463077\v1.1\Assemblies\0Harmony.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
<Reference Include="0Harmony">
|
||||
<HintPath>..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Assembly-CSharp, Version=1.1.7397.36407, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
|
@ -42,7 +40,7 @@
|
|||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="RJW">
|
||||
<HintPath>..\rjw-master\1.1\Assemblies\RJW.dll</HintPath>
|
||||
<HintPath>..\RJW\1.1\Assemblies\RJW.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
|
@ -100,6 +98,7 @@
|
|||
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_DrawSemen.cs" />
|
||||
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_JobDriver_SexBaseInitiator.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_WorkGiverSex.cs" />
|
||||
<Compile Include="Source\Settings\AnimationSettings.cs" />
|
||||
|
|
|
@ -130,7 +130,7 @@ namespace Rimworld_Animations {
|
|||
else {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,8 @@ namespace Rimworld_Animations {
|
|||
|
||||
public static List<string> rjwLovinDefNames = new List<string>{
|
||||
"Lovin",
|
||||
"Quickie",
|
||||
"GettingQuickie",
|
||||
"JoinInBed",
|
||||
"JoinInBedAnimation",
|
||||
"GettinLovedAnimation",
|
||||
|
@ -59,9 +61,10 @@ namespace Rimworld_Animations {
|
|||
"GettinSucked",
|
||||
"GettinRaped",
|
||||
"ViolateCorpse",
|
||||
"Masturbate_Bed",
|
||||
"Masturbate_Quick",
|
||||
"RJW_Masturbate",
|
||||
"GettinBred",
|
||||
"Breed",
|
||||
"RJW_Mate",
|
||||
"Bestiality",
|
||||
"BestialityForFemale",
|
||||
"StruggleInBondageGear",
|
||||
|
|
|
@ -18,18 +18,15 @@ namespace Rimworld_Animations {
|
|||
These particular jobs need special code
|
||||
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;
|
||||
}
|
||||
|
||||
if(__instance is JobDriver_JoinInBed) {
|
||||
Log.Warning("Playing regular RJW joininbed jobdriver, if it animates properly ignore this warning");
|
||||
}
|
||||
|
||||
Pawn pawn = __instance.pawn;
|
||||
|
||||
Building_Bed bed = __instance.Bed;
|
||||
|
||||
/*
|
||||
if (__instance is JobDriver_BestialityForFemale)
|
||||
bed = (__instance as JobDriver_BestialityForFemale).Bed;
|
||||
else if (__instance is JobDriver_WhoreIsServingVisitors) {
|
||||
|
@ -38,10 +35,12 @@ namespace Rimworld_Animations {
|
|||
else if (__instance is JobDriver_SexCasualForAnimation) {
|
||||
bed = (__instance as JobDriver_SexCasualForAnimation).Bed;
|
||||
}
|
||||
else if (__instance is JobDriver_Masturbate_Bed)
|
||||
bed = (__instance as JobDriver_Masturbate_Bed).Bed;
|
||||
else if (__instance is JobDriver_Masturbate)
|
||||
bed = (__instance as JobDriver_Masturbate).Bed;
|
||||
else if (__instance is JobDriver_Rape)
|
||||
bed = (__instance?.Partner?.jobs?.curDriver as JobDriver_Sex)?.Bed;
|
||||
|
||||
*/
|
||||
|
||||
if ((__instance.Target as Pawn)?.jobs?.curDriver is JobDriver_SexBaseReciever) {
|
||||
|
||||
|
|
|
@ -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