1
0

EntityStorageSystem.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System.Diagnostics.CodeAnalysis;
  2. using Content.Client.Storage.Components;
  3. using Content.Shared.Destructible;
  4. using Content.Shared.Foldable;
  5. using Content.Shared.Interaction;
  6. using Content.Shared.Lock;
  7. using Content.Shared.Movement.Events;
  8. using Content.Shared.Storage.Components;
  9. using Content.Shared.Storage.EntitySystems;
  10. using Content.Shared.Verbs;
  11. using Robust.Shared.GameStates;
  12. namespace Content.Client.Storage.Systems;
  13. public sealed class EntityStorageSystem : SharedEntityStorageSystem
  14. {
  15. public override void Initialize()
  16. {
  17. base.Initialize();
  18. SubscribeLocalEvent<EntityStorageComponent, EntityUnpausedEvent>(OnEntityUnpausedEvent);
  19. SubscribeLocalEvent<EntityStorageComponent, ComponentInit>(OnComponentInit);
  20. SubscribeLocalEvent<EntityStorageComponent, ComponentStartup>(OnComponentStartup);
  21. SubscribeLocalEvent<EntityStorageComponent, ActivateInWorldEvent>(OnInteract, after: new[] { typeof(LockSystem) });
  22. SubscribeLocalEvent<EntityStorageComponent, LockToggleAttemptEvent>(OnLockToggleAttempt);
  23. SubscribeLocalEvent<EntityStorageComponent, DestructionEventArgs>(OnDestruction);
  24. SubscribeLocalEvent<EntityStorageComponent, GetVerbsEvent<InteractionVerb>>(AddToggleOpenVerb);
  25. SubscribeLocalEvent<EntityStorageComponent, ContainerRelayMovementEntityEvent>(OnRelayMovement);
  26. SubscribeLocalEvent<EntityStorageComponent, FoldAttemptEvent>(OnFoldAttempt);
  27. SubscribeLocalEvent<EntityStorageComponent, ComponentGetState>(OnGetState);
  28. SubscribeLocalEvent<EntityStorageComponent, ComponentHandleState>(OnHandleState);
  29. }
  30. public override bool ResolveStorage(EntityUid uid, [NotNullWhen(true)] ref SharedEntityStorageComponent? component)
  31. {
  32. if (component != null)
  33. return true;
  34. TryComp<EntityStorageComponent>(uid, out var storage);
  35. component = storage;
  36. return component != null;
  37. }
  38. }