import { Fragment } from 'inferno';
import { useBackend } from '../backend';
import { Box, Button, LabeledList, ProgressBar, Section, AnimatedNumber } from '../components';
import { Window } from '../layouts';
export const OvermapShieldGenerator = (props, context) => {
return (
);
};
const OvermapShieldGeneratorContent = (props, context) => {
const { act, data } = useBackend(context);
const { modes, offline_for } = data;
if (offline_for) {
return (
An emergency shutdown has been initiated - generator cooling down.
Please wait until the generator cools down before resuming operation.
Estimated time left: {offline_for} seconds.
);
}
return (
{modes.map((mode) => (
act('toggle_mode', { toggle_mode: mode.flag })}>
{mode.status ? 'Enabled' : 'Disabled'}
}>
{mode.desc}
Multiplier: {mode.multiplier}
))}
);
};
const OvermapShieldGeneratorStatus = (props, context) => {
const { act, data } = useBackend(context);
const {
running,
overloaded,
mitigation_max,
mitigation_physical,
mitigation_em,
mitigation_heat,
field_integrity,
max_energy,
current_energy,
percentage_energy,
total_segments,
functional_segments,
field_radius,
target_radius,
input_cap_kw,
upkeep_power_usage,
power_usage,
spinup_counter,
} = data;
return (
{(running === 1 && Shutting Down) ||
(running === 2 &&
((overloaded && Overloaded) || (
Running
))) ||
(running === 3 && Inactive) ||
(running === 4 && (
Spinning Up
{(target_radius !== field_radius && (
(Adjusting Radius)
)) || {spinup_counter * 2}s}
)) || Offline}
{current_energy} / {max_energy} MJ ({percentage_energy}%)
%
{mitigation_em}% EM / {mitigation_physical}% PH / {mitigation_heat}%
HE / {mitigation_max}% MAX
kW
{(input_cap_kw && (
{power_usage} / {input_cap_kw} kW
)) || (
kW (No Limit)
)}
/
m² (radius{' '}
, target{' '}
)
);
};
const OvermapShieldGeneratorControls = (props, context) => {
const { act, data } = useBackend(context);
const { running, hacked, idle_multiplier, idle_valid_values } = data;
return (
{(running >= 2 && (
{(running === 3 && (
)) || (
)}
)) || (
)}
{(running && hacked && (
)) ||
null}
}>
{idle_valid_values.map((val) => (
))}
);
};