private void BuildFKC(Designator_Build des) { SoundDefOf.SelectDesignator.PlayOneShotOnCamera(); //des.SetStuffDef(stuff); des.ProcessInput(new UnityEngine.Event()); Find.DesignatorManager.Select(des); }
public override IEnumerable <Gizmo> GetGizmos() { foreach (Gizmo g in base.GetGizmos()) { yield return(g); } if (Find.World.GetComponent <WorldComponent_Uvhash>().CurrentCrystalStage >= CrystalStage.BookCreated) { ThingDef buildable = UvhashDefOf.Uvhash_BloodNexus; Designator_Build des = FindDesignator(buildable); ThingDef stuff = ThingDefOf.WoodLog; if (des == null) { yield break; } if (!des.Visible) { yield break; } var commandAction = new Command_Action { action = delegate { SoundDefOf.SelectDesignator.PlayOneShotOnCamera(); //des.SetStuffDef(stuff); des.ProcessInput(new UnityEngine.Event()); Find.DesignatorManager.Select(des); }, defaultLabel = buildable.label, defaultDesc = buildable.description, icon = des.icon, iconProportions = des.iconProportions, iconDrawScale = des.iconDrawScale, iconTexCoords = des.iconTexCoords }; if (stuff != null) { commandAction.defaultIconColor = stuff.stuffProps.color; } else { commandAction.defaultIconColor = buildable.IconDrawColor; } commandAction.hotKey = KeyBindingDefOf.Misc11; yield return(commandAction); } yield break; }
public override IEnumerable <Gizmo> GetGizmos() { foreach (Gizmo g in base.GetGizmos()) { yield return(g); } ThingDef buildable = UvhashDefOf.Uvhash_CastingAltar; Designator_Build des = FindDesignator(buildable); ThingDef stuff = ThingDefOf.WoodLog; if (des == null) { yield break; } if (!des.Visible) { yield break; } var commandAction = new Command_Action { action = delegate { SoundDefOf.SelectDesignator.PlayOneShotOnCamera(); //des.SetStuffDef(stuff); des.ProcessInput(new UnityEngine.Event()); Find.DesignatorManager.Select(des); }, defaultLabel = "BloodCommandBuildCastingAltar".Translate(), defaultDesc = "BloodCommandBuildCastingAltarDesc".Translate(), icon = des.icon, iconProportions = des.iconProportions, iconDrawScale = des.iconDrawScale, iconTexCoords = des.iconTexCoords }; if (stuff != null) { commandAction.defaultIconColor = stuff.stuffProps.color; } else { commandAction.defaultIconColor = buildable.IconDrawColor; } commandAction.hotKey = KeyBindingDefOf.Misc11; yield return(commandAction); yield break; }
public override IEnumerable <Gizmo> GetGizmos() { foreach (Gizmo g in base.GetGizmos()) { yield return(g); } ThingDef buildable = CultsDefOf.Cults_ForbiddenKnowledgeCenter; //ThingDef.Named("ForbiddenKnowledgeCenter"); Designator_Build des = FindDesignator(buildable); ThingDef stuff = ThingDefOf.WoodLog; if (des == null) { yield break; } if (!des.Visible) { yield break; } Command_Action command_Action = new Command_Action(); command_Action.action = delegate { SoundDefOf.SelectDesignator.PlayOneShotOnCamera(); //des.SetStuffDef(stuff); des.ProcessInput(new UnityEngine.Event()); Find.DesignatorManager.Select(des); }; command_Action.defaultLabel = "CommandBuildFKC".Translate(); command_Action.defaultDesc = "CommandBuildFKCDesc".Translate(); command_Action.icon = des.icon; command_Action.iconProportions = des.iconProportions; command_Action.iconDrawScale = des.iconDrawScale; command_Action.iconTexCoords = des.iconTexCoords; if (stuff != null) { command_Action.defaultIconColor = stuff.stuffProps.color; } else { command_Action.defaultIconColor = buildable.uiIconColor; } command_Action.hotKey = KeyBindingDefOf.Misc11; yield return(command_Action); yield break; }
static bool Prefix(Designator_Build __instance, Event ev) { if (entDefFI == null) { entDefFI = typeof(Designator_Build).GetField("entDef", BindingFlags.NonPublic | BindingFlags.Instance); stuffDefFI = typeof(Designator_Build).GetField("stuffDef", BindingFlags.NonPublic | BindingFlags.Instance); writeStuffFI = typeof(Designator_Build).GetField("writeStuff", BindingFlags.NonPublic | BindingFlags.Instance); } Map map = Find.CurrentMap; ThingDef thingDef = entDefFI.GetValue(__instance) as ThingDef; if (thingDef == null || !thingDef.MadeFromStuff || !WorldComp.HasInfiniteStorages(map)) { return(true); } List <FloatMenuOption> list = new List <FloatMenuOption>(); foreach (ThingDef current in map.resourceCounter.AllCountedAmounts.Keys) { if (current.IsStuff && current.stuffProps.CanMake(thingDef) && (DebugSettings.godMode || map.listerThings.ThingsOfDef(current).Count > 0)) { ThingDef localStuffDef = current; string labelCap = localStuffDef.LabelCap; list.Add(new FloatMenuOption(labelCap, delegate { __instance.ProcessInput(ev); Find.DesignatorManager.Select(__instance); stuffDefFI.SetValue(__instance, current); writeStuffFI.SetValue(__instance, true); }, MenuOptionPriority.Default, null, null, 0f, null, null)); } } foreach (Building_InfiniteStorage storage in WorldComp.GetInfiniteStorages(map)) { if (storage.Spawned) { foreach (Thing t in storage.StoredThings) { ThingDef current = t.def; if (current.IsStuff && current.stuffProps.CanMake(thingDef) && (DebugSettings.godMode || t.stackCount > 0)) { string labelCap = current.LabelCap; list.Add(new FloatMenuOption(labelCap, delegate { __instance.ProcessInput(ev); Find.DesignatorManager.Select(__instance); stuffDefFI.SetValue(__instance, current); writeStuffFI.SetValue(__instance, true); }, MenuOptionPriority.Default, null, null, 0f, null, null)); } } } } if (list.Count == 0) { Messages.Message("NoStuffsToBuildWith".Translate(), MessageTypeDefOf.RejectInput); } else { FloatMenu floatMenu = new FloatMenu(list); floatMenu.vanishIfMouseDistant = true; Find.WindowStack.Add(floatMenu); Find.DesignatorManager.Select(__instance); } return(false); }