Prevent potential loss of translocator in lag.
This commit is contained in:
parent
a8a058ac8b
commit
95c3acbe11
1 changed files with 10 additions and 7 deletions
|
@ -368,11 +368,13 @@ local function trans_place(itemstack, placer, pointed_thing)
|
|||
print('* Fun Caves: high error in translocator storage')
|
||||
return
|
||||
end
|
||||
local ret, place_good = minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||
if place_good then
|
||||
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
|
||||
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',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue