summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2013-03-20 10:50:51 -0400
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2013-03-20 10:50:51 -0400
commit6d1e9b4d61475b813f61b55425074712de8ecc24 (patch)
tree242e0d01cc937af226015d812ca6a567e292e2f3
parent989b35f365d716f534fc0facc3e6280742c45bbc (diff)
Multiple changes, see below:
removed concrete, marble, marble brick, granite, obsidian stairs/etc from creative inventory, made them work with circular saw in moreblocks since this mod depends on that one anyway. Removed technic obsidian block entirely and aliased it to the default obsidian block; all stairs/slabs for obsidian are under the default: namespace. This depends on a small fix to the circular saw that was just added by Sokomine. If your copy of circular saw doesn't have this fix, you can still use /giveme to get the blocks you need. Removed custom generate_ore code and made generate-ore calls use default.generate_ore() since that is the same function anyway. This is so that technic can use the C++ version of that function when it is moved back into the engine.
-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