Merge pull request #3 from Elkien3/master
Patch some crashes when data is corrupted
This commit is contained in:
commit
2b5d308e63
@ -154,10 +154,11 @@ minetest.register_node("painting:pic", {
|
|||||||
local data = legacy.load_itemmeta(meta.fields["painting:picturedata"])
|
local data = legacy.load_itemmeta(meta.fields["painting:picturedata"])
|
||||||
--compare resulutions of picture and canvas the player wields
|
--compare resulutions of picture and canvas the player wields
|
||||||
--if it isn't the same don't copy
|
--if it isn't the same don't copy
|
||||||
data_res = minetest.deserialize(minetest.decompress(data)).res
|
|
||||||
wname = player:get_wielded_item():get_name()
|
wname = player:get_wielded_item():get_name()
|
||||||
local res = tonumber(string.sub(wname, #"painting:canvas_"+1))
|
local res = tonumber(string.sub(wname, #"painting:canvas_"+1))
|
||||||
if res == nil or data_res == nil then return end
|
if res == nil then return end
|
||||||
|
data_res = minetest.deserialize(minetest.decompress(data)).res
|
||||||
|
if data_res == nil then return end
|
||||||
if res ~= data_res then
|
if res ~= data_res then
|
||||||
minetest.chat_send_player(player:get_player_name(),
|
minetest.chat_send_player(player:get_player_name(),
|
||||||
"not same canvas type!")
|
"not same canvas type!")
|
||||||
@ -333,6 +334,7 @@ minetest.register_craftitem("painting:paintedcanvas", {
|
|||||||
|
|
||||||
--save metadata
|
--save metadata
|
||||||
local data = legacy.load_itemmeta(itemstack:get_metadata())
|
local data = legacy.load_itemmeta(itemstack:get_metadata())
|
||||||
|
if data == nil then return ItemStack("") end
|
||||||
minetest.get_meta(pos):set_string("painting:picturedata", get_metastring(data))
|
minetest.get_meta(pos):set_string("painting:picturedata", get_metastring(data))
|
||||||
|
|
||||||
--add entity
|
--add entity
|
||||||
@ -343,6 +345,7 @@ minetest.register_craftitem("painting:paintedcanvas", {
|
|||||||
pos.z = pos.z + dir.z * off
|
pos.z = pos.z + dir.z * off
|
||||||
|
|
||||||
data = minetest.deserialize(minetest.decompress(data))
|
data = minetest.deserialize(minetest.decompress(data))
|
||||||
|
if data == nil then return ItemStack("") end
|
||||||
|
|
||||||
local obj = minetest.add_entity(pos, "painting:picent")
|
local obj = minetest.add_entity(pos, "painting:picent")
|
||||||
obj:set_properties{ textures = { to_imagestring(data.grid, data.res) }}
|
obj:set_properties{ textures = { to_imagestring(data.grid, data.res) }}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user