mirror of
https://github.com/Uberi/Minetest-WorldEdit.git
synced 2025-07-01 07:30:39 +02:00
Clean up serialization
* Adds a header to serialized data (to make version checking sane). * Removes the duplicate deserialization for `worldedit.deserialize` and `worldedit.allocate`. * Optimizes `worldedit.deserialize` by only deserializing the data once. * Makes some fields optional. * Cleans up the comments and a little of the code style.
This commit is contained in:
@ -2,7 +2,9 @@ worldedit = worldedit or {}
|
||||
local minetest = minetest --local copy of global
|
||||
|
||||
worldedit.allocate_old = worldedit.allocate
|
||||
|
||||
worldedit.deserialize_old = worldedit.deserialize
|
||||
|
||||
worldedit.metasave = function(pos1, pos2, filename)
|
||||
local file, err = io.open(filename, "wb")
|
||||
if err then return 0 end
|
||||
@ -11,6 +13,7 @@ worldedit.metasave = function(pos1, pos2, filename)
|
||||
file:close()
|
||||
return count
|
||||
end
|
||||
|
||||
worldedit.metaload = function(originpos, filename)
|
||||
filename = minetest.get_worldpath() .. "/schems/" .. file .. ".wem"
|
||||
local file, err = io.open(filename, "wb")
|
||||
@ -18,6 +21,16 @@ worldedit.metaload = function(originpos, filename)
|
||||
local data = file:read("*a")
|
||||
return worldedit.deserialize(originpos, data)
|
||||
end
|
||||
|
||||
worldedit.scale = function(pos1, pos2, factor)
|
||||
return worldedit.stretch(pos1, pos2, factor, factor, factor)
|
||||
end
|
||||
end
|
||||
|
||||
worldedit.valueversion = function(value)
|
||||
local version = worldedit.read_header(value)
|
||||
if not version or version > worldedit.LATEST_SERIALIZATION_VERSION then
|
||||
return 0
|
||||
end
|
||||
return version
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user