refactor: Remove const references for position parameters in tile and biome accessors

Signed-off-by: szdytom <szdytom@qq.com>
This commit is contained in:
方而静 2025-08-01 22:58:07 +08:00
parent 416eabd31f
commit ebdbf62a19
Signed by: szTom
GPG Key ID: 072D999D60C6473C
7 changed files with 18 additions and 22 deletions

View File

@ -25,9 +25,9 @@ public:
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;
Tile& get_tile(const TilePos& pos);
const Tile& get_tile(const TilePos& pos) const;
void set_tile(const TilePos& pos, const Tile& tile);
Tile& get_tile(TilePos pos);
const Tile& get_tile(TilePos pos) const;
void set_tile(TilePos pos, const Tile& tile);
};
```
@ -48,8 +48,8 @@ struct Chunk {
BiomeType biome[subchunk_count][subchunk_count]; // Sub-chunk biomes
// Get biome for a specific sub-chunk position
BiomeType& get_biome(const SubChunkPos& pos);
const BiomeType& get_biome(const SubChunkPos& pos) const;
BiomeType& get_biome(SubChunkPos pos);
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(
const SubChunkPos& pos
SubChunkPos pos
);
```

View File

@ -42,20 +42,18 @@ struct Chunk {
BiomeType biome[subchunk_count][subchunk_count];
// 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];
}
// 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];
}
};
// Get the starting tile coordinates for a sub-chunk
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(
const SubChunkPos &pos
);
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(SubChunkPos pos);
} // namespace istd

View File

@ -85,7 +85,7 @@ private:
*/
void generate_subchunk(
TileMap &tilemap, std::uint8_t chunk_x, std::uint8_t chunk_y,
const SubChunkPos &sub_pos, BiomeType biome
SubChunkPos sub_pos, BiomeType biome
);
/**

View File

@ -38,15 +38,15 @@ public:
* @brief Get a tile at the given position
* @param pos The position of the tile
*/
Tile &get_tile(const TilePos &pos);
const Tile &get_tile(const TilePos &pos) const;
Tile &get_tile(TilePos pos);
const Tile &get_tile(TilePos pos) const;
/**
* @brief Set a tile at the given position
* @param pos The position of the tile
* @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

View File

@ -2,9 +2,7 @@
namespace istd {
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(
const SubChunkPos &pos
) {
std::pair<std::uint8_t, std::uint8_t> subchunk_to_tile_start(SubChunkPos pos) {
// Convert sub-chunk position to tile start coordinates
return {pos.sub_x * Chunk::subchunk_size, pos.sub_y * Chunk::subchunk_size};
}

View File

@ -82,7 +82,7 @@ void TerrainGenerator::generate_chunk(
void TerrainGenerator::generate_subchunk(
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);

View File

@ -31,7 +31,7 @@ const Chunk &TileMap::get_chunk(
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_) {
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];
}
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_) {
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];
}
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_) {
throw std::out_of_range("Chunk coordinates out of bounds");
}