genericize ui fragments (#12810)

This commit is contained in:
Nemanja
2022-12-02 17:46:58 -05:00
committed by GitHub
parent d52cbdc18e
commit 64f57aceb2
8 changed files with 32 additions and 29 deletions

View File

@@ -1,4 +1,5 @@
using Content.Shared.CartridgeLoader;
using Content.Client.UserInterface.Fragments;
using Content.Shared.CartridgeLoader;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
@@ -10,7 +11,7 @@ public abstract class CartridgeLoaderBoundUserInterface : BoundUserInterface
[Dependency] private readonly IEntityManager? _entityManager = default!;
private EntityUid? _activeProgram;
private CartridgeUI? _activeCartridgeUI;
private UIFragment? _activeCartridgeUI;
private Control? _activeUiFragment;
protected CartridgeLoaderBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey)
@@ -127,9 +128,9 @@ public abstract class CartridgeLoaderBoundUserInterface : BoundUserInterface
SendMessage(message);
}
private CartridgeUI? RetrieveCartridgeUI(EntityUid? cartridgeUid)
private UIFragment? RetrieveCartridgeUI(EntityUid? cartridgeUid)
{
var component = _entityManager?.GetComponentOrNull<CartridgeUiComponent>(cartridgeUid);
var component = _entityManager?.GetComponentOrNull<UIFragmentComponent>(cartridgeUid);
component?.Ui?.Setup(this);
return component?.Ui;
}

View File

@@ -1,25 +0,0 @@
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
namespace Content.Client.CartridgeLoader;
/// <summary>
/// Cartridge ui fragments need to inherit this class. The subclass is then used in yaml to tell the cartridge loader ui to use it as the cartridges ui fragment.
/// </summary>
/// <example>
/// This is an example from the yaml definition from the notekeeper ui
/// <code>
/// - type: CartridgeUi
/// ui: !type:NotekeeperUi
/// </code>
/// </example>
[ImplicitDataDefinitionForInheritors]
public abstract class CartridgeUI
{
public abstract Control GetUIFragmentRoot();
public abstract void Setup(BoundUserInterface userInterface);
public abstract void UpdateState(BoundUserInterfaceState state);
}

View File

@@ -1,14 +0,0 @@

namespace Content.Client.CartridgeLoader;
/// <summary>
/// The component used for defining which ui fragment to use for a cartridge
/// </summary>
/// <seealso cref="CartridgeUI"/>
/// <seealso cref="CartridgeUISerializer"/>
[RegisterComponent]
public sealed class CartridgeUiComponent : Component
{
[DataField("ui", true)]
public CartridgeUI? Ui = default;
}

View File

@@ -1,10 +1,11 @@
using Content.Shared.CartridgeLoader.Cartridges;
using Content.Client.UserInterface.Fragments;
using Content.Shared.CartridgeLoader.Cartridges;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
namespace Content.Client.CartridgeLoader.Cartridges;
public sealed class NetProbeUi : CartridgeUI
public sealed class NetProbeUi : UIFragment
{
private NetProbeUiFragment? _fragment;

View File

@@ -1,15 +1,15 @@
using Content.Shared.CartridgeLoader;
using Content.Client.UserInterface.Fragments;
using Content.Shared.CartridgeLoader;
using Content.Shared.CartridgeLoader.Cartridges;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
namespace Content.Client.CartridgeLoader.Cartridges;
public sealed class NotekeeperUi : CartridgeUI
public sealed class NotekeeperUi : UIFragment
{
private NotekeeperUiFragment? _fragment;
public override Control GetUIFragmentRoot()
{
return _fragment!;