Files
tbd-station-14/Content.Server/GameObjects/Components/Power/PowerCellComponent.cs
ScumbagDog 1af1ee2ad4 Made a fancier lasergun (#174)
Laserguns now have an internal capacitor that can be recharged by using it with a power cell

Makes the final fix for #138
2019-04-01 20:06:43 +02:00

51 lines
1.1 KiB
C#

using Content.Shared.GameObjects.Components.Power;
using SS14.Server.GameObjects;
namespace Content.Server.GameObjects.Components.Power
{
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);
}
}
}