Minetest 5.9.0-dev
 
Loading...
Searching...
No Matches
mapgen_v7.h
Go to the documentation of this file.
1/*
2Minetest
3Copyright (C) 2014-2020 paramat
4Copyright (C) 2013-2016 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
5
6This program is free software; you can redistribute it and/or modify
7it under the terms of the GNU Lesser General Public License as published by
8the Free Software Foundation; either version 2.1 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU Lesser General Public License for more details.
15
16You should have received a copy of the GNU Lesser General Public License along
17with this program; if not, write to the Free Software Foundation, Inc.,
1851 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/
20
21#pragma once
22
23#include "mapgen.h"
24
26#define MGV7_MOUNTAINS 0x01
27#define MGV7_RIDGES 0x02
28#define MGV7_FLOATLANDS 0x04
29#define MGV7_CAVERNS 0x08
30#define MGV7_BIOMEREPEAT 0x10 // Now unused
31
32class BiomeManager;
33
35
36
39 s16 floatland_ymin = 1024;
40 s16 floatland_ymax = 4096;
41 s16 floatland_taper = 256;
42 float float_taper_exp = 2.0f;
43 float floatland_density = -0.6f;
44 s16 floatland_ywater = -31000;
45
46 float cave_width = 0.09f;
52 float large_cave_flooded = 0.5f;
53 s16 cavern_limit = -256;
54 s16 cavern_taper = 256;
55 float cavern_threshold = 0.7f;
56 s16 dungeon_ymin = -31000;
57 s16 dungeon_ymax = 31000;
58
73
75 ~MapgenV7Params() = default;
76
77 void readParams(const Settings *settings);
78 void writeParams(Settings *settings) const;
79 void setDefaultSettings(Settings *settings);
80};
81
82
83class MapgenV7 : public MapgenBasic {
84public:
86 ~MapgenV7();
87
88 virtual MapgenType getType() const { return MAPGEN_V7; }
89
90 virtual void makeChunk(BlockMakeData *data);
92
93 float baseTerrainLevelAtPoint(s16 x, s16 z);
94 float baseTerrainLevelFromMap(int index);
95 bool getMountainTerrainAtPoint(s16 x, s16 y, s16 z);
96 bool getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y);
97 bool getRiverChannelFromMap(int idx_xyz, int idx_xz, s16 y);
98 bool getFloatlandTerrainFromMap(int idx_xyz, float float_offset);
99
100 int generateTerrain();
101
102private:
110
111 float *float_offset_cache = nullptr;
112
122};
Definition: mg_biome.h:211
Definition: emerge.h:98
Definition: mapgen.h:294
Definition: mapgen_v7.h:83
float float_taper_exp
Definition: mapgen_v7.h:107
bool getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y)
Definition: mapgen_v7.cpp:450
s16 floatland_ywater
Definition: mapgen_v7.h:109
bool getMountainTerrainAtPoint(s16 x, s16 y, s16 z)
Definition: mapgen_v7.cpp:439
float baseTerrainLevelAtPoint(s16 x, s16 z)
Definition: mapgen_v7.cpp:406
Noise * noise_ridge_uwater
Definition: mapgen_v7.h:118
Noise * noise_height_select
Definition: mapgen_v7.h:116
Noise * noise_mount_height
Definition: mapgen_v7.h:117
s16 floatland_ymax
Definition: mapgen_v7.h:105
s16 floatland_taper
Definition: mapgen_v7.h:106
~MapgenV7()
Definition: mapgen_v7.cpp:127
Noise * noise_floatland
Definition: mapgen_v7.h:121
Noise * noise_ridge
Definition: mapgen_v7.h:120
virtual void makeChunk(BlockMakeData *data)
Definition: mapgen_v7.cpp:315
float * float_offset_cache
Definition: mapgen_v7.h:111
Noise * noise_terrain_persist
Definition: mapgen_v7.h:115
s16 floatland_ymin
Definition: mapgen_v7.h:104
Noise * noise_terrain_base
Definition: mapgen_v7.h:113
bool getFloatlandTerrainFromMap(int idx_xyz, float float_offset)
Definition: mapgen_v7.cpp:477
int generateTerrain()
Definition: mapgen_v7.cpp:483
virtual MapgenType getType() const
Definition: mapgen_v7.h:88
Noise * noise_mountain
Definition: mapgen_v7.h:119
s16 mount_zero_level
Definition: mapgen_v7.h:103
float floatland_density
Definition: mapgen_v7.h:108
float baseTerrainLevelFromMap(int index)
Definition: mapgen_v7.cpp:426
Noise * noise_terrain_alt
Definition: mapgen_v7.h:114
bool getRiverChannelFromMap(int idx_xyz, int idx_xz, s16 y)
Definition: mapgen_v7.cpp:460
int getSpawnLevelAtPoint(v2s16 p)
Definition: mapgen_v7.cpp:264
Definition: noise.h:146
Definition: settings.h:124
core::vector2d< s16 > v2s16
Definition: irr_v2d.h:27
static LightingParams params
Definition: light.cpp:40
MapgenType
Definition: mapgen.h:117
@ MAPGEN_V7
Definition: mapgen.h:118
FlagDesc flagdesc_mapgen_v7[]
Definition: mapgen_v7.cpp:42
Definition: emerge.h:51
Definition: string.h:80
Definition: mapgen.h:129
Definition: mapgen_v7.h:37
void writeParams(Settings *settings) const
Definition: mapgen_v7.cpp:213
float floatland_density
Definition: mapgen_v7.h:43
~MapgenV7Params()=default
NoiseParams np_filler_depth
Definition: mapgen_v7.h:63
void setDefaultSettings(Settings *settings)
Definition: mapgen_v7.cpp:254
s16 cavern_limit
Definition: mapgen_v7.h:53
s16 cavern_taper
Definition: mapgen_v7.h:54
MapgenV7Params()
Definition: mapgen_v7.cpp:153
NoiseParams np_cave2
Definition: mapgen_v7.h:71
NoiseParams np_floatland
Definition: mapgen_v7.h:68
NoiseParams np_ridge_uwater
Definition: mapgen_v7.h:65
u16 small_cave_num_max
Definition: mapgen_v7.h:49
NoiseParams np_terrain_persist
Definition: mapgen_v7.h:61
s16 floatland_ymin
Definition: mapgen_v7.h:39
float cavern_threshold
Definition: mapgen_v7.h:55
NoiseParams np_terrain_alt
Definition: mapgen_v7.h:60
float cave_width
Definition: mapgen_v7.h:46
u16 small_cave_num_min
Definition: mapgen_v7.h:48
s16 floatland_taper
Definition: mapgen_v7.h:41
NoiseParams np_cavern
Definition: mapgen_v7.h:69
NoiseParams np_ridge
Definition: mapgen_v7.h:67
NoiseParams np_height_select
Definition: mapgen_v7.h:62
NoiseParams np_dungeons
Definition: mapgen_v7.h:72
s16 large_cave_depth
Definition: mapgen_v7.h:47
NoiseParams np_cave1
Definition: mapgen_v7.h:70
NoiseParams np_mount_height
Definition: mapgen_v7.h:64
s16 dungeon_ymin
Definition: mapgen_v7.h:56
NoiseParams np_mountain
Definition: mapgen_v7.h:66
s16 mount_zero_level
Definition: mapgen_v7.h:38
s16 floatland_ymax
Definition: mapgen_v7.h:40
void readParams(const Settings *settings)
Definition: mapgen_v7.cpp:172
float float_taper_exp
Definition: mapgen_v7.h:42
float large_cave_flooded
Definition: mapgen_v7.h:52
u16 large_cave_num_max
Definition: mapgen_v7.h:51
u16 large_cave_num_min
Definition: mapgen_v7.h:50
s16 floatland_ywater
Definition: mapgen_v7.h:44
s16 dungeon_ymax
Definition: mapgen_v7.h:57
NoiseParams np_terrain_base
Definition: mapgen_v7.h:59
Definition: noise.h:119
static std::string p(std::string path)
Definition: test_filesys.cpp:64