Added structure handling in engine as well.

This commit is contained in:
douwe
2025-08-22 01:13:09 +02:00
parent 0381ea6873
commit cd1464cc94
8 changed files with 53 additions and 20 deletions

View File

@@ -7,7 +7,10 @@
#include <Screeps/Creep.hpp>
#include "Constants.hpp"
#include "Creeps/Creep.hpp"
#include "Creeps/Harvester.hpp"
#include "Structures/Structure.hpp"
#include "Structures/Spawn.hpp"
namespace DouwcoHivemind
{
@@ -18,19 +21,23 @@ namespace DouwcoHivemind
{
private:
std::vector<std::unique_ptr<Creep>> creeps;
// std::vector<std::unique_ptr<Structure>> structure;
std::vector<std::unique_ptr<Structure>> structures;
public:
Engine()
{
ReadOutCreeps();
ReadOutStructures();
}
~Engine() {}
void loop() {
for(auto &creep : creeps){
void loop()
{
for (auto &creep : creeps)
creep->loop();
}
for (auto &structure : structures)
structure->loop();
}
private:
@@ -52,6 +59,15 @@ namespace DouwcoHivemind
}
}
}
void ReadOutStructures()
{
auto spawns = Screeps::Game.spawns();
for (auto &spawn : spawns)
{
structures.push_back(std::make_unique<Spawn>(spawn.second));
}
}
};
}

View File

@@ -3,17 +3,21 @@
#include <Screeps/StructureSpawn.hpp>
#include "Structures/Structure.hpp"
namespace DouwcoHivemind
{
class Spawn
class Spawn : public Structure
{
private:
Screeps::StructureSpawn *structure;
Screeps::StructureSpawn spawn;
public:
Spawn(Screeps::StructureSpawn *structure_pntr) { structure = structure_pntr; }
Spawn(Screeps::StructureSpawn spwn) : spawn(spwn),
Structure() {}
~Spawn() {}
void process();
void loop() override;
};
}

View File

@@ -0,0 +1,15 @@
#ifndef DOUWCO_HIVEMIND_STRUCTURE_HPP
#define DOUWCO_HIVEMIND_STRUCTURE_HPP
#include <Screeps/Structure.hpp>
namespace DouwcoHivemind
{
class Structure
{
public:
virtual void loop(){}
};
}
#endif // DOUWCO_HIVEMIND_STRUCTURE_HPP