1
0
mirror of https://github.com/mt-mods/basic_materials.git synced 2025-06-29 22:50:34 +02:00

1 Commits

8 changed files with 177 additions and 150 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "sound_api_core"]
path = sound_api_core
url = https://github.com/mt-mods/sound_api_core.git

View File

@ -1,7 +1,7 @@
globals = {
"minetest", "basic_materials", "crafting",
"minetest", "basic_materials",
}
read_globals = {
"default", "xcompat",
"default",
}

View File

@ -20,4 +20,11 @@ mod that adds basic material nodes and items
### Option 3: use git
* `git clone https://github.com/mt-mods/basic_materials.git`
* `cd basic_materials`
* `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`

View File

@ -1,45 +1,118 @@
local materials = xcompat.materials
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("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({
minetest.register_craft({
output = "basic_materials:chainlink_brass 12",
recipe = {
{"", "basic_materials:brass_ingot", "basic_materials:brass_ingot"},
@ -48,7 +121,7 @@ register_craft({
},
})
register_craft({
minetest.register_craft({
output = "basic_materials:chain_steel 2",
recipe = {
{"basic_materials:chainlink_steel"},
@ -57,7 +130,7 @@ register_craft({
}
})
register_craft({
minetest.register_craft({
output = "basic_materials:chain_brass 2",
recipe = {
{"basic_materials:chainlink_brass"},
@ -66,13 +139,13 @@ register_craft({
}
})
register_craft( {
minetest.register_craft( {
type = "shapeless",
output = "basic_materials:brass_ingot 9",
recipe = {"basic_materials:brass_block"},
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:brass_block",
recipe = {
{"basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot"},
@ -81,14 +154,14 @@ register_craft( {
},
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:plastic_strip 9",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"}
},
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:empty_spool 3",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"},
@ -99,12 +172,12 @@ register_craft( {
if have_hades_materials then
minetest.clear_craft({
type = "shapeless",
recipe = {"group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves"}
type = "shapeless",
recipe = {"group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves"}
})
end
register_craft({
minetest.register_craft({
type = "shapeless",
output = "basic_materials:oil_extract 2",
recipe = {"group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves"}
@ -113,9 +186,9 @@ register_craft({
-- Cooking recipes
if not have_hades_materials then
minetest.register_craft({
type = "cooking",
output = "basic_materials:plastic_sheet",
recipe = "basic_materials:paraffin",
type = "cooking",
output = "basic_materials:plastic_sheet",
recipe = "basic_materials:paraffin",
})
end
@ -151,7 +224,7 @@ minetest.register_craft({
burntime = 30,
})
register_craft({
minetest.register_craft({
output = "basic_materials:concrete_block 6",
recipe = {
{"group:sand", "basic_materials:wet_cement", materials.gravel},
@ -160,7 +233,7 @@ register_craft({
}
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:motor 2",
recipe = {
{materials.mese_crystal_fragment, "basic_materials:copper_wire", "basic_materials:plastic_sheet"},
@ -173,14 +246,14 @@ register_craft( {
}
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:heating_element 2",
recipe = {
{materials.copper_ingot, materials.mese_crystal_fragment, materials.copper_ingot}
},
})
register_craft({
minetest.register_craft({
--type = "shapeless",
output = "basic_materials:energy_crystal_simple 2",
recipe = {
@ -189,7 +262,7 @@ register_craft({
},
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:copper_wire 2",
type = "shapeless",
recipe = {
@ -199,7 +272,7 @@ register_craft( {
},
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:gold_wire 2",
type = "shapeless",
recipe = {
@ -209,7 +282,7 @@ register_craft( {
},
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:steel_wire 2",
type = "shapeless",
recipe = {
@ -220,7 +293,7 @@ register_craft( {
})
if materials.stainless_steel_ingot then
register_craft( {
minetest.register_craft( {
output = "basic_materials:stainless_steel_wire 2",
type = "shapeless",
recipe = {
@ -232,7 +305,7 @@ if materials.stainless_steel_ingot then
end
if materials.aluminum_ingot then
register_craft( {
minetest.register_craft( {
output = "basic_materials:aluminum_wire 2",
type = "shapeless",
recipe = {
@ -243,7 +316,7 @@ if materials.aluminum_ingot then
})
end
register_craft( {
minetest.register_craft( {
output = "basic_materials:steel_strip 12",
recipe = {
{"", materials.steel_ingot, ""},
@ -251,7 +324,7 @@ register_craft( {
},
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:copper_strip 12",
recipe = {
{"", materials.copper_ingot, ""},
@ -259,7 +332,7 @@ register_craft( {
},
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:gold_strip 12",
recipe = {
{"", materials.gold_ingot, ""},
@ -268,7 +341,7 @@ register_craft( {
})
if materials.lead_ingot then
register_craft( {
minetest.register_craft( {
output = "basic_materials:lead_strip 12",
recipe = {
{"", materials.lead_ingot, ""},
@ -278,7 +351,7 @@ if materials.lead_ingot then
end
if materials.stainless_steel_ingot then
register_craft( {
minetest.register_craft( {
output = "basic_materials:stainless_steel_strip 12",
recipe = {
{"", materials.stainless_steel_ingot, ""},
@ -288,7 +361,7 @@ if materials.stainless_steel_ingot then
end
if materials.aluminum_ingot then
register_craft( {
minetest.register_craft( {
output = "basic_materials:aluminum_strip 12",
recipe = {
{"", materials.aluminum_ingot, ""},
@ -297,7 +370,7 @@ if materials.aluminum_ingot then
})
end
register_craft( {
minetest.register_craft( {
output = "basic_materials:steel_bar 6",
recipe = {
{"", "", materials.steel_ingot},
@ -307,7 +380,7 @@ register_craft( {
})
if materials.carbon_steel_ingot then
register_craft( {
minetest.register_craft( {
output = "basic_materials:carbon_steel_bar 6",
recipe = {
{"", "", materials.carbon_steel_ingot},
@ -318,7 +391,7 @@ if materials.carbon_steel_ingot then
end
if materials.stainless_steel_ingot then
register_craft( {
minetest.register_craft( {
output = "basic_materials:stainless_steel_bar 6",
recipe = {
{"", "", materials.stainless_steel_ingot},
@ -329,7 +402,7 @@ if materials.stainless_steel_ingot then
end
if materials.aluminum_ingot then
register_craft( {
minetest.register_craft( {
output = "basic_materials:aluminum_bar 6",
recipe = {
{"", "", materials.aluminum_ingot},
@ -339,7 +412,7 @@ if materials.aluminum_ingot then
})
end
register_craft( {
minetest.register_craft( {
output = "basic_materials:padlock 2",
recipe = {
{"basic_materials:steel_bar"},
@ -348,7 +421,7 @@ register_craft( {
},
})
register_craft({
minetest.register_craft({
output = "basic_materials:chainlink_steel 12",
recipe = {
{"", materials.steel_ingot, materials.steel_ingot},
@ -357,7 +430,7 @@ register_craft({
},
})
register_craft( {
minetest.register_craft( {
output = "basic_materials:gear_steel 6",
recipe = {
{"", materials.steel_ingot, ""},
@ -366,7 +439,7 @@ register_craft( {
},
})
register_craft( {
minetest.register_craft( {
type = "shapeless",
output = "basic_materials:terracotta_base 8",
recipe = {
@ -377,7 +450,7 @@ register_craft( {
replacements = {{materials.water_bucket, materials.empty_bucket}},
})
register_craft({
minetest.register_craft({
type = "shapeless",
output = "basic_materials:wet_cement 3",
recipe = {
@ -391,8 +464,8 @@ register_craft({
})
if not have_hades_materials then
register_craft( {
output = "basic_materials:silicon 4",
minetest.register_craft( {
output = materials.silicon.." 4",
recipe = {
{materials.sand, materials.sand},
{materials.sand, materials.steel_ingot},
@ -400,16 +473,16 @@ if not have_hades_materials then
})
end
register_craft( {
minetest.register_craft( {
output = "basic_materials:ic 4",
recipe = {
{"basic_materials:silicon", "basic_materials:silicon"},
{"basic_materials:silicon", materials.copper_ingot},
{materials.silicon, materials.silicon},
{materials.silicon, materials.copper_ingot},
},
})
-- Without moreores, there still should be a way to create brass.
register_craft( {
minetest.register_craft( {
output = "basic_materials:brass_ingot 9",
recipe = {
{materials.copper_ingot, materials.tin_ingot, materials.copper_ingot},
@ -419,7 +492,7 @@ register_craft( {
})
if materials.silver_ingot then
register_craft( {
minetest.register_craft( {
output = "basic_materials:silver_wire 2",
type = "shapeless",
recipe = {
@ -429,7 +502,7 @@ if materials.silver_ingot then
},
})
register_craft( {
minetest.register_craft( {
type = "shapeless",
output = "basic_materials:brass_ingot 3",
recipe = {

View File

@ -1,48 +0,0 @@
# textdomain: basic_materials
Basic Materials and items=Базові матеріали та предмети
Provides a small selection of "basic" materials and items that other mods should use when possible -- things like steel bars and chains, wire, plastic strips and sheets, and more.=Пропонує обмежений набір "основних" матеріалів та виробів, які іншим модам рекомендується використовувати, де це доречно — наприклад, сталеві бруски та ланцюги, дріт, пластикові стрічки та листи, тощо.
Silicon lump=Шмат Кремнію
Simple Integrated Circuit=Мікросхема
Simple Motor=Двигун
Heating element=Нагрівальний елемент
Simple energy crystal=Енергетичний кристал
Gold Strip=Золота смужка
Lead Strip=Свинцева смужка
Aluminum Strip=Алюмінієва смужка
Aluminum Bar=Алюмінієвий брусок
Spool of aluminum wire=Котушка алюмінієвого дроту
Carbon Steel Bar=Брусок вуглецевої сталі
Stainless Steel Bar=Брусок нержавіючої сталі
Spool of stainless steel wire=Котушка дроту з нержавіючої сталі
Stainless Steel Strip=Смужка з нержавіючої сталі
Spool of steel wire=Катушка сталевої проволки
Spool of copper wire=Катушка мідної проволки
Spool of silver wire=Катушка срібної проволки
Spool of gold wire=Катушка золотої проволки
Steel Strip=Сталева стрічка
Copper Strip=Мідна стрічка
Steel Bar=Сталевий Прут
Chainlinks (brass)=Латунний ланцюг
Chainlinks (steel)=Сталевий ланцюг
Brass Ingot=Латунний злиток
Steel gear=Сталева шестерня
Padlock=Навісний замок
Chain (steel, hanging)=Ланцюг (сталевий, підвісний)
Chain (brass, hanging)=Ланцюг (латунь, підвісна)
Brass Block=Латунний блок
Oil extract=Олійний екстракт
Unprocessed paraffin=Необроблений парафін
Uncooked Terracotta Base=Сира теракотова основа
Wet Cement=Мокрий цемент
Cement=Цемент
Concrete Block=Бетонний блок
Plastic sheet=Лист пластику
Plastic strips=Стрічка пластику
Empty wire spool=Порожня катушка

View File

@ -1,4 +1,3 @@
name = basic_materials
depends = xcompat
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, mcl_core, mcl_copper
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
min_minetest_version = 5.2.0

View File

@ -1,22 +1,19 @@
local S = minetest.get_translator("basic_materials")
local sound_api = xcompat.sounds
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 = false,
groups = {cracky=2, dig_stone = 1, pickaxey=5},
_mcl_hardness=1.6,
is_ground_content = true,
groups = {cracky=2, dig_stone = 1},
sounds = sound_api.node_sound_stone_defaults(),
})
minetest.register_node("basic_materials:concrete_block", {
description = S("Concrete Block"),
tiles = {"basic_materials_concrete_block.png",},
is_ground_content = false,
groups = {cracky=1, concrete=1, dig_stone = 1, pickaxey=5},
_mcl_hardness=1.6,
groups = {cracky=1, concrete=1, dig_stone = 1},
sounds = sound_api.node_sound_stone_defaults(),
})
@ -30,9 +27,7 @@ minetest.register_node("basic_materials:chain_steel", {
sunlight_propagates = true,
paramtype = "light",
inventory_image = "basic_materials_chain_steel_inv.png",
is_ground_content = false,
groups = {cracky=3, dig_stone = 1, pickaxey=5},
_mcl_hardness=1.6,
groups = {cracky=3, dig_stone = 1},
selection_box = chains_sbox,
})
@ -46,9 +41,7 @@ minetest.register_node("basic_materials:chain_brass", {
sunlight_propagates = true,
paramtype = "light",
inventory_image = "basic_materials_chain_brass_inv.png",
is_ground_content = false,
groups = {cracky=3, dig_stone = 1, pickaxey=5},
_mcl_hardness=1.6,
groups = {cracky=3, dig_stone = 1},
selection_box = chains_sbox,
})
@ -56,7 +49,6 @@ 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,
groups = {cracky=1, dig_stone = 1},
sounds = sound_api.node_sound_metal_defaults()
})

1
sound_api_core Submodule

Submodule sound_api_core added at 6956e49e77