aboutsummaryrefslogtreecommitdiff
path: root/build
Commit message (Expand)AuthorAge
* Fix sqlite databases being read-only on 64bit Android by patching sqlite (#4871)rubenwardy2016-12-09
* Android: fix build and update depsest312016-12-07
* Add missing remoteplayer.cpp to Android buildNer'zhul2016-10-28
* Fix for failure to find jsoncpp in android build (#4456)Rogier-52016-08-19
* Increase android versionCode (#4350)Ner'zhul2016-07-28
* Add MapSettingsManager and new mapgen setting script API functionskwolekr2016-07-03
* Fix android buildest312016-06-11
* Tell irrlicht if we handle a key or not.est312016-05-26
* Android: enable parallelism for main target tooest312016-05-16
* Bump version to 0.4.14sfan52016-05-15
* Fix android build by fixing patch line endingsest312016-05-14
* Fix locked hardware buttons on AndroidMaksim Gamarnik2016-05-14
* Android: download deps using httpsest312016-05-12
* Android: update openssl to 1.0.2hest312016-05-12
* Upgrade Android build to Gradle build systemShadowNinja2016-04-28
* Android: Update dependencies, GMP was required as a dependencyMaksim Gamarnik2016-04-26
* Move AreaStore to utilShadowNinja2016-03-07
* Update Android dependencies, -O3 optimization, remove old ARMv5 configMaksim Gamarnik2016-03-05
* Fix android buildest312016-02-23
* Android: hardcode leveldb revisionest312016-02-22
* Fix compilation warning if compiling for android with c++11est312016-01-23
* Add Valleys mapgen.Duane Robertson2016-01-14
* Android: shorten initial progress bar text way more simpleSapier2015-12-23
* Android: Tell make about sub-makes to speed up buildest312015-12-23
* Android: Fix extra files being copied to the APKShadowNinja2015-12-20
* Android: Remove unused build target curl_binarySapier2015-12-17
* Android: Don't put html docs to apkSapier2015-12-17
* Android: Remove non freetype fonts from apkSapier2015-12-17
* Fix android buildest312015-12-11
* Android: hardcode irrlicht revision, update other dependenciesest312015-11-16
* Mapgen: Add flat mapgen in hidden formparamat2015-11-11
* Android: statically load iconv libraryest312015-10-24
* Android/Mapgen: Add fractal mapgen file to android makefilesparamat2015-10-06
* Update leveldb git urlest312015-09-08
* Add setting for mods to copy to Android appShadowNinja2015-08-24
* Fix Android build of threading sourcesShadowNinja2015-08-24
* Clean up threadingShadowNinja2015-08-23
* Fix wrong android versionNameest312015-08-21
* Bump version to 0.4.13est312015-08-20
* Android: fix sound issue, and gitignoreest312015-08-02
* Android: Add githash header to spare rebuilds after new commitsest312015-08-01
* Android: speed up rebuild, and prevent race condition failest312015-07-31
* Fix 0.4.11 githash for androidest312015-07-31
* Android: fix horrible libiconv buildest312015-07-29
* Android: Fix minor makefile bugsest312015-07-29
* Add AreaStore data structureest312015-07-27
* Add minimap featureRealBadAngel2015-06-27
* Android: use loop inside makefile to spare repetitionest312015-06-20
* Add utf-8 conversion utilities and re-add intlGUIEditBoxest312015-06-13
* Reposition irrlicht timestamp in makefileest312015-06-11
1 // Use 3d noise to get density of ore placement, instead of just the position #define OREFLAG_DENSITY 0x02 // not yet implemented // For claylike ore types, place ore if the number of surrounding // nodes isn't the specified node #define OREFLAG_NODEISNT 0x04 // not yet implemented /////////////////// Decoration flags #define DECO_PLACE_CENTER_X 1 #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; class EmergeManager; class MapBlock; class ManualMapVoxelManipulator; class VoxelManipulator; 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 MapgenSpecificParams { virtual void readParams(Settings *settings) = 0; virtual void writeParams(Settings *settings) = 0; virtual ~MapgenSpecificParams() {} }; struct MapgenParams { std::string mg_name; int chunksize; u64 seed; int water_level; u32 flags; MapgenSpecificParams *sparams; MapgenParams() { mg_name = DEFAULT_MAPGEN; seed = 0; water_level = 1; chunksize = 5; flags = MG_TREES | MG_CAVES | MG_LIGHT; sparams = NULL; } }; class Mapgen { public: int seed; int water_level; bool generating; int id; ManualMapVoxelManipulator *vm; INodeDefManager *ndef; s16 *heightmap; u8 *biomemap; v3s16 csize; u32 gennotify; std::vector<v3s16> *gen_notifications[NUM_GEN_NOTIFY]; Mapgen(); virtual ~Mapgen(); s16 findGroundLevelFull(v2s16 p2d); s16 findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax); void updateHeightmap(v3s16 nmin, v3s16 nmax); void updateLiquid(UniqueQueue<v3s16> *trans_liquid, v3s16 nmin, v3s16 nmax); void setLighting(v3s16 nmin, v3s16 nmax, u8 light); void lightSpread(VoxelArea &a, v3s16 p, u8 light); void calcLighting(v3s16 nmin, v3s16 nmax); void calcLightingOld(v3s16 nmin, v3s16 nmax); virtual void makeChunk(BlockMakeData *data) {} virtual int getGroundLevelAtPoint(v2s16 p) { return 0; } }; struct MapgenFactory { virtual Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) = 0; virtual MapgenSpecificParams *createMapgenParams() = 0; virtual ~MapgenFactory() {} }; class Ore { public: std::string ore_name; std::vector<std::string> wherein_names; content_t ore; std::vector<content_t> wherein; // the node to be replaced u32 clust_scarcity; // ore cluster has a 1-in-clust_scarcity chance of appearing at a node s16 clust_num_ores; // how many ore nodes are in a chunk s16 clust_size; // how large (in nodes) a chunk of ore is s16 height_min; s16 height_max; u8 ore_param2; // to set node-specific attributes u32 flags; // attributes for this ore float nthresh; // threshhold for noise at which an ore is placed NoiseParams *np; // noise for distribution of clusters (NULL for uniform scattering) Noise *noise; Ore() { ore = CONTENT_IGNORE; np = NULL; noise = NULL; } virtual ~Ore(); void resolveNodeNames(INodeDefManager *ndef); void placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax); virtual void generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed, v3s16 nmin, v3s16 nmax) = 0; }; class OreScatter : public Ore { ~OreScatter() {} virtual void generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed, v3s16 nmin, v3s16 nmax); }; class OreSheet : public Ore { ~OreSheet() {} virtual void generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed, v3s16 nmin, v3s16 nmax); }; Ore *createOre(OreType type); enum DecorationType { DECO_SIMPLE, DECO_SCHEMATIC, DECO_LSYSTEM }; #if 0 struct CutoffData { VoxelArea a; Decoration *deco; //v3s16 p; //v3s16 size; //s16 height; CutoffData(s16 x, s16 y, s16 z, s16 h) { p = v3s16(x, y, z); height = h; } }; #endif class Decoration { public: INodeDefManager *ndef; int mapseed; std::string place_on_name; content_t c_place_on; s16 sidelen; float fill_ratio; NoiseParams *np; std::set<u8> biomes; //std::list<CutoffData> cutoffs; //JMutex cutoff_mutex; Decoration(); virtual ~Decoration(); virtual void resolveNodeNames(INodeDefManager *ndef); void placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax); void placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax); virtual void generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p) = 0; virtual int getHeight() = 0; virtual std::string getName() = 0; }; class DecoSimple : public Decoration { public: std::string deco_name; std::string spawnby_name; content_t c_deco; content_t c_spawnby; s16 deco_height; s16 deco_height_max; s16 nspawnby; std::vector<std::string> decolist_names; std::vector<content_t> c_decolist; ~DecoSimple() {} void resolveNodeNames(INodeDefManager *ndef); virtual void generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p); virtual int getHeight(); virtual std::string getName(); }; #define MTSCHEM_FILE_SIGNATURE 0x4d54534d // 'MTSM' #define MTSCHEM_FILE_VER_HIGHEST_READ 3 #define MTSCHEM_FILE_VER_HIGHEST_WRITE 3 #define MTSCHEM_PROB_NEVER 0x00 #define MTSCHEM_PROB_ALWAYS 0xFF class DecoSchematic : public Decoration { public: std::string filename; std::vector<std::string> *node_names; std::vector<content_t> c_nodes; std::map<std::string, std::string> replacements; u32 flags; Rotation rotation; v3s16 size; MapNode *schematic; u8 *slice_probs; DecoSchematic(); ~DecoSchematic(); void resolveNodeNames(INodeDefManager *ndef); virtual void generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p); virtual int getHeight(); virtual std::string getName(); void blitToVManip(v3s16 p, ManualMapVoxelManipulator *vm, Rotation rot, bool force_placement); bool loadSchematicFile(); void saveSchematicFile(INodeDefManager *ndef); bool getSchematicFromMap(Map *map, v3s16 p1, v3s16 p2); void placeStructure(Map *map, v3s16 p, bool force_placement); void applyProbabilities(v3s16 p0, std::vector<std::pair<v3s16, u8> > *plist, std::vector<std::pair<s16, u8> > *splist); }; void build_nnlist_and_update_ids(MapNode *nodes, u32 nodecount, std::vector<content_t> *usednodes); /* class DecoLSystem : public Decoration { public: virtual void generate(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax); }; */ Decoration *createDecoration(DecorationType type); #endif