using Content.Server.Coordinates.Helpers;\r
using Content.Server.Power.Components;\r
using Content.Server.PowerCell;\r
-using Content.Shared.PowerCell.Components;\r
-using Robust.Shared.Timing;\r
\r
-namespace Content.Server.Holosign\r
+namespace Content.Server.Holosign;\r
+\r
+public sealed class HolosignSystem : EntitySystem\r
{\r
- public sealed class HolosignSystem : EntitySystem\r
- {\r
- [Dependency] private readonly PowerCellSystem _cellSystem = default!;\r
+ [Dependency] private readonly PowerCellSystem _powerCell = default!;\r
\r
- public override void Initialize()\r
- {\r
- base.Initialize();\r
- SubscribeLocalEvent<HolosignProjectorComponent, UseInHandEvent>(OnUse);\r
- SubscribeLocalEvent<HolosignProjectorComponent, ExaminedEvent>(OnExamine);\r
- }\r
+ public override void Initialize()\r
+ {\r
+ base.Initialize();\r
+ SubscribeLocalEvent<HolosignProjectorComponent, UseInHandEvent>(OnUse);\r
+ SubscribeLocalEvent<HolosignProjectorComponent, ExaminedEvent>(OnExamine);\r
+ }\r
\r
- private void OnExamine(EntityUid uid, HolosignProjectorComponent component, ExaminedEvent args)\r
- {\r
- // TODO: This should probably be using an itemstatus\r
- // TODO: I'm too lazy to do this rn but it's literally copy-paste from emag.\r
- _cellSystem.TryGetBatteryFromSlot(uid, out var battery);\r
- var charges = UsesRemaining(component, battery);\r
- var maxCharges = MaxUses(component, battery);\r
+ private void OnExamine(EntityUid uid, HolosignProjectorComponent component, ExaminedEvent args)\r
+ {\r
+ // TODO: This should probably be using an itemstatus\r
+ // TODO: I'm too lazy to do this rn but it's literally copy-paste from emag.\r
+ _powerCell.TryGetBatteryFromSlot(uid, out var battery);\r
+ var charges = UsesRemaining(component, battery);\r
+ var maxCharges = MaxUses(component, battery);\r
\r
- args.PushMarkup(Loc.GetString("emag-charges-remaining", ("charges", charges)));\r
+ args.PushMarkup(Loc.GetString("limited-charges-charges-remaining", ("charges", charges)));\r
\r
- if (charges > 0 && charges == maxCharges)\r
- {\r
- args.PushMarkup(Loc.GetString("emag-max-charges"));\r
- }\r
+ if (charges > 0 && charges == maxCharges)\r
+ {\r
+ args.PushMarkup(Loc.GetString("limited-charges-max-charges"));\r
}\r
+ }\r
\r
- private void OnUse(EntityUid uid, HolosignProjectorComponent component, UseInHandEvent args)\r
- {\r
- if (args.Handled ||\r
- !_cellSystem.TryGetBatteryFromSlot(uid, out var battery) ||\r
- !battery.TryUseCharge(component.ChargeUse))\r
- return;\r
+ private void OnUse(EntityUid uid, HolosignProjectorComponent component, UseInHandEvent args)\r
+ {\r
+ if (args.Handled ||\r
+ !_powerCell.TryGetBatteryFromSlot(uid, out var battery) ||\r
+ !battery.TryUseCharge(component.ChargeUse))\r
+ return;\r
\r
- // TODO: Too tired to deal\r
- var holo = EntityManager.SpawnEntity(component.SignProto, Transform(args.User).Coordinates.SnapToGrid(EntityManager));\r
- Transform(holo).Anchored = true;\r
+ // TODO: Too tired to deal\r
+ var holo = EntityManager.SpawnEntity(component.SignProto, Transform(args.User).Coordinates.SnapToGrid(EntityManager));\r
+ Transform(holo).Anchored = true;\r
\r
- args.Handled = true;\r
- }\r
+ args.Handled = true;\r
+ }\r
\r
- private int UsesRemaining(HolosignProjectorComponent component, BatteryComponent? battery = null)\r
- {\r
- if (battery == null ||\r
- component.ChargeUse == 0f) return 0;\r
+ private int UsesRemaining(HolosignProjectorComponent component, BatteryComponent? battery = null)\r
+ {\r
+ if (battery == null ||\r
+ component.ChargeUse == 0f) return 0;\r
\r
- return (int) (battery.CurrentCharge / component.ChargeUse);\r
- }\r
+ return (int) (battery.CurrentCharge / component.ChargeUse);\r
+ }\r
\r
- private int MaxUses(HolosignProjectorComponent component, BatteryComponent? battery = null)\r
- {\r
- if (battery == null ||\r
- component.ChargeUse == 0f) return 0;\r
+ private int MaxUses(HolosignProjectorComponent component, BatteryComponent? battery = null)\r
+ {\r
+ if (battery == null ||\r
+ component.ChargeUse == 0f) return 0;\r
\r
- return (int) (battery.MaxCharge / component.ChargeUse);\r
- }\r
+ return (int) (battery.MaxCharge / component.ChargeUse);\r
}\r
}\r