genericize ui fragments (#12810)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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!;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.UserInterface;
|
||||
|
||||
namespace Content.Client.CartridgeLoader;
|
||||
namespace Content.Client.UserInterface.Fragments;
|
||||
|
||||
/// <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.
|
||||
/// Specific ui fragments need to inherit this class. The subclass is then used in yaml to tell a main ui to use it as a ui fragment.
|
||||
/// </summary>
|
||||
/// <example>
|
||||
/// This is an example from the yaml definition from the notekeeper ui
|
||||
@@ -14,7 +14,7 @@ namespace Content.Client.CartridgeLoader;
|
||||
/// </code>
|
||||
/// </example>
|
||||
[ImplicitDataDefinitionForInheritors]
|
||||
public abstract class CartridgeUI
|
||||
public abstract class UIFragment
|
||||
{
|
||||
public abstract Control GetUIFragmentRoot();
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace Content.Client.UserInterface.Fragments;
|
||||
|
||||
/// <summary>
|
||||
/// The component used for defining a ui fragment to attach to an entity
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is used primarily for PDA cartridges.
|
||||
/// </remarks>
|
||||
/// <seealso cref="UIFragment"/>
|
||||
[RegisterComponent]
|
||||
public sealed class UIFragmentComponent : Component
|
||||
{
|
||||
[DataField("ui", true)]
|
||||
public UIFragment? Ui;
|
||||
}
|
||||
@@ -15,7 +15,7 @@ namespace Content.Server.Entry
|
||||
"ClientEntitySpawner",
|
||||
"HandheldGPS",
|
||||
"CableVisualizer",
|
||||
"CartridgeUi",
|
||||
"UIFragment",
|
||||
"PDABorderColor",
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
- type: Icon
|
||||
sprite: Objects/Devices/cartridge.rsi
|
||||
state: cart-y
|
||||
- type: CartridgeUi
|
||||
- type: UIFragment
|
||||
ui: !type:NotekeeperUi
|
||||
- type: Cartridge
|
||||
programName: notekeeper-program-name
|
||||
@@ -33,7 +33,7 @@
|
||||
- type: Icon
|
||||
sprite: Objects/Devices/cartridge.rsi
|
||||
state: cart-y
|
||||
- type: CartridgeUi
|
||||
- type: UIFragment
|
||||
ui: !type:NetProbeUi
|
||||
- type: Cartridge
|
||||
programName: net-probe-program-name
|
||||
|
||||
Reference in New Issue
Block a user