Reintroduce adobe dungeons
Instead of just Winter's original adobe dungeons which were an alternative to the at-the-time boring and empty NC cobble-only dungeons, create complex mixed adobe/brick dungeons at shallower depths, leave stone dungeons for deeper depths. These now have bricks and bonded bricks, loot, and there is a blended transition between adobe/stone dungeon areas (we can't make a single dungeon generate entirely of one or the other material it seems).
This commit is contained in:
parent
7520d45516
commit
ff2b3c44d5
6
TODO
6
TODO
@ -1,12 +1,8 @@
|
||||
------------------------------------------------------------------------
|
||||
|
||||
- More code cleanup, reorganize by feature
|
||||
|
||||
- Use radiation to poison and kill moss en masse
|
||||
|
||||
- Fix dungeon registration so loot works too
|
||||
|
||||
- Review and unify generic spreading ABMs
|
||||
- Reintroduce moss in dungeons?
|
||||
|
||||
- Shakedown mechanics
|
||||
- Make sure each item has a method to...
|
||||
|
@ -3,8 +3,6 @@ local minetest
|
||||
= minetest
|
||||
-- LUALOCALS > ---------------------------------------------------------
|
||||
|
||||
local modname = minetest.get_current_modname()
|
||||
|
||||
minetest.register_biome({
|
||||
name = "grassland",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
@ -13,8 +11,6 @@ minetest.register_biome({
|
||||
depth_filler = 2,
|
||||
node_riverbed = "nc_terrain:sand",
|
||||
depth_riverbed = 1,
|
||||
node_dungeon = "nc_concrete:adobe",
|
||||
node_dungeon_alt = modname .. ":mossy_dirt",
|
||||
y_min = 1,
|
||||
y_max = 31000,
|
||||
vertical_blend = 16,
|
||||
@ -31,8 +27,6 @@ minetest.register_biome({
|
||||
depth_filler = 2,
|
||||
node_riverbed = "nc_terrain:sand",
|
||||
depth_riverbed = 4,
|
||||
node_dungeon = "nc_stonework:bricks",
|
||||
node_dungeon_alt = modname .. ":mossy_bricks",
|
||||
y_min = 0,
|
||||
y_max = 2,
|
||||
vertical_blend = 2,
|
||||
@ -49,8 +43,6 @@ minetest.register_biome({
|
||||
depth_filler = 2,
|
||||
node_riverbed = "nc_terrain:sand",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_concrete:adobe",
|
||||
node_dungeon_alt = modname .. ":mossy_dirt",
|
||||
y_min = 2,
|
||||
y_max = 48,
|
||||
vertical_blend = 4,
|
||||
@ -67,8 +59,6 @@ minetest.register_biome({
|
||||
depth_filler = 4,
|
||||
node_riverbed = "nc_terrain:sand",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_stonework:bricks_bonded",
|
||||
node_dungeon_alt = modname .. ":mossy_bricks_bonded",
|
||||
y_min = 2,
|
||||
y_max = 250,
|
||||
vertical_blend = 16,
|
||||
@ -85,8 +75,6 @@ minetest.register_biome({
|
||||
depth_filler = 8,
|
||||
node_riverbed = "nc_terrain:gravel",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_stonework:bricks_bonded",
|
||||
node_dungeon_alt = modname .. ":mossy_bricks_bonded",
|
||||
y_min = 4,
|
||||
y_max = 200,
|
||||
vertical_blend = 16,
|
||||
@ -103,8 +91,6 @@ minetest.register_biome({
|
||||
depth_filler = 12,
|
||||
node_riverbed = "nc_terrain:gravel",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_stonework:bricks_bonded",
|
||||
node_dungeon_alt = modname .. ":mossy_bricks_bonded",
|
||||
y_min = 6,
|
||||
y_max = 150,
|
||||
vertical_blend = 16,
|
26
feature_dungeon.lua
Normal file
26
feature_dungeon.lua
Normal file
@ -0,0 +1,26 @@
|
||||
-- LUALOCALS < ---------------------------------------------------------
|
||||
local minetest, nodecore
|
||||
= minetest, nodecore
|
||||
-- LUALOCALS > ---------------------------------------------------------
|
||||
|
||||
local mapperlin
|
||||
minetest.after(0, function() mapperlin = minetest.get_perlin(8658, 1, 0, 1) end)
|
||||
|
||||
nodecore.register_dungeongen({
|
||||
label = "nature dungeons",
|
||||
func = function(pos)
|
||||
if pos.y < -10 then return end
|
||||
local rng = nodecore.seeded_rng(mapperlin:get_3d(pos))
|
||||
if pos.y < 0 and rng(-10, 0) > pos.y then return end
|
||||
if rng(1, 4) ~= 1 then
|
||||
return minetest.set_node(pos, {name = "nc_concrete:adobe"})
|
||||
end
|
||||
local below = {x = pos.x, y = pos.y - 1, z = pos.z}
|
||||
local bnode = minetest.get_node(below)
|
||||
local bdef = minetest.registered_nodes[bnode.name] or {}
|
||||
return minetest.set_node(pos, {name = "nc_stonework"
|
||||
.. (rng(1, 10) <= (bdef.walkable and 9 or 2)
|
||||
and ":bricks_adobe"
|
||||
or ":bricks_adobe_bonded")})
|
||||
end
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user