update
parent
009f3da016
commit
d41c354c0e
67
init.lua
67
init.lua
|
@ -26,8 +26,9 @@ minetest.register_craft({
|
|||
})
|
||||
|
||||
--Node------------------------------------------------------------------------------------
|
||||
local function orenode(name, drops)
|
||||
local function orenode(name, drops, desc)
|
||||
minetest.register_node("extrablocks:"..name.."_ore", {
|
||||
description = desc,
|
||||
tile_images = {"default_stone.png^extrablocks_"..name.."_ore.png"},
|
||||
groups = {cracky=3},
|
||||
drop = drops,
|
||||
|
@ -49,11 +50,11 @@ local function stonelikenode(name, desc)
|
|||
monode(name, desc, default.node_sound_stone_defaults(), 0)
|
||||
end
|
||||
|
||||
orenode("marble", "marble_clean")
|
||||
stonelikenode("marble_ore", "Marble Ore")
|
||||
stonelikenode("marble_tiling", "Tiling")
|
||||
stonelikenode("marble_clean", "Marble")
|
||||
|
||||
orenode("lapis_lazuli", "lapis_lazuli_lump")
|
||||
orenode("lapis_lazuli", "extrablocks:lapis_lazuli_lump", "Lapis Lazuli Ore")
|
||||
stonelikenode("lapis_lazuli_block", "Lapis Lazuli Block")
|
||||
|
||||
stonelikenode("previous_cobble", "Previous Cobblestone")
|
||||
|
@ -70,6 +71,14 @@ monode("goldblock", "Goldblock", LIGHT_MAX-1)
|
|||
monode("gold", "Gold", LIGHT_MAX-1)
|
||||
monode("acid", "Acid", LIGHT_MAX-1)
|
||||
|
||||
minetest.register_node("extrablocks:goldstone", {
|
||||
description = "Gold in Stone",
|
||||
tile_images = {"default_stone.png^extrablocks_goldstone.png"},
|
||||
light_source = LIGHT_MAX-1,
|
||||
groups = {cracky=3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
|
||||
----------------------------------------plants----------------------------------------------------------------------------
|
||||
local function plantnode(name, desc, selbox)
|
||||
|
@ -218,3 +227,55 @@ minetest.register_craftitem("extrablocks:muffin", {
|
|||
inventory_image = "extrablocks_muffin.png",
|
||||
on_use = minetest.item_eat(20),
|
||||
})
|
||||
|
||||
|
||||
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("extrablocks:goldstone", "default:stone", minp, maxp, seed+112, 1/11/11/11, 4, -31000, -450)
|
||||
generate_ore("extrablocks:goldstone", "default:stone", minp, maxp, seed+113, 1/11/11/11, 4, -31000, -1000)
|
||||
generate_ore("extrablocks:lapis_lazuli_ore","default:stone", minp, maxp, seed+114, 1/10/10/10, 3, -300, -80)
|
||||
generate_ore("extrablocks:lapis_lazuli_ore","default:stone", minp, maxp, seed+115, 1/10/10/10, 3, -300, -150)
|
||||
generate_ore("extrablocks:marble_ore", "default:stone", minp, maxp, seed+116, 1/128, 20, -100, -32)
|
||||
generate_ore("extrablocks:marble_ore", "default:stone", minp, maxp, seed+117, 1/10/10/10, 3, -100, -90)
|
||||
end)
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 971 B |
Loading…
Reference in New Issue