summaryrefslogtreecommitdiff
path: root/legacy.lua
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2014-07-11 09:15:37 -0400
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2014-07-11 09:48:43 -0400
commit8aea4b1a1364e0cb6c4bb7b344c5b83455ed4bb5 (patch)
tree61208fea2e153ca1d172dcbdcd21029deadad102 /legacy.lua
parent87d87c91fa83a8bdb09e718f0641a33f475f6826 (diff)
downloadpipeworks-8aea4b1a1364e0cb6c4bb7b344c5b83455ed4bb5.tar
pipeworks-8aea4b1a1364e0cb6c4bb7b344c5b83455ed4bb5.tar.gz
pipeworks-8aea4b1a1364e0cb6c4bb7b344c5b83455ed4bb5.tar.bz2
pipeworks-8aea4b1a1364e0cb6c4bb7b344c5b83455ed4bb5.tar.xz
pipeworks-8aea4b1a1364e0cb6c4bb7b344c5b83455ed4bb5.zip
add conversion routine for cheapie's auto tree taps
turns them into nodebreakers with technic taps if auto tree taps are not defined and if technic tree taps are.
Diffstat (limited to 'legacy.lua')
-rw-r--r--legacy.lua59
1 files changed, 59 insertions, 0 deletions
diff --git a/legacy.lua b/legacy.lua
new file mode 100644
index 0000000..662e68d
--- /dev/null
+++ b/legacy.lua
@@ -0,0 +1,59 @@
+
+if not minetest.get_modpath("auto_tree_tap") and
+ minetest.get_modpath("technic") then
+
+ minetest.register_abm({
+ nodenames = { "auto_tree_tap:off", "auto_tree_tap:on" },
+ chance = 1,
+ interval = 1,
+ action = function(pos, node, active_object_count, active_object_count_wider)
+ local fdir = node.param2
+ local meta = minetest.get_meta(pos)
+ local inv = meta:get_inventory()
+ inv:set_size("pick", 1)
+ inv:set_size("ghost_pick", 1)
+ inv:set_size("main", 100)
+ minetest.set_node(pos, {name = "pipeworks:nodebreaker_off", param2 = fdir})
+ inv:set_stack("pick", 1, ItemStack("technic:treetap"))
+ end
+ })
+
+ minetest.register_node(":auto_tree_tap:off", {
+ description = "Auto-Tap",
+ tiles = {"pipeworks_nodebreaker_top_off.png","pipeworks_nodebreaker_bottom_off.png","pipeworks_nodebreaker_side2_off.png","pipeworks_nodebreaker_side1_off.png",
+ "pipeworks_nodebreaker_back.png","pipeworks_nodebreaker_front_off.png"},
+ is_ground_content = true,
+ paramtype2 = "facedir",
+ groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon = 2,tubedevice=1},
+ mesecons= {effector={rules=pipeworks.rules_all,action_on=node_breaker_on, action_off=node_breaker_off}},
+ sounds = default.node_sound_stone_defaults(),
+ tube = {connect_sides={back=1}},
+ on_construct = function(pos)
+ local meta = minetest.get_meta(pos)
+ local inv = meta:get_inventory()
+ inv:set_size("pick", 1)
+ inv:set_stack("pick", 1, ItemStack("default:pick_mese"))
+ end,
+ after_place_node = function (pos, placer)
+ pipeworks.scan_for_tube_objects(pos, placer)
+ local placer_pos = placer:getpos()
+
+ --correct for the player's height
+ if placer:is_player() then placer_pos.y = placer_pos.y + 1.5 end
+
+ --correct for 6d facedir
+ if placer_pos then
+ local dir = {
+ x = pos.x - placer_pos.x,
+ y = pos.y - placer_pos.y,
+ z = pos.z - placer_pos.z
+ }
+ local node = minetest.get_node(pos)
+ node.param2 = minetest.dir_to_facedir(dir, true)
+ minetest.set_node(pos, node)
+ minetest.log("action", "real (6d) facedir: " .. node.param2)
+ end
+ end,
+ after_dig_node = pipeworks.scan_for_tube_objects,
+ })
+end