printing press checks for space above.
parent
367f364f60
commit
505d29daba
|
@ -78,6 +78,47 @@ function epic.remove_front_node(pos, oldnode)
|
|||
end
|
||||
end
|
||||
|
||||
function epic.space_on_top(pos)
|
||||
local above = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local top_node = minetest.get_node(above)
|
||||
print ('top node is '..(top_node.name))
|
||||
local top_def = minetest.registered_nodes[top_node.name] or nil
|
||||
if not top_def.buildable_to then
|
||||
return false
|
||||
else
|
||||
minetest.set_node(above,{name='epic:empty'})
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
function epic.remove_top_node(pos)
|
||||
local above = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local top_node = minetest.get_node(above).name
|
||||
if minetest.get_item_group(top_node, 'empty_node') > 0 then
|
||||
minetest.remove_node(above)
|
||||
end
|
||||
end
|
||||
|
||||
function epic.space_to_top_and_side(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
local fdir = node.param2 % 32
|
||||
local side = {x = pos.x + fdir_table[fdir+1][1], y=pos.y, z = pos.z + fdir_table[fdir+1][2]}
|
||||
local top = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local side_node = minetest.get_node(side)
|
||||
local top_node = minetest.get_node(top)
|
||||
print ('top node is '..(top_node.name))
|
||||
print ('side node is '..(side_node.name))
|
||||
local side_def = minetest.registered_nodes[side_node.name] or nil
|
||||
local top_def = minetest.registered_nodes[top_node.name] or nil
|
||||
if not top_def.buildable_to or not side_def.buildable_to then
|
||||
return false
|
||||
else
|
||||
minetest.set_node(side,{name='epic:empty'})
|
||||
minetest.set_node(top,{name='epic:empty'})
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
function epic.space_for_picnic(pos, placed_node)
|
||||
local node = minetest.get_node(pos)
|
||||
local fdir = node.param2 % 32
|
||||
|
|
|
@ -18,8 +18,8 @@ minetest.register_node('stations:printing_press', {
|
|||
fixed = {-.5, -.5, -.5, 1, .4, .5}, --base
|
||||
},
|
||||
groups = {oddly_breakable_by_hand=3, choppy=1},
|
||||
after_place_node = function(pos, placer)
|
||||
if not epic.space_to_side(pos) then
|
||||
after_place_node = function(pos, placer, itemstack)
|
||||
if not epic.space_to_top_and_side(pos) then
|
||||
minetest.remove_node(pos)
|
||||
return itemstack
|
||||
else
|
||||
|
@ -34,6 +34,7 @@ minetest.register_node('stations:printing_press', {
|
|||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
epic.remove_side_node(pos, oldnode)
|
||||
epic.remove_top_node(pos)
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
if listname == 'output' then
|
||||
|
|
Loading…
Reference in New Issue