From 6c688a53dc27b573f3f4684821438d9d4d5d0460 Mon Sep 17 00:00:00 2001 From: Ilya246 <57039557+Ilya246@users.noreply.github.com> Date: Sun, 17 Dec 2023 13:55:40 +0400 Subject: [PATCH] the boxening (#22643) --- .../CardboardBox/CardboardBoxSystem.cs | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/Content.Server/CardboardBox/CardboardBoxSystem.cs b/Content.Server/CardboardBox/CardboardBoxSystem.cs index 83445d2ae4..b9c9427d5c 100644 --- a/Content.Server/CardboardBox/CardboardBoxSystem.cs +++ b/Content.Server/CardboardBox/CardboardBoxSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Storage.Components; using Content.Server.Storage.EntitySystems; +using Content.Shared.Access.Components; using Content.Shared.CardboardBox; using Content.Shared.CardboardBox.Components; using Content.Shared.Damage; @@ -33,7 +34,8 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem SubscribeLocalEvent(AfterStorageOpen); SubscribeLocalEvent(BeforeStorageOpen); SubscribeLocalEvent(AfterStorageClosed); - SubscribeLocalEvent(OnInteracted); + SubscribeLocalEvent(OnGetAdditionalAccess); + SubscribeLocalEvent(OnInteracted); SubscribeLocalEvent(OnNoHandInteracted); SubscribeLocalEvent(OnEntInserted); SubscribeLocalEvent(OnEntRemoved); @@ -41,19 +43,19 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem SubscribeLocalEvent(OnDamage); } - private void OnInteracted(EntityUid uid, CardboardBoxComponent component, ActivateInWorldEvent args) + private void OnInteracted(EntityUid uid, CardboardBoxComponent component, ActivateInWorldEvent args) { - if (!TryComp(uid, out var box)) + if (!TryComp(uid, out var box)) return; args.Handled = true; _storage.ToggleOpen(args.User, uid, box); - if (box.Contents.Contains(args.User) && !box.Open) - { - _mover.SetRelay(args.User, uid); - component.Mover = args.User; - } + if (box.Contents.Contains(args.User) && !box.Open) + { + _mover.SetRelay(args.User, uid); + component.Mover = args.User; + } } private void OnNoHandInteracted(EntityUid uid, CardboardBoxComponent component, InteractedNoHandEvent args) @@ -65,10 +67,17 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem _storage.OpenStorage(uid); } + private void OnGetAdditionalAccess(EntityUid uid, CardboardBoxComponent component, ref GetAdditionalAccessEvent args) + { + if (component.Mover == null) + return; + args.Entities.Add(component.Mover.Value); + } + private void BeforeStorageOpen(EntityUid uid, CardboardBoxComponent component, ref StorageBeforeOpenEvent args) { - if (component.Quiet) - return; + if (component.Quiet) + return; //Play effect & sound if (component.Mover != null) @@ -115,7 +124,7 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem if (component.Mover == null) { _mover.SetRelay(args.Entity, uid); - component.Mover = args.Entity; + component.Mover = args.Entity; } } -- 2.51.2