Something went wrong. Try again.
Starship Simulator Controls thoriumsim.com
Something went wrong. Try again.
1.6 kB · 59 lines
TSX
at develop
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import { q } from "@thorium/context/AppContext";import { useStation } from "@thorium/routes/station/useStation";import Select from "@thorium/ui/Select";
export function LegacyEngineControlCore() { const { shipId } = useStation(); const [{ warpEngines, impulseEngines }] = q.legacy.engineControl.get.useNetRequest({ shipId });
return ( <div> <Select label="Engine Speed" size="sm" items={[ { id: "stop", label: "Full Stop" }, ...(impulseEngines ? [ { header: impulseEngines?.name, items: impulseEngines.speeds.map(({ label }, i) => ({ id: `impulse-${i}`, label, })), }, ] : []), ...(warpEngines ? [ { header: warpEngines?.name, items: warpEngines.speeds.map(({ label }, i) => ({ id: `warp-${i + 1}`, label, })), }, ] : []), ]} selected={ warpEngines?.currentWarpFactor && warpEngines.currentWarpFactor > 0 ? `warp-${warpEngines.currentWarpFactor}` : impulseEngines?.currentSpeed && impulseEngines.currentSpeed > 0 ? `impulse-${Math.trunc((impulseEngines.currentSpeed / impulseEngines.cruisingSpeed) * (impulseEngines.speeds.length - 1)) - 1}` : "stop" } setSelected={(key) => { if (!key) return; const [engine, index] = key.split("-");
q.legacy.engineControl.setSpeed.netSend({ shipId, warpSpeedIndex: engine === "warp" ? Number(index) : undefined, impulseSpeedIndex: engine === "impulse" ? Number(index) : undefined, }); }} /> </div> );}