Pseudo-merge pull request #3 from Zeno-/master
Manual merge of Zeno-'s changes, with several revisions.
This commit is contained in:
parent
b6d45be712
commit
6d6186af91
238
functions.lua
238
functions.lua
@ -85,7 +85,7 @@ function caverealms:crystal_stalagmite(x,y,z, area, data, biome)
|
|||||||
local c_meseore = minetest.get_content_id("default:stone_with_mese")
|
local c_meseore = minetest.get_content_id("default:stone_with_mese")
|
||||||
local c_ice = minetest.get_content_id("default:ice")
|
local c_ice = minetest.get_content_id("default:ice")
|
||||||
local c_thinice = minetest.get_content_id("caverealms:thin_ice")
|
local c_thinice = minetest.get_content_id("caverealms:thin_ice")
|
||||||
|
|
||||||
--for randomness
|
--for randomness
|
||||||
local mode = 1
|
local mode = 1
|
||||||
if math.random(15) == 1 then
|
if math.random(15) == 1 then
|
||||||
@ -104,105 +104,56 @@ function caverealms:crystal_stalagmite(x,y,z, area, data, biome)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local stalids = {
|
||||||
|
{ {c_crystore, c_crystal}, {c_emore, c_emerald} },
|
||||||
|
{ {c_emore, c_emerald}, {c_crystore, c_crystal} },
|
||||||
|
{ {c_emore, c_emerald}, {c_meseore, c_mesecry} },
|
||||||
|
{ {c_ice, c_thinice}, {c_crystore, c_crystal}}
|
||||||
|
}
|
||||||
|
|
||||||
|
local nid_a
|
||||||
|
local nid_b
|
||||||
|
local nid_s = c_stone --stone base, will be rewritten to ice in certain biomes
|
||||||
|
|
||||||
|
if biome > 3 then
|
||||||
|
if mode == 1 then
|
||||||
|
nid_a = c_ice
|
||||||
|
nid_b = c_thinice
|
||||||
|
nid_s = c_ice
|
||||||
|
else
|
||||||
|
nid_a = c_crystore
|
||||||
|
nid_b = c_crystal
|
||||||
|
end
|
||||||
|
elseif mode == 1 then
|
||||||
|
nid_a = stalids[biome][1][1]
|
||||||
|
nid_b = stalids[biome][1][2]
|
||||||
|
else
|
||||||
|
nid_a = stalids[biome][2][1]
|
||||||
|
nid_b = stalids[biome][2][2]
|
||||||
|
end
|
||||||
|
|
||||||
local top = math.random(5,H_CRY) --grab a random height for the stalagmite
|
local top = math.random(5,H_CRY) --grab a random height for the stalagmite
|
||||||
for j = 0, top do --y
|
for j = 0, top do --y
|
||||||
for k = -3, 3 do
|
for k = -3, 3 do
|
||||||
for l = -3, 3 do
|
for l = -3, 3 do
|
||||||
if j == 0 then
|
if j == 0 then
|
||||||
if k*k + l*l <= 9 then
|
if k*k + l*l <= 9 then
|
||||||
if (biome == 4 or biome == 5) and mode == 1 then
|
local vi = area:index(x+k, y+j, z+l-3)
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
data[vi] = nid_s
|
||||||
data[vi] = c_ice
|
|
||||||
else
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
elseif j <= top/5 then
|
elseif j <= top/5 then
|
||||||
if k*k + l*l <= 4 then
|
if k*k + l*l <= 4 then
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
local vi = area:index(x+k, y+j, z+l-3)
|
||||||
if biome == 1 then
|
data[vi] = nid_a
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_emore
|
|
||||||
else
|
|
||||||
data[vi] = c_crystore
|
|
||||||
end
|
|
||||||
elseif biome == 2 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystore
|
|
||||||
else
|
|
||||||
data[vi] = c_emore
|
|
||||||
end
|
|
||||||
elseif biome == 3 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_meseore
|
|
||||||
else
|
|
||||||
data[vi] = c_emore
|
|
||||||
end
|
|
||||||
elseif biome == 4 or biome == 5 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystore
|
|
||||||
else
|
|
||||||
data[vi] = c_ice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
elseif j <= top/5 * 3 then
|
elseif j <= top/5 * 3 then
|
||||||
if k*k + l*l <= 1 then
|
if k*k + l*l <= 1 then
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
local vi = area:index(x+k, y+j, z+l-3)
|
||||||
if biome == 1 then
|
data[vi] = nid_b
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_emerald
|
|
||||||
else
|
|
||||||
data[vi] = c_crystal
|
|
||||||
end
|
|
||||||
elseif biome == 2 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystal
|
|
||||||
else
|
|
||||||
data[vi] = c_emerald
|
|
||||||
end
|
|
||||||
elseif biome == 3 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_mesecry
|
|
||||||
else
|
|
||||||
data[vi] = c_emerald
|
|
||||||
end
|
|
||||||
elseif biome == 4 or biome == 5 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystal
|
|
||||||
else
|
|
||||||
data[vi] = c_thinice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local vi = area:index(x, y+j, z-3)
|
local vi = area:index(x, y+j, z-3)
|
||||||
if biome == 1 then
|
data[vi] = nid_b
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_emerald
|
|
||||||
else
|
|
||||||
data[vi] = c_crystal
|
|
||||||
end
|
|
||||||
elseif biome == 2 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystal
|
|
||||||
else
|
|
||||||
data[vi] = c_emerald
|
|
||||||
end
|
|
||||||
elseif biome == 3 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_mesecry
|
|
||||||
else
|
|
||||||
data[vi] = c_emerald
|
|
||||||
end
|
|
||||||
elseif biome == 4 or biome == 5 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystal
|
|
||||||
else
|
|
||||||
data[vi] = c_thinice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -220,8 +171,8 @@ function caverealms:crystal_stalactite(x,y,z, area, data, biome)
|
|||||||
local c_mesecry = minetest.get_content_id("caverealms:glow_mese")
|
local c_mesecry = minetest.get_content_id("caverealms:glow_mese")
|
||||||
local c_meseore = minetest.get_content_id("default:stone_with_mese")
|
local c_meseore = minetest.get_content_id("default:stone_with_mese")
|
||||||
local c_ice = minetest.get_content_id("default:ice")
|
local c_ice = minetest.get_content_id("default:ice")
|
||||||
local c_thinice = minetest.get_content_id("caverealms:hanging_thin_ice")
|
local c_thinice = minetest.get_content_id("caverealms:hanging_thin_ice")
|
||||||
|
|
||||||
--for randomness
|
--for randomness
|
||||||
local mode = 1
|
local mode = 1
|
||||||
if math.random(15) == 1 then
|
if math.random(15) == 1 then
|
||||||
@ -240,105 +191,56 @@ function caverealms:crystal_stalactite(x,y,z, area, data, biome)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local stalids = {
|
||||||
|
{ {c_crystore, c_crystal}, {c_emore, c_emerald} },
|
||||||
|
{ {c_emore, c_emerald}, {c_crystore, c_crystal} },
|
||||||
|
{ {c_emore, c_emerald}, {c_meseore, c_mesecry} },
|
||||||
|
{ {c_ice, c_thinice}, {c_crystore, c_crystal}}
|
||||||
|
}
|
||||||
|
|
||||||
|
local nid_a
|
||||||
|
local nid_b
|
||||||
|
local nid_s = c_stone --stone base, will be rewritten to ice in certain biomes
|
||||||
|
|
||||||
|
if biome > 3 then
|
||||||
|
if mode == 1 then
|
||||||
|
nid_a = c_ice
|
||||||
|
nid_b = c_thinice
|
||||||
|
nid_s = c_ice
|
||||||
|
else
|
||||||
|
nid_a = c_crystore
|
||||||
|
nid_b = c_crystal
|
||||||
|
end
|
||||||
|
elseif mode == 1 then
|
||||||
|
nid_a = stalids[biome][1][1]
|
||||||
|
nid_b = stalids[biome][1][2]
|
||||||
|
else
|
||||||
|
nid_a = stalids[biome][2][1]
|
||||||
|
nid_b = stalids[biome][2][2]
|
||||||
|
end
|
||||||
|
|
||||||
local bot = math.random(-H_CLAC, -6) --grab a random height for the stalagmite
|
local bot = math.random(-H_CLAC, -6) --grab a random height for the stalagmite
|
||||||
for j = bot, 0 do --y
|
for j = bot, 0 do --y
|
||||||
for k = -3, 3 do
|
for k = -3, 3 do
|
||||||
for l = -3, 3 do
|
for l = -3, 3 do
|
||||||
if j >= -1 then
|
if j >= -1 then
|
||||||
if k*k + l*l <= 9 then
|
if k*k + l*l <= 9 then
|
||||||
if (biome == 4 or biome == 5) and mode == 1 then
|
local vi = area:index(x+k, y+j, z+l-3)
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
data[vi] = nid_s
|
||||||
data[vi] = c_ice
|
|
||||||
else
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
elseif j >= bot/5 then
|
elseif j >= bot/5 then
|
||||||
if k*k + l*l <= 4 then
|
if k*k + l*l <= 4 then
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
local vi = area:index(x+k, y+j, z+l-3)
|
||||||
if biome == 1 then
|
data[vi] = nid_a
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_emore
|
|
||||||
else
|
|
||||||
data[vi] = c_crystore
|
|
||||||
end
|
|
||||||
elseif biome == 2 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystore
|
|
||||||
else
|
|
||||||
data[vi] = c_emore
|
|
||||||
end
|
|
||||||
elseif biome == 3 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_meseore
|
|
||||||
else
|
|
||||||
data[vi] = c_emore
|
|
||||||
end
|
|
||||||
elseif biome == 4 or biome == 5 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystore
|
|
||||||
else
|
|
||||||
data[vi] = c_ice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
elseif j >= bot/5 * 3 then
|
elseif j >= bot/5 * 3 then
|
||||||
if k*k + l*l <= 1 then
|
if k*k + l*l <= 1 then
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
local vi = area:index(x+k, y+j, z+l-3)
|
||||||
if biome == 1 then
|
data[vi] = nid_b
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_emerald
|
|
||||||
else
|
|
||||||
data[vi] = c_crystal
|
|
||||||
end
|
|
||||||
elseif biome == 2 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystal
|
|
||||||
else
|
|
||||||
data[vi] = c_emerald
|
|
||||||
end
|
|
||||||
elseif biome == 3 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_mesecry
|
|
||||||
else
|
|
||||||
data[vi] = c_emerald
|
|
||||||
end
|
|
||||||
elseif biome == 4 or biome == 5 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystal
|
|
||||||
else
|
|
||||||
data[vi] = c_thinice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local vi = area:index(x, y+j, z-3)
|
local vi = area:index(x, y+j, z-3)
|
||||||
if biome == 1 then
|
data[vi] = nid_b
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_emerald
|
|
||||||
else
|
|
||||||
data[vi] = c_crystal
|
|
||||||
end
|
|
||||||
elseif biome == 2 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystal
|
|
||||||
else
|
|
||||||
data[vi] = c_emerald
|
|
||||||
end
|
|
||||||
elseif biome == 3 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_mesecry
|
|
||||||
else
|
|
||||||
data[vi] = c_emerald
|
|
||||||
end
|
|
||||||
elseif biome == 4 or biome == 5 then
|
|
||||||
if mode == 2 then
|
|
||||||
data[vi] = c_crystal
|
|
||||||
else
|
|
||||||
data[vi] = c_thinice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -351,7 +253,7 @@ function caverealms:giant_shroom(x, y, z, area, data)
|
|||||||
local c_stem = minetest.get_content_id("caverealms:mushroom_stem")
|
local c_stem = minetest.get_content_id("caverealms:mushroom_stem")
|
||||||
local c_cap = minetest.get_content_id("caverealms:mushroom_cap")
|
local c_cap = minetest.get_content_id("caverealms:mushroom_cap")
|
||||||
local c_gills = minetest.get_content_id("caverealms:mushroom_gills")
|
local c_gills = minetest.get_content_id("caverealms:mushroom_gills")
|
||||||
|
|
||||||
z = z - 5
|
z = z - 5
|
||||||
--cap
|
--cap
|
||||||
for k = -5, 5 do
|
for k = -5, 5 do
|
||||||
|
21
init.lua
21
init.lua
@ -44,9 +44,6 @@ local WORMCHA = caverealms.config.wormcha --0.03 --chance of glow worms
|
|||||||
local GIANTCHA = caverealms.config.giantcha --0.001 -- chance of giant mushrooms
|
local GIANTCHA = caverealms.config.giantcha --0.001 -- chance of giant mushrooms
|
||||||
local ICICHA = caverealms.config.icicha --0.035 -- chance of icicles
|
local ICICHA = caverealms.config.icicha --0.035 -- chance of icicles
|
||||||
|
|
||||||
local FALLING_ICICLES = caverealms.config.falling_icicles --true --toggle to turn on or off falling icicles in glaciated biome
|
|
||||||
local FALLCHA = caverealms.config.fallcha --0.33 --chance of causing the structure to fall
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- 3D noise for caverns
|
-- 3D noise for caverns
|
||||||
@ -134,15 +131,19 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||||||
local c_ice = minetest.get_content_id("default:ice")
|
local c_ice = minetest.get_content_id("default:ice")
|
||||||
local c_thinice = minetest.get_content_id("caverealms:thin_ice")
|
local c_thinice = minetest.get_content_id("caverealms:thin_ice")
|
||||||
local c_crystal = minetest.get_content_id("caverealms:glow_crystal")
|
local c_crystal = minetest.get_content_id("caverealms:glow_crystal")
|
||||||
local c_gem = minetest.get_content_id("caverealms:glow_gem")
|
local c_gem1 = minetest.get_content_id("caverealms:glow_gem")
|
||||||
|
local c_gem2 = minetest.get_content_id("caverealms:glow_gem_2")
|
||||||
|
local c_gem3 = minetest.get_content_id("caverealms:glow_gem_3")
|
||||||
|
local c_gem4 = minetest.get_content_id("caverealms:glow_gem_4")
|
||||||
|
local c_gem5 = minetest.get_content_id("caverealms:glow_gem_5")
|
||||||
local c_moss = minetest.get_content_id("caverealms:stone_with_moss")
|
local c_moss = minetest.get_content_id("caverealms:stone_with_moss")
|
||||||
local c_lichen = minetest.get_content_id("caverealms:stone_with_lichen")
|
local c_lichen = minetest.get_content_id("caverealms:stone_with_lichen")
|
||||||
local c_algae = minetest.get_content_id("caverealms:stone_with_algae")
|
local c_algae = minetest.get_content_id("caverealms:stone_with_algae")
|
||||||
local c_fungus = minetest.get_content_id("caverealms:fungus")
|
local c_fungus = minetest.get_content_id("caverealms:fungus")
|
||||||
local c_mycena = minetest.get_content_id("caverealms:mycena")
|
local c_mycena = minetest.get_content_id("caverealms:mycena")
|
||||||
local c_worm = minetest.get_content_id("caverealms:glow_worm")
|
local c_worm = minetest.get_content_id("caverealms:glow_worm")
|
||||||
local c_iciu = minetest.get_content_id("caverealms:icicle_up")
|
local c_iciu = minetest.get_content_id("caverealms:icicle_up")
|
||||||
local c_icid = minetest.get_content_id("caverealms:icicle_down")
|
local c_icid = minetest.get_content_id("caverealms:icicle_down")
|
||||||
|
|
||||||
--some mandatory values
|
--some mandatory values
|
||||||
local sidelen = x1 - x0 + 1 --usually equals 80 with default mapgen values. Always a multiple of 16.
|
local sidelen = x1 - x0 + 1 --usually equals 80 with default mapgen values. Always a multiple of 16.
|
||||||
@ -250,8 +251,14 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||||||
end
|
end
|
||||||
--randomly place glow gems
|
--randomly place glow gems
|
||||||
if math.random() < GEMCHA and biome == 1 then
|
if math.random() < GEMCHA and biome == 1 then
|
||||||
|
-- of random size
|
||||||
|
local gems = { c_gem1, c_gem2, c_gem3, c_gem4, c_gem5 }
|
||||||
|
local gidx = math.random(1, 12)
|
||||||
|
if gidx > 5 then
|
||||||
|
gidx = 1
|
||||||
|
end
|
||||||
local gi = area:index(x,y+1,z)
|
local gi = area:index(x,y+1,z)
|
||||||
data[gi] = c_gem
|
data[gi] = gems[gidx]
|
||||||
end
|
end
|
||||||
if biome == 2 then --if fungus biome
|
if biome == 2 then --if fungus biome
|
||||||
if math.random() < MUSHCHA then --mushrooms
|
if math.random() < MUSHCHA then --mushrooms
|
||||||
|
57
nodes.lua
57
nodes.lua
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
--NODES--
|
--NODES--
|
||||||
|
|
||||||
|
local FALLING_ICICLES = caverealms.config.falling_icicles --true --toggle to turn on or off falling icicles in glaciated biome
|
||||||
|
local FALLCHA = caverealms.config.fallcha --0.33 --chance of causing the structure to fall
|
||||||
|
|
||||||
|
|
||||||
--glowing crystal
|
--glowing crystal
|
||||||
minetest.register_node("caverealms:glow_crystal", {
|
minetest.register_node("caverealms:glow_crystal", {
|
||||||
description = "Glow Crystal",
|
description = "Glow Crystal",
|
||||||
@ -119,25 +123,37 @@ minetest.register_node("caverealms:hanging_thin_ice", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
--glowing crystal gem
|
--glowing crystal gem
|
||||||
minetest.register_node("caverealms:glow_gem", {
|
local glow_gem_size = { 1.0, 1.2, 1.4, 1.6, 1.7 }
|
||||||
description = "Glow Gem",
|
|
||||||
tiles = {"caverealms_glow_gem.png"},
|
for i in ipairs(glow_gem_size) do
|
||||||
inventory_image = "caverealms_glow_gem.png",
|
if i == 1 then
|
||||||
wield_image = "caverealms_glow_gem.png",
|
nodename = "caverealms:glow_gem"
|
||||||
is_ground_content = true,
|
else
|
||||||
groups = {cracky=3, oddly_breakable_by_hand=1},
|
nodename = "caverealms:glow_gem_"..i
|
||||||
sounds = default.node_sound_glass_defaults(),
|
end
|
||||||
light_source = 11,
|
|
||||||
paramtype = "light",
|
vs = glow_gem_size[i]
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
minetest.register_node(nodename, {
|
||||||
buildable_to = true,
|
description = "Glow Gem",
|
||||||
visual_scale = 1.0,
|
tiles = {"caverealms_glow_gem.png"},
|
||||||
selection_box = {
|
inventory_image = "caverealms_glow_gem.png",
|
||||||
type = "fixed",
|
wield_image = "caverealms_glow_gem.png",
|
||||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
is_ground_content = true,
|
||||||
},
|
groups = {cracky=3, oddly_breakable_by_hand=1},
|
||||||
})
|
sounds = default.node_sound_glass_defaults(),
|
||||||
|
light_source = 11,
|
||||||
|
paramtype = "light",
|
||||||
|
drawtype = "plantlike",
|
||||||
|
walkable = false,
|
||||||
|
buildable_to = true,
|
||||||
|
visual_scale = vs,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5*vs, -0.5*vs, -0.5*vs, 0.5*vs, -5/16*vs, 0.5*vs},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
--upward pointing icicle
|
--upward pointing icicle
|
||||||
minetest.register_node("caverealms:icicle_up", {
|
minetest.register_node("caverealms:icicle_up", {
|
||||||
@ -303,4 +319,5 @@ minetest.register_node("caverealms:mushroom_gills", {
|
|||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {oddly_breakable_by_hand=1},
|
groups = {oddly_breakable_by_hand=1},
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
})
|
paramtype = "light",
|
||||||
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user