Add Digtron compatibility
Override digtron's item-place function to be able to place tracks with digtrons.
This commit is contained in:
parent
9132c5d996
commit
d22b9fb011
|
@ -1,2 +1,3 @@
|
|||
default
|
||||
mesecons?
|
||||
mesecons?
|
||||
digtron?
|
|
@ -0,0 +1,25 @@
|
|||
--digtron.lua
|
||||
--make tracks placeable by digtrons by overriding the place function.
|
||||
|
||||
local old_item_place = digtron.item_place_node
|
||||
|
||||
digtron.item_place_node = function(itemstack, placer, place_to, param2)
|
||||
if minetest.get_item_group(itemstack:get_name(), "advtrains_trackplacer")>0 then
|
||||
return advtrains.pcall(function()
|
||||
local def = minetest.registered_items[itemstack:get_name()]
|
||||
if not def then return itemstack, false end
|
||||
|
||||
local pointed_thing = {}
|
||||
pointed_thing.type = "node"
|
||||
pointed_thing.above = {x=place_to.x, y=place_to.y, z=place_to.z}
|
||||
pointed_thing.under = {x=place_to.x, y=place_to.y - 1, z=place_to.z}
|
||||
|
||||
--call the on_rightclick callback
|
||||
local success
|
||||
itemstack, success = def.on_place(itemstack, placer, pointed_thing)
|
||||
return itemstack, success
|
||||
end)
|
||||
else
|
||||
return old_item_place(itemstack, placer, place_to, param2)
|
||||
end
|
||||
end
|
|
@ -121,6 +121,9 @@ dofile(advtrains.modpath.."/misc_nodes.lua")
|
|||
dofile(advtrains.modpath.."/crafting.lua")
|
||||
dofile(advtrains.modpath.."/craft_items.lua")
|
||||
|
||||
if digtron then
|
||||
dofile(advtrains.modpath.."/digtron.lua")
|
||||
end
|
||||
|
||||
--load/save
|
||||
|
||||
|
|
|
@ -185,19 +185,19 @@ function tp.register_track_placer(nnprefix, imgprefix, dispname)
|
|||
description = dispname,
|
||||
inventory_image = imgprefix.."_placer.png",
|
||||
wield_image = imgprefix.."_placer.png",
|
||||
groups={},
|
||||
groups={advtrains_trackplacer=1},
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
return advtrains.pcall(function()
|
||||
local name = placer:get_player_name()
|
||||
if not name then
|
||||
return itemstack
|
||||
return itemstack, false
|
||||
end
|
||||
if pointed_thing.type=="node" then
|
||||
local pos=pointed_thing.above
|
||||
local upos=vector.subtract(pointed_thing.above, {x=0, y=1, z=0})
|
||||
if advtrains.is_protected(pos,name) then
|
||||
minetest.record_protection_violation(pos, name)
|
||||
return itemstack
|
||||
return itemstack, false
|
||||
end
|
||||
if minetest.registered_nodes[minetest.get_node(pos).name] and minetest.registered_nodes[minetest.get_node(pos).name].buildable_to
|
||||
and minetest.registered_nodes[minetest.get_node(upos).name] and minetest.registered_nodes[minetest.get_node(upos).name].walkable then
|
||||
|
@ -207,7 +207,7 @@ function tp.register_track_placer(nnprefix, imgprefix, dispname)
|
|||
end
|
||||
end
|
||||
end
|
||||
return itemstack
|
||||
return itemstack, true
|
||||
end)
|
||||
end,
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue