Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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;
        }