Files
wwdpublic/Content.Client/UserInterface/Screens/OverlayChatGameScreen.xaml.cs
Spatison 462ecb429e [Tweak] Hud UI (#834)
* combat mode ui

* movement ui

* some fix

* fix

* more fix

* fix
2025-09-13 17:38:24 +03:00

68 lines
2.3 KiB
C#

using System.Numerics;
using Content.Client.UserInterface.Systems.Chat.Widgets;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.UserInterface.Screens;
[GenerateTypedNameReferences]
public sealed partial class OverlayChatGameScreen : InGameScreen
{
public OverlayChatGameScreen()
{
RobustXamlLoader.Load(this);
AutoscaleMaxResolution = new Vector2i(1080, 770);
SetAnchorPreset(MainViewport, LayoutPreset.Wide);
SetAnchorPreset(ViewportContainer, LayoutPreset.Wide);
SetAnchorAndMarginPreset(TopLeft, LayoutPreset.TopLeft, margin: 10);
SetAnchorAndMarginPreset(Ghost, LayoutPreset.BottomWide, margin: 80);
SetAnchorAndMarginPreset(Inventory, LayoutPreset.BottomLeft, margin: 5);
SetAnchorAndMarginPreset(Hotbar, LayoutPreset.BottomWide, margin: 5);
SetAnchorAndMarginPreset(Chat, LayoutPreset.TopRight, margin: 10);
SetAnchorAndMarginPreset(Alerts, LayoutPreset.TopRight, margin: 10);
SetAnchorAndMarginPreset(BottomRight, LayoutPreset.BottomRight, margin: 5); // WD EDIT
Chat.OnResized += ChatOnResized;
Chat.OnChatResizeFinish += ChatOnResizeFinish;
// WD EDIT START
MainViewport.OnResized += ResizeActionContainer;
Inventory.OnResized += ResizeActionContainer;
// WD EDIT END
}
// WD EDIT START
private void ResizeActionContainer()
{
float indent = Inventory.Size.Y + TopBar.Size.Y + 40;
Actions.ActionsContainer.MaxGridHeight = MainViewport.Size.Y - indent;
}
// WD EDIT END
private void ChatOnResizeFinish(Vector2 _)
{
var marginBottom = Chat.GetValue<float>(MarginBottomProperty);
var marginLeft = Chat.GetValue<float>(MarginLeftProperty);
OnChatResized?.Invoke(new Vector2(marginBottom, marginLeft));
}
private void ChatOnResized()
{
var marginBottom = Chat.GetValue<float>(MarginBottomProperty);
SetMarginTop(Alerts, marginBottom);
}
public override ChatBox ChatBox => Chat;
//TODO: There's probably a better way to do this... but this is also the easiest way.
public override void SetChatSize(Vector2 size)
{
SetMarginBottom(Chat, size.X);
SetMarginLeft(Chat, size.Y);
SetMarginTop(Alerts, size.X);
}
}