Something went wrong. Try again.
Starship Simulator Controls thoriumsim.com
Something went wrong. Try again.
891 B · 24 lines
TypeScript
at develop
12345678910111213141516171819202122232425import { type Entity, System } from "@thorium/utils/ecs";import type { MegaWatt } from "@thorium/utils/unitTypes";
export class ShipSystemHeatSystem extends System { static flightMode = ["nova"]; test(entity: Entity) { return ( !!entity.components.isShipSystem && !!entity.components.heat && !!entity.components.power ); } update(entity: Entity) { if (!entity.components.isShipSystem || !entity.components.heat || !entity.components.power) return; // Reactors are handled on their own ECS system. if (entity.components.isReactor) return; const { powerToHeat } = entity.components.heat; const { currentPower } = entity.components.power; const { heatMultiplier } = entity.components.damage || { heatMultiplier: 1 };
const heatGenerated: MegaWatt = currentPower * powerToHeat * heatMultiplier;
entity.updateComponent("heat", { heatLoad: heatGenerated }); }}