Fix assert when trying to get TEG circuit component (#33071)

* Fix crash that was happening while testing nukeops

* Update Content.Server/Power/Generation/Teg/TegSystem.cs

Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>

* Fix incorrect review

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
This commit is contained in:
Callmore
2025-04-17 02:36:20 +01:00
committed by GitHub
parent b41ee53dbd
commit eed374ffee

View File

@@ -15,6 +15,7 @@ using Content.Shared.Power.EntitySystems;
using Content.Shared.Power.Generation.Teg; using Content.Shared.Power.Generation.Teg;
using Content.Shared.Rounding; using Content.Shared.Rounding;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Shared.Utility;
namespace Content.Server.Power.Generation.Teg; namespace Content.Server.Power.Generation.Teg;
@@ -260,13 +261,16 @@ public sealed class TegSystem : EntitySystem
// Otherwise, make sure circulator is set to nothing. // Otherwise, make sure circulator is set to nothing.
if (!group.IsFullyBuilt) if (!group.IsFullyBuilt)
{ {
UpdateCirculatorAppearance(uid, false); UpdateCirculatorAppearance((uid, component), false);
} }
} }
private void UpdateCirculatorAppearance(EntityUid uid, bool powered) private void UpdateCirculatorAppearance(Entity<TegCirculatorComponent?> ent, bool powered)
{ {
var circ = Comp<TegCirculatorComponent>(uid); if (!Resolve(ent, ref ent.Comp))
return;
var circ = ent.Comp;
TegCirculatorSpeed speed; TegCirculatorSpeed speed;
if (powered && circ.LastPressureDelta > 0 && circ.LastMolesTransferred > 0) if (powered && circ.LastPressureDelta > 0 && circ.LastMolesTransferred > 0)
@@ -281,13 +285,13 @@ public sealed class TegSystem : EntitySystem
speed = TegCirculatorSpeed.SpeedStill; speed = TegCirculatorSpeed.SpeedStill;
} }
_appearance.SetData(uid, TegVisuals.CirculatorSpeed, speed); _appearance.SetData(ent, TegVisuals.CirculatorSpeed, speed);
_appearance.SetData(uid, TegVisuals.CirculatorPower, powered); _appearance.SetData(ent, TegVisuals.CirculatorPower, powered);
if (_pointLight.TryGetLight(uid, out var pointLight)) if (_pointLight.TryGetLight(ent, out var pointLight))
{ {
_pointLight.SetEnabled(uid, powered, pointLight); _pointLight.SetEnabled(ent, powered, pointLight);
_pointLight.SetColor(uid, speed == TegCirculatorSpeed.SpeedFast ? circ.LightColorFast : circ.LightColorSlow, pointLight); _pointLight.SetColor(ent, speed == TegCirculatorSpeed.SpeedFast ? circ.LightColorFast : circ.LightColorSlow, pointLight);
} }
} }