summaryrefslogtreecommitdiffstats
path: root/src/model
diff options
context:
space:
mode:
Diffstat (limited to 'src/model')
-rw-r--r--src/model/Entity.hpp4
-rw-r--r--src/model/Map.hpp12
2 files changed, 16 insertions, 0 deletions
diff --git a/src/model/Entity.hpp b/src/model/Entity.hpp
index 331cb4f..677eeb5 100644
--- a/src/model/Entity.hpp
+++ b/src/model/Entity.hpp
@@ -61,6 +61,10 @@ public:
void setDirection(Direction dir) {
direction = dir;
}
+
+ void interact(uint64_t time) {
+ std::fprintf(stderr, "Tried to interact with `%s' entity at %llu\n", name.c_str(), (unsigned long long)time);
+ }
};
}
diff --git a/src/model/Map.hpp b/src/model/Map.hpp
index 0343709..acf93b1 100644
--- a/src/model/Map.hpp
+++ b/src/model/Map.hpp
@@ -223,6 +223,18 @@ public:
return tiles[layer][p.y*width + p.x];
}
+ Entity * getEntityAt(const Position<int> &p) {
+ auto it = positions.find(p);
+ if (it == positions.end())
+ return nullptr;
+
+ return *it->second.begin();
+ }
+
+ Position<int> getEntityPosition(const Entity *entity) const {
+ return entityStates.at(entity).position;
+ }
+
Position<float> getEntityPosition(const Entity *entity, uint64_t time) const;
bool moveEntity(Entity *entity, Direction dir, uint64_t start, uint64_t end);
void moveEntityTo(Entity *entity, Position<int> pos);