diff --git a/Content.Client/CartridgeLoader/CartridgeLoaderBoundUserInterface.cs b/Content.Client/CartridgeLoader/CartridgeLoaderBoundUserInterface.cs index c07f14c6e9..aaa17b7976 100644 --- a/Content.Client/CartridgeLoader/CartridgeLoaderBoundUserInterface.cs +++ b/Content.Client/CartridgeLoader/CartridgeLoaderBoundUserInterface.cs @@ -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(cartridgeUid); + var component = _entityManager?.GetComponentOrNull(cartridgeUid); component?.Ui?.Setup(this); return component?.Ui; } diff --git a/Content.Client/CartridgeLoader/CartridgeUiComponent.cs b/Content.Client/CartridgeLoader/CartridgeUiComponent.cs deleted file mode 100644 index c0e62cdaae..0000000000 --- a/Content.Client/CartridgeLoader/CartridgeUiComponent.cs +++ /dev/null @@ -1,14 +0,0 @@ - -namespace Content.Client.CartridgeLoader; - -/// -/// The component used for defining which ui fragment to use for a cartridge -/// -/// -/// -[RegisterComponent] -public sealed class CartridgeUiComponent : Component -{ - [DataField("ui", true)] - public CartridgeUI? Ui = default; -} diff --git a/Content.Client/CartridgeLoader/Cartridges/NetProbeUi.cs b/Content.Client/CartridgeLoader/Cartridges/NetProbeUi.cs index 0dfb9cd2f7..7846b120f9 100644 --- a/Content.Client/CartridgeLoader/Cartridges/NetProbeUi.cs +++ b/Content.Client/CartridgeLoader/Cartridges/NetProbeUi.cs @@ -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; diff --git a/Content.Client/CartridgeLoader/Cartridges/NotekeeperUi.cs b/Content.Client/CartridgeLoader/Cartridges/NotekeeperUi.cs index df4667ed2a..74ec1032b1 100644 --- a/Content.Client/CartridgeLoader/Cartridges/NotekeeperUi.cs +++ b/Content.Client/CartridgeLoader/Cartridges/NotekeeperUi.cs @@ -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!; diff --git a/Content.Client/CartridgeLoader/CartridgeUI.cs b/Content.Client/UserInterface/Fragments/UIFragment.cs similarity index 68% rename from Content.Client/CartridgeLoader/CartridgeUI.cs rename to Content.Client/UserInterface/Fragments/UIFragment.cs index 7cbeb499ca..5d09754826 100644 --- a/Content.Client/CartridgeLoader/CartridgeUI.cs +++ b/Content.Client/UserInterface/Fragments/UIFragment.cs @@ -1,10 +1,10 @@ using Robust.Client.GameObjects; using Robust.Client.UserInterface; -namespace Content.Client.CartridgeLoader; +namespace Content.Client.UserInterface.Fragments; /// -/// 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. /// /// /// This is an example from the yaml definition from the notekeeper ui @@ -14,7 +14,7 @@ namespace Content.Client.CartridgeLoader; /// /// [ImplicitDataDefinitionForInheritors] -public abstract class CartridgeUI +public abstract class UIFragment { public abstract Control GetUIFragmentRoot(); diff --git a/Content.Client/UserInterface/Fragments/UiFragmentComponent.cs b/Content.Client/UserInterface/Fragments/UiFragmentComponent.cs new file mode 100644 index 0000000000..4b7f5fcebd --- /dev/null +++ b/Content.Client/UserInterface/Fragments/UiFragmentComponent.cs @@ -0,0 +1,15 @@ +namespace Content.Client.UserInterface.Fragments; + +/// +/// The component used for defining a ui fragment to attach to an entity +/// +/// +/// This is used primarily for PDA cartridges. +/// +/// +[RegisterComponent] +public sealed class UIFragmentComponent : Component +{ + [DataField("ui", true)] + public UIFragment? Ui; +} diff --git a/Content.Server/Entry/IgnoredComponents.cs b/Content.Server/Entry/IgnoredComponents.cs index c92523e27f..559bc3b8a1 100644 --- a/Content.Server/Entry/IgnoredComponents.cs +++ b/Content.Server/Entry/IgnoredComponents.cs @@ -15,7 +15,7 @@ namespace Content.Server.Entry "ClientEntitySpawner", "HandheldGPS", "CableVisualizer", - "CartridgeUi", + "UIFragment", "PDABorderColor", }; } diff --git a/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml b/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml index 1266002640..7b102b27bc 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml @@ -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