mat9117
2019-04-14 a9b10cc4b10110a9c54bd03ac07eea3151b10ede
technic/tools/chainsaw.lua
@@ -9,15 +9,19 @@
-- The default trees
local timber_nodenames = {
   ["default:jungletree"] = true,
   ["default:papyrus"]    = true,
   ["default:cactus"]     = true,
   ["default:tree"]       = true,
   ["default:apple"]      = true,
   ["default:pine"]       = true,
   ["default:acacia_tree"] = true,
   ["default:aspen_tree"]  = true,
   ["default:jungletree"]  = true,
   ["default:papyrus"]     = true,
   ["default:cactus"]      = true,
   ["default:tree"]        = true,
   ["default:apple"]       = true,
   ["default:pine_tree"]    = true,
}
if chainsaw_leaves then
   timber_nodenames["default:acacia_leaves"] = true
   timber_nodenames["default:aspen_leaves"] = true
   timber_nodenames["default:leaves"] = true
   timber_nodenames["default:jungleleaves"] = true
   timber_nodenames["default:pine_needles"] = true
@@ -36,31 +40,18 @@
-- Support moretrees if it is there
if minetest.get_modpath("moretrees") then
   timber_nodenames["moretrees:acacia_trunk"]                = true
   timber_nodenames["moretrees:acacia_trunk_sideways"]       = true
   timber_nodenames["moretrees:apple_tree_trunk"]                 = true
   timber_nodenames["moretrees:apple_tree_trunk_sideways"]        = true
   timber_nodenames["moretrees:beech_trunk"]                      = true
   timber_nodenames["moretrees:beech_trunk_sideways"]             = true
   timber_nodenames["moretrees:birch_trunk"]                      = true
   timber_nodenames["moretrees:birch_trunk_sideways"]             = true
   timber_nodenames["moretrees:fir_trunk"]                        = true
   timber_nodenames["moretrees:fir_trunk_sideways"]               = true
   timber_nodenames["moretrees:oak_trunk"]                        = true
   timber_nodenames["moretrees:oak_trunk_sideways"]               = true
   timber_nodenames["moretrees:palm_trunk"]                       = true
   timber_nodenames["moretrees:palm_trunk_sideways"]              = true
   timber_nodenames["moretrees:pine_trunk"]                       = true
   timber_nodenames["moretrees:pine_trunk_sideways"]              = true
   timber_nodenames["moretrees:rubber_tree_trunk_sideways"]       = true
   timber_nodenames["moretrees:rubber_tree_trunk_sideways_empty"] = true
   timber_nodenames["moretrees:sequoia_trunk"]                    = true
   timber_nodenames["moretrees:sequoia_trunk_sideways"]           = true
   timber_nodenames["moretrees:spruce_trunk"]                     = true
   timber_nodenames["moretrees:spruce_trunk_sideways"]            = true
   timber_nodenames["moretrees:willow_trunk"]                     = true
   timber_nodenames["moretrees:willow_trunk_sideways"]            = true
   timber_nodenames["moretrees:jungletree_trunk"]                 = true
   timber_nodenames["moretrees:jungletree_trunk_sideways"]        = true
   timber_nodenames["moretrees:poplar_trunk"]                     = true
   if chainsaw_leaves then
      timber_nodenames["moretrees:acacia_leaves"]            = true
@@ -85,6 +76,7 @@
      timber_nodenames["moretrees:pine_cone"]                = true
      timber_nodenames["moretrees:fir_cone"]                 = true
      timber_nodenames["moretrees:apple_blossoms"]           = true
      timber_nodenames["moretrees:poplar_leaves"]            = true
   end
end
@@ -159,6 +151,14 @@
if minetest.get_modpath("vines") then
   if chainsaw_leaves then
      timber_nodenames["vines:vines"] = true
   end
end
if minetest.get_modpath("trunks") then
   if chainsaw_leaves then
      timber_nodenames["trunks:moss"] = true
      timber_nodenames["trunks:moss_fungus"] = true
      timber_nodenames["trunks:treeroot"] = true
   end
end
@@ -350,19 +350,25 @@
      -- Send current charge to digging function so that the
      -- chainsaw will stop after digging a number of nodes
      meta.charge = chainsaw_dig(pointed_thing.under, meta.charge)
      technic.set_RE_wear(itemstack, meta.charge, chainsaw_max_charge)
      itemstack:set_metadata(minetest.serialize(meta))
      if not technic.creative_mode then
         technic.set_RE_wear(itemstack, meta.charge, chainsaw_max_charge)
         itemstack:set_metadata(minetest.serialize(meta))
      end
      return itemstack
   end,
})
local mesecons_button = minetest.get_modpath("mesecons_button")
local trigger = mesecons_button and "mesecons_button:button_off" or "default:mese_crystal_fragment"
minetest.register_craft({
   output = "technic:chainsaw",
   recipe = {
      {"technic:stainless_steel_ingot", "mesecons_button:button_off", "technic:battery"},
      {"technic:fine_copper_wire",      "technic:motor",              "technic:battery"},
      {"technic:stainless_steel_ingot", trigger,                      "technic:battery"},
      {"basic_materials:copper_wire",      "basic_materials:motor",              "technic:battery"},
      {"",                              "",                           "technic:stainless_steel_ingot"},
   }
   },
   replacements = { {"basic_materials:copper_wire", "basic_materials:empty_spool"}, },
})