]> git.localhorst.tv Git - blobs.git/blobdiff - src/world/Simulation.hpp
eat what's here
[blobs.git] / src / world / Simulation.hpp
index ea81de5ba226fcc812491aa18bbc44e8c704e361..2f2239efe1d9c77b03b1bd10e7151a7c0c659a0c 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef BLOBS_WORLD_SIMULATION_HPP_
 #define BLOBS_WORLD_SIMULATION_HPP_
 
+#include "Set.hpp"
+
 #include <set>
 
 
@@ -9,12 +11,14 @@ namespace world {
 
 class Body;
 class Planet;
+class Resource;
 class Sun;
+class TileType;
 
 class Simulation {
 
 public:
-       explicit Simulation(Body &root);
+       explicit Simulation(Body &root, const Set<Resource> &, const Set<TileType> &);
        ~Simulation();
 
        Simulation(const Simulation &) = delete;
@@ -33,6 +37,9 @@ public:
        Body &Root() noexcept { return root; }
        const Body &Root() const noexcept { return root; }
 
+       const Set<Resource> &Resources() const noexcept { return resources; }
+       const Set<TileType> &TileTypes() const noexcept { return tile_types; }
+
        const std::set<Body *> &Bodies() const noexcept { return bodies; }
        const std::set<Planet *> &Planets() const noexcept { return planets; }
        const std::set<Sun *> &Suns() const noexcept { return suns; }
@@ -41,6 +48,8 @@ public:
 
 private:
        Body &root;
+       const Set<Resource> &resources;
+       const Set<TileType> &tile_types;
        std::set<Body *> bodies;
        std::set<Planet *> planets;
        std::set<Sun *> suns;