using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Components.SolutionManager;
using Content.Shared.Chemistry.EntitySystems;
+using Robust.Shared.Containers;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
{
SubscribeLocalEvent<StomachComponent, MapInitEvent>(OnMapInit);
SubscribeLocalEvent<StomachComponent, EntityUnpausedEvent>(OnUnpaused);
+ SubscribeLocalEvent<StomachComponent, EntRemovedFromContainerMessage>(OnEntRemoved);
SubscribeLocalEvent<StomachComponent, ApplyMetabolicMultiplierEvent>(OnApplyMetabolicMultiplier);
}
ent.Comp.NextUpdate += args.PausedTime;
}
+ private void OnEntRemoved(Entity<StomachComponent> ent, ref EntRemovedFromContainerMessage args)
+ {
+ // Make sure the removed entity was our contained solution
+ if (ent.Comp.Solution is not { } solution || args.Entity != solution.Owner)
+ return;
+
+ // Cleared our cached reference to the solution entity
+ ent.Comp.Solution = null;
+ }
+
public override void Update(float frameTime)
{
var query = EntityQueryEnumerator<StomachComponent, OrganComponent, SolutionContainerManagerComponent>();