diff options
| -rw-r--r-- | technic/concrete.lua | 4 | ||||
| -rw-r--r-- | technic/concrete.lua~ | 94 | ||||
| -rw-r--r-- | technic/ores.lua | 141 | ||||
| -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 | 
