-- IndustrialTest -- Copyright (C) 2023 mrkubax10 -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . local S=minetest.get_translator("industrialtest") -- Power storage items minetest.register_tool("industrialtest:re_battery",{ description=S("RE-Battery"), inventory_image="industrialtest_re_battery.png", _industrialtest_powerStorage=true, _industrialtest_powerCapacity=7000, _industrialtest_powerFlow=200 }) minetest.register_craft({ type="shaped", output="industrialtest:re_battery", recipe={ {"","industrialtest:insulated_copper_cable",""}, {industrialtest.elementKeys.tinIngot,industrialtest.elementKeys.powerCarrier,industrialtest.elementKeys.tinIngot}, {industrialtest.elementKeys.tinIngot,industrialtest.elementKeys.powerCarrier,industrialtest.elementKeys.tinIngot} } }) -- Other resources minetest.register_craftitem("industrialtest:refined_iron_ingot",{ description=S("Refined Iron Ingot"), inventory_image="industrialtest_"..industrialtest.gameTexturePrefix.."_refined_iron_ingot.png", }) minetest.register_craft({ type="cooking", output="industrialtest:refined_iron_ingot", recipe=industrialtest.elementKeys.ironIngot }) minetest.register_craft({ type="shapeless", output="industrialtest:refined_iron_ingot 8", recipe={ "industrialtest:machine_block" } }) minetest.register_craftitem("industrialtest:sticky_resin",{ description=S("Sticky Resin"), inventory_image="industrialtest_sticky_resin.png" }) minetest.register_craftitem("industrialtest:rubber",{ description=S("Rubber"), inventory_image="industrialtest_rubber.png" }) minetest.register_craft({ type="cooking", output="industrialtest:rubber", recipe="industrialtest:sticky_resin" }) -- TODO: add rubber crafts using extractor -- Dust local function registerResourceDust(name,displayName,resources,color,registerMaceratorRecipe) minetest.register_craftitem("industrialtest:"..name.."_dust",{ description=S(displayName.." Dust"), inventory_image="industrialtest_dust.png", color=color }) if registerMaceratorRecipe then for _,value in ipairs(resources) do industrialtest.api.registerMaceratorRecipe({ output="industrialtest:"..name.."_dust "..(value.count or 1), recipe=value.resource }) end end end local resources={ { resource=industrialtest.elementKeys.coalBlock, count=9 }, { resource=industrialtest.elementKeys.stoneWithCoal, count=2 }, {resource=industrialtest.elementKeys.coal} } if industrialtest.mclAvailable then table.insert(resources,{ resource="mcl_deepslate:deepslate_with_coal", count=2 }) end registerResourceDust("coal","Coal",resources,"#101010ff",true) registerResourceDust("clay","Clay",{ { resource=industrialtest.elementKeys.clayBlock, count=2 } },"#9090a0ff",true) resources={ { resource=industrialtest.elementKeys.diamondBlock, count=9 }, { resource=industrialtest.elementKeys.stoneWithDiamond, count=2 }, {resource=industrialtest.elementKeys.diamond} } if industrialtest.mclAvailable then table.insert(resources,{ resource="mcl_deepslate:deepslate_with_diamond", count=2 }) end registerResourceDust("diamond","Diamond",resources,"#90e2c9ff",true) minetest.register_craft({ type="cooking", output=industrialtest.elementKeys.diamond, recipe="industrialtest:diamond_dust" }) resources={ { resource=industrialtest.elementKeys.ironBlock, count=9 }, { resource=industrialtest.elementKeys.stoneWithIron, count=2 }, { resource=industrialtest.elementKeys.ironLump, count=2 }, {resource=industrialtest.elementKeys.ironIngot} } if industrialtest.mclAvailable then table.insert(resources,{ resource="mcl_deepslate:deepslate_with_iron", count=2 }) end registerResourceDust("iron","Iron",resources,"#b5b5b5ff",true) minetest.register_craft({ type="cooking", output=industrialtest.elementKeys.ironIngot, recipe="industrialtest:iron_dust" }) if industrialtest.mclAvailable then registerResourceDust("lapis_lazuli","Lapis Lazuli",{ { resource="mcl_core:lapislazuliblock", count=9 }, { resource="mcl_core:stone_with_lapis_lazuli", count=2 }, { resource="mcl_deepslate:deepslate_with_lapis_lazuli", count=9 }, {resource="mcl_core:lapis_lazuli"} },"#292d76ff",true) end registerResourceDust("obsidian","Obsidian",{{resource=industrialtest.elementKeys.obsidian}},"#292843ff",true) resources={ { resource=industrialtest.elementKeys.goldBlock, count=9 }, { resource=industrialtest.elementKeys.stoneWithGold, count=2 }, { resource=industrialtest.elementKeys.goldLump, count=2 }, {resource=industrialtest.elementKeys.goldIngot} } if industrialtest.mclAvailable then table.insert(resources,{ resource="mcl_deepslate:deepslate_with_gold", count=2 }) end registerResourceDust("gold","Gold",resources,"#e4e526ff",true) minetest.register_craft({ type="cooking", output=industrialtest.elementKeys.goldIngot, recipe="industrialtest:gold_dust" }) resources={ { resource=industrialtest.elementKeys.copperBlock, count=9 }, { resource=industrialtest.elementKeys.stoneWithCopper, count=2 }, { resource=industrialtest.elementKeys.copperLump, count=2 }, {resource=industrialtest.elementKeys.copperIngot} } if industrialtest.mclAvailable then table.insert(resources,{ resource="mcl_deepslate:deepslate_with_copper", count=2 }) end registerResourceDust("copper","Copper",resources,"#a45e25ff",true) minetest.register_craft({ type="cooking", output=industrialtest.elementKeys.copperIngot, recipe="industrialtest:copper_dust" }) resources={ { resource=industrialtest.elementKeys.tinBlock, count=9 }, { resource=industrialtest.elementKeys.stoneWithTin, count=2 }, { resource=industrialtest.elementKeys.tinLump, count=2 }, {resource=industrialtest.elementKeys.tinIngot} } if industrialtest.mclAvailable then table.insert(resources,{ resource="industrialtest:deepslate_with_tin", count=2 }) end registerResourceDust("tin","Tin",resources,"#f1f1f1ff",true) minetest.register_craft({ type="cooking", output=industrialtest.elementKeys.tinIngot, recipe="industrialtest:tin_dust" }) resources={ { resource="industrialtest:uranium_block", count=9 }, { resource="industrialtest:stone_with_uranium", count=2 }, { resource=industrialtest.elementKeys.uraniumLump, count=2 }, {resource="industrialtest:uranium_ingot"} } if industrialtest.mclAvailable then table.insert(resources,{ resource="industrialtest:deepslate_with_uranium", count=2 }) end registerResourceDust("uranium","Uranium",resources,"#3b8c09ff",true) minetest.register_craft({ type="cooking", output="industrialtest:uranium_ingot", recipe="industrialtest:uranium_dust" }) if industrialtest.mtgAvailable then registerResourceDust("mese","Mese",{ { resource="default:mese", count=9 }, { resource="default:stone_with_mese", count=2 }, {resource="default:mese_crystal"} },"#909000ff",true) minetest.register_craft({ type="cooking", output="default:mese_crystal", recipe="industrialtest:mese_dust" }) end registerResourceDust("bronze","Bronze",{},"#e48e88ff",false) minetest.register_craft({ type="shaped", output="industrialtest:bronze_dust 9", recipe={ {"industrialtest:copper_dust","industrialtest:copper_dust","industrialtest:copper_dust"}, {"industrialtest:copper_dust","industrialtest:tin_dust","industrialtest:copper_dust"}, {"industrialtest:copper_dust","industrialtest:copper_dust","industrialtest:copper_dust"} } }) minetest.register_craft({ type="cooking", output=industrialtest.elementKeys.bronzeIngot, recipe="industrialtest:bronze_dust" }) -- Other items minetest.register_craftitem("industrialtest:electronic_circuit",{ description=S("Electronic Circuit"), inventory_image="industrialtest_electronic_circuit.png" }) minetest.register_craft({ type="shaped", output="industrialtest:electronic_circuit", recipe={ {"industrialtest:insulated_copper_cable","industrialtest:insulated_copper_cable","industrialtest:insulated_copper_cable"}, {industrialtest.elementKeys.powerCarrier,"industrialtest:refined_iron_ingot",industrialtest.elementKeys.powerCarrier}, {"industrialtest:insulated_copper_cable","industrialtest:insulated_copper_cable","industrialtest:insulated_copper_cable"} } }) -- Item callbacks minetest.register_on_player_inventory_action(function(player,action,inventory,info) if action=="put" then if industrialtest.api.preparePowerStorageItem(info.stack) or industrialtest.api.prepareToolItem(info.stack) then inventory:set_stack(info.listname,info.index,info.stack) end end end) minetest.register_on_craft(function(itemstack) if industrialtest.api.preparePowerStorageItem(itemstack) then return end industrialtest.api.prepareToolItem(itemstack) end)