Example #1
0
        public MenuInGame(GameState gameState) : base(gameState)
        {
            var btnMinimap = new WidgetSprite
            {
                Anchor     = Anchor.TopRight,
                Origine    = Anchor.TopRight,
                Sprite     = new Sprite(Resources.TileIcons, new Point(5, 4)),
                UnitOffset = new Point(-16, 16),
            };

            var playerStats = new WidgetPlayerStats(GameState.LocalPlayer.Entity)
            {
                Dock      = Dock.Top,
                UnitBound = new Rectangle(0, 0, 320, 64),
            };

            var minimapPanel = new WidgetFancyPanel()
            {
                Enabled    = false,
                Anchor     = Anchor.TopRight,
                Origine    = Anchor.TopRight,
                UnitBound  = new Rectangle(0, 0, 320, 320),
                UnitOffset = new Point(-16, 16),
                Padding    = new Spacing(0),
                Content    = new WidgetMinimap(gameState),
            };

            var hotBar = new WidgetHotBar(GameState.LocalPlayer.Entity.GetComponent <ComponentInventory>().Content)
            {
                Dock       = Dock.Bottom,
                UnitOffset = new Point(0, -16)
            };

            Content = new LayoutDock
            {
                Children =
                {
                    playerStats, minimapPanel, btnMinimap, hotBar,

                    new WidgetButton
                    {
                        Text       = "Inventory",
                        Origine    = Anchor.BottomLeft,
                        Anchor     = Anchor.BottomLeft,
                        UnitOffset = new Point(16, -16)
                    }
                    .RegisterMouseClickEvent(
                        (sender) => { GameState.CurrentMenu = new MenuGamePaused(GameState); })
                },
                Padding = new Spacing(16)
            };

            btnMinimap.MouseClick += (sender) =>
            {
                minimapPanel.Toggle();
                minimapPanel.RefreshLayout();
                sender.Disable();
            };
            minimapPanel.MouseClick += (sender) =>
            {
                sender.Toggle();
                btnMinimap.Enable();
            };
        }
Example #2
0
        public MenuInGame(GameState gameState) : base(gameState)
        {
            // On screen button -----------------------------------------------

            btnAttack = new Button
            {
                Anchor     = Anchor.BottomRight,
                Origine    = Anchor.BottomRight,
                Text       = "ATTACK",
                UnitBound  = new Rectangle(0, 0, 128, 128),
                UnitOffset = new Point(-128, 0)
            };

            btnAction = new Button
            {
                Anchor    = Anchor.BottomRight,
                Origine   = Anchor.BottomRight,
                Text      = "ACTION",
                UnitBound = new Rectangle(0, 0, 128, 128)
            };

            btnPickup = new Button
            {
                Anchor     = Anchor.BottomRight,
                Origine    = Anchor.BottomRight,
                Text       = "PICKUP",
                UnitBound  = new Rectangle(0, 0, 128, 128),
                UnitOffset = new Point(0, -128),
            };

            btnDrop = new Button
            {
                Anchor     = Anchor.BottomRight,
                Origine    = Anchor.BottomRight,
                Text       = "DROP",
                UnitBound  = new Rectangle(0, 0, 128, 128),
                UnitOffset = new Point(-128, -128)
            };

            btnMinimap = new SpriteButton
            {
                Anchor     = Anchor.TopRight,
                Enabled    = false,
                Origine    = Anchor.TopRight,
                Sprite     = new Sprite(Ressources.TileIcons, new Point(5, 4)),
                UnitOffset = new Point(-16, 16),
            };

            // Hud ------------------------------------------------------------

            _playerStats = new WidgetPlayerStats(GameState.LocalPlayer.Entity)
            {
                Anchor     = Anchor.TopLeft,
                Origine    = Anchor.TopLeft,
                UnitBound  = new Rectangle(0, 0, 320, 64),
                UnitOffset = new Point(16, 16),
            };

            _minimap = new WidgetFancyPanel()
            {
                Anchor     = Anchor.TopRight,
                Origine    = Anchor.TopRight,
                UnitBound  = new Rectangle(0, 0, 320, 320),
                UnitOffset = new Point(-16, 16),
                Content    = new WidgetMinimap(gameState)
            };

            _hotBar = new WidgetHotBar(GameState.LocalPlayer.Entity.GetComponent <Inventory>().Content)
            {
                Anchor     = Anchor.Bottom,
                Origine    = Anchor.Bottom,
                UnitOffset = new Point(0, -16)
            };

            Content = new Container
            {
                Childrens =
                {
                    _playerStats, _minimap,          btnMinimap,        _hotBar,

                    new Button {
                        Text = "Inventory",Origine = Anchor.BottomLeft, Anchor = Anchor.BottomLeft, UnitOffset = new Point(16, -16)
                    }
                    .RegisterMouseClickEvent((sender) => { GameState.CurrentMenu = new PlayerInventoryMenu(GameState); })
                }
            };

            btnAction.MouseClick  += (sender) => { GameState.LocalPlayer.InputHandler.HandleInput(PlayerInput.Action); };
            btnAttack.MouseHold   += (sender) => { GameState.LocalPlayer.InputHandler.HandleInput(PlayerInput.Attack); };
            btnDrop.MouseClick    += (sender) => { GameState.LocalPlayer.InputHandler.HandleInput(PlayerInput.DropItem); };
            btnPickup.MouseClick  += (sender) => { GameState.LocalPlayer.InputHandler.HandleInput(PlayerInput.Pickup); };
            btnMinimap.MouseClick += (sender) => { _minimap.Toggle(); sender.Disable(); };

            _minimap.MouseClick += (sender) => { sender.Toggle(); btnMinimap.Enable(); };

            if (Rise.Platform.Family == PlatformFamily.Mobile)
            {
                var c = (Container)Content;
                c.AddChilds(btnAttack, btnAction, btnDrop, btnPickup);
            }
        }