fire extinguisher using item toggle (#29906)

* move SprayAttemptEvent to shared

* add SolutionTransferredEvent

* replace FireExtinguisher with SpraySafety

* update fire extinguisher yml

* invert visuals

* always handle event in solution transfer, it makes popups

* instantly fill it

* untroll

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas
2024-07-13 04:17:10 +00:00
committed by GitHub
parent 87fa6075b6
commit 7b590122b6
10 changed files with 118 additions and 209 deletions

View File

@@ -1,11 +1,11 @@
using Content.Server.Chemistry.Components;
using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.Chemistry.EntitySystems;
using Content.Server.Extinguisher;
using Content.Server.Fluids.Components;
using Content.Server.Gravity;
using Content.Server.Popups;
using Content.Shared.FixedPoint;
using Content.Shared.Fluids;
using Content.Shared.Interaction;
using Content.Shared.Timing;
using Content.Shared.Vapor;
@@ -34,7 +34,7 @@ public sealed class SpraySystem : EntitySystem
{
base.Initialize();
SubscribeLocalEvent<SprayComponent, AfterInteractEvent>(OnAfterInteract, after: new[] { typeof(FireExtinguisherSystem) });
SubscribeLocalEvent<SprayComponent, AfterInteractEvent>(OnAfterInteract);
}
private void OnAfterInteract(Entity<SprayComponent> entity, ref AfterInteractEvent args)
@@ -48,7 +48,7 @@ public sealed class SpraySystem : EntitySystem
return;
var ev = new SprayAttemptEvent(args.User);
RaiseLocalEvent(entity, ev);
RaiseLocalEvent(entity, ref ev);
if (ev.Cancelled)
return;
@@ -148,13 +148,3 @@ public sealed class SpraySystem : EntitySystem
_useDelay.TryResetDelay((entity, useDelay));
}
}
public sealed class SprayAttemptEvent : CancellableEntityEventArgs
{
public EntityUid User;
public SprayAttemptEvent(EntityUid user)
{
User = user;
}
}