From 95c3acbe11cff9afa78f9bf3cbdc50990b17b034 Mon Sep 17 00:00:00 2001 From: Duane Date: Mon, 27 Jun 2016 08:49:23 -0500 Subject: [PATCH] Prevent potential loss of translocator in lag. --- tesseract.lua | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tesseract.lua b/tesseract.lua index 2d51055..05d6bfd 100644 --- a/tesseract.lua +++ b/tesseract.lua @@ -368,11 +368,13 @@ local function trans_place(itemstack, placer, pointed_thing) print('* Fun Caves: high error in translocator storage') return end - pair[#pair+1] = pos - local ret = minetest.item_place_node(itemstack, placer, pointed_thing) - local meta = minetest.get_meta(pos) - meta:set_string('id', data.id) - return ret + local ret, place_good = minetest.item_place_node(itemstack, placer, pointed_thing) + if place_good then + pair[#pair+1] = pos + local meta = minetest.get_meta(pos) + meta:set_string('id', data.id) + end + return ret, place_good end local function trans_dig(pos, node, digger) @@ -397,7 +399,9 @@ local function trans_dig(pos, node, digger) local item = ItemStack(node.name) local data_str = minetest.serialize(data) item:set_metadata(data_str) - inv:add_item('main', item) + if not inv:add_item('main', item) then + return + end minetest.remove_node(pos) if #pair > 1 and minetest.serialize(pair[2]) == minetest.serialize(pos) then table.remove(pair, 2) @@ -417,7 +421,6 @@ newnode.groups = {cracky = 3, oddly_breakable_by_hand = 3} minetest.register_node("fun_caves:translocator", newnode) for _, gem in pairs(gems) do - print(dump(gem)) minetest.register_craft({ output = 'fun_caves:translocator 2', type = 'shapeless',