refactor: Remove const references for position parameters in tile and biome accessors
Signed-off-by: szdytom <szdytom@qq.com>
This commit is contained in:
parent
416eabd31f
commit
ebdbf62a19
@ -25,9 +25,9 @@ public:
|
|||||||
Chunk& get_chunk(std::uint8_t chunk_x, std::uint8_t chunk_y);
|
Chunk& get_chunk(std::uint8_t chunk_x, std::uint8_t chunk_y);
|
||||||
const Chunk& get_chunk(std::uint8_t chunk_x, std::uint8_t chunk_y) const;
|
const Chunk& get_chunk(std::uint8_t chunk_x, std::uint8_t chunk_y) const;
|
||||||
|
|
||||||
Tile& get_tile(const TilePos& pos);
|
Tile& get_tile(TilePos pos);
|
||||||
const Tile& get_tile(const TilePos& pos) const;
|
const Tile& get_tile(TilePos pos) const;
|
||||||
void set_tile(const TilePos& pos, const Tile& tile);
|
void set_tile(TilePos pos, const Tile& tile);
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -48,8 +48,8 @@ struct Chunk {
|
|||||||
BiomeType biome[subchunk_count][subchunk_count]; // Sub-chunk biomes
|
BiomeType biome[subchunk_count][subchunk_count]; // Sub-chunk biomes
|
||||||
|
|
||||||
// Get biome for a specific sub-chunk position
|
// Get biome for a specific sub-chunk position
|
||||||
BiomeType& get_biome(const SubChunkPos& pos);
|
BiomeType& get_biome(SubChunkPos pos);
|
||||||
const BiomeType& get_biome(const SubChunkPos& pos) const;
|
const BiomeType& get_biome(SubChunkPos pos) const;
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ struct SubChunkPos {
|
|||||||
};
|
};
|
||||||
|
|
||||||
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(
|
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(
|
||||||
const SubChunkPos& pos
|
SubChunkPos pos
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -42,20 +42,18 @@ struct Chunk {
|
|||||||
BiomeType biome[subchunk_count][subchunk_count];
|
BiomeType biome[subchunk_count][subchunk_count];
|
||||||
|
|
||||||
// Get biome for a specific sub-chunk position
|
// Get biome for a specific sub-chunk position
|
||||||
BiomeType &get_biome(const SubChunkPos &pos) {
|
BiomeType &get_biome(SubChunkPos pos) {
|
||||||
return biome[pos.sub_x][pos.sub_y];
|
return biome[pos.sub_x][pos.sub_y];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get biome for a specific sub-chunk position (const version)
|
// Get biome for a specific sub-chunk position (const version)
|
||||||
const BiomeType &get_biome(const SubChunkPos &pos) const {
|
const BiomeType &get_biome(SubChunkPos pos) const {
|
||||||
return biome[pos.sub_x][pos.sub_y];
|
return biome[pos.sub_x][pos.sub_y];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Get the starting tile coordinates for a sub-chunk
|
// Get the starting tile coordinates for a sub-chunk
|
||||||
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(
|
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(SubChunkPos pos);
|
||||||
const SubChunkPos &pos
|
|
||||||
);
|
|
||||||
|
|
||||||
} // namespace istd
|
} // namespace istd
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ private:
|
|||||||
*/
|
*/
|
||||||
void generate_subchunk(
|
void generate_subchunk(
|
||||||
TileMap &tilemap, std::uint8_t chunk_x, std::uint8_t chunk_y,
|
TileMap &tilemap, std::uint8_t chunk_x, std::uint8_t chunk_y,
|
||||||
const SubChunkPos &sub_pos, BiomeType biome
|
SubChunkPos sub_pos, BiomeType biome
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -38,15 +38,15 @@ public:
|
|||||||
* @brief Get a tile at the given position
|
* @brief Get a tile at the given position
|
||||||
* @param pos The position of the tile
|
* @param pos The position of the tile
|
||||||
*/
|
*/
|
||||||
Tile &get_tile(const TilePos &pos);
|
Tile &get_tile(TilePos pos);
|
||||||
const Tile &get_tile(const TilePos &pos) const;
|
const Tile &get_tile(TilePos pos) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set a tile at the given position
|
* @brief Set a tile at the given position
|
||||||
* @param pos The position of the tile
|
* @param pos The position of the tile
|
||||||
* @param tile The tile to set
|
* @param tile The tile to set
|
||||||
*/
|
*/
|
||||||
void set_tile(const TilePos &pos, const Tile &tile);
|
void set_tile(TilePos pos, const Tile &tile);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace istd
|
} // namespace istd
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
namespace istd {
|
namespace istd {
|
||||||
|
|
||||||
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(
|
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(SubChunkPos pos) {
|
||||||
const SubChunkPos &pos
|
|
||||||
) {
|
|
||||||
// Convert sub-chunk position to tile start coordinates
|
// Convert sub-chunk position to tile start coordinates
|
||||||
return {pos.sub_x * Chunk::subchunk_size, pos.sub_y * Chunk::subchunk_size};
|
return {pos.sub_x * Chunk::subchunk_size, pos.sub_y * Chunk::subchunk_size};
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ void TerrainGenerator::generate_chunk(
|
|||||||
|
|
||||||
void TerrainGenerator::generate_subchunk(
|
void TerrainGenerator::generate_subchunk(
|
||||||
TileMap &tilemap, std::uint8_t chunk_x, std::uint8_t chunk_y,
|
TileMap &tilemap, std::uint8_t chunk_x, std::uint8_t chunk_y,
|
||||||
const SubChunkPos &sub_pos, BiomeType biome
|
SubChunkPos sub_pos, BiomeType biome
|
||||||
) {
|
) {
|
||||||
const BiomeProperties &properties = get_biome_properties(biome);
|
const BiomeProperties &properties = get_biome_properties(biome);
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ const Chunk &TileMap::get_chunk(
|
|||||||
return chunks_[chunk_x][chunk_y];
|
return chunks_[chunk_x][chunk_y];
|
||||||
}
|
}
|
||||||
|
|
||||||
Tile &TileMap::get_tile(const TilePos &pos) {
|
Tile &TileMap::get_tile(TilePos pos) {
|
||||||
if (pos.chunk_x >= size_ || pos.chunk_y >= size_) {
|
if (pos.chunk_x >= size_ || pos.chunk_y >= size_) {
|
||||||
throw std::out_of_range("Chunk coordinates out of bounds");
|
throw std::out_of_range("Chunk coordinates out of bounds");
|
||||||
}
|
}
|
||||||
@ -41,7 +41,7 @@ Tile &TileMap::get_tile(const TilePos &pos) {
|
|||||||
return chunks_[pos.chunk_x][pos.chunk_y].tiles[pos.local_x][pos.local_y];
|
return chunks_[pos.chunk_x][pos.chunk_y].tiles[pos.local_x][pos.local_y];
|
||||||
}
|
}
|
||||||
|
|
||||||
const Tile &TileMap::get_tile(const TilePos &pos) const {
|
const Tile &TileMap::get_tile(TilePos pos) const {
|
||||||
if (pos.chunk_x >= size_ || pos.chunk_y >= size_) {
|
if (pos.chunk_x >= size_ || pos.chunk_y >= size_) {
|
||||||
throw std::out_of_range("Chunk coordinates out of bounds");
|
throw std::out_of_range("Chunk coordinates out of bounds");
|
||||||
}
|
}
|
||||||
@ -51,7 +51,7 @@ const Tile &TileMap::get_tile(const TilePos &pos) const {
|
|||||||
return chunks_[pos.chunk_x][pos.chunk_y].tiles[pos.local_x][pos.local_y];
|
return chunks_[pos.chunk_x][pos.chunk_y].tiles[pos.local_x][pos.local_y];
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileMap::set_tile(const TilePos &pos, const Tile &tile) {
|
void TileMap::set_tile(TilePos pos, const Tile &tile) {
|
||||||
if (pos.chunk_x >= size_ || pos.chunk_y >= size_) {
|
if (pos.chunk_x >= size_ || pos.chunk_y >= size_) {
|
||||||
throw std::out_of_range("Chunk coordinates out of bounds");
|
throw std::out_of_range("Chunk coordinates out of bounds");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user