aboutsummaryrefslogtreecommitdiff
path: root/advtrains/digtron.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains/digtron.lua')
-rw-r--r--advtrains/digtron.lua25
1 files changed, 25 insertions, 0 deletions
diff --git a/advtrains/digtron.lua b/advtrains/digtron.lua
new file mode 100644
index 0000000..7105a54
--- /dev/null
+++ b/advtrains/digtron.lua
@@ -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