summaryrefslogtreecommitdiff
path: root/src/mapgen.h
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2013-12-14 01:52:06 -0500
committerkwolekr <kwolekr@minetest.net>2013-12-14 01:52:24 -0500
commitc3708b456e90bccf19e7c82c54a93c8cb7c8896c (patch)
tree2f23bf39c67a34fc9582db07220b6f72209e1c39 /src/mapgen.h
parent83853ccd413c06a4a37a3c91f8c2cb270e42109c (diff)
downloadminetest-c3708b456e90bccf19e7c82c54a93c8cb7c8896c.tar.gz
minetest-c3708b456e90bccf19e7c82c54a93c8cb7c8896c.tar.bz2
minetest-c3708b456e90bccf19e7c82c54a93c8cb7c8896c.zip
Add map feature generation notify Lua API
Diffstat (limited to 'src/mapgen.h')
-rw-r--r--src/mapgen.h55
1 files changed, 37 insertions, 18 deletions
diff --git a/src/mapgen.h b/src/mapgen.h
index 47a7204bc..feec60e19 100644
--- a/src/mapgen.h
+++ b/src/mapgen.h
@@ -53,9 +53,16 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define DECO_PLACE_CENTER_Y 2
#define DECO_PLACE_CENTER_Z 4
+#define ORE_RANGE_ACTUAL 1
+#define ORE_RANGE_MIRROR 2
+
+#define NUM_GEN_NOTIFY 6
+
+
extern FlagDesc flagdesc_mapgen[];
extern FlagDesc flagdesc_ore[];
extern FlagDesc flagdesc_deco_schematic[];
+extern FlagDesc flagdesc_gennotify[];
class BiomeDefManager;
class Biome;
@@ -67,6 +74,32 @@ struct BlockMakeData;
class VoxelArea;
class Map;
+
+enum MapgenObject {
+ MGOBJ_VMANIP,
+ MGOBJ_HEIGHTMAP,
+ MGOBJ_BIOMEMAP,
+ MGOBJ_HEATMAP,
+ MGOBJ_HUMIDMAP,
+ MGOBJ_GENNOTIFY
+};
+
+enum GenNotify {
+ GENNOTIFY_DUNGEON,
+ GENNOTIFY_TEMPLE,
+ GENNOTIFY_CAVE_BEGIN,
+ GENNOTIFY_CAVE_END,
+ GENNOTIFY_LARGECAVE_BEGIN,
+ GENNOTIFY_LARGECAVE_END
+};
+
+enum OreType {
+ ORE_SCATTER,
+ ORE_SHEET,
+ ORE_CLAYLIKE
+};
+
+
struct MapgenParams {
std::string mg_name;
int chunksize;
@@ -100,8 +133,11 @@ public:
u8 *biomemap;
v3s16 csize;
+ u32 gennotify;
+ std::vector<v3s16> *gen_notifications[NUM_GEN_NOTIFY];
+
Mapgen();
- virtual ~Mapgen() {}
+ virtual ~Mapgen();
s16 findGroundLevelFull(v2s16 p2d);
s16 findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax);
@@ -123,23 +159,6 @@ struct MapgenFactory {
virtual ~MapgenFactory() {}
};
-enum MapgenObject {
- MGOBJ_VMANIP,
- MGOBJ_HEIGHTMAP,
- MGOBJ_BIOMEMAP,
- MGOBJ_HEATMAP,
- MGOBJ_HUMIDMAP
-};
-
-enum OreType {
- ORE_SCATTER,
- ORE_SHEET,
- ORE_CLAYLIKE
-};
-
-#define ORE_RANGE_ACTUAL 1
-#define ORE_RANGE_MIRROR 2
-
class Ore {
public:
std::string ore_name;