* Always display item status panel fully Initial feedback from the UI changes seems to be that a lot of people go "why is there empty space" so let's fix that. * Fix item status middle hand being on the wrong side I think I switched this around when fixing the left/right being inverted in the UI code. * Minor status panel UI tweaks Bottom-align contents now that the panel itself doesn't dynamically expand, prevent weird gaps. Clip contents for panel * Fix clipping on implanters and network configurators. Made them take less space. For implanters the name has to be cut off, which I did by adding a new ClipControl to achieve that in rich text. * Update visibility of item status panels based on whether you have hands at all. This avoids UI for borgs looking silly. Added a new "HandUILocation" enum that doesn't have middle hands to avoid confusion in UI code. * Use BulletRender for laser guns too. Provides all the benefits like fixing layout overflow and allowing multi-line stuff. Looks great now. This involved generalizing BulletRender a bit so it can be used for not-just-bullets. * Fix geiger word wrapping if you're really fucked
44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using Content.Shared.Hands.Components;
|
|
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.UserInterface.Controls;
|
|
using Robust.Client.UserInterface.XAML;
|
|
|
|
namespace Content.Client.UserInterface.Systems.Hotbar.Widgets;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class HotbarGui : UIWidget
|
|
{
|
|
public HotbarGui()
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
StatusPanelRight.SetSide(HandUILocation.Right);
|
|
StatusPanelLeft.SetSide(HandUILocation.Left);
|
|
var hotbarController = UserInterfaceManager.GetUIController<HotbarUIController>();
|
|
|
|
hotbarController.Setup(HandContainer, StoragePanel);
|
|
LayoutContainer.SetGrowVertical(this, LayoutContainer.GrowDirection.Begin);
|
|
}
|
|
|
|
public void UpdatePanelEntityLeft(EntityUid? entity)
|
|
{
|
|
StatusPanelLeft.Update(entity);
|
|
}
|
|
|
|
public void UpdatePanelEntityRight(EntityUid? entity)
|
|
{
|
|
StatusPanelRight.Update(entity);
|
|
}
|
|
|
|
public void SetHighlightHand(HandUILocation? hand)
|
|
{
|
|
StatusPanelLeft.UpdateHighlight(hand is HandUILocation.Left);
|
|
StatusPanelRight.UpdateHighlight(hand is HandUILocation.Right);
|
|
}
|
|
|
|
public void UpdateStatusVisibility(bool left, bool right)
|
|
{
|
|
StatusPanelLeft.Visible = left;
|
|
StatusPanelRight.Visible = right;
|
|
}
|
|
}
|