// // Created by trotfunky on 06/06/19. // #include "Entity.h" const std::map Entity::entityTypeLookup = { {"Citizen",EntityType::Citizen}, {"Significant",EntityType::Significant}, {"House",EntityType::House}, {"Car",EntityType::Car}}; Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, int height) : type(type) { shape = sf::RectangleShape(sf::Vector2f(width*pro_maat::pixelsPerUnit,height*pro_maat::pixelsPerUnit)); // Sets the origin at the center of the entity shape.setOrigin(shape.getSize()/2.0f); // Adjust position for offset origin shape.setPosition((x+0.5*width)*pro_maat::pixelsPerUnit,(y+0.5*width)*pro_maat::pixelsPerUnit); shape.setTexture(texture); currentState = State::Idle; nextState = State::Idle; target = sf::Vector2i(shape.getPosition()); nextTarget = target; } Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture) : Entity(entityNode.attribute("x").as_int(), entityNode.attribute("y").as_int(), entityTypeLookup.at(entityNode.attribute("type").as_string()), texture, entityNode.attribute("w").as_int(1), entityNode.attribute("h").as_int(1)) {} void Entity::move() { // FIXME : Testing purposes shape.setRotation(shape.getRotation()+90); } void Entity::update() { } const sf::RectangleShape& Entity::getShape() const { return(shape); }