ReagentEntityReaction uses EntityUid

This commit is contained in:
Vera Aguilera Puerto
2021-11-09 11:12:55 +01:00
parent 40c3261665
commit 0220551f72
6 changed files with 17 additions and 17 deletions

View File

@@ -20,15 +20,15 @@ namespace Content.Server.Chemistry.ReagentEntityReactions
// ReSharper disable once CollectionNeverUpdated.Local
private readonly HashSet<string> _reagents = new();
protected override void React(IEntity entity, ReagentPrototype reagent, FixedPoint2 volume, Solution? source)
protected override void React(EntityUid uid, ReagentPrototype reagent, FixedPoint2 volume, Solution? source, IEntityManager entityManager)
{
// TODO see if this is correct
if (!EntitySystem.Get<SolutionContainerSystem>()
.TryGetSolution(entity.Uid, _solution, out var solutionContainer)
.TryGetSolution(uid, _solution, out var solutionContainer)
|| (_reagents.Count > 0 && !_reagents.Contains(reagent.ID))) return;
if (EntitySystem.Get<SolutionContainerSystem>()
.TryAddReagent(entity.Uid, solutionContainer, reagent.ID, volume, out var accepted))
.TryAddReagent(uid, solutionContainer, reagent.ID, volume, out var accepted))
source?.RemoveReagent(reagent.ID, accepted);
}
}

View File

@@ -18,13 +18,13 @@ namespace Content.Server.Chemistry.ReagentEntityReactions
// ReSharper disable once CollectionNeverUpdated.Local
private readonly HashSet<string> _reagents = new ();
protected override void React(IEntity entity, ReagentPrototype reagent, FixedPoint2 volume, Solution? source)
protected override void React(EntityUid uid, ReagentPrototype reagent, FixedPoint2 volume, Solution? source, IEntityManager entityManager)
{
if (!entity.TryGetComponent(out FlammableComponent? flammable) || !_reagents.Contains(reagent.ID)) return;
if (!entityManager.TryGetComponent(uid, out FlammableComponent? flammable) || !_reagents.Contains(reagent.ID)) return;
var flammableSystem = EntitySystem.Get<FlammableSystem>();
flammableSystem.Extinguish(entity.Uid, flammable);
flammableSystem.AdjustFireStacks(entity.Uid, -1.5f, flammable);
flammableSystem.Extinguish(uid, flammable);
flammableSystem.AdjustFireStacks(uid, -1.5f, flammable);
}
}
}

View File

@@ -18,11 +18,11 @@ namespace Content.Server.Chemistry.ReagentEntityReactions
// ReSharper disable once CollectionNeverUpdated.Local
private readonly HashSet<string> _reagents = new ();
protected override void React(IEntity entity, ReagentPrototype reagent, FixedPoint2 volume, Solution? source)
protected override void React(EntityUid uid, ReagentPrototype reagent, FixedPoint2 volume, Solution? source, IEntityManager entityManager)
{
if (!entity.TryGetComponent(out FlammableComponent? flammable) || !_reagents.Contains(reagent.ID)) return;
if (!entityManager.TryGetComponent(uid, out FlammableComponent? flammable) || !_reagents.Contains(reagent.ID)) return;
EntitySystem.Get<FlammableSystem>().AdjustFireStacks(entity.Uid, volume.Float() / 10f, flammable);
EntitySystem.Get<FlammableSystem>().AdjustFireStacks(uid, volume.Float() / 10f, flammable);
source?.RemoveReagent(reagent.ID, volume);
}
}

View File

@@ -18,11 +18,11 @@ namespace Content.Server.Chemistry.ReagentEntityReactions
// ReSharper disable once CollectionNeverUpdated.Local
private readonly HashSet<string> _reagents = new ();
protected override void React(IEntity entity, ReagentPrototype reagent, FixedPoint2 volume, Solution? source)
protected override void React(EntityUid uid, ReagentPrototype reagent, FixedPoint2 volume, Solution? source, IEntityManager entityManager)
{
if (!entity.TryGetComponent(out CreamPiedComponent? creamPied) || !_reagents.Contains(reagent.ID)) return;
if (!entityManager.TryGetComponent(uid, out CreamPiedComponent? creamPied) || !_reagents.Contains(reagent.ID)) return;
EntitySystem.Get<CreamPieSystem>().SetCreamPied(entity.Uid, creamPied, false);
EntitySystem.Get<CreamPieSystem>().SetCreamPied(uid, creamPied, false);
}
}
}

View File

@@ -37,7 +37,7 @@ namespace Content.Shared.Chemistry
foreach (var reaction in reactive.Reactions)
{
// If we have a source solution, use the reagent quantity we have left. Otherwise, use the reaction volume specified.
reaction.React(method, entity, reagent, source?.GetReagentQuantity(reagent.ID) ?? reactVolume, source);
reaction.React(method, entity.Uid, reagent, source?.GetReagentQuantity(reagent.ID) ?? reactVolume, source, EntityManager);
// Make sure we still have enough reagent to go...
if (source != null && !source.ContainsReagent(reagent.ID))

View File

@@ -28,7 +28,7 @@ namespace Content.Shared.Chemistry.Reagent
[DataField("ingestion")]
public bool Ingestion { get; } = false;
public void React(ReactionMethod method, IEntity entity, ReagentPrototype reagent, FixedPoint2 volume, Components.Solution? source)
public void React(ReactionMethod method, EntityUid uid, ReagentPrototype reagent, FixedPoint2 volume, Components.Solution? source, IEntityManager entityManager)
{
switch (method)
{
@@ -48,9 +48,9 @@ namespace Content.Shared.Chemistry.Reagent
throw new ArgumentOutOfRangeException(nameof(method), method, null);
}
React(entity, reagent, volume, source);
React(uid, reagent, volume, source, entityManager);
}
protected abstract void React(IEntity entity, ReagentPrototype reagent, FixedPoint2 volume, Components.Solution? source);
protected abstract void React(EntityUid uid, ReagentPrototype reagent, FixedPoint2 volume, Components.Solution? source, IEntityManager entityManager);
}
}