diff --git a/.luacheckrc b/.luacheckrc index 319eba3..6946337 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -27,9 +27,12 @@ read_globals = { "stairsplus", "string.split", table = { fields = { "copy", "getn" } }, + "technic", + "toolranks", "vector", "VoxelArea", "VoxelManip", + "walls", xpanes = { fields = { "register_pane" } }, } diff --git a/init.lua b/init.lua index 2251be9..9f8116e 100644 --- a/init.lua +++ b/init.lua @@ -144,7 +144,9 @@ if nether.NETHER_REALM_ENABLED then end end dofile(nether.path .. "/portal_examples.lua") - +if minetest.get_modpath("technic") then + dofile(nether.path .. "/nether-compressor-recipe.lua") +end -- Portals are ignited by right-clicking with a mese crystal fragment nether.register_portal_ignition_item( @@ -345,4 +347,4 @@ minetest.register_on_dieplayer( ) end end -) \ No newline at end of file +) diff --git a/mod.conf b/mod.conf index 50426d2..978b9b6 100644 --- a/mod.conf +++ b/mod.conf @@ -1,4 +1,4 @@ name = nether description = Adds a deep underground realm with different mapgen that you can reach with obsidian portals. depends = stairs, default -optional_depends = moreblocks, mesecons, loot, dungeon_loot, doc_basics, fire, climate_api, ethereal, xpanes, walls +optional_depends = toolranks, technic, moreblocks, mesecons, loot, dungeon_loot, doc_basics, fire, climate_api, ethereal, xpanes, walls diff --git a/nether-compressor-recipe.lua b/nether-compressor-recipe.lua new file mode 100644 index 0000000..5babc35 --- /dev/null +++ b/nether-compressor-recipe.lua @@ -0,0 +1,40 @@ +local S = minetest.get_translator("nether") + +technic.register_recipe_type("compressing", { description = S("Compressing") }) + +function register_compressor_recipe(data) + data.time = data.time or 4 + technic.register_recipe("compressing", data) +end + +local recipes = { + {"nether:rack", "nether:brick",}, + {"nether:rack_deep", "nether:brick_deep"}, + {"nether:brick 9", "nether:brick_compressed", 12}, + {"nether:brick_compressed 9", "nether:nether_lump", 12} + +} +-- clear craft recipe +-- But allow brick blocks to be crafted like the other bricks from Minetest Game + +minetest.clear_craft({ + recipe = { + {"nether:brick","nether:brick","nether:brick"}, + {"nether:brick","nether:brick","nether:brick"}, + {"nether:brick","nether:brick","nether:brick"}, + } +}) + +minetest.clear_craft({ + recipe = { + {"nether:brick_compressed","nether:brick_compressed","nether:brick_compressed"}, + {"nether:brick_compressed","nether:brick_compressed","nether:brick_compressed"}, + {"nether:brick_compressed","nether:brick_compressed","nether:brick_compressed"}, + } +}) + +for _, data in pairs(recipes) do + register_compressor_recipe({input = {data[1]}, output = data[2], time = data[3]}) +end + + diff --git a/tools.lua b/tools.lua index 1591e47..740bf83 100644 --- a/tools.lua +++ b/tools.lua @@ -153,6 +153,38 @@ minetest.register_craft({ }) +if minetest.get_modpath("toolranks") then + + local function add_toolranks(name) + local nethertool_after_use = ItemStack(name):get_definition().after_use + toolranks.add_tool(name) + local toolranks_after_use = ItemStack(name):get_definition().after_use + + if nethertool_after_use == nil or nethertool_after_use == toolranks_after_use then + return + end + + minetest.override_item(name, { + after_use = function(itemstack, user, node, digparams) + -- combine nethertool_after_use and toolranks_after_use by allowing + -- nethertool_after_use() to calculate the wear... + local initial_wear = itemstack:get_wear() + itemstack = nethertool_after_use(itemstack, user, node, digparams) + local wear = itemstack:get_wear() - initial_wear + itemstack:set_wear(initial_wear) -- restore/undo the wear + + -- ...and have toolranks_after_use() apply the wear. + digparams.wear = wear + return toolranks_after_use(itemstack, user, node, digparams) + end + }) + end + + add_toolranks("nether:pick_nether") + add_toolranks("nether:shovel_nether") + add_toolranks("nether:axe_nether") + add_toolranks("nether:sword_nether") +end --===========================--