1
0

TileEntityEffectSystem.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. using Content.Server.Atmos.Components;
  2. using Content.Server.Atmos.EntitySystems;
  3. using Content.Shared.StepTrigger.Systems;
  4. using Content.Shared.Chemistry.Reagent;
  5. using Content.Shared.EntityEffects;
  6. namespace Content.Server.Tiles;
  7. public sealed class TileEntityEffectSystem : EntitySystem
  8. {
  9. public override void Initialize()
  10. {
  11. base.Initialize();
  12. SubscribeLocalEvent<TileEntityEffectComponent, StepTriggeredOffEvent>(OnTileStepTriggered);
  13. SubscribeLocalEvent<TileEntityEffectComponent, StepTriggerAttemptEvent>(OnTileStepTriggerAttempt);
  14. }
  15. private void OnTileStepTriggerAttempt(Entity<TileEntityEffectComponent> ent, ref StepTriggerAttemptEvent args)
  16. {
  17. args.Continue = true;
  18. }
  19. private void OnTileStepTriggered(Entity<TileEntityEffectComponent> ent, ref StepTriggeredOffEvent args)
  20. {
  21. var otherUid = args.Tripper;
  22. var effectArgs = new EntityEffectBaseArgs(otherUid, EntityManager);
  23. foreach (var effect in ent.Comp.Effects)
  24. {
  25. effect.Effect(effectArgs);
  26. }
  27. }
  28. }