1 /******************************
2 ** Tsunagari Tile Engine **
4 ** Copyright 2011 OmegaSDG **
5 ******************************/
13 Entity::Entity(Resourcer
* rc
,
15 const std::string descriptor
,
16 const std::string spriteDescriptor
)
21 descriptor(descriptor
),
22 spriteDescriptor(spriteDescriptor
)
33 sprite
= new Sprite(rc
, spriteDescriptor
);
34 return sprite
->init();
43 bool Entity::needsRedraw() const
48 coord_t
Entity::getCoordsByPixel()
50 return sprite
->getCoordsByPixel();
53 coord_t
Entity::getCoordsByTile()
55 return sprite
->getCoordsByTile();
58 void Entity::moveByTile(coord_t delta
)
60 coord_t newCoord
= sprite
->getCoordsByTile();
61 newCoord
.x
+= delta
.x
;
62 newCoord
.y
+= delta
.y
;
63 newCoord
.z
+= delta
.z
;
64 Area::Tile
* dest
= area
->getTile(newCoord
);
65 if ((dest
->flags
& Area::nowalk
) != 0 ||
66 (dest
->type
->flags
& Area::nowalk
) != 0) {
67 // The tile we're trying to move onto is set as nowalk.
71 sprite
->moveByTile(delta
);
75 void Entity::setCoordsByTile(coord_t pos
)
77 sprite
->setCoordsByTile(pos
);
81 void Entity::setArea(Area
* area
)