- 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