Example #1
0
        public void CreateMenu(Game1 game)
        {
            _desktop = new Desktop(game.Batch);

            var root = _desktop.Root;

            var label = _factory.CreateLabel(1);

            label.OffsetFrom = Anchors.TopCenter;
            label.Offset     = new Vector2(0, 40);
            label.Text       = "My cool game";
            label.ComputeSize(Vector2.Zero, Autosize.Content);

            var content = new ContentControll();

            content.OffsetFrom = Anchors.Center;

            var start = _factory.CreateTextButton(0);

            start.OffsetFrom = Anchors.Center;
            start.Offset     = new Vector2(0, -80);
            start.Text       = "New game";
            start.MouseUp   += (s, e) =>
            {
                LoadGame();
            };

            var options = _factory.CreateTextButton(0);

            options.OffsetFrom = Anchors.Center;
            options.Text       = "Options";

            var exit = _factory.CreateTextButton(0);

            exit.OffsetFrom = Anchors.Center;
            exit.Offset     = new Vector2(0, 80);
            exit.Text       = "Exit";

            var border = _factory.CreatePanel(3);

            border.Border = new Margin(40, 40);
            border.ComputeSize(_desktop.Size - new Vector2(25), Autosize.Fill);
            border.OffsetFrom = Anchors.Center;
            border.StretchTexture();

            var panel = _factory.CreatePanel(4);

            panel.ComputeSize(_desktop.Size, Autosize.Content);

            content.Children.Add(panel);
            content.Children.Add(start);
            content.Children.Add(options);
            content.Children.Add(exit);

            content.ComputeSize(root.Size, Autosize.Content);

            root.Children.Add(border);
            root.Children.Add(label);
            root.Children.Add(content);
        }
Example #2
0
        public PauseMenu(Game1 game) : base(game.Batch)
        {
            var _factory = game.Services.GetService <ControlsFactory>();

            var label = _factory.CreateLabel(fontName: "fonts/commodore64");

            label.OffsetFrom = Anchors.TopCenter;
            label.Offset     = new Vector2(0, 40);
            label.Text       = "Pause";
            label.ComputeSize(Vector2.Zero, Autosize.Content);

            var content = new ContentControll();

            content.OffsetFrom = Anchors.Center;

            var start = _factory.CreateTextButton(0);

            start.OffsetFrom = Anchors.Center;
            start.Offset     = new Vector2(0, -80);
            start.Text       = "Continue";
            start.MouseUp   += (s, e) => GameContext.Hud.Default();

            var save = _factory.CreateTextButton(0);

            save.OffsetFrom = Anchors.Center;
            save.Text       = "Save";
            save.MouseUp   += (s, e) => {
                new SaveContext().Save();
            };

            var exit = _factory.CreateTextButton(0);

            exit.OffsetFrom = Anchors.Center;
            exit.Offset     = new Vector2(0, 80);
            exit.Text       = "Exit";

            var panel = _factory.CreatePanel(4);

            panel.ComputeSize(Size, Autosize.Content);

            content.Children.Add(panel);
            content.Children.Add(start);
            content.Children.Add(save);
            content.Children.Add(exit);
            content.Children.Add(label);

            content.ComputeSize(Size, Autosize.Content);

            Root.Children.Add(content);
            this.Update(new GameTime());
        }
        public InventoryOpen(Game1 game) : base(game.Batch, SpriteSortMode.FrontToBack)
        {
            var factory = game.Services.GetService <ControlsFactory>();

            var root = new ContentControll();

            root.Size = Size;

            var frame = new ContentControll();

            frame.OffsetFrom = Anchors.Center;

            #region inventory
            var items = new WrapContent();
            items.OffsetFrom = Anchors.Center;

            var panel = factory.CreatePanel(4);
            panel.ComputeSize(Vector2.Zero, Autosize.Content);
            panel.OffsetFrom = Anchors.Center;

            items.Size = panel.Size - new Vector2(50);

            inventory            = new InventoryArea(items, factory);
            inventory.OffsetFrom = Anchors.Center;
            inventory.Size       = items.Size;

            #endregion

            #region equipment
            var helmetPanel = factory.CreatePanel(textureName: "ui/equipment/helmet");
            var helmetSlot  = new ItemSlot(helmetPanel, ItemTypeFlags.Helmet);
            helmetSlot.OffsetFrom = Anchors.TopRight;
            helmetSlot.Offset     = new Vector2(50, 0);

            var weaponPanel = factory.CreatePanel(textureName: "ui/equipment/sword");
            var weaponSlot  = new ItemSlot(weaponPanel, ItemTypeFlags.Weapon);
            weaponSlot.OffsetFrom = Anchors.TopRight;
            weaponSlot.Offset     = new Vector2(50, 55);
            #endregion

            frame.Size = panel.Size;
            frame.Children.Add(inventory);
            frame.Children.Add(panel);
            frame.Children.Add(items);
            frame.Children.Add(helmetSlot);
            frame.Children.Add(weaponSlot);

            root.Children.Add(frame);
            Root = root;
        }
Example #4
0
        public Default(Game1 game) : base(game.Batch)
        {
            var factory = game.Services.GetService <ControlsFactory>();

            var root = new ContentControll();

            root.Size = Size;

            var inventory = factory.CreateButton <Button>(2);

            inventory.OffsetFrom = Anchors.BottomRight;
            inventory.Offset     = new Vector2(-20, -30);

            inventory.MouseUp += (s, e) => GameContext.Hud.OpenInventory(GameContext.Player);

            var toBattle = factory.CreateButton <Button>(8);

            toBattle.OffsetFrom = Anchors.BottomRight;
            toBattle.Offset     = new Vector2(-80, -30);

            toBattle.MouseUp += (s, e) => GameContext.Combat.StartBattle();

            var panel = factory.CreatePanel(5);

            panel.ComputeSize(Vector2.Zero, Autosize.Content);
            panel.OffsetFrom = Anchors.BottomRight;
            var mousePanel = new MouseControl();

            mousePanel.Size       = panel.Size;
            mousePanel.OffsetFrom = Anchors.BottomRight;

            mousePanel.MouseEnter += (s, e) => GameContext.Hud.IsMouseOnHud = true;
            mousePanel.MouseLeave += (s, e) => GameContext.Hud.IsMouseOnHud = false;

            root.Children.Add(panel);
            root.Children.Add(mousePanel);
            root.Children.Add(inventory);
            root.Children.Add(toBattle);

            Root = root;
        }
Example #5
0
        public ChestOpen(Game1 game) : base(game.Batch, SpriteSortMode.FrontToBack)
        {
            var factory = game.Services.GetService <ControlsFactory>();

            var root = new ContentControll();

            root.Size = Size;

            var frame = new ContentControll();

            frame.OffsetFrom = Anchors.Center;

            #region left_inventory

            var leftFrame = new ContentControll();

            var leftItems = new WrapContent();
            leftItems.OffsetFrom = Anchors.Center;

            var leftPanel = factory.CreatePanel(4);
            leftPanel.OffsetFrom = Anchors.Center;

            leftItems.Size = leftPanel.Size - new Vector2(50);

            leftInventory            = new InventoryArea(leftItems, factory);
            leftInventory.Size       = leftItems.Size;
            leftInventory.OffsetFrom = Anchors.Center;

            leftFrame.Children.Add(leftPanel);
            leftFrame.Children.Add(leftItems);
            leftFrame.Children.Add(leftInventory);

            leftFrame.Size       = leftPanel.Size;
            leftFrame.OffsetFrom = Anchors.CenterRight;

            #endregion

            #region right_inventory

            var rightFrame = new ContentControll();

            var rightItems = new WrapContent();
            rightItems.OffsetFrom = Anchors.Center;

            var rightPanel = factory.CreatePanel(4);
            rightPanel.OffsetFrom = Anchors.Center;

            rightItems.Size = rightPanel.Size - new Vector2(50);

            rightInventory            = new InventoryArea(rightItems, factory);
            rightInventory.Size       = rightItems.Size;
            rightInventory.OffsetFrom = Anchors.Center;

            rightFrame.Children.Add(rightPanel);
            rightFrame.Children.Add(rightItems);
            rightFrame.Children.Add(rightInventory);
            rightFrame.OffsetFrom = Anchors.CenterLeft;

            rightFrame.Size = rightPanel.Size;

            #endregion

            frame.Children.Add(leftFrame);
            frame.Children.Add(rightFrame);

            root.Children.Add(frame);
            Root = root;
        }
 public InventoryArea(ContentControll content, ControlsFactory factory)
 {
     _content = content;
     _factory = factory;
 }