Prevent potential loss of translocator in lag.

This commit is contained in:
Duane 2016-06-27 08:49:23 -05:00
parent a8a058ac8b
commit 95c3acbe11

View file

@ -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',