diff --git a/Content.Shared/Cabinet/ItemCabinetComponent.cs b/Content.Shared/Cabinet/ItemCabinetComponent.cs index 71367e8de6..dcc276e565 100644 --- a/Content.Shared/Cabinet/ItemCabinetComponent.cs +++ b/Content.Shared/Cabinet/ItemCabinetComponent.cs @@ -7,7 +7,7 @@ namespace Content.Shared.Cabinet; /// /// Used for entities that can be opened, closed, and can hold one item. E.g., fire extinguisher cabinets. /// -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)] public sealed partial class ItemCabinetComponent : Component { /// diff --git a/Content.Shared/Cabinet/SharedItemCabinetSystem.cs b/Content.Shared/Cabinet/SharedItemCabinetSystem.cs index 92af6a4f8a..ca496814c7 100644 --- a/Content.Shared/Cabinet/SharedItemCabinetSystem.cs +++ b/Content.Shared/Cabinet/SharedItemCabinetSystem.cs @@ -22,6 +22,7 @@ public abstract class SharedItemCabinetSystem : EntitySystem SubscribeLocalEvent(OnComponentInit); SubscribeLocalEvent(OnComponentRemove); SubscribeLocalEvent(OnComponentStartup); + SubscribeLocalEvent(OnComponentHandleState); SubscribeLocalEvent(OnActivateInWorld); SubscribeLocalEvent>(AddToggleOpenVerb); @@ -48,6 +49,11 @@ public abstract class SharedItemCabinetSystem : EntitySystem _itemSlots.SetLock(uid, cabinet.CabinetSlot, !cabinet.Opened); } + private void OnComponentHandleState(Entity ent, ref AfterAutoHandleStateEvent args) + { + UpdateAppearance(ent, ent); + } + protected virtual void UpdateAppearance(EntityUid uid, ItemCabinetComponent? cabinet = null) { // we don't fuck with appearance data, and instead just manually update the sprite on the client