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
|
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.."/crafting.lua")
|
||||||
dofile(advtrains.modpath.."/craft_items.lua")
|
dofile(advtrains.modpath.."/craft_items.lua")
|
||||||
|
|
||||||
|
if digtron then
|
||||||
|
dofile(advtrains.modpath.."/digtron.lua")
|
||||||
|
end
|
||||||
|
|
||||||
--load/save
|
--load/save
|
||||||
|
|
||||||
|
|
|
@ -185,19 +185,19 @@ function tp.register_track_placer(nnprefix, imgprefix, dispname)
|
||||||
description = dispname,
|
description = dispname,
|
||||||
inventory_image = imgprefix.."_placer.png",
|
inventory_image = imgprefix.."_placer.png",
|
||||||
wield_image = imgprefix.."_placer.png",
|
wield_image = imgprefix.."_placer.png",
|
||||||
groups={},
|
groups={advtrains_trackplacer=1},
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
return advtrains.pcall(function()
|
return advtrains.pcall(function()
|
||||||
local name = placer:get_player_name()
|
local name = placer:get_player_name()
|
||||||
if not name then
|
if not name then
|
||||||
return itemstack
|
return itemstack, false
|
||||||
end
|
end
|
||||||
if pointed_thing.type=="node" then
|
if pointed_thing.type=="node" then
|
||||||
local pos=pointed_thing.above
|
local pos=pointed_thing.above
|
||||||
local upos=vector.subtract(pointed_thing.above, {x=0, y=1, z=0})
|
local upos=vector.subtract(pointed_thing.above, {x=0, y=1, z=0})
|
||||||
if advtrains.is_protected(pos,name) then
|
if advtrains.is_protected(pos,name) then
|
||||||
minetest.record_protection_violation(pos, name)
|
minetest.record_protection_violation(pos, name)
|
||||||
return itemstack
|
return itemstack, false
|
||||||
end
|
end
|
||||||
if minetest.registered_nodes[minetest.get_node(pos).name] and minetest.registered_nodes[minetest.get_node(pos).name].buildable_to
|
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
|
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
|
end
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack, true
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue