Removed GetGizmos patch. CompGetGizmosExtra now works for non-colonists!

This commit is contained in:
amevarashi 2023-03-24 23:06:24 +05:00
parent 9e0a461db3
commit f363ed6c49
4 changed files with 17 additions and 44 deletions

View File

@ -15,15 +15,16 @@ namespace RJWSexperience
InjectRaces();
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Roslynator", "RCS1146:Use conditional access.", Justification = "race != null is needed")]
private static void InjectRaces()
{
IEnumerable<ThingDef> PawnDefs = DefDatabase<ThingDef>.AllDefs.Where(x => x.race != null && !x.race.IsMechanoid);
if (PawnDefs.EnumerableNullOrEmpty())
return;
CompProperties comp = new CompProperties(typeof(SexHistoryComp));
CompProperties compProperties = new CompProperties(typeof(SexHistoryComp));
foreach (ThingDef def in PawnDefs)
def.comps.Add(comp);
def.comps.Add(compProperties);
LogManager.GetLogger<DebugLogProvider>("StaticConstructorOnStartup").Message($"Injected SexHistoryComp into {PawnDefs.Count()} pawn Defs");
}

View File

@ -1,41 +0,0 @@
using HarmonyLib;
using RJWSexperience.SexHistory;
using System.Collections.Generic;
using Verse;
namespace RJWSexperience
{
[HarmonyPatch(typeof(Pawn), nameof(Pawn.GetGizmos))]
public static class Pawn_GetGizmos
{
private static Configurations Settings => SexperienceMod.Settings;
public static bool Prepare() => Settings.EnableSexHistory;
public static void Postfix(ref IEnumerable<Gizmo> __result, Pawn __instance)
{
if (Settings.HideGizmoWhenDrafted && __instance.Drafted)
return;
if (Find.Selector.NumSelected > 1)
return;
if (Settings.HideGizmoWithRJW && !rjw.RJWSettings.show_RJW_designation_box)
return;
SexHistoryComp history = __instance.TryGetComp<SexHistoryComp>();
if (history == null)
return;
__result = AddHistoryGizmo(history.Gizmo, __result);
}
private static IEnumerable<Gizmo> AddHistoryGizmo(Gizmo historyGizmo, IEnumerable<Gizmo> gizmos)
{
foreach (Gizmo gizmo in gizmos)
yield return gizmo;
yield return historyGizmo;
}
}
}

View File

@ -59,7 +59,6 @@
<Compile Include="LustUtility.cs" />
<Compile Include="Patches\ConditionalDefLoad.cs" />
<Compile Include="Patches\DefInjection.cs" />
<Compile Include="Patches\GetGizmos.cs" />
<Compile Include="Settings\ISettingHandle.cs" />
<Compile Include="Settings\SettingHandle.cs" />
<Compile Include="Settings\SettingsContainer.cs" />

View File

@ -424,6 +424,20 @@ namespace RJWSexperience.SexHistory
return pawn?.IsVirgin() == true;
}
public override IEnumerable<Gizmo> CompGetGizmosExtra()
{
if (SexperienceMod.Settings.HideGizmoWhenDrafted && (parent as Pawn)?.Drafted == true)
yield break;
if (Find.Selector.NumSelected > 1)
yield break;
if (SexperienceMod.Settings.HideGizmoWithRJW && !RJWSettings.show_RJW_designation_box)
yield break;
yield return Gizmo;
}
public override void Initialize(CompProperties props)
{
base.Initialize(props);