Open NotStirred opened 4 years ago
I think there is another option: as missing cubes will only happen at the border, i think it is reasonable to assume that the player was not yet able to change the content of these cubes. So it would be be possible to just drop any cube, if any sub-cube is missing. This would only be problematic when upscaling to a cube-size more then twice the previous, or doubling cube size multiple times in quick sucession
given max cube size is 128 blocks, if the player had a short render distance it's possible that one of the smaller cubes in the new border cubes has been edited. So far the current plan for this is to generate the cube again, and slap any existing data on top
After thinking this through a little more I've realised there are some major difficulties in loading a world with a smaller cube size than the one currently selected (upscaling).
I believe our original approach was to save the world as it's current cube size, and on loading it back if the cube size doesn't match the world will be converted (either entirely, or on the fly). The major problem is that of missing cubes. Given this cube to upscale: You would first have to generate the missing sub-cube, and then convert it to the larger cube size. However, as the cube generation works entirely through a flag that changes Mixins, it isn't possible to generate cubes of different sizes at the same time.
Which leaves a few options: