summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--technic/concrete.lua4
-rw-r--r--technic/concrete.lua~94
-rw-r--r--technic/ores.lua141
-rw-r--r--technic/ores.lua~377
4 files changed, 544 insertions, 72 deletions
diff --git a/technic/concrete.lua b/technic/concrete.lua
index 929f155..d936f5b 100644
--- a/technic/concrete.lua
+++ b/technic/concrete.lua
@@ -74,7 +74,7 @@ minetest.register_node("technic:concrete_post", {
})
if type(register_stair_and_slab_and_panel_and_micro) == "function" then
register_stair_and_slab_and_panel_and_micro(":stairsplus", "concrete", "technic:concrete",
- {cracky=3},
+ {cracky=3, not_in_creative_inventory=1},
{"technic_concrete_block.png"},
"Concrete Stairs",
"Concrete Slab",
@@ -84,7 +84,7 @@ register_stair_and_slab_and_panel_and_micro(":stairsplus", "concrete", "technic:
end
if type(register_stair_slab_panel_micro) == "function" then
register_stair_slab_panel_micro(":stairsplus", "concrete", "technic:concrete",
- {cracky=3},
+ {cracky=3, not_in_creative_inventory=1},
{"technic_concrete_block.png"},
"Concrete Stairs",
"Concrete Slab",
diff --git a/technic/concrete.lua~ b/technic/concrete.lua~
new file mode 100644
index 0000000..929f155
--- /dev/null
+++ b/technic/concrete.lua~
@@ -0,0 +1,94 @@
+
+minetest.register_craft({
+ output = 'technic:rebar 6',
+ recipe = {
+ {'','', 'default:steel_ingot'},
+ {'','default:steel_ingot',''},
+ {'default:steel_ingot', '', ''},
+ }
+})
+
+minetest.register_craft({
+ output = 'technic:concrete 5',
+ recipe = {
+ {'default:stone','technic:rebar','default:stone'},
+ {'technic:rebar','default:stone','technic:rebar'},
+ {'default:stone','technic:rebar','default:stone'},
+ }
+})
+
+minetest.register_craft({
+ output = 'technic:concrete_post 4',
+ recipe = {
+ {'default:stone','technic:rebar','default:stone'},
+ {'default:stone','technic:rebar','default:stone'},
+ {'default:stone','technic:rebar','default:stone'},
+}
+})
+
+minetest.register_craftitem("technic:rebar", {
+ description = "Rebar",
+ inventory_image = "technic_rebar.png",
+ stack_max = 99,
+})
+
+minetest.register_craftitem("technic:concrete", {
+ description = "Concrete Block",
+ inventory_image = "technic_concrete_block.png",
+ stack_max = 99,
+})
+
+minetest.register_craftitem("technic:concrete_post", {
+ description = "Concrete Post",
+ inventory_image = "technic_concrete_post.png",
+ stack_max = 99,
+})
+
+
+
+-- NODES:
+
+minetest.register_node("technic:concrete", {
+ description = "Concrete Block",
+ tile_images = {"technic_concrete_block.png",},
+ is_ground_content = true,
+ groups = {cracky=1},
+ sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_node("technic:concrete_post", {
+ description = "Concrete Post",
+ drawtype = "fencelike",
+ tiles = {"technic_concrete_block.png"},
+ inventory_image = "default_fence.png",
+ wield_image = "default_fence.png",
+ paramtype = "light",
+ is_ground_content = true,
+ selection_box = {
+ type = "fixed",
+ fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
+ },
+
+ groups = {cracky=1},
+ sounds = default.node_sound_stone_defaults(),
+})
+if type(register_stair_and_slab_and_panel_and_micro) == "function" then
+register_stair_and_slab_and_panel_and_micro(":stairsplus", "concrete", "technic:concrete",
+ {cracky=3},
+ {"technic_concrete_block.png"},
+ "Concrete Stairs",
+ "Concrete Slab",
+ "Concrete Panel",
+ "Concrete Microblock",
+ "concrete")
+end
+if type(register_stair_slab_panel_micro) == "function" then
+register_stair_slab_panel_micro(":stairsplus", "concrete", "technic:concrete",
+ {cracky=3},
+ {"technic_concrete_block.png"},
+ "Concrete Stairs",
+ "Concrete Slab",
+ "Concrete Panel",
+ "Concrete Microblock",
+ "concrete")
+end
diff --git a/technic/ores.lua b/technic/ores.lua
index 92cf50f..c78fb6e 100644
--- a/technic/ores.lua
+++ b/technic/ores.lua
@@ -30,17 +30,64 @@ minetest.register_node( "technic:granite", {
sounds = default.node_sound_stone_defaults(),
})
-minetest.register_node( "technic:obsidian", {
- description = "Obsidian",
- tiles = { "technic_obsidian.png" },
- is_ground_content = true,
- groups = {cracky=3},
- sounds = default.node_sound_stone_defaults(),
-})
+-- cross-compatibility with default obsidian
+
+function register_technic_stairs_alias(modname, origname, newmod, newname)
+ minetest.register_alias(modname .. ":slab_" .. origname, newmod..":slab_" .. newname)
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_inverted", newmod..":slab_" .. newname .. "_inverted")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_wall", newmod..":slab_" .. newname .. "_wall")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_quarter", newmod..":slab_" .. newname .. "_quarter")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_quarter_inverted", newmod..":slab_" .. newname .. "_quarter_inverted")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_quarter_wall", newmod..":slab_" .. newname .. "_quarter_wall")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_three_quarter", newmod..":slab_" .. newname .. "_three_quarter")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_three_quarter_inverted", newmod..":slab_" .. newname .. "_three_quarter_inverted")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_three_quarter_wall", newmod..":slab_" .. newname .. "_three_quarter_wall")
+ minetest.register_alias(modname .. ":stair_" .. origname, newmod..":stair_" .. newname)
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_inverted", newmod..":stair_" .. newname .. "_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall", newmod..":stair_" .. newname .. "_wall")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half", newmod..":stair_" .. newname .. "_wall_half")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half_inverted", newmod..":stair_" .. newname .. "_wall_half_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_half", newmod..":stair_" .. newname .. "_half")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_half_inverted", newmod..":stair_" .. newname .. "_half_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_right_half", newmod..":stair_" .. newname .. "_right_half")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_right_half_inverted", newmod..":stair_" .. newname .. "_right_half_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half", newmod..":stair_" .. newname .. "_wall_half")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half_inverted", newmod..":stair_" .. newname .. "_wall_half_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_inner", newmod..":stair_" .. newname .. "_inner")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_inner_inverted", newmod..":stair_" .. newname .. "_inner_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_outer", newmod..":stair_" .. newname .. "_outer")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_outer_inverted", newmod..":stair_" .. newname .. "_outer_inverted")
+ minetest.register_alias(modname .. ":panel_" .. origname .. "_bottom", newmod..":panel_" .. newname .. "_bottom")
+ minetest.register_alias(modname .. ":panel_" .. origname .. "_top", newmod..":panel_" .. newname .. "_top")
+ minetest.register_alias(modname .. ":panel_" .. origname .. "_vertical", newmod..":panel_" .. newname .. "_vertical")
+ minetest.register_alias(modname .. ":micro_" .. origname .. "_bottom", newmod..":micro_" .. newname .. "_bottom")
+ minetest.register_alias(modname .. ":micro_" .. origname .. "_top", newmod..":micro_" .. newname .. "_top")
+end
+
+
+minetest.register_alias("technic:obsidian", "default:obsidian")
+minetest.register_alias("moreblocks:obsidian", "default:obsidian")
+
+register_stair_slab_panel_micro(
+ ":default",
+ "obsidian",
+ "default:obsidian",
+ {cracky=3, not_in_creative_inventory=1},
+ {"default_obsidian.png"},
+ "Obsidian",
+ "default:obsidian",
+ "none",
+ light
+)
+
+register_technic_stairs_alias("moreblocks", "obsidian", "default", "obsidian")
+table.insert(circular_saw.known_stairs, "default:obsidian")
+
+-- other stairs/slabs
if type(register_stair_and_slab_and_panel_and_micro) == "function" then
register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble", "technic:marble",
- {cracky=3},
+ {cracky=3, not_in_creative_inventory=1},
{"technic_marble.png"},
"Marble Stairs",
"Marble Slab",
@@ -48,7 +95,7 @@ register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble", "technic:ma
"Marble Microblock",
"marble")
register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble_bricks", "technic:marble_bricks",
- {cracky=3},
+ {cracky=3, not_in_creative_inventory=1},
{"technic_marble_bricks.png"},
"Marble Bricks Stairs",
"Marble Bricks Slab",
@@ -56,16 +103,16 @@ register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble_bricks", "tec
"Marble Bricks Microblock",
"marble_bricks")
register_stair_and_slab_and_panel_and_micro(":stairsplus", "granite", "technic:granite",
- {cracky=3},
+ {cracky=3, not_in_creative_inventory=1},
{"technic_granite.png"},
"Granite Stairs",
"Granite Slab",
"Granite Panel",
"Granite Microblock",
"granite")
-register_stair_and_slab_and_panel_and_micro(":stairsplus", "obsidian", "technic:obsidian",
- {cracky=3},
- {"technic_obsidian.png"},
+register_stair_and_slab_and_panel_and_micro(":stairsplus", "obsidian", "default:obsidian",
+ {cracky=3, not_in_creative_inventory=1},
+ {"default_obsidian.png"},
"Obsidian Stairs",
"Obsidian Slab",
"Obsidian Panel",
@@ -75,7 +122,7 @@ end
if type(register_stair_slab_panel_micro) == "function" then
register_stair_slab_panel_micro(":stairsplus", "marble", "technic:marble",
- {cracky=3},
+ {cracky=3, not_in_creative_inventory=1},
{"technic_marble.png"},
"Marble Stairs",
"Marble Slab",
@@ -83,7 +130,7 @@ register_stair_slab_panel_micro(":stairsplus", "marble", "technic:marble",
"Marble Microblock",
"marble")
register_stair_slab_panel_micro(":stairsplus", "marble_bricks", "technic:marble_bricks",
- {cracky=3},
+ {cracky=3, not_in_creative_inventory=1},
{"technic_marble_bricks.png"},
"Marble Bricks Stairs",
"Marble Bricks Slab",
@@ -91,7 +138,7 @@ register_stair_slab_panel_micro(":stairsplus", "marble_bricks", "technic:marble_
"Marble Bricks Microblock",
"marble_bricks")
register_stair_slab_panel_micro(":stairsplus", "granite", "technic:granite",
- {cracky=3},
+ {cracky=3, not_in_creative_inventory=1},
{"technic_granite.png"},
"Granite Stairs",
"Granite Slab",
@@ -99,7 +146,7 @@ register_stair_slab_panel_micro(":stairsplus", "granite", "technic:granite",
"Granite Microblock",
"granite")
register_stair_slab_panel_micro(":stairsplus", "obsidian", "technic:obsidian",
- {cracky=3},
+ {cracky=3, not_in_creative_inventory=1},
{"technic_obsidian.png"},
"Obsidian Stairs",
"Obsidian Slab",
@@ -201,60 +248,14 @@ minetest.register_craft({
recipe = "technic:zinc_lump"
})
-
-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("technic:mineral_diamond", "default:stone", minp, maxp, seed+21, 1/11/11/11, 4, -31000, -450)
-generate_ore("technic:mineral_uranium", "default:stone", minp, maxp, seed+22, 1/10/10/10, 3, -300, -80)
-generate_ore("technic:mineral_chromium", "default:stone", minp, maxp, seed+23, 1/10/10/10, 2, -31000, -100)
-generate_ore("technic:mineral_zinc", "default:stone", minp, maxp, seed+24, 1/9/9/9, 4, -31000, 2)
-generate_ore("technic:marble", "default:stone", minp, maxp, seed+25, 1/128, 20, -100, -32)
-generate_ore("technic:granite", "default:stone", minp, maxp, seed+25, 1/128, 15, -190, -90)
-generate_stratus("technic:obsidian",
- {"default:stone"},
- {"default:lava_source"},{"default:air"},
- minp, maxp, seed+4, 10, 25, 7, -450, -31000, -450)
+default.generate_ore("technic:mineral_diamond", "default:stone", minp, maxp, seed+21, 1/11/11/11, 4, -31000, -450)
+default.generate_ore("technic:mineral_uranium", "default:stone", minp, maxp, seed+22, 1/10/10/10, 3, -300, -80)
+default.generate_ore("technic:mineral_chromium", "default:stone", minp, maxp, seed+23, 1/10/10/10, 2, -31000, -100)
+default.generate_ore("technic:mineral_zinc", "default:stone", minp, maxp, seed+24, 1/9/9/9, 4, -31000, 2)
+default.generate_ore("technic:marble", "default:stone", minp, maxp, seed+25, 1/128, 20, -100, -32)
+default.generate_ore("technic:granite", "default:stone", minp, maxp, seed+25, 1/128, 15, -190, -90)
+
end)
function generate_stratus(name, wherein, ceilin, ceil, minp, maxp, seed, stratus_chance, radius, radius_y, deep, height_min, height_max)
diff --git a/technic/ores.lua~ b/technic/ores.lua~
new file mode 100644
index 0000000..3804460
--- /dev/null
+++ b/technic/ores.lua~
@@ -0,0 +1,377 @@
+minetest.register_node( "technic:marble", {
+ description = "Marble",
+ tiles = { "technic_marble.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_node( "technic:marble_bricks", {
+ description = "Marble Bricks",
+ tiles = { "technic_marble_bricks.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_craft({
+ output = 'technic:marble_bricks 4',
+ recipe = {
+ {'technic:marble','technic:marble'},
+ {'technic:marble','technic:marble'}
+ }
+})
+
+minetest.register_node( "technic:granite", {
+ description = "Granite",
+ tiles = { "technic_granite.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+})
+
+-- cross-compatibility with default obsidian
+
+function register_technic_stairs_alias(modname, origname, newmod, newname)
+ minetest.register_alias(modname .. ":slab_" .. origname, newmod..":slab_" .. newname)
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_inverted", newmod..":slab_" .. newname .. "_inverted")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_wall", newmod..":slab_" .. newname .. "_wall")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_quarter", newmod..":slab_" .. newname .. "_quarter")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_quarter_inverted", newmod..":slab_" .. newname .. "_quarter_inverted")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_quarter_wall", newmod..":slab_" .. newname .. "_quarter_wall")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_three_quarter", newmod..":slab_" .. newname .. "_three_quarter")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_three_quarter_inverted", newmod..":slab_" .. newname .. "_three_quarter_inverted")
+ minetest.register_alias(modname .. ":slab_" .. origname .. "_three_quarter_wall", newmod..":slab_" .. newname .. "_three_quarter_wall")
+ minetest.register_alias(modname .. ":stair_" .. origname, newmod..":stair_" .. newname)
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_inverted", newmod..":stair_" .. newname .. "_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall", newmod..":stair_" .. newname .. "_wall")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half", newmod..":stair_" .. newname .. "_wall_half")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half_inverted", newmod..":stair_" .. newname .. "_wall_half_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_half", newmod..":stair_" .. newname .. "_half")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_half_inverted", newmod..":stair_" .. newname .. "_half_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_right_half", newmod..":stair_" .. newname .. "_right_half")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_right_half_inverted", newmod..":stair_" .. newname .. "_right_half_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half", newmod..":stair_" .. newname .. "_wall_half")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half_inverted", newmod..":stair_" .. newname .. "_wall_half_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_inner", newmod..":stair_" .. newname .. "_inner")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_inner_inverted", newmod..":stair_" .. newname .. "_inner_inverted")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_outer", newmod..":stair_" .. newname .. "_outer")
+ minetest.register_alias(modname .. ":stair_" .. origname .. "_outer_inverted", newmod..":stair_" .. newname .. "_outer_inverted")
+ minetest.register_alias(modname .. ":panel_" .. origname .. "_bottom", newmod..":panel_" .. newname .. "_bottom")
+ minetest.register_alias(modname .. ":panel_" .. origname .. "_top", newmod..":panel_" .. newname .. "_top")
+ minetest.register_alias(modname .. ":panel_" .. origname .. "_vertical", newmod..":panel_" .. newname .. "_vertical")
+ minetest.register_alias(modname .. ":micro_" .. origname .. "_bottom", newmod..":micro_" .. newname .. "_bottom")
+ minetest.register_alias(modname .. ":micro_" .. origname .. "_top", newmod..":micro_" .. newname .. "_top")
+end
+
+
+minetest.register_alias("technic:obsidian", "default:obsidian")
+minetest.register_alias("moreblocks:obsidian", "default:obsidian")
+
+register_stair_slab_panel_micro(
+ "moreblocks",
+ "obsidian",
+ "moreblocks:obsidian",
+ {cracky=3, not_in_creative_inventory=1},
+ {"default_obsidian.png"},
+ "Obsidian",
+ "moreblocks:obsidian",
+ "none",
+ light
+)
+
+register_technic_stairs_alias("default", "obsidian", "moreblocks", "obsidian")
+table.insert(circular_saw.known_stairs, "default:obsidian")
+
+-- other stairs/slabs
+
+if type(register_stair_and_slab_and_panel_and_micro) == "function" then
+register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble", "technic:marble",
+ {cracky=3, not_in_creative_inventory=1},
+ {"technic_marble.png"},
+ "Marble Stairs",
+ "Marble Slab",
+ "Marble Panel",
+ "Marble Microblock",
+ "marble")
+register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble_bricks", "technic:marble_bricks",
+ {cracky=3, not_in_creative_inventory=1},
+ {"technic_marble_bricks.png"},
+ "Marble Bricks Stairs",
+ "Marble Bricks Slab",
+ "Marble Bricks Panel",
+ "Marble Bricks Microblock",
+ "marble_bricks")
+register_stair_and_slab_and_panel_and_micro(":stairsplus", "granite", "technic:granite",
+ {cracky=3, not_in_creative_inventory=1},
+ {"technic_granite.png"},
+ "Granite Stairs",
+ "Granite Slab",
+ "Granite Panel",
+ "Granite Microblock",
+ "granite")
+register_stair_and_slab_and_panel_and_micro(":stairsplus", "obsidian", "default:obsidian",
+ {cracky=3, not_in_creative_inventory=1},
+ {"default_obsidian.png"},
+ "Obsidian Stairs",
+ "Obsidian Slab",
+ "Obsidian Panel",
+ "Obsidian Microblock",
+ "obsidian")
+end
+
+if type(register_stair_slab_panel_micro) == "function" then
+register_stair_slab_panel_micro(":stairsplus", "marble", "technic:marble",
+ {cracky=3, not_in_creative_inventory=1},
+ {"technic_marble.png"},
+ "Marble Stairs",
+ "Marble Slab",
+ "Marble Panel",
+ "Marble Microblock",
+ "marble")
+register_stair_slab_panel_micro(":stairsplus", "marble_bricks", "technic:marble_bricks",
+ {cracky=3, not_in_creative_inventory=1},
+ {"technic_marble_bricks.png"},
+ "Marble Bricks Stairs",
+ "Marble Bricks Slab",
+ "Marble Bricks Panel",
+ "Marble Bricks Microblock",
+ "marble_bricks")
+register_stair_slab_panel_micro(":stairsplus", "granite", "technic:granite",
+ {cracky=3, not_in_creative_inventory=1},
+ {"technic_granite.png"},
+ "Granite Stairs",
+ "Granite Slab",
+ "Granite Panel",
+ "Granite Microblock",
+ "granite")
+register_stair_slab_panel_micro(":stairsplus", "obsidian", "technic:obsidian",
+ {cracky=3, not_in_creative_inventory=1},
+ {"technic_obsidian.png"},
+ "Obsidian Stairs",
+ "Obsidian Slab",
+ "Obsidian Panel",
+ "Obsidian Microblock",
+ "obsidian")
+end
+
+minetest.register_node( "technic:mineral_diamond", {
+ description = "Diamond Ore",
+ tiles = { "default_stone.png^technic_mineral_diamond.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+ drop = 'craft "technic:diamond" 1',
+})
+
+minetest.register_craftitem( "technic:diamond", {
+ description = "Diamond",
+ inventory_image = "technic_diamond.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_node( "technic:mineral_uranium", {
+ description = "Uranium Ore",
+ tiles = { "default_stone.png^technic_mineral_uranium.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+ drop = 'craft "technic:uranium" 1',
+})
+
+minetest.register_craftitem( "technic:uranium", {
+ description = "Uranium",
+ inventory_image = "technic_uranium.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_node( "technic:mineral_chromium", {
+ description = "Chromium Ore",
+ tiles = { "default_stone.png^technic_mineral_chromium.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+ drop = 'craft "technic:chromium_lump" 1',
+})
+
+minetest.register_craftitem( "technic:chromium_lump", {
+ description = "Chromium Lump",
+ inventory_image = "technic_chromium_lump.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craftitem( "technic:chromium_ingot", {
+ description = "Chromium Ingot",
+ inventory_image = "technic_chromium_ingot.png",
+ on_place_on_ground = minetest.craftitem_place_item,
+})
+
+minetest.register_craft({
+ type = 'cooking',
+ output = "technic:chromium_ingot",
+ recipe = "technic:chromium_lump"
+ })
+
+
+minetest.register_node( "technic:mineral_zinc", {
+ description = "Zinc Ore",
+ tile_images = { "default_stone.png^technic_mineral_zinc.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+ drop = 'craft "technic:zinc_lump" 1',
+})
+
+minetest.register_craftitem( "technic:zinc_lump", {
+ description = "Zinc Lump",
+ inventory_image = "technic_zinc_lump.png",
+})
+
+minetest.register_craftitem( "technic:zinc_ingot", {
+ description = "Zinc Ingot",
+ inventory_image = "technic_zinc_ingot.png",
+})
+
+minetest.register_craftitem( "technic:stainless_steel_ingot", {
+ description = "Stainless Steel Ingot",
+ inventory_image = "technic_stainless_steel_ingot.png",
+})
+
+minetest.register_craftitem( "technic:brass_ingot", {
+ description = "Brass Ingot",
+ inventory_image = "technic_brass_ingot.png",
+})
+
+minetest.register_craft({
+ type = 'cooking',
+ output = "technic:zinc_ingot",
+ recipe = "technic:zinc_lump"
+ })
+
+minetest.register_on_generated(function(minp, maxp, seed)
+default.generate_ore("technic:mineral_diamond", "default:stone", minp, maxp, seed+21, 1/11/11/11, 4, -31000, -450)
+default.generate_ore("technic:mineral_uranium", "default:stone", minp, maxp, seed+22, 1/10/10/10, 3, -300, -80)
+default.generate_ore("technic:mineral_chromium", "default:stone", minp, maxp, seed+23, 1/10/10/10, 2, -31000, -100)
+default.generate_ore("technic:mineral_zinc", "default:stone", minp, maxp, seed+24, 1/9/9/9, 4, -31000, 2)
+default.generate_ore("technic:marble", "default:stone", minp, maxp, seed+25, 1/128, 20, -100, -32)
+default.generate_ore("technic:granite", "default:stone", minp, maxp, seed+25, 1/128, 15, -190, -90)
+
+end)
+
+function generate_stratus(name, wherein, ceilin, ceil, minp, maxp, seed, stratus_chance, radius, radius_y, deep, height_min, height_max)
+ if maxp.y < height_min or minp.y > height_max then
+ return
+ end
+ -- it will be only generate a stratus for every 100 m of area
+ local stratus_per_volume=1
+ local area=45
+ 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)/area)*((y_max-y_min+1)/area)*((maxp.z-minp.z+1)/area)
+ local pr = PseudoRandom(seed)
+ local blocks = math.floor(stratus_per_volume*volume)
+ print(" <<"..dump(name)..">>");
+ if blocks == 0 then
+ blocks = 1
+ end
+ print(" blocks: "..dump(blocks).." in vol: "..dump(volume).." ("..dump(maxp.x-minp.x+1)..","..dump(y_max-y_min+1)..","..dump(maxp.z-minp.z+1)..")")
+ for i=1,blocks do
+ local x = pr:next(1,stratus_chance)
+ if x == 1 then
+ -- TODO deep
+ local y0=y_max-radius_y+1
+ if y0 < y_min then
+ y0=y_min
+ else
+ y0=pr:next(y_min, y0)
+ end
+ local x0 = maxp.x-radius+1
+ if x0 < minp.x then
+ x0 = minp.x
+ else
+ x0 = pr:next(minp.x, x0)
+ end
+ local z0 = maxp.z-radius+1
+ if z0 < minp.z then
+ x0 = minp.z
+ else
+ z0 = pr:next(minp.z, z0)
+ end
+ local p0 = {x=x0, y=y0, z=z0}
+ local n = minetest.env:get_node(p0).name
+ local i = 0
+ --print(" upper node "..n)
+ x = 0
+ for k, v in ipairs(ceilin) do
+ if n == v then
+ x = 1
+ break
+ end
+ end
+ if x == 1 then
+ -- search for the node to replace
+ --print(" Searching nodes to replace from "..dump(y0-1).." to "..dump(y_min))
+ for y1=y0-1,y_min,-1 do
+ p0.y=y1
+ n = minetest.env:get_node(p0).name
+ x = 0
+ for k, v in ipairs(wherein) do
+ if n == v then
+ x = 1
+ break
+ end
+ end
+ if x == 1 then
+ y0=y1-deep
+ if y0 < y_min then
+ y0 = y_min
+ end
+ break
+ end
+ end
+ local rx=pr:next(radius/2,radius)+1
+ local rz=pr:next(radius/2,radius)+1
+ local ry=pr:next(radius_y/2,radius_y)+1
+ --print(" area of generation ("..dump(rx)..","..dump(rz)..","..dump(ry)..")")
+ for x1=0,rx do
+ rz = rz + 3 - pr:next(1,6)
+ if rz < 1 then
+ rz = 1
+ end
+ for z1=pr:next(1,3),rz do
+ local ry0=ry+ pr:next(1,3)
+ for y1=pr:next(1,3),ry0 do
+ local x2 = x0+x1
+ local y2 = y0+y1
+ local z2 = z0+z1
+ local p2 = {x=x2, y=y2, z=z2}
+ n = minetest.env:get_node(p2).name
+ x = 0
+ for k, v in ipairs(wherein) do
+ if n == v then
+ x = 1
+ break
+ end
+ end
+ if x == 1 then
+ if ceil == nil then
+ minetest.env:set_node(p2, {name=name})
+ i = i +1
+ else
+ local p3 = {p2.x,p2.y+1,p2}
+ if minetest.env:get_node(p3).name == ceil then
+ minetest.env:set_node(p2, {name=name})
+ i = i +1
+ end
+ end
+ end
+ end
+ end
+ end
+ print(" generated "..dump(i).." blocks in ("..dump(x0)..","..dump(y0)..","..dump(z0)..")")
+ end
+
+ end
+ end
+ --print("generate_ore done")
+end