Add mods: technic, moreores, paintings, Nyancat (Pbj_pup). Small fix: sandwiches

This commit is contained in:
N-Nachtigal 2025-06-05 16:15:56 +02:00
parent 15e8e696a2
commit fb09deddc1
1404 changed files with 156555 additions and 211 deletions

View file

@ -0,0 +1,16 @@
technic.config = technic.config or Settings(minetest.get_worldpath().."/technic.conf")
local conf_table = technic.config:to_table()
local defaults = {
enable_granite_generation = "true",
enable_marble_generation = "true",
enable_rubber_tree_generation = "true",
enable_steel_override = "true",
}
for k, v in pairs(defaults) do
if conf_table[k] == nil then
technic.config:set(k, v)
end
end

View file

@ -0,0 +1,166 @@
local S = minetest.get_translator("technic_worldgen")
local has_mcl = minetest.get_modpath("mcl_core")
minetest.register_craftitem(":technic:uranium_lump", {
description = S("Uranium Lump"),
inventory_image = "technic_uranium_lump.png",
})
minetest.register_craftitem(":technic:uranium_ingot", {
description = S("Uranium Ingot"),
inventory_image = "technic_uranium_ingot.png",
groups = {uranium_ingot = 1},
})
minetest.register_craftitem(":technic:chromium_lump", {
description = S("Chromium Lump"),
inventory_image = "technic_chromium_lump.png",
})
minetest.register_craftitem(":technic:chromium_ingot", {
description = S("Chromium Ingot"),
inventory_image = "technic_chromium_ingot.png",
})
minetest.register_craftitem(":technic:zinc_lump", {
description = S("Zinc Lump"),
inventory_image = "technic_zinc_lump.png",
})
minetest.register_craftitem(":technic:zinc_ingot", {
description = S("Zinc Ingot"),
inventory_image = "technic_zinc_ingot.png",
})
minetest.register_craftitem(":technic:lead_lump", {
description = S("Lead Lump"),
inventory_image = "technic_lead_lump.png",
})
minetest.register_craftitem(":technic:lead_ingot", {
description = S("Lead Ingot"),
inventory_image = "technic_lead_ingot.png",
})
minetest.register_craftitem(":technic:sulfur_lump", {
description = S("Sulfur Lump"),
inventory_image = "technic_sulfur_lump.png",
})
minetest.register_craftitem(":technic:cast_iron_ingot", {
description = S("Cast Iron Ingot"),
inventory_image = "technic_cast_iron_ingot.png",
})
minetest.register_craftitem(":technic:carbon_steel_ingot", {
description = S("Carbon Steel Ingot"),
inventory_image = "technic_carbon_steel_ingot.png",
})
minetest.register_craftitem(":technic:stainless_steel_ingot", {
description = S("Stainless Steel Ingot"),
inventory_image = "technic_stainless_steel_ingot.png",
})
local blocks = {
["uranium"] = "ingot",
["chromium"] = "ingot",
["zinc"] = "ingot",
["lead"] = "ingot",
["cast_iron"] = "ingot",
["carbon_steel"] = "ingot",
["stainless_steel"] = "ingot",
["sulfur"] = "lump",
}
for material, form in pairs(blocks) do
local block = "technic:"..material.."_block"
local item = "technic:"..material.."_"..form
minetest.register_craft({
output = block,
recipe = {
{item, item, item},
{item, item, item},
{item, item, item},
}
})
minetest.register_craft({
output = item.." 9",
recipe = {{block}}
})
end
minetest.register_craft({
type = "cooking",
recipe = "technic:zinc_lump",
output = "technic:zinc_ingot",
})
minetest.register_craft({
type = "cooking",
recipe = "technic:chromium_lump",
output = "technic:chromium_ingot",
})
minetest.register_craft({
type = "cooking",
recipe = "technic:uranium_lump",
output = "technic:uranium_ingot",
})
minetest.register_craft({
type = "cooking",
recipe = "technic:lead_lump",
output = "technic:lead_ingot",
})
minetest.register_craft({
type = "cooking",
recipe = has_mcl and "mcl_core:iron_ingot" or "default:steel_ingot",
output = "technic:cast_iron_ingot",
})
minetest.register_craft({
type = "cooking",
recipe = "technic:cast_iron_ingot",
cooktime = 2,
output = "technic:wrought_iron_ingot",
})
minetest.register_craft({
type = "cooking",
recipe = "technic:carbon_steel_ingot",
cooktime = 2,
output = "technic:wrought_iron_ingot",
})
if not minetest.get_modpath("underch") then
minetest.register_craft({
output = "technic:marble_bricks 4",
recipe = {
{"technic:marble","technic:marble"},
{"technic:marble","technic:marble"}
}
})
end
minetest.register_craft({
output = "technic:granite_bricks 4",
recipe = {
{"technic:granite","technic:granite"},
{"technic:granite","technic:granite"}
}
})
minetest.register_craft({
output = "technic:blast_resistant_concrete 5",
recipe = {
{"basic_materials:concrete_block", "technic:composite_plate", "basic_materials:concrete_block"},
{"technic:composite_plate", "basic_materials:concrete_block", "technic:composite_plate"},
{"basic_materials:concrete_block", "technic:composite_plate", "basic_materials:concrete_block"},
}
})

View file

@ -0,0 +1,52 @@
local modpath = minetest.get_modpath("technic_worldgen")
technic = rawget(_G, "technic") or {}
technic.sounds = {}
if minetest.get_modpath("default") then
technic.sounds = default
end
if minetest.get_modpath("mcl_sounds") then
technic.sounds = mcl_sounds
end
dofile(modpath.."/config.lua")
dofile(modpath.."/nodes.lua")
dofile(modpath.."/oregen.lua")
dofile(modpath.."/crafts.lua")
if minetest.get_modpath("default") and technic.config:get_bool("enable_steel_override") then
dofile(modpath.."/overrides.lua")
end
-- Rubber trees, moretrees also supplies these
if not minetest.get_modpath("moretrees") then
dofile(modpath.."/rubber.lua")
else
-- Older versions of technic provided rubber trees regardless
minetest.register_alias("technic:rubber_sapling", "moretrees:rubber_tree_sapling")
minetest.register_alias("technic:rubber_tree_empty", "moretrees:rubber_tree_trunk_empty")
end
-- mg suppport
if minetest.get_modpath("mg") then
dofile(modpath.."/mg.lua")
end
minetest.register_alias("technic:uranium", "technic:uranium_lump")
if minetest.get_modpath("default") then
minetest.register_alias("technic:wrought_iron_ingot", "default:steel_ingot")
minetest.register_alias("technic:wrought_iron_block", "default:steelblock")
minetest.register_alias("technic:diamond_block", "default:diamondblock")
minetest.register_alias("technic:diamond", "default:diamond")
minetest.register_alias("technic:mineral_diamond", "default:stone_with_diamond")
end
if minetest.get_modpath("mcl_core") then
minetest.register_alias("technic:wrought_iron_ingot", "mcl_core:iron_ingot")
minetest.register_alias("technic:wrought_iron_block", "mcl_core:ironblock")
minetest.register_alias("technic:diamond_block", "mcl_core:diamondblock")
minetest.register_alias("technic:diamond", "mcl_core:diamond")
minetest.register_alias("technic:mineral_diamond", "mcl_core:stone_with_diamond")
end

View file

@ -0,0 +1,51 @@
# textdomain: technic_worldgen
# German Translation for technic_worldgen
# Deutsche Übersetzung von technic_worldgen
# by Xanthin
## crafts.lua
Uranium Lump=Uranklumpen
Uranium Ingot=Uranbarren
Chromium Lump=Chromklumpen
Chromium Ingot=Chrombarren
Zinc Lump=Zinkklumpen
Zinc Ingot=Zinkbarren
Brass Ingot=Messingbarren
Wrought Iron Ingot=Schmiedeeisenbarren
Cast Iron Ingot=Gusseisenbarren
Carbon Steel Ingot=Kohlenstoffstahlbarren
Stainless Steel Ingot=Edelstahlbarren
Iron=Eisen
## nodes.lua
Uranium Ore=Uranerz
Chromium Ore=Chromerz
Zinc Ore=Zinkerz
Granite=Granit
Marble=Marmor
Marble Bricks=Marmorziegel
Uranium Block=Uranblock
Chromium Block=Chromblock
Zinc Block=Zinkblock
Wrought Iron Block=Schmiedeeisenblock
Cast Iron Block=Gusseisenblock
Carbon Steel Block=Kohlenstoffstahlblock
Stainless Steel Block=Edelstahlblock
Brass Block=Messingblock
Wrought Iron=Schmiedeeisen
Blast-resistant Concrete Block=Explosionsbestaendiger Betonblock
## rubber.lua
Rubber Tree Sapling=Gummibaumsetzling
Rubber Tree=Gummibaum
Lead Lump=Bleiklumpen
Lead Ingot=Bleibarren
Sulfur Lump=Schwefelklumpen
Rubber Tree Leaves=Gummibaumblätter
Lead Ore=Bleierz
Sulfur Ore=Schwefelerz
Granite Bricks=Granitblock
Lead Block=Bleibblock
Sulfur Block=Schwefelblock

View file

@ -0,0 +1,48 @@
# textdomain: technic_worldgen
# technic_worldgen traducido por Carlos Barraza
###crafts.lua
Uranium Lump=Pepita de Uranio
Uranium Ingot=Lingote de Uranio
Chromium Lump=Pepita de Cromo
Chromium Ingot=Lingote de Cromo
Zinc Lump=Pepita de Zinc
Zinc Ingot=Lingote de Zinc
Brass Ingot=Lingote de Latón
Wrought Iron Ingot=Lingote de Hierro Forjado
Cast Iron Ingot=Lingote de Hierro Fundido
Carbon Steel Ingot=Lingote de Acero al Carbon
Stainless Steel Ingot=Lingote de Acero inoxidable
Iron=Lingote
###nodes.lua
Uranium Ore=Mineral de Uranio
Chromium Ore=Mineral de Cromo
Zinc Ore=Mineral de Zinc
Granite=Granito
Marble=Mármol
Marble Bricks=Ladrillos de Mármol
Uranium Block=Bloque de Uranio
Chromium Block=Bloque de Cromo
Zinc Block=Bloque de Zinc
Wrought Iron Block=Bloque de Hierro Forjado
Cast Iron Block=Bloque de Hierro Fundido
Carbon Steel Block=Bloque de Acero al Carbon
Stainless Steel Block=Bloque de Acero Inoxidable
Brass Block=Bloque de Latón
Wrought Iron=Hierro Forjado
Blast-resistant Concrete Block=Bloque de concreto resistente a explosiones
###rubber.lua
Rubber Tree Sapling=Retoño de Árbol de Goma
Rubber Tree=Árbol de Goma
Lead Lump=
Lead Ingot=
Sulfur Lump=
Rubber Tree Leaves=
Lead Ore=
Sulfur Ore=
Granite Bricks=
Lead Block=
Sulfur Block=

View file

@ -0,0 +1,49 @@
# textdomain: technic_worldgen
# template.txt
# technic_worldgen translation template
###crafts.lua
Uranium Lump=Morceau d'uranium
Uranium Ingot=Lingot d'uranium
Chromium Lump=Morceau de chrome
Chromium Ingot=Lingot de chrome
Zinc Lump=Morceau de zinc
Zinc Ingot=Lingot de zinc
Brass Ingot=Lingot de laiton
Wrought Iron Ingot=Lingot de fer forgé
Cast Iron Ingot=Lingot de fonte
Carbon Steel Ingot=Lingot d'acier au carbone
Stainless Steel Ingot=Lingot d'acier inoxydable
Iron=Fer
###nodes.lua
Uranium Ore=Minerai d'uranium
Chromium Ore=Minerai de chrome
Zinc Ore=Minerai de zinc
Granite=Granite
Marble=Marbre
Marble Bricks=Briques en marbre
Uranium Block=Bloc d'uranium
Chromium Block=Bloc de chrome
Zinc Block=Bloc de zinc
Wrought Iron Block=Bloc de fer forgé
Cast Iron Block=Bloc de fonte
Carbon Steel Block=Bloc d'acier au carbone
Stainless Steel Block=Bloc d'acier inoxydable
Brass Block=Bloc de laiton
Wrought Iron=Fer forgé
Blast-resistant Concrete Block=Bloc de béton anti explosions
###rubber.lua
Rubber Tree Sapling=Pousse d'arbre à caoutchouc
Rubber Tree=Arbre à caoutchouc
Lead Lump=
Lead Ingot=
Sulfur Lump=
Rubber Tree Leaves=
Lead Ore=
Sulfur Ore=
Granite Bricks=
Lead Block=
Sulfur Block=

View file

@ -0,0 +1,48 @@
# textdomain: technic_worldgen
# technic_worldgen japanese translation
###crafts.lua
Uranium Lump=
Uranium Ingot=
Chromium Lump=
Chromium Ingot=
Zinc Lump=
Zinc Ingot=
Brass Ingot=
Wrought Iron Ingot=
Cast Iron Ingot=
Carbon Steel Ingot=
Stainless Steel Ingot=
Iron=
###nodes.lua
Uranium Ore=
Chromium Ore=
Zinc Ore=
Granite=
Marble=
Marble Bricks=
Uranium Block=
Chromium Block=
Zinc Block=
Wrought Iron Block=
Cast Iron Block=
Carbon Steel Block=
Stainless Steel Block=
Brass Block=
Wrought Iron=
Blast-resistant Concrete Block=耐爆性コンクリートのブロック
###rubber.lua
Rubber Tree Sapling=
Rubber Tree=
Lead Lump=
Lead Ingot=
Sulfur Lump=
Rubber Tree Leaves=
Lead Ore=
Sulfur Ore=
Granite Bricks=
Lead Block=
Sulfur Block=

View file

@ -0,0 +1,50 @@
# textdomain: technic_worldgen
# Polish Translation for technic_worldgen
# Polskie tłumaczenie technic_worldgen
# by mat9117
###crafts.lua
Uranium Lump=Bryłka uranu
Uranium Ingot=Sztabka uranu
Chromium Lump=Bryłka chromu
Chromium Ingot=Sztabka chromu
Zinc Lump=Bryłka cynku
Zinc Ingot=Sztabka cynku
Brass Ingot=Sztabka mosiądzu
Wrought Iron Ingot=Sztabka kutego żelaza
Cast Iron Ingot=Sztabka żelaziwa
Carbon Steel Ingot=Sztabka stali węglowej
Stainless Steel Ingot=Sztabka nierdzewnej stali
Iron=Żelazo
###nodes.lua
Uranium Ore=Ruda uranu
Chromium Ore=Ruda chromu
Zinc Ore=Ruda cynku
Granite=Granit
Marble=Marmur
Marble Bricks=Marmurowe cegły
Uranium Block=Blok uranu
Chromium Block=Blok chromu
Zinc Block=Blok cynku
Wrought Iron Block=Blok kutego żelaza
Cast Iron Block=Blok żelaziwa
Carbon Steel Block=Blok stali węglowej
Stainless Steel Block=Blok stali nierdzewnej
Brass Block=Blok mosiądzu
Wrought Iron=Kute żelazo
Blast-resistant Concrete Block=Przeciwwybuchowy blok betonu
###rubber.lua
Rubber Tree Sapling=Sadzonka kauczukowca
Rubber Tree=Kauczukowiec
Lead Lump=
Lead Ingot=
Sulfur Lump=
Rubber Tree Leaves=
Lead Ore=
Sulfur Ore=
Granite Bricks=
Lead Block=
Sulfur Block=

View file

@ -0,0 +1,50 @@
# textdomain: technic_worldgen
# Braziliam portuguese translation for technic_worldgen
# Tradução portuguesa brasileira para technic_worldgen
# By Sires
###crafts.lua
Uranium Lump=Pedaço de Urânio
Uranium Ingot=Lingote de Urânio
Chromium Lump=Pedaço de Crômio
Chromium Ingot=Lingote de Crômio
Zinc Lump=Pedaço de Zinco
Zinc Ingot=Lingote de Zinco
Brass Ingot=Lingote de Latão
Wrought Iron Ingot=Lingote de Ferro Forjado
Cast Iron Ingot=Lingote de Ferro Fundido
Carbon Steel Ingot=Lingote de Aço Carbono
Stainless Steel Ingot=Lingote de Ferro Inoxidável
Iron=Ferro
###nodes.lua
Uranium Ore=Minério de Urânio
Chromium Ore=Minério de Crômio
Zinc Ore=Minério de Zinco
Granite=Granito
Marble=Mármore
Marble Bricks=Tijolos de Mármore
Uranium Block=Bloco de Urânio
Chromium Block=Bloco de Crômio
Zinc Block=Bloco de Zinco
Wrought Iron Block=Bloco de Ferro Forjado
Cast Iron Block=Bloco de Ferro Fundido
Carbon Steel Block=Bloco de Aço Carbono
Stainless Steel Block=Bloco de Aço Inoxidável
Brass Block=Bloco de Latão
Wrought Iron=Ferro Forjado
Blast-resistant Concrete Block=Bloco de Concreto resistente-a-explosões
###rubber.lua
Rubber Tree Sapling=Muda de Árvore de Borracha
Rubber Tree=Árvore de Borracha
Lead Lump=
Lead Ingot=
Sulfur Lump=
Rubber Tree Leaves=
Lead Ore=
Sulfur Ore=
Granite Bricks=
Lead Block=
Sulfur Block=

View file

@ -0,0 +1,50 @@
# textdomain: technic_worldgen
# Turkish translation
# mahmutelmas06@hotmail.com
# Türkçe çeviri
###crafts.lua
Uranium Lump=Uranyum yığını
Uranium Ingot=Uranyum külçesi
Chromium Lump=Krom yığını
Chromium Ingot=Krom külçesi
Zinc Lump=Çinko yığını
Zinc Ingot=Çünko külçesi
Brass Ingot=Pirinç yığını
Wrought Iron Ingot=İşlenmiş demir yığını
Cast Iron Ingot=Döküm demir yığını
Carbon Steel Ingot=Karbon çelik külçe
Stainless Steel Ingot=Paslanmaz çelik külçe
Iron=Demir
###nodes.lua
Uranium Ore=Uranyum madeni
Chromium Ore=Krom madeni
Zinc Ore=Çinko madeni
Granite=Granit
Marble=Mermer
Marble Bricks=Mermer tuğla
Uranium Block=Uranyum blok
Chromium Block=Karbon blok
Zinc Block=Çinko blok
Wrought Iron Block=İşlenmiş demir blok
Cast Iron Block=Döküm demir blok
Carbon Steel Block=Karbon çelik blok
Stainless Steel Block=Paslanmaz çelik blok
Brass Block=Pirinç blok
Wrought Iron=İşlenmiş demir
Blast-resistant Concrete Block=Patlamaya dayanıklı beton blok
###rubber.lua
Rubber Tree Sapling=Kauçuk ağacı fidanı
Rubber Tree=Kauçuk ağacı
Lead Lump=
Lead Ingot=
Sulfur Lump=
Rubber Tree Leaves=
Lead Ore=
Sulfur Ore=
Granite Bricks=
Lead Block=
Sulfur Block=

View file

@ -0,0 +1,42 @@
# textdomain: technic_worldgen
# Author: wzy2006 <3450354617@qq.com>
Uranium Lump=铀粒
Uranium Ingot=铀锭
Chromium Lump=铬粒
Chromium Ingot=铬锭
Zinc Lump=锌粒
Zinc Ingot=锌锭
Brass Ingot=黄铜锭
Wrought Iron Ingot=熟铁锭
Cast Iron Ingot=铸铁锭
Carbon Steel Ingot=碳钢锭
Stainless Steel Ingot=不锈钢锭
Iron=铁
Uranium Ore=铀矿石
Chromium Ore=铬矿
Zinc Ore=锌矿
Granite=花岗岩
Marble=大理石
Marble Bricks=大理石砖
Uranium Block=铀块
Chromium Block=铬块
Zinc Block=锌块
Wrought Iron Block=熟铁块
Cast Iron Block=铸铁块
Carbon Steel Block=碳钢块
Stainless Steel Block=不锈钢块
Brass Block=黄铜块
Wrought Iron=熟铁
Rubber Tree Sapling=橡胶树苗
Rubber Tree=橡胶树
Lead Lump=
Lead Ingot=
Sulfur Lump=
Rubber Tree Leaves=
Lead Ore=
Sulfur Ore=
Granite Bricks=
Lead Block=
Sulfur Block=
Blast-resistant Concrete Block=抗爆混凝土块

View file

@ -0,0 +1,49 @@
# textdomain: technic_worldgen
# template.txt
# technic_worldgen translation template
###crafts.lua
Uranium Lump=
Uranium Ingot=
Chromium Lump=
Chromium Ingot=
Zinc Lump=
Zinc Ingot=
Brass Ingot=
Wrought Iron Ingot=
Cast Iron Ingot=
Carbon Steel Ingot=
Stainless Steel Ingot=
Iron=
###nodes.lua
Uranium Ore=
Chromium Ore=
Zinc Ore=
Granite=
Marble=
Marble Bricks=
Uranium Block=
Chromium Block=
Zinc Block=
Wrought Iron Block=
Cast Iron Block=
Carbon Steel Block=
Stainless Steel Block=
Brass Block=
Wrought Iron=
Blast-resistant Concrete Block=
###rubber.lua
Rubber Tree Sapling=
Rubber Tree=
Lead Lump=
Lead Ingot=
Sulfur Lump=
Rubber Tree Leaves=
Lead Ore=
Sulfur Ore=
Granite Bricks=
Lead Block=
Sulfur Block=

View file

@ -0,0 +1,90 @@
mg.register_ore({
name = "technic:mineral_uranium",
wherein = "default:stone",
seeddiff = 11,
maxvdistance = 10.5,
maxheight = -80,
minheight = -300,
sizen = 20,
sizedev = 10,
seglenghtn = 3,
seglenghtdev = 1,
segincln = 0.4,
segincldev = 0.6,
turnangle = 57,
numperblock = 1,
fork_chance = 0
})
mg.register_ore({
name = "technic:mineral_chromium",
wherein = "default:stone",
seeddiff = 12,
maxvdistance = 10.5,
maxheight = -100,
sizen = 50,
sizedev = 20,
seglenghtn = 8,
seglenghtdev = 3,
segincln = 0,
segincldev = 0.6,
turnangle = 57,
forkturnangle = 57,
numperblock = 2
})
mg.register_ore({
name = "technic:mineral_zinc",
wherein = "default:stone",
seeddiff = 13,
maxvdistance = 10.5,
maxheight = 2,
seglenghtn = 15,
seglenghtdev = 6,
segincln = 0,
segincldev = 0.6,
turnangle = 57,
forkturnangle = 57,
numperblock = 2
})
mg.register_ore({
name = "technic:mineral_lead",
wherein = "default:stone",
seeddiff = 14,
maxvdistance = 10.5,
maxheight = 16,
seglenghtn = 15,
seglenghtdev = 6,
segincln = 0,
segincldev = 0.6,
turnangle = 57,
forkturnangle = 57,
numperblock = 3
})
if technic.config:get_bool("enable_granite_generation") then
mg.register_ore_sheet({
name = "technic:granite",
wherein = "default:stone",
height_min = -31000,
height_max = -150,
tmin = 3,
tmax = 6,
threshhold = 0.4,
noise_params = {offset=0, scale=15, spread={x=130, y=130, z=130}, seed=24, octaves=3, persist=0.70}
})
end
if technic.config:get_bool("enable_marble_generation") then
mg.register_ore_sheet({
name = "technic:marble",
wherein = "default:stone",
height_min = -31000,
height_max = -50,
tmin = 3,
tmax = 6,
threshhold = 0.4,
noise_params = {offset=0, scale=15, spread={x=130, y=130, z=130}, seed=23, octaves=3, persist=0.70}
})
end

View file

@ -0,0 +1,3 @@
name = technic_worldgen
depends =
optional_depends = default, mcl_core, mcl_sounds, mcl_init, mcl_worlds, mg, underch

View file

@ -0,0 +1,201 @@
local S = minetest.get_translator("technic_worldgen")
local has_mcl = minetest.get_modpath("mcl_core")
minetest.register_node(":technic:mineral_uranium", {
description = S("Uranium Ore"),
tiles = {"default_stone.png^technic_mineral_uranium.png"},
is_ground_content = true,
groups = {cracky=3, radioactive=1, pickaxey=1},
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults(),
drop = "technic:uranium_lump",
})
minetest.register_node(":technic:mineral_chromium", {
description = S("Chromium Ore"),
tiles = {"default_stone.png^technic_mineral_chromium.png"},
is_ground_content = true,
groups = {cracky=3, pickaxey=1},
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults(),
drop = "technic:chromium_lump",
})
minetest.register_node(":technic:mineral_zinc", {
description = S("Zinc Ore"),
tiles = {"default_stone.png^technic_mineral_zinc.png"},
is_ground_content = true,
groups = {cracky=3, pickaxey=1},
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults(),
drop = "technic:zinc_lump",
})
minetest.register_node(":technic:mineral_lead", {
description = S("Lead Ore"),
tiles = {"default_stone.png^technic_mineral_lead.png"},
is_ground_content = true,
groups = {cracky=3, pickaxey=1},
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults(),
drop = "technic:lead_lump",
})
minetest.register_node(":technic:mineral_sulfur", {
description = S("Sulfur Ore"),
tiles = {"default_stone.png^technic_mineral_sulfur.png"},
is_ground_content = true,
groups = {cracky=3, pickaxey=1},
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults(),
drop = "technic:sulfur_lump",
})
if has_mcl then
minetest.register_alias("technic:granite", "mcl_core:granite")
minetest.register_alias("technic:granite_bricks", "mcl_core:granite_smooth")
else
minetest.register_node(":technic:granite", {
description = S("Granite"),
tiles = {"technic_granite.png"},
is_ground_content = true,
groups = {cracky=1},
sounds = technic.sounds.node_sound_stone_defaults(),
})
minetest.register_node(":technic:granite_bricks", {
description = S("Granite Bricks"),
tiles = {"technic_granite_bricks.png"},
is_ground_content = false,
groups = {cracky=1},
sounds = technic.sounds.node_sound_stone_defaults(),
})
end
if minetest.get_modpath("underch") then
minetest.register_alias("technic:marble", "underch:marble")
minetest.register_alias("technic:marble_bricks", "underch:marble_brick")
else
minetest.register_node(":technic:marble", {
description = S("Marble"),
tiles = {"technic_marble.png"},
is_ground_content = true,
groups = {cracky=3, marble=1, pickaxey=1},
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults(),
})
minetest.register_node(":technic:marble_bricks", {
description = S("Marble Bricks"),
tiles = {"technic_marble_bricks.png"},
is_ground_content = false,
groups = {cracky=3, pickaxey=1},
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults(),
})
end
minetest.register_node(":technic:uranium_block", {
description = S("Uranium Block"),
tiles = {"technic_uranium_block.png"},
is_ground_content = false,
groups = {uranium_block=1, cracky=1, level=has_mcl and 0 or 2, radioactive=2, pickaxey=4},
_mcl_hardness = 1,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults()
})
minetest.register_node(":technic:chromium_block", {
description = S("Chromium Block"),
tiles = {"technic_chromium_block.png"},
is_ground_content = false,
groups = {cracky=1, level=has_mcl and 0 or 2, pickaxey=4},
_mcl_hardness = 1,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults()
})
minetest.register_node(":technic:zinc_block", {
description = S("Zinc Block"),
tiles = {"technic_zinc_block.png"},
is_ground_content = false,
groups = {cracky=1, level=has_mcl and 0 or 2, pickaxey=4},
_mcl_hardness = 1,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults()
})
minetest.register_node(":technic:lead_block", {
description = S("Lead Block"),
tiles = {"technic_lead_block.png"},
is_ground_content = false,
groups = {cracky=1, level=has_mcl and 0 or 2, pickaxey=4},
_mcl_hardness = 1,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults()
})
minetest.register_node(":technic:cast_iron_block", {
description = S("Cast Iron Block"),
tiles = {"technic_cast_iron_block.png"},
is_ground_content = false,
groups = {cracky=1, level=has_mcl and 0 or 2, pickaxey=4},
_mcl_hardness = 1,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults()
})
minetest.register_node(":technic:carbon_steel_block", {
description = S("Carbon Steel Block"),
tiles = {"technic_carbon_steel_block.png"},
is_ground_content = false,
groups = {cracky=1, level=has_mcl and 0 or 2, pickaxey=4},
_mcl_hardness = 1,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults()
})
minetest.register_node(":technic:stainless_steel_block", {
description = S("Stainless Steel Block"),
tiles = {"technic_stainless_steel_block.png"},
is_ground_content = false,
groups = {cracky=1, level=has_mcl and 0 or 2, pickaxey=4},
_mcl_hardness = 1,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults()
})
minetest.register_node(":technic:sulfur_block", {
description = S("Sulfur Block"),
tiles = {"technic_sulfur_block.png"},
is_ground_content = false,
groups = {cracky = 3, pickaxey=1, handy=1},
_mcl_hardness = 1,
_mcl_blast_resistance = 1,
sounds = technic.sounds.node_sound_stone_defaults()
})
minetest.register_node(":technic:blast_resistant_concrete", {
description = S("Blast-resistant Concrete Block"),
tiles = {"technic_blast_resistant_concrete_block.png"},
is_ground_content = false,
groups = {cracky = 1, level = has_mcl and 0 or 3, concrete = 1, pickaxey=5},
_mcl_hardness = 5,
_mcl_blast_resistance = 9,
sounds = technic.sounds.node_sound_stone_defaults(),
on_blast = function(pos, intensity)
if intensity > 9 then
minetest.remove_node(pos)
return {"technic:blast_resistant_concrete"}
end
end
})

View file

@ -0,0 +1,248 @@
local has_mcl = minetest.get_modpath("mcl_core")
local stones = {"default:stone", "mcl_core:stone", "mcl_deepslate:deepslate"}
local uranium_params = {
offset = 0,
scale = 1,
spread = {x = 100, y = 100, z = 100},
seed = 420,
octaves = 3,
persist = 0.7
}
local uranium_threshold = 0.55
local chromium_params = {
offset = 0,
scale = 1,
spread = {x = 100, y = 100, z = 100},
seed = 421,
octaves = 3,
persist = 0.7
}
local chromium_threshold = 0.55
local zinc_params = {
offset = 0,
scale = 1,
spread = {x = 100, y = 100, z = 100},
seed = 422,
octaves = 3,
persist = 0.7
}
local zinc_threshold = 0.5
local lead_params = {
offset = 0,
scale = 1,
spread = {x = 100, y = 100, z = 100},
seed = 423,
octaves = 3,
persist = 0.7
}
local lead_threshold = 0.3
minetest.register_ore({
ore_type = "scatter",
ore = "technic:mineral_uranium",
wherein = stones,
clust_scarcity = 8*8*8,
clust_num_ores = 4,
clust_size = 3,
y_min = has_mcl and mcl_vars.mg_overworld_min or -300,
y_max = has_mcl and mcl_worlds.layer_to_y(80) or -80,
noise_params = uranium_params,
noise_threshold = uranium_threshold,
})
minetest.register_ore({
ore_type = "scatter",
ore = "technic:mineral_chromium",
wherein = stones,
clust_scarcity = 8*8*8,
clust_num_ores = 2,
clust_size = 3,
y_min = has_mcl and mcl_vars.mg_overworld_min or -200,
y_max = has_mcl and mcl_worlds.layer_to_y(80) or -100,
noise_params = chromium_params,
noise_threshold = chromium_threshold,
})
minetest.register_ore({
ore_type = "scatter",
ore = "technic:mineral_chromium",
wherein = stones,
clust_scarcity = 6*6*6,
clust_num_ores = 2,
clust_size = 3,
y_min = has_mcl and mcl_vars.mg_overworld_min or -31000,
y_max = has_mcl and mcl_worlds.layer_to_y(80) or -200,
flags = "absheight",
noise_params = chromium_params,
noise_threshold = chromium_threshold,
})
minetest.register_ore({
ore_type = "scatter",
ore = "technic:mineral_zinc",
wherein = stones,
clust_scarcity = 8*8*8,
clust_num_ores = 5,
clust_size = 7,
y_min = -32,
y_max = 2,
noise_params = zinc_params,
noise_threshold = zinc_threshold,
})
minetest.register_ore({
ore_type = "scatter",
ore = "technic:mineral_zinc",
wherein = stones,
clust_scarcity = 6*6*6,
clust_num_ores = 4,
clust_size = 3,
y_min = has_mcl and mcl_vars.mg_overworld_min or -31000,
y_max = -32,
flags = "absheight",
noise_params = zinc_params,
noise_threshold = zinc_threshold,
})
minetest.register_ore({
ore_type = "scatter",
ore = "technic:mineral_lead",
wherein = stones,
clust_scarcity = 9*9*9,
clust_num_ores = 5,
clust_size = 3,
y_min = -16,
y_max = 16,
noise_params = lead_params,
noise_threshold = lead_threshold,
})
minetest.register_ore({
ore_type = "scatter",
ore = "technic:mineral_lead",
wherein = stones,
clust_scarcity = 8*8*8,
clust_num_ores = 5,
clust_size = 3,
y_min = has_mcl and mcl_vars.mg_overworld_min or -128,
y_max = -16,
noise_params = lead_params,
noise_threshold = lead_threshold,
})
minetest.register_ore({
ore_type = "scatter",
ore = "technic:mineral_lead",
wherein = stones,
clust_scarcity = 6*6*6,
clust_num_ores = 5,
clust_size = 3,
y_min = has_mcl and mcl_vars.mg_overworld_min or -31000,
y_max = has_mcl and mcl_worlds.layer_to_y(80) or -128,
flags = "absheight",
noise_params = lead_params,
noise_threshold = lead_threshold,
})
-- Sulfur
local sulfur_buf = {}
local sulfur_noise
minetest.register_on_generated(function(minp, maxp)
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
local a = VoxelArea:new({MinEdge=emin, MaxEdge=emax})
vm:get_data(sulfur_buf)
local pr = PseudoRandom(17 * minp.x + 42 * minp.y + 101 * minp.z)
sulfur_noise = sulfur_noise or minetest.get_perlin(9876, 3, 0.5, 100)
local lava = has_mcl and "mcl_core:lava_source" or "default:lava_source"
local lava_flowing = has_mcl and "mcl_core:lava_flowing" or "default:lava_flowing"
local stone = has_mcl and "mcl_core:stone" or "default:stone"
local c_lava = minetest.get_content_id(lava)
local c_lava_flowing = minetest.get_content_id(lava_flowing)
local c_stone = minetest.get_content_id(stone)
local c_sulfur = minetest.get_content_id("technic:mineral_sulfur")
local grid_size = 5
for x = minp.x + math.floor(grid_size / 2), maxp.x, grid_size do
for y = minp.y + math.floor(grid_size / 2), maxp.y, grid_size do
for z = minp.z + math.floor(grid_size / 2), maxp.z, grid_size do
local c = sulfur_buf[a:index(x, y, z)]
if (c == c_lava or c == c_lava_flowing)
and sulfur_noise:get3d({x = x, y = z, z = z}) >= 0.4 then
for i in a:iter(
math.max(minp.x, x - grid_size),
math.max(minp.y, y - grid_size),
math.max(minp.z, z - grid_size),
math.min(maxp.x, x + grid_size),
math.min(maxp.y, y + grid_size),
math.min(maxp.z, z + grid_size)
) do
if sulfur_buf[i] == c_stone and pr:next(1, 10) <= 7 then
sulfur_buf[i] = c_sulfur
end
end
end
end
end
end
vm:set_data(sulfur_buf)
vm:write_to_map(sulfur_buf)
end)
-- in MCL sulfur is generated in the nether
if has_mcl then
minetest.register_ore({
ore_type = "scatter",
ore = "technic:mineral_sulfur",
wherein = {"mcl_nether:netherrack", "mcl_blackstone:blackstone"},
clust_scarcity = 830,
clust_num_ores = 5,
clust_size = 3,
y_min = mcl_vars.mg_nether_min,
y_max = mcl_vars.mg_nether_max,
})
end
if technic.config:get_bool("enable_marble_generation")
and not minetest.get_modpath("underch") then
minetest.register_ore({
ore_type = "sheet",
ore = "technic:marble",
wherein = stones,
clust_scarcity = 1,
clust_num_ores = 1,
clust_size = 3,
y_min = has_mcl and mcl_vars.mg_overworld_min or -31000,
y_max = has_mcl and mcl_worlds.layer_to_y(80) or -50,
noise_threshold = 0.4,
noise_params = {
offset = 0, scale = 15, spread = {x = 150, y = 150, z = 150},
seed = 23, octaves = 3, persist = 0.70
}
})
end
if technic.config:get_bool("enable_granite_generation") and not has_mcl then
minetest.register_ore({
ore_type = "sheet",
ore = "technic:granite",
wherein = stones,
clust_scarcity = 1,
clust_num_ores = 1,
clust_size = 4,
y_min = -31000,
y_max = -150,
noise_threshold = 0.4,
noise_params = {
offset = 0, scale = 15, spread = {x = 130, y = 130, z = 130},
seed = 24, octaves = 3, persist = 0.70
}
})
end

View file

@ -0,0 +1,83 @@
local S = minetest.get_translator("technic_worldgen")
minetest.override_item("default:steel_ingot", {
description = S("Wrought Iron Ingot"),
-- Make the color of the ingot a bit darker to separate it better from tin
inventory_image = "technic_wrought_iron_ingot.png^[multiply:#bbbbbbff",
})
-- Override description and textures of "steel" items
local excluded_words = {
"[Cc]arbon",
"[Ss]tainless",
"[Ff]lint",
}
local function is_steel(name, desc)
name = name:gsub(".+:(.+)", "%1") -- Ignore mod name
if name:match("[Ss]teel") or desc:match("[Ss]teel") then
for _, word in pairs(excluded_words) do
if name:match(word) or desc:match(word) then
return false
end
end
return true
end
end
local function edit_desc(desc, old, new)
desc = desc:gsub(old, new)
desc = desc:gsub(old:lower(), new:lower())
return desc
end
local function replace_texture(tile)
local new_tile
if type(tile) == "string" then
new_tile = tile:gsub("default_steel_block.png", "technic_wrought_iron_block.png")
else
new_tile = {}
for k, v in pairs(tile) do
if k == "name" then
new_tile[k] = v:gsub("default_steel_block.png", "technic_wrought_iron_block.png")
else
new_tile[k] = v
end
end
end
return new_tile
end
local function do_override(name, def)
local desc = def.description
if not is_steel(name, desc) then
return
end
local override = {}
if name:find("steelblock") then
override.description = edit_desc(desc, "Steel", "Wrought Iron")
else
override.description = edit_desc(desc, "Steel", "Iron")
end
if def.tiles then
override.tiles = {}
for _, tile in ipairs(def.tiles) do
table.insert(override.tiles, replace_texture(tile))
end
end
if def.inventory_image then
override.inventory_image = replace_texture(def.inventory_image)
end
if def.wield_image then
override.wield_image = replace_texture(def.wield_image)
end
minetest.override_item(name, override)
end
minetest.register_on_mods_loaded(function()
for name, def in pairs(minetest.registered_items) do
do_override(name, def)
end
end)

View file

@ -0,0 +1,116 @@
-- Code of rubber tree by PilzAdam
local S = minetest.get_translator("technic_worldgen")
local has_mcl = minetest.get_modpath("mcl_core")
minetest.register_node(":moretrees:rubber_tree_sapling", {
description = S("Rubber Tree Sapling"),
drawtype = "plantlike",
tiles = {"technic_rubber_sapling.png"},
inventory_image = "technic_rubber_sapling.png",
wield_image = "technic_rubber_sapling.png",
paramtype = "light",
walkable = false,
groups = {dig_immediate=3, flammable=2, sapling=1},
sounds = technic.sounds.node_sound_defaults(),
})
minetest.register_craft({
type = "fuel",
recipe = "moretrees:rubber_tree_sapling",
burntime = 10
})
minetest.register_node(":moretrees:rubber_tree_trunk", {
description = S("Rubber Tree"),
tiles = {"default_tree_top.png", "default_tree_top.png",
"technic_rubber_tree_full.png"},
groups = {tree=1, snappy=1, choppy=2, oddly_breakable_by_hand=1,
flammable=2, axey=1, handy=1},
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
sounds = technic.sounds.node_sound_wood_defaults(),
})
minetest.register_node(":moretrees:rubber_tree_trunk_empty", {
description = S("Rubber Tree"),
tiles = {"default_tree_top.png", "default_tree_top.png",
"technic_rubber_tree_empty.png"},
groups = {tree=1, snappy=1, choppy=2, oddly_breakable_by_hand=1,
flammable=2, not_in_creative_inventory=1, axey=1, handy=1},
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
sounds = technic.sounds.node_sound_wood_defaults(),
})
local leaves_drop = {
max_items = 1,
items = {
{items = {"moretrees:rubber_tree_sapling"}, rarity = 20},
{items = {"moretrees:rubber_tree_leaves"}}
}
}
if has_mcl then
leaves_drop.items = {
{items = {"moretrees:rubber_tree_sapling"}, rarity = 20},
{items = {"mcl_core:stick 1"}, rarity = 30},
{items = {"mcl_core:stick 2"}, rarity = 40},
{items = {"mcl_core:apple"}, rarity = 50}
}
end
minetest.register_node(":moretrees:rubber_tree_leaves", {
drawtype = "allfaces_optional",
description = S("Rubber Tree Leaves"),
tiles = {"technic_rubber_leaves.png"},
paramtype = "light",
groups = {snappy=3, leafdecay=3, flammable=2, leaves=1, swordy=1, handy=1},
_mcl_blast_resistance = 0.2,
_mcl_hardness = 0.2,
_mcl_silk_touch_drop = true,
drop = leaves_drop,
sounds = technic.sounds.node_sound_leaves_defaults(),
})
technic.rubber_tree_model={
axiom = "FFFFA",
rules_a = "[&FFBFA]////[&BFFFA]////[&FBFFA]",
rules_b = "[&FFA]////[&FFA]////[&FFA]",
trunk = "moretrees:rubber_tree_trunk",
leaves = "moretrees:rubber_tree_leaves",
angle = 35,
iterations = 3,
random_level = 1,
trunk_type = "double",
thin_branches = true
}
minetest.register_abm({
nodenames = {"moretrees:rubber_tree_sapling"},
label = "Worldgen: grow rubber tree sapling",
interval = 60,
chance = 20,
action = function(pos, node)
minetest.remove_node(pos)
minetest.spawn_tree(pos, technic.rubber_tree_model)
end
})
if technic.config:get_bool("enable_rubber_tree_generation") then
minetest.register_on_generated(function(minp, maxp, blockseed)
if math.random(1, 100) > 5 then
return
end
local tmp = {
x = (maxp.x - minp.x) / 2 + minp.x,
y = (maxp.y - minp.y) / 2 + minp.y,
z = (maxp.z - minp.z) / 2 + minp.z}
local pos = minetest.find_node_near(tmp, maxp.x - minp.x,
{has_mcl and "mcl_core:dirt_with_grass" or "default:dirt_with_grass"})
if pos ~= nil then
minetest.spawn_tree({x=pos.x, y=pos.y+1, z=pos.z}, technic.rubber_tree_model)
end
end)
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B