public GodModeTool(DwarfGUI gui, GameMaster master) { GUI = gui; Player = master; SelectorPanel = new Window(GUI, gui.RootComponent) { LocalBounds = new Rectangle(200, 100, 300, 100) }; Label label = new Label(GUI, SelectorPanel, "Cheat Mode!", GUI.DefaultFont) { LocalBounds = new Rectangle(10, 10, 250, 32) }; SelectorBox = new ComboBox(GUI, SelectorPanel) { LocalBounds = new Rectangle(10, 64, 250, 32), WidthSizeMode = GUIComponent.SizeMode.Fit }; IsActive = false; Chunks = PlayState.ChunkManager; foreach (string s in RoomLibrary.GetRoomTypes()) { SelectorBox.AddValue("Build " + s); } List <string> strings = EntityFactory.EntityFuncs.Keys.ToList(); strings.Sort(); foreach (string s in strings) { SelectorBox.AddValue(s); } foreach (VoxelType type in VoxelLibrary.PrimitiveMap.Keys.Where(type => type.Name != "empty" && type.Name != "water")) { SelectorBox.AddValue("Place " + type.Name); } SelectorBox.AddValue("Delete Block"); SelectorBox.AddValue("Kill Block"); SelectorBox.AddValue("Kill Things"); SelectorBox.AddValue("Fill Water"); SelectorBox.AddValue("Fill Lava"); SelectorBox.AddValue("Fire"); SelectorBox.OnSelectionModified += SelectorBox_OnSelectionModified; SelectorPanel.IsVisible = false; }
public void SetupBuildRoomTab() { BuildRoomTab = new BuildTab() { Tab = Selector.AddTab("Rooms") }; CreateBuildTab(BuildRoomTab); BuildRoomTab.BuildButton.OnClicked += BuildRoomButton_OnClicked; List <string> roomTypes = RoomLibrary.GetRoomTypes().ToList(); int numRooms = roomTypes.Count(); int numColumns = 1; GridLayout layout = new GridLayout(GUI, BuildRoomTab.Scroller, numRooms, numColumns) { LocalBounds = new Rectangle(0, 0, 720, 40 * numRooms), EdgePadding = 0, WidthSizeMode = SizeMode.Fit, HeightSizeMode = SizeMode.Fixed }; int i = 0; foreach (string roomType in roomTypes) { RoomData room = RoomLibrary.GetData(roomType); GridLayout roomLayout = new GridLayout(GUI, layout, 1, 3) { WidthSizeMode = SizeMode.Fixed, HeightSizeMode = SizeMode.Fixed, EdgePadding = 0 }; roomLayout.OnClicked += () => RoomTabOnClicked(room); int i1 = i; roomLayout.OnHover += () => HoverItem(layout, i1); layout.SetComponentPosition(roomLayout, 0, i, 1, 1); ImagePanel icon = new ImagePanel(GUI, roomLayout, room.Icon) { KeepAspectRatio = true }; roomLayout.SetComponentPosition(icon, 0, 0, 1, 1); Label description = new Label(GUI, roomLayout, room.Name, GUI.SmallFont) { ToolTip = room.Description }; roomLayout.SetComponentPosition(description, 1, 0, 1, 1); i++; } layout.UpdateSizes(); }
public GodModeTool(DwarfGUI gui, GameMaster master) { GUI = gui; Player = master; SelectorPanel = new Window(GUI, gui.RootComponent) { LocalBounds = new Rectangle(5, 5, 300, 200) }; Label label = new Label(GUI, SelectorPanel, "Cheat Mode!", GUI.DefaultFont) { LocalBounds = new Rectangle(10, 10, 250, 32) }; SelectorBox = new ComboBox(GUI, SelectorPanel) { LocalBounds = new Rectangle(10, 64, 250, 32), WidthSizeMode = GUIComponent.SizeMode.Fit }; IsActive = false; Chunks = Player.World.ChunkManager; foreach (string s in RoomLibrary.GetRoomTypes()) { SelectorBox.AddValue("Build/" + s); } List <string> strings = EntityFactory.EntityFuncs.Keys.ToList(); strings.Sort(); foreach (string s in strings) { SelectorBox.AddValue("Spawn/" + s); } foreach (VoxelType type in VoxelLibrary.PrimitiveMap.Keys.Where(type => type.Name != "empty" && type.Name != "water")) { SelectorBox.AddValue("Place/" + type.Name); } SelectorBox.AddValue("Delete Block"); SelectorBox.AddValue("Kill Block"); SelectorBox.AddValue("Kill Things"); SelectorBox.AddValue("Fill Water"); SelectorBox.AddValue("Fill Lava"); SelectorBox.AddValue("Fire"); SelectorBox.OnSelectionModified += SelectorBox_OnSelectionModified; Button tradeButton = new Button(GUI, SelectorPanel, "Send Trade Envoy", GUI.DefaultFont, Button.ButtonMode.PushButton, null) { LocalBounds = new Rectangle(10, 128, 200, 50) }; tradeButton.OnClicked += () => { Faction toSend = null; foreach (var faction in Player.World.ComponentManager.Factions.Factions) { if (faction.Value.Race.IsIntelligent && faction.Value.Race.IsNative) { toSend = faction.Value; break; } } if (toSend == null) { return; } Player.World.ComponentManager.Diplomacy.SendTradeEnvoy(toSend, Player.World); }; SelectorPanel.IsVisible = false; }