using Content.Server.Power.Components;
using Content.Shared.Placeable;
using Content.Shared.Temperature;
using Content.Shared.Temperature.Components;
using Content.Shared.Temperature.Systems;
namespace Content.Server.Temperature.Systems;
///
/// Handles the server-only parts of
///
public sealed class EntityHeaterSystem : SharedEntityHeaterSystem
{
[Dependency] private readonly TemperatureSystem _temperature = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent(OnMapInit);
}
private void OnMapInit(Entity ent, ref MapInitEvent args)
{
// Set initial power level
if (TryComp(ent, out var power))
power.Load = SettingPower(ent.Comp.Setting, ent.Comp.Power);
}
public override void Update(float deltaTime)
{
var query = EntityQueryEnumerator();
while (query.MoveNext(out _, out var heater, out var placer, out var power)) // Frontier: _
/// doesn't exist on the client, so we need
/// this server-only override to handle setting the network load.
///
protected override void ChangeSetting(Entity ent, EntityHeaterSetting setting, EntityUid? user = null)
{
base.ChangeSetting(ent, setting, user);
if (!TryComp(ent, out var power))
return;
power.Load = SettingPower(setting, ent.Comp.Power);
}
}