#ifndef ENTITY_H_0D6CB29A #define ENTITY_H_0D6CB29A #include #include #include #include "vector.h" #include "enums.h" #include "direction.h" class Entity; using id_type = std::vector::size_type; class Entity { public: Entity(id_type id) : id(id) { } id_type id; // Transform vec2s pos; vec2s size; // Grid placement vec2s gridPos; Layer layer = Layer::object; // Movement std::list shouldMoveDir; bool moving = false; vec2s destPos; double movementTween = 0.0; double speed = 0.0; // Tiles per second Direction moveDir = Direction::none; // Player bool controllable = false; // Collision ColliderType colliderType = ColliderType::other; std::set canBePushedBy; // Temp int colorVal = 25; bool scheduled = false; // Track bool isTrack = false; Direction trackDir1 = Direction::none; Direction trackDir2 = Direction::none; }; #endif /* end of include guard: ENTITY_H_0D6CB29A */