Revert 'Revert 'Solution Entities'' (#23168)
This commit is contained in:
@@ -1,10 +1,6 @@
|
||||
using Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Components;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Chemistry.Reaction;
|
||||
using Content.Shared.IdentityManagement;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Interaction.Events;
|
||||
using Robust.Shared.Player;
|
||||
|
||||
namespace Content.Server.Chemistry.EntitySystems;
|
||||
|
||||
@@ -15,27 +11,26 @@ public sealed partial class ChemistrySystem
|
||||
SubscribeLocalEvent<ReactionMixerComponent, AfterInteractEvent>(OnAfterInteract);
|
||||
}
|
||||
|
||||
private void OnAfterInteract(EntityUid uid, ReactionMixerComponent component, AfterInteractEvent args)
|
||||
private void OnAfterInteract(Entity<ReactionMixerComponent> entity, ref AfterInteractEvent args)
|
||||
{
|
||||
if (!args.Target.HasValue || !args.CanReach)
|
||||
return;
|
||||
|
||||
var mixAttemptEvent = new MixingAttemptEvent(uid);
|
||||
RaiseLocalEvent(uid, ref mixAttemptEvent);
|
||||
if(mixAttemptEvent.Cancelled)
|
||||
var mixAttemptEvent = new MixingAttemptEvent(entity);
|
||||
RaiseLocalEvent(entity, ref mixAttemptEvent);
|
||||
if (mixAttemptEvent.Cancelled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Solution? solution = null;
|
||||
if (!_solutions.TryGetMixableSolution(args.Target.Value, out solution))
|
||||
return;
|
||||
if (!_solutionContainers.TryGetMixableSolution(args.Target.Value, out var solution))
|
||||
return;
|
||||
|
||||
_popup.PopupEntity(Loc.GetString(component.MixMessage, ("mixed", Identity.Entity(args.Target.Value, EntityManager)), ("mixer", Identity.Entity(uid, EntityManager))), args.User, args.User);
|
||||
_popup.PopupEntity(Loc.GetString(entity.Comp.MixMessage, ("mixed", Identity.Entity(args.Target.Value, EntityManager)), ("mixer", Identity.Entity(entity.Owner, EntityManager))), args.User, args.User);
|
||||
|
||||
_solutions.UpdateChemicals(args.Target.Value, solution, true, component);
|
||||
_solutionContainers.UpdateChemicals(solution.Value, true, entity.Comp);
|
||||
|
||||
var afterMixingEvent = new AfterMixingEvent(uid, args.Target.Value);
|
||||
RaiseLocalEvent(uid, afterMixingEvent);
|
||||
var afterMixingEvent = new AfterMixingEvent(entity, args.Target.Value);
|
||||
RaiseLocalEvent(entity, afterMixingEvent);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user