private static void GetGizmos(Pawn __instance, ref IEnumerable <Gizmo> __result) { if (__instance.IsColonistPlayerControlled) { if (__instance.inventory != null) { List <Thing> rangedWeapons; List <Thing> meleeWeapons; GettersFilters.getWeaponLists(out rangedWeapons, out meleeWeapons, __instance.inventory); GoldfishModule pawnMemory = GoldfishModule.GetGoldfishForPawn(__instance); //if (pawnMemory == null) // return; if (rangedWeapons.Count > 0 || meleeWeapons.Count > 0 || (pawnMemory != null && pawnMemory.weapons.Count > 0)) { List <ThingDef> rangedWeaponMemories = new List <ThingDef>(); List <ThingDef> meleeWeaponMemories = new List <ThingDef>(); if (pawnMemory != null) { foreach (string weapon in pawnMemory.weapons) { ThingDef wepDef = DefDatabase <ThingDef> .GetNamedSilentFail(weapon); if (wepDef == null) { continue; } if (wepDef.IsMeleeWeapon) { meleeWeaponMemories.Add(wepDef); } else if (wepDef.IsRangedWeapon) { rangedWeaponMemories.Add(wepDef); } } } Gizmo_SidearmsList advanced = new Gizmo_SidearmsList(__instance, rangedWeapons, meleeWeapons, rangedWeaponMemories, meleeWeaponMemories); advanced.defaultLabel = "DrawSidearm_gizmoTitle".Translate(); //draft.hotKey = KeyBindingDefOf.CommandColonistDraft; advanced.defaultDesc = "DrawSidearm_gizmoTooltip".Translate(); List <Gizmo> results = new List <Gizmo>(); foreach (Gizmo gizmo in __result) { results.Add(gizmo); } results.Add(advanced); __result = results; } } } }
public static void GetGizmos(Pawn __instance, ref IEnumerable <Gizmo> __result) { if ((__instance.IsColonistPlayerControlled && !__instance.story.DisabledWorkTagsBackstoryAndTraits.OverlapsWithOnAnyWorkType(WorkTags.Violent)) || DebugSettings.godMode) { if (__instance.equipment != null && __instance.inventory != null) { IEnumerable <ThingWithComps> carriedWeapons = __instance.getCarriedWeapons(); GoldfishModule pawnMemory = GoldfishModule.GetGoldfishForPawn(__instance); //if (carriedWeapons.Count() > 0 || (pawnMemory != null && pawnMemory.RememberedWeapons.Count > 0)) { List <ThingStuffPair> rangedWeaponMemories = new List <ThingStuffPair>(); List <ThingStuffPair> meleeWeaponMemories = new List <ThingStuffPair>(); if (pawnMemory != null) { foreach (ThingStuffPair weapon in pawnMemory.RememberedWeapons) { if (weapon.thing.IsMeleeWeapon) { meleeWeaponMemories.Add(weapon); } else if (weapon.thing.IsRangedWeapon) { rangedWeaponMemories.Add(weapon); } } } Gizmo_SidearmsList advanced = new Gizmo_SidearmsList(__instance, carriedWeapons, pawnMemory.RememberedWeapons); List <Gizmo> results = new List <Gizmo>(); foreach (Gizmo gizmo in __result) { results.Add(gizmo); } results.Add(advanced); __result = results; } } } if (DebugSettings.godMode) { Gizmo_Brainscope brainscope = new Gizmo_Brainscope(__instance); List <Gizmo> results = new List <Gizmo>(); foreach (Gizmo gizmo in __result) { results.Add(gizmo); } results.Add(brainscope); __result = results; } }
public static void GetGizmos(Pawn __instance, ref IEnumerable <Gizmo> __result) { if (!__instance.IsValidSidearmsCarrier()) { return; } try { if ((__instance.IsColonistPlayerControlled) || DebugSettings.godMode) { if (__instance.equipment != null && __instance.inventory != null) { IEnumerable <ThingWithComps> carriedWeapons = __instance.getCarriedWeapons(includeTools: true); CompSidearmMemory pawnMemory = CompSidearmMemory.GetMemoryCompForPawn(__instance); if (pawnMemory == null) { return; } //if (carriedWeapons.Count() > 0 || (pawnMemory != null && pawnMemory.RememberedWeapons.Count > 0)) { List <ThingDefStuffDefPair> rangedWeaponMemories = new List <ThingDefStuffDefPair>(); List <ThingDefStuffDefPair> meleeWeaponMemories = new List <ThingDefStuffDefPair>(); if (pawnMemory != null) { foreach (ThingDefStuffDefPair weapon in pawnMemory.RememberedWeapons) { if (weapon.thing.IsMeleeWeapon) { meleeWeaponMemories.Add(weapon); } else if (weapon.thing.IsRangedWeapon) { rangedWeaponMemories.Add(weapon); } } } Gizmo_SidearmsList advanced = new Gizmo_SidearmsList(__instance, carriedWeapons, pawnMemory.RememberedWeapons); List <Gizmo> results = new List <Gizmo>(); results.Add(advanced); if (DebugSettings.godMode) { Gizmo_Brainscope brainscope = new Gizmo_Brainscope(__instance); results.Add(brainscope); } foreach (Gizmo gizmo in __result) { results.Add(gizmo); } ; __result = results; } } } } catch (Exception e) { Log.Error("Exception during SimpleSidearms gizmo intercept. Cancelling intercept. Exception: " + e.ToString()); } }