private static void SpawnVehicleWithFaction() { List <DebugMenuOption> vehicles = new List <DebugMenuOption>(); List <DebugMenuOption> factions = new List <DebugMenuOption>(); Faction factionLocal = null; foreach (Faction faction in Find.World.factionManager.GetFactions(true, false, true, TechLevel.Undefined).OrderBy(f => f.def.defName)) { factions.Add(new DebugMenuOption(faction.def.defName, DebugMenuOptionMode.Action, delegate() { factionLocal = faction; foreach (VehicleDef vehicleDef in DefDatabase <VehicleDef> .AllDefs.OrderBy(d => d.defName)) { vehicles.Add(new DebugMenuOption(vehicleDef.defName, DebugMenuOptionMode.Tool, delegate() { Faction factionAssigned = faction; VehicleSpawner.SpawnVehicleRandomized(vehicleDef, Verse.UI.MouseCell(), Find.CurrentMap, factionLocal is null ? factionAssigned : factionLocal, Rot4.North, true); })); } Find.WindowStack.Add(new Dialog_DebugOptionListLister(vehicles)); })); } Find.WindowStack.Add(new Dialog_DebugOptionListLister(factions)); }
private static void SpawnVehicleRandomized() { List <DebugMenuOption> list = new List <DebugMenuOption>(); foreach (VehicleDef vehicleDef in DefDatabase <VehicleDef> .AllDefs.OrderBy(d => d.defName)) { list.Add(new DebugMenuOption(vehicleDef.defName, DebugMenuOptionMode.Tool, delegate() { Faction faction = Faction.OfPlayer; VehicleSpawner.SpawnVehicleRandomized(vehicleDef, Verse.UI.MouseCell(), Find.CurrentMap, faction); })); } Find.WindowStack.Add(new Dialog_DebugOptionListLister(list)); }