Add crystal stalactites (0.2.1)
No testers were impaled in the making of this release.
This commit is contained in:
parent
47cddff43a
commit
0a0e4b0b53
44
init.lua
44
init.lua
@ -1,4 +1,4 @@
|
|||||||
-- caverealms 0.2 by HeroOfTheWinds
|
-- caverealms 0.2.1 by HeroOfTheWinds
|
||||||
-- For latest stable Minetest and back to 0.4.8
|
-- For latest stable Minetest and back to 0.4.8
|
||||||
-- Depends default
|
-- Depends default
|
||||||
-- License: code WTFPL
|
-- License: code WTFPL
|
||||||
@ -34,6 +34,7 @@ local H_LAG = 15 --max height for stalagmites
|
|||||||
local H_LAC = 20 --...stalactites
|
local H_LAC = 20 --...stalactites
|
||||||
local CRYSTAL = 0.007 --chance of glow crystal formations
|
local CRYSTAL = 0.007 --chance of glow crystal formations
|
||||||
local H_CRY = 9 --max height of glow crystals
|
local H_CRY = 9 --max height of glow crystals
|
||||||
|
local H_CLAC = 13 --max height of glow crystal stalactites
|
||||||
local GEMCHA = 0.03 --chance of small glow gems
|
local GEMCHA = 0.03 --chance of small glow gems
|
||||||
|
|
||||||
|
|
||||||
@ -235,6 +236,41 @@ function caverealms:crystal_stalagmite(x,y,z, area, data)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--crystal stalactite spawner
|
||||||
|
function caverealms:crystal_stalactite(x,y,z, area, data)
|
||||||
|
--contest ids
|
||||||
|
local c_stone = minetest.get_content_id("default:stone")
|
||||||
|
local c_crystore = minetest.get_content_id("caverealms:glow_ore")
|
||||||
|
local c_crystal = minetest.get_content_id("caverealms:glow_crystal")
|
||||||
|
|
||||||
|
local bot = math.random(-H_CLAC, -6) --grab a random height for the stalagmite
|
||||||
|
for j = bot, 0 do --y
|
||||||
|
for k = -3, 3 do
|
||||||
|
for l = -3, 3 do
|
||||||
|
if j >= -1 then
|
||||||
|
if k*k + l*l <= 9 then
|
||||||
|
local vi = area:index(x+k, y+j, z+l-3)
|
||||||
|
data[vi] = c_stone
|
||||||
|
end
|
||||||
|
elseif j >= bot/5 then
|
||||||
|
if k*k + l*l <= 4 then
|
||||||
|
local vi = area:index(x+k, y+j, z+l-3)
|
||||||
|
data[vi] = c_crystore
|
||||||
|
end
|
||||||
|
elseif j >= bot/5 * 3 then
|
||||||
|
if k*k + l*l <= 1 then
|
||||||
|
local vi = area:index(x+k, y+j, z+l-3)
|
||||||
|
data[vi] = c_crystal
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local vi = area:index(x, y+j, z-3)
|
||||||
|
data[vi] = c_crystal
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- On generated function
|
-- On generated function
|
||||||
|
|
||||||
@ -392,6 +428,12 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||||||
caverealms:stalactite(x, y, z, area, data)
|
caverealms:stalactite(x, y, z, area, data)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if math.random() <= CRYSTAL then
|
||||||
|
local ai = area:index(x,y+1,z)
|
||||||
|
if data[ai] ~= c_air then
|
||||||
|
caverealms:crystal_stalactite(x,y,z, area, data)
|
||||||
|
end
|
||||||
|
end
|
||||||
roof[si] = 0
|
roof[si] = 0
|
||||||
else -- solid rock
|
else -- solid rock
|
||||||
stable2[si] = 0
|
stable2[si] = 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user