From a265cd893502ff52e40cbdebee4e14055fb8999c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BAlio=20C=C3=A9sar=20Ueti?= <52474532+Mirino97@users.noreply.github.com> Date: Mon, 27 Jun 2022 02:37:29 -0300 Subject: [PATCH] Hotfix for Body Bags (#9155) * Oops * Requested changes * Renamed * rename Co-authored-by: metalgearsloth --- Content.Server/Foldable/FoldableSystem.cs | 7 ++++--- .../Storage/Components/EntityStorageComponent.cs | 15 ++++++++++++--- Content.Shared/Foldable/SharedFoldableSystem.cs | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Content.Server/Foldable/FoldableSystem.cs b/Content.Server/Foldable/FoldableSystem.cs index b9f7b46d78..c080b188b2 100644 --- a/Content.Server/Foldable/FoldableSystem.cs +++ b/Content.Server/Foldable/FoldableSystem.cs @@ -19,7 +19,8 @@ namespace Content.Server.Foldable SubscribeLocalEvent(OnFoldableOpenAttempt); SubscribeLocalEvent>(AddFoldVerb); - SubscribeLocalEvent(OnEntityStorageInsertAttempt); + SubscribeLocalEvent(OnStoreThisAttempt); + } private void OnFoldableOpenAttempt(EntityUid uid, FoldableComponent component, StorageOpenAttemptEvent args) @@ -87,9 +88,9 @@ namespace Content.Server.Foldable strap.Enabled = !component.IsFolded; } - public void OnEntityStorageInsertAttempt(EntityUid uid, FoldableComponent comp, InsertIntoEntityStorageAttemptEvent args) + public void OnStoreThisAttempt(EntityUid uid, FoldableComponent comp, StoreThisAttemptEvent args) { - if (!comp.IsFolded) + if (comp.IsFolded) args.Cancel(); } diff --git a/Content.Server/Storage/Components/EntityStorageComponent.cs b/Content.Server/Storage/Components/EntityStorageComponent.cs index 45719a0634..71f7fb0ed3 100644 --- a/Content.Server/Storage/Components/EntityStorageComponent.cs +++ b/Content.Server/Storage/Components/EntityStorageComponent.cs @@ -216,14 +216,13 @@ namespace Content.Server.Storage.Components // 4. items can always be eaten unless a previous law prevents it // 5. if this is NOT AN ITEM, then mobs can always be eaten unless unless a previous law prevents it // 6. if this is an item, then mobs must only be eaten if some other component prevents pick-up interactions while a mob is inside (e.g. foldable) - var attemptEvent = new InsertIntoEntityStorageAttemptEvent(); _entMan.EventBus.RaiseLocalEvent(entity, attemptEvent); if (attemptEvent.Cancelled) return false; // checks - + // TODO: Make the others sub to it. var targetIsItem = _entMan.HasComponent(entity); var targetIsMob = _entMan.HasComponent(entity); var storageIsItem = _entMan.HasComponent(Owner); @@ -239,9 +238,14 @@ namespace Content.Server.Storage.Components { if (!storageIsItem) allowedToEat = true; + else + { + var storeEv = new StoreThisAttemptEvent(); + _entMan.EventBus.RaiseLocalEvent(Owner, storeEv); + allowedToEat = !storeEv.Cancelled; + } } - _entMan.EventBus.RaiseLocalEvent(entity, allowedToEat); return allowedToEat; } @@ -367,6 +371,11 @@ namespace Content.Server.Storage.Components public sealed class InsertIntoEntityStorageAttemptEvent : CancellableEntityEventArgs { + } + + public sealed class StoreThisAttemptEvent : CancellableEntityEventArgs + { + } public sealed class StorageOpenAttemptEvent : CancellableEntityEventArgs { diff --git a/Content.Shared/Foldable/SharedFoldableSystem.cs b/Content.Shared/Foldable/SharedFoldableSystem.cs index 77487b9924..27603d4f2d 100644 --- a/Content.Shared/Foldable/SharedFoldableSystem.cs +++ b/Content.Shared/Foldable/SharedFoldableSystem.cs @@ -47,7 +47,7 @@ public abstract class SharedFoldableSystem : EntitySystem public virtual void SetFolded(FoldableComponent component, bool folded) { component.IsFolded = folded; - component.Dirty(); + Dirty(component); if (TryComp(component.Owner, out AppearanceComponent? appearance)) appearance.SetData(FoldKey, folded);