Radiation pulse ECS (#10641)

This commit is contained in:
Alex Evgrashin
2022-08-31 12:24:21 +02:00
committed by GitHub
parent ccb240ccca
commit cad6c760ad
18 changed files with 146 additions and 258 deletions

View File

@@ -0,0 +1,32 @@
using Content.Shared.Radiation.Components;
using Content.Shared.Spawners.Components;
using Robust.Shared.Timing;
namespace Content.Shared.Radiation.Systems;
public sealed class RadiationPulseSystem : EntitySystem
{
[Dependency] private readonly IGameTiming _timing = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<RadiationPulseComponent, ComponentStartup>(OnStartup);
}
private void OnStartup(EntityUid uid, RadiationPulseComponent component, ComponentStartup args)
{
component.StartTime = _timing.RealTime;
// try to get despawn time or keep default duration time
if (TryComp<TimedDespawnComponent>(uid, out var despawn))
{
component.VisualDuration = despawn.Lifetime;
}
// try to get radiation range or keep default visual range
if (TryComp<RadiationSourceComponent>(uid, out var radSource))
{
component.VisualRange = radSource.Range;
}
}
}