Tileset animations.

This commit is contained in:
2022-12-07 20:13:59 -08:00
parent 5b6f9124b5
commit eb6c4c8076
16 changed files with 262 additions and 165 deletions

View File

@ -13,6 +13,7 @@ TiledSprite::TiledSprite(SceneItem *item) : SceneItemComponent(item) {
}
glm::vec2 TiledSprite::getUV0() {
assertNotNull(this->tileset);
auto tile = this->tileset->getTile(tileIndex);
return glm::vec2(
(this->flipState & TILED_SPRITE_FLIP_X) == 0 ? tile.uv0.x : tile.uv1.x,
@ -21,6 +22,7 @@ glm::vec2 TiledSprite::getUV0() {
}
glm::vec2 TiledSprite::getUV1() {
assertNotNull(this->tileset);
auto tile = this->tileset->getTile(tileIndex);
return glm::vec2(
(this->flipState & TILED_SPRITE_FLIP_X) == 0 ? tile.uv1.x : tile.uv0.x,
@ -34,8 +36,18 @@ void TiledSprite::setTileset(Tileset *tileset) {
this->setTile(0);
}
void TiledSprite::setTilesetAndSize(TilesetGrid *tileset, glm::vec2 center) {
this->setTileset(tileset);
this->setSize(glm::vec2(tileset->divX, tileset->divY), center);
}
void TiledSprite::setTilesetAndSize(TilesetGrid *tileset) {
this->setTileset(tileset);
this->setSize(glm::vec2(tileset->divX, tileset->divY));
}
void TiledSprite::setTile(int32_t tileIndex) {
assertNotNull(this->tileset);
if(tileIndex == this->tileIndex) return;
this->tileIndex = tileIndex;
if(this->host != nullptr) {
QuadMesh::bufferCoordinates(