diff --git a/douwco_hivemind/include/Engine.hpp b/douwco_hivemind/include/Engine.hpp index b0ffd67..6a6bf6d 100644 --- a/douwco_hivemind/include/Engine.hpp +++ b/douwco_hivemind/include/Engine.hpp @@ -11,17 +11,26 @@ namespace DouwcoHivemind { class Engine { +private: +static Engine* instance; + public: std::map> Rooms; std::map> Creeps; std::map> Structures; public: + // Static singleton access + static Engine* getInstance(){ + return instance; + } // Readout data from screeps API into C++ vectors Engine(); // Loop over all rooms, screeps and structures void loop(); + + private: // Readout player owned rooms void ReadOutRooms(); diff --git a/douwco_hivemind/src/Engine.cpp b/douwco_hivemind/src/Engine.cpp index 30baf9a..d848635 100644 --- a/douwco_hivemind/src/Engine.cpp +++ b/douwco_hivemind/src/Engine.cpp @@ -18,6 +18,7 @@ #include "Structures/Tower.hpp" DouwcoHivemind::Engine::Engine() { + instance = this; JS::console.log(std::string("Reading out owned rooms")); ReadOutRooms(); JS::console.log(std::string("Reading out creeps")); diff --git a/douwco_hivemind/src/Loop.cpp b/douwco_hivemind/src/Loop.cpp index a6252dd..0b6a44b 100644 --- a/douwco_hivemind/src/Loop.cpp +++ b/douwco_hivemind/src/Loop.cpp @@ -10,23 +10,24 @@ #include "Structures/Spawn.hpp" EMSCRIPTEN_KEEPALIVE -extern "C" void loop() -{ - Screeps::Context::update(); +extern "C" void loop() { + Screeps::Context::update(); - JS::console.log(std::string("\n\n\n\n\n\n\n\n\n")); - JS::console.log(std::string("Processing tick:\t") + std::to_string(Screeps::Game.time())); + JS::console.log(std::string("\n\n\n\n\n\n\n\n\n")); + JS::console.log(std::string("Processing tick:\t") + + std::to_string(Screeps::Game.time())); - { - DouwcoHivemind::Engine engine; - engine.loop(); - } + { + DouwcoHivemind::Engine engine; + engine.loop(); - JS::console.log("Used CPU:\t" + std::to_string(Screeps::Game.cpuGetUsed())); - JS::console.log("Bucket:\t" + std::to_string(static_cast(Screeps::Game.cpu()["bucket"]))); + auto test = &(DouwcoHivemind::Engine::getInstance()->Structures); + JS::console.log(std::string("test: ") + std::to_string(test->size())); + } + + JS::console.log("Used CPU:\t" + std::to_string(Screeps::Game.cpuGetUsed())); + JS::console.log("Bucket:\t" + std::to_string(static_cast( + Screeps::Game.cpu()["bucket"]))); } -EMSCRIPTEN_BINDINGS(loop) -{ - emscripten::function("loop", &loop); -} +EMSCRIPTEN_BINDINGS(loop) { emscripten::function("loop", &loop); } diff --git a/douwco_hivemind/src/Structures/Tower.cpp b/douwco_hivemind/src/Structures/Tower.cpp index d9f261f..252f1c3 100644 --- a/douwco_hivemind/src/Structures/Tower.cpp +++ b/douwco_hivemind/src/Structures/Tower.cpp @@ -1,8 +1,10 @@ #include #include #include +#include #include "Creeps/CreepBase.hpp" +#include "Engine.hpp" #include "Screeps/Constants.hpp" #include "Screeps/Creep.hpp" #include "Structures/Tower.hpp"