Hotfix for Body Bags (#9155)

* Oops

* Requested changes

* Renamed

* rename

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
Júlio César Ueti
2022-06-27 02:37:29 -03:00
committed by GitHub
parent e9d6156d0c
commit a265cd8935
3 changed files with 17 additions and 7 deletions

View File

@@ -19,7 +19,8 @@ namespace Content.Server.Foldable
SubscribeLocalEvent<FoldableComponent, StorageOpenAttemptEvent>(OnFoldableOpenAttempt);
SubscribeLocalEvent<FoldableComponent, GetVerbsEvent<AlternativeVerb>>(AddFoldVerb);
SubscribeLocalEvent<FoldableComponent, InsertIntoEntityStorageAttemptEvent>(OnEntityStorageInsertAttempt);
SubscribeLocalEvent<FoldableComponent, StoreThisAttemptEvent>(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();
}

View File

@@ -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<SharedItemComponent>(entity);
var targetIsMob = _entMan.HasComponent<SharedBodyComponent>(entity);
var storageIsItem = _entMan.HasComponent<SharedItemComponent>(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
{

View File

@@ -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);