summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE.txt17
-rw-r--r--README.md2
-rw-r--r--README.txt22
-rw-r--r--_config.txt35
-rw-r--r--depends.txt1
-rw-r--r--init.lua364
-rw-r--r--locale/es.txt21
-rw-r--r--locale/fr.txt21
-rw-r--r--old_init.lua745
-rw-r--r--textures/moreores_bronze_block.pngbin0 -> 277 bytes
-rw-r--r--textures/moreores_bronze_ingot.pngbin0 -> 341 bytes
-rw-r--r--textures/moreores_copper_block.pngbin0 -> 249 bytes
-rw-r--r--textures/moreores_copper_ingot.pngbin0 -> 362 bytes
-rw-r--r--textures/moreores_copper_lump.pngbin0 -> 382 bytes
-rw-r--r--textures/moreores_copper_rail.pngbin0 -> 546 bytes
-rw-r--r--textures/moreores_copper_rail_crossing.pngbin0 -> 581 bytes
-rw-r--r--textures/moreores_copper_rail_curved.pngbin0 -> 576 bytes
-rw-r--r--textures/moreores_copper_rail_t_junction.pngbin0 -> 577 bytes
-rw-r--r--textures/moreores_gold_block.pngbin0 -> 277 bytes
-rw-r--r--textures/moreores_gold_ingot.pngbin0 -> 358 bytes
-rw-r--r--textures/moreores_gold_lump.pngbin0 -> 364 bytes
-rw-r--r--textures/moreores_mineral_copper.pngbin0 -> 258 bytes
-rw-r--r--textures/moreores_mineral_gold.pngbin0 -> 222 bytes
-rw-r--r--textures/moreores_mineral_mithril.pngbin0 -> 238 bytes
-rw-r--r--textures/moreores_mineral_silver.pngbin0 -> 259 bytes
-rw-r--r--textures/moreores_mineral_tin.pngbin0 -> 254 bytes
-rw-r--r--textures/moreores_mithril_block.pngbin0 -> 614 bytes
-rw-r--r--textures/moreores_mithril_ingot.pngbin0 -> 346 bytes
-rw-r--r--textures/moreores_mithril_lump.pngbin0 -> 365 bytes
-rw-r--r--textures/moreores_silver_block.pngbin0 -> 270 bytes
-rw-r--r--textures/moreores_silver_ingot.pngbin0 -> 350 bytes
-rw-r--r--textures/moreores_silver_lump.pngbin0 -> 356 bytes
-rw-r--r--textures/moreores_tin_block.pngbin0 -> 269 bytes
-rw-r--r--textures/moreores_tin_ingot.pngbin0 -> 361 bytes
-rw-r--r--textures/moreores_tin_lump.pngbin0 -> 361 bytes
-rw-r--r--textures/moreores_tool_bronzeaxe.pngbin0 -> 224 bytes
-rw-r--r--textures/moreores_tool_bronzepick.pngbin0 -> 286 bytes
-rw-r--r--textures/moreores_tool_bronzeshovel.pngbin0 -> 253 bytes
-rw-r--r--textures/moreores_tool_bronzesword.pngbin0 -> 274 bytes
-rw-r--r--textures/moreores_tool_goldaxe.pngbin0 -> 225 bytes
-rw-r--r--textures/moreores_tool_goldpick.pngbin0 -> 294 bytes
-rw-r--r--textures/moreores_tool_goldshovel.pngbin0 -> 256 bytes
-rw-r--r--textures/moreores_tool_goldsword.pngbin0 -> 275 bytes
-rw-r--r--textures/moreores_tool_mithrilaxe.pngbin0 -> 211 bytes
-rw-r--r--textures/moreores_tool_mithrilpick.pngbin0 -> 279 bytes
-rw-r--r--textures/moreores_tool_mithrilshovel.pngbin0 -> 242 bytes
-rw-r--r--textures/moreores_tool_mithrilsword.pngbin0 -> 296 bytes
-rw-r--r--textures/moreores_tool_silveraxe.pngbin0 -> 218 bytes
-rw-r--r--textures/moreores_tool_silverpick.pngbin0 -> 290 bytes
-rw-r--r--textures/moreores_tool_silvershovel.pngbin0 -> 254 bytes
-rw-r--r--textures/moreores_tool_silversword.pngbin0 -> 299 bytes
51 files changed, 1226 insertions, 2 deletions
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..2499ee9
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,17 @@
++---- GNU GPL v3 ----+
+
+More Ores -- a Minetest mod that adds ores.
+Copyright (C) 2013 Calinou
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/README.md b/README.md
deleted file mode 100644
index ff4c483..0000000
--- a/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-moreores
-========
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..4c15581
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,22 @@
+Calinou's Minetest Mods
+=====================
+
+Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game.
+
+This Git repository is mostly made for servers; it allows easy updating.
+
+To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder.
+
+
+
+Misc stuff
+=====================
+
+All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported.
+
+Mods' forum threads:
+More Blocks: http://minetest.net/forum/viewtopic.php?id=509
+More Ores: http://minetest.net/forum/viewtopic.php?id=549
+Map Tools: http://minetest.net/forum/viewtopic.php?id=1882
+Doors+: http://minetest.net/forum/viewtopic.php?id=2059
+Stairs+: http://minetest.net/forum/viewtopic.php?id=2092
diff --git a/_config.txt b/_config.txt
new file mode 100644
index 0000000..68c6658
--- /dev/null
+++ b/_config.txt
@@ -0,0 +1,35 @@
+------------------------------------------------------------------------------
+------------------------------ CONFIGURATION ---------------------------------
+------------------------------------------------------------------------------
+
+------------------------------------------------------------------------------
+-------- Change settings by changing the values after the "=". ---------------
+------------------------------------------------------------------------------
+
+-- Chunk sizes for ore generation (bigger = ore deposits are more scattered around)
+moreores_copper_chunk_size = 8
+moreores_tin_chunk_size = 7
+moreores_silver_chunk_size = 11
+moreores_gold_chunk_size = 14
+moreores_mithril_chunk_size = 11
+
+-- Amount of ore per chunk (higher = bigger ore deposits)
+moreores_copper_ore_per_chunk = 8
+moreores_tin_ore_per_chunk = 3
+moreores_silver_ore_per_chunk = 4
+moreores_gold_ore_per_chunk = 4
+moreores_mithril_ore_per_chunk = 1
+
+-- Minimal depths of ore generation (Y coordinate, 0 being sea level by default)
+moreores_copper_min_depth = -31000
+moreores_tin_min_depth = -31000
+moreores_silver_min_depth = -31000
+moreores_gold_min_depth = -31000
+moreores_mithril_min_depth = -31000
+
+-- Maximal depths of ore generation (Y coordinate, 0 being sea level by default)
+moreores_copper_max_depth = 64
+moreores_tin_max_depth = 8
+moreores_silver_max_depth = -2
+moreores_gold_max_depth = -64
+moreores_mithril_max_depth = -512
diff --git a/depends.txt b/depends.txt
new file mode 100644
index 0000000..331d858
--- /dev/null
+++ b/depends.txt
@@ -0,0 +1 @@
+default \ No newline at end of file
diff --git a/init.lua b/init.lua
new file mode 100644
index 0000000..86f66eb
--- /dev/null
+++ b/init.lua
@@ -0,0 +1,364 @@
+-- Load translation library if intllib is installed
+
+local S
+if (minetest.get_modpath("intllib")) then
+ dofile(minetest.get_modpath("intllib").."/intllib.lua")
+ S = intllib.Getter(minetest.get_current_modname())
+ else
+ S = function ( s ) return s end
+end
+
+dofile(minetest.get_modpath("moreores").."/_config.txt")
+
+print(S("[moreores] loaded."))
+
+--[[
+****
+More Ores
+by Calinou
+with the help of MarkTraceur, GloopMaster and Kotolegokot
+Licensed under GPLv3+ for code and CC BY-SA for textures, see: http://www.gnu.org/licenses/gpl-3.0.html
+****
+--]]
+
+-- Utility functions
+
+local default_stone_sounds = default.node_sound_stone_defaults()
+
+local stick = "default:stick"
+local recipes = {
+ sword = {{"m"}, {"m"}, {stick}},
+ shovel = {{"m"}, {stick}, {stick}},
+ axe = {{"m", "m"}, {"m", stick}, {"" , stick}},
+ pick = {{"m", "m", "m"}, {"", stick, ""}, {"", stick, ""}}
+}
+
+local function get_tool_recipe(craftitem, toolname)
+ local orig = recipes[toolname]
+ local complete = {}
+ for i, row in ipairs(orig) do
+ local thisrow = {}
+ for j, col in ipairs(row) do
+ if col == "m" then
+ table.insert(thisrow, craftitem)
+ else
+ table.insert(thisrow, col)
+ end
+ end
+ table.insert(complete, thisrow)
+ end
+ return complete
+end
+
+local function add_ore(modname, mineral_name, oredef)
+ local firstlet = string.upper(string.sub(mineral_name, 1, 1))
+ local description = firstlet .. string.sub(mineral_name, 2)
+ local img_base = modname .. "_" .. mineral_name
+ local toolimg_base = modname .. "_tool_"..mineral_name
+ local tool_base = modname .. ":"
+ local tool_post = "_" .. mineral_name
+ local item_base = tool_base .. mineral_name
+ local ingot = item_base .. "_ingot"
+ local lumpitem = item_base .. "_lump"
+ local ingotcraft = ingot
+
+ if oredef.makes.ore then
+ local mineral_img_base = modname .. "_mineral_"..mineral_name
+ minetest.register_node(modname .. ":mineral_"..mineral_name, {
+ description = S("%s Ore"):format(S(description)),
+ tiles = {"default_stone.png^"..mineral_img_base..".png"},
+ groups = {cracky=3},
+ sounds = default_stone_sounds,
+ drop = item_base .. "_lump 1"
+ })
+ end
+
+ if oredef.makes.block then
+ local blockitem = item_base .. "_block"
+ minetest.register_node(blockitem, {
+ description = S("%s Block"):format(S(description)),
+ tiles = { img_base .. "_block.png" },
+ groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
+ sounds = default_stone_sounds
+ })
+ minetest.register_alias(mineral_name.."_block", blockitem)
+ local ingotrow = {ingot, ingot, ingot}
+ local nodeblockitem = "node " .. blockitem .. ""
+ minetest.register_craft( {
+ output = nodeblockitem,
+ recipe = {ingotrow, ingotrow, ingotrow}
+ })
+ minetest.register_craft( {
+ output = "craft " .. ingot .. " 9",
+ recipe = {
+ { nodeblockitem }
+ }
+ })
+ end
+
+ if oredef.makes.lump then
+ minetest.register_craftitem(lumpitem, {
+ description = S("%s Lump"):format(S(description)),
+ inventory_image = img_base .. "_lump.png",
+ on_place_on_ground = minetest.craftitem_place_item
+ })
+ minetest.register_alias(mineral_name .. "_lump", lumpitem)
+ if oredef.makes.ingot then
+ minetest.register_craft({
+ type = "cooking",
+ output = ingot,
+ recipe = lumpitem
+ })
+ end
+ end
+
+ if oredef.makes.ingot then
+ minetest.register_craftitem(ingot, {
+ description = S("%s Ingot"):format(S(description)),
+ inventory_image = img_base .. "_ingot.png",
+ on_place_on_ground = minetest.craftitem_place_item
+ })
+ minetest.register_alias(mineral_name .. "_ingot", ingot)
+ if oredef.makes.chest then
+ minetest.register_craft( {
+ output = "node default:chest_locked 1",
+ recipe = {
+ { ingotcraft },
+ { "node default:chest" }
+ }
+ })
+ wood = "node default:wood"
+ woodrow = {wood,wood,wood}
+ minetest.register_craft( {
+ output = "node default:chest_locked 1",
+ recipe = {
+ woodrow,
+ {wood, ingotcraft, wood},
+ woodrow
+ }
+ })
+ end
+ end
+
+ for toolname, tooldef in pairs(oredef.tools) do
+ local tflet = string.upper(string.sub(toolname, 0, 1))
+ local tool_description = tflet..string.sub(toolname, 2)
+ local tdef = {
+ description = "",
+ inventory_image = toolimg_base .. toolname .. ".png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps=tooldef
+ }
+ }
+
+ if toolname == "sword" then
+ tdef.full_punch_interval = oredef.punchint
+ tdef.description = S("%s Sword"):format(S(description))
+ end
+
+ if toolname == "pick" then
+ tdef.description = S("%s Pickaxe"):format(S(description))
+ end
+
+ if toolname == "axe" then
+ tdef.description = S("%s Axe"):format(S(description))
+ end
+
+ if toolname == "shovel" then
+ tdef.description = S("%s Shovel"):format(S(description))
+ end
+
+ local fulltoolname = tool_base .. toolname .. tool_post
+ minetest.register_tool(fulltoolname, tdef)
+ minetest.register_alias(toolname .. tool_post, fulltoolname)
+ if oredef.makes.ingot then
+ minetest.register_craft({
+ output = "craft " .. fulltoolname .. " 1",
+ recipe = get_tool_recipe(item_base .. "_ingot", toolname)
+ })
+ end
+ end
+end
+
+-- Add everything (compact(ish)!)
+
+local modname = "moreores"
+
+local oredefs = {
+ silver = {
+ makes = {ore=true, block=true, lump=true, ingot=true, chest=true},
+ tools = {
+ pick = {
+ cracky={times={[1]=2.60, [2]=1.00, [3]=0.60}, uses=100, maxlevel=1}
+ },
+ shovel = {
+ crumbly={times={[1]=1.10, [2]=0.40, [3]=0.25}, uses=100, maxlevel=1}
+ },
+ axe = {
+ choppy={times={[1]=2.50, [2]=0.80, [3]=0.50}, uses=100, maxlevel=1},
+ fleshy={times={[2]=1.10, [3]=0.60}, uses=100, maxlevel=1}
+ },
+ sword = {
+ fleshy={times={[2]=0.70, [3]=0.30}, uses=100, maxlevel=1},
+ snappy={times={[2]=0.70, [3]=0.30}, uses=100, maxlevel=1},
+ choppy={times={[3]=0.80}, uses=100, maxlevel=0}
+ }
+ },
+ punchint = 1.0
+ },
+ tin = {
+ makes = {ore=true, block=true, lump=true, ingot=true, chest=false},
+ tools = {}
+ },
+ mithril = {
+ makes = {ore=true, block=true, lump=true, ingot=true, chest=false},
+ tools = {
+ pick = {
+ cracky={times={[1]=2.25, [2]=0.55, [3]=0.35}, uses=200, maxlevel=1}
+ },
+ shovel = {
+ crumbly={times={[1]=0.70, [2]=0.35, [3]=0.20}, uses=200, maxlevel=1}
+ },
+ axe = {
+ choppy={times={[1]=1.75, [2]=0.45, [3]=0.45}, uses=200, maxlevel=1},
+ fleshy={times={[2]=0.95, [3]=0.30}, uses=200, maxlevel=1}
+ },
+ sword = {
+ fleshy={times={[2]=0.65, [3]=0.25}, uses=200, maxlevel=1},
+ snappy={times={[2]=0.70, [3]=0.25}, uses=200, maxlevel=1},
+ choppy={times={[3]=0.65}, uses=200, maxlevel=0}
+ }
+ },
+ punchint = 0.45
+ }
+}
+
+for orename,def in pairs(oredefs) do
+ add_ore(modname, orename, def)
+end
+
+-- Copper rail (special node)
+
+minetest.register_craft({
+ output = "moreores:copper_rail 16",
+ recipe = {
+ {"moreores:copper_ingot", "", "moreores:copper_ingot"},
+ {"moreores:copper_ingot", "default:stick", "moreores:copper_ingot"},
+ {"moreores:copper_ingot", "", "moreores:copper_ingot"}
+ }
+})
+
+-- Bronze has some special cases, because it is made from copper and tin
+
+minetest.register_craft( {
+ type = "shapeless",
+ output = "moreores:bronze_ingot 3",
+ recipe = {
+ "moreores:tin_ingot",
+ "moreores:copper_ingot",
+ "moreores:copper_ingot",
+ }
+})
+
+-- Unique node
+
+minetest.register_node("moreores:copper_rail", {
+ description = S("Copper Rail"),
+ drawtype = "raillike",
+ tiles = {"moreores_copper_rail.png", "moreores_copper_rail_curved.png", "moreores_copper_rail_t_junction.png", "moreores_copper_rail_crossing.png"},
+ inventory_image = "moreores_copper_rail.png",
+ wield_image = "moreores_copper_rail.png",
+ paramtype = "light",
+ sunlight_propagates = true,
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
+ },
+ groups = {bendy=2,snappy=1,dig_immediate=2,rail=1,connect_to_raillike=1},
+ mesecons = {
+ effector = {
+ action_on = function(pos, node)
+ minetest.env:get_meta(pos):set_string("cart_acceleration", "0.5")
+ end,
+
+ action_off = function(pos, node)
+ minetest.env:get_meta(pos):set_string("cart_acceleration", "0")
+ end,
+ },
+ },
+})
+
+local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, ore_per_chunk, height_min, height_max)
+ if maxp.y < height_min or minp.y > height_max then
+ return
+ end
+ local y_min = math.max(minp.y, height_min)
+ local y_max = math.min(maxp.y, height_max)
+ local volume = (maxp.x - minp.x + 1) * (y_max - y_min + 1) * (maxp.z - minp.z + 1)
+ local pr = PseudoRandom(seed)
+ local num_chunks = math.floor(chunks_per_volume * volume)
+ local chunk_size = 3
+ if ore_per_chunk <= 4 then
+ chunk_size = 2
+ end
+ local inverse_chance = math.floor(chunk_size * chunk_size * chunk_size / ore_per_chunk)
+ -- print(generate_ore num_chunks: ..dump(num_chunks))
+ for i=1,num_chunks do
+ if (y_max-chunk_size+1 <= y_min) then return end
+ local y0 = pr:next(y_min, y_max-chunk_size+1)
+ if y0 >= height_min and y0 <= height_max then
+ local x0 = pr:next(minp.x, maxp.x-chunk_size+1)
+ local z0 = pr:next(minp.z, maxp.z-chunk_size+1)
+ local p0 = {x=x0, y=y0, z=z0}
+ for x1=0,chunk_size-1 do
+ for y1=0,chunk_size-1 do
+ for z1=0,chunk_size-1 do
+ if pr:next(1,inverse_chance) == 1 then
+ local x2 = x0+x1
+ local y2 = y0+y1
+ local z2 = z0+z1
+ local p2 = {x=x2, y=y2, z=z2}
+ if minetest.env:get_node(p2).name == wherein then
+ minetest.env:set_node(p2, {name=name})
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ -- print(generate_ore done)
+end
+
+ minetest.register_ore({
+ ore_type = "scatter",
+ ore = "moreores:mineral_tin",
+ wherein = "default:stone",
+ clust_scarcity = moreores_tin_chunk_size * moreores_tin_chunk_size * moreores_tin_chunk_size,
+ clust_num_ores = moreores_tin_ore_per_chunk,
+ clust_size = moreores_tin_chunk_size,
+ height_min = moreores_tin_min_depth,
+ height_max = moreores_tin_max_depth
+ })
+ minetest.register_ore({
+ ore_type = "scatter",
+ ore = "moreores:mineral_silver",
+ wherein = "default:stone",
+ clust_scarcity = moreores_silver_chunk_size * moreores_silver_chunk_size * moreores_silver_chunk_size,
+ clust_num_ores = moreores_silver_ore_per_chunk,
+ clust_size = moreores_silver_chunk_size,
+ height_min = moreores_silver_min_depth,
+ height_max = moreores_silver_max_depth
+ })
+ minetest.register_ore({
+ ore_type = "scatter",
+ ore = "moreores:mineral_mithril",
+ wherein = "default:stone",
+ clust_scarcity = moreores_mithril_chunk_size * moreores_mithril_chunk_size * moreores_mithril_chunk_size,
+ clust_num_ores = moreores_mithril_ore_per_chunk,
+ clust_size = moreores_mithril_chunk_size,
+ height_min = moreores_mithril_min_depth,
+ height_max = moreores_mithril_max_depth
+ })
diff --git a/locale/es.txt b/locale/es.txt
new file mode 100644
index 0000000..1344a5a
--- /dev/null
+++ b/locale/es.txt
@@ -0,0 +1,21 @@
+# Translation by kaeza
+
+[moreores] loaded. = [moreores] cargado.
+
+%s Ore = Mineral de %s
+%s Lump = Pepita de %s
+%s Ingot = Lingote de %s
+%s Block = Bloque de %s
+%s Pickaxe = Pico de %s
+%s Shovel = Pala de %s
+%s Axe = Hacha de %s
+%s Sword = Espada de %s
+
+Copper = cobre
+Tin = estaño
+Bronze = bronce
+Silver = plata
+Gold = oro
+Mithril = mitrilo
+
+Copper Rail = Riel de Cobre
diff --git a/locale/fr.txt b/locale/fr.txt
new file mode 100644
index 0000000..65687fa
--- /dev/null
+++ b/locale/fr.txt
@@ -0,0 +1,21 @@
+# Translation by Calinou
+
+[moreores] loaded. = [moreores] a été chargé.
+
+%s Ore = Minerai en %s
+%s Lump = Roche en %s
+%s Ingot = Lingot en %s
+%s Block = Bloc en %s
+%s Pickaxe = Pioche en %s
+%s Shovel = Pelle en %s
+%s Axe = Hache en %s
+%s Sword = Épée en %s
+
+Copper = cuivre
+Tin = étain
+Bronze = bronze
+Silver = argent
+Gold = or
+Mithril = mithril
+
+Copper Rail = Rail en cuivre
diff --git a/old_init.lua b/old_init.lua
new file mode 100644
index 0000000..03be6bc
--- /dev/null
+++ b/old_init.lua
@@ -0,0 +1,745 @@
+--[[
+****
+More Ores
+by Calinou
+Old and "inefficient" version; use if the new version does not work for some reason. Outdated.
+Licensed under the zlib/libpng license, see LICENSE.txt for info.
+****
+--]]
+
+-- Blocks
+
+minetest.register_node( "moreores:mineral_gold", {
+ description = "Gold Ore",
+ tile_images = { "default_stone.png^moreores_mineral_gold.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+ drop = 'craft "moreores:gold_lump" 1',
+})
+
+minetest.register_node( "moreores:gold_block", {
+ description = "Gold Block",
+ tile_images = { "moreores_gold_block.png" },
+ is_ground_content = true,
+ groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
+ sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_node( "moreores:mineral_silver", {
+ description = "Silver Ore",
+ tile_images = { "default_stone.png^moreores_mineral_silver.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+ drop = 'craft "moreores:silver_lump" 1',
+})
+
+minetest.register_node( "moreores:silver_block", {
+ description = "Silver Block",
+ tile_images = { "moreores_silver_block.png" },
+ is_ground_content = true,
+ groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
+ sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_node( "moreores:mineral_copper", {
+ description = "Copper Ore",
+ tile_images = { "default_stone.png^moreores_mineral_copper.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+ drop = 'craft "moreores:copper_lump" 1',
+})
+
+minetest.register_node( "moreores:mineral_tin", {
+ description = "Tin Ore",
+ tile_images = { "default_stone.png^moreores_mineral_tin.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+ drop = 'craft "moreores:tin_lump" 1',
+})
+
+minetest.register_node( "moreores:bronze_block", {
+ description = "Bronze Block",
+ tile_images = { "moreores_bronze_block.png" },
+ is_ground_content = true,
+ groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
+ sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_node( "moreores:mineral_mithril", {
+ description = "Mithril Ore",
+ tile_images = { "default_stone.png^moreores_mineral_mithril.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+ drop = 'craft "moreores:mithril_lump" 1',
+})
+
+minetest.register_node( "moreores:mithril_block", {
+ description = "Mithril Block",
+ tile_images = { "moreores_mithril_block.png" },
+ is_ground_content = true,
+ groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
+ sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_node("moreores:copper_rail", {
+ description = "Copper Rail",
+ drawtype = "raillike",
+ tile_images = {"moreores_copper_rail.png", "moreores_copper_rail_curved.png", "moreores_copper_rail_t_junction.png", "moreores_copper_rail_crossing.png"},
+ inventory_image = "moreores_copper_rail.png",
+ wield_image = "moreores_copper_rail.png",
+ paramtype = "light",
+ is_ground_content = true,
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ --fixed = <default>
+ },
+ groups = {bendy=2,snappy=1,dig_immediate=2},
+})
+
+-- Items
+
+minetest.register_craftitem( "moreores:gold_lump", {
+ description = "Gold Lump",
+ inventory_image = "moreores_gold_lump.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "moreores:gold_ingot", {
+ description = "Gold Ingot",
+ inventory_image = "moreores_gold_ingot.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "moreores:silver_lump", {
+ description = "Silver Lump",
+ inventory_image = "moreores_silver_lump.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "moreores:silver_ingot", {
+ description = "Silver Ingot",
+ inventory_image = "moreores_silver_ingot.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "moreores:copper_lump", {
+ description = "Copper Lump",
+ inventory_image = "moreores_copper_lump.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "moreores:copper_ingot", {
+ description = "Copper Ingot",
+ inventory_image = "moreores_copper_ingot.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "moreores:tin_lump", {
+ description = "Tin Lump",
+ inventory_image = "moreores_tin_lump.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "moreores:tin_ingot", {
+ description = "Tin Ingot",
+ inventory_image = "moreores_tin_ingot.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "moreores:bronze_ingot", {
+ description = "Bronze Ingot",
+ inventory_image = "moreores_bronze_ingot.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "moreores:mithril_lump", {
+ description = "Mithril Lump",
+ inventory_image = "moreores_mithril_lump.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+ on_use = minetest.item_eat(2),
+})
+
+minetest.register_craftitem( "moreores:mithril_ingot", {
+ description = "Mithril Ingot",
+ inventory_image = "moreores_mithril_ingot.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+-- Tools
+
+minetest.register_tool("moreores:pick_bronze", {
+ description = "Bronze Pickaxe",
+ inventory_image = "moreores_tool_bronzepick.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ cracky={times={[1]=3.00, [2]=1.20, [3]=0.80}, uses=160, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:shovel_bronze", {
+ description = "Bronze Shovel",
+ inventory_image = "moreores_tool_bronzeshovel.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ crumbly={times={[1]=1.50, [2]=0.50, [3]=0.30}, uses=160, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:axe_bronze", {
+ description = "Bronze Axe",
+ inventory_image = "moreores_tool_bronzeaxe.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ choppy={times={[1]=3.00, [2]=1.00, [3]=0.60}, uses=160, maxlevel=1},
+ fleshy={times={[2]=1.30, [3]=0.70}, uses=160, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:sword_bronze", {
+ description = "Bronze Sword",
+ inventory_image = "moreores_tool_bronzesword.png",
+ tool_capabilities = {
+ full_punch_interval = 1.0,
+ max_drop_level=3,
+ groupcaps={
+ fleshy={times={[2]=0.80, [3]=0.40}, uses=160, maxlevel=1},
+ snappy={times={[2]=0.80, [3]=0.40}, uses=160, maxlevel=1},
+ choppy={times={[3]=0.90}, uses=160, maxlevel=0}
+ }
+ }
+})
+
+minetest.register_tool("moreores:pick_silver", {
+ description = "Silver Pickaxe",
+ inventory_image = "moreores_tool_silverpick.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ cracky={times={[1]=2.60, [2]=1.00, [3]=0.60}, uses=100, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:shovel_silver", {
+ description = "Silver Shovel",
+ inventory_image = "moreores_tool_silvershovel.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ crumbly={times={[1]=1.10, [2]=0.40, [3]=0.25}, uses=100, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:axe_silver", {
+ description = "Silver Axe",
+ inventory_image = "moreores_tool_silveraxe.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ choppy={times={[1]=2.50, [2]=0.80, [3]=0.50}, uses=100, maxlevel=1},
+ fleshy={times={[2]=1.10, [3]=0.60}, uses=100, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:sword_silver", {
+ description = "Silver Sword",
+ inventory_image = "moreores_tool_silversword.png",
+ tool_capabilities = {
+ full_punch_interval = 1.0,
+ max_drop_level=3,
+ groupcaps={
+ fleshy={times={[2]=0.70, [3]=0.30}, uses=100, maxlevel=1},
+ snappy={times={[2]=0.70, [3]=0.30}, uses=100, maxlevel=1},
+ choppy={times={[3]=0.80}, uses=100, maxlevel=0}
+ }
+ }
+})
+
+minetest.register_tool("moreores:pick_gold", {
+ description = "Golden Pickaxe",
+ inventory_image = "moreores_tool_goldpick.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ cracky={times={[1]=2.00, [2]=0.50, [3]=0.30}, uses=70, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:shovel_gold", {
+ description = "Golden Shovel",
+ inventory_image = "moreores_tool_goldshovel.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ crumbly={times={[1]=0.60, [2]=0.25, [3]=0.15}, uses=70, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:axe_gold", {
+ description = "Golden Axe",
+ inventory_image = "moreores_tool_goldaxe.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ choppy={times={[1]=1.70, [2]=0.40, [3]=0.35}, uses=70, maxlevel=1},
+ fleshy={times={[2]=0.90, [3]=0.30}, uses=70, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:sword_gold", {
+ description = "Golden Sword",
+ inventory_image = "moreores_tool_goldsword.png",
+ tool_capabilities = {
+ full_punch_interval = 0.85,
+ max_drop_level=3,
+ groupcaps={
+ fleshy={times={[2]=0.60, [3]=0.20}, uses=70, maxlevel=1},
+ snappy={times={[2]=0.60, [3]=0.20}, uses=70, maxlevel=1},
+ choppy={times={[3]=0.65}, uses=70, maxlevel=0}
+ }
+ }
+})
+
+minetest.register_tool("moreores:pick_mithril", {
+ description = "Mithril Pickaxe",
+ inventory_image = "moreores_tool_mithrilpick.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ cracky={times={[1]=2.25, [2]=0.55, [3]=0.35}, uses=200, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:shovel_mithril", {
+ description = "Mithril Shovel",
+ inventory_image = "moreores_tool_mithrilshovel.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ crumbly={times={[1]=0.70, [2]=0.35, [3]=0.20}, uses=200, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:axe_mithril", {
+ description = "Mithril Axe",
+ inventory_image = "moreores_tool_mithrilaxe.png",
+ tool_capabilities = {
+ max_drop_level=3,
+ groupcaps={
+ choppy={times={[1]=1.75, [2]=0.45, [3]=0.45}, uses=200, maxlevel=1},
+ fleshy={times={[2]=0.95, [3]=0.30}, uses=200, maxlevel=1}
+ }
+ },
+})
+
+minetest.register_tool("moreores:sword_mithril", {
+ description = "Mithril Sword",
+ inventory_image = "moreores_tool_mithrilsword.png",
+ tool_capabilities = {
+ full_punch_interval = 0.45,
+ max_drop_level=3,
+ groupcaps={
+ fleshy={times={[2]=0.65, [3]=0.25}, uses=200, maxlevel=1},
+ snappy={times={[2]=0.70, [3]=0.25}, uses=200, maxlevel=1},
+ choppy={times={[3]=0.65}, uses=200, maxlevel=0}
+ }
+ }
+})
+
+-- Crafting
+
+minetest.register_craft({
+ output = 'moreores:copper_rail 15',
+ recipe = {
+ {'moreores:copper_ingot', '', 'moreores:copper_ingot'},
+ {'moreores:copper_ingot', 'default:stick', 'moreores:copper_ingot'},
+ {'moreores:copper_ingot', '', 'moreores:copper_ingot'},
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:pick_bronze" 1',
+ recipe = {
+ { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"' },
+ { '', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:shovel_bronze" 1',
+ recipe = {
+ { '', 'craft "moreores:bronze_ingot"', '' },
+ { '', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:axe_bronze" 1',
+ recipe = {
+ { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', '' },
+ { 'craft "moreores:bronze_ingot"', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:sword_bronze" 1',
+ recipe = {
+ { '', 'craft "moreores:bronze_ingot"', '' },
+ { '', 'craft "moreores:bronze_ingot"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:pick_silver" 1',
+ recipe = {
+ { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"' },
+ { '', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:shovel_silver" 1',
+ recipe = {
+ { '', 'craft "moreores:silver_ingot"', '' },
+ { '', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:axe_silver" 1',
+ recipe = {
+ { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', '' },
+ { 'craft "moreores:silver_ingot"', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:sword_silver" 1',
+ recipe = {
+ { '', 'craft "moreores:silver_ingot"', '' },
+ { '', 'craft "moreores:silver_ingot"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:pick_gold" 1',
+ recipe = {
+ { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"' },
+ { '', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:shovel_gold" 1',
+ recipe = {
+ { '', 'craft "moreores:gold_ingot"', '' },
+ { '', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:axe_gold" 1',
+ recipe = {
+ { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', '' },
+ { 'craft "moreores:gold_ingot"', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:sword_gold" 1',
+ recipe = {
+ { '', 'craft "moreores:gold_ingot"', '' },
+ { '', 'craft "moreores:gold_ingot"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:pick_mithril" 1',
+ recipe = {
+ { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"' },
+ { '', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:shovel_mithril" 1',
+ recipe = {
+ { '', 'craft "moreores:mithril_ingot"', '' },
+ { '', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:axe_mithril" 1',
+ recipe = {
+ { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', '' },
+ { 'craft "moreores:mithril_ingot"', 'craft "Stick"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:sword_mithril" 1',
+ recipe = {
+ { '', 'craft "moreores:mithril_ingot"', '' },
+ { '', 'craft "moreores:mithril_ingot"', '' },
+ { '', 'craft "Stick"', '' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:bronze_ingot"',
+ recipe = {
+ { 'craft "moreores:tin_ingot"'},
+ { 'craft "moreores:copper_ingot"'},
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:bronze_ingot"',
+ recipe = {
+ { 'craft "moreores:copper_ingot"'},
+ { 'craft "moreores:tin_ingot"'},
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "moreores:gold_block" 1',
+ recipe = {
+ { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"' },
+ { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"' },
+ { 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"', 'craft "moreores:gold_ingot"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:gold_ingot" 9',
+ recipe = {
+ { 'node "moreores:gold_block"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "moreores:silver_block" 1',
+ recipe = {
+ { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"' },
+ { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"' },
+ { 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"', 'craft "moreores:silver_ingot"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:silver_ingot" 9',
+ recipe = {
+ { 'node "moreores:silver_block"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "moreores:bronze_block" 1',
+ recipe = {
+ { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"' },
+ { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"' },
+ { 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"', 'craft "moreores:bronze_ingot"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:bronze_ingot" 9',
+ recipe = {
+ { 'node "moreores:bronze_block"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "moreores:mithril_block" 1',
+ recipe = {
+ { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"' },
+ { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"' },
+ { 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"', 'craft "moreores:mithril_ingot"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'craft "moreores:mithril_ingot" 9',
+ recipe = {
+ { 'node "moreores:mithril_block"' },
+ }
+})
+
+-- Smelting
+
+minetest.register_craft({
+ type = "cooking",
+ output = "moreores:gold_ingot",
+ recipe = "moreores:gold_lump",
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "moreores:silver_ingot",
+ recipe = "moreores:silver_lump",
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "moreores:tin_ingot",
+ recipe = "moreores:tin_lump",
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "moreores:copper_ingot",
+ recipe = "moreores:copper_lump",
+})
+
+minetest.register_craft({
+ type = "cooking",
+ output = "moreores:mithril_ingot",
+ recipe = "moreores:mithril_lump",
+})
+
+minetest.register_craft( {
+ output = 'node "default:chest_locked" 1',
+ recipe = {
+ { 'craft "moreores:bronze_ingot"' },
+ { 'node "default:chest"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "default:chest_locked" 1',
+ recipe = {
+ { 'craft "moreores:silver_ingot"' },
+ { 'node "default:chest"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "default:chest_locked" 1',
+ recipe = {
+ { 'craft "moreores:gold_ingot"' },
+ { 'node "default:chest"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "default:chest_locked" 1',
+ recipe = {
+ { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' },
+ { 'node "default:wood"', 'craft "moreores:bronze_ingot"', 'node "default:wood"' },
+ { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "default:chest_locked" 1',
+ recipe = {
+ { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' },
+ { 'node "default:wood"', 'craft "moreores:bronze_ingot"', 'node "default:wood"' },
+ { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "default:chest_locked" 1',
+ recipe = {
+ { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' },
+ { 'node "default:wood"', 'craft "moreores:silver_ingot"', 'node "default:wood"' },
+ { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' },
+ }
+})
+
+minetest.register_craft( {
+ output = 'node "default:chest_locked" 1',
+ recipe = {
+ { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' },
+ { 'node "default:wood"', 'craft "moreores:gold_ingot"', 'node "default:wood"' },
+ { 'node "default:wood"', 'node "default:wood"', 'node "default:wood"' },
+ }
+})
+
+-- Ore generation
+
+local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, ore_per_chunk, height_min, height_max)
+ if maxp.y < height_min or minp.y > height_max then
+ return
+ end
+ local y_min = math.max(minp.y, height_min)
+ local y_max = math.min(maxp.y, height_max)
+ local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1)
+ local pr = PseudoRandom(seed)
+ local num_chunks = math.floor(chunks_per_volume * volume)
+ local chunk_size = 3
+ if ore_per_chunk <= 4 then
+ chunk_size = 2
+ end
+ local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk)
+ --print("generate_ore num_chunks: "..dump(num_chunks))
+ for i=1,num_chunks do
+ if (y_max-chunk_size+1 <= y_min) then return end
+ local y0 = pr:next(y_min, y_max-chunk_size+1)
+ if y0 >= height_min and y0 <= height_max then
+ local x0 = pr:next(minp.x, maxp.x-chunk_size+1)
+ local z0 = pr:next(minp.z, maxp.z-chunk_size+1)
+ local p0 = {x=x0, y=y0, z=z0}
+ for x1=0,chunk_size-1 do
+ for y1=0,chunk_size-1 do
+ for z1=0,chunk_size-1 do
+ if pr:next(1,inverse_chance) == 1 then
+ local x2 = x0+x1
+ local y2 = y0+y1
+ local z2 = z0+z1
+ local p2 = {x=x2, y=y2, z=z2}
+ if minetest.env:get_node(p2).name == wherein then
+ minetest.env:set_node(p2, {name=name})
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ --print("generate_ore done")
+end
+
+minetest.register_on_generated(function(minp, maxp, seed)
+generate_ore("moreores:mineral_copper", "default:stone", minp, maxp, seed+16, 1/11/11/11, 8, -31000, 64)
+generate_ore("moreores:mineral_tin", "default:stone", minp, maxp, seed+17, 1/8/8/8, 2, -31000, 8)
+generate_ore("moreores:mineral_silver", "default:stone", minp, maxp, seed+18, 1/10/10/10, 5, -31000, 2)
+generate_ore("moreores:mineral_gold", "default:stone", minp, maxp, seed+19, 1/12/12/12, 5, -31000, -64)
+generate_ore("moreores:mineral_mithril", "default:stone", minp, maxp, seed+20, 1/6/6/6, 1, -31000, -512)
+end) \ No newline at end of file
diff --git a/textures/moreores_bronze_block.png b/textures/moreores_bronze_block.png
new file mode 100644
index 0000000..de6a34a
--- /dev/null
+++ b/textures/moreores_bronze_block.png
Binary files differ
diff --git a/textures/moreores_bronze_ingot.png b/textures/moreores_bronze_ingot.png
new file mode 100644
index 0000000..a7a7382
--- /dev/null
+++ b/textures/moreores_bronze_ingot.png
Binary files differ
diff --git a/textures/moreores_copper_block.png b/textures/moreores_copper_block.png
new file mode 100644
index 0000000..c8cdeea
--- /dev/null
+++ b/textures/moreores_copper_block.png
Binary files differ
diff --git a/textures/moreores_copper_ingot.png b/textures/moreores_copper_ingot.png
new file mode 100644
index 0000000..0c8ba11
--- /dev/null
+++ b/textures/moreores_copper_ingot.png
Binary files differ
diff --git a/textures/moreores_copper_lump.png b/textures/moreores_copper_lump.png
new file mode 100644
index 0000000..de03dcd
--- /dev/null
+++ b/textures/moreores_copper_lump.png
Binary files differ
diff --git a/textures/moreores_copper_rail.png b/textures/moreores_copper_rail.png
new file mode 100644
index 0000000..0a0b56f
--- /dev/null
+++ b/textures/moreores_copper_rail.png
Binary files differ
diff --git a/textures/moreores_copper_rail_crossing.png b/textures/moreores_copper_rail_crossing.png
new file mode 100644
index 0000000..b23058c
--- /dev/null
+++ b/textures/moreores_copper_rail_crossing.png
Binary files differ
diff --git a/textures/moreores_copper_rail_curved.png b/textures/moreores_copper_rail_curved.png
new file mode 100644
index 0000000..3bd4682
--- /dev/null
+++ b/textures/moreores_copper_rail_curved.png
Binary files differ
diff --git a/textures/moreores_copper_rail_t_junction.png b/textures/moreores_copper_rail_t_junction.png
new file mode 100644
index 0000000..c8ecd91
--- /dev/null
+++ b/textures/moreores_copper_rail_t_junction.png
Binary files differ
diff --git a/textures/moreores_gold_block.png b/textures/moreores_gold_block.png
new file mode 100644
index 0000000..84dec28
--- /dev/null
+++ b/textures/moreores_gold_block.png
Binary files differ
diff --git a/textures/moreores_gold_ingot.png b/textures/moreores_gold_ingot.png
new file mode 100644
index 0000000..fa1de15
--- /dev/null
+++ b/textures/moreores_gold_ingot.png
Binary files differ
diff --git a/textures/moreores_gold_lump.png b/textures/moreores_gold_lump.png
new file mode 100644
index 0000000..432ba8b
--- /dev/null
+++ b/textures/moreores_gold_lump.png
Binary files differ
diff --git a/textures/moreores_mineral_copper.png b/textures/moreores_mineral_copper.png
new file mode 100644
index 0000000..43cdb11
--- /dev/null
+++ b/textures/moreores_mineral_copper.png
Binary files differ
diff --git a/textures/moreores_mineral_gold.png b/textures/moreores_mineral_gold.png
new file mode 100644
index 0000000..e110b43
--- /dev/null
+++ b/textures/moreores_mineral_gold.png
Binary files differ
diff --git a/textures/moreores_mineral_mithril.png b/textures/moreores_mineral_mithril.png
new file mode 100644
index 0000000..dcc3822
--- /dev/null
+++ b/textures/moreores_mineral_mithril.png
Binary files differ
diff --git a/textures/moreores_mineral_silver.png b/textures/moreores_mineral_silver.png
new file mode 100644
index 0000000..a81e73f
--- /dev/null
+++ b/textures/moreores_mineral_silver.png
Binary files differ
diff --git a/textures/moreores_mineral_tin.png b/textures/moreores_mineral_tin.png
new file mode 100644
index 0000000..591920c
--- /dev/null
+++ b/textures/moreores_mineral_tin.png
Binary files differ
diff --git a/textures/moreores_mithril_block.png b/textures/moreores_mithril_block.png
new file mode 100644
index 0000000..295af91
--- /dev/null
+++ b/textures/moreores_mithril_block.png
Binary files differ
diff --git a/textures/moreores_mithril_ingot.png b/textures/moreores_mithril_ingot.png
new file mode 100644
index 0000000..9f0e1ba
--- /dev/null
+++ b/textures/moreores_mithril_ingot.png
Binary files differ
diff --git a/textures/moreores_mithril_lump.png b/textures/moreores_mithril_lump.png
new file mode 100644
index 0000000..9b527b4
--- /dev/null
+++ b/textures/moreores_mithril_lump.png
Binary files differ
diff --git a/textures/moreores_silver_block.png b/textures/moreores_silver_block.png
new file mode 100644
index 0000000..e0ad5df
--- /dev/null
+++ b/textures/moreores_silver_block.png
Binary files differ
diff --git a/textures/moreores_silver_ingot.png b/textures/moreores_silver_ingot.png
new file mode 100644
index 0000000..d07fdaa
--- /dev/null
+++ b/textures/moreores_silver_ingot.png
Binary files differ
diff --git a/textures/moreores_silver_lump.png b/textures/moreores_silver_lump.png
new file mode 100644
index 0000000..5093d9f
--- /dev/null
+++ b/textures/moreores_silver_lump.png
Binary files differ
diff --git a/textures/moreores_tin_block.png b/textures/moreores_tin_block.png
new file mode 100644
index 0000000..e28c371
--- /dev/null
+++ b/textures/moreores_tin_block.png
Binary files differ
diff --git a/textures/moreores_tin_ingot.png b/textures/moreores_tin_ingot.png
new file mode 100644
index 0000000..b56279f
--- /dev/null
+++ b/textures/moreores_tin_ingot.png
Binary files differ
diff --git a/textures/moreores_tin_lump.png b/textures/moreores_tin_lump.png
new file mode 100644
index 0000000..0d815aa
--- /dev/null
+++ b/textures/moreores_tin_lump.png
Binary files differ
diff --git a/textures/moreores_tool_bronzeaxe.png b/textures/moreores_tool_bronzeaxe.png
new file mode 100644
index 0000000..b6a4175
--- /dev/null
+++ b/textures/moreores_tool_bronzeaxe.png
Binary files differ
diff --git a/textures/moreores_tool_bronzepick.png b/textures/moreores_tool_bronzepick.png
new file mode 100644
index 0000000..71aa983
--- /dev/null
+++ b/textures/moreores_tool_bronzepick.png
Binary files differ
diff --git a/textures/moreores_tool_bronzeshovel.png b/textures/moreores_tool_bronzeshovel.png
new file mode 100644
index 0000000..8e71203
--- /dev/null
+++ b/textures/moreores_tool_bronzeshovel.png
Binary files differ
diff --git a/textures/moreores_tool_bronzesword.png b/textures/moreores_tool_bronzesword.png
new file mode 100644
index 0000000..366b648
--- /dev/null
+++ b/textures/moreores_tool_bronzesword.png
Binary files differ
diff --git a/textures/moreores_tool_goldaxe.png b/textures/moreores_tool_goldaxe.png
new file mode 100644
index 0000000..41d4896
--- /dev/null
+++ b/textures/moreores_tool_goldaxe.png
Binary files differ
diff --git a/textures/moreores_tool_goldpick.png b/textures/moreores_tool_goldpick.png
new file mode 100644
index 0000000..1a65e8e
--- /dev/null
+++ b/textures/moreores_tool_goldpick.png
Binary files differ
diff --git a/textures/moreores_tool_goldshovel.png b/textures/moreores_tool_goldshovel.png
new file mode 100644
index 0000000..fc72a1e
--- /dev/null
+++ b/textures/moreores_tool_goldshovel.png
Binary files differ
diff --git a/textures/moreores_tool_goldsword.png b/textures/moreores_tool_goldsword.png
new file mode 100644
index 0000000..db26f47
--- /dev/null
+++ b/textures/moreores_tool_goldsword.png
Binary files differ
diff --git a/textures/moreores_tool_mithrilaxe.png b/textures/moreores_tool_mithrilaxe.png
new file mode 100644
index 0000000..68ba36e
--- /dev/null
+++ b/textures/moreores_tool_mithrilaxe.png
Binary files differ
diff --git a/textures/moreores_tool_mithrilpick.png b/textures/moreores_tool_mithrilpick.png
new file mode 100644
index 0000000..6efb469
--- /dev/null
+++ b/textures/moreores_tool_mithrilpick.png
Binary files differ
diff --git a/textures/moreores_tool_mithrilshovel.png b/textures/moreores_tool_mithrilshovel.png
new file mode 100644
index 0000000..66916da
--- /dev/null
+++ b/textures/moreores_tool_mithrilshovel.png
Binary files differ
diff --git a/textures/moreores_tool_mithrilsword.png b/textures/moreores_tool_mithrilsword.png
new file mode 100644
index 0000000..b9396d9
--- /dev/null
+++ b/textures/moreores_tool_mithrilsword.png
Binary files differ
diff --git a/textures/moreores_tool_silveraxe.png b/textures/moreores_tool_silveraxe.png
new file mode 100644
index 0000000..e49fc75
--- /dev/null
+++ b/textures/moreores_tool_silveraxe.png
Binary files differ
diff --git a/textures/moreores_tool_silverpick.png b/textures/moreores_tool_silverpick.png
new file mode 100644
index 0000000..d58e783
--- /dev/null
+++ b/textures/moreores_tool_silverpick.png
Binary files differ
diff --git a/textures/moreores_tool_silvershovel.png b/textures/moreores_tool_silvershovel.png
new file mode 100644
index 0000000..614c0a9
--- /dev/null
+++ b/textures/moreores_tool_silvershovel.png
Binary files differ
diff --git a/textures/moreores_tool_silversword.png b/textures/moreores_tool_silversword.png
new file mode 100644
index 0000000..5344f46
--- /dev/null
+++ b/textures/moreores_tool_silversword.png
Binary files differ