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.GameObjects;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
|
|
||||||
@@ -10,7 +11,7 @@ public abstract class CartridgeLoaderBoundUserInterface : BoundUserInterface
|
|||||||
[Dependency] private readonly IEntityManager? _entityManager = default!;
|
[Dependency] private readonly IEntityManager? _entityManager = default!;
|
||||||
|
|
||||||
private EntityUid? _activeProgram;
|
private EntityUid? _activeProgram;
|
||||||
private CartridgeUI? _activeCartridgeUI;
|
private UIFragment? _activeCartridgeUI;
|
||||||
private Control? _activeUiFragment;
|
private Control? _activeUiFragment;
|
||||||
|
|
||||||
protected CartridgeLoaderBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey)
|
protected CartridgeLoaderBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey)
|
||||||
@@ -127,9 +128,9 @@ public abstract class CartridgeLoaderBoundUserInterface : BoundUserInterface
|
|||||||
SendMessage(message);
|
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);
|
component?.Ui?.Setup(this);
|
||||||
return component?.Ui;
|
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.GameObjects;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
|
|
||||||
namespace Content.Client.CartridgeLoader.Cartridges;
|
namespace Content.Client.CartridgeLoader.Cartridges;
|
||||||
|
|
||||||
public sealed class NetProbeUi : CartridgeUI
|
public sealed class NetProbeUi : UIFragment
|
||||||
{
|
{
|
||||||
private NetProbeUiFragment? _fragment;
|
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 Content.Shared.CartridgeLoader.Cartridges;
|
||||||
using Robust.Client.GameObjects;
|
using Robust.Client.GameObjects;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
|
|
||||||
namespace Content.Client.CartridgeLoader.Cartridges;
|
namespace Content.Client.CartridgeLoader.Cartridges;
|
||||||
|
|
||||||
public sealed class NotekeeperUi : CartridgeUI
|
public sealed class NotekeeperUi : UIFragment
|
||||||
{
|
{
|
||||||
private NotekeeperUiFragment? _fragment;
|
private NotekeeperUiFragment? _fragment;
|
||||||
|
|
||||||
|
|
||||||
public override Control GetUIFragmentRoot()
|
public override Control GetUIFragmentRoot()
|
||||||
{
|
{
|
||||||
return _fragment!;
|
return _fragment!;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
using Robust.Client.GameObjects;
|
using Robust.Client.GameObjects;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
|
|
||||||
namespace Content.Client.CartridgeLoader;
|
namespace Content.Client.UserInterface.Fragments;
|
||||||
|
|
||||||
/// <summary>
|
/// <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>
|
/// </summary>
|
||||||
/// <example>
|
/// <example>
|
||||||
/// This is an example from the yaml definition from the notekeeper ui
|
/// This is an example from the yaml definition from the notekeeper ui
|
||||||
@@ -14,7 +14,7 @@ namespace Content.Client.CartridgeLoader;
|
|||||||
/// </code>
|
/// </code>
|
||||||
/// </example>
|
/// </example>
|
||||||
[ImplicitDataDefinitionForInheritors]
|
[ImplicitDataDefinitionForInheritors]
|
||||||
public abstract class CartridgeUI
|
public abstract class UIFragment
|
||||||
{
|
{
|
||||||
public abstract Control GetUIFragmentRoot();
|
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",
|
"ClientEntitySpawner",
|
||||||
"HandheldGPS",
|
"HandheldGPS",
|
||||||
"CableVisualizer",
|
"CableVisualizer",
|
||||||
"CartridgeUi",
|
"UIFragment",
|
||||||
"PDABorderColor",
|
"PDABorderColor",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
- type: Icon
|
- type: Icon
|
||||||
sprite: Objects/Devices/cartridge.rsi
|
sprite: Objects/Devices/cartridge.rsi
|
||||||
state: cart-y
|
state: cart-y
|
||||||
- type: CartridgeUi
|
- type: UIFragment
|
||||||
ui: !type:NotekeeperUi
|
ui: !type:NotekeeperUi
|
||||||
- type: Cartridge
|
- type: Cartridge
|
||||||
programName: notekeeper-program-name
|
programName: notekeeper-program-name
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
- type: Icon
|
- type: Icon
|
||||||
sprite: Objects/Devices/cartridge.rsi
|
sprite: Objects/Devices/cartridge.rsi
|
||||||
state: cart-y
|
state: cart-y
|
||||||
- type: CartridgeUi
|
- type: UIFragment
|
||||||
ui: !type:NetProbeUi
|
ui: !type:NetProbeUi
|
||||||
- type: Cartridge
|
- type: Cartridge
|
||||||
programName: net-probe-program-name
|
programName: net-probe-program-name
|
||||||
|
|||||||
Reference in New Issue
Block a user