diff --git a/Content.Client/Storage/Components/EntityStorageComponent.cs b/Content.Client/Storage/Components/EntityStorageComponent.cs index 048cf8b54a..514d5d6595 100644 --- a/Content.Client/Storage/Components/EntityStorageComponent.cs +++ b/Content.Client/Storage/Components/EntityStorageComponent.cs @@ -3,7 +3,7 @@ using Robust.Shared.GameStates; namespace Content.Client.Storage.Components; -[RegisterComponent, ComponentReference(typeof(SharedEntityStorageComponent))] +[RegisterComponent] public sealed partial class EntityStorageComponent : SharedEntityStorageComponent { diff --git a/Content.Client/Storage/Systems/EntityStorageSystem.cs b/Content.Client/Storage/Systems/EntityStorageSystem.cs index 7b65a361e0..e2a106346b 100644 --- a/Content.Client/Storage/Systems/EntityStorageSystem.cs +++ b/Content.Client/Storage/Systems/EntityStorageSystem.cs @@ -1,13 +1,40 @@ using System.Diagnostics.CodeAnalysis; +using Content.Client.Storage.Components; +using Content.Shared.Destructible; +using Content.Shared.Interaction; +using Content.Shared.Lock; +using Content.Shared.Movement.Events; using Content.Shared.Storage.Components; using Content.Shared.Storage.EntitySystems; +using Content.Shared.Verbs; +using Robust.Shared.GameStates; namespace Content.Client.Storage.Systems; public sealed class EntityStorageSystem : SharedEntityStorageSystem { + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnComponentInit); + SubscribeLocalEvent(OnComponentStartup); + SubscribeLocalEvent(OnInteract, after: new[] { typeof(LockSystem) }); + SubscribeLocalEvent(OnLockToggleAttempt); + SubscribeLocalEvent(OnDestruction); + SubscribeLocalEvent>(AddToggleOpenVerb); + SubscribeLocalEvent(OnRelayMovement); + + SubscribeLocalEvent(OnGetState); + SubscribeLocalEvent(OnHandleState); + } + public override bool ResolveStorage(EntityUid uid, [NotNullWhen(true)] ref SharedEntityStorageComponent? component) { - return Resolve(uid, ref component); + if (component != null) + return true; + + TryComp(uid, out var storage); + component = storage; + return component != null; } } diff --git a/Content.Server/Storage/Components/EntityStorageComponent.cs b/Content.Server/Storage/Components/EntityStorageComponent.cs index c961c31a3e..40fdb1b326 100644 --- a/Content.Server/Storage/Components/EntityStorageComponent.cs +++ b/Content.Server/Storage/Components/EntityStorageComponent.cs @@ -4,7 +4,7 @@ using Robust.Shared.GameStates; namespace Content.Server.Storage.Components; -[RegisterComponent, ComponentReference(typeof(SharedEntityStorageComponent))] +[RegisterComponent] public sealed partial class EntityStorageComponent : SharedEntityStorageComponent, IGasMixtureHolder { /// diff --git a/Content.Server/Storage/EntitySystems/EntityStorageSystem.cs b/Content.Server/Storage/EntitySystems/EntityStorageSystem.cs index 896b267911..2b7ee7267a 100644 --- a/Content.Server/Storage/EntitySystems/EntityStorageSystem.cs +++ b/Content.Server/Storage/EntitySystems/EntityStorageSystem.cs @@ -4,9 +4,15 @@ using Content.Server.Construction; using Content.Server.Construction.Components; using Content.Server.Storage.Components; using Content.Server.Tools.Systems; +using Content.Shared.Destructible; +using Content.Shared.Interaction; +using Content.Shared.Lock; +using Content.Shared.Movement.Events; using Content.Shared.Storage.Components; using Content.Shared.Storage.EntitySystems; +using Content.Shared.Verbs; using Robust.Shared.Containers; +using Robust.Shared.GameStates; using Robust.Shared.Map; namespace Content.Server.Storage.EntitySystems; @@ -21,6 +27,19 @@ public sealed class EntityStorageSystem : SharedEntityStorageSystem { base.Initialize(); + /* CompRef things */ + SubscribeLocalEvent(OnComponentInit); + SubscribeLocalEvent(OnComponentStartup); + SubscribeLocalEvent(OnInteract, after: new[] { typeof(LockSystem) }); + SubscribeLocalEvent(OnLockToggleAttempt); + SubscribeLocalEvent(OnDestruction); + SubscribeLocalEvent>(AddToggleOpenVerb); + SubscribeLocalEvent(OnRelayMovement); + + SubscribeLocalEvent(OnGetState); + SubscribeLocalEvent(OnHandleState); + /* CompRef things */ + SubscribeLocalEvent(OnMapInit); SubscribeLocalEvent(OnWeldableAttempt); SubscribeLocalEvent(OnWelded); @@ -52,7 +71,12 @@ public sealed class EntityStorageSystem : SharedEntityStorageSystem public override bool ResolveStorage(EntityUid uid, [NotNullWhen(true)] ref SharedEntityStorageComponent? component) { - return Resolve(uid, ref component); + if (component != null) + return true; + + TryComp(uid, out var storage); + component = storage; + return component != null; } private void OnWeldableAttempt(EntityUid uid, EntityStorageComponent component, WeldableAttemptEvent args) diff --git a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs index adb3e2d046..26cb2042fa 100644 --- a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs @@ -43,22 +43,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem public const string ContainerName = "entity_storage"; - /// - public override void Initialize() - { - SubscribeLocalEvent(OnComponentInit); - SubscribeLocalEvent(OnComponentStartup); - SubscribeLocalEvent(OnInteract, after: new[] { typeof(LockSystem) }); - SubscribeLocalEvent(OnLockToggleAttempt); - SubscribeLocalEvent(OnDestruction); - SubscribeLocalEvent>(AddToggleOpenVerb); - SubscribeLocalEvent(OnRelayMovement); - - SubscribeLocalEvent(OnGetState); - SubscribeLocalEvent(OnHandleState); - } - - private void OnGetState(EntityUid uid, SharedEntityStorageComponent component, ref ComponentGetState args) + protected void OnGetState(EntityUid uid, SharedEntityStorageComponent component, ref ComponentGetState args) { args.State = new EntityStorageComponentState(component.Open, component.Capacity, @@ -68,7 +53,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem component.IsWeldedShut); } - private void OnHandleState(EntityUid uid, SharedEntityStorageComponent component, ref ComponentHandleState args) + protected void OnHandleState(EntityUid uid, SharedEntityStorageComponent component, ref ComponentHandleState args) { if (args.Current is not EntityStorageComponentState state) return; @@ -92,7 +77,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem _appearance.SetData(uid, StorageVisuals.Open, component.Open); } - private void OnInteract(EntityUid uid, SharedEntityStorageComponent component, ActivateInWorldEvent args) + protected void OnInteract(EntityUid uid, SharedEntityStorageComponent component, ActivateInWorldEvent args) { if (args.Handled) return; @@ -103,7 +88,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem public abstract bool ResolveStorage(EntityUid uid, [NotNullWhen(true)] ref SharedEntityStorageComponent? component); - private void OnLockToggleAttempt(EntityUid uid, SharedEntityStorageComponent target, ref LockToggleAttemptEvent args) + protected void OnLockToggleAttempt(EntityUid uid, SharedEntityStorageComponent target, ref LockToggleAttemptEvent args) { // Cannot (un)lock open lockers. if (target.Open) @@ -114,7 +99,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem args.Cancelled = true; } - private void OnDestruction(EntityUid uid, SharedEntityStorageComponent component, DestructionEventArgs args) + protected void OnDestruction(EntityUid uid, SharedEntityStorageComponent component, DestructionEventArgs args) { component.Open = true; Dirty(component); @@ -130,7 +115,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem } } - private void OnRelayMovement(EntityUid uid, SharedEntityStorageComponent component, ref ContainerRelayMovementEntityEvent args) + protected void OnRelayMovement(EntityUid uid, SharedEntityStorageComponent component, ref ContainerRelayMovementEntityEvent args) { if (!HasComp(args.Entity)) return; @@ -145,7 +130,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem } } - private void AddToggleOpenVerb(EntityUid uid, SharedEntityStorageComponent component, GetVerbsEvent args) + protected void AddToggleOpenVerb(EntityUid uid, SharedEntityStorageComponent component, GetVerbsEvent args) { if (!args.CanAccess || !args.CanInteract) return;