internal static void InjectReverseDesignators(ReverseDesignatorDatabase database) { var designatorsList = database.AllDesignators; // inject a chop designator to compensate for the removal of the chop functionality from Designator_PlantsCut designatorsList.Add(new Designator_PlantsHarvestWood()); // inject our custom designators foreach (var def in DefDatabase <ReverseDesignatorDef> .AllDefs) { try { if (AllowToolController.Instance.Handles.IsReverseDesignatorEnabled(def)) { var des = InstantiateThingDesignator(def); if (Current.Game.Rules.DesignatorAllowed(des)) { designatorsList.Add(des); } } } catch (Exception e) { throw new Exception("Failed to create reverse designator", e); } } // ensure newly created designators have context menus AllowToolController.Instance.ScheduleDesignatorDependencyRefresh(); }
static void Postfix(ReverseDesignatorDatabase __instance) { List <Designator> list = (List <Designator>) typeof(ReverseDesignatorDatabase).InvokeMember("desList", BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic, null, __instance, null); list.Add(new Designator_Unhaul()); }
static void Postfix(ReverseDesignatorDatabase __instance) { List <Designator> desList = (List <Designator>)LdesList.GetValue(__instance); List <RecipeDef> list = DefDatabase <RecipeDef> .AllDefsListForReading; foreach (var rec in list.Where(x => x.AllRecipeUsers?.OfType <BuildableDef>().Any() == true && x.ingredients?.Count() == 1 && x.ingredients[0]?.filter?.AnyAllowedDef?.stackLimit < 2)) { Designator_MicroRecipe designator = new Designator_MicroRecipe(rec, rec.AllRecipeUsers.FirstOrDefault(y => y is BuildableDef)); if (designator.designationDef != null) { desList.Add(designator); } } }
public static void OnReverseDesignatorInit(ReverseDesignatorDatabase database) { var designatorsList = (List <Designator>)AllowToolController.ReverseDesignatorDatabaseDesListField.GetValue(database); foreach (var def in DefDatabase <ReverseDesignatorDef> .AllDefs) { if (AllowToolController.Instance.IsReverseDesignatorEnabledInSettings(def)) { var des = AllowToolController.Instance.InstantiateDesignator(def.designatorClass, def.designatorDef); if (Current.Game.Rules.DesignatorAllowed(des)) { designatorsList.Add(des); } } } }
public static void InjectCustomReverseDesignators(ReverseDesignatorDatabase database) { var designatorsList = database.AllDesignators; // inject a chop designator to compensate for the normalized Designator_PlantsCut designatorsList.Add(new Designator_PlantsHarvestWood()); // inject our custom designators foreach (var def in DefDatabase <ReverseDesignatorDef> .AllDefs) { if (AllowToolController.Instance.IsReverseDesignatorEnabledInSettings(def)) { var des = AllowToolController.Instance.InstantiateDesignator(def.designatorClass, def.designatorDef); if (Current.Game.Rules.DesignatorAllowed(des)) { designatorsList.Add(des); } } } DesignatorContextMenuController.PrepareReverseDesignatorContextMenus(); }
public static void InjectReverseDesignators(ReverseDesignatorDatabase __instance) { AllowToolController.Instance.OnReverseDesignatorDatabaseInit(__instance); }
public static void InjectReverseDesignators(ReverseDesignatorDatabase __instance) { ReverseDesignatorProvider.OnReverseDesignatorInit(__instance); }
public static void InjectReverseDesignators(ReverseDesignatorDatabase __instance) { ReverseDesignatorProvider.InjectCustomReverseDesignators(__instance); }
internal void OnReverseDesignatorDatabaseInit(ReverseDesignatorDatabase database) { ReverseDesignatorHandler.InjectReverseDesignators(database); ScheduleDesignatorDependencyRefresh(); }
public static void Postfix(ReverseDesignatorDatabase __instance, ref List <Designator> ___desList) { // Add upgrade turret designator to the list of reverse designators ___desList.Add(new Designator_UpgradeTurret()); }