Cristiano Magro
2020-10-11 0fb44d5afe49e31ce7f3d521e5440d17982bf263
collect rubber and cut tree
1 files modified
59 ■■■■■ changed files
technic/tools/xno_tree_tap.lua 59 ●●●●● patch | view | raw | blame | history
technic/tools/xno_tree_tap.lua
@@ -15,6 +15,7 @@
    {"moretrees:rubber_tree_leaves", false},
}
local timber_nodenames = {}
for _, node in pairs(nodes) do
    if chainsaw_leaves or node[2] then
@@ -123,10 +124,29 @@
        return remaining_charge
    end
  if node.name == "moretrees:rubber_tree_trunk" then
    --raccolta gomma
    node.name = "moretrees:rubber_tree_trunk_empty"
    minetest.swap_node(pos, node)
    minetest.handle_node_drops(pointed_thing.above, {"technic:raw_latex"}, user)
    remaining_charge = remaining_charge - xnotreetap_charge_per_node
    -- Wood found - cut it
    handle_drops(minetest.get_node_drops(node.name, ""))
    minetest.remove_node(pos)
    remaining_charge = remaining_charge - xnotreetap_charge_per_node
    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
  end
    -- Check surroundings and run recursively if any charge left
    for npos in iterSawTries(pos) do
@@ -213,14 +233,14 @@
            return itemstack
        end
        //check tool charge
    --check tool charge
        local meta = minetest.deserialize(itemstack:get_metadata())
        if not meta or not meta.charge or
                meta.charge < xnotreetap_charge_per_node then
            return
        end
        //check node protection
    --check node protection
        local pos = pointed_thing.under
        if minetest.is_protected(pos, user:get_player_name()) then
            minetest.record_protection_violation(pos, user:get_player_name())
@@ -228,27 +248,28 @@
        end
    --can collect only from rubber
        local node = minetest.get_node(pos)
        local node_name = node.name
        if node_name ~= "moretrees:rubber_tree_trunk" then
            return
        end
        //raccolta gomma
        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
    --raccolta gomma
    --        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
        -- Send current charge to digging function so that the
        -- chainsaw will stop after digging a number of nodes
@@ -266,8 +287,8 @@
    output = "technic:xnotreetap",
    recipe = {
        {"pipeworks:tube_1", "group:wood",    "default:stick"},
        {"technic:battery",  "default:stick", "default:stick"}
        {"technic:battery",  "default:stick", "default:stick"}
    {"technic:battery",  "default:stick", "default:stick"},
    {"technic:battery",  "default:stick", "default:stick"},
    },
})