Little NodeContainer ECS (#17702)
This commit is contained in:
@@ -3,6 +3,7 @@ using Content.Server.Atmos.EntitySystems;
|
||||
using Content.Server.Atmos.Piping.Components;
|
||||
using Content.Server.Atmos.Piping.Trinary.Components;
|
||||
using Content.Server.NodeContainer;
|
||||
using Content.Server.NodeContainer.EntitySystems;
|
||||
using Content.Server.NodeContainer.Nodes;
|
||||
using Content.Shared.Atmos;
|
||||
using Content.Shared.Atmos.Piping;
|
||||
@@ -28,6 +29,7 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems
|
||||
[Dependency] private readonly SharedAmbientSoundSystem _ambientSoundSystem = default!;
|
||||
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
|
||||
[Dependency] private readonly SharedPopupSystem _popupSystem = default!;
|
||||
[Dependency] private readonly NodeContainerSystem _nodeContainer = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -55,9 +57,9 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems
|
||||
if (!filter.Enabled
|
||||
|| !EntityManager.TryGetComponent(uid, out NodeContainerComponent? nodeContainer)
|
||||
|| !EntityManager.TryGetComponent(uid, out AtmosDeviceComponent? device)
|
||||
|| !nodeContainer.TryGetNode(filter.InletName, out PipeNode? inletNode)
|
||||
|| !nodeContainer.TryGetNode(filter.FilterName, out PipeNode? filterNode)
|
||||
|| !nodeContainer.TryGetNode(filter.OutletName, out PipeNode? outletNode)
|
||||
|| !_nodeContainer.TryGetNode(nodeContainer, filter.InletName, out PipeNode? inletNode)
|
||||
|| !_nodeContainer.TryGetNode(nodeContainer, filter.FilterName, out PipeNode? filterNode)
|
||||
|| !_nodeContainer.TryGetNode(nodeContainer, filter.OutletName, out PipeNode? outletNode)
|
||||
|| outletNode.Air.Pressure >= Atmospherics.MaxOutputPressure) // No need to transfer if target is full.
|
||||
{
|
||||
_ambientSoundSystem.SetAmbience(filter.Owner, false);
|
||||
@@ -189,14 +191,11 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems
|
||||
|
||||
var gasMixDict = new Dictionary<string, GasMixture?>();
|
||||
|
||||
nodeContainer.TryGetNode(component.InletName, out PipeNode? inlet);
|
||||
nodeContainer.TryGetNode(component.FilterName, out PipeNode? filterNode);
|
||||
|
||||
if(inlet != null)
|
||||
if(_nodeContainer.TryGetNode(nodeContainer, component.InletName, out PipeNode? inlet))
|
||||
gasMixDict.Add(Loc.GetString("gas-analyzer-window-text-inlet"), inlet.Air);
|
||||
if(filterNode != null)
|
||||
if(_nodeContainer.TryGetNode(nodeContainer, component.FilterName, out PipeNode? filterNode))
|
||||
gasMixDict.Add(Loc.GetString("gas-analyzer-window-text-filter"), filterNode.Air);
|
||||
if(nodeContainer.TryGetNode(component.OutletName, out PipeNode? outlet))
|
||||
if(_nodeContainer.TryGetNode(nodeContainer, component.OutletName, out PipeNode? outlet))
|
||||
gasMixDict.Add(Loc.GetString("gas-analyzer-window-text-outlet"), outlet.Air);
|
||||
|
||||
args.GasMixtures = gasMixDict;
|
||||
|
||||
@@ -3,6 +3,7 @@ using Content.Server.Atmos.EntitySystems;
|
||||
using Content.Server.Atmos.Piping.Components;
|
||||
using Content.Server.Atmos.Piping.Trinary.Components;
|
||||
using Content.Server.NodeContainer;
|
||||
using Content.Server.NodeContainer.EntitySystems;
|
||||
using Content.Server.NodeContainer.Nodes;
|
||||
using Content.Shared.Atmos;
|
||||
using Content.Shared.Atmos.Piping;
|
||||
@@ -24,6 +25,7 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems
|
||||
[Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!;
|
||||
[Dependency] private readonly SharedAmbientSoundSystem _ambientSoundSystem = default!;
|
||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||
[Dependency] private readonly NodeContainerSystem _nodeContainer = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -59,9 +61,9 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems
|
||||
if (!EntityManager.TryGetComponent(uid, out NodeContainerComponent? nodeContainer))
|
||||
return;
|
||||
|
||||
if (!nodeContainer.TryGetNode(mixer.InletOneName, out PipeNode? inletOne)
|
||||
|| !nodeContainer.TryGetNode(mixer.InletTwoName, out PipeNode? inletTwo)
|
||||
|| !nodeContainer.TryGetNode(mixer.OutletName, out PipeNode? outlet))
|
||||
if (!_nodeContainer.TryGetNode(nodeContainer, mixer.InletOneName, out PipeNode? inletOne)
|
||||
|| !_nodeContainer.TryGetNode(nodeContainer, mixer.InletTwoName, out PipeNode? inletTwo)
|
||||
|| !_nodeContainer.TryGetNode(nodeContainer, mixer.OutletName, out PipeNode? outlet))
|
||||
{
|
||||
_ambientSoundSystem.SetAmbience(mixer.Owner, false);
|
||||
return;
|
||||
@@ -216,14 +218,11 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems
|
||||
|
||||
var gasMixDict = new Dictionary<string, GasMixture?>();
|
||||
|
||||
nodeContainer.TryGetNode(component.InletOneName, out PipeNode? inletOne);
|
||||
nodeContainer.TryGetNode(component.InletTwoName, out PipeNode? inletTwo);
|
||||
|
||||
if(inletOne != null)
|
||||
if(_nodeContainer.TryGetNode(nodeContainer, component.InletOneName, out PipeNode? inletOne))
|
||||
gasMixDict.Add($"{inletOne.CurrentPipeDirection} {Loc.GetString("gas-analyzer-window-text-inlet")}", inletOne.Air);
|
||||
if(inletTwo != null)
|
||||
if(_nodeContainer.TryGetNode(nodeContainer, component.InletTwoName, out PipeNode? inletTwo))
|
||||
gasMixDict.Add($"{inletTwo.CurrentPipeDirection} {Loc.GetString("gas-analyzer-window-text-inlet")}", inletTwo.Air);
|
||||
if(nodeContainer.TryGetNode(component.OutletName, out PipeNode? outlet))
|
||||
if(_nodeContainer.TryGetNode(nodeContainer, component.OutletName, out PipeNode? outlet))
|
||||
gasMixDict.Add(Loc.GetString("gas-analyzer-window-text-outlet"), outlet.Air);
|
||||
|
||||
args.GasMixtures = gasMixDict;
|
||||
|
||||
@@ -2,6 +2,7 @@ using Content.Server.Atmos.EntitySystems;
|
||||
using Content.Server.Atmos.Piping.Components;
|
||||
using Content.Server.Atmos.Piping.Trinary.Components;
|
||||
using Content.Server.NodeContainer;
|
||||
using Content.Server.NodeContainer.EntitySystems;
|
||||
using Content.Server.NodeContainer.Nodes;
|
||||
using Content.Shared.Atmos.Piping;
|
||||
using Content.Shared.Audio;
|
||||
@@ -18,6 +19,7 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems
|
||||
[Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!;
|
||||
[Dependency] private readonly SharedAmbientSoundSystem _ambientSoundSystem = default!;
|
||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||
[Dependency] private readonly NodeContainerSystem _nodeContainer = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -36,9 +38,9 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems
|
||||
{
|
||||
if (!EntityManager.TryGetComponent(uid, out NodeContainerComponent? nodeContainer)
|
||||
|| !EntityManager.TryGetComponent(uid, out AtmosDeviceComponent? device)
|
||||
|| !nodeContainer.TryGetNode(comp.InletName, out PipeNode? inletNode)
|
||||
|| !nodeContainer.TryGetNode(comp.ControlName, out PipeNode? controlNode)
|
||||
|| !nodeContainer.TryGetNode(comp.OutletName, out PipeNode? outletNode))
|
||||
|| !_nodeContainer.TryGetNode(nodeContainer, comp.InletName, out PipeNode? inletNode)
|
||||
|| !_nodeContainer.TryGetNode(nodeContainer, comp.ControlName, out PipeNode? controlNode)
|
||||
|| !_nodeContainer.TryGetNode(nodeContainer, comp.OutletName, out PipeNode? outletNode))
|
||||
{
|
||||
_ambientSoundSystem.SetAmbience(comp.Owner, false);
|
||||
comp.Enabled = false;
|
||||
|
||||
Reference in New Issue
Block a user