mirror of
https://github.com/minetest-mods/technic.git
synced 2024-08-20 13:34:12 +02:00
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.
This commit is contained in:
parent
989b35f365
commit
6d1e9b4d61
@ -74,7 +74,7 @@ minetest.register_node("technic:concrete_post", {
|
|||||||
})
|
})
|
||||||
if type(register_stair_and_slab_and_panel_and_micro) == "function" then
|
if type(register_stair_and_slab_and_panel_and_micro) == "function" then
|
||||||
register_stair_and_slab_and_panel_and_micro(":stairsplus", "concrete", "technic:concrete",
|
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"},
|
{"technic_concrete_block.png"},
|
||||||
"Concrete Stairs",
|
"Concrete Stairs",
|
||||||
"Concrete Slab",
|
"Concrete Slab",
|
||||||
@ -84,7 +84,7 @@ register_stair_and_slab_and_panel_and_micro(":stairsplus", "concrete", "technic:
|
|||||||
end
|
end
|
||||||
if type(register_stair_slab_panel_micro) == "function" then
|
if type(register_stair_slab_panel_micro) == "function" then
|
||||||
register_stair_slab_panel_micro(":stairsplus", "concrete", "technic:concrete",
|
register_stair_slab_panel_micro(":stairsplus", "concrete", "technic:concrete",
|
||||||
{cracky=3},
|
{cracky=3, not_in_creative_inventory=1},
|
||||||
{"technic_concrete_block.png"},
|
{"technic_concrete_block.png"},
|
||||||
"Concrete Stairs",
|
"Concrete Stairs",
|
||||||
"Concrete Slab",
|
"Concrete Slab",
|
||||||
|
94
technic/concrete.lua~
Normal file
94
technic/concrete.lua~
Normal file
@ -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
|
141
technic/ores.lua
141
technic/ores.lua
@ -30,17 +30,64 @@ minetest.register_node( "technic:granite", {
|
|||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node( "technic:obsidian", {
|
-- cross-compatibility with default obsidian
|
||||||
description = "Obsidian",
|
|
||||||
tiles = { "technic_obsidian.png" },
|
function register_technic_stairs_alias(modname, origname, newmod, newname)
|
||||||
is_ground_content = true,
|
minetest.register_alias(modname .. ":slab_" .. origname, newmod..":slab_" .. newname)
|
||||||
groups = {cracky=3},
|
minetest.register_alias(modname .. ":slab_" .. origname .. "_inverted", newmod..":slab_" .. newname .. "_inverted")
|
||||||
sounds = default.node_sound_stone_defaults(),
|
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
|
if type(register_stair_and_slab_and_panel_and_micro) == "function" then
|
||||||
register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble", "technic:marble",
|
register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble", "technic:marble",
|
||||||
{cracky=3},
|
{cracky=3, not_in_creative_inventory=1},
|
||||||
{"technic_marble.png"},
|
{"technic_marble.png"},
|
||||||
"Marble Stairs",
|
"Marble Stairs",
|
||||||
"Marble Slab",
|
"Marble Slab",
|
||||||
@ -48,7 +95,7 @@ register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble", "technic:ma
|
|||||||
"Marble Microblock",
|
"Marble Microblock",
|
||||||
"marble")
|
"marble")
|
||||||
register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble_bricks", "technic:marble_bricks",
|
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"},
|
{"technic_marble_bricks.png"},
|
||||||
"Marble Bricks Stairs",
|
"Marble Bricks Stairs",
|
||||||
"Marble Bricks Slab",
|
"Marble Bricks Slab",
|
||||||
@ -56,16 +103,16 @@ register_stair_and_slab_and_panel_and_micro(":stairsplus", "marble_bricks", "tec
|
|||||||
"Marble Bricks Microblock",
|
"Marble Bricks Microblock",
|
||||||
"marble_bricks")
|
"marble_bricks")
|
||||||
register_stair_and_slab_and_panel_and_micro(":stairsplus", "granite", "technic:granite",
|
register_stair_and_slab_and_panel_and_micro(":stairsplus", "granite", "technic:granite",
|
||||||
{cracky=3},
|
{cracky=3, not_in_creative_inventory=1},
|
||||||
{"technic_granite.png"},
|
{"technic_granite.png"},
|
||||||
"Granite Stairs",
|
"Granite Stairs",
|
||||||
"Granite Slab",
|
"Granite Slab",
|
||||||
"Granite Panel",
|
"Granite Panel",
|
||||||
"Granite Microblock",
|
"Granite Microblock",
|
||||||
"granite")
|
"granite")
|
||||||
register_stair_and_slab_and_panel_and_micro(":stairsplus", "obsidian", "technic:obsidian",
|
register_stair_and_slab_and_panel_and_micro(":stairsplus", "obsidian", "default:obsidian",
|
||||||
{cracky=3},
|
{cracky=3, not_in_creative_inventory=1},
|
||||||
{"technic_obsidian.png"},
|
{"default_obsidian.png"},
|
||||||
"Obsidian Stairs",
|
"Obsidian Stairs",
|
||||||
"Obsidian Slab",
|
"Obsidian Slab",
|
||||||
"Obsidian Panel",
|
"Obsidian Panel",
|
||||||
@ -75,7 +122,7 @@ end
|
|||||||
|
|
||||||
if type(register_stair_slab_panel_micro) == "function" then
|
if type(register_stair_slab_panel_micro) == "function" then
|
||||||
register_stair_slab_panel_micro(":stairsplus", "marble", "technic:marble",
|
register_stair_slab_panel_micro(":stairsplus", "marble", "technic:marble",
|
||||||
{cracky=3},
|
{cracky=3, not_in_creative_inventory=1},
|
||||||
{"technic_marble.png"},
|
{"technic_marble.png"},
|
||||||
"Marble Stairs",
|
"Marble Stairs",
|
||||||
"Marble Slab",
|
"Marble Slab",
|
||||||
@ -83,7 +130,7 @@ register_stair_slab_panel_micro(":stairsplus", "marble", "technic:marble",
|
|||||||
"Marble Microblock",
|
"Marble Microblock",
|
||||||
"marble")
|
"marble")
|
||||||
register_stair_slab_panel_micro(":stairsplus", "marble_bricks", "technic:marble_bricks",
|
register_stair_slab_panel_micro(":stairsplus", "marble_bricks", "technic:marble_bricks",
|
||||||
{cracky=3},
|
{cracky=3, not_in_creative_inventory=1},
|
||||||
{"technic_marble_bricks.png"},
|
{"technic_marble_bricks.png"},
|
||||||
"Marble Bricks Stairs",
|
"Marble Bricks Stairs",
|
||||||
"Marble Bricks Slab",
|
"Marble Bricks Slab",
|
||||||
@ -91,7 +138,7 @@ register_stair_slab_panel_micro(":stairsplus", "marble_bricks", "technic:marble_
|
|||||||
"Marble Bricks Microblock",
|
"Marble Bricks Microblock",
|
||||||
"marble_bricks")
|
"marble_bricks")
|
||||||
register_stair_slab_panel_micro(":stairsplus", "granite", "technic:granite",
|
register_stair_slab_panel_micro(":stairsplus", "granite", "technic:granite",
|
||||||
{cracky=3},
|
{cracky=3, not_in_creative_inventory=1},
|
||||||
{"technic_granite.png"},
|
{"technic_granite.png"},
|
||||||
"Granite Stairs",
|
"Granite Stairs",
|
||||||
"Granite Slab",
|
"Granite Slab",
|
||||||
@ -99,7 +146,7 @@ register_stair_slab_panel_micro(":stairsplus", "granite", "technic:granite",
|
|||||||
"Granite Microblock",
|
"Granite Microblock",
|
||||||
"granite")
|
"granite")
|
||||||
register_stair_slab_panel_micro(":stairsplus", "obsidian", "technic:obsidian",
|
register_stair_slab_panel_micro(":stairsplus", "obsidian", "technic:obsidian",
|
||||||
{cracky=3},
|
{cracky=3, not_in_creative_inventory=1},
|
||||||
{"technic_obsidian.png"},
|
{"technic_obsidian.png"},
|
||||||
"Obsidian Stairs",
|
"Obsidian Stairs",
|
||||||
"Obsidian Slab",
|
"Obsidian Slab",
|
||||||
@ -201,60 +248,14 @@ minetest.register_craft({
|
|||||||
recipe = "technic:zinc_lump"
|
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)
|
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)
|
default.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)
|
default.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)
|
default.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)
|
default.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)
|
default.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)
|
default.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)
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
function generate_stratus(name, wherein, ceilin, ceil, minp, maxp, seed, stratus_chance, radius, radius_y, deep, height_min, height_max)
|
function generate_stratus(name, wherein, ceilin, ceil, minp, maxp, seed, stratus_chance, radius, radius_y, deep, height_min, height_max)
|
||||||
|
377
technic/ores.lua~
Normal file
377
technic/ores.lua~
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user