Firestarter fixes (#24647)
* Firestarter fixes - Actually networks the action. - Namespace fixes. * No networky for you
This commit is contained in:
34
Content.Shared/Atmos/Components/FirestarterComponent.cs
Normal file
34
Content.Shared/Atmos/Components/FirestarterComponent.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using Content.Shared.Atmos.EntitySystems;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared.Atmos.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Lets its owner entity ignite flammables around it and also heal some damage.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent, Access(typeof(SharedFirestarterSystem))]
|
||||
public sealed partial class FirestarterComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// Radius of objects that will be ignited if flammable.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float IgnitionRadius = 4f;
|
||||
|
||||
/// <summary>
|
||||
/// The action entity.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public EntProtoId? FireStarterAction = "ActionFireStarter";
|
||||
|
||||
[DataField] public EntityUid? FireStarterActionEntity;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Radius of objects that will be ignited if flammable.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public SoundSpecifier IgniteSound = new SoundPathSpecifier("/Audio/Magic/rumble.ogg");
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Atmos.Components;
|
||||
|
||||
namespace Content.Shared.Atmos.EntitySystems;
|
||||
|
||||
public abstract class SharedFirestarterSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedActionsSystem _actionsSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<FirestarterComponent, ComponentInit>(OnComponentInit);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds the firestarter action.
|
||||
/// </summary>
|
||||
private void OnComponentInit(EntityUid uid, FirestarterComponent component, ComponentInit args)
|
||||
{
|
||||
_actionsSystem.AddAction(uid, ref component.FireStarterActionEntity, component.FireStarterAction, uid);
|
||||
Dirty(uid, component);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user