--- /dev/null
+using Content.Server.AME.Components;
+using Content.Shared.Examine;
+
+namespace Content.Server.AME;
+
+/// <summary>
+/// Adds fuel level info to examine on fuel jars and handles network state.
+/// </summary>
+public sealed partial class AMESystem
+{
+ private void InitializeFuel()
+ {
+ SubscribeLocalEvent<AMEFuelContainerComponent, ExaminedEvent>(OnFuelExamined);
+ }
+
+ private void OnFuelExamined(EntityUid uid, AMEFuelContainerComponent comp, ExaminedEvent args)
+ {
+ if (!args.IsInDetailsRange)
+ return;
+
+ // less than 25%: amount < capacity / 4 = amount * 4 < capacity
+ var low = comp.FuelAmount * 4 < comp.FuelCapacity;
+ args.PushMarkup(Loc.GetString("ame-fuel-container-component-on-examine-detailed-message",
+ ("colorName", low ? "darkorange" : "orange"),
+ ("amount", comp.FuelAmount),
+ ("capacity", comp.FuelCapacity)));
+ }
+}
namespace Content.Server.AME
{
[UsedImplicitly]
- public sealed class AntimatterEngineSystem : EntitySystem
+ public sealed partial class AMESystem : EntitySystem
{
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly PopupSystem _popupSystem = default!;
public override void Initialize()
{
base.Initialize();
+
SubscribeLocalEvent<AMEControllerComponent, PowerChangedEvent>(OnAMEPowerChange);
SubscribeLocalEvent<AMEControllerComponent, InteractUsingEvent>(OnInteractUsing);
SubscribeLocalEvent<AMEPartComponent, InteractUsingEvent>(OnPartInteractUsing);
+
+ InitializeFuel();
}
public override void Update(float frameTime)
-namespace Content.Server.AME.Components
-{
- [RegisterComponent]
- public sealed class AMEFuelContainerComponent : Component
- {
- private int _fuelAmount;
- private int _maxFuelAmount;
-
- /// <summary>
- /// The amount of fuel in the jar.
- /// </summary>
- [ViewVariables(VVAccess.ReadWrite)]
- public int FuelAmount
- {
- get => _fuelAmount;
- set => _fuelAmount = value;
- }
+namespace Content.Server.AME.Components;
- /// <summary>
- /// The maximum fuel capacity of the jar.
- /// </summary>
- [ViewVariables(VVAccess.ReadWrite)]
- public int MaxFuelAmount
- {
- get => _maxFuelAmount;
- set => _maxFuelAmount = value;
- }
-
- protected override void Initialize()
- {
- base.Initialize();
- _maxFuelAmount = 1000;
- _fuelAmount = 1000;
- }
+// TODO: network and put in shared
+[RegisterComponent]
+public sealed class AMEFuelContainerComponent : Component
+{
+ /// <summary>
+ /// The amount of fuel in the jar.
+ /// </summary>
+ [ViewVariables(VVAccess.ReadWrite), DataField("fuelAmount")]
+ public int FuelAmount = 1000;
- }
+ /// <summary>
+ /// The maximum fuel capacity of the jar.
+ /// </summary>
+ [ViewVariables(VVAccess.ReadWrite), DataField("fuelCapacity")]
+ public int FuelCapacity = 1000;
}
--- /dev/null
+ame-fuel-container-component-on-examine-detailed-message = Fuel: [color={$colorName}]{$amount}/{$capacity}[/color]