diff --git a/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs b/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs index ffa869bb48..c976ba08cd 100644 --- a/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs +++ b/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs @@ -41,7 +41,7 @@ namespace Content.IntegrationTests.Tests.Chemistry beaker = entityManager.SpawnEntity("BluespaceBeaker", MapCoordinates.Nullspace); Assert.That(EntitySystem.Get() - .TryGetSolution(beaker, "beaker", out component)); + .TryGetSolution(beaker.Uid, "beaker", out component)); foreach (var (id, reactant) in reactionPrototype.Reactants) { Assert.That(EntitySystem.Get() diff --git a/Content.Server/AI/Utility/Considerations/Nutrition/Drink/DrinkValueCon.cs b/Content.Server/AI/Utility/Considerations/Nutrition/Drink/DrinkValueCon.cs index d9b81bfd9e..8ef53c8a46 100644 --- a/Content.Server/AI/Utility/Considerations/Nutrition/Drink/DrinkValueCon.cs +++ b/Content.Server/AI/Utility/Considerations/Nutrition/Drink/DrinkValueCon.cs @@ -14,7 +14,7 @@ namespace Content.Server.AI.Utility.Considerations.Nutrition.Drink if (target == null || target.Deleted - || !EntitySystem.Get().TryGetSolution(target, DrinkComponent.DefaultSolutionName, out var drink)) + || !EntitySystem.Get().TryGetSolution(target.Uid, DrinkComponent.DefaultSolutionName, out var drink)) { return 0.0f; } diff --git a/Content.Server/AI/Utility/Considerations/Nutrition/Food/FoodValueCon.cs b/Content.Server/AI/Utility/Considerations/Nutrition/Food/FoodValueCon.cs index d00d6a837c..3c370a1a32 100644 --- a/Content.Server/AI/Utility/Considerations/Nutrition/Food/FoodValueCon.cs +++ b/Content.Server/AI/Utility/Considerations/Nutrition/Food/FoodValueCon.cs @@ -13,7 +13,7 @@ namespace Content.Server.AI.Utility.Considerations.Nutrition.Food var target = context.GetState().GetValue(); if (target == null || target.Deleted || !target.TryGetComponent(out var foodComp) || - !EntitySystem.Get().TryGetSolution(target, foodComp.SolutionName, out var food)) + !EntitySystem.Get().TryGetSolution(target.Uid, foodComp.SolutionName, out var food)) { return 0.0f; } diff --git a/Content.Server/Administration/UI/AdminAddReagentEui.cs b/Content.Server/Administration/UI/AdminAddReagentEui.cs index 5f433c192f..9cfcf882b9 100644 --- a/Content.Server/Administration/UI/AdminAddReagentEui.cs +++ b/Content.Server/Administration/UI/AdminAddReagentEui.cs @@ -31,7 +31,7 @@ namespace Content.Server.Administration.UI public override EuiStateBase GetNewState() { if (EntitySystem.Get() - .TryGetSolution(_target, "default", out var container)) + .TryGetSolution(_target.Uid, "default", out var container)) { return new AdminAddReagentEuiState { @@ -68,7 +68,7 @@ namespace Content.Server.Administration.UI var solutionsSys = EntitySystem.Get(); if (_target.TryGetComponent(out InjectableSolutionComponent? injectable) - && solutionsSys.TryGetSolution(_target, injectable.Name, out var targetSolution)) + && solutionsSys.TryGetSolution(_target.Uid, injectable.Name, out var targetSolution)) { var solution = new Solution(id, amount); solutionsSys.Inject(_target.Uid, targetSolution, solution); @@ -76,7 +76,7 @@ namespace Content.Server.Administration.UI else { //TODO decide how to find the solution - if (solutionsSys.TryGetSolution(_target, "default", out var solution)) + if (solutionsSys.TryGetSolution(_target.Uid, "default", out var solution)) { solutionsSys.TryAddReagent(_target.Uid,solution, id, amount, out _); } diff --git a/Content.Server/Body/Behavior/StomachBehavior.cs b/Content.Server/Body/Behavior/StomachBehavior.cs index a9f4492826..0eb98139cd 100644 --- a/Content.Server/Body/Behavior/StomachBehavior.cs +++ b/Content.Server/Body/Behavior/StomachBehavior.cs @@ -89,7 +89,7 @@ namespace Content.Server.Body.Behavior { get { - EntitySystem.Get().TryGetSolution(Owner, DefaultSolutionName, out var solution); + EntitySystem.Get().TryGetSolution(Owner.Uid, DefaultSolutionName, out var solution); return solution; } } @@ -134,7 +134,7 @@ namespace Content.Server.Body.Behavior { base.Startup(); - var solution = EntitySystem.Get().EnsureSolution(Owner, DefaultSolutionName); + var solution = EntitySystem.Get().EnsureSolution(Owner.Uid, DefaultSolutionName); solution.MaxVolume = InitialMaxVolume; } diff --git a/Content.Server/Body/Circulatory/BloodstreamComponent.cs b/Content.Server/Body/Circulatory/BloodstreamComponent.cs index 0e71f88424..9503dde557 100644 --- a/Content.Server/Body/Circulatory/BloodstreamComponent.cs +++ b/Content.Server/Body/Circulatory/BloodstreamComponent.cs @@ -44,7 +44,7 @@ namespace Content.Server.Body.Circulatory { base.Initialize(); - _internalSolution = EntitySystem.Get().EnsureSolution(Owner, DefaultSolutionName); + _internalSolution = EntitySystem.Get().EnsureSolution(Owner.Uid, DefaultSolutionName); if (_internalSolution != null) { _internalSolution.MaxVolume = _initialMaxVolume; diff --git a/Content.Server/Body/Metabolism/MetabolizerSystem.cs b/Content.Server/Body/Metabolism/MetabolizerSystem.cs index 68a83b9235..003ac7f10a 100644 --- a/Content.Server/Body/Metabolism/MetabolizerSystem.cs +++ b/Content.Server/Body/Metabolism/MetabolizerSystem.cs @@ -28,7 +28,7 @@ namespace Content.Server.Body.Metabolism private void OnMetabolizerInit(EntityUid uid, MetabolizerComponent component, ComponentInit args) { - _solutionContainerSystem.EnsureSolution(EntityManager.GetEntity(uid), component.SolutionName); + _solutionContainerSystem.EnsureSolution(uid, component.SolutionName); } public override void Update(float frameTime) @@ -63,7 +63,7 @@ namespace Content.Server.Body.Metabolism if (body != null) { if (body.Owner.HasComponent() - && solutionsSys.TryGetSolution(body.Owner, comp.SolutionName, out solution) + && solutionsSys.TryGetSolution(body.Owner.Uid, comp.SolutionName, out solution) && solution.CurrentVolume >= ReagentUnit.Zero) { reagentList = solution.Contents; diff --git a/Content.Server/Botany/Components/PlantHolderComponent.cs b/Content.Server/Botany/Components/PlantHolderComponent.cs index 1c6a4d36a8..d3d66eed47 100644 --- a/Content.Server/Botany/Components/PlantHolderComponent.cs +++ b/Content.Server/Botany/Components/PlantHolderComponent.cs @@ -547,7 +547,7 @@ namespace Content.Server.Botany.Components public void UpdateReagents() { var solutionSystem = EntitySystem.Get(); - if (!solutionSystem.TryGetSolution(Owner, SoilSolutionName, out var solution)) + if (!solutionSystem.TryGetSolution(Owner.Uid, SoilSolutionName, out var solution)) return; if (solution.TotalVolume <= 0 || MutationLevel >= 25) @@ -725,7 +725,7 @@ namespace Content.Server.Botany.Components var solutionSystem = EntitySystem.Get(); if (solutionSystem.TryGetDrainableSolution(usingItem.Uid, out var solution) - && solutionSystem.TryGetSolution(Owner, SoilSolutionName, out var targetSolution)) + && solutionSystem.TryGetSolution(Owner.Uid, SoilSolutionName, out var targetSolution)) { var amount = ReagentUnit.New(5); var sprayed = false; @@ -812,7 +812,7 @@ namespace Content.Server.Botany.Components ("usingItem", usingItem), ("owner", Owner))); - if (solutionSystem.TryGetSolution(usingItem, produce.SolutionName, out var solution2)) + if (solutionSystem.TryGetSolution(usingItem.Uid, produce.SolutionName, out var solution2)) { // This deliberately discards overfill. solutionSystem.TryAddSolution(usingItem.Uid, solution2, diff --git a/Content.Server/Botany/Components/ProduceComponent.cs b/Content.Server/Botany/Components/ProduceComponent.cs index e9b69d87fe..3cec2be151 100644 --- a/Content.Server/Botany/Components/ProduceComponent.cs +++ b/Content.Server/Botany/Components/ProduceComponent.cs @@ -40,7 +40,7 @@ namespace Content.Server.Botany.Components sprite.LayerSetState(0, Seed.PlantIconState); } - var solutionContainer = EntitySystem.Get().EnsureSolution(Owner, SolutionName); + var solutionContainer = EntitySystem.Get().EnsureSolution(Owner.Uid, SolutionName); if (solutionContainer == null) { Logger.Warning($"No solution container found in {nameof(ProduceComponent)}."); diff --git a/Content.Server/Chemistry/Components/ChemMasterComponent.cs b/Content.Server/Chemistry/Components/ChemMasterComponent.cs index c6d486d987..eebcf35f70 100644 --- a/Content.Server/Chemistry/Components/ChemMasterComponent.cs +++ b/Content.Server/Chemistry/Components/ChemMasterComponent.cs @@ -49,7 +49,7 @@ namespace Content.Server.Chemistry.Components private bool Powered => !Owner.TryGetComponent(out ApcPowerReceiverComponent? receiver) || receiver.Powered; [ViewVariables] - private Solution BufferSolution => _bufferSolution ??= EntitySystem.Get().EnsureSolution(Owner, SolutionName); + private Solution BufferSolution => _bufferSolution ??= EntitySystem.Get().EnsureSolution(Owner.Uid, SolutionName); private Solution? _bufferSolution; @@ -76,7 +76,7 @@ namespace Content.Server.Chemistry.Components BeakerContainer = ContainerHelpers.EnsureContainer(Owner, $"{Name}-reagentContainerContainer"); - _bufferSolution = EntitySystem.Get().EnsureSolution(Owner, SolutionName); + _bufferSolution = EntitySystem.Get().EnsureSolution(Owner.Uid, SolutionName); UpdateUserInterface(); } @@ -181,7 +181,7 @@ namespace Content.Server.Chemistry.Components { var beaker = BeakerContainer.ContainedEntity; if (beaker is null || !beaker.TryGetComponent(out FitsInDispenserComponent? fits) || - !EntitySystem.Get().TryGetSolution(beaker, fits.Solution, out var beakerSolution)) + !EntitySystem.Get().TryGetSolution(beaker.Uid, fits.Solution, out var beakerSolution)) { return new ChemMasterBoundUserInterfaceState(Powered, false, ReagentUnit.New(0), ReagentUnit.New(0), "", Owner.Name, new List(), BufferSolution.Contents, _bufferModeTransfer, @@ -230,7 +230,7 @@ namespace Content.Server.Chemistry.Components var beaker = BeakerContainer.ContainedEntity; if (beaker is null || !beaker.TryGetComponent(out FitsInDispenserComponent? fits) || - !EntitySystem.Get().TryGetSolution(beaker, fits.Solution, out var beakerSolution)) + !EntitySystem.Get().TryGetSolution(beaker.Uid, fits.Solution, out var beakerSolution)) return; if (isBuffer) @@ -307,7 +307,7 @@ namespace Content.Server.Chemistry.Components var bottle = Owner.EntityManager.SpawnEntity("ChemistryEmptyBottle01", Owner.Transform.Coordinates); var bufferSolution = BufferSolution.SplitSolution(actualVolume); - var bottleSolution = EntitySystem.Get().EnsureSolution(bottle, "drink"); + var bottleSolution = EntitySystem.Get().EnsureSolution(bottle.Uid, "drink"); EntitySystem.Get().TryAddSolution(bottle.Uid, bottleSolution, bufferSolution); @@ -341,7 +341,7 @@ namespace Content.Server.Chemistry.Components var bufferSolution = BufferSolution.SplitSolution(actualVolume); - var pillSolution = EntitySystem.Get().EnsureSolution(pill, "food"); + var pillSolution = EntitySystem.Get().EnsureSolution(pill.Uid, "food"); EntitySystem.Get().TryAddSolution(pill.Uid, pillSolution, bufferSolution); //Try to give them the bottle diff --git a/Content.Server/Chemistry/Components/FoamSolutionAreaEffectComponent.cs b/Content.Server/Chemistry/Components/FoamSolutionAreaEffectComponent.cs index cc38818e9c..195474e466 100644 --- a/Content.Server/Chemistry/Components/FoamSolutionAreaEffectComponent.cs +++ b/Content.Server/Chemistry/Components/FoamSolutionAreaEffectComponent.cs @@ -23,7 +23,7 @@ namespace Content.Server.Chemistry.Components protected override void UpdateVisuals() { if (Owner.TryGetComponent(out AppearanceComponent? appearance) && - EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) { appearance.SetData(FoamVisuals.Color, solution.Color.WithAlpha(0.80f)); } @@ -31,7 +31,7 @@ namespace Content.Server.Chemistry.Components protected override void ReactWithEntity(IEntity entity, double solutionFraction) { - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) return; if (!entity.TryGetComponent(out BloodstreamComponent? bloodstream)) diff --git a/Content.Server/Chemistry/Components/HyposprayComponent.cs b/Content.Server/Chemistry/Components/HyposprayComponent.cs index bf4ba3f942..d1f4a9e328 100644 --- a/Content.Server/Chemistry/Components/HyposprayComponent.cs +++ b/Content.Server/Chemistry/Components/HyposprayComponent.cs @@ -57,7 +57,7 @@ namespace Content.Server.Chemistry.Components } var solutionsSys = EntitySystem.Get(); - solutionsSys.TryGetSolution(Owner, SolutionName, out var hypoSpraySolution); + solutionsSys.TryGetSolution(Owner.Uid, SolutionName, out var hypoSpraySolution); if (hypoSpraySolution == null || hypoSpraySolution.CurrentVolume == 0) { @@ -124,7 +124,7 @@ namespace Content.Server.Chemistry.Components public override ComponentState GetComponentState(ICommonSession player) { var solutionSys = Owner.EntityManager.EntitySysManager.GetEntitySystem(); - return solutionSys.TryGetSolution(Owner, SolutionName, out var solution) + return solutionSys.TryGetSolution(Owner.Uid, SolutionName, out var solution) ? new HyposprayComponentState(solution.CurrentVolume, solution.MaxVolume) : new HyposprayComponentState(ReagentUnit.Zero, ReagentUnit.Zero); } diff --git a/Content.Server/Chemistry/Components/InjectorComponent.cs b/Content.Server/Chemistry/Components/InjectorComponent.cs index ff157e6b32..0622544f25 100644 --- a/Content.Server/Chemistry/Components/InjectorComponent.cs +++ b/Content.Server/Chemistry/Components/InjectorComponent.cs @@ -146,7 +146,7 @@ namespace Content.Server.Chemistry.Components } else if (ToggleState == InjectorToggleMode.Draw) { - if (solutionsSys.TryGetDrawableSolution(targetEntity, out var drawableSolution)) + if (solutionsSys.TryGetDrawableSolution(targetEntity.Uid, out var drawableSolution)) { TryDraw(targetEntity, drawableSolution, eventArgs.User); } @@ -175,7 +175,7 @@ namespace Content.Server.Chemistry.Components private void TryInjectIntoBloodstream(BloodstreamComponent targetBloodstream, IEntity user) { if (!EntitySystem.Get() - .TryGetSolution(user, SharedBloodstreamComponent.DefaultSolutionName, out var bloodstream) + .TryGetSolution(user.Uid, SharedBloodstreamComponent.DefaultSolutionName, out var bloodstream) || bloodstream.CurrentVolume == 0) return; @@ -216,7 +216,7 @@ namespace Content.Server.Chemistry.Components private void TryInject(IEntity targetEntity, Solution targetSolution, IEntity user, bool asRefill) { - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution) || solution.CurrentVolume == 0) { return; @@ -259,7 +259,7 @@ namespace Content.Server.Chemistry.Components private void AfterInject() { // Automatically set syringe to draw after completely draining it. - if (EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution) + if (EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution) && solution.CurrentVolume == 0) { ToggleState = InjectorToggleMode.Draw; @@ -269,7 +269,7 @@ namespace Content.Server.Chemistry.Components private void AfterDraw() { // Automatically set syringe to inject after completely filling it. - if (EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution) + if (EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution) && solution.AvailableVolume == 0) { ToggleState = InjectorToggleMode.Inject; @@ -278,7 +278,7 @@ namespace Content.Server.Chemistry.Components private void TryDraw(IEntity targetEntity, Solution targetSolution, IEntity user) { - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution) || solution.AvailableVolume == 0) { return; @@ -315,7 +315,7 @@ namespace Content.Server.Chemistry.Components public override ComponentState GetComponentState(ICommonSession player) { Owner.EntityManager.EntitySysManager.GetEntitySystem() - .TryGetSolution(Owner, SolutionName, out var solution); + .TryGetSolution(Owner.Uid, SolutionName, out var solution); var currentVolume = solution?.CurrentVolume ?? ReagentUnit.Zero; var maxVolume = solution?.MaxVolume ?? ReagentUnit.Zero; diff --git a/Content.Server/Chemistry/Components/ReagentDispenserComponent.cs b/Content.Server/Chemistry/Components/ReagentDispenserComponent.cs index f804d450b1..481f825d36 100644 --- a/Content.Server/Chemistry/Components/ReagentDispenserComponent.cs +++ b/Content.Server/Chemistry/Components/ReagentDispenserComponent.cs @@ -60,7 +60,7 @@ namespace Content.Server.Chemistry.Components { get { - EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution); + EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution); return solution; } } @@ -232,7 +232,7 @@ namespace Content.Server.Chemistry.Components { var beaker = BeakerContainer.ContainedEntity; if (beaker == null || !beaker.TryGetComponent(out FitsInDispenserComponent? fits) || - !EntitySystem.Get().TryGetSolution(beaker, fits.Solution, out var solution)) + !EntitySystem.Get().TryGetSolution(beaker.Uid, fits.Solution, out var solution)) { return new ReagentDispenserBoundUserInterfaceState(Powered, false, ReagentUnit.New(0), ReagentUnit.New(0), @@ -280,7 +280,7 @@ namespace Content.Server.Chemistry.Components { if (!HasBeaker || !BeakerContainer.ContainedEntity!.TryGetComponent(out FitsInDispenserComponent? fits) || !EntitySystem.Get() - .TryGetSolution(BeakerContainer.ContainedEntity, fits.Solution, out var solution)) + .TryGetSolution(BeakerContainer.ContainedEntity.Uid, fits.Solution, out var solution)) return; EntitySystem.Get().RemoveAllSolution(BeakerContainer.ContainedEntity!.Uid, solution); @@ -298,7 +298,7 @@ namespace Content.Server.Chemistry.Components if (BeakerContainer.ContainedEntity is not {} contained || !contained.TryGetComponent(out FitsInDispenserComponent? fits) || !EntitySystem.Get() - .TryGetSolution(BeakerContainer.ContainedEntity, fits.Solution, out var solution)) return; + .TryGetSolution(BeakerContainer.ContainedEntity.Uid, fits.Solution, out var solution)) return; EntitySystem.Get() .TryAddReagent(BeakerContainer.ContainedEntity.Uid, solution, Inventory[dispenseIndex].ID, _dispenseAmount, out _); diff --git a/Content.Server/Chemistry/Components/SmokeSolutionAreaEffectComponent.cs b/Content.Server/Chemistry/Components/SmokeSolutionAreaEffectComponent.cs index 33cf3ff5c4..adb99fcb7d 100644 --- a/Content.Server/Chemistry/Components/SmokeSolutionAreaEffectComponent.cs +++ b/Content.Server/Chemistry/Components/SmokeSolutionAreaEffectComponent.cs @@ -19,7 +19,7 @@ namespace Content.Server.Chemistry.Components protected override void UpdateVisuals() { if (Owner.TryGetComponent(out AppearanceComponent? appearance) && - EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) { appearance.SetData(SmokeVisuals.Color, solution.Color); } @@ -27,7 +27,7 @@ namespace Content.Server.Chemistry.Components protected override void ReactWithEntity(IEntity entity, double solutionFraction) { - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) return; if (!entity.TryGetComponent(out BloodstreamComponent? bloodstream)) diff --git a/Content.Server/Chemistry/Components/SolutionAreaEffectComponent.cs b/Content.Server/Chemistry/Components/SolutionAreaEffectComponent.cs index 47dde5ef23..3782e5560a 100644 --- a/Content.Server/Chemistry/Components/SolutionAreaEffectComponent.cs +++ b/Content.Server/Chemistry/Components/SolutionAreaEffectComponent.cs @@ -85,7 +85,7 @@ namespace Content.Server.Chemistry.Components return; } - if (EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) { effectComponent.TryAddSolution(solution.Clone()); } @@ -122,7 +122,7 @@ namespace Content.Server.Chemistry.Components /// with the other area effects from the inception. public void React(float averageExposures) { - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) return; var chemistry = EntitySystem.Get(); @@ -160,7 +160,7 @@ namespace Content.Server.Chemistry.Components if (solution.TotalVolume == 0) return; - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solutionArea)) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solutionArea)) return; var addSolution = diff --git a/Content.Server/Chemistry/EntitySystems/SolutionContainerSystem.Capabilities.cs b/Content.Server/Chemistry/EntitySystems/SolutionContainerSystem.Capabilities.cs index 548c48b143..6e68aa835d 100644 --- a/Content.Server/Chemistry/EntitySystems/SolutionContainerSystem.Capabilities.cs +++ b/Content.Server/Chemistry/EntitySystems/SolutionContainerSystem.Capabilities.cs @@ -8,133 +8,124 @@ namespace Content.Server.Chemistry.EntitySystems { public partial class SolutionContainerSystem { - public void Refill(EntityUid targetUid, Solution targetSolution, Solution addedSolution) + public void Refill(EntityUid targetUid, Solution targetSolution, Solution addedSolution, + RefillableSolutionComponent? refillableSolution = null) { - if (!EntityManager.HasComponent(targetUid)) + if (!Resolve(targetUid, ref refillableSolution, false)) return; TryAddSolution(targetUid, targetSolution, addedSolution); } - public void Inject(EntityUid targetUid, Solution targetSolution, Solution addedSolution) + public void Inject(EntityUid targetUid, Solution targetSolution, Solution addedSolution, + InjectableSolutionComponent? injectableSolution = null) { - if (!EntityManager.HasComponent(targetUid)) + if (!Resolve(targetUid, ref injectableSolution, false)) return; TryAddSolution(targetUid, targetSolution, addedSolution); } - public Solution Draw(EntityUid targetUid, Solution solution, ReagentUnit amount) + public Solution Draw(EntityUid targetUid, Solution solution, ReagentUnit amount, + DrawableSolutionComponent? drawableSolution = null) { - if (!EntityManager.HasComponent(targetUid)) - { + if (!Resolve(targetUid, ref drawableSolution, false)) return new Solution(); - } return SplitSolution(targetUid, solution, amount); } - public Solution Drain(EntityUid targetUid, Solution targetSolution, ReagentUnit amount) + public Solution Drain(EntityUid targetUid, Solution targetSolution, ReagentUnit amount, + DrainableSolutionComponent? drainableSolution = null) { - if (!EntityManager.HasComponent(targetUid)) - { + if (!Resolve(targetUid, ref drainableSolution, false)) return new Solution(); - } return SplitSolution(targetUid, targetSolution, amount); } public bool TryGetInjectableSolution(EntityUid targetUid, - [NotNullWhen(true)] out Solution? solution) + [NotNullWhen(true)] out Solution? solution, + InjectableSolutionComponent? injectable = null, + SolutionContainerManagerComponent? manager = null + ) { - if (EntityManager.TryGetComponent(targetUid, out InjectableSolutionComponent? injectable) && - EntityManager.TryGetComponent(targetUid, out SolutionContainerManagerComponent? manager) && - manager.Solutions.TryGetValue(injectable.Solution, out solution)) + if (!Resolve(targetUid, ref manager, ref injectable, false) + || !manager.Solutions.TryGetValue(injectable.Solution, out solution)) { - return true; + solution = null; + return false; } - solution = null; - return false; + return true; } public bool TryGetRefillableSolution(EntityUid targetUid, - [NotNullWhen(true)] out Solution? solution) + [NotNullWhen(true)] out Solution? solution, + SolutionContainerManagerComponent? solutionManager = null, + RefillableSolutionComponent? refillable = null) { - if (EntityManager.TryGetComponent(targetUid, out RefillableSolutionComponent? refillable) && - EntityManager.TryGetComponent(targetUid, out SolutionContainerManagerComponent? manager) && - manager.Solutions.TryGetValue(refillable.Solution, out var refillableSolution)) + if (!Resolve(targetUid, ref solutionManager, ref refillable, false) + || !solutionManager.Solutions.TryGetValue(refillable.Solution, out var refillableSolution)) { - solution = refillableSolution; - return true; + solution = null; + return false; } - solution = null; - return false; + solution = refillableSolution; + return true; } - public bool TryGetDrainableSolution(EntityUid targetUid, - [NotNullWhen(true)] out Solution? solution) + public bool TryGetDrainableSolution(EntityUid uid, + [NotNullWhen(true)] out Solution? solution, + DrainableSolutionComponent? drainable = null, + SolutionContainerManagerComponent? manager = null) { - if (EntityManager.TryGetComponent(targetUid,out DrainableSolutionComponent? drainable) && - EntityManager.TryGetComponent(targetUid,out SolutionContainerManagerComponent? manager) && - manager.Solutions.TryGetValue(drainable.Solution, out solution)) + if (!Resolve(uid, ref drainable, ref manager, false) + || !manager.Solutions.TryGetValue(drainable.Solution, out solution)) { - return true; + solution = null; + return false; } - solution = null; - return false; + return true; } - public bool TryGetDrawableSolution(IEntity owner, - [NotNullWhen(true)] out Solution? solution) + public bool TryGetDrawableSolution(EntityUid uid, + [NotNullWhen(true)] out Solution? solution, + DrawableSolutionComponent? drawable = null, + SolutionContainerManagerComponent? manager = null) { - if (owner.TryGetComponent(out DrawableSolutionComponent? drawable) && - owner.TryGetComponent(out SolutionContainerManagerComponent? manager) && - manager.Solutions.TryGetValue(drawable.Solution, out solution)) + if (!Resolve(uid, ref drawable, ref manager, false) + || !manager.Solutions.TryGetValue(drawable.Solution, out solution)) { - return true; + solution = null; + return false; } - solution = null; - return false; - } - - public ReagentUnit DrainAvailable(IEntity? owner) - { - if (owner == null || !TryGetDrainableSolution(owner.Uid, out var solution)) - return ReagentUnit.Zero; - - return solution.CurrentVolume; + return true; } public ReagentUnit DrainAvailable(EntityUid uid) { - if (!TryGetDrainableSolution(uid, out var solution)) - return ReagentUnit.Zero; - - return solution.CurrentVolume; - } - - public bool HasFitsInDispenser(IEntity owner) - { - return !owner.Deleted && owner.HasComponent(); + return !TryGetDrainableSolution(uid, out var solution) + ? ReagentUnit.Zero + : solution.CurrentVolume; } public bool TryGetFitsInDispenser(EntityUid owner, - [NotNullWhen(true)] out Solution? solution) + [NotNullWhen(true)] out Solution? solution, + FitsInDispenserComponent? dispenserFits = null, + SolutionContainerManagerComponent? solutionManager = null) { - if (EntityManager.TryGetEntity(owner, out var ownerEntity) && - ownerEntity.TryGetComponent(out FitsInDispenserComponent? dispenserFits) && - ownerEntity.TryGetComponent(out SolutionContainerManagerComponent? manager) && - manager.Solutions.TryGetValue(dispenserFits.Solution, out solution)) + if (!Resolve(owner, ref dispenserFits, ref solutionManager, false) + || !solutionManager.Solutions.TryGetValue(dispenserFits.Solution, out solution)) { - return true; + solution = null; + return false; } - solution = null; - return false; + return true; } } } diff --git a/Content.Server/Chemistry/EntitySystems/SolutionContainerSystem.cs b/Content.Server/Chemistry/EntitySystems/SolutionContainerSystem.cs index 97527e47e7..3286afd773 100644 --- a/Content.Server/Chemistry/EntitySystems/SolutionContainerSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/SolutionContainerSystem.cs @@ -65,7 +65,8 @@ namespace Content.Server.Chemistry.EntitySystems private void OnExamineSolution(EntityUid uid, ExaminableSolutionComponent examinableComponent, ExaminedEvent args) { - if (!args.Examined.TryGetComponent(out SolutionContainerManagerComponent? solutionsManager) + SolutionContainerManagerComponent? solutionsManager = null; + if (!Resolve(args.Examined.Uid, ref solutionsManager) || !solutionsManager.Solutions.TryGetValue(examinableComponent.Solution, out var solutionHolder)) return; @@ -96,15 +97,15 @@ namespace Content.Server.Chemistry.EntitySystems ("desc", Loc.GetString(proto.PhysicalDescription)))); } - private void UpdateAppearance(EntityUid uid, Solution solution) + private void UpdateAppearance(EntityUid uid, Solution solution, + SharedAppearanceComponent? appearanceComponent = null) { - if (!EntityManager.TryGetEntity(uid, out var solutionEntity) - || solutionEntity.Deleted - || !solutionEntity.TryGetComponent(out var appearance)) + if (!EntityManager.EntityExists(uid) + || !Resolve(uid, ref appearanceComponent, false)) return; var filledVolumeFraction = solution.CurrentVolume.Float() / solution.MaxVolume.Float(); - appearance.SetData(SolutionContainerVisuals.VisualState, new SolutionContainerVisualState(solution.Color, filledVolumeFraction)); + appearanceComponent.SetData(SolutionContainerVisuals.VisualState, new SolutionContainerVisualState(solution.Color, filledVolumeFraction)); } /// @@ -143,9 +144,9 @@ namespace Content.Server.Chemistry.EntitySystems UpdateChemicals(uid, solutionHolder); } - public void RemoveAllSolution(EntityUid uid) + public void RemoveAllSolution(EntityUid uid, SolutionContainerManagerComponent? solutionContainerManager = null) { - if (!EntityManager.TryGetComponent(uid, out SolutionContainerManagerComponent? solutionContainerManager)) + if (!Resolve(uid, ref solutionContainerManager)) return; foreach (var solution in solutionContainerManager.Solutions.Values) @@ -210,19 +211,9 @@ namespace Content.Server.Chemistry.EntitySystems return true; } - public bool TryGetSolution(IEntity? target, string name, - [NotNullWhen(true)] out Solution? solution, SolutionContainerManagerComponent? solutionsMgr = null) - { - if (target == null || target.Deleted) - { - solution = null; - return false; - } - - return TryGetSolution(target.Uid, name, out solution, solutionsMgr); - } - - public bool TryGetSolution(EntityUid uid, string name, [NotNullWhen(true)] out Solution? solution, SolutionContainerManagerComponent? solutionsMgr = null) + public bool TryGetSolution(EntityUid uid, string name, + [NotNullWhen(true)] out Solution? solution, + SolutionContainerManagerComponent? solutionsMgr = null) { if (!Resolve(uid, ref solutionsMgr)) { @@ -233,17 +224,6 @@ namespace Content.Server.Chemistry.EntitySystems return solutionsMgr.Solutions.TryGetValue(name, out solution); } - /// - /// Will ensure a solution is added to given entity even if it's missing solutionContainerManager - /// - /// Entity to which to add solution - /// name for the solution - /// solution - public Solution EnsureSolution(IEntity owner, string name) - { - return EnsureSolution(owner.Uid, name); - } - /// /// Will ensure a solution is added to given entity even if it's missing solutionContainerManager /// diff --git a/Content.Server/Chemistry/EntitySystems/VaporSystem.cs b/Content.Server/Chemistry/EntitySystems/VaporSystem.cs index 18cbbaf87e..3430993b3d 100644 --- a/Content.Server/Chemistry/EntitySystems/VaporSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/VaporSystem.cs @@ -65,7 +65,7 @@ namespace Content.Server.Chemistry.EntitySystems return false; } - if (!_solutionContainerSystem.TryGetSolution(vapor.Owner, SharedVaporComponent.SolutionName, + if (!_solutionContainerSystem.TryGetSolution(vapor.Owner.Uid, SharedVaporComponent.SolutionName, out var vaporSolution)) { return false; diff --git a/Content.Server/Chemistry/ReagentEntityReactions/AddToSolutionReaction.cs b/Content.Server/Chemistry/ReagentEntityReactions/AddToSolutionReaction.cs index 5927c86afa..d4e9007bec 100644 --- a/Content.Server/Chemistry/ReagentEntityReactions/AddToSolutionReaction.cs +++ b/Content.Server/Chemistry/ReagentEntityReactions/AddToSolutionReaction.cs @@ -23,7 +23,7 @@ namespace Content.Server.Chemistry.ReagentEntityReactions { // TODO see if this is correct if (!EntitySystem.Get() - .TryGetSolution(entity, _solution, out var solutionContainer) + .TryGetSolution(entity.Uid, _solution, out var solutionContainer) || (_reagents.Count > 0 && !_reagents.Contains(reagent.ID))) return; if (EntitySystem.Get() diff --git a/Content.Server/Fluids/Components/BucketComponent.cs b/Content.Server/Fluids/Components/BucketComponent.cs index 95e8dd3301..c3253c09ce 100644 --- a/Content.Server/Fluids/Components/BucketComponent.cs +++ b/Content.Server/Fluids/Components/BucketComponent.cs @@ -29,19 +29,19 @@ namespace Content.Server.Fluids.Components public ReagentUnit MaxVolume { get => - EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution) + EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution) ? solution.MaxVolume : ReagentUnit.Zero; set { - if (EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) { solution.MaxVolume = value; } } } - public ReagentUnit CurrentVolume => EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution) + public ReagentUnit CurrentVolume => EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution) ? solution.CurrentVolume : ReagentUnit.Zero; @@ -52,7 +52,7 @@ namespace Content.Server.Fluids.Components async Task IInteractUsing.InteractUsing(InteractUsingEventArgs eventArgs) { var solutionsSys = EntitySystem.Get(); - if (!solutionsSys.TryGetSolution(Owner, SolutionName, out var contents) || + if (!solutionsSys.TryGetSolution(Owner.Uid, SolutionName, out var contents) || _currentlyUsing.Contains(eventArgs.Using.Uid) || !eventArgs.Using.TryGetComponent(out MopComponent? mopComponent) || mopComponent.Mopping) diff --git a/Content.Server/Fluids/Components/MopComponent.cs b/Content.Server/Fluids/Components/MopComponent.cs index 5b0905b6c2..338032dab0 100644 --- a/Content.Server/Fluids/Components/MopComponent.cs +++ b/Content.Server/Fluids/Components/MopComponent.cs @@ -35,7 +35,7 @@ namespace Content.Server.Fluids.Components { get { - EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution); + EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution); return solution; } } @@ -81,7 +81,7 @@ namespace Content.Server.Fluids.Components * will spill some of the mop's solution onto the puddle which will evaporate eventually. */ - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var contents ) || + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var contents ) || Mopping || !eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) { @@ -156,7 +156,7 @@ namespace Content.Server.Fluids.Components } else { - if (solutionSystem.TryGetSolution(eventArgs.Target, puddleComponent.SolutionName, out var puddleSolution)) + if (solutionSystem.TryGetSolution(eventArgs.Target.Uid, puddleComponent.SolutionName, out var puddleSolution)) solutionSystem.SplitSolution(eventArgs.Target.Uid, puddleSolution, transferAmount); } diff --git a/Content.Server/Fluids/Components/SpillableComponent.cs b/Content.Server/Fluids/Components/SpillableComponent.cs index 943e04d81d..fd5afd6e66 100644 --- a/Content.Server/Fluids/Components/SpillableComponent.cs +++ b/Content.Server/Fluids/Components/SpillableComponent.cs @@ -16,7 +16,7 @@ namespace Content.Server.Fluids.Components void IDropped.Dropped(DroppedEventArgs eventArgs) { if (!eventArgs.Intentional - && EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solutionComponent)) + && EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solutionComponent)) { EntitySystem.Get() .Drain(Owner.Uid, solutionComponent, solutionComponent.DrainAvailable) diff --git a/Content.Server/Fluids/Components/SprayComponent.cs b/Content.Server/Fluids/Components/SprayComponent.cs index 45a046bb93..d4f0faa901 100644 --- a/Content.Server/Fluids/Components/SprayComponent.cs +++ b/Content.Server/Fluids/Components/SprayComponent.cs @@ -78,7 +78,7 @@ namespace Content.Server.Fluids.Components public ReagentUnit CurrentVolume { get { - EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution); + EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution); return solution?.CurrentVolume ?? ReagentUnit.Zero; } } @@ -105,7 +105,7 @@ namespace Content.Server.Fluids.Components if (eventArgs.ClickLocation.GetGridId(entManager) != playerPos.GetGridId(entManager)) return true; - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var contents)) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var contents)) return true; var direction = (eventArgs.ClickLocation.Position - playerPos.Position).Normalized; diff --git a/Content.Server/Kitchen/Components/MicrowaveComponent.cs b/Content.Server/Kitchen/Components/MicrowaveComponent.cs index 94217010d2..d436556549 100644 --- a/Content.Server/Kitchen/Components/MicrowaveComponent.cs +++ b/Content.Server/Kitchen/Components/MicrowaveComponent.cs @@ -69,7 +69,7 @@ namespace Content.Server.Kitchen.Components private bool Powered => !Owner.TryGetComponent(out ApcPowerReceiverComponent? receiver) || receiver.Powered; private bool HasContents => EntitySystem.Get() - .TryGetSolution(Owner, SolutionName, out var solution) && + .TryGetSolution(Owner.Uid, SolutionName, out var solution) && (solution.Contents.Count > 0 || _storage.ContainedEntities.Count > 0); private bool _uiDirty = true; @@ -92,7 +92,7 @@ namespace Content.Server.Kitchen.Components _currentCookTimerTime = _cookTimeDefault; - EntitySystem.Get().EnsureSolution(Owner, SolutionName); + EntitySystem.Get().EnsureSolution(Owner.Uid, SolutionName); _storage = ContainerHelpers.EnsureContainer(Owner, "microwave_entity_container", out _); @@ -182,7 +182,7 @@ namespace Content.Server.Kitchen.Components } if (_uiDirty && EntitySystem.Get() - .TryGetSolution(Owner, SolutionName, out var solution)) + .TryGetSolution(Owner.Uid, SolutionName, out var solution)) { UserInterface?.SetState(new MicrowaveUpdateUserInterfaceState ( @@ -257,7 +257,7 @@ namespace Content.Server.Kitchen.Components return false; } - if (!solutionsSystem.TryGetSolution(Owner, SolutionName, out var solution)) + if (!solutionsSystem.TryGetSolution(Owner.Uid, SolutionName, out var solution)) { return false; } @@ -388,7 +388,7 @@ namespace Content.Server.Kitchen.Components private void VaporizeReagents() { - if (EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) { EntitySystem.Get().RemoveAllSolution(Owner.Uid, solution); } @@ -396,7 +396,7 @@ namespace Content.Server.Kitchen.Components private void VaporizeReagentQuantity(Solution.ReagentQuantity reagentQuantity) { - if (EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) { EntitySystem.Get() .TryRemoveReagent(Owner.Uid, solution, reagentQuantity.ReagentId, reagentQuantity.Quantity); @@ -432,7 +432,7 @@ namespace Content.Server.Kitchen.Components private void SubtractContents(FoodRecipePrototype recipe) { var solutionUid = Owner.Uid; - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) { return; } @@ -472,7 +472,7 @@ namespace Content.Server.Kitchen.Components return MicrowaveSuccessState.RecipeFail; } - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) { return MicrowaveSuccessState.RecipeFail; } diff --git a/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs b/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs index 648d6a0a58..8691fa569c 100644 --- a/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs +++ b/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs @@ -308,7 +308,7 @@ namespace Content.Server.Kitchen.EntitySystems { if (!item.TryGetComponent(out ExtractableComponent? extract) || extract.GrindableSolution == null - || !_solutionsSystem.TryGetSolution(item, extract.GrindableSolution, out var solution)) continue; + || !_solutionsSystem.TryGetSolution(item.Uid, extract.GrindableSolution, out var solution)) continue; var juiceEvent = new ExtractableScalingEvent(); // default of scalar is always 1.0 RaiseLocalEvent(item.Uid, juiceEvent, false); diff --git a/Content.Server/Nutrition/Components/FoodComponent.cs b/Content.Server/Nutrition/Components/FoodComponent.cs index ccde83d80b..d0125d2d34 100644 --- a/Content.Server/Nutrition/Components/FoodComponent.cs +++ b/Content.Server/Nutrition/Components/FoodComponent.cs @@ -55,7 +55,7 @@ namespace Content.Server.Nutrition.Components { get { - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var solution)) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var solution)) { return 0; } @@ -101,7 +101,7 @@ namespace Content.Server.Nutrition.Components public bool TryUseFood(IEntity? user, IEntity? target, UtensilComponent? utensilUsed = null) { var solutionContainerSys = EntitySystem.Get(); - if (!solutionContainerSys.TryGetSolution(Owner, SolutionName, out var solution)) + if (!solutionContainerSys.TryGetSolution(Owner.Uid, SolutionName, out var solution)) { return false; } diff --git a/Content.Server/Nutrition/Components/SliceableFoodComponent.cs b/Content.Server/Nutrition/Components/SliceableFoodComponent.cs index 862e0a420c..ba711de01c 100644 --- a/Content.Server/Nutrition/Components/SliceableFoodComponent.cs +++ b/Content.Server/Nutrition/Components/SliceableFoodComponent.cs @@ -48,7 +48,7 @@ namespace Content.Server.Nutrition.Components Count = _totalCount; var foodComp = Owner.EnsureComponent(); Owner.EnsureComponent(); - EntitySystem.Get().EnsureSolution(Owner, foodComp.SolutionName); + EntitySystem.Get().EnsureSolution(Owner.Uid, foodComp.SolutionName); } async Task IInteractUsing.InteractUsing(InteractUsingEventArgs eventArgs) @@ -60,7 +60,7 @@ namespace Content.Server.Nutrition.Components var scs = EntitySystem.Get(); - if (!Owner.TryGetComponent(out var foodComp) || !scs.TryGetSolution(Owner, foodComp.SolutionName, out var solution)) + if (!Owner.TryGetComponent(out var foodComp) || !scs.TryGetSolution(Owner.Uid, foodComp.SolutionName, out var solution)) { return false; } @@ -80,7 +80,7 @@ namespace Content.Server.Nutrition.Components // It might be an idea to remove the removal of Nutriment & clear the food lostSolution.RemoveReagent("Nutriment", lostSolution.GetReagentQuantity("Nutriment")); // 3. Dump whatever we can into the slice - if (itemToSpawn.TryGetComponent(out var itsFoodComp) && scs.TryGetSolution(itemToSpawn, itsFoodComp.SolutionName, out var itsSolution)) + if (itemToSpawn.TryGetComponent(out var itsFoodComp) && scs.TryGetSolution(itemToSpawn.Uid, itsFoodComp.SolutionName, out var itsSolution)) { var lostSolutionPart = lostSolution.SplitSolution(itsSolution.AvailableVolume); scs.TryAddSolution(itemToSpawn.Uid, itsSolution, lostSolutionPart); diff --git a/Content.Server/Nutrition/EntitySystems/CreamPieSystem.cs b/Content.Server/Nutrition/EntitySystems/CreamPieSystem.cs index d7ef2d4838..e7ef1023c2 100644 --- a/Content.Server/Nutrition/EntitySystems/CreamPieSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/CreamPieSystem.cs @@ -25,7 +25,7 @@ namespace Content.Server.Nutrition.EntitySystems { SoundSystem.Play(Filter.Pvs(creamPie.Owner), creamPie.Sound.GetSound(), creamPie.Owner, AudioHelpers.WithVariation(0.125f)); - if (creamPie.Owner.TryGetComponent(out var foodComp) && _solutionsSystem.TryGetSolution(creamPie.Owner, foodComp.SolutionName, out var solution)) + if (creamPie.Owner.TryGetComponent(out var foodComp) && _solutionsSystem.TryGetSolution(creamPie.Owner.Uid, foodComp.SolutionName, out var solution)) { solution.SpillAt(creamPie.Owner, "PuddleSmear", false); } diff --git a/Content.Server/Weapon/Ranged/Ammunition/Components/ChemicalAmmoComponent.cs b/Content.Server/Weapon/Ranged/Ammunition/Components/ChemicalAmmoComponent.cs index 6f5ffa1ecf..2a211f1ec9 100644 --- a/Content.Server/Weapon/Ranged/Ammunition/Components/ChemicalAmmoComponent.cs +++ b/Content.Server/Weapon/Ranged/Ammunition/Components/ChemicalAmmoComponent.cs @@ -34,7 +34,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components private void TransferSolution(BarrelFiredMessage barrelFired) { - if (!EntitySystem.Get().TryGetSolution(Owner, SolutionName, out var ammoSolution)) + if (!EntitySystem.Get().TryGetSolution(Owner.Uid, SolutionName, out var ammoSolution)) return; var projectiles = barrelFired.FiredProjectiles; @@ -44,7 +44,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components foreach (var projectile in projectiles) { if (EntitySystem.Get() - .TryGetSolution(projectile, SolutionName, out var projectileSolutionContainer)) + .TryGetSolution(projectile.Uid, SolutionName, out var projectileSolutionContainer)) { projectileSolutionContainers.Add((projectile.Uid, projectileSolutionContainer)); }