diff --git a/basic_materials/.github/workflows/luacheck.yml b/basic_materials/.github/workflows/luacheck.yml new file mode 100644 index 0000000..a13efa9 --- /dev/null +++ b/basic_materials/.github/workflows/luacheck.yml @@ -0,0 +1,13 @@ +name: luacheck +on: [push, pull_request] +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: apt + run: sudo apt-get install -y luarocks + - name: luacheck install + run: luarocks install --local luacheck + - name: luacheck run + run: $HOME/.luarocks/bin/luacheck ./ diff --git a/basic_materials/.gitmodules b/basic_materials/.gitmodules new file mode 100644 index 0000000..55d4b48 --- /dev/null +++ b/basic_materials/.gitmodules @@ -0,0 +1,3 @@ +[submodule "sound_api_core"] + path = sound_api_core + url = https://github.com/mt-mods/sound_api_core.git diff --git a/basic_materials/.luacheckrc b/basic_materials/.luacheckrc index 55879b0..c1a52ae 100644 --- a/basic_materials/.luacheckrc +++ b/basic_materials/.luacheckrc @@ -1,30 +1,7 @@ -std = "lua51+minetest" -unused_args = false -allow_defined_top = true -max_line_length = 999 - -stds.minetest = { - read_globals = { - "DIR_DELIM", - "minetest", - "core", - "dump", - "vector", - "nodeupdate", - "VoxelManip", - "VoxelArea", - "PseudoRandom", - "ItemStack", - "default", - table = { - fields = { - "copy", - }, - }, - } +globals = { + "minetest", "basic_materials", "crafting", } read_globals = { - "default", - "moreores", -} + "default", +} \ No newline at end of file diff --git a/basic_materials/README.md b/basic_materials/README.md new file mode 100644 index 0000000..faa3446 --- /dev/null +++ b/basic_materials/README.md @@ -0,0 +1,30 @@ +# Basic Materials mod + +mod that adds basic material nodes and items + +## Install + +### Option 1: use content tab in minetest + +* click the content tab +* search for basic materials +* click install on basic materials + +### Option 2: download from [ContentDB](https://content.minetest.net/packages/VanessaE/basic_materials/) + +* click the above link or search for basic materials on ContentDB +* select the download button on the basic materials page +* extract the zip downloaded from the previous step +* place in your mods folder + +### Option 3: use git + +* `git clone https://github.com/mt-mods/basic_materials.git` +* `cd basic_materials` +* `git submodule init` +* `git submodule update` + +to update please use the following commands starting inside the mod directory + +* `git submodule sync` +* `git submodule update` \ No newline at end of file diff --git a/basic_materials/aliases.lua b/basic_materials/aliases.lua new file mode 100644 index 0000000..30185f4 --- /dev/null +++ b/basic_materials/aliases.lua @@ -0,0 +1,34 @@ +minetest.register_alias("homedecor:plastic_sheeting", "basic_materials:plastic_sheet") +minetest.register_alias("homedecor:plastic_strips", "basic_materials:plastic_strip") +minetest.register_alias("homedecor:empty_spool", "basic_materials:empty_spool") +minetest.register_alias("homedecor:oil_extract", "basic_materials:oil_extract") +minetest.register_alias("homedecor:paraffin", "basic_materials:paraffin") +minetest.register_alias("homedecor:plastic_base", "basic_materials:paraffin") +minetest.register_alias("homedecor:terracotta_base", "basic_materials:terracotta_base") +minetest.register_alias("gloopblocks:wet_cement", "basic_materials:wet_cement") +minetest.register_alias("gloopblocks:cement", "basic_materials:cement_block") +minetest.register_alias("technic:concrete", "basic_materials:concrete_block") +minetest.register_alias("homedecor:ic", "basic_materials:ic") +minetest.register_alias("homedecor:motor", "basic_materials:motor") +minetest.register_alias("technic:motor", "basic_materials:motor") +minetest.register_alias("homedecor:heating_element", "basic_materials:heating_element") +minetest.register_alias("homedecor:power_crystal", "basic_materials:energy_crystal_simple") +minetest.register_alias("homedecor:copper_wire", "basic_materials:copper_wire") +minetest.register_alias("technic:fine_copper_wire", "basic_materials:copper_wire") +minetest.register_alias("technic:fine_silver_wire", "basic_materials:silver_wire") +minetest.register_alias("technic:fine_gold_wire", "basic_materials:gold_wire") +minetest.register_alias("homedecor:steel_wire", "basic_materials:steel_wire") +minetest.register_alias("homedecor:brass_ingot", "basic_materials:brass_ingot") +minetest.register_alias("technic:brass_ingot", "basic_materials:brass_ingot") +minetest.register_alias("technic:brass_block", "basic_materials:brass_block") +minetest.register_alias("homedecor:copper_strip", "basic_materials:copper_strip") +minetest.register_alias("homedecor:steel_strip", "basic_materials:steel_strip") +minetest.register_alias("homedecor:chainlink_brass", "basic_materials:chainlink_brass") +minetest.register_alias("chains:chain", "basic_materials:chain_steel") +minetest.register_alias("chains:chain_brass", "basic_materials:chain_brass") +minetest.register_alias("pipeworks:gear", "basic_materials:gear_steel") +minetest.register_alias("technic:rebar", "basic_materials:steel_bar") + +minetest.register_alias_force("mesecons_materials:silicon", "basic_materials:silicon") +minetest.register_alias_force("glooptest:chainlink", "basic_materials:chainlink_steel") +minetest.register_alias_force("homedecor:chainlink_steel", "basic_materials:chainlink_steel") \ No newline at end of file diff --git a/basic_materials/craftitems.lua b/basic_materials/craftitems.lua new file mode 100644 index 0000000..0040c67 --- /dev/null +++ b/basic_materials/craftitems.lua @@ -0,0 +1,188 @@ +local S = minetest.get_translator("basic_materials") + +minetest.register_craftitem("basic_materials:plastic_sheet", { + description = S("Plastic sheet"), + inventory_image = "basic_materials_plastic_sheet.png", +}) + +minetest.register_craftitem("basic_materials:plastic_strip", { + description = S("Plastic strips"), + groups = { strip = 1 }, + inventory_image = "basic_materials_plastic_strip.png", +}) + +minetest.register_craftitem("basic_materials:empty_spool", { + description = S("Empty wire spool"), + inventory_image = "basic_materials_empty_spool.png" +}) + +minetest.register_craftitem("basic_materials:oil_extract", { + description = S("Oil extract"), + inventory_image = "basic_materials_oil_extract.png", +}) + +minetest.register_craftitem("basic_materials:paraffin", { + description = S("Unprocessed paraffin"), + inventory_image = "basic_materials_paraffin.png", +}) + +minetest.register_craftitem("basic_materials:terracotta_base", { + description = S("Uncooked Terracotta Base"), + inventory_image = "basic_materials_terracotta_base.png", +}) + +minetest.register_craftitem("basic_materials:wet_cement", { + description = S("Wet Cement"), + inventory_image = "basic_materials_wet_cement.png", +}) + +minetest.register_craftitem("basic_materials:silicon", { + description = S("Silicon lump"), + inventory_image = "basic_materials_silicon.png", +}) + +minetest.register_craftitem("basic_materials:ic", { + description = S("Simple Integrated Circuit"), + inventory_image = "basic_materials_ic.png", +}) + +minetest.register_craftitem("basic_materials:motor", { + description = S("Simple Motor"), + inventory_image = "basic_materials_motor.png", +}) + +minetest.register_craftitem("basic_materials:heating_element", { + description = S("Heating element"), + inventory_image = "basic_materials_heating_element.png", +}) + +minetest.register_craftitem("basic_materials:energy_crystal_simple", { + description = S("Simple energy crystal"), + inventory_image = "basic_materials_energy_crystal.png", +}) + +minetest.register_craftitem("basic_materials:steel_wire", { + description = S("Spool of steel wire"), + groups = { wire = 1 }, + inventory_image = "basic_materials_steel_wire.png" +}) + +minetest.register_craftitem("basic_materials:copper_wire", { + description = S("Spool of copper wire"), + groups = { wire = 1 }, + inventory_image = "basic_materials_copper_wire.png" +}) + +minetest.register_craftitem("basic_materials:silver_wire", { + description = S("Spool of silver wire"), + groups = { wire = 1 }, + inventory_image = "basic_materials_silver_wire.png" +}) + +minetest.register_craftitem("basic_materials:gold_wire", { + description = S("Spool of gold wire"), + groups = { wire = 1 }, + inventory_image = "basic_materials_gold_wire.png" +}) + +minetest.register_craftitem("basic_materials:stainless_steel_wire", { + description = S("Spool of stainless steel wire"), + groups = { wire = 1 }, + inventory_image = "basic_materials_stainless_steel_wire.png" +}) + +minetest.register_craftitem("basic_materials:aluminum_wire", { + description = S("Spool of aluminum wire"), + groups = { wire = 1 }, + inventory_image = "basic_materials_aluminum_wire.png" +}) + +minetest.register_craftitem("basic_materials:steel_strip", { + description = S("Steel Strip"), + groups = { strip = 1 }, + inventory_image = "basic_materials_steel_strip.png" +}) + +minetest.register_craftitem("basic_materials:copper_strip", { + description = S("Copper Strip"), + groups = { strip = 1 }, + inventory_image = "basic_materials_copper_strip.png" +}) + +minetest.register_craftitem("basic_materials:lead_strip", { + description = S("Lead Strip"), + groups = { strip = 1 }, + inventory_image = "basic_materials_lead_strip.png" +}) + +minetest.register_craftitem("basic_materials:gold_strip", { + description = S("Gold Strip"), + groups = { strip = 1 }, + inventory_image = "basic_materials_gold_strip.png" +}) + +minetest.register_craftitem("basic_materials:stainless_steel_strip", { + description = S("Stainless Steel Strip"), + groups = { strip = 1 }, + inventory_image = "basic_materials_stainless_steel_strip.png" +}) + +minetest.register_craftitem("basic_materials:aluminum_strip", { + description = S("Aluminum Strip"), + groups = { strip = 1 }, + inventory_image = "basic_materials_aluminum_strip.png" +}) + +minetest.register_craftitem("basic_materials:steel_bar", { + description = S("Steel Bar"), + inventory_image = "basic_materials_steel_bar.png", +}) + +minetest.register_craftitem("basic_materials:carbon_steel_bar", { + description = S("Carbon Steel Bar"), + inventory_image = "basic_materials_carbon_steel_bar.png", +}) + +minetest.register_craftitem("basic_materials:stainless_steel_bar", { + description = S("Stainless Steel Bar"), + inventory_image = "basic_materials_stainless_steel_bar.png", +}) + +minetest.register_craftitem("basic_materials:aluminum_bar", { + description = S("Aluminum Bar"), + inventory_image = "basic_materials_aluminum_bar.png", +}) + +minetest.register_craftitem("basic_materials:chainlink_brass", { + description = S("Chainlinks (brass)"), + groups = { chainlinks = 1 }, + inventory_image = "basic_materials_chainlink_brass.png" +}) + +minetest.register_craftitem("basic_materials:chainlink_steel", { + description = S("Chainlinks (steel)"), + groups = { chainlinks = 1 }, + inventory_image = "basic_materials_chainlink_steel.png" +}) + +minetest.register_craftitem("basic_materials:brass_ingot", { + description = S("Brass Ingot"), + inventory_image = "basic_materials_brass_ingot.png", +}) + +minetest.register_craftitem("basic_materials:gear_steel", { + description = S("Steel gear"), + inventory_image = "basic_materials_gear_steel.png" +}) + +minetest.register_craftitem("basic_materials:padlock", { + description = S("Padlock"), + inventory_image = "basic_materials_padlock.png" +}) + +if minetest.get_modpath("hades_materials") then + minetest.register_alias_force("basic_materials:plastic_sheet", "hades_materials:plastic_sheeting") + minetest.register_alias_force("basic_materials:paraffin", "hades_materials:plastic_base") + minetest.register_alias_force("basic_materials:silicon", "hades_materials:silicon") +end + diff --git a/basic_materials/crafts.lua b/basic_materials/crafts.lua new file mode 100644 index 0000000..9ed7c27 --- /dev/null +++ b/basic_materials/crafts.lua @@ -0,0 +1,569 @@ +local materials = { + dirt = "default:dirt", + sand = "default:sand", + gravel = "default:gravel", + copper_ingot = "default:copper_ingot", + steel_ingot = "default:steel_ingot", + gold_ingot = "default:gold_ingot", + tin_ingot = "default:tin_ingot", + mese_crystal_fragment = "default:mese_crystal_fragment", + torch = "default:torch", + diamond = "default:diamond", + clay_lump = "default:clay_lump", + water_bucket = "bucket:bucket_water", + empty_bucket = "bucket:bucket_empty", + dye_dark_grey = "dye:dark_grey", + silicon = "mesecons_materials:silicon", +} + +if minetest.get_modpath("moreores") then + materials.silver_ingot = "moreores:silver_ingot" +end + +if minetest.get_modpath("technic") then + materials.lead_ingot = "technic:lead_ingot" + materials.carbon_steel_ingot = "technic:carbon_steel_ingot" + materials.stainless_steel_ingot = "technic:stainless_steel_ingot" +end + +if minetest.get_modpath("aloz") then + materials["aluminum_ingot"] = "aloz:aluminum_ingot" +end + +if minetest.get_modpath("mcl_core") then + materials = { + dirt = "mcl_core:dirt", + sand = "mcl_core:sand", + gravel = "mcl_core:gravel", + steel_ingot = "mcl_core:iron_ingot", + gold_ingot = "mcl_core:gold_ingot", + mese_crystal_fragment = "mesecons:redstone", + torch = "mcl_torches:torch", + diamond = "mcl_core:diamond", + clay_lump = "mcl_core:clay_lump", + water_bucket = "mcl_buckets:bucket_water", + empty_bucket = "mcl_buckets:bucket_empty", + dye_dark_grey = "mcl_dye:dark_grey", + -- Use iron where no equivalent + copper_ingot = "mcl_core:iron_ingot", + tin_ingot = "mcl_core:iron_ingot", + silver_ingot = "mcl_core:iron_ingot", + silicon = "mesecons_materials:silicon", + } +elseif minetest.get_modpath("fl_ores") and minetest.get_modpath("fl_stone") then + materials = { + dirt = "fl_topsoil:dirt", + sand = "fl_stone:sand", + gravel = "fl_topsoil:gravel", + steel_ingot = "fl_ores:iron_ingot", + gold_ingot = "fl_ores:gold_ingot", + mese_crystal_fragment = "fl_ores:iron_ingot", + torch = "fl_light_sources:torch", + diamond = "fl_ores:diamond", + clay_lump = "fl_bricks:clay_lump", + water_bucket = "fl_bucket:bucket_water", + empty_bucket = "fl_bucket:bucket", + dye_dark_grey = "fl_dyes:dark_grey_dye", + copper_ingot = "fl_ores:copper_ingot", + tin_ingot = "fl_ores:tin_ingot", + silver_ingot = "fl_ores:iron_ingot", + silicon = "mesecons_materials:silicon", + } +elseif minetest.get_modpath("rp_default") then + materials = { + dirt = "rp_default:dirt", + sand = "rp_default:sand", + gravel = "rp_default:gravel", + steel_ingot = "rp_default:ingot_steel", + gold_ingot = "rp_default:ingot_gold", + mese_crystal_fragment = "rp_default:ingot_steel", + torch = "rp_default:torch", + diamond = "rp_default:pearl", + clay_lump = "rp_default:ingot_steel", + water_bucket = "rp_default:swamp_dirt", + empty_bucket = "rp_default:dirt", + dye_dark_grey = "rp_default:ingot_steel", + copper_ingot = "rp_default:ingot_copper", + tin_ingot = "rp_default:ingot_tin", + silver_ingot = "rp_default:ingot_steel", + silicon = "rp_default:ingot_steel", + } +elseif minetest.get_modpath("hades_core") then + materials = { + dirt = "hades_core:dirt", + sand = "hades_core:fertile_sand", + gravel = "hades_core:gravel", + steel_ingot = "hades_core:steel_ingot", + gold_ingot = "hades_core:gold_ingot", + mese_crystal_fragment = "hades_core:mese_crystal_fragment", + torch = "hades_torches:torch", + diamond = "hades_core:diamond", + clay_lump = "hades_core:clay_lump", + dye_dark_grey = "hades_dye:dark_grey", + copper_ingot = "hades_core:copper_ingot", + tin_ingot = "hades_core:tin_ingot", + --[[ + Since hades doesnt have buckets or water for the user, + using dirt from near water to pull the water out + ]] + water_bucket = "hades_core:dirt", + empty_bucket = "hades_core:fertile_sand", + -- Set this to steel unless hadesextraores is present + silver_ingot = "hades_core:steel_ingot", + silicon = "hades_materials:silicon", + } + + if minetest.get_modpath("hades_bucket") then + materials["water_bucket"] = "hades_bucket:bucket_water" + materials["empty_bucket"] = "hades_bucket:bucket_empty" + end + if minetest.get_modpath("hades_extraores") then + materials["silver_ingot"] = "hades_extraores:silver_ingot" + materials["aluminum_ingot"] = "hades_extraores:aluminum_ingot" + end + if minetest.get_modpath("hades_technic") then + materials.lead_ingot = "hades_technic:lead_ingot" + materials.carbon_steel_ingot = "hades_technic:carbon_steel_ingot" + materials.stainless_steel_ingot = "hades_technic:stainless_steel_ingot" + end +end + +local have_hades_materials = minetest.get_modpath("hades_materials") + +local function compress_craft(input) + local buffer = {} + for _, item in pairs(input) do + if type(item)=="table" then + for _, inneritem in pairs(item) do + buffer[inneritem] = (buffer[inneritem] or 0) + 1 + end + elseif item ~= "" then + buffer[item] = (buffer[item] or 0) + 1 + end + end + + local output = {} + for item, count in pairs(buffer) do + output[#output + 1] = item .. " " .. count + end + return output +end + +local function register_craft(input) + if minetest.get_modpath("rp_crafting") then + local rp_craft = compress_craft(input.recipe) + if #rp_craft > crafting.MAX_INPUTS then + minetest.log("error", "[basic_materials] unable to register craft for " .. input.output) + return + end + + crafting.register_craft({ + output = input.output, + items = rp_craft + }) + else + minetest.register_craft(input) + end +end + +-- Craft recipes +register_craft({ + output = "basic_materials:chainlink_brass 12", + recipe = { + {"", "basic_materials:brass_ingot", "basic_materials:brass_ingot"}, + {"basic_materials:brass_ingot", "", "basic_materials:brass_ingot"}, + {"basic_materials:brass_ingot", "basic_materials:brass_ingot", ""}, + }, +}) + +register_craft({ + output = "basic_materials:chain_steel 2", + recipe = { + {"basic_materials:chainlink_steel"}, + {"basic_materials:chainlink_steel"}, + {"basic_materials:chainlink_steel"} + } +}) + +register_craft({ + output = "basic_materials:chain_brass 2", + recipe = { + {"basic_materials:chainlink_brass"}, + {"basic_materials:chainlink_brass"}, + {"basic_materials:chainlink_brass"} + } +}) + +register_craft( { + type = "shapeless", + output = "basic_materials:brass_ingot 9", + recipe = {"basic_materials:brass_block"}, +}) + +register_craft( { + output = "basic_materials:brass_block", + recipe = { + {"basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot"}, + {"basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot"}, + {"basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot"}, + }, +}) + +register_craft( { + output = "basic_materials:plastic_strip 9", + recipe = { + {"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"} + }, +}) + +register_craft( { + output = "basic_materials:empty_spool 3", + recipe = { + {"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"}, + {"", "basic_materials:plastic_sheet", ""}, + {"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"} + }, +}) + +if have_hades_materials then + minetest.clear_craft({ + type = "shapeless", + recipe = {"group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves"} + }) +end + +register_craft({ + type = "shapeless", + output = "basic_materials:oil_extract 2", + recipe = {"group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves"} +}) + +-- Cooking recipes +if not have_hades_materials then + minetest.register_craft({ + type = "cooking", + output = "basic_materials:plastic_sheet", + recipe = "basic_materials:paraffin", + }) +end + +minetest.register_craft({ + type = "cooking", + output = "basic_materials:paraffin", + recipe = "basic_materials:oil_extract", +}) + +minetest.register_craft({ + type = "cooking", + output = "basic_materials:cement_block", + recipe = "basic_materials:wet_cement", + cooktime = 8 +}) + +-- Fuel recipes +minetest.register_craft({ + type = "fuel", + recipe = "basic_materials:plastic_sheet", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "basic_materials:oil_extract", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "basic_materials:paraffin", + burntime = 30, +}) + +register_craft({ + output = "basic_materials:concrete_block 6", + recipe = { + {"group:sand", "basic_materials:wet_cement", materials.gravel}, + {"basic_materials:steel_bar", "basic_materials:wet_cement", "basic_materials:steel_bar"}, + {materials.gravel, "basic_materials:wet_cement", "group:sand"}, + } +}) + +register_craft( { + output = "basic_materials:motor 2", + recipe = { + {materials.mese_crystal_fragment, "basic_materials:copper_wire", "basic_materials:plastic_sheet"}, + {materials.copper_ingot, materials.steel_ingot, materials.steel_ingot}, + {materials.mese_crystal_fragment, "basic_materials:copper_wire", "basic_materials:plastic_sheet"} + }, + replacements = { + {"basic_materials:copper_wire", "basic_materials:empty_spool"}, + {"basic_materials:copper_wire", "basic_materials:empty_spool"}, + } +}) + +register_craft( { + output = "basic_materials:heating_element 2", + recipe = { + {materials.copper_ingot, materials.mese_crystal_fragment, materials.copper_ingot} + }, +}) + +register_craft({ + --type = "shapeless", + output = "basic_materials:energy_crystal_simple 2", + recipe = { + {materials.mese_crystal_fragment, materials.torch, materials.mese_crystal_fragment}, + {materials.diamond, materials.gold_ingot, materials.diamond} + }, +}) + +register_craft( { + output = "basic_materials:copper_wire 2", + type = "shapeless", + recipe = { + materials.copper_ingot, + "basic_materials:empty_spool", + "basic_materials:empty_spool", + }, +}) + +register_craft( { + output = "basic_materials:gold_wire 2", + type = "shapeless", + recipe = { + materials.gold_ingot, + "basic_materials:empty_spool", + "basic_materials:empty_spool", + }, +}) + +register_craft( { + output = "basic_materials:steel_wire 2", + type = "shapeless", + recipe = { + materials.steel_ingot, + "basic_materials:empty_spool", + "basic_materials:empty_spool", + }, +}) + +if materials.stainless_steel_ingot then + register_craft( { + output = "basic_materials:stainless_steel_wire 2", + type = "shapeless", + recipe = { + materials.stainless_steel_ingot, + "basic_materials:empty_spool", + "basic_materials:empty_spool", + }, + }) +end + +if materials.aluminum_ingot then + register_craft( { + output = "basic_materials:aluminum_wire 2", + type = "shapeless", + recipe = { + materials.aluminum_ingot, + "basic_materials:empty_spool", + "basic_materials:empty_spool", + }, + }) +end + +register_craft( { + output = "basic_materials:steel_strip 12", + recipe = { + {"", materials.steel_ingot, ""}, + {materials.steel_ingot, "", ""}, + }, +}) + +register_craft( { + output = "basic_materials:copper_strip 12", + recipe = { + {"", materials.copper_ingot, ""}, + {materials.copper_ingot, "", ""}, + }, +}) + +register_craft( { + output = "basic_materials:gold_strip 12", + recipe = { + {"", materials.gold_ingot, ""}, + {materials.gold_ingot, "", ""}, + }, +}) + +if materials.lead_ingot then + register_craft( { + output = "basic_materials:lead_strip 12", + recipe = { + {"", materials.lead_ingot, ""}, + {materials.lead_ingot, "", ""}, + }, + }) +end + +if materials.stainless_steel_ingot then + register_craft( { + output = "basic_materials:stainless_steel_strip 12", + recipe = { + {"", materials.stainless_steel_ingot, ""}, + {materials.stainless_steel_ingot, "", ""}, + }, + }) +end + +if materials.aluminum_ingot then + register_craft( { + output = "basic_materials:aluminum_strip 12", + recipe = { + {"", materials.aluminum_ingot, ""}, + {materials.aluminum_ingot, "", ""}, + }, + }) +end + +register_craft( { + output = "basic_materials:steel_bar 6", + recipe = { + {"", "", materials.steel_ingot}, + {"", materials.steel_ingot, ""}, + {materials.steel_ingot, "", ""}, + }, +}) + +if materials.carbon_steel_ingot then + register_craft( { + output = "basic_materials:carbon_steel_bar 6", + recipe = { + {"", "", materials.carbon_steel_ingot}, + {"", materials.carbon_steel_ingot, ""}, + {materials.carbon_steel_ingot, "", ""}, + }, + }) +end + +if materials.stainless_steel_ingot then + register_craft( { + output = "basic_materials:stainless_steel_bar 6", + recipe = { + {"", "", materials.stainless_steel_ingot}, + {"", materials.stainless_steel_ingot, ""}, + {materials.stainless_steel_ingot, "", ""}, + }, + }) +end + +if materials.aluminum_ingot then + register_craft( { + output = "basic_materials:aluminum_bar 6", + recipe = { + {"", "", materials.aluminum_ingot}, + {"", materials.aluminum_ingot, ""}, + {materials.aluminum_ingot, "", ""}, + }, + }) +end + +register_craft( { + output = "basic_materials:padlock 2", + recipe = { + {"basic_materials:steel_bar"}, + {materials.steel_ingot}, + {materials.steel_ingot}, + }, +}) + +register_craft({ + output = "basic_materials:chainlink_steel 12", + recipe = { + {"", materials.steel_ingot, materials.steel_ingot}, + {materials.steel_ingot, "", materials.steel_ingot}, + {materials.steel_ingot, materials.steel_ingot, ""}, + }, +}) + +register_craft( { + output = "basic_materials:gear_steel 6", + recipe = { + {"", materials.steel_ingot, ""}, + {materials.steel_ingot,"basic_materials:chainlink_steel", materials.steel_ingot}, + {"", materials.steel_ingot, ""} + }, +}) + +register_craft( { + type = "shapeless", + output = "basic_materials:terracotta_base 8", + recipe = { + materials.water_bucket, + materials.clay_lump, + materials.gravel, + }, + replacements = {{materials.water_bucket, materials.empty_bucket}}, +}) + +register_craft({ + type = "shapeless", + output = "basic_materials:wet_cement 3", + recipe = { + materials.dirt, + materials.dye_dark_grey, + materials.dye_dark_grey, + materials.dye_dark_grey, + materials.water_bucket + }, + replacements = {{materials.water_bucket, materials.empty_bucket}}, +}) + +if not have_hades_materials then + register_craft( { + output = materials.silicon.." 4", + recipe = { + {materials.sand, materials.sand}, + {materials.sand, materials.steel_ingot}, + }, + }) +end + +register_craft( { + output = "basic_materials:ic 4", + recipe = { + {materials.silicon, materials.silicon}, + {materials.silicon, materials.copper_ingot}, + }, +}) + +-- Without moreores, there still should be a way to create brass. +register_craft( { + output = "basic_materials:brass_ingot 9", + recipe = { + {materials.copper_ingot, materials.tin_ingot, materials.copper_ingot}, + {materials.gold_ingot, materials.copper_ingot, materials.tin_ingot}, + {materials.copper_ingot, materials.tin_ingot, materials.copper_ingot}, + }, +}) + +if materials.silver_ingot then + register_craft( { + output = "basic_materials:silver_wire 2", + type = "shapeless", + recipe = { + materials.silver_ingot, + "basic_materials:empty_spool", + "basic_materials:empty_spool", + }, + }) + + register_craft( { + type = "shapeless", + output = "basic_materials:brass_ingot 3", + recipe = { + materials.copper_ingot, + materials.copper_ingot, + materials.silver_ingot, + }, + }) +end diff --git a/basic_materials/electrical-electronic.lua b/basic_materials/electrical-electronic.lua deleted file mode 100644 index 91fac4e..0000000 --- a/basic_materials/electrical-electronic.lua +++ /dev/null @@ -1,86 +0,0 @@ --- Translation support -local S = minetest.get_translator("basic_materials") - --- items - -minetest.register_craftitem("basic_materials:silicon", { - description = S("Silicon lump"), - inventory_image = "basic_materials_silicon.png", -}) - -minetest.register_craftitem("basic_materials:ic", { - description = S("Simple Integrated Circuit"), - inventory_image = "basic_materials_ic.png", -}) - -minetest.register_craftitem("basic_materials:motor", { - description = S("Simple Motor"), - inventory_image = "basic_materials_motor.png", -}) - -minetest.register_craftitem("basic_materials:heating_element", { - description = S("Heating element"), - inventory_image = "basic_materials_heating_element.png", -}) - -minetest.register_craftitem("basic_materials:energy_crystal_simple", { - description = S("Simple energy crystal"), - inventory_image = "basic_materials_energy_crystal.png", -}) - --- crafts - -minetest.register_craft( { - output = "mesecons_materials:silicon 4", - recipe = { - { "default:sand", "default:sand" }, - { "default:sand", "default:steel_ingot" }, - }, -}) - -minetest.register_craft( { - output = "basic_materials:ic 4", - recipe = { - { "mesecons_materials:silicon", "mesecons_materials:silicon" }, - { "mesecons_materials:silicon", "default:copper_ingot" }, - }, -}) - -minetest.register_craft( { - output = "basic_materials:motor 2", - recipe = { - { "default:mese_crystal_fragment", "basic_materials:copper_wire", "basic_materials:plastic_sheet" }, - { "default:copper_ingot", "default:steel_ingot", "default:steel_ingot" }, - { "default:mese_crystal_fragment", "basic_materials:copper_wire", "basic_materials:plastic_sheet" } - }, - replacements = { - { "basic_materials:copper_wire", "basic_materials:empty_spool" }, - { "basic_materials:copper_wire", "basic_materials:empty_spool" }, - } -}) - -minetest.register_craft( { - output = "basic_materials:heating_element 2", - recipe = { - { "default:copper_ingot", "default:mese_crystal_fragment", "default:copper_ingot" } - }, -}) - -minetest.register_craft({ - --type = "shapeless", - output = "basic_materials:energy_crystal_simple 2", - recipe = { - { "default:mese_crystal_fragment", "default:torch", "default:mese_crystal_fragment" }, - { "default:diamond", "default:gold_ingot", "default:diamond" } - }, -}) - --- aliases - -minetest.register_alias("homedecor:ic", "basic_materials:ic") -minetest.register_alias("homedecor:motor", "basic_materials:motor") -minetest.register_alias("technic:motor", "basic_materials:motor") -minetest.register_alias("homedecor:heating_element", "basic_materials:heating_element") -minetest.register_alias("homedecor:power_crystal", "basic_materials:energy_crystal_simple") - -minetest.register_alias_force("mesecons_materials:silicon", "basic_materials:silicon") diff --git a/basic_materials/init.lua b/basic_materials/init.lua index 348c059..ad5ea10 100644 --- a/basic_materials/init.lua +++ b/basic_materials/init.lua @@ -4,12 +4,11 @@ -- This mod supplies all those little random craft items that everyone always -- seems to need, such as metal bars (ala rebar), plastic, wire, and so on. -local modpath = minetest.get_modpath("basic_materials") - basic_materials = {} basic_materials.mod = { author = "Vanessa Dannenberg" } +basic_materials.modpath = minetest.get_modpath("basic_materials") -dofile(modpath.."/metals.lua") -dofile(modpath.."/plastics.lua") -dofile(modpath.."/electrical-electronic.lua") -dofile(modpath.."/misc.lua") +dofile(basic_materials.modpath .. "/nodes.lua") +dofile(basic_materials.modpath .. "/craftitems.lua") +dofile(basic_materials.modpath .. "/crafts.lua") +dofile(basic_materials.modpath .. "/aliases.lua") \ No newline at end of file diff --git a/basic_materials/metals.lua b/basic_materials/metals.lua deleted file mode 100644 index 0a3243b..0000000 --- a/basic_materials/metals.lua +++ /dev/null @@ -1,300 +0,0 @@ --- Translation support -local S = minetest.get_translator("basic_materials") - --- items - -minetest.register_craftitem("basic_materials:steel_wire", { - description = S("Spool of steel wire"), - groups = { wire = 1 }, - inventory_image = "basic_materials_steel_wire.png" -}) - -minetest.register_craftitem("basic_materials:copper_wire", { - description = S("Spool of copper wire"), - groups = { wire = 1 }, - inventory_image = "basic_materials_copper_wire.png" -}) - -minetest.register_craftitem("basic_materials:silver_wire", { - description = S("Spool of silver wire"), - groups = { wire = 1 }, - inventory_image = "basic_materials_silver_wire.png" -}) - -minetest.register_craftitem("basic_materials:gold_wire", { - description = S("Spool of gold wire"), - groups = { wire = 1 }, - inventory_image = "basic_materials_gold_wire.png" -}) - -minetest.register_craftitem("basic_materials:steel_strip", { - description = S("Steel Strip"), - groups = { strip = 1 }, - inventory_image = "basic_materials_steel_strip.png" -}) - -minetest.register_craftitem("basic_materials:copper_strip", { - description = S("Copper Strip"), - groups = { strip = 1 }, - inventory_image = "basic_materials_copper_strip.png" -}) - -minetest.register_craftitem("basic_materials:steel_bar", { - description = S("Steel Bar"), - inventory_image = "basic_materials_steel_bar.png", -}) - -minetest.register_craftitem("basic_materials:chainlink_brass", { - description = S("Chainlinks (brass)"), - groups = { chainlinks = 1 }, - inventory_image = "basic_materials_chainlink_brass.png" -}) - -minetest.register_craftitem("basic_materials:chainlink_steel", { - description = S("Chainlinks (steel)"), - groups = { chainlinks = 1 }, - inventory_image = "basic_materials_chainlink_steel.png" -}) - -minetest.register_craftitem("basic_materials:brass_ingot", { - description = S("Brass Ingot"), - inventory_image = "basic_materials_brass_ingot.png", -}) - -minetest.register_craftitem("basic_materials:gear_steel", { - description = S("Steel gear"), - inventory_image = "basic_materials_gear_steel.png" -}) - -minetest.register_craftitem("basic_materials:padlock", { - description = S("Padlock"), - inventory_image = "basic_materials_padlock.png" -}) - --- nodes - -local chains_sbox = { - type = "fixed", - fixed = { -0.1, -0.5, -0.1, 0.1, 0.5, 0.1 } -} - -minetest.register_node("basic_materials:chain_steel", { - description = S("Chain (steel, hanging)"), - drawtype = "mesh", - mesh = "basic_materials_chains.obj", - tiles = {"basic_materials_chain_steel.png"}, - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = "light", - inventory_image = "basic_materials_chain_steel_inv.png", - groups = {cracky=3}, - selection_box = chains_sbox, -}) - -minetest.register_node("basic_materials:chain_brass", { - description = S("Chain (brass, hanging)"), - drawtype = "mesh", - mesh = "basic_materials_chains.obj", - tiles = {"basic_materials_chain_brass.png"}, - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = "light", - inventory_image = "basic_materials_chain_brass_inv.png", - groups = {cracky=3}, - selection_box = chains_sbox, -}) - -minetest.register_node("basic_materials:brass_block", { - description = S("Brass Block"), - tiles = { "basic_materials_brass_block.png" }, - is_ground_content = false, - groups = {cracky=1, level=2}, - sounds = default.node_sound_metal_defaults() -}) - --- crafts - -minetest.register_craft( { - output = "basic_materials:copper_wire 2", - type = "shapeless", - recipe = { - "default:copper_ingot", - "basic_materials:empty_spool", - "basic_materials:empty_spool", - }, -}) - -minetest.register_craft( { - output = "basic_materials:silver_wire 2", - type = "shapeless", - recipe = { - "moreores:silver_ingot", - "basic_materials:empty_spool", - "basic_materials:empty_spool", - }, -}) - -minetest.register_craft( { - output = "basic_materials:gold_wire 2", - type = "shapeless", - recipe = { - "default:gold_ingot", - "basic_materials:empty_spool", - "basic_materials:empty_spool", - }, -}) - -minetest.register_craft( { - output = "basic_materials:steel_wire 2", - type = "shapeless", - recipe = { - "default:steel_ingot", - "basic_materials:empty_spool", - "basic_materials:empty_spool", - }, -}) - -minetest.register_craft( { - output = "basic_materials:steel_strip 12", - recipe = { - { "", "default:steel_ingot", "" }, - { "default:steel_ingot", "", "" }, - }, -}) - -minetest.register_craft( { - output = "basic_materials:copper_strip 12", - recipe = { - { "", "default:copper_ingot", "" }, - { "default:copper_ingot", "", "" }, - }, -}) - -minetest.register_craft( { - output = "basic_materials:steel_bar 6", - recipe = { - { "", "", "default:steel_ingot" }, - { "", "default:steel_ingot", "" }, - { "default:steel_ingot", "", "" }, - }, -}) - -minetest.register_craft( { - output = "basic_materials:padlock 2", - recipe = { - { "basic_materials:steel_bar" }, - { "default:steel_ingot" }, - { "default:steel_ingot" }, - }, -}) - -minetest.register_craft({ - output = "basic_materials:chainlink_steel 12", - recipe = { - {"", "default:steel_ingot", "default:steel_ingot"}, - { "default:steel_ingot", "", "default:steel_ingot" }, - { "default:steel_ingot", "default:steel_ingot", "" }, - }, -}) - -minetest.register_craft({ - output = "basic_materials:chainlink_brass 12", - recipe = { - {"", "basic_materials:brass_ingot", "basic_materials:brass_ingot"}, - { "basic_materials:brass_ingot", "", "basic_materials:brass_ingot" }, - { "basic_materials:brass_ingot", "basic_materials:brass_ingot", "" }, - }, -}) - -minetest.register_craft({ - output = 'basic_materials:chain_steel 2', - recipe = { - {"basic_materials:chainlink_steel"}, - {"basic_materials:chainlink_steel"}, - {"basic_materials:chainlink_steel"} - } -}) - -minetest.register_craft({ - output = 'basic_materials:chain_brass 2', - recipe = { - {"basic_materials:chainlink_brass"}, - {"basic_materials:chainlink_brass"}, - {"basic_materials:chainlink_brass"} - } -}) - -minetest.register_craft( { - output = "basic_materials:gear_steel 6", - recipe = { - { "", "default:steel_ingot", "" }, - { "default:steel_ingot","basic_materials:chainlink_steel", "default:steel_ingot" }, - { "", "default:steel_ingot", "" } - }, -}) - -minetest.register_craft( { - type = "shapeless", - output = "basic_materials:brass_ingot 3", - recipe = { - "default:copper_ingot", - "default:copper_ingot", - "moreores:silver_ingot", - }, -}) - -if not minetest.get_modpath("moreores") then - -- Without moreores, there still should be a way to create brass. - minetest.register_craft( { - output = "basic_materials:brass_ingot 9", - recipe = { - {"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"}, - {"default:gold_ingot", "default:copper_ingot", "default:gold_ingot"}, - {"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"}, - }, - }) -end - -minetest.register_craft( { - type = "shapeless", - output = "basic_materials:brass_ingot 9", - recipe = { "basic_materials:brass_block" }, -}) - -minetest.register_craft( { - output = "basic_materials:brass_block", - recipe = { - { "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" }, - { "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" }, - { "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" }, - }, -}) - --- aliases - -minetest.register_alias("homedecor:copper_wire", "basic_materials:copper_wire") -minetest.register_alias("technic:fine_copper_wire", "basic_materials:copper_wire") -minetest.register_alias("technic:fine_silver_wire", "basic_materials:silver_wire") -minetest.register_alias("technic:fine_gold_wire", "basic_materials:gold_wire") - -minetest.register_alias("homedecor:steel_wire", "basic_materials:steel_wire") - -minetest.register_alias("homedecor:brass_ingot", "basic_materials:brass_ingot") -minetest.register_alias("technic:brass_ingot", "basic_materials:brass_ingot") -minetest.register_alias("technic:brass_block", "basic_materials:brass_block") - -minetest.register_alias("homedecor:copper_strip", "basic_materials:copper_strip") -minetest.register_alias("homedecor:steel_strip", "basic_materials:steel_strip") - -minetest.register_alias_force("glooptest:chainlink", "basic_materials:chainlink_steel") -minetest.register_alias_force("homedecor:chainlink_steel", "basic_materials:chainlink_steel") -minetest.register_alias("homedecor:chainlink_brass", "basic_materials:chainlink_brass") -minetest.register_alias("chains:chain", "basic_materials:chain_steel") -minetest.register_alias("chains:chain_brass", "basic_materials:chain_brass") - -minetest.register_alias("pipeworks:gear", "basic_materials:gear_steel") - -minetest.register_alias("technic:rebar", "basic_materials:steel_bar") - diff --git a/basic_materials/misc.lua b/basic_materials/misc.lua deleted file mode 100644 index 0012897..0000000 --- a/basic_materials/misc.lua +++ /dev/null @@ -1,126 +0,0 @@ --- Translation support -local S = minetest.get_translator("basic_materials") - --- items - -minetest.register_craftitem("basic_materials:oil_extract", { - description = S("Oil extract"), - inventory_image = "basic_materials_oil_extract.png", -}) - -minetest.register_craftitem("basic_materials:paraffin", { - description = S("Unprocessed paraffin"), - inventory_image = "basic_materials_paraffin.png", -}) - -minetest.register_craftitem("basic_materials:terracotta_base", { - description = S("Uncooked Terracotta Base"), - inventory_image = "basic_materials_terracotta_base.png", -}) - -minetest.register_craftitem("basic_materials:wet_cement", { - description = S("Wet Cement"), - inventory_image = "basic_materials_wet_cement.png", -}) - --- nodes - -minetest.register_node("basic_materials:cement_block", { - description = S("Cement"), - tiles = {"basic_materials_cement_block.png"}, - is_ground_content = true, - groups = {cracky=2}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("basic_materials:concrete_block", { - description = S("Concrete Block"), - tiles = {"basic_materials_concrete_block.png",}, - groups = {cracky=1, level=2, concrete=1}, - sounds = default.node_sound_stone_defaults(), -}) - --- crafts - -minetest.register_craft({ - type = "shapeless", - output = "basic_materials:oil_extract 2", - recipe = { - "group:leaves", - "group:leaves", - "group:leaves", - "group:leaves", - "group:leaves", - "group:leaves" - } -}) - -minetest.register_craft({ - type = "cooking", - output = "basic_materials:paraffin", - recipe = "basic_materials:oil_extract", -}) - -minetest.register_craft({ - type = "fuel", - recipe = "basic_materials:oil_extract", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "basic_materials:paraffin", - burntime = 30, -}) - -minetest.register_craft( { - type = "shapeless", - output = "basic_materials:terracotta_base 8", - recipe = { - "bucket:bucket_water", - "default:clay_lump", - "default:gravel", - }, - replacements = { {"bucket:bucket_water", "bucket:bucket_empty"}, }, -}) - -minetest.register_craft({ - type = "shapeless", - output = "basic_materials:wet_cement 3", - recipe = { - "default:dirt", - "dye:dark_grey", - "dye:dark_grey", - "dye:dark_grey", - "bucket:bucket_water" - }, - replacements = {{'bucket:bucket_water', 'bucket:bucket_empty'},}, -}) - -minetest.register_craft({ - type = "cooking", - output = "basic_materials:cement_block", - recipe = "basic_materials:wet_cement", - cooktime = 8 -}) - -minetest.register_craft({ - output = 'basic_materials:concrete_block 6', - recipe = { - {'group:sand', 'basic_materials:wet_cement', 'default:gravel'}, - {'basic_materials:steel_bar', 'basic_materials:wet_cement', 'basic_materials:steel_bar'}, - {'default:gravel', 'basic_materials:wet_cement', 'group:sand'}, - } -}) - --- aliases - -minetest.register_alias("homedecor:oil_extract", "basic_materials:oil_extract") -minetest.register_alias("homedecor:paraffin", "basic_materials:paraffin") -minetest.register_alias("homedecor:plastic_base", "basic_materials:paraffin") -minetest.register_alias("homedecor:terracotta_base", "basic_materials:terracotta_base") - -minetest.register_alias("gloopblocks:wet_cement", "basic_materials:wet_cement") -minetest.register_alias("gloopblocks:cement", "basic_materials:cement_block") - -minetest.register_alias("technic:concrete", "basic_materials:concrete_block") diff --git a/basic_materials/mod.conf b/basic_materials/mod.conf index 7234bfe..048bae0 100644 --- a/basic_materials/mod.conf +++ b/basic_materials/mod.conf @@ -1,4 +1,3 @@ name = basic_materials -depends = default -optional_depends = moreores +optional_depends = moreores, default, mesecons_materials, dye, bucket, fl_stone, fl_trees, mcl_sounds, hades_core, hades_sounds, hades_materials, hades_dye, hades_bucket, hades_extraores, hades_mesecons_materials, aloz, rp_crafting min_minetest_version = 5.2.0 diff --git a/basic_materials/nodes.lua b/basic_materials/nodes.lua new file mode 100644 index 0000000..ef10f43 --- /dev/null +++ b/basic_materials/nodes.lua @@ -0,0 +1,59 @@ +local S = minetest.get_translator("basic_materials") +local sound_api = dofile(basic_materials.modpath .. "/sound_api_core/init.lua") +local chains_sbox = {type = "fixed",fixed = { -0.1, -0.5, -0.1, 0.1, 0.5, 0.1 }} + +minetest.register_node("basic_materials:cement_block", { + description = S("Cement"), + tiles = {"basic_materials_cement_block.png"}, + is_ground_content = true, + groups = {cracky=2, dig_stone = 1, pickaxey=5}, + _mcl_hardness=1.6, + sounds = sound_api.node_sound_stone_defaults(), +}) + +minetest.register_node("basic_materials:concrete_block", { + description = S("Concrete Block"), + tiles = {"basic_materials_concrete_block.png",}, + groups = {cracky=1, concrete=1, dig_stone = 1, pickaxey=5}, + _mcl_hardness=1.6, + sounds = sound_api.node_sound_stone_defaults(), +}) + +minetest.register_node("basic_materials:chain_steel", { + description = S("Chain (steel, hanging)"), + drawtype = "mesh", + mesh = "basic_materials_chains.obj", + tiles = {"basic_materials_chain_steel.png"}, + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + inventory_image = "basic_materials_chain_steel_inv.png", + groups = {cracky=3, dig_stone = 1, pickaxey=5}, + _mcl_hardness=1.6, + selection_box = chains_sbox, +}) + +minetest.register_node("basic_materials:chain_brass", { + description = S("Chain (brass, hanging)"), + drawtype = "mesh", + mesh = "basic_materials_chains.obj", + tiles = {"basic_materials_chain_brass.png"}, + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + inventory_image = "basic_materials_chain_brass_inv.png", + groups = {cracky=3, dig_stone = 1, pickaxey=5}, + _mcl_hardness=1.6, + selection_box = chains_sbox, +}) + +minetest.register_node("basic_materials:brass_block", { + description = S("Brass Block"), + tiles = { "basic_materials_brass_block.png" }, + is_ground_content = false, + groups = {cracky=1, dig_stone = 1, pickaxey=5}, + _mcl_hardness=1.6, + sounds = sound_api.node_sound_metal_defaults() +}) diff --git a/basic_materials/plastics.lua b/basic_materials/plastics.lua deleted file mode 100644 index e29af53..0000000 --- a/basic_materials/plastics.lua +++ /dev/null @@ -1,56 +0,0 @@ --- Translation support -local S = minetest.get_translator("basic_materials") - --- items - -minetest.register_craftitem("basic_materials:plastic_sheet", { - description = S("Plastic sheet"), - inventory_image = "basic_materials_plastic_sheet.png", -}) - -minetest.register_craftitem("basic_materials:plastic_strip", { - description = S("Plastic strips"), - groups = { strip = 1 }, - inventory_image = "basic_materials_plastic_strip.png", -}) - -minetest.register_craftitem("basic_materials:empty_spool", { - description = S("Empty wire spool"), - inventory_image = "basic_materials_empty_spool.png" -}) - --- crafts - -minetest.register_craft({ - type = "cooking", - output = "basic_materials:plastic_sheet", - recipe = "basic_materials:paraffin", -}) - -minetest.register_craft({ - type = "fuel", - recipe = "basic_materials:plastic_sheet", - burntime = 30, -}) - -minetest.register_craft( { - output = "basic_materials:plastic_strip 9", - recipe = { - { "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" } - }, -}) - -minetest.register_craft( { - output = "basic_materials:empty_spool 3", - recipe = { - { "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, - { "", "basic_materials:plastic_sheet", "" }, - { "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" } - }, -}) - --- aliases - -minetest.register_alias("homedecor:plastic_sheeting", "basic_materials:plastic_sheet") -minetest.register_alias("homedecor:plastic_strips", "basic_materials:plastic_strip") -minetest.register_alias("homedecor:empty_spool", "basic_materials:empty_spool") diff --git a/basic_materials/sound_api_core/.luacheckrc b/basic_materials/sound_api_core/.luacheckrc new file mode 100644 index 0000000..1bd7ddb --- /dev/null +++ b/basic_materials/sound_api_core/.luacheckrc @@ -0,0 +1,5 @@ +read_globals = { + "minetest", "mcl_sounds", "default", "ks_sounds", + "nodes_nature", "fl_stone", "fl_topsoil", "fl_trees", + "hades_sounds", +} \ No newline at end of file diff --git a/basic_materials/sound_api_core/LICENSE b/basic_materials/sound_api_core/LICENSE new file mode 100644 index 0000000..50e6e01 --- /dev/null +++ b/basic_materials/sound_api_core/LICENSE @@ -0,0 +1,19 @@ + +MIT Copyright 2021 wsor4035 + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/basic_materials/sound_api_core/init.lua b/basic_materials/sound_api_core/init.lua new file mode 100644 index 0000000..a7db7dc --- /dev/null +++ b/basic_materials/sound_api_core/init.lua @@ -0,0 +1,276 @@ +local sound_api = {} + +--convert some games for api usage + +--ks_sounds conversion +--currently loggy and bedrock are ignored +local ks = {} + +function ks.node_sound_defaults(table) + table = table or {} + table.footstep = table.footstep or ks_sounds.generalnode_sounds.footstep + table.dug = table.dug or ks_sounds.generalnode_sounds.dug + table.dig = table.dig or ks_sounds.generalnode_sounds.dig + table.place = table.place or ks_sounds.generalnode_sounds.place + return table +end + +function ks.node_sound_wood_defaults(table) + table = table or {} + table.footstep = table.footstep or ks_sounds.woodennode_sounds.footstep + table.dug = table.dug or ks_sounds.woodennode_sounds.dug + table.dig = table.dig or ks_sounds.woodennode_sounds.dig + table.place = table.place or ks_sounds.woodennode_sounds.place + ks.node_sound_defaults(table) + return table +end + +function ks.node_sound_leaves_defaults(table) + table = table or {} + table.footstep = table.footstep or ks_sounds.leafynode_sounds.footstep + table.dug = table.dug or ks_sounds.leafynode_sounds.dug + table.dig = table.dig or ks_sounds.leafynode_sounds.dig + table.place = table.place or ks_sounds.leafynode_sounds.place + ks.node_sound_defaults(table) + return table +end + +function ks.node_sound_snow_defaults(table) + table = table or {} + table.footstep = table.footstep or ks_sounds.snowynode_sounds.footstep + table.dug = table.dug or ks_sounds.snowynode_sounds.dug + table.dig = table.dig or ks_sounds.snowynode_sounds.dig + table.place = table.place or ks_sounds.snowynode_sounds.place + ks.node_sound_defaults(table) + return table +end + + +--api +function sound_api.node_sound_default(table) + if minetest.get_modpath("default") then + return default.node_sound_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_defaults(table) + elseif minetest.get_modpath("ks_sounds") then + return ks.node_sound_default(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_default(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_defaults(table) + else + return table + end +end + +function sound_api.node_sound_stone_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_stone_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_stone_defaults(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_stone_defaults(table) + elseif minetest.get_modpath("fl_stone") then + return fl_stone.sounds.stone(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_stone_defaults(table) + else + return table + end +end + +function sound_api.node_sound_dirt_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_dirt_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_dirt_defaults(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_dirt_defaults(table) + --s/dirt/grass + elseif minetest.get_modpath("fl_topsoil") then + return fl_topsoil.sounds.grass(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_dirt_defaults(table) + else + return table + end +end + +--return dirt as some games use dirt vs grass +function sound_api.node_sound_grass_defaults(table) + if minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_grass_defaults(table) + else + return sound_api.node_sound_dirt_defaults(table) + end +end + +function sound_api.node_sound_sand_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_sand_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_sand_defaults(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_sand_defaults(table) + elseif minetest.get_modpath("fl_stone") then + return fl_stone.sounds.sand(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_sand_defaults(table) + else + return table + end +end + +function sound_api.node_sound_gravel_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_gravel_defaults(table) + --s/gravel/sand + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_sand_defaults(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_gravel_defaults(table) + elseif minetest.get_modpath("fl_topsoil") then + return fl_topsoil.sounds.gravel(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_gravel_defaults(table) + else + return table + end +end + +function sound_api.node_sound_wood_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_wood_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_wood_defaults(table) + elseif minetest.get_modpath("ks_sounds") then + return ks.node_sound_wood_default(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_wood_defaults(table) + elseif minetest.get_modpath("fl_trees") then + return fl_trees.sounds.wood(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_wood_defaults(table) + else + return table + end +end + +function sound_api.node_sound_leaves_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_leaves_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_leaves_defaults(table) + elseif minetest.get_modpath("ks_sounds") then + return ks.node_sound_leaves_default(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_leaves_defaults(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_leaves_defaults(table) + else + return table + end +end + +function sound_api.node_sound_glass_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_glass_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_glass_defaults(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_glass_defaults(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_glass_defaults(table) + else + return table + end +end + + +function sound_api.node_sound_ice_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_ice_defaults(table) + --s/ice/glass + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_glass_defaults(table) + --s/ice/glass + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_glass_defaults(table) + --s/ice/glass + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_glass_defaults(table) + else + return table + end +end + +function sound_api.node_sound_metal_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_metal_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_metal_defaults(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_metal_defaults(table) + else + return table + end +end + +function sound_api.node_sound_water_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_water_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_water_defaults(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_water_defaults(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_water_defaults(table) + else + return table + end +end + +function sound_api.node_sound_lava_defaults(table) + --s/lava/water + if minetest.get_modpath("default") then + return default.node_sound_water_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_lava_defaults(table) + --s/lava/water + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_water_defaults(table) + elseif minetest.get_modpath("hades_sounds") then + return hades_sounds.node_sound_lava_defaults(table) + else + return table + end +end + +function sound_api.node_sound_snow_defaults(table) + if minetest.get_modpath("default") then + return default.node_sound_snow_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_snow_defaults(table) + elseif minetest.get_modpath("ks_sounds") then + return ks.node_sound_snow_default(table) + elseif minetest.get_modpath("nodes_nature") then + return nodes_nature.node_sound_snow_defaults(table) + elseif minetest.get_modpath("fl_topsoil") then + return fl_topsoil.sounds.snow(table) + else + return table + end +end + +function sound_api.node_sound_wool_defaults(table) + --s/wool/default + if minetest.get_modpath("default") then + return default.node_sound_defaults(table) + elseif minetest.get_modpath("mcl_sounds") then + return mcl_sounds.node_sound_wool_defaults(table) + else + return table + end +end + +return sound_api \ No newline at end of file diff --git a/basic_materials/textures/basic_materials_aluminum_bar.png b/basic_materials/textures/basic_materials_aluminum_bar.png new file mode 100644 index 0000000..8d3e11e Binary files /dev/null and b/basic_materials/textures/basic_materials_aluminum_bar.png differ diff --git a/basic_materials/textures/basic_materials_aluminum_strip.png b/basic_materials/textures/basic_materials_aluminum_strip.png new file mode 100644 index 0000000..8957022 Binary files /dev/null and b/basic_materials/textures/basic_materials_aluminum_strip.png differ diff --git a/basic_materials/textures/basic_materials_aluminum_wire.png b/basic_materials/textures/basic_materials_aluminum_wire.png new file mode 100644 index 0000000..f0b3dc6 Binary files /dev/null and b/basic_materials/textures/basic_materials_aluminum_wire.png differ diff --git a/basic_materials/textures/basic_materials_carbon_steel_bar.png b/basic_materials/textures/basic_materials_carbon_steel_bar.png new file mode 100644 index 0000000..a8c3531 Binary files /dev/null and b/basic_materials/textures/basic_materials_carbon_steel_bar.png differ diff --git a/basic_materials/textures/basic_materials_gold_strip.png b/basic_materials/textures/basic_materials_gold_strip.png new file mode 100644 index 0000000..9fe97a2 Binary files /dev/null and b/basic_materials/textures/basic_materials_gold_strip.png differ diff --git a/basic_materials/textures/basic_materials_lead_strip.png b/basic_materials/textures/basic_materials_lead_strip.png new file mode 100644 index 0000000..675933f Binary files /dev/null and b/basic_materials/textures/basic_materials_lead_strip.png differ diff --git a/basic_materials/textures/basic_materials_stainless_steel_bar.png b/basic_materials/textures/basic_materials_stainless_steel_bar.png new file mode 100644 index 0000000..7f7425e Binary files /dev/null and b/basic_materials/textures/basic_materials_stainless_steel_bar.png differ diff --git a/basic_materials/textures/basic_materials_stainless_steel_strip.png b/basic_materials/textures/basic_materials_stainless_steel_strip.png new file mode 100644 index 0000000..3a33146 Binary files /dev/null and b/basic_materials/textures/basic_materials_stainless_steel_strip.png differ diff --git a/basic_materials/textures/basic_materials_stainless_steel_wire.png b/basic_materials/textures/basic_materials_stainless_steel_wire.png new file mode 100644 index 0000000..2429bae Binary files /dev/null and b/basic_materials/textures/basic_materials_stainless_steel_wire.png differ