Files
tbd-station-14/Content.Server/GameObjects/Components/Power/PowerCellComponent.cs
2019-07-31 15:07:54 +02:00

54 lines
1.3 KiB
C#

using Content.Shared.GameObjects.Components.Power;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
namespace Content.Server.GameObjects.Components.Power
{
[RegisterComponent]
[ComponentReference(typeof(PowerStorageComponent))]
public class PowerCellComponent : PowerStorageComponent
{
public override string Name => "PowerCell";
private AppearanceComponent _appearance;
public override float Charge
{
get => base.Charge;
set
{
base.Charge = value;
_updateAppearance();
}
}
public override void Initialize()
{
base.Initialize();
Owner.TryGetComponent(out _appearance);
}
public override void DeductCharge(float toDeduct)
{
base.DeductCharge(toDeduct);
_updateAppearance();
ChargeChanged();
}
public override void AddCharge(float charge)
{
base.AddCharge(charge);
_updateAppearance();
ChargeChanged();
}
private void _updateAppearance()
{
_appearance?.SetData(PowerCellVisuals.ChargeLevel, Charge / Capacity);
}
}
}