realtest.registered_ores = {} realtest.registered_ores_list = {} local d_seed = 0 local function copytable(t) local t2 = {} for k,i in pairs(t) do t2[k] = i end return t2 end function realtest.register_ore(name, OreDef) local ore = { name = name, description = OreDef.description or "Ore", mineral = OreDef.mineral or "minerals:"..name:remove_modname_prefix(), wherein = OreDef.wherein or {"default:stone"}, clust_scarcity = 1/(OreDef.chunks_per_volume or 1/3/3/3/2), clust_size = OreDef.chunk_size or 3, clust_num_ores = OreDef.ore_per_chunk or 10, y_min = OreDef.y_min or -30912, y_max = OreDef.y_max or 30912, noise_threshold = OreDef.noise_min or 1.2, noise_params = {offset=0, scale=1, spread={x=100, y=100, z=100}, octaves=3, persist=0.70, seed = OreDef.delta_seed or d_seed}, generate = true } d_seed = d_seed + 1 if OreDef.generate == false then ore.generate = false end ore.particle_image = OreDef.particle_image or ore.mineral:gsub(":","_")..".png" realtest.registered_ores[name] = ore table.insert(realtest.registered_ores_list, name) local name_ = name:gsub(":","_") for i, wherein in ipairs(ore.wherein) do local wherein_ = wherein:gsub(":","_") local wherein_textures = {} if minetest.registered_nodes[wherein].tiles or minetest.registered_nodes[wherein].tiles then for _, texture in ipairs(minetest.registered_nodes[wherein].tiles) do table.insert(wherein_textures, texture.."^"..name_..".png") end else wherein_textures = {name_..".png"} end minetest.register_node(":"..name.."_in_"..wherein_, { description = ore.description .. " Ore", tiles = wherein_textures, particle_image = {ore.particle_image}, groups = {cracky=3,drop_on_dig=1,ore=1,dropping_like_stone=1}, drop = { max_items = 1, items = { { items = {ore.mineral.." 2"}, rarity = 2 }, { items = {ore.mineral} } } }, sounds = default.node_sound_stone_defaults() }) if ore.generate then local oredef = copytable(ore) oredef.ore = name.."_in_"..wherein_ oredef.ore_type = "scatter" oredef.wherein = wherein minetest.register_ore(oredef) end end end ores.list = { -- "lignite", -- "anthracite", -- "bituminous_coal", "magnetite", "hematite", "limonite", "bismuthinite", "cassiterite", "galena", "garnierite", "malachite", -- "native_copper", -- "native_gold", "native_silver", "native_platinum", "sphalerite", "tetrahedrite", "lazurite", "bauxite", "cinnabar", "cryolite", -- "graphite", "gypsum", "jet", "kaolinite", "kimberlite", "olivine", "petrified_wood", -- "pitchblende", "saltpeter", "satin_spar", "selenite", "serpentine", "sylvite", "tenorite", } ores.desc_list = { -- "Lignite", -- "Anthracite", -- "Bituminous Coal", "Magnetite", "Hematite", "Limonite", "Bismuthinite", "Cassiterite", "Galena", "Garnierite", "Malachite", -- "Native Copper", -- "Native Gold", "Native Silver", "Native Platinum", "Sphalerite", "Tetrahedrite", "Lazurite", "Bauxite", 'Cinnabar', 'Cryolite', -- 'Graphite', 'Gypsum', 'Jet', 'Kaolinite', 'Kimberlite', 'Olivine', 'Petrified wood', -- 'Pitchblende', 'Saltpeter', 'Satin Spar', 'Selenite', 'Serpentine', 'Sylvite', 'Tenorite', } for _, ore in ipairs(ores.list) do realtest.register_ore("ores:"..ore, {description = ores.desc_list[_]}) end realtest.register_ore("ores:native_copper", { description = "Native Copper", wherein = {"default:stone", "default:desert_stone"} }) realtest.register_ore("ores:native_gold", { description = "Native Gold", wherein = {"default:stone", "default:desert_stone"} }) realtest.register_ore("ores:lignite", { description = "Lignite", y_max = -500, y_min = -3000, ore_per_chunk = 15, chunks_per_volume = 1/3/3/3, }) realtest.register_ore("ores:bituminous_coal", { description = "Bituminous Coal", y_max = -3000, y_min = -6000, ore_per_chunk = 15, chunks_per_volume = 1/3/3/3, }) realtest.register_ore("ores:anthracite", { description = "Anthracite", y_max = -6000, y_min = -8000, ore_per_chunk = 15, chunks_per_volume = 1/3/3/3, }) realtest.register_ore("ores:graphite", { description = "Graphite", y_max = -8000, ore_per_chunk = 15, }) minetest.register_node("ores:sulfur", { description = "Sulfur Ore", tiles = {"default_stone.png^ores_sulfur.png"}, particle_image = {"minerals_sulfur.png"}, paramtype = "light", groups = {cracky=3,drop_on_dig=1,dig_immediate=2}, sounds = default.node_sound_stone_defaults(), drop = { max_items = 1, items = { { items = {"minerals:sulfur 3"}, rarity = 15, }, { items = {"minerals:sulfur 2"}, } } }, }) minetest.register_node("ores:peat", { description = "Peat", tiles = {"ores_peat.png"}, particle_image = {"ores_peat.png"}, groups = {crumbly=3,drop_on_dig=1,falling_node=1}, sounds = default.node_sound_dirt_defaults(), }) minetest.register_craft({ type = "fuel", recipe = "ores:peat", burntime = 15 })