@@ -14,7 +14,7 @@ public: | |||
int x_; | |||
int y_; | |||
bool dirty_ = false; | |||
Tile::TileID tiles_[CHUNK_WIDTH][CHUNK_HEIGHT]; | |||
Tile::ID tiles_[CHUNK_WIDTH][CHUNK_HEIGHT]; | |||
sf::Texture texture_; | |||
sf::Sprite sprite_; | |||
@@ -23,7 +23,7 @@ public: | |||
sprite_ = sf::Sprite(texture_); | |||
} | |||
void setTile(TileMap &tmap, int x, int y, Tile::TileID id) { | |||
void setTile(TileMap &tmap, int x, int y, Tile::ID id) { | |||
tiles_[x][y] = id; | |||
drawBlock(tmap, x, y, id); | |||
} | |||
@@ -33,12 +33,12 @@ public: | |||
dirty_ = true; | |||
} | |||
void drawBlock(TileMap &tmap, int x, int y, Tile::TileID id) { | |||
void drawBlock(TileMap &tmap, int x, int y, Tile::ID id) { | |||
drawBlock(x, y, tmap.get(id)); | |||
} | |||
void redraw(TileMap &tmap); | |||
void fill(TileMap &tmap, Tile::TileID id); | |||
void fill(TileMap &tmap, Tile::ID id); | |||
void draw(Win &win); | |||
}; | |||
@@ -8,7 +8,7 @@ namespace Swan { | |||
class Tile { | |||
public: | |||
using TileID = uint16_t; | |||
using ID = uint16_t; | |||
std::string name_; | |||
sf::Image image_; |
@@ -7,18 +7,18 @@ namespace Swan { | |||
class TileMap { | |||
public: | |||
std::vector<Tile *> tiles_; | |||
std::map<std::string, Tile::TileID> id_map_; | |||
std::map<std::string, Tile::ID> id_map_; | |||
Tile::TileID getID(const std::string &name) { | |||
Tile::ID getID(const std::string &name) { | |||
return id_map_[name]; | |||
} | |||
Tile *get(Tile::TileID id) { | |||
Tile *get(Tile::ID id) { | |||
return tiles_[id]; | |||
} | |||
void registerTile(Tile *t) { | |||
Tile::TileID id = tiles_.size(); | |||
Tile::ID id = tiles_.size(); | |||
tiles_.push_back(t); | |||
id_map_[t->name_] = id; | |||
} |
@@ -13,16 +13,16 @@ class World { | |||
public: | |||
Player *player_; | |||
WorldPlane::PlaneID current_plane_; | |||
WorldPlane::ID current_plane_; | |||
std::vector<WorldPlane> planes_; | |||
TileMap tile_map_; | |||
WorldPlane::PlaneID addPlane(); | |||
void setCurrentPlane(WorldPlane::PlaneID id) { current_plane_ = id; } | |||
WorldPlane &getPlane(WorldPlane::PlaneID id) { return planes_[id]; } | |||
WorldPlane::ID addPlane(); | |||
void setCurrentPlane(WorldPlane::ID id) { current_plane_ = id; } | |||
WorldPlane &getPlane(WorldPlane::ID id) { return planes_[id]; } | |||
Tile::TileID getTileID(const std::string &name) { | |||
Tile::ID getTileID(const std::string &name) { | |||
return tile_map_.getID(name); | |||
} | |||
@@ -13,13 +13,13 @@ class World; | |||
class WorldPlane { | |||
public: | |||
using PlaneID = uint16_t; | |||
using ID = uint16_t; | |||
std::vector<Chunk> chunks_; | |||
PlaneID id_; | |||
ID id_; | |||
World *world_; | |||
void setTile(int x, int y, Tile::TileID id); | |||
void setTile(int x, int y, Tile::ID id); | |||
void draw(Win &win); | |||
void update(float dt); |
@@ -10,7 +10,7 @@ void Chunk::redraw(TileMap &tmap) { | |||
} | |||
} | |||
void Chunk::fill(TileMap &tmap, Tile::TileID id) { | |||
void Chunk::fill(TileMap &tmap, Tile::ID id) { | |||
Tile *air = tmap.get(0); | |||
for (int x = 0; x < CHUNK_WIDTH; ++x) { | |||
for (int y = 0; y < CHUNK_HEIGHT; ++y) { |
@@ -2,8 +2,8 @@ | |||
namespace Swan { | |||
WorldPlane::PlaneID World::addPlane() { | |||
WorldPlane::PlaneID id = planes_.size(); | |||
WorldPlane::ID World::addPlane() { | |||
WorldPlane::ID id = planes_.size(); | |||
planes_.push_back(WorldPlane()); | |||
WorldPlane &plane = planes_.back(); | |||
plane.id_ = id; |
@@ -4,7 +4,7 @@ | |||
namespace Swan { | |||
void WorldPlane::setTile(int x, int y, Tile::TileID id) { | |||
void WorldPlane::setTile(int x, int y, Tile::ID id) { | |||
int chx = x / CHUNK_WIDTH; | |||
int chy = y / CHUNK_HEIGHT; | |||
int rx = x % CHUNK_WIDTH; |
@@ -27,10 +27,10 @@ int main() { | |||
game.world_->setCurrentPlane(game.world_->addPlane()); | |||
game.world_->player_ = new Player(Vec2(1, 1)); | |||
Tile::TileID tStone = game.world_->getTileID("core::stone"); | |||
Tile::ID tStone = game.world_->getTileID("core::stone"); | |||
WorldPlane &plane = game.world_->getPlane(game.world_->current_plane_); | |||
for (int x = 1; x < 10; ++x) { | |||
for (int y = 1; y < 10; ++y) { | |||
for (int y = 3; y < 10; ++y) { | |||
plane.setTile(x, y, tStone); | |||
} | |||
} |