aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
Commit message (Expand)AuthorAge
...
* The new mapgen, noise functions, et al.kwolekr2013-01-21
* Basic support for configuring which mods to load for each worldJürgen Doser2013-01-21
* Add a list of servers to the "Multiplayer" tabJeija2013-01-21
* Add particlesJeija2013-01-14
* L-System treegenRealBadAngel2012-12-30
* Tweak CMake files for cURLsfan52012-12-18
* Added ability to fetch media from remote server (using cURL library)Ilya Zhuravlev2012-12-16
* ShaderSource and silly example shadersKahrl2012-12-02
* Move util/serialize.h out from staticobject.h for smaller header dependenciesPerttu Ahola2012-11-26
* Move a function from clientserver.h to clientserver.cppPerttu Ahola2012-11-26
* Move chat commands to Lua and remove servercommand.{cpp,h}Matthew I2012-08-12
* Experimental-ish rollback functionalityPerttu Ahola2012-07-27
* Improve build configuration optionsPerttu Ahola2012-07-23
* Implement formspecdarkrose2012-07-22
* Properly and efficiently use split utility headersPerttu Ahola2012-06-17
* Initially split utility.h to multiple files in util/Perttu Ahola2012-06-17
* WIP node metadata, node timersKahrl2012-06-03
* Fix buildbotPerttu Ahola2012-04-03
* Add optional MINGWM10_DLL to cmake installPerttu Ahola2012-04-03
* Fix things for cross-compiling using mingwPerttu Ahola2012-04-02
* Add 'fly' and 'fast' privileges and the underlying privileges-to-client systemPerttu Ahola2012-03-31
* Reimplement authentication handler in Lua; now we have 1) infinite privilege ...Perttu Ahola2012-03-30
* ObjectPropertiesPerttu Ahola2012-03-30
* Add GenericCAO and player armor groups, but don't use them yetPerttu Ahola2012-03-29
* added PlayerSAO and RemotePlayer, removed ServerRemotePlayerKahrl2012-03-29
* Implement propagateSunlight for VoxelManipulatorPerttu Ahola2012-03-27
* Add OPENAL_DLL LIBOGG_DLL LIBVORBIS_DLL and LIBVORBISFILE_DLL to be used opti...Perttu Ahola2012-03-25
* Add OGG_INCLUDE_DIR to SOUND_INCLUDE_DIRSPerttu Ahola2012-03-25
* Don't try to use sound if building only serverPerttu Ahola2012-03-25
* Cache textures by checksumJonathan Neuschäfer2012-03-25
* Build configuration fixes/improvements on WindowsPerttu Ahola2012-03-25
* Fix build on MinGW (as compared to Linux)Perttu Ahola2012-03-24
* c55sound continuedPerttu Ahola2012-03-24
* celeron55's sound system initial frameworkPerttu Ahola2012-03-24
* Fix for MSVC and move stuff around a bit in CMakeLists.txt and src/CMakeLists...Perttu Ahola2012-03-20
* Flatten share/ and user/ in the source and for the RUN_IN_PLACE buildPerttu Ahola2012-03-20
* Fix installation in cmake project filesPerttu Ahola2012-03-18
* Dynamic sky, fog and cloud colors; sun and moonPerttu Ahola2012-03-18
* Move ClientMap to clientmap.{h,cpp}Perttu Ahola2012-03-16
* Add confirmation menu and make world deletion possible in GUIPerttu Ahola2012-03-13
* World creation button and dialog and functionalityPerttu Ahola2012-03-13
* Add quicktune.{cpp,h}Perttu Ahola2012-03-12
* command-line/world game selectionPerttu Ahola2012-03-11
* Chat console, including a number of rebases and modifications.Kahrl2012-03-10
* Remove servermain.cpp, use main.cpp with a couple of #ifdefs insteadPerttu Ahola2012-03-10
* Immediate smoke puff when a normal entity is punched to deathPerttu Ahola2012-03-10
* Digging time groups WIPPerttu Ahola2012-03-10
* Node placement / mineral / serialization / iron freq / node_dig callbackKahrl2012-01-22
* The huge item definition and item namespace unification patch (itemdef), see ...Kahrl2012-01-12
* Add InvRef and InvStack (currently untested and unusable)Perttu Ahola2012-01-02
ction a random amount of times, randomly varying in width. All randomness here is uniformly distributed; alternative distributions have not yet been implemented. This algorithm is very fast, executing in less than 1ms on average for an 80x80x80 chunk of map on a modern processor. */ class CavesRandomWalk { public: MMVManip *vm; const NodeDefManager *ndef; GenerateNotifier *gennotify; s16 *heightmap; BiomeGen *bmgn; s32 seed; int water_level; float large_cave_flooded; // TODO 'np_caveliquids' is deprecated and should eventually be removed. // Cave liquids are now defined and located using biome definitions. NoiseParams *np_caveliquids; u16 ystride; s16 min_tunnel_diameter; s16 max_tunnel_diameter; u16 tunnel_routepoints; int part_max_length_rs; bool large_cave; bool large_cave_is_flat; bool flooded; bool use_biome_liquid; v3s16 node_min; v3s16 node_max; v3f orp; // starting point, relative to caved space v3s16 of; // absolute coordinates of caved space v3s16 ar; // allowed route area s16 rs; // tunnel radius size v3f main_direction; s16 route_y_min; s16 route_y_max; PseudoRandom *ps; content_t c_water_source; content_t c_lava_source; content_t c_biome_liquid; // ndef is a mandatory parameter. // If gennotify is NULL, generation events are not logged. // If biomegen is NULL, cave liquids have classic behaviour. CavesRandomWalk(const NodeDefManager *ndef, GenerateNotifier *gennotify = NULL, s32 seed = 0, int water_level = 1, content_t water_source = CONTENT_IGNORE, content_t lava_source = CONTENT_IGNORE, float large_cave_flooded = 0.5f, BiomeGen *biomegen = NULL); // vm and ps are mandatory parameters. // If heightmap is NULL, the surface level at all points is assumed to // be water_level. void makeCave(MMVManip *vm, v3s16 nmin, v3s16 nmax, PseudoRandom *ps, bool is_large_cave, int max_stone_height, s16 *heightmap); private: void makeTunnel(bool dirswitch); void carveRoute(v3f vec, float f, bool randomize_xz); inline bool isPosAboveSurface(v3s16 p); }; /* CavesV6 is the original version of caves used with Mapgen V6. Though it uses the same fundamental algorithm as CavesRandomWalk, it is made separate to preserve the exact sequence of PseudoRandom calls - any change to this ordering results in the output being radically different. Because caves in Mapgen V6 are responsible for a large portion of the basic terrain shape, modifying this will break our contract of reverse compatibility for a 'stable' mapgen such as V6. tl;dr, *** DO NOT TOUCH THIS CLASS UNLESS YOU KNOW WHAT YOU ARE DOING *** */ class CavesV6 { public: MMVManip *vm; const NodeDefManager *ndef; GenerateNotifier *gennotify; PseudoRandom *ps; PseudoRandom *ps2; // configurable parameters s16 *heightmap; content_t c_water_source; content_t c_lava_source; int water_level; // intermediate state variables u16 ystride; s16 min_tunnel_diameter; s16 max_tunnel_diameter; u16 tunnel_routepoints; int part_max_length_rs; bool large_cave; bool large_cave_is_flat; v3s16 node_min; v3s16 node_max; v3f orp; // starting point, relative to caved space v3s16 of; // absolute coordinates of caved space v3s16 ar; // allowed route area s16 rs; // tunnel radius size v3f main_direction; s16 route_y_min; s16 route_y_max; // ndef is a mandatory parameter. // If gennotify is NULL, generation events are not logged. CavesV6(const NodeDefManager *ndef, GenerateNotifier *gennotify = NULL, int water_level = 1, content_t water_source = CONTENT_IGNORE, content_t lava_source = CONTENT_IGNORE); // vm, ps, and ps2 are mandatory parameters. // If heightmap is NULL, the surface level at all points is assumed to // be water_level. void makeCave(MMVManip *vm, v3s16 nmin, v3s16 nmax, PseudoRandom *ps, PseudoRandom *ps2, bool is_large_cave, int max_stone_height, s16 *heightmap = NULL); private: void makeTunnel(bool dirswitch); void carveRoute(v3f vec, float f, bool randomize_xz, bool tunnel_above_ground); inline s16 getSurfaceFromHeightmap(v3s16 p); };