1 #ifndef BLOBS_WORLD_SIMULATION_HPP_
2 #define BLOBS_WORLD_SIMULATION_HPP_
5 #include "../app/Assets.hpp"
22 explicit Simulation(Body &root, app::Assets &);
25 Simulation(const Simulation &) = delete;
26 Simulation &operator =(const Simulation &) = delete;
28 Simulation(Simulation &&) = delete;
29 Simulation &operator =(Simulation &&) = delete;
35 void AddPlanet(Planet &);
38 Body &Root() noexcept { return root; }
39 const Body &Root() const noexcept { return root; }
41 app::Assets &Assets() noexcept { return assets; }
42 const app::Assets &Assets() const noexcept { return assets; }
43 const Set<Resource> &Resources() const noexcept { return assets.data.resources; }
44 const Set<TileType> &TileTypes() const noexcept { return assets.data.tile_types; }
46 const std::set<Body *> &Bodies() const noexcept { return bodies; }
47 const std::set<Planet *> &Planets() const noexcept { return planets; }
48 const std::set<Sun *> &Suns() const noexcept { return suns; }
50 double Time() const noexcept { return time; }
55 std::set<Body *> bodies;
56 std::set<Planet *> planets;