Building Room based placement system.
This commit is contained in:
40
douwco_hivemind/src/Room.cpp
Normal file
40
douwco_hivemind/src/Room.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#include "Room.hpp"
|
||||
|
||||
#include "Screeps/Constants.hpp"
|
||||
#include "Screeps/Room.hpp"
|
||||
#include "Screeps/RoomObject.hpp"
|
||||
#include "Screeps/RoomPosition.hpp"
|
||||
|
||||
DouwcoHivemind::Room::Room(Screeps::Room rm) : room(rm), memory(rm.memory()) {
|
||||
_sourceContainerState =
|
||||
memory.contains("_sourceContainerState")
|
||||
? static_cast<ProgressState>(memory["_sourceContainerState"])
|
||||
: ProgressState::PLANNED;
|
||||
}
|
||||
|
||||
DouwcoHivemind::Room::~Room() {
|
||||
memory["_sourceContainerState"] = _sourceContainerState;
|
||||
}
|
||||
|
||||
void DouwcoHivemind::Room::loop() {
|
||||
if (assignConstructionSites())
|
||||
return;
|
||||
}
|
||||
|
||||
bool DouwcoHivemind::Room::assignConstructionSites() {
|
||||
if (_sourceContainerState == PLANNED) {
|
||||
auto sources = room.find(Screeps::FIND_SOURCES);
|
||||
for (auto &source : sources) {
|
||||
int x = source->pos().x();
|
||||
int y = source->pos().y();
|
||||
for (int dx = -1; dx < 2; dx++) {
|
||||
for (int dy = -1; dy < 2; dy++) {
|
||||
if(dx == 0 && dy == 0) continue;
|
||||
auto pos = room.getPositionAt(x + dx, y + dy);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (_sourceContainerState == IN_PROGRESS) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user