mirror of
https://github.com/Uberi/Minetest-WorldEdit.git
synced 2024-11-11 13:00:32 +01:00
Warn when "misaligned" schematics are created
The underlying issue is the size detection worldedit.allocate does and can't be fixed or worked around in a simple way.
This commit is contained in:
parent
0919f7cab3
commit
68f7bcc728
|
@ -1097,6 +1097,23 @@ minetest.register_chatcommand("/restore", {
|
|||
end),
|
||||
})
|
||||
|
||||
local function detect_misaligned_schematic(name, pos1, pos2)
|
||||
pos1, pos2 = worldedit.sort_pos(pos1, pos2)
|
||||
-- Check that allocate/save can position the schematic correctly
|
||||
-- The expected behaviour is that the (0,0,0) corner of the schematic stays
|
||||
-- sat pos1, this only works when the minimum position is actually present
|
||||
-- in the schematic.
|
||||
local node = minetest.get_node(pos1)
|
||||
local have_node_at_origin = node.name ~= "air" and node.name ~= "ignore"
|
||||
if not have_node_at_origin then
|
||||
worldedit.player_notify(name,
|
||||
"Warning: The schematic contains excessive free space and WILL be "..
|
||||
"misaligned when allocated or loaded. To avoid this, shrink your "..
|
||||
"area to cover exactly the nodes to be saved."
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_chatcommand("/save", {
|
||||
params = "<file>",
|
||||
description = "Save the current WorldEdit region to \"(world folder)/schems/<file>.we\"",
|
||||
|
@ -1112,6 +1129,7 @@ minetest.register_chatcommand("/save", {
|
|||
end
|
||||
local result, count = worldedit.serialize(worldedit.pos1[name],
|
||||
worldedit.pos2[name])
|
||||
detect_misaligned_schematic(name, worldedit.pos1[name], worldedit.pos2[name])
|
||||
|
||||
local path = minetest.get_worldpath() .. "/schems"
|
||||
-- Create directory if it does not already exist
|
||||
|
|
Loading…
Reference in New Issue
Block a user