add 'lowering' generated structures property

This commit is contained in:
MihailRis
2024-11-13 01:10:52 +03:00
parent d72f758dc5
commit 4b0b643342
6 changed files with 20 additions and 10 deletions
+1 -1
View File
@@ -127,7 +127,7 @@ static VoxelStructureMeta load_structure_meta(
) {
VoxelStructureMeta meta;
meta.name = name;
config.at("lowering").get(meta.lowering);
return meta;
}
+3
View File
@@ -15,7 +15,10 @@ class VoxelFragment;
struct GeneratorDef;
struct VoxelStructureMeta {
/// @brief Structure name
std::string name;
/// @brief Structure lowering on placement
int lowering = 0;
};
struct BlocksLayer {
+5 -4
View File
@@ -270,10 +270,11 @@ void WorldGenerator::generateStructures(
if (height < def.seaLevel) {
continue;
}
auto& structure = *def.structures[structureId]->fragments[rotation];
glm::ivec3 position {x, height, z};
position.x -= structure.getSize().x / 2;
position.z -= structure.getSize().z / 2;
auto& structure = *def.structures[structureId];
auto& fragment = *structure.fragments[rotation];
glm::ivec3 position {x, height-structure.meta.lowering, z};
position.x -= fragment.getSize().x / 2;
position.z -= fragment.getSize().z / 2;
placeStructure(
StructurePlacement {
structureId,