mirror of
				https://gitgud.io/c0ffeeeeeeee/rimworld-animations.git
				synced 2024-08-15 00:43:45 +00:00 
			
		
		
		
	HatsDisplaySelection patches
This commit is contained in:
		
							parent
							
								
									acfb864629
								
							
						
					
					
						commit
						8deae217e0
					
				
					 13 changed files with 208 additions and 12 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -28,10 +28,6 @@
 | 
			
		|||
      <downloadUrl>https://www.loverslab.com/topic/110270-mod-rimjobworld/</downloadUrl>
 | 
			
		||||
    </li>
 | 
			
		||||
	</modDependencies>
 | 
			
		||||
	<incompatibleWith>
 | 
			
		||||
		<li>velc.HatsDisplaySelection</li>
 | 
			
		||||
		<!-- custom rendering transpilers too complicated to patch -->
 | 
			
		||||
	</incompatibleWith>
 | 
			
		||||
	<loadAfter>
 | 
			
		||||
		<li>UnlimitedHugs.HugsLib</li>
 | 
			
		||||
		<li>brrainz.harmony</li>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										8
									
								
								LoadFolders.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								LoadFolders.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 | 
			
		||||
<loadFolders>
 | 
			
		||||
	<default>
 | 
			
		||||
		<li>/</li>
 | 
			
		||||
		<li IfModActive="velc.HatsDisplaySelection">Patch_HatsDisplaySelection</li>
 | 
			
		||||
 | 
			
		||||
	</default>
 | 
			
		||||
</loadFolders>
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										75
									
								
								Patch_HatsDisplaySelection/Patch_HatsDisplaySelection.csproj
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								Patch_HatsDisplaySelection/Patch_HatsDisplaySelection.csproj
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,75 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
 | 
			
		||||
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
 | 
			
		||||
    <ProjectGuid>{BA766964-1716-422D-A09E-29426F8EB9D5}</ProjectGuid>
 | 
			
		||||
    <OutputType>Library</OutputType>
 | 
			
		||||
    <AppDesignerFolder>Properties</AppDesignerFolder>
 | 
			
		||||
    <RootNamespace>Patch_HatsDisplaySelection</RootNamespace>
 | 
			
		||||
    <AssemblyName>Patch_HatsDisplaySelection</AssemblyName>
 | 
			
		||||
    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
 | 
			
		||||
    <FileAlignment>512</FileAlignment>
 | 
			
		||||
    <Deterministic>true</Deterministic>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
 | 
			
		||||
    <DebugSymbols>false</DebugSymbols>
 | 
			
		||||
    <DebugType>none</DebugType>
 | 
			
		||||
    <Optimize>false</Optimize>
 | 
			
		||||
    <OutputPath>1.2\Assemblies\</OutputPath>
 | 
			
		||||
    <DefineConstants>DEBUG;TRACE</DefineConstants>
 | 
			
		||||
    <ErrorReport>prompt</ErrorReport>
 | 
			
		||||
    <WarningLevel>4</WarningLevel>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
 | 
			
		||||
    <DebugType>pdbonly</DebugType>
 | 
			
		||||
    <Optimize>true</Optimize>
 | 
			
		||||
    <OutputPath>bin\Release\</OutputPath>
 | 
			
		||||
    <DefineConstants>TRACE</DefineConstants>
 | 
			
		||||
    <ErrorReport>prompt</ErrorReport>
 | 
			
		||||
    <WarningLevel>4</WarningLevel>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Reference Include="0Harmony">
 | 
			
		||||
      <HintPath>..\..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="Assembly-CSharp">
 | 
			
		||||
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="HatDisplaySelection">
 | 
			
		||||
      <HintPath>..\..\..\..\..\workshop\content\294100\1542291825\1.2\Assemblies\HatDisplaySelection.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="Rimworld-Animations">
 | 
			
		||||
      <HintPath>..\1.2\Assemblies\Rimworld-Animations.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="System" />
 | 
			
		||||
    <Reference Include="System.Core" />
 | 
			
		||||
    <Reference Include="System.Xml.Linq" />
 | 
			
		||||
    <Reference Include="System.Data.DataSetExtensions" />
 | 
			
		||||
    <Reference Include="Microsoft.CSharp" />
 | 
			
		||||
    <Reference Include="System.Data" />
 | 
			
		||||
    <Reference Include="System.Net.Http" />
 | 
			
		||||
    <Reference Include="System.Xml" />
 | 
			
		||||
    <Reference Include="UnityEngine">
 | 
			
		||||
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
    <Reference Include="UnityEngine.CoreModule">
 | 
			
		||||
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
 | 
			
		||||
      <Private>False</Private>
 | 
			
		||||
    </Reference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
			
		||||
    <Compile Include="Source\Patches\Patch_HatsDisplaySelection.cs" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Folder Include="1.2\Assemblies\" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										36
									
								
								Patch_HatsDisplaySelection/Properties/AssemblyInfo.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								Patch_HatsDisplaySelection/Properties/AssemblyInfo.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
using System.Reflection;
 | 
			
		||||
using System.Runtime.CompilerServices;
 | 
			
		||||
using System.Runtime.InteropServices;
 | 
			
		||||
 | 
			
		||||
// General Information about an assembly is controlled through the following
 | 
			
		||||
// set of attributes. Change these attribute values to modify the information
 | 
			
		||||
// associated with an assembly.
 | 
			
		||||
[assembly: AssemblyTitle("Patch_HatsDisplaySelection")]
 | 
			
		||||
[assembly: AssemblyDescription("")]
 | 
			
		||||
[assembly: AssemblyConfiguration("")]
 | 
			
		||||
[assembly: AssemblyCompany("")]
 | 
			
		||||
[assembly: AssemblyProduct("Patch_HatsDisplaySelection")]
 | 
			
		||||
[assembly: AssemblyCopyright("Copyright ©  2021")]
 | 
			
		||||
[assembly: AssemblyTrademark("")]
 | 
			
		||||
[assembly: AssemblyCulture("")]
 | 
			
		||||
 | 
			
		||||
// Setting ComVisible to false makes the types in this assembly not visible
 | 
			
		||||
// to COM components.  If you need to access a type in this assembly from
 | 
			
		||||
// COM, set the ComVisible attribute to true on that type.
 | 
			
		||||
[assembly: ComVisible(false)]
 | 
			
		||||
 | 
			
		||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
 | 
			
		||||
[assembly: Guid("ba766964-1716-422d-a09e-29426f8eb9d5")]
 | 
			
		||||
 | 
			
		||||
// Version information for an assembly consists of the following four values:
 | 
			
		||||
//
 | 
			
		||||
//      Major Version
 | 
			
		||||
//      Minor Version
 | 
			
		||||
//      Build Number
 | 
			
		||||
//      Revision
 | 
			
		||||
//
 | 
			
		||||
// You can specify all the values or you can default the Build and Revision Numbers
 | 
			
		||||
// by using the '*' as shown below:
 | 
			
		||||
// [assembly: AssemblyVersion("1.0.*")]
 | 
			
		||||
[assembly: AssemblyVersion("1.0.0.0")]
 | 
			
		||||
[assembly: AssemblyFileVersion("1.0.0.0")]
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using HatDisplaySelection;
 | 
			
		||||
using Rimworld_Animations;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Patch_HatsDisplaySelection
 | 
			
		||||
{
 | 
			
		||||
	[HarmonyBefore(new string[] { "velc.HatsDisplaySelection" })]
 | 
			
		||||
    [HarmonyPatch(typeof(HatDisplaySelection.Patch), "Patch_PawnRenderer_RenderPawnInternal_Initialize")]
 | 
			
		||||
    public class Patch_HatsDisplaySelectionInitialize
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
		public static void Prefix(PawnRenderer __instance, ref Pawn ___pawn, ref Vector3 rootLoc, ref float angle, ref Rot4 bodyFacing, ref Rot4 headFacing)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
			CompBodyAnimator bodyAnim = ___pawn.TryGetComp<CompBodyAnimator>();
 | 
			
		||||
			bodyAnim.animatePawn(ref rootLoc, ref angle, ref bodyFacing, ref headFacing);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
        public static void Postfix(PawnRenderer __instance)
 | 
			
		||||
        {
 | 
			
		||||
			PawnGraphicSet graphics = __instance.graphics;
 | 
			
		||||
			Pawn pawn = graphics.pawn;
 | 
			
		||||
			CompBodyAnimator bodyAnim = pawn.TryGetComp<CompBodyAnimator>();
 | 
			
		||||
 | 
			
		||||
			if (!graphics.AllResolved)
 | 
			
		||||
			{
 | 
			
		||||
				graphics.ResolveAllGraphics();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			if (bodyAnim != null && bodyAnim.isAnimating && pawn.Map == Find.CurrentMap)
 | 
			
		||||
			{
 | 
			
		||||
				bodyAnim.tickGraphics(graphics);
 | 
			
		||||
				
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -122,6 +122,7 @@
 | 
			
		|||
    <Content Include="Defs\JobDefs\Jobs_SexForAnim.xml" />
 | 
			
		||||
    <Content Include="Defs\MainTabDefs\MainButtonDef.xml" />
 | 
			
		||||
    <Content Include="Defs\SoundDefs\Sounds_Sex.xml" />
 | 
			
		||||
    <Content Include="LoadFolders.xml" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 | 
			
		||||
</Project>
 | 
			
		||||
| 
						 | 
				
			
			@ -5,6 +5,8 @@ VisualStudioVersion = 16.0.29905.134
 | 
			
		|||
MinimumVisualStudioVersion = 10.0.40219.1
 | 
			
		||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rimworld-Animations", "Rimworld-Animations.csproj", "{71B05D71-67B2-4014-82CD-18C20AC0882F}"
 | 
			
		||||
EndProject
 | 
			
		||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Patch_HatsDisplaySelection", "Patch_HatsDisplaySelection\Patch_HatsDisplaySelection.csproj", "{BA766964-1716-422D-A09E-29426F8EB9D5}"
 | 
			
		||||
EndProject
 | 
			
		||||
Global
 | 
			
		||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
			
		||||
		Debug|Any CPU = Debug|Any CPU
 | 
			
		||||
| 
						 | 
				
			
			@ -15,6 +17,10 @@ Global
 | 
			
		|||
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
			
		||||
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
			
		||||
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
			
		||||
		{BA766964-1716-422D-A09E-29426F8EB9D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
			
		||||
		{BA766964-1716-422D-A09E-29426F8EB9D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
			
		||||
		{BA766964-1716-422D-A09E-29426F8EB9D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
			
		||||
		{BA766964-1716-422D-A09E-29426F8EB9D5}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(SolutionProperties) = preSolution
 | 
			
		||||
		HideSolutionNode = FALSE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,12 +11,12 @@ using Verse;
 | 
			
		|||
using Verse.Sound;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations {
 | 
			
		||||
    class CompBodyAnimator : ThingComp
 | 
			
		||||
    public class CompBodyAnimator : ThingComp
 | 
			
		||||
    {
 | 
			
		||||
        public Pawn pawn => base.parent as Pawn;
 | 
			
		||||
        public PawnGraphicSet Graphics;
 | 
			
		||||
        
 | 
			
		||||
        public CompProperties_BodyAnimator Props => (CompProperties_BodyAnimator)(object)base.props;
 | 
			
		||||
        //public CompProperties_BodyAnimator Props => (CompProperties_BodyAnimator)(object)base.props;
 | 
			
		||||
 | 
			
		||||
        public bool isAnimating {
 | 
			
		||||
            get {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
using System;
 | 
			
		||||
 using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
/*using System;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
| 
						 | 
				
			
			@ -19,8 +19,34 @@ namespace Rimworld_Animations {
 | 
			
		|||
 | 
			
		||||
            (new Harmony("rjw")).Patch(AccessTools.Method(AccessTools.TypeByName("HatDisplaySelection.Patch"), "DrawHatWithHair"),
 | 
			
		||||
                transpiler: new HarmonyMethod(AccessTools.Method(typeof(HarmonyPatch_HatsDisplaySelection), "ReplaceDrawMeshOrLaterWithAnimate")));
 | 
			
		||||
 | 
			
		||||
            (new Harmony("rjw")).Patch(AccessTools.Method(AccessTools.TypeByName("HatDisplaySelection.Patch"), "DrawHeadApparelWithHair"),
 | 
			
		||||
                prefix: new HarmonyMethod(AccessTools.Method(typeof(HarmonyPatch_HatsDisplaySelection), "PrefixPatchForDrawHeadApparelWithHair")));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void PrefixPatchForDrawHeadApparelWithHair(PawnRenderer renderer, ref Vector3 rootLoc, ref float angle, bool renderBody, ref Rot4 bodyFacing, ref Rot4 headFacing, RotDrawMode bodyDrawType, bool portrait, bool headStump, bool invisible)
 | 
			
		||||
        {
 | 
			
		||||
            PawnGraphicSet graphics = renderer.graphics;
 | 
			
		||||
            Pawn pawn = graphics.pawn;
 | 
			
		||||
            CompBodyAnimator bodyAnim = pawn.TryGetComp<CompBodyAnimator>();
 | 
			
		||||
 | 
			
		||||
            if (!graphics.AllResolved)
 | 
			
		||||
            {
 | 
			
		||||
                graphics.ResolveAllGraphics();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            if (bodyAnim != null && bodyAnim.isAnimating && !portrait && pawn.Map == Find.CurrentMap)
 | 
			
		||||
            {
 | 
			
		||||
                bodyAnim.tickGraphics(graphics);
 | 
			
		||||
                bodyAnim.animatePawn(ref rootLoc, ref angle, ref bodyFacing, ref headFacing);
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public static IEnumerable<CodeInstruction> ReplaceDrawMeshOrLaterWithAnimate(IEnumerable<CodeInstruction> instructions) {
 | 
			
		||||
 | 
			
		||||
            MethodInfo drawMeshNowOrLater = AccessTools.Method(typeof(GenDraw), "DrawMeshNowOrLater");
 | 
			
		||||
| 
						 | 
				
			
			@ -44,4 +70,4 @@ namespace Rimworld_Animations {
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}*/
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,19 +51,20 @@ namespace Rimworld_Animations {
 | 
			
		|||
    {
 | 
			
		||||
 | 
			
		||||
		static HarmonyPatch_Animate() {
 | 
			
		||||
			/* hats display selection patch -- broken
 | 
			
		||||
			// hats display selection patch -- broken
 | 
			
		||||
			if (LoadedModManager.RunningModsListForReading.Any(x => x.Name == "Hats Display Selection")) {
 | 
			
		||||
				HarmonyPatch_HatsDisplaySelection.PatchHatsDisplaySelectionArgs();
 | 
			
		||||
			}
 | 
			
		||||
			else {
 | 
			
		||||
				PatchRimworldFunctionsNormally();
 | 
			
		||||
			}*/
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			PatchRimworldFunctionsNormally();
 | 
			
		||||
			//PatchRimworldFunctionsNormally();
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		static void PatchRimworldFunctionsNormally() {
 | 
			
		||||
			(new Harmony("rjw")).Patch(AccessTools.Method(typeof(PawnRenderer), "RenderPawnInternal", parameters: new Type[]
 | 
			
		||||
				{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue