Skip to content

Commit

Permalink
Ignore unknown nodes when loading in saves
Browse files Browse the repository at this point in the history
  • Loading branch information
luk3yx committed Jan 7, 2024
1 parent b90eeb1 commit b07d7d7
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions worldedit/serialization.lua
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ end

--- Loads the nodes represented by string `value` at position `origin_pos`.
-- @return The number of nodes deserialized.
local registered_nodes = minetest.registered_nodes
function worldedit.deserialize(origin_pos, value)
local nodes = load_schematic(value)
if not nodes then return nil end
Expand All @@ -252,11 +253,13 @@ function worldedit.deserialize(origin_pos, value)
local origin_x, origin_y, origin_z = origin_pos.x, origin_pos.y, origin_pos.z
local add_node, get_meta = minetest.add_node, minetest.get_meta
for i, entry in ipairs(nodes) do
entry.x, entry.y, entry.z = origin_x + entry.x, origin_y + entry.y, origin_z + entry.z
-- Entry acts as both position and node
add_node(entry, entry)
if entry.meta then
get_meta(entry):from_table(entry.meta)
if registered_nodes[entry.name] then
entry.x, entry.y, entry.z = origin_x + entry.x, origin_y + entry.y, origin_z + entry.z
-- Entry acts as both position and node
add_node(entry, entry)
if entry.meta then
get_meta(entry):from_table(entry.meta)
end
end
end
return #nodes
Expand Down

0 comments on commit b07d7d7

Please sign in to comment.