diff options
author | Weblate <42@minetest.ru> | 2013-04-22 22:37:16 +0200 |
---|---|---|
committer | Weblate <42@minetest.ru> | 2013-04-22 22:37:16 +0200 |
commit | 418c2e7a446f8f0aca9f8bd23005a5896869ef7e (patch) | |
tree | 8c5e67eb5bc538174e768002c5419e86600c0623 /src/cavegen.h | |
parent | 4117ab473bcc393f6081277df96dd27c898c90ad (diff) | |
parent | 58ded5cd27dd6e5ba740b22d8a3b0917f3d98150 (diff) | |
download | minetest-418c2e7a446f8f0aca9f8bd23005a5896869ef7e.tar.gz minetest-418c2e7a446f8f0aca9f8bd23005a5896869ef7e.tar.bz2 minetest-418c2e7a446f8f0aca9f8bd23005a5896869ef7e.zip |
Merge remote branch 'origin/master'
Diffstat (limited to 'src/cavegen.h')
-rw-r--r-- | src/cavegen.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/cavegen.h b/src/cavegen.h new file mode 100644 index 000000000..979226b3e --- /dev/null +++ b/src/cavegen.h @@ -0,0 +1,68 @@ +/* +Minetest +Copyright (C) 2010-2013 kwolekr, Ryan Kwolek <kwolekr@minetest.net> + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#ifndef CAVEGEN_HEADER +#define CAVEGEN_HEADER + +#define VMANIP_FLAG_CAVE VOXELFLAG_CHECKED1 + +class CaveV6 { +public: + ManualMapVoxelManipulator *vm; + + s16 min_tunnel_diameter; + s16 max_tunnel_diameter; + u16 tunnel_routepoints; + int dswitchint; + int part_max_length_rs; + + bool large_cave; + bool large_cave_is_flat; + bool flooded; + + s16 max_stone_y; + v3s16 node_min; + v3s16 node_max; + + v3f orp; //original point + v3s16 of; + v3s16 ar; // allowed route area + s16 rs; // radius size + v3f main_direction; + + s16 route_y_min; + s16 route_y_max; + + PseudoRandom *ps; + PseudoRandom *ps2; + + content_t c_water_source; + content_t c_lava_source; + + int water_level; + + CaveV6() {} + CaveV6(Mapgen *mg, PseudoRandom *ps, PseudoRandom *ps2, bool large_cave, + content_t c_water, content_t c_lava); + void makeCave(v3s16 nmin, v3s16 nmax, int max_stone_height); + void makeTunnel(bool dirswitch); + void carveRoute(v3f vec, float f, bool randomize_xz); +}; + +#endif |