summaryrefslogtreecommitdiff
path: root/technic/technic/tools/tree_tap.lua
diff options
context:
space:
mode:
Diffstat (limited to 'technic/technic/tools/tree_tap.lua')
-rw-r--r--technic/technic/tools/tree_tap.lua75
1 files changed, 75 insertions, 0 deletions
diff --git a/technic/technic/tools/tree_tap.lua b/technic/technic/tools/tree_tap.lua
new file mode 100644
index 0000000..e84fe33
--- /dev/null
+++ b/technic/technic/tools/tree_tap.lua
@@ -0,0 +1,75 @@
+
+local S = technic.getter
+local mesecons_materials = minetest.get_modpath("mesecons_materials")
+
+minetest.register_tool("technic:treetap", {
+ description = S("Tree Tap"),
+ inventory_image = "technic_tree_tap.png",
+ on_use = function(itemstack, user, pointed_thing)
+ if pointed_thing.type ~= "node" then
+ return
+ end
+ local pos = pointed_thing.under
+ if minetest.is_protected(pos, user:get_player_name()) then
+ minetest.record_protection_violation(pos, user:get_player_name())
+ return
+ end
+ local node = minetest.get_node(pos)
+ local node_name = node.name
+ if node_name ~= "moretrees:rubber_tree_trunk" then
+ return
+ end
+ node.name = "moretrees:rubber_tree_trunk_empty"
+ minetest.swap_node(pos, node)
+ minetest.handle_node_drops(pointed_thing.above, {"technic:raw_latex"}, user)
+ if not technic.creative_mode then
+ local item_wear = tonumber(itemstack:get_wear())
+ item_wear = item_wear + 819
+ if item_wear > 65535 then
+ itemstack:clear()
+ return itemstack
+ end
+ itemstack:set_wear(item_wear)
+ end
+ return itemstack
+ end,
+})
+
+minetest.register_craft({
+ output = "technic:treetap",
+ recipe = {
+ {"pipeworks:tube_1", "group:wood", "default:stick"},
+ {"", "default:stick", "default:stick"}
+ },
+})
+
+minetest.register_craftitem("technic:raw_latex", {
+ description = S("Raw Latex"),
+ inventory_image = "technic_raw_latex.png",
+})
+
+if mesecons_materials then
+ minetest.register_craft({
+ type = "cooking",
+ recipe = "technic:raw_latex",
+ output = "mesecons_materials:glue",
+ })
+end
+
+minetest.register_craftitem("technic:rubber", {
+ description = S("Rubber Fiber"),
+ inventory_image = "technic_rubber.png",
+})
+
+minetest.register_abm({
+ nodenames = {"moretrees:rubber_tree_trunk_empty"},
+ interval = 60,
+ chance = 15,
+ action = function(pos, node)
+ if minetest.find_node_near(pos, (moretrees and moretrees.leafdecay_radius) or 5, {"moretrees:rubber_tree_leaves"}) then
+ node.name = "moretrees:rubber_tree_trunk"
+ minetest.swap_node(pos, node)
+ end
+ end
+})
+