diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..66ef889 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,15 @@ +[submodule "Source/dependencies/Harvest-Post-Mortem-1.3"] + path = Source/dependencies/Harvest-Post-Mortem-1.3 + url = https://github.com/ViralReaction/Harvest-Post-Mortem-Sans-Hugslib.git +[submodule "Source/dependencies/Harvest-Post-Mortem-1.4"] + path = Source/dependencies/Harvest-Post-Mortem-1.4 + url = https://github.com/ViralReaction/Harvest-Post-Mortem-Sans-Hugslib.git +[submodule "Source/dependencies/rjw"] + path = Source/dependencies/rjw + url = https://gitgud.io/Ed86/rjw.git +[submodule "Source/dependencies/Harvest-Post-Mortem-1.5"] + path = Source/dependencies/Harvest-Post-Mortem-1.5 + url = https://github.com/ViralReaction/Harvest-Post-Mortem-Sans-Hugslib.git +[submodule "Source/dependencies/Harvest-Post-Mortem-1.6"] + path = Source/dependencies/Harvest-Post-Mortem-1.6 + url = https://github.com/ViralReaction/Harvest-Post-Mortem-Sans-Hugslib.git diff --git a/1.3/Assemblies/RJW_patch_Autopsy.dll b/1.3/Assemblies/RJW_patch_Autopsy.dll index 4d67d80..5cf48f4 100644 Binary files a/1.3/Assemblies/RJW_patch_Autopsy.dll and b/1.3/Assemblies/RJW_patch_Autopsy.dll differ diff --git a/1.4/Assemblies/RJW_patch_Autopsy.dll b/1.4/Assemblies/RJW_patch_Autopsy.dll index cde287c..480ba78 100644 Binary files a/1.4/Assemblies/RJW_patch_Autopsy.dll and b/1.4/Assemblies/RJW_patch_Autopsy.dll differ diff --git a/1.5/Assemblies/RJW_patch_Autopsy.dll b/1.5/Assemblies/RJW_patch_Autopsy.dll index f558298..6050102 100644 Binary files a/1.5/Assemblies/RJW_patch_Autopsy.dll and b/1.5/Assemblies/RJW_patch_Autopsy.dll differ diff --git a/1.5/Patches/NewMedicalRecipesUtilityPatch.cs b/1.5/Patches/NewMedicalRecipesUtilityPatch.cs new file mode 100644 index 0000000..cd83291 --- /dev/null +++ b/1.5/Patches/NewMedicalRecipesUtilityPatch.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Verse; +using rjw; +using Autopsy; +using HarmonyLib; +using RimWorld; + +namespace RJW_patch_Autopsy +{ + [HarmonyPatch(typeof(NewMedicalRecipesUtility), nameof(NewMedicalRecipesUtility.TraverseBody))] + public static class NewMedicalRecipesUtilityPatch + { + private const bool DEBUG = false; + + private static void log(String message) + { + if (DEBUG) + { + Log.Message(message); + } + } + + [HarmonyPostfix] + public static IEnumerable AddRjwParts(IEnumerable __result, RecipeInfo recipeInfo, Corpse corpse, + float skillChance) + { + var results = __result.ToList(); + log($"Collected {results.Count} vanilla parts"); + + //Collect rjw rediffs + var rjwNaturalDiffs = (from x in corpse.InnerPawn.health.hediffSet.hediffs + where x is Hediff_NaturalSexPart + select x).ToList(); + var rjwArtificialDiffs = (from x in corpse.InnerPawn.health.hediffSet.hediffs + where x is Hediff_ArtificialSexPart + select x).ToList(); + + log($"Collected {rjwNaturalDiffs.Count} natural and {rjwArtificialDiffs.Count} artificial hediffs"); + + //Collect parts from hediffs rjw's surgery methods + var rjwNaturalThings = rjwNaturalDiffs.Select(hediff => + { + var tmp = SexPartAdder.recipePartRemover(hediff); + Log.Message($"obtained ${tmp} from ${hediff} via rjw"); + return tmp; + }).ToList(); + var rjwArtificialThings = rjwArtificialDiffs.Select(hediff => + { + var tmp = SexPartAdder.recipePartRemover(hediff); + Log.Message($"obtained ${tmp} from ${hediff} via rjw"); + return tmp; + }).ToList(); + + log( + $"Collected {rjwNaturalThings.Count} things from {rjwNaturalDiffs.Count} natural and {rjwArtificialThings.Count} things from {rjwArtificialDiffs.Count} artificial hediffs"); + + //Simulate success chance scaled with skill etc. + rjwNaturalThings.ForEach(t => + { + CompRottable rot = corpse.TryGetComp(); + if (DEBUG || rot == null + ? corpse.Age <= recipeInfo.CorpseValidAge + : rot.RotProgress + (corpse.Age - rot.RotProgress) * recipeInfo.FrozenDecay <= + recipeInfo.CorpseValidAge) results.Add(t); + }); + rjwArtificialThings.ForEach(t => + { + if (DEBUG || Rand.Chance(Math.Min(skillChance, recipeInfo.BionicChance))) results.Add(t); + }); + + //Remove all parts that were tried to harvest from the corpse + rjwNaturalDiffs.ForEach(d => corpse.InnerPawn.health.RemoveHediff(d)); + rjwArtificialDiffs.ForEach(d => corpse.InnerPawn.health.RemoveHediff(d)); + + if (results.Count > recipeInfo.PartNumber) + { + var random = new Random(); + results = results.OrderBy(_ => random.Next()).Take(recipeInfo.PartNumber).ToList(); + } + + foreach (var result in results) + { + yield return result; + } + } + } +} \ No newline at end of file diff --git a/1.6/Assemblies/RJW_patch_Autopsy.dll b/1.6/Assemblies/RJW_patch_Autopsy.dll new file mode 100644 index 0000000..cdae741 Binary files /dev/null and b/1.6/Assemblies/RJW_patch_Autopsy.dll differ diff --git a/About/About.xml b/About/About.xml index f056244..f109b9f 100644 --- a/About/About.xml +++ b/About/About.xml @@ -7,6 +7,7 @@
  • 1.3
  • 1.4
  • 1.5
  • +
  • 1.6
  • Stardust3D.RJW.patch.Autopsy This is a compatibility patch to enable 'Harvest Organs post mortem'/Autopsy to yield RJW bodyparts. diff --git a/About/Manifest.xml b/About/Manifest.xml index ec3aae2..372b332 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -2,5 +2,5 @@ RJW patch - Harvest Organs Post Mortem - 5400.0.1.5 - \ No newline at end of file + 6020.0.1.5 + diff --git a/Source/RJW_patch_Autopsy.sln b/Source/RJW_patch_Autopsy.sln index 21e9453..2246080 100644 --- a/Source/RJW_patch_Autopsy.sln +++ b/Source/RJW_patch_Autopsy.sln @@ -3,11 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.32113.165 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RJW_patch_Autopsy_1.3", "RJW_patch_Autopsy\RJW_patch_Autopsy_1.3.csproj", "{F17C6B3F-BA9D-4133-A201-1265A64BCB71}" +Project("{f6000eff-8113-444d-b3a9-5e4c2bf865e4}") = "RJW_patch_Autopsy_1.3", "RJW_patch_Autopsy\RJW_patch_Autopsy_1.3.csproj", "{f6000eff-8113-444d-b3a9-5e4c2bf865e4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RJW_patch_Autopsy_1.4", "RJW_patch_Autopsy\RJW_patch_Autopsy_1.4.csproj", "{FC20CA27-4400-4AAC-99AF-F18CAFAC942E}" +Project("{9bdc76c6-9494-462e-923e-c98c079a7494}") = "RJW_patch_Autopsy_1.4", "RJW_patch_Autopsy\RJW_patch_Autopsy_1.4.csproj", "{9bdc76c6-9494-462e-923e-c98c079a7494}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RJW_patch_Autopsy_1.5", "RJW_patch_Autopsy\RJW_patch_Autopsy_1.5.csproj", "{25A0821A-6B42-4FB0-A454-0AD22A7716E7}" +Project("{fa9a4a99-5a8e-4a19-9b84-940e4ac26e76}") = "RJW_patch_Autopsy_1.5", "RJW_patch_Autopsy\RJW_patch_Autopsy_1.5.csproj", "{fa9a4a99-5a8e-4a19-9b84-940e4ac26e76}" +EndProject +Project("{828ac463-72f1-4f6c-91e2-e0b7dae6c938}") = "RJW_patch_Autopsy_1.6", "RJW_patch_Autopsy\RJW_patch_Autopsy_1.6.csproj", "{828ac463-72f1-4f6c-91e2-e0b7dae6c938}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,18 +17,22 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F17C6B3F-BA9D-4133-A201-1265A64BCB71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F17C6B3F-BA9D-4133-A201-1265A64BCB71}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F17C6B3F-BA9D-4133-A201-1265A64BCB71}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F17C6B3F-BA9D-4133-A201-1265A64BCB71}.Release|Any CPU.Build.0 = Release|Any CPU - {FC20CA27-4400-4AAC-99AF-F18CAFAC942E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC20CA27-4400-4AAC-99AF-F18CAFAC942E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC20CA27-4400-4AAC-99AF-F18CAFAC942E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC20CA27-4400-4AAC-99AF-F18CAFAC942E}.Release|Any CPU.Build.0 = Release|Any CPU - {25A0821A-6B42-4FB0-A454-0AD22A7716E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25A0821A-6B42-4FB0-A454-0AD22A7716E7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25A0821A-6B42-4FB0-A454-0AD22A7716E7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25A0821A-6B42-4FB0-A454-0AD22A7716E7}.Release|Any CPU.Build.0 = Release|Any CPU + {f6000eff-8113-444d-b3a9-5e4c2bf865e4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {f6000eff-8113-444d-b3a9-5e4c2bf865e4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {f6000eff-8113-444d-b3a9-5e4c2bf865e4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {f6000eff-8113-444d-b3a9-5e4c2bf865e4}.Release|Any CPU.Build.0 = Release|Any CPU + {9bdc76c6-9494-462e-923e-c98c079a7494}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9bdc76c6-9494-462e-923e-c98c079a7494}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9bdc76c6-9494-462e-923e-c98c079a7494}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9bdc76c6-9494-462e-923e-c98c079a7494}.Release|Any CPU.Build.0 = Release|Any CPU + {fa9a4a99-5a8e-4a19-9b84-940e4ac26e76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {fa9a4a99-5a8e-4a19-9b84-940e4ac26e76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {fa9a4a99-5a8e-4a19-9b84-940e4ac26e76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {fa9a4a99-5a8e-4a19-9b84-940e4ac26e76}.Release|Any CPU.Build.0 = Release|Any CPU + {828ac463-72f1-4f6c-91e2-e0b7dae6c938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {828ac463-72f1-4f6c-91e2-e0b7dae6c938}.Debug|Any CPU.Build.0 = Debug|Any CPU + {828ac463-72f1-4f6c-91e2-e0b7dae6c938}.Release|Any CPU.ActiveCfg = Release|Any CPU + {828ac463-72f1-4f6c-91e2-e0b7dae6c938}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Source/RJW_patch_Autopsy/1.5/Patches/NewMedicalRecipesUtilityPatch.cs b/Source/RJW_patch_Autopsy/1.5/Patches/NewMedicalRecipesUtilityPatch.cs new file mode 100644 index 0000000..cd83291 --- /dev/null +++ b/Source/RJW_patch_Autopsy/1.5/Patches/NewMedicalRecipesUtilityPatch.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Verse; +using rjw; +using Autopsy; +using HarmonyLib; +using RimWorld; + +namespace RJW_patch_Autopsy +{ + [HarmonyPatch(typeof(NewMedicalRecipesUtility), nameof(NewMedicalRecipesUtility.TraverseBody))] + public static class NewMedicalRecipesUtilityPatch + { + private const bool DEBUG = false; + + private static void log(String message) + { + if (DEBUG) + { + Log.Message(message); + } + } + + [HarmonyPostfix] + public static IEnumerable AddRjwParts(IEnumerable __result, RecipeInfo recipeInfo, Corpse corpse, + float skillChance) + { + var results = __result.ToList(); + log($"Collected {results.Count} vanilla parts"); + + //Collect rjw rediffs + var rjwNaturalDiffs = (from x in corpse.InnerPawn.health.hediffSet.hediffs + where x is Hediff_NaturalSexPart + select x).ToList(); + var rjwArtificialDiffs = (from x in corpse.InnerPawn.health.hediffSet.hediffs + where x is Hediff_ArtificialSexPart + select x).ToList(); + + log($"Collected {rjwNaturalDiffs.Count} natural and {rjwArtificialDiffs.Count} artificial hediffs"); + + //Collect parts from hediffs rjw's surgery methods + var rjwNaturalThings = rjwNaturalDiffs.Select(hediff => + { + var tmp = SexPartAdder.recipePartRemover(hediff); + Log.Message($"obtained ${tmp} from ${hediff} via rjw"); + return tmp; + }).ToList(); + var rjwArtificialThings = rjwArtificialDiffs.Select(hediff => + { + var tmp = SexPartAdder.recipePartRemover(hediff); + Log.Message($"obtained ${tmp} from ${hediff} via rjw"); + return tmp; + }).ToList(); + + log( + $"Collected {rjwNaturalThings.Count} things from {rjwNaturalDiffs.Count} natural and {rjwArtificialThings.Count} things from {rjwArtificialDiffs.Count} artificial hediffs"); + + //Simulate success chance scaled with skill etc. + rjwNaturalThings.ForEach(t => + { + CompRottable rot = corpse.TryGetComp(); + if (DEBUG || rot == null + ? corpse.Age <= recipeInfo.CorpseValidAge + : rot.RotProgress + (corpse.Age - rot.RotProgress) * recipeInfo.FrozenDecay <= + recipeInfo.CorpseValidAge) results.Add(t); + }); + rjwArtificialThings.ForEach(t => + { + if (DEBUG || Rand.Chance(Math.Min(skillChance, recipeInfo.BionicChance))) results.Add(t); + }); + + //Remove all parts that were tried to harvest from the corpse + rjwNaturalDiffs.ForEach(d => corpse.InnerPawn.health.RemoveHediff(d)); + rjwArtificialDiffs.ForEach(d => corpse.InnerPawn.health.RemoveHediff(d)); + + if (results.Count > recipeInfo.PartNumber) + { + var random = new Random(); + results = results.OrderBy(_ => random.Next()).Take(recipeInfo.PartNumber).ToList(); + } + + foreach (var result in results) + { + yield return result; + } + } + } +} \ No newline at end of file diff --git a/Source/RJW_patch_Autopsy/About/About.xml b/Source/RJW_patch_Autopsy/About/About.xml index f056244..f109b9f 100644 --- a/Source/RJW_patch_Autopsy/About/About.xml +++ b/Source/RJW_patch_Autopsy/About/About.xml @@ -7,6 +7,7 @@
  • 1.3
  • 1.4
  • 1.5
  • +
  • 1.6
  • Stardust3D.RJW.patch.Autopsy This is a compatibility patch to enable 'Harvest Organs post mortem'/Autopsy to yield RJW bodyparts. diff --git a/Source/RJW_patch_Autopsy/About/Manifest.xml b/Source/RJW_patch_Autopsy/About/Manifest.xml index ec3aae2..372b332 100644 --- a/Source/RJW_patch_Autopsy/About/Manifest.xml +++ b/Source/RJW_patch_Autopsy/About/Manifest.xml @@ -2,5 +2,5 @@ RJW patch - Harvest Organs Post Mortem - 5400.0.1.5 - \ No newline at end of file + 6020.0.1.5 + diff --git a/Source/RJW_patch_Autopsy/RJW_patch_Autopsy.sln b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy.sln new file mode 100644 index 0000000..90eeced --- /dev/null +++ b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy.sln @@ -0,0 +1,42 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.2.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RJW_patch_Autopsy_1.3", "RJW_patch_Autopsy_1.3.csproj", "{509F8663-1A3C-7F4F-0FF3-F7D2D2666D13}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RJW_patch_Autopsy_1.4", "RJW_patch_Autopsy_1.4.csproj", "{2164C009-3D12-7504-A10A-36EB5F05083A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RJW_patch_Autopsy_1.5", "RJW_patch_Autopsy_1.5.csproj", "{4B7144D9-6A87-43FF-72CA-99A21FC60BA2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RJW_patch_Autopsy_1.6", "RJW_patch_Autopsy_1.6.csproj", "{F4D7D007-61A7-DDC0-56E7-BAA4B04C2D63}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {509F8663-1A3C-7F4F-0FF3-F7D2D2666D13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {509F8663-1A3C-7F4F-0FF3-F7D2D2666D13}.Debug|Any CPU.Build.0 = Debug|Any CPU + {509F8663-1A3C-7F4F-0FF3-F7D2D2666D13}.Release|Any CPU.ActiveCfg = Release|Any CPU + {509F8663-1A3C-7F4F-0FF3-F7D2D2666D13}.Release|Any CPU.Build.0 = Release|Any CPU + {2164C009-3D12-7504-A10A-36EB5F05083A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2164C009-3D12-7504-A10A-36EB5F05083A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2164C009-3D12-7504-A10A-36EB5F05083A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2164C009-3D12-7504-A10A-36EB5F05083A}.Release|Any CPU.Build.0 = Release|Any CPU + {4B7144D9-6A87-43FF-72CA-99A21FC60BA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B7144D9-6A87-43FF-72CA-99A21FC60BA2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B7144D9-6A87-43FF-72CA-99A21FC60BA2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B7144D9-6A87-43FF-72CA-99A21FC60BA2}.Release|Any CPU.Build.0 = Release|Any CPU + {F4D7D007-61A7-DDC0-56E7-BAA4B04C2D63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4D7D007-61A7-DDC0-56E7-BAA4B04C2D63}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4D7D007-61A7-DDC0-56E7-BAA4B04C2D63}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4D7D007-61A7-DDC0-56E7-BAA4B04C2D63}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DCFFD481-5BB8-4A48-BF2E-5FE881B5FC23} + EndGlobalSection +EndGlobal diff --git a/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.3.csproj b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.3.csproj index 7a2d848..a9584e1 100644 --- a/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.3.csproj +++ b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.3.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {F17C6B3F-BA9D-4133-A201-1265A64BCB71} + {f6000eff-8113-444d-b3a9-5e4c2bf865e4} Library Properties RJW_patch_Autopsy @@ -13,10 +13,10 @@ 11 - ©2024 Stardust3D + ©2025 Stardust3D Stardust3D - 5400.0.1.5 - 5400.0.1.5 + 6020.0.1.5 + 5630.0.1.5 true RJW_patch_Autopsy.snk This is a compatibility patch to enable 'Harvest Organs post mortem'/Autopsy to yield RJW bodyparts. @@ -24,22 +24,25 @@ bin\Release\1.3\ + + bin\Debug\1.3\ + - + - + - ..\..\..\RimwoldAutopsy\1.3\Assemblies\Autopsy.dll + ..\dependencies\Harvest-Post-Mortem-1.3\1.3\Assemblies\Autopsy.dll - ..\..\..\rjw-base\1.3\Assemblies\RJW.dll + ..\dependencies\rjw\1.3\Assemblies\RJW.dll diff --git a/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.4.csproj b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.4.csproj index 648e613..901048e 100644 --- a/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.4.csproj +++ b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.4.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {fc20ca27-4400-4aac-99af-f18cafac942e} + {9bdc76c6-9494-462e-923e-c98c079a7494} Library Properties RJW_patch_Autopsy @@ -13,10 +13,10 @@ 11 - ©2024 Stardust3D + ©2025 Stardust3D Stardust3D - 5400.0.1.5 - 5400.0.1.5 + 6020.0.1.5 + 6020.0.1.5 true RJW_patch_Autopsy.snk This is a compatibility patch to enable 'Harvest Organs post mortem'/Autopsy to yield RJW bodyparts. @@ -24,22 +24,25 @@ bin\Release\1.4\ + + bin\Debug\1.4\ + - + - + - ..\..\..\RimwoldAutopsy\1.4\Assemblies\Autopsy.dll + ..\dependencies\Harvest-Post-Mortem-1.4\1.4\Assemblies\Autopsy.dll - ..\..\..\rjw-base\1.4\Assemblies\RJW.dll + ..\dependencies\rjw\1.4\Assemblies\RJW.dll diff --git a/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.5.csproj b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.5.csproj index e21a229..80e08ad 100644 --- a/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.5.csproj +++ b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.5.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {25a0821a-6b42-4fb0-a454-0ad22a7716e7} + {fa9a4a99-5a8e-4a19-9b84-940e4ac26e76} Library Properties RJW_patch_Autopsy @@ -13,10 +13,10 @@ 11 - ©2024 Stardust3D + ©2025 Stardust3D Stardust3D - 5400.0.1.5 - 5400.0.1.5 + 6020.0.1.5 + 6020.0.1.5 true RJW_patch_Autopsy.snk This is a compatibility patch to enable 'Harvest Organs post mortem'/Autopsy to yield RJW bodyparts. @@ -24,27 +24,31 @@ bin\Release\1.5\ + + bin\Debug\1.5\ + - + - - + + - ..\..\..\RimwoldAutopsy\1.5\Assemblies\Autopsy.dll + ..\dependencies\Harvest-Post-Mortem-1.6\1.6\Assemblies\Autopsy.dll - ..\..\..\rjw-base\1.5\Assemblies\RJW.dll + ..\dependencies\rjw\1.5\Assemblies\RJW.dll + diff --git a/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.6.csproj b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.6.csproj new file mode 100644 index 0000000..9c1813d --- /dev/null +++ b/Source/RJW_patch_Autopsy/RJW_patch_Autopsy_1.6.csproj @@ -0,0 +1,60 @@ + + + + Debug + AnyCPU + {828ac463-72f1-4f6c-91e2-e0b7dae6c938} + Library + Properties + RJW_patch_Autopsy + RJW_patch_Autopsy + net48 + 512 + + + 11 + ©2025 Stardust3D + Stardust3D + 6020.0.1.5 + 6020.0.1.5 + true + RJW_patch_Autopsy.snk + This is a compatibility patch to enable 'Harvest Organs post mortem'/Autopsy to yield RJW bodyparts. + + + bin\Release\1.6\ + + + bin\Debug\1.6\ + + + + + + + + + + + + + + ..\dependencies\Harvest-Post-Mortem-1.6\1.6\Assemblies\Autopsy.dll + + + ..\dependencies\rjw\1.6\Assemblies\RJW.dll + + + + + + + + + + + + + + + diff --git a/Source/build.gradle.kts b/Source/build.gradle.kts index 9788607..e3bdc22 100644 --- a/Source/build.gradle.kts +++ b/Source/build.gradle.kts @@ -11,7 +11,7 @@ plugins { alias(libs.plugins.versions) } -version = "5400.0.1.5" +version = "6020.0.1.5" val friendlyName = "rjw-patch-autopsy" tasks.register("buildC#_1.3") { @@ -50,10 +50,70 @@ tasks.register("buildC#_1.5") { // destinationDir = "build/msbuild/bin" } +tasks.register("buildC#_1.6") { + // either a solution file + // solutionFile = "${rootProject.name}.sln" + // or a project file (.csproj or .vbproj) + projectFile = file("${rootProject.name}/${rootProject.name}_1.6.csproj") + + targets = listOf("Restore", "Clean", "Rebuild") + configuration = "Release" + + // destinationDir = "build/msbuild/bin" +} + +tasks.register("buildC#_1.3_debug") { + // either a solution file + // solutionFile = "${rootProject.name}.sln" + // or a project file (.csproj or .vbproj) + projectFile = file("${rootProject.name}/${rootProject.name}_1.3.csproj") + + targets = listOf("Restore", "Clean", "Rebuild") + configuration = "Debug" + + // destinationDir = "build/msbuild/bin" +} + +tasks.register("buildC#_1.4_debug") { + // either a solution file + // solutionFile = "${rootProject.name}.sln" + // or a project file (.csproj or .vbproj) + projectFile = file("${rootProject.name}/${rootProject.name}_1.4.csproj") + + targets = listOf("Restore", "Clean", "Rebuild") + configuration = "Debug" + + // destinationDir = "build/msbuild/bin" +} + +tasks.register("buildC#_1.5_debug") { + // either a solution file + // solutionFile = "${rootProject.name}.sln" + // or a project file (.csproj or .vbproj) + projectFile = file("${rootProject.name}/${rootProject.name}_1.5.csproj") + + targets = listOf("Restore", "Clean", "Rebuild") + configuration = "Debug" + + // destinationDir = "build/msbuild/bin" +} + +tasks.register("buildC#_1.6_debug") { + // either a solution file + // solutionFile = "${rootProject.name}.sln" + // or a project file (.csproj or .vbproj) + projectFile = file("${rootProject.name}/${rootProject.name}_1.6.csproj") + + targets = listOf("Restore", "Clean", "Rebuild") + configuration = "Debug" + + // destinationDir = "build/msbuild/bin" +} + tasks.register("sign_1.3") { dependsOn("buildC#_1.3") workingDir = project.projectDir.resolve("${rootProject.name}/bin/Release/1.3/net472") - executable = "H:\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\\signtool.exe" + executable = "C:\\Windows Kits\\10\\bin\\10.0.26100.0\\x64\\signtool.exe" args = listOf( "sign", "/seal", @@ -71,7 +131,7 @@ tasks.register("sign_1.3") { tasks.register("sign_1.4") { dependsOn("buildC#_1.4") workingDir = project.projectDir.resolve("${rootProject.name}/bin/Release/1.4/net472") - executable = "H:\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\\signtool.exe" + executable = "C:\\Windows Kits\\10\\bin\\10.0.26100.0\\x64\\signtool.exe" args = listOf( "sign", "/seal", @@ -89,7 +149,25 @@ tasks.register("sign_1.4") { tasks.register("sign_1.5") { dependsOn("buildC#_1.5") workingDir = project.projectDir.resolve("${rootProject.name}/bin/Release/1.5/net48") - executable = "H:\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\\signtool.exe" + executable = "C:\\Windows Kits\\10\\bin\\10.0.26100.0\\x64\\signtool.exe" + args = listOf( + "sign", + "/seal", + "/t", + "http://timestamp.digicert.com", + "/a", + "/n", + "Stardust3D", + "/fd", + "certHash", + "${rootProject.name}.dll" + ) +} + +tasks.register("sign_1.6") { + dependsOn("buildC#_1.6") + workingDir = project.projectDir.resolve("${rootProject.name}/bin/Release/1.6/net48") + executable = "C:\\Windows Kits\\10\\bin\\10.0.26100.0\\x64\\signtool.exe" args = listOf( "sign", "/seal", @@ -105,7 +183,11 @@ tasks.register("sign_1.5") { } tasks.register("copy") { - dependsOn("copy_1.3", "copy_1.4", "copy_1.5", "copy_about") + dependsOn("copy_1.3", "copy_1.4", "copy_1.5", "copy_1.6", "copy_about") +} + +tasks.register("copy_debug") { + dependsOn("copy_1.3_debug", "copy_1.4_debug", "copy_1.5_debug", "copy_1.6_debug", "copy_about") } tasks.register("copy_about") { @@ -131,6 +213,36 @@ tasks.register("copy_1.5") { into(project.projectDir.parentFile.resolve("1.5")) } +tasks.register("copy_1.6") { + dependsOn("copyDll_1.6") + from(project.projectDir.resolve("${rootProject.name}/1.6")) + into(project.projectDir.parentFile.resolve("1.6")) +} + +tasks.register("copy_1.3_debug") { + dependsOn("copyDll_1.3_debug") + from(project.projectDir.resolve("${rootProject.name}/1.3")) + into(project.projectDir.parentFile.resolve("1.3")) +} + +tasks.register("copy_1.4_debug") { + dependsOn("copyDll_1.4_debug") + from(project.projectDir.resolve("${rootProject.name}/1.4")) + into(project.projectDir.parentFile.resolve("1.4")) +} + +tasks.register("copy_1.5_debug") { + dependsOn("copyDll_1.5_debug") + from(project.projectDir.resolve("${rootProject.name}/1.5")) + into(project.projectDir.parentFile.resolve("1.5")) +} + +tasks.register("copy_1.6_debug") { + dependsOn("copyDll_1.6_debug") + from(project.projectDir.resolve("${rootProject.name}/1.6")) + into(project.projectDir.parentFile.resolve("1.6")) +} + tasks.register("copyDll_1.3") { dependsOn("sign_1.3") from(project.projectDir.resolve("${rootProject.name}/bin/Release/1.3/net472/${rootProject.name}.dll")) @@ -149,6 +261,36 @@ tasks.register("copyDll_1.5") { into(project.projectDir.parentFile.resolve("1.5/Assemblies")) } +tasks.register("copyDll_1.6") { + dependsOn("sign_1.6") + from(project.projectDir.resolve("${rootProject.name}/bin/Release/1.6/net48/${rootProject.name}.dll")) + into(project.projectDir.parentFile.resolve("1.6/Assemblies")) +} + +tasks.register("copyDll_1.3_debug") { + dependsOn("buildC#_1.3_debug") + from(project.projectDir.resolve("${rootProject.name}/bin/Debug/1.3/net472/${rootProject.name}.dll")) + into(project.projectDir.parentFile.resolve("1.3/Assemblies")) +} + +tasks.register("copyDll_1.4_debug") { + dependsOn("buildC#_1.4_debug") + from(project.projectDir.resolve("${rootProject.name}/bin/Debug/1.4/net472/${rootProject.name}.dll")) + into(project.projectDir.parentFile.resolve("1.4/Assemblies")) +} + +tasks.register("copyDll_1.5_debug") { + dependsOn("buildC#_1.5_debug") + from(project.projectDir.resolve("${rootProject.name}/bin/Debug/1.5/net48/${rootProject.name}.dll")) + into(project.projectDir.parentFile.resolve("1.5/Assemblies")) +} + +tasks.register("copyDll_1.6_debug") { + dependsOn("buildC#_1.6_debug") + from(project.projectDir.resolve("${rootProject.name}/bin/Debug/1.6/net48/${rootProject.name}.dll")) + into(project.projectDir.parentFile.resolve("1.6/Assemblies")) +} + tasks.register("buildZip") { dependsOn("clean", ":copy") into("$friendlyName/1.3") { @@ -160,6 +302,9 @@ tasks.register("buildZip") { into("$friendlyName/1.5") { from(project.projectDir.parentFile.resolve("1.5")) } + into("$friendlyName/1.6") { + from(project.projectDir.parentFile.resolve("1.6")) + } into("$friendlyName/About") { from(project.projectDir.parentFile.resolve("About")) } @@ -177,6 +322,7 @@ tasks.clean { delete.add(project.projectDir.parentFile.resolve("1.3")) delete.add(project.projectDir.parentFile.resolve("1.4")) delete.add(project.projectDir.parentFile.resolve("1.5")) + delete.add(project.projectDir.parentFile.resolve("1.6")) delete.add(project.projectDir.parentFile.resolve("About")) } diff --git a/Source/dependencies/Harvest-Post-Mortem-1.3 b/Source/dependencies/Harvest-Post-Mortem-1.3 new file mode 160000 index 0000000..eabaf3d --- /dev/null +++ b/Source/dependencies/Harvest-Post-Mortem-1.3 @@ -0,0 +1 @@ +Subproject commit eabaf3d8fa247a49610c40557b136581322264fc diff --git a/Source/dependencies/Harvest-Post-Mortem-1.4 b/Source/dependencies/Harvest-Post-Mortem-1.4 new file mode 160000 index 0000000..bce9806 --- /dev/null +++ b/Source/dependencies/Harvest-Post-Mortem-1.4 @@ -0,0 +1 @@ +Subproject commit bce98068239f6882dabb8be3933c94b3295c08ea diff --git a/Source/dependencies/Harvest-Post-Mortem-1.5 b/Source/dependencies/Harvest-Post-Mortem-1.5 new file mode 160000 index 0000000..ae81f93 --- /dev/null +++ b/Source/dependencies/Harvest-Post-Mortem-1.5 @@ -0,0 +1 @@ +Subproject commit ae81f930ff579aa28d69c2a6f4687194fb6b669a diff --git a/Source/dependencies/Harvest-Post-Mortem-1.6 b/Source/dependencies/Harvest-Post-Mortem-1.6 new file mode 160000 index 0000000..ae81f93 --- /dev/null +++ b/Source/dependencies/Harvest-Post-Mortem-1.6 @@ -0,0 +1 @@ +Subproject commit ae81f930ff579aa28d69c2a6f4687194fb6b669a diff --git a/Source/dependencies/rjw b/Source/dependencies/rjw new file mode 160000 index 0000000..eb57e81 --- /dev/null +++ b/Source/dependencies/rjw @@ -0,0 +1 @@ +Subproject commit eb57e81800770c31641f3bd92b8f32e42fcfa013 diff --git a/Source/global.json b/Source/global.json index b5b37b6..9a523dc 100644 --- a/Source/global.json +++ b/Source/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.0", + "version": "10.0.0", "rollForward": "latestMajor", "allowPrerelease": false } diff --git a/Source/gradle/libs.versions.toml b/Source/gradle/libs.versions.toml index de22e81..3fe7d7e 100644 --- a/Source/gradle/libs.versions.toml +++ b/Source/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] -versions = "0.51.0" -msbuild = "4.6" +versions = "0.52.0" +msbuild = "4.7" [libraries] diff --git a/Source/gradle/wrapper/gradle-wrapper.jar b/Source/gradle/wrapper/gradle-wrapper.jar index e644113..1b33c55 100644 Binary files a/Source/gradle/wrapper/gradle-wrapper.jar and b/Source/gradle/wrapper/gradle-wrapper.jar differ diff --git a/Source/gradle/wrapper/gradle-wrapper.properties b/Source/gradle/wrapper/gradle-wrapper.properties index a441313..d4081da 100644 --- a/Source/gradle/wrapper/gradle-wrapper.properties +++ b/Source/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/Source/gradlew b/Source/gradlew index b740cf1..23d15a9 100644 --- a/Source/gradlew +++ b/Source/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -84,7 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -112,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -203,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -211,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/Source/gradlew.bat b/Source/gradlew.bat index 25da30d..db3a6ac 100644 --- a/Source/gradlew.bat +++ b/Source/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -68,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell