In the real world, structures require that the ground beneath them support the weight of the structure above. However since physics calculations are expensive and non-existent in Minecraft, we have to make do with a system that approximates the real world.
Floating structures give strategic advantages in War and in general look very ugly. To combat this issue, we designed the following system to prevent structures from floating.
Starting from the bottom layer of the Structure, we look at each block that lies beneath all the way to bedrock. We then divide them into layers based on the Y coordinate. When this is done each layer is checked for a percentage of "valid" blocks. If the percentage of "valid" blocks drops below the requirement, that layer is deemed invalid and blocks can no longer be broken there.
If the layer is invalid the Structure is marked as invalid. From this time, every hour the structure will take 10% damage until it's at 0% health and it will then be broken.
Layers | Percentage Requirement |
---|---|
0 - 9 | 78% |
10 - 29 | 80% |
30 - 49 | 82% |
50 - 256 | 85% |
Each block type is given a "reinforcement value" which is added up and compared to the total number of blocks on the bottom layer of the structure. By placing blocks underneath your structure that have higher reinforcement values, you'll be able to dig larger basements underneath your structures. The following table lists the reinforcement values for each block type.
Block | Reinforcement Value |
---|---|
Air, Torch, Water, Lava, Wood, Cobweb, Falling Blocks (Gravel, Sand) | 0 |
Smooth Stone, Iron Block & Everything Else | 1 |
Stone Bricks, Nether Bricks, Red Nether Bricks, Bricks, End Stone Bricks | 2 |
All types of Copper Blocks and Waxed Copper Blocks. | 3 |
When a structure preview is placed, it will check to determine if the ground beneath it contains enough reinforcement value to allow the structure to be built. If not, it will display at which levels the structure is invalid and by how much.