Oldchat (#11913)
* attempt at moving MainViewport to UIWidget * oldchat (prototype) * separate oldchat and default ss14 HUD into their own files * restores original default game screen logic and adds that logic into separated chat game screen * hand reloading, several tweaks to port oldchat to main ss14 branch oldchat is currently not selectable * screen type cvar, gameplay state screen reloading/loading * reload screen on ui layout cvar change * fixes up basic reloading (HUD switching is still very bad) * some UI widget reloading for main UI screen switching * alert sync on screen change * inventory reload * hotbar margin fix * chat bubbles above viewport * whoops * fixes ordering of speech bubble root * should fix the chat focus issue (at least in-game, not lobby yet) * should fix up the lobby/game chat focus * fixes chat for lobby, turns lobby into a UI state * viewport UI controller * viewport ratio selection * whoops * adds the /tg/ widescreen ratio * removes warning from inventory UI controller, adds background to separated chat game screen's chat portion * menu button reload * unload menu buttons only from gameplay state shutdown * bugfix * character button fix * adds config options for viewport width/UI layout * variable naming changes, get or null instead of get to avoid exceptions * moves entity system get into controller
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
using Content.Client.UserInterface.Systems.Hands;
|
||||
using Content.Client.UserInterface.Systems.Hands.Controls;
|
||||
using Content.Client.UserInterface.Systems.Hotbar.Widgets;
|
||||
using Content.Client.UserInterface.Systems.Inventory;
|
||||
using Content.Client.UserInterface.Systems.Inventory.Controls;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controllers;
|
||||
|
||||
namespace Content.Client.UserInterface.Systems.Hotbar;
|
||||
@@ -18,4 +20,46 @@ public sealed class HotbarUIController : UIController
|
||||
_hands.RegisterHandContainer(handsContainer);
|
||||
_inventory.RegisterInventoryBarContainer(inventoryBar);
|
||||
}
|
||||
|
||||
public void ReloadHotbar()
|
||||
{
|
||||
if (UIManager.ActiveScreen == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var hotbar = UIManager.ActiveScreen.GetWidget<HotbarGui>();
|
||||
|
||||
if (hotbar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var container in GetAllItemSlotContainers(hotbar))
|
||||
{
|
||||
// Yes, this is dirty.
|
||||
container.SlotGroup = container.SlotGroup;
|
||||
}
|
||||
|
||||
_hands?.ReloadHands();
|
||||
_inventory?.ReloadSlots();
|
||||
_inventory?.RegisterInventoryBarContainer(hotbar.InventoryHotbar);
|
||||
}
|
||||
|
||||
private IEnumerable<ItemSlotButtonContainer> GetAllItemSlotContainers(Control gui)
|
||||
{
|
||||
var result = new List<ItemSlotButtonContainer>();
|
||||
|
||||
foreach (var child in gui.Children)
|
||||
{
|
||||
if (child is ItemSlotButtonContainer container)
|
||||
{
|
||||
result.Add(container);
|
||||
}
|
||||
|
||||
result.AddRange(GetAllItemSlotContainers(child));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
/>
|
||||
<inventory:ItemSlotButtonContainer
|
||||
Name="InventoryHotbar"
|
||||
Access="Public"
|
||||
Visible="False"
|
||||
Columns="10"
|
||||
SlotGroup="Default"
|
||||
@@ -34,7 +35,7 @@
|
||||
HorizontalExpand="True"/>
|
||||
<hands:HandsContainer
|
||||
Name="HandContainer"
|
||||
Access="Protected"
|
||||
Access="Public"
|
||||
HorizontalAlignment="Center"
|
||||
ColumnLimit="6" />
|
||||
<inventory:ItemSlotButtonContainer
|
||||
|
||||
Reference in New Issue
Block a user