mirror of
git://repo.or.cz/rocks.git
synced 2024-11-18 00:08:35 +01:00
92 lines
2.7 KiB
Lua
92 lines
2.7 KiB
Lua
--
|
|
-- Igneous Layer
|
|
--
|
|
|
|
local ign={
|
|
top={
|
|
offset = -10, scale = 0,
|
|
spread = {x=80, y=80, z=80},
|
|
octaves = 0, persist = 0 },
|
|
bot={
|
|
offset = -180, scale = 10, seed=rocksl.GetNextSeed(),
|
|
spread = {x=80, y=80, z=80},
|
|
octaves = 2, persist = 0.7 },
|
|
primary={ name="rocks:basalt" },
|
|
localized={},
|
|
stats={ count=0, total=0, node={}, totalnodes=0 },
|
|
debugging=nil
|
|
}
|
|
|
|
-- Basalt Ex/Mafic hard same as diorite, byt limit=0.5
|
|
minetest.register_node( "rocks:basalt", {
|
|
description = S("Basalt"),
|
|
tiles = { "rocks_Basalt.png" },
|
|
groups = {cracky=3, stone=1},
|
|
is_ground_content = true, sounds = default.node_sound_stone_defaults(),
|
|
})
|
|
|
|
-- more rock defs
|
|
minetest.register_node( "rocks:granite", {
|
|
description = S("Granite"),
|
|
tiles = { "rocks_Granite.png" },
|
|
is_ground_content = true, sounds = default.node_sound_stone_defaults(),
|
|
groups = {cracky=3, stone=1},
|
|
})
|
|
minetest.register_node( "rocks:diorite", {
|
|
description = S("Diorite"),
|
|
tiles = { "rocks_Diorite.png" },
|
|
groups = {cracky=3, stone=1},
|
|
is_ground_content = true, sounds = default.node_sound_stone_defaults(),
|
|
})
|
|
minetest.register_node( "rocks:gabbro", {
|
|
description = S("Gabbro"),
|
|
tiles = { "rocks_Gabbro.png" },
|
|
groups = {cracky=3, stone=1},
|
|
is_ground_content = true, sounds = default.node_sound_stone_defaults(),
|
|
})
|
|
|
|
local reg=function(name,param)
|
|
rocksl.register_stratus(ign,name,param)
|
|
end
|
|
rocks.register_igneous_stratus=reg
|
|
|
|
-- rock registration
|
|
reg("rocks:granite", { spread=40, height=32, treshold=0.06})
|
|
reg("rocks:diorite", { spread=40, height=32, treshold=0.23})
|
|
reg("rocks:gabbro", { spread=40, height=32, treshold=0.36})
|
|
|
|
-- vein stuff
|
|
ign.veins={}
|
|
|
|
local regv=function(name,param)
|
|
rocksl.register_vein(ign.veins,name,param)
|
|
end
|
|
rocks.register_vein=regv
|
|
|
|
rocks.register_vein("default:nyancat",{
|
|
wherein={"rocks:granite"},
|
|
miny=-160, maxy=20,
|
|
radius={ average=10, amplitude=4, frequency=8 },
|
|
density=100,
|
|
rarity=0.0025, -- this^3*mapblock_volume veins per mapblock
|
|
ores={
|
|
{ ore="default:sand", percent=30 },
|
|
{ ore="default:dirt", percent=30 },
|
|
}
|
|
})
|
|
|
|
|
|
minetest.register_on_generated(function(minp, maxp, seed)
|
|
rocksl.layergen(ign,minp,maxp,seed)
|
|
rocksl.veingen(ign.veins,minp,maxp,seed)
|
|
end)
|
|
|
|
minetest.register_on_shutdown(function()
|
|
if (ign.stats.count==0) then rocksl.print("[rocks](ign) stats not available, no chunks generated") return end
|
|
rocksl.print("[rocks](ign) generated total "..ign.stats.count.." chunks in "..ign.stats.total.." seconds ("..(ign.stats.total/ign.stats.count).." seconds per "..ign.stats.side.."^3 chunk)")
|
|
for name,total in pairs(ign.stats.node) do
|
|
rocksl.print("[rocks](ign) "..name..": "..total.." nodes placed ("..(total*100)/(ign.stats.totalnodes).." %)")
|
|
end
|
|
end)
|
|
|
|
-- ~ Tomas Brod |