2024-01-28 00:02:54 +11:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2024-01-29 01:26:07 +11:00
|
|
|
#include <memory>
|
|
|
|
|
2024-01-28 00:02:54 +11:00
|
|
|
#include "reactor/coolant/vessel.hpp"
|
|
|
|
#include "reactor/reactor.hpp"
|
|
|
|
#include "coolant/pump.hpp"
|
|
|
|
#include "coolant/valve.hpp"
|
2024-02-02 22:03:47 +11:00
|
|
|
#include "coolant/condenser.hpp"
|
2024-02-03 18:12:18 +11:00
|
|
|
#include "electric/turbine.hpp"
|
2024-01-29 22:05:12 +11:00
|
|
|
#include "graphics/mesh/mesh.hpp"
|
2024-01-28 00:02:54 +11:00
|
|
|
|
|
|
|
namespace sim
|
|
|
|
{
|
|
|
|
|
|
|
|
struct system
|
|
|
|
{
|
2024-01-31 00:23:44 +11:00
|
|
|
static system active;
|
|
|
|
|
2024-01-30 16:09:43 +11:00
|
|
|
std::unique_ptr<sim::reactor::reactor> reactor;
|
|
|
|
std::unique_ptr<sim::reactor::coolant::vessel> vessel;
|
2024-02-02 22:03:47 +11:00
|
|
|
std::unique_ptr<sim::coolant::condenser> condenser;
|
2024-02-03 18:12:18 +11:00
|
|
|
std::unique_ptr<sim::electric::turbine> turbine;
|
2024-02-05 18:33:31 +11:00
|
|
|
std::unique_ptr<sim::coolant::pump> primary_pump;
|
2024-02-02 22:03:47 +11:00
|
|
|
std::unique_ptr<sim::coolant::valve> turbine_bypass_valve;
|
2024-02-03 18:12:18 +11:00
|
|
|
std::unique_ptr<sim::coolant::valve> turbine_inlet_valve;
|
2024-01-29 22:05:12 +11:00
|
|
|
sim::graphics::mesh scene;
|
2024-02-02 13:05:28 +11:00
|
|
|
double speed = 1;
|
2024-01-29 01:26:07 +11:00
|
|
|
|
|
|
|
system();
|
|
|
|
system(system&& o);
|
|
|
|
system(const system& o) = delete;
|
2024-01-28 00:02:54 +11:00
|
|
|
|
|
|
|
void update(double dt);
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|