Little component to make batteries examinable. (#3982)

This commit is contained in:
20kdc
2021-05-13 00:10:57 +01:00
committed by GitHub
parent 28d59908ca
commit e0f7ca7740
4 changed files with 55 additions and 0 deletions

View File

@@ -88,6 +88,7 @@ namespace Content.Client
"TilePrying",
"RandomSpriteColor",
"ConditionalSpawner",
"ExaminableBattery",
"PottedPlantHide",
"SecureEntityStorage",
"PresetIdCard",

View File

@@ -0,0 +1,45 @@
#nullable enable
using System;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths;
using Robust.Shared.Prototypes;
using Robust.Shared.ViewVariables;
using Robust.Shared.Localization;
using Robust.Shared.Utility;
using Content.Server.GameObjects.Components.Mobs;
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Interfaces;
using Content.Shared.Interfaces.GameObjects.Components;
namespace Content.Server.GameObjects.Components.Power
{
[RegisterComponent]
public class ExaminableBatteryComponent : Component, IExamine
{
public override string Name => "ExaminableBattery";
[ViewVariables]
[ComponentDependency] private BatteryComponent? _battery = default!;
void IExamine.Examine(FormattedMessage message, bool inDetailsRange)
{
if (_battery == null)
return;
if (inDetailsRange)
{
var effectiveMax = _battery.MaxCharge;
if (effectiveMax == 0)
effectiveMax = 1;
var chargeFraction = _battery.CurrentCharge / effectiveMax;
var chargePercentRounded = (int) (chargeFraction * 100);
message.AddMarkup(
Loc.GetString(
"examinable-battery-component-examine-detail",
("percent", chargePercentRounded),
("markupPercentColor", "green")
)
);
}
}
}
}

View File

@@ -0,0 +1,6 @@
### UI
# Shown when the battery is examined in details range
examinable-battery-component-examine-detail = The battery is [color={$markupPercentColor}]{$percent}%[/color] full.

View File

@@ -39,6 +39,7 @@
- type: Battery
maxCharge: 1000
startingCharge: 1000
- type: ExaminableBattery
- type: NodeContainer
examinable: true
nodes:
@@ -95,6 +96,7 @@
- type: Battery
maxCharge: 1000
startingCharge: 1000
- type: ExaminableBattery
- type: NodeContainer
examinable: true
nodes:
@@ -148,6 +150,7 @@
- type: Battery
maxCharge: 10000
startingCharge: 10000
- type: ExaminableBattery
- type: NodeContainer
examinable: true
nodes: