using Content.Shared.Ninja.Components;
namespace Content.Shared.Ninja.Systems;
///
/// Shared system for ninja equipment that draws power from the ninja suit's battery.
/// The actual power draw logic is handled serverside.
///
public abstract class SharedNinjaSuitDrawSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent(OnComponentShutdown);
}
///
/// Disable power draw when component is removed.
///
private void OnComponentShutdown(Entity ent, ref ComponentShutdown args)
{
SetEnabled(ent, false);
}
///
/// Enable or disable power drawing for this entity.
///
public void SetEnabled(Entity ent, bool enabled)
{
if (ent.Comp.Enabled == enabled)
return;
ent.Comp.Enabled = enabled;
Dirty(ent, ent.Comp);
}
///
/// Check if the entity can draw power from the ninja suit.
///
public virtual bool CanDrawPower(Entity ent)
{
return ent.Comp.CanDraw;
}
///
/// Check if the entity has sufficient power to use.
///
public virtual bool CanUse(Entity ent)
{
return ent.Comp.CanUse;
}
}