Add riverbeds to biomes and start hell levels.
This commit is contained in:
parent
5ea5f54a7d
commit
87c065153a
3 changed files with 93 additions and 8 deletions
2
deco.lua
2
deco.lua
|
@ -90,6 +90,8 @@ minetest.register_biome({
|
||||||
node_filler = "default:dirt",
|
node_filler = "default:dirt",
|
||||||
depth_filler = 1,
|
depth_filler = 1,
|
||||||
node_stone = "default:desert_stone",
|
node_stone = "default:desert_stone",
|
||||||
|
node_riverbed = "default:sand",
|
||||||
|
depth_riverbed = 2,
|
||||||
--node_water_top = "",
|
--node_water_top = "",
|
||||||
--depth_water_top = ,
|
--depth_water_top = ,
|
||||||
--node_water = "",
|
--node_water = "",
|
||||||
|
|
|
@ -89,8 +89,24 @@ minetest.register_node("fun_caves:glowing_fungus", {
|
||||||
groups = {dig_immediate = 3},
|
groups = {dig_immediate = 3},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- Iron, hot
|
||||||
|
newnode = fun_caves.clone_node("default:steelblock")
|
||||||
|
newnode.description = "Hot Iron Block"
|
||||||
|
newnode.tiles = {"default_steel_block.png^[colorize:#FF3000:150"}
|
||||||
|
newnode.groups.surface_hot=3
|
||||||
|
newnode.light_source = 3
|
||||||
|
minetest.register_node("fun_caves:hot_iron", newnode)
|
||||||
|
|
||||||
|
-- Brass, hot
|
||||||
|
newnode = fun_caves.clone_node("default:steelblock")
|
||||||
|
newnode.description = "Hot Brass Block"
|
||||||
|
newnode.tiles = {"default_steel_block.png^[colorize:#FFBF00:150"}
|
||||||
|
newnode.groups.surface_hot=3
|
||||||
|
newnode.light_source = 2
|
||||||
|
minetest.register_node("fun_caves:hot_brass", newnode)
|
||||||
|
|
||||||
-- moon glass (glows)
|
-- moon glass (glows)
|
||||||
local newnode = fun_caves.clone_node("default:glass")
|
newnode = fun_caves.clone_node("default:glass")
|
||||||
newnode.light_source = default.LIGHT_MAX
|
newnode.light_source = default.LIGHT_MAX
|
||||||
minetest.register_node("fun_caves:moon_glass", newnode)
|
minetest.register_node("fun_caves:moon_glass", newnode)
|
||||||
|
|
||||||
|
@ -313,6 +329,19 @@ newnode.sounds = default.node_sound_dirt_defaults({
|
||||||
})
|
})
|
||||||
minetest.register_node("fun_caves:stone_with_algae", newnode)
|
minetest.register_node("fun_caves:stone_with_algae", newnode)
|
||||||
|
|
||||||
|
-- stone, hot
|
||||||
|
minetest.register_node("fun_caves:hot_stone", {
|
||||||
|
description = "Hot Stone",
|
||||||
|
tiles = {"default_desert_stone.png^[colorize:#FF0000:150"},
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {crumbly=2, surface_hot=3},
|
||||||
|
light_source = fun_caves.light_max - 5,
|
||||||
|
damage_per_second = 1,
|
||||||
|
sounds = default.node_sound_stone_defaults({
|
||||||
|
footstep = {name="default_stone_footstep", gain=0.25},
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
|
||||||
-- stone with lichen
|
-- stone with lichen
|
||||||
newnode = fun_caves.clone_node("default:stone")
|
newnode = fun_caves.clone_node("default:stone")
|
||||||
newnode.description = "Cave Stone With Lichen"
|
newnode.description = "Cave Stone With Lichen"
|
||||||
|
|
68
mapgen.lua
68
mapgen.lua
|
@ -191,9 +191,17 @@ local function generate(p_minp, p_maxp, seed)
|
||||||
math.randomseed(minetest.get_perlin(seed_noise):get2d({x=minp.x, y=minp.z}))
|
math.randomseed(minetest.get_perlin(seed_noise):get2d({x=minp.x, y=minp.z}))
|
||||||
|
|
||||||
local write = false
|
local write = false
|
||||||
local underzone
|
local underzone, dis_map = nil, {}
|
||||||
if minp.y % 4960 < 240 and maxp.y % 4960 > 0 then
|
if minp.y < -4000 and minp.y % 4960 < 160 and maxp.y % 4960 > 0 then
|
||||||
underzone = true
|
underzone = floor(minp.y / -4960 + 0.5)
|
||||||
|
if underzone == 3 then
|
||||||
|
for i = 0, 10, 2 do
|
||||||
|
dis_map[i] = {}
|
||||||
|
for j = 0, 10, 2 do
|
||||||
|
dis_map[i][j] = rand(4)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if not underzone and fun_caves.is_fortress(minp, csize) then
|
if not underzone and fun_caves.is_fortress(minp, csize) then
|
||||||
|
@ -327,10 +335,31 @@ local function generate(p_minp, p_maxp, seed)
|
||||||
end
|
end
|
||||||
|
|
||||||
for y = minp.y, maxp.y do
|
for y = minp.y, maxp.y do
|
||||||
if column == 1 and data[ivm] ~= node['air'] and y % 4960 < cave_3[index] + 160 and y % 4960 > cave_3[index] + 80 then
|
-- Dis
|
||||||
|
if underzone == 3 then
|
||||||
|
if (x - minp.x) < 8 and (z - minp.z) < 8 then
|
||||||
|
data[ivm] = node["default:steelblock"]
|
||||||
|
elseif data[ivm] ~= node['air'] and y % 4960 < 160 and y % 4960 > 80 then
|
||||||
|
data[ivm] = node["air"]
|
||||||
|
end
|
||||||
|
write = true
|
||||||
|
-- Caina
|
||||||
|
elseif column == 2 and underzone == 1 and (data[ivm] == node['default:stone'] or data[ivm] == node['default:desert_stone']) then
|
||||||
|
if rand(70) == 1 then
|
||||||
|
data[ivm] = node["fun_caves:thin_ice"]
|
||||||
|
else
|
||||||
|
data[ivm] = node["default:ice"]
|
||||||
|
end
|
||||||
|
write = true
|
||||||
|
-- Phlegethos
|
||||||
|
elseif column == 2 and (data[ivm] == node['default:stone'] or data[ivm] == node['default:desert_stone']) and rand(70) == 1 then
|
||||||
|
data[ivm] = node["fun_caves:hot_stone"]
|
||||||
|
write = true
|
||||||
|
-- Dis
|
||||||
|
elseif column == 1 and underzone ~= 3 and data[ivm] ~= node['air'] and y % 4960 < cave_3[index] + 160 and y % 4960 > cave_3[index] + 80 then
|
||||||
data[ivm] = node["air"]
|
data[ivm] = node["air"]
|
||||||
write = true
|
write = true
|
||||||
elseif column < 2 and data[ivm] ~= node['air'] and y < height - cave_3[index] and cave_1[index3d] * cave_2[index3d] > cave_width then
|
elseif column < 2 and underzone ~= 3 and data[ivm] ~= node['air'] and y < height - cave_3[index] and cave_1[index3d] * cave_2[index3d] > cave_width then
|
||||||
data[ivm] = node["air"]
|
data[ivm] = node["air"]
|
||||||
write = true
|
write = true
|
||||||
|
|
||||||
|
@ -386,7 +415,18 @@ local function generate(p_minp, p_maxp, seed)
|
||||||
-------------------
|
-------------------
|
||||||
--biome_val = -0.75
|
--biome_val = -0.75
|
||||||
-------------------
|
-------------------
|
||||||
if biome_val < -0.65 then
|
if underzone == 1 then
|
||||||
|
stone_type = node["default:ice"]
|
||||||
|
stone_depth = 2
|
||||||
|
elseif underzone == 3 then
|
||||||
|
stone_type = node["fun_caves:hot_brass"]
|
||||||
|
stone_depth = 1
|
||||||
|
elseif underzone and y % 4960 <= 145 then
|
||||||
|
stone_type = node["fun_caves:hot_cobble"]
|
||||||
|
elseif underzone and y % 4960 > 145 then
|
||||||
|
stone_type = node["fun_caves:black_sand"]
|
||||||
|
stone_depth = 2
|
||||||
|
elseif biome_val < -0.65 then
|
||||||
stone_type = node["default:ice"]
|
stone_type = node["default:ice"]
|
||||||
stone_depth = 2
|
stone_depth = 2
|
||||||
elseif biome_val < -0.6 then
|
elseif biome_val < -0.6 then
|
||||||
|
@ -487,6 +527,20 @@ local function generate(p_minp, p_maxp, seed)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Dis
|
||||||
|
if underzone == 3 and data[ivm] == node['air'] and floor((x - minp.x) / 8) % 2 == 0 and floor((z - minp.z) / 8) % 2 == 0 and y % 4960 < 82 + dis_map[floor((x - minp.x) / 8)][floor((z - minp.z) / 8)] * 4 and y % 4960 > 80 then
|
||||||
|
local dx = (x - minp.x) % 16
|
||||||
|
local dy = y % 4960 - 80
|
||||||
|
local dz = (z - minp.z) % 16
|
||||||
|
if ((dx == 0 or dx == 7) and (dz % 3 ~= 2 or dy % 4 == 0)) or ((dz == 0 or dz == 7) and (dx % 3 ~= 2 or dy % 4 == 0)) then
|
||||||
|
data[ivm] = node["fun_caves:hot_iron"]
|
||||||
|
elseif dy %4 == 0 then
|
||||||
|
data[ivm] = node["fun_caves:hot_brass"]
|
||||||
|
end
|
||||||
|
write = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
|
||||||
if data[ivm] == node["air"] and y < maxp.y then
|
if data[ivm] == node["air"] and y < maxp.y then
|
||||||
-- hanging down
|
-- hanging down
|
||||||
if node_above == node["default:stone"] and rand(12) == 1 then
|
if node_above == node["default:stone"] and rand(12) == 1 then
|
||||||
|
@ -700,7 +754,7 @@ local function generate(p_minp, p_maxp, seed)
|
||||||
if write then
|
if write then
|
||||||
vm:set_data(data)
|
vm:set_data(data)
|
||||||
--vm:set_param2_data(p2data)
|
--vm:set_param2_data(p2data)
|
||||||
if underzone or fun_caves.DEBUG then
|
if fun_caves.DEBUG then
|
||||||
vm:set_lighting({day = 10, night = 10})
|
vm:set_lighting({day = 10, night = 10})
|
||||||
else
|
else
|
||||||
-- set_lighting causes shadows
|
-- set_lighting causes shadows
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue