mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Dungeongen: Add and improve parameters
Add: Bool for 'only_in_ground'. Min and max corridor length. Min and max room size with X, Y, Z components. Min and max large room size with X, Y, Z components. 'only_in_ground = false' allows core mapgens to create structures in air and water using dungeongen. Corridor length parameters replace a fixed random range. Room size parameters replace the former system where one parameter 'roomsize' was added to fixed random ranges. All parameters are set for no change to current dungeon behaviour. Remove some now-redundant and long-unused code.
This commit is contained in:
parent
4d634ef675
commit
a901a56859
4 changed files with 132 additions and 103 deletions
|
@ -564,34 +564,47 @@ void MapgenV6::makeChunk(BlockMakeData *data)
|
|||
if ((flags & MG_DUNGEONS) && (stone_surface_max_y >= node_min.Y)) {
|
||||
DungeonParams dp;
|
||||
|
||||
dp.seed = seed;
|
||||
dp.c_water = c_water_source;
|
||||
dp.c_river_water = c_water_source;
|
||||
dp.rooms_min = 2;
|
||||
dp.rooms_max = 16;
|
||||
dp.y_min = -MAX_MAP_GENERATION_LIMIT;
|
||||
dp.y_max = MAX_MAP_GENERATION_LIMIT;
|
||||
dp.np_density = NoiseParams(0.9, 0.5, v3f(500.0, 500.0, 500.0), 0, 2, 0.8, 2.0);
|
||||
dp.np_alt_wall = NoiseParams(-0.4, 1.0, v3f(40.0, 40.0, 40.0), 32474, 6, 1.1, 2.0);
|
||||
dp.seed = seed;
|
||||
dp.c_water = c_water_source;
|
||||
dp.c_river_water = c_water_source;
|
||||
|
||||
dp.only_in_ground = true;
|
||||
dp.corridor_len_min = 1;
|
||||
dp.corridor_len_max = 13;
|
||||
dp.rooms_min = 2;
|
||||
dp.rooms_max = 16;
|
||||
dp.y_min = -MAX_MAP_GENERATION_LIMIT;
|
||||
dp.y_max = MAX_MAP_GENERATION_LIMIT;
|
||||
|
||||
dp.np_density
|
||||
= NoiseParams(0.9, 0.5, v3f(500.0, 500.0, 500.0), 0, 2, 0.8, 2.0);
|
||||
dp.np_alt_wall
|
||||
= NoiseParams(-0.4, 1.0, v3f(40.0, 40.0, 40.0), 32474, 6, 1.1, 2.0);
|
||||
|
||||
if (getBiome(0, v2s16(node_min.X, node_min.Z)) == BT_DESERT) {
|
||||
dp.c_wall = c_desert_stone;
|
||||
dp.c_alt_wall = CONTENT_IGNORE;
|
||||
dp.c_stair = c_stair_desert_stone;
|
||||
dp.c_wall = c_desert_stone;
|
||||
dp.c_alt_wall = CONTENT_IGNORE;
|
||||
dp.c_stair = c_stair_desert_stone;
|
||||
|
||||
dp.diagonal_dirs = true;
|
||||
dp.holesize = v3s16(2, 3, 2);
|
||||
dp.roomsize = v3s16(2, 5, 2);
|
||||
dp.notifytype = GENNOTIFY_TEMPLE;
|
||||
dp.diagonal_dirs = true;
|
||||
dp.holesize = v3s16(2, 3, 2);
|
||||
dp.room_size_min = v3s16(6, 9, 6);
|
||||
dp.room_size_max = v3s16(10, 11, 10);
|
||||
dp.room_size_large_min = v3s16(10, 13, 10);
|
||||
dp.room_size_large_max = v3s16(18, 21, 18);
|
||||
dp.notifytype = GENNOTIFY_TEMPLE;
|
||||
} else {
|
||||
dp.c_wall = c_cobble;
|
||||
dp.c_alt_wall = c_mossycobble;
|
||||
dp.c_stair = c_stair_cobble;
|
||||
dp.c_wall = c_cobble;
|
||||
dp.c_alt_wall = c_mossycobble;
|
||||
dp.c_stair = c_stair_cobble;
|
||||
|
||||
dp.diagonal_dirs = false;
|
||||
dp.holesize = v3s16(1, 2, 1);
|
||||
dp.roomsize = v3s16(0, 0, 0);
|
||||
dp.notifytype = GENNOTIFY_DUNGEON;
|
||||
dp.diagonal_dirs = false;
|
||||
dp.holesize = v3s16(1, 2, 1);
|
||||
dp.room_size_min = v3s16(4, 4, 4);
|
||||
dp.room_size_max = v3s16(8, 6, 8);
|
||||
dp.room_size_large_min = v3s16(8, 8, 8);
|
||||
dp.room_size_large_max = v3s16(16, 16, 16);
|
||||
dp.notifytype = GENNOTIFY_DUNGEON;
|
||||
}
|
||||
|
||||
DungeonGen dgen(ndef, &gennotify, &dp);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue