diff --git a/mods/autoblockbreaker/depends.txt b/mods/autoblockbreaker/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/autoblockbreaker/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/autoblockbreaker/init.lua b/mods/autoblockbreaker/init.lua new file mode 100644 index 0000000..9c9e184 --- /dev/null +++ b/mods/autoblockbreaker/init.lua @@ -0,0 +1,64 @@ +--AutoBlockBreaker mod by sfan5 and PilzAdam +--v1.1 + +minetest.register_craft({ + output = 'autoblockbreaker:breaker', + recipe = { + {'default:cobble', 'default:cobble', 'default:cobble'}, + {'default:cobble', 'default:steelblock', "default:pick_stone"}, + {'default:cobble', 'default:cobble', 'default:cobble'}, + }, +}) + +minetest.register_node("autoblockbreaker:breaker", { + tiles = {"autoblockbreaker_top.png", "autoblockbreaker_side.png", "autoblockbreaker_side.png", + "autoblockbreaker_side.png", "autoblockbreaker_side.png", "autoblockbreaker_drillside.png"}, + paramtype2 = "facedir", + description = "Auto Block Breaker", + groups = {cracky=2}, + on_construct = function(pos) + minetest.get_meta(pos):set_string("infotext", "Auto Block Breaker (disabled)") + end, + on_rightclick = function(pos, node, puncher) + node.name = "autoblockbreaker:breaker_on" + minetest.set_node(pos, node) + minetest.get_meta(pos):set_string("infotext", "Auto Block Breaker (enabled)") + end, +}) + +minetest.register_node("autoblockbreaker:breaker_on", { + tiles = {"autoblockbreaker_top_on.png", "autoblockbreaker_side.png", "autoblockbreaker_side.png", + "autoblockbreaker_side.png", "autoblockbreaker_side.png", "autoblockbreaker_drillside.png"}, + paramtype2 = "facedir", + groups = {cracky=2}, + on_rightclick = function(pos, node, puncher) + node.name = "autoblockbreaker:breaker" + minetest.set_node(pos, node) + minetest.get_meta(pos):set_string("infotext", "Auto Block Breaker (disabled)") + end, + drop = "autoblockbreaker:breaker", +}) + +minetest.register_abm({ + nodenames = {"autoblockbreaker:breaker_on"}, + interval = 1.25, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local p = pos + local p2 = minetest.facedir_to_dir(node.param2) + p = {x=p.x - p2.x, y=p.y, z=p.z - p2.z} + p2 = nil + local n = minetest.get_node(p) + if n.name == "air" or n.name == "ignore" or not minetest.registered_nodes[n.name].diggable then return end + minetest.dig_node(p) + local drops = minetest.get_node_drops(n.name, "default:pick_stone") + local haschest = (minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "default:chest") + for _, drop in ipairs(drops) do + if haschest then + minetest.get_meta({x=pos.x, y=pos.y-1, z=pos.z}):get_inventory():add_item("main", drop) + else + minetest.add_item({x=pos.x, y=pos.y-1, z=pos.z}, drop) + end + end + end, +}) diff --git a/mods/autoblockbreaker/textures/autoblockbreaker_drillside.png b/mods/autoblockbreaker/textures/autoblockbreaker_drillside.png new file mode 100644 index 0000000..4b830cf Binary files /dev/null and b/mods/autoblockbreaker/textures/autoblockbreaker_drillside.png differ diff --git a/mods/autoblockbreaker/textures/autoblockbreaker_side.png b/mods/autoblockbreaker/textures/autoblockbreaker_side.png new file mode 100644 index 0000000..a07c4e7 Binary files /dev/null and b/mods/autoblockbreaker/textures/autoblockbreaker_side.png differ diff --git a/mods/autoblockbreaker/textures/autoblockbreaker_top.png b/mods/autoblockbreaker/textures/autoblockbreaker_top.png new file mode 100644 index 0000000..c2b2f7c Binary files /dev/null and b/mods/autoblockbreaker/textures/autoblockbreaker_top.png differ diff --git a/mods/autoblockbreaker/textures/autoblockbreaker_top_on.png b/mods/autoblockbreaker/textures/autoblockbreaker_top_on.png new file mode 100644 index 0000000..54d8a79 Binary files /dev/null and b/mods/autoblockbreaker/textures/autoblockbreaker_top_on.png differ diff --git a/mods/crushingfurnace/init.lua b/mods/crushingfurnace/init.lua index 004f645..b53391c 100644 --- a/mods/crushingfurnace/init.lua +++ b/mods/crushingfurnace/init.lua @@ -1,6 +1,5 @@ --CrushingFurnace mod by sfan5 ---v1.0 - +--v1.1 local function get_furnace_active_formspec(pos, percent) local formspec =