public MenuChest(Entity entity, Entity chest, GameState gameState) : base(gameState) { PauseGame = true; EscapeToClose = true; _inventoryA = new WidgetItemContainer(entity.GetComponent <ComponentInventory>().Content) { Padding = new Spacing(4, 4), Dock = Dock.Fill }; _inventoryB = new WidgetItemContainer(chest.GetComponent <ComponentInventory>().Content) { Padding = new Spacing(4, 4), Dock = Dock.Fill }; _inventoryA.MouseClick += Tranfer; _inventoryB.MouseClick += Tranfer; var closeBtn = new WidgetSprite() { Sprite = new Sprite(Resources.TileGui, new Point(7, 7)), UnitBound = new Rectangle(0, 0, 48, 48), Anchor = Anchor.TopLeft, Origine = Anchor.Center }; closeBtn.MouseClick += CloseBtnOnMouseClick; Content = new WidgetFancyPanel() { Content = new LayoutDock() { Children = { new LayoutDock() { Dock = Dock.Fill, Children ={ closeBtn } }, GuiFactory.CreateSplitContainer(new Rectangle(0, 0, 64, 64), "Inventory", _inventoryA, "Chest", _inventoryB), } } }; }
private void Tranfer(Widget sender) { WidgetItemContainer invA = (WidgetItemContainer)sender; WidgetItemContainer invB = (WidgetItemContainer)sender == _inventoryA ? _inventoryB : _inventoryA; Item item = invA.SelectedItem; if (Rise.Input.KeyDown(Keys.LeftShift)) { while (invA.Content.Count(item) > 0 && invB.Content.HasFreeSlot()) { invA.Content.Remove(item, 1); invB.Content.Add(item, 1); } } else { if (item != null && invB.Content.HasFreeSlot()) { invA.Content.Remove(item, 1); invB.Content.Add(item, 1); } } }
public void InitializeComponents() { PauseGame = true; var r = new List <List <Recipe> >(); foreach (var e in GameState.LocalPlayer.Entity.Level.GetEntitiesOnArea(GameState.LocalPlayer.Entity.X, GameState.LocalPlayer.Entity.Y, Game.Unit * 3)) { var s = e.GetComponent <CraftingStation>(); if (s != null) { if (!r.Contains(s.Recipies)) { r.Add(s.Recipies); } } } var recipies = new List <Recipe>(); recipies.AddRange(RECIPIES.HandCrafted); foreach (var i in r) { recipies.AddRange(i); } _inventory = new WidgetItemContainer(GameState.LocalPlayer.Entity.GetComponent <Inventory>().Content); _crafting = new CraftingTab(GameState, recipies); _inventory.Dock = Dock.Fill; _inventory.MouseClick += (sender) => { _inventory.HighlightedItem = _inventory.SelectedItem; GameState.LocalPlayer.Entity.HoldingItem = _inventory.SelectedItem; }; var closeBtn = new SpriteButton() { Sprite = new Sprite(Ressources.TileGui, new Point(7, 7)), UnitBound = new Rectangle(0, 0, 48, 48), Anchor = Anchor.TopRight, Origine = Anchor.TopRight, UnitOffset = new Point(-16, 16) }; closeBtn.MouseClick += CloseBtnOnMouseClick; WidgetTabContainer _sideMenu = new WidgetTabContainer { Anchor = Anchor.Center, Origine = Anchor.Center, UnitBound = new Rectangle(0, 0, 600, 720), Dock = Rise.Platform.Family == PlatformFamily.Mobile ? Dock.Fill : Dock.None, TabAnchore = Rise.Platform.Family == PlatformFamily.Mobile ? TabAnchore.Bottom : TabAnchore.Left, Childrens = { closeBtn }, Tabs = { new EquipmentTab(), _crafting, new Tab() { Icon = new Sprite(Ressources.TileIcons, new Point(2, 3)), Content = new Container() { Childrens = { new Label { Text = "Inventory",Font = Ressources.FontAlagard, Dock = Dock.Top }, _inventory, } } }, new MinimapTab(GameState), new SaveTab(GameState), } }; Content = new Container() { Childrens = { _sideMenu }, }; }