コード例 #1
0
ファイル: MenuFactory.cs プロジェクト: dionvc/factorygame
        public MenuComponent CreateMachineInterface(Machine machine, Player player, RecipeCollection recipeCollection)
        {
            Font          menuFont        = fontContainer.GetFont("SairaRegular");
            MenuPanel     machinePanel    = new MenuPanel(new Vector2i(0, 0), new Vector2i(500, 200), new FloatRect(0, 0, 96, 96), 8, null, new Color(255, 255, 255, 224));
            MenuInventory inputInventory  = new MenuInventory(new Vector2i(96, 64), machine.input, player, machine, menuFont);
            MenuInventory outputInventory = new MenuInventory(new Vector2i(96, 64), machine.result, player, machine, menuFont);

            outputInventory.allowInsertion = false;
            MenuProgressBar recipeProgress = new MenuProgressBar(new Vector2i(128, 16), new FloatRect(0, 0, 32, 32), new FloatRect(0, 0, 32, 32), machine.GetProgress, new Color(196, 92, 0));
            MenuDrawable    machineGraphic = new MenuDrawable(new Vector2i(128, 128), machine, 0);

            Recipe[]  recipes     = recipeCollection.GetRecipes(new string[] { machine.name });
            MenuPanel recipePanel = CreateRecipePanel(machine.ApplyRecipe, player, recipes);

            machinePanel.AttachComponent(recipePanel);
            recipePanel.SetPivots("right", "center", "outside", 0);
            recipePanel.SetInitialPosition(machinePanel);
            recipePanel.lockedPosition = true;
            machinePanel.AttachComponent(inputInventory);
            machinePanel.AttachComponent(recipeProgress);
            machinePanel.AttachComponent(outputInventory);
            machinePanel.AttachComponent(machineGraphic);
            inputInventory.SetInitialPosition();
            recipeProgress.SetPivots("right", "center", "outside", 0);
            recipeProgress.SetInitialPosition(inputInventory);
            outputInventory.SetPivots("right", "center", "outside", 0);
            outputInventory.SetInitialPosition(inputInventory);
            menuContainer.AttachMenu(machinePanel);
            machinePanel.closePanelKey = InputBindings.showInventory;
            menuContainer.ClosePanelsWithTag("EntityGUI");
            machinePanel.panelTag = "EntityGUI";
            machinePanel.SetInitialPosition(camera.GetGUIView());

            return(machinePanel);
        }
コード例 #2
0
ファイル: MenuFactory.cs プロジェクト: dionvc/factorygame
        public void CreatePauseMenu()
        {
            Font pauseMenuFont = fontContainer.GetFont("SairaRegular");

            MenuPanel pausemenu = new MenuPanel(new Vector2i(0, 0), new Vector2i(200, 200), new FloatRect(0, 0, 96, 96), 4, program.SwitchGameState, new Color(255, 255, 255, 224));

            pausemenu.tag = "inGame";

            MenuText   resumeGameText   = new MenuText(new Vector2i(150, 50), pauseMenuFont, "Resume Game", 24, 0.6f);
            MenuButton resumeGameButton = new MenuButton(new Vector2i(150, 50), pausemenu.ClosePanel);

            resumeGameButton.tag = "inGame";

            MenuText   endGameText   = new MenuText(new Vector2i(150, 50), pauseMenuFont, "Return to Title", 24, 0.6f);
            MenuButton endGameButton = new MenuButton(new Vector2i(150, 50), program.SwitchGameState);

            endGameButton.tag = "mainMenu";

            MenuText   quitGameText   = new MenuText(new Vector2i(150, 50), pauseMenuFont, "Quit Game", 24, 0.6f);
            MenuButton quitGameButton = new MenuButton(new Vector2i(150, 50), program.SwitchGameState);

            quitGameButton.tag = "exit";

            pausemenu.AttachComponent(resumeGameButton);
            resumeGameButton.AttachComponent(resumeGameText);
            pausemenu.AttachComponent(endGameButton);
            endGameButton.AttachComponent(endGameText);
            pausemenu.AttachComponent(quitGameButton);
            quitGameButton.AttachComponent(quitGameText);

            pausemenu.closePanelKey = InputBindings.showPauseMenu;
            pausemenu.SetPivots("center", "center", "inside", 0);
            pausemenu.SetInitialPosition(camera.GetGUIView());
            resumeGameButton.SetPivots("top", "center", "inside", 25);
            resumeGameButton.SetInitialPosition(camera.GetGUIView());
            endGameButton.SetPivots("bottom", "center", "outside", 0);
            endGameButton.SetInitialPosition(resumeGameButton);
            quitGameButton.SetPivots("bottom", "center", "outside", 0);
            quitGameButton.SetInitialPosition(endGameButton);

            menuContainer.AttachMenu(pausemenu);

            //Pause the game
            program.SwitchGameState("paused");
        }
コード例 #3
0
ファイル: MenuFactory.cs プロジェクト: dionvc/factorygame
        public void CreateMinimap()
        {
            MenuPanel    minimapPanel = new MenuPanel(new Vector2i(0, 0), new Vector2i(300, 350), new FloatRect(0, 0, 96, 96), 4, null, new Color(255, 255, 255, 224));
            MenuWorldMap minimap      = new MenuWorldMap(new Vector2i(250, 250), camera, renderer);

            minimap.mapScale = 1.25f;
            MenuButton minimapPollutionToggle = new MenuButton(new Vector2i(50, 50), minimap.TogglePollution);

            minimapPanel.AttachComponent(minimap);
            minimapPanel.AttachComponent(minimapPollutionToggle);
            minimapPollutionToggle.SetInitialPosition(camera.GetGUIView());
            minimapPanel.closePanelKey = InputBindings.showMinimap;
            minimapPanel.SetPivots("top", "right", "inside", 0);
            minimapPanel.SetInitialPosition(camera.GetGUIView());
            minimapPanel.lockedPosition = true;
            minimap.SetPivots("top", "center", "inside", 25);
            minimap.SetInitialPosition(camera.GetGUIView());
            minimapPollutionToggle.SetPivots("bottom", "center", "inside", 25);
            minimapPollutionToggle.SetInitialPosition(camera.GetGUIView());
            menuContainer.AttachMenu(minimapPanel);
        }