Gábriel
2024-03-25 d5ff69d1d9efd683d852562af6cfddac5ac69879
technic/tools/chainsaw.lua
@@ -116,6 +116,7 @@
   -- See function cut_tree()
}
local safe_cut = minetest.settings:get_bool("technic_safe_chainsaw") ~= false
local c_air = minetest.get_content_id("air")
local function dig_recursive(x, y, z)
   local i = cutter.area:index(x, y, z)
@@ -124,7 +125,7 @@
   end
   cutter.seen[i] = 1 -- Mark as visited
   if cutter.param2[i] ~= 0 then
   if safe_cut and cutter.param2[i] ~= 0 then
      -- Do not dig manually placed nodes
      -- Problem: moretrees' generated jungle trees use param2 = 2
      return
@@ -312,10 +313,8 @@
         return itemstack
      end
      local meta = minetest.deserialize(itemstack:get_metadata())
      if not meta or not meta.charge then
         return
      end
      local meta = technic.get_stack_meta(itemstack)
      local charge = meta:get_int("technic:charge")
      local name = user:get_player_name()
      if minetest.is_protected(pointed_thing.under, name) then
@@ -325,14 +324,14 @@
      -- Send current charge to digging function so that the
      -- chainsaw will stop after digging a number of nodes
      chainsaw_dig(user, pointed_thing.under, meta.charge)
      meta.charge = cutter.charge
      chainsaw_dig(user, pointed_thing.under, charge)
      charge = cutter.charge
      cutter = {} -- Free RAM
      if not technic.creative_mode then
         technic.set_RE_wear(itemstack, meta.charge, chainsaw_max_charge)
         itemstack:set_metadata(minetest.serialize(meta))
         meta:set_int("technic:charge", charge)
         technic.set_RE_wear(itemstack, charge, chainsaw_max_charge)
      end
      return itemstack
   end,