diff --git a/src/logic/scripting/lua/libblock.cpp b/src/logic/scripting/lua/libblock.cpp index 16b924f1..ea31e446 100644 --- a/src/logic/scripting/lua/libblock.cpp +++ b/src/logic/scripting/lua/libblock.cpp @@ -491,7 +491,7 @@ static int l_get_field(lua::State* L) { } const ubyte* src = chunk->blocksMetadata.find(voxelIndex); if (src == nullptr) { - throw std::runtime_error("block data is not allocated"); + return 0; } return get_field(L, src, *field, index, dataStruct); } @@ -555,7 +555,7 @@ static int l_set_field(lua::State* L) { } ubyte* dst = chunk->blocksMetadata.find(voxelIndex); if (dst == nullptr) { - throw std::runtime_error("block data is not allocated"); + dst = chunk->blocksMetadata.allocate(voxelIndex, dataStruct.size()); } return set_field(L, dst, *field, index, dataStruct, value); } diff --git a/src/voxels/Chunks.cpp b/src/voxels/Chunks.cpp index 9b584007..408ab828 100644 --- a/src/voxels/Chunks.cpp +++ b/src/voxels/Chunks.cpp @@ -394,9 +394,6 @@ void Chunks::set( if (!state.segment && newdef.rt.extended) { repairSegments(newdef, state, gx, y, gz); } - if (newdef.dataStruct) { - chunk->blocksMetadata.allocate(index, newdef.dataStruct->size()); - } if (y < chunk->bottom) chunk->bottom = y;