1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-21 18:11:11 +00:00

Dungeongen: Remove most hardcoded dungeon nodes (#8594)

Biome-defined dungeon nodes was added as a feature to MT 5.0.0.
So now remove most of the hardcoded dungeon node code that assumes a
game has stone, sandstone, desert stone, and no other stone types.
If biome-defined dungeon nodes are not found, dungeon nodes fall back
to the 'cobble' mapgen alias if present, if not present they fall back
to biome-defined 'stone'.
Remove now-unnecessary mapgen aliases from MapgenBasic. Non-mgv6 games
now only need to define 3 to 5 mapgen aliases.

Document dungeon parameters.

Make c_lava_source fallback to c_water_source as both are used as cave
liquids.
This commit is contained in:
Paramat 2019-06-30 22:55:20 +01:00 committed by GitHub
parent 93f7e10e0d
commit bb14b7e956
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 45 additions and 121 deletions

View file

@ -42,22 +42,35 @@ struct DungeonParams {
s32 seed;
content_t c_wall;
// Randomly scattered alternative wall nodes
content_t c_alt_wall;
content_t c_stair;
// Diagonal corridors are possible
bool diagonal_dirs;
// Dungeon only generates in ground
bool only_in_ground;
// Dimensions of 3D 'brush' that creates corridors.
// Dimensions are of the empty space, not including walls / floor / ceilng.
v3s16 holesize;
// Corridor length
u16 corridor_len_min;
u16 corridor_len_max;
// Room size includes walls / floor / ceilng
v3s16 room_size_min;
v3s16 room_size_max;
// The 1st room generated has a 1 in 4 chance of being 'large', all other
// rooms are not 'large'.
v3s16 room_size_large_min;
v3s16 room_size_large_max;
// Number of rooms
u16 rooms_min;
u16 rooms_max;
// Usually 'GENNOTIFY_DUNGEON', but mapgen v6 uses 'GENNOTIFY_TEMPLE' for
// desert dungeons.
GenNotifyType notifytype;
// 3D noise that determines which c_wall nodes are converted to c_alt_wall
NoiseParams np_alt_wall;
};