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); 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
); );
``` ```

View File

@ -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

View File

@ -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
); );
/** /**

View File

@ -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

View File

@ -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};
} }

View File

@ -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);

View File

@ -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");
} }