Zefram
2014-07-03 636b0f20df4fef3eef821c23ccc2f606828f5c6f
technic/tools/tree_tap.lua
@@ -4,41 +4,42 @@
minetest.register_tool("technic:treetap", {
   description = S("Tree Tap"),
   inventory_image = "technic_tree_tap.png",
   on_use = function(itemstack,user,pointed_thing)
   on_use = function(itemstack, user, pointed_thing)
      if pointed_thing.type ~= "node" then
         return
      end
      if user:get_inventory():room_for_item("main",ItemStack("technic:raw_latex")) then
         local pos = minetest.get_pointed_thing_position(pointed_thing,above)
         local node = minetest.env:get_node(pos)
         local node_name = node.name
         if node_name == "moretrees:rubber_tree_trunk" then
            node.name = "moretrees:rubber_tree_trunk_empty"
            user:get_inventory():add_item("main", ItemStack("technic:raw_latex"))
            minetest.set_node(pos,node)
            local item = itemstack:to_table()
            local item_wear = tonumber((item["wear"]))
            item_wear = item_wear + 819
            if item_wear > 65535 then
               itemstack:clear()
               return itemstack
            end
            item["wear"] = tostring(item_wear)
            itemstack:replace(item)
            return itemstack
         else
            return itemstack
         end
      else
      local inv = user:get_inventory()
      if not inv:room_for_item("main", ItemStack("technic:raw_latex")) 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"
      inv:add_item("main", ItemStack("technic:raw_latex"))
      minetest.swap_node(pos, node)
      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)
      return itemstack
   end,
})
minetest.register_craft({
   output = "technic:treetap",
   recipe = {
      {"pipeworks:tube", "group:wood",    "default:stick"},
      {"pipeworks:tube_1", "group:wood",    "default:stick"},
      {"",               "default:stick", "default:stick"}
   },
})
@@ -64,8 +65,11 @@
   interval = 60,
   chance = 15,
   action = function(pos, node)
      node.name = "moretrees:rubber_tree_trunk"
      minetest.set_node(pos, node)
      local meta = minetest.get_meta(pos)
      if meta:get_int("placed") ~= 0 then
         return
      end
      minetest.set_node(pos, {name="moretrees:rubber_tree_trunk"})
   end
})