From 80796df5a314c2bb246bb879de2ec94081607346 Mon Sep 17 00:00:00 2001 From: FL-OZ Date: Sun, 10 May 2020 21:38:50 -0500 Subject: [PATCH 1/4] Add placing items into storage when Storage UI is clicked with item in hand --- .../Storage/ClientStorageComponent.cs | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs index 3084c2af1d..2577b11594 100644 --- a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs +++ b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs @@ -32,7 +32,7 @@ namespace Content.Client.GameObjects.Components.Storage base.OnAdd(); Window = new StorageWindow() - {StorageEntity = this}; + {StorageEntity = this};1 } public override void OnRemove() @@ -103,7 +103,6 @@ namespace Content.Client.GameObjects.Components.Storage private Control VSplitContainer; private VBoxContainer EntityList; private Label Information; - private Button AddItemButton; public ClientStorageComponent StorageEntity; protected override Vector2? CustomSize => (180, 320); @@ -113,7 +112,23 @@ namespace Content.Client.GameObjects.Components.Storage Title = "Storage Item"; RectClipContent = true; + var containerButton = new ContainerButton + { + SizeFlagsHorizontal = SizeFlags.Fill, + SizeFlagsVertical = SizeFlags.Fill + }; + containerButton.OnPressed += args => + { + var controlledEntity = IoCManager.Resolve().LocalPlayer.ControlledEntity; + + if (controlledEntity.TryGetComponent(out IHandsComponent hands)) + { + StorageEntity.SendNetworkMessage(new InsertEntityMessage()); + } + }; + VSplitContainer = new VBoxContainer(); + containerButton.AddChild(VSplitContainer); Information = new Label { Text = "Items: 0 Volume: 0/0 Stuff", @@ -135,16 +150,8 @@ namespace Content.Client.GameObjects.Components.Storage listScrollContainer.AddChild(EntityList); VSplitContainer.AddChild(listScrollContainer); - AddItemButton = new Button - { - Text = "Add Item", - ToggleMode = false, - SizeFlagsHorizontal = SizeFlags.FillExpand - }; - AddItemButton.OnPressed += OnAddItemButtonPressed; - VSplitContainer.AddChild(AddItemButton); + Contents.AddChild(containerButton); - Contents.AddChild(VSplitContainer); } public override void Close() @@ -168,7 +175,8 @@ namespace Content.Client.GameObjects.Components.Storage var button = new EntityButton() { - EntityuID = entityuid.Key + EntityuID = entityuid.Key, + MouseFilter = MouseFilterMode.Stop, }; button.ActualButton.OnToggled += OnItemButtonToggled; //Name and Size labels set From 3193a0a7b2b32b8573f47647567e59dcd1572796 Mon Sep 17 00:00:00 2001 From: FL-OZ Date: Sun, 10 May 2020 21:41:03 -0500 Subject: [PATCH 2/4] get rid of that 1!!! --- .../GameObjects/Components/Storage/ClientStorageComponent.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs index 2577b11594..57229e6a35 100644 --- a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs +++ b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs @@ -32,7 +32,7 @@ namespace Content.Client.GameObjects.Components.Storage base.OnAdd(); Window = new StorageWindow() - {StorageEntity = this};1 + {StorageEntity = this}; } public override void OnRemove() @@ -126,7 +126,7 @@ namespace Content.Client.GameObjects.Components.Storage StorageEntity.SendNetworkMessage(new InsertEntityMessage()); } }; - + VSplitContainer = new VBoxContainer(); containerButton.AddChild(VSplitContainer); Information = new Label From c04b283dfc3ef7c10c4279bd68c9d879fce6d178 Mon Sep 17 00:00:00 2001 From: FL-OZ Date: Mon, 11 May 2020 18:38:49 -0500 Subject: [PATCH 3/4] uses a visual cue to show that something can be put into the box --- .../Storage/ClientStorageComponent.cs | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs index 57229e6a35..4ed7faf73c 100644 --- a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs +++ b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using Content.Shared.GameObjects.Components.Storage; using Content.Client.Interfaces.GameObjects; +using Robust.Client.Graphics.Drawing; using Robust.Client.Interfaces.GameObjects.Components; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; @@ -105,6 +106,9 @@ namespace Content.Client.GameObjects.Components.Storage private Label Information; public ClientStorageComponent StorageEntity; + private StyleBoxFlat _HoveredBox = new StyleBoxFlat {BackgroundColor = Color.Black.WithAlpha(0.7f)}; + private StyleBoxFlat _unHoveredBox = new StyleBoxFlat {BackgroundColor = Color.Black.WithAlpha(0.0f)}; + protected override Vector2? CustomSize => (180, 320); public StorageWindow() @@ -115,8 +119,19 @@ namespace Content.Client.GameObjects.Components.Storage var containerButton = new ContainerButton { SizeFlagsHorizontal = SizeFlags.Fill, - SizeFlagsVertical = SizeFlags.Fill + SizeFlagsVertical = SizeFlags.Fill, + MouseFilter = MouseFilterMode.Pass, }; + + var innerContainerButton = new PanelContainer + { + PanelOverride = _unHoveredBox, + SizeFlagsHorizontal = SizeFlags.Fill, + SizeFlagsVertical = SizeFlags.Fill, + }; + + + containerButton.AddChild(innerContainerButton); containerButton.OnPressed += args => { var controlledEntity = IoCManager.Resolve().LocalPlayer.ControlledEntity; @@ -127,7 +142,10 @@ namespace Content.Client.GameObjects.Components.Storage } }; - VSplitContainer = new VBoxContainer(); + VSplitContainer = new VBoxContainer() + { + MouseFilter = MouseFilterMode.Ignore, + }; containerButton.AddChild(VSplitContainer); Information = new Label { @@ -141,7 +159,7 @@ namespace Content.Client.GameObjects.Components.Storage SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand, HScrollEnabled = true, - VScrollEnabled = true + VScrollEnabled = true, }; EntityList = new VBoxContainer { @@ -152,6 +170,15 @@ namespace Content.Client.GameObjects.Components.Storage Contents.AddChild(containerButton); + listScrollContainer.OnMouseEntered += args => + { + innerContainerButton.PanelOverride = _HoveredBox; + }; + + listScrollContainer.OnMouseExited += args => + { + innerContainerButton.PanelOverride = _unHoveredBox; + }; } public override void Close() From bb39a1d871fe1cc6d7266c4d8e23ec5c1d4abe61 Mon Sep 17 00:00:00 2001 From: FL-OZ <58238103+FL-OZ@users.noreply.github.com> Date: Mon, 11 May 2020 19:36:05 -0500 Subject: [PATCH 4/4] made it less dark --- .../GameObjects/Components/Storage/ClientStorageComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs index 4ed7faf73c..30773715a9 100644 --- a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs +++ b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs @@ -106,7 +106,7 @@ namespace Content.Client.GameObjects.Components.Storage private Label Information; public ClientStorageComponent StorageEntity; - private StyleBoxFlat _HoveredBox = new StyleBoxFlat {BackgroundColor = Color.Black.WithAlpha(0.7f)}; + private StyleBoxFlat _HoveredBox = new StyleBoxFlat {BackgroundColor = Color.Black.WithAlpha(0.35f)}; private StyleBoxFlat _unHoveredBox = new StyleBoxFlat {BackgroundColor = Color.Black.WithAlpha(0.0f)}; protected override Vector2? CustomSize => (180, 320);