aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/BiomeDecorator.h
blob: 01560045a77e6086539da1642cf44387cd908328 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#pragma once

class Level;
class Random;
class Biome;
class Feature;

class BiomeDecorator
{
	friend class DesertBiome;
	friend class ForestBiome;
	friend class PlainsBiome;
	friend class SwampBiome;
	friend class TaigaBiome;
	friend class MushroomIslandBiome;
	friend class BeachBiome;
	friend class JungleBiome;
protected:
	Level *level;
	Random *random;
	int xo;
	int zo;
	Biome *biome;

public:
	BiomeDecorator(Biome *biome);

	void decorate(Level *level, Random *random, int xo, int zo);

protected:
	Feature *clayFeature;
	Feature *sandFeature;
	Feature *gravelFeature;
	Feature *dirtOreFeature;
	Feature *gravelOreFeature;
	Feature *coalOreFeature;
	Feature *ironOreFeature;
	Feature *goldOreFeature;
	Feature *redStoneOreFeature;
	Feature *diamondOreFeature;
	Feature *lapisOreFeature;
	Feature *yellowFlowerFeature;
	Feature *roseFlowerFeature;
	Feature *brownMushroomFeature;
	Feature *redMushroomFeature;
	Feature *hugeMushroomFeature;
	Feature *reedsFeature;
	Feature *cactusFeature;
	Feature *waterlilyFeature;

	int waterlilyCount;
	int treeCount;
	int flowerCount;
	int grassCount;
	int deadBushCount;
	int mushroomCount;
	int reedsCount;
	int cactusCount;
	int gravelCount;
	int sandCount;
	int clayCount;
	int hugeMushrooms;
	bool liquids;

	void _init();

protected:
	virtual void decorate();


	void decorate(int count, Feature *feature);
	void decorateDepthSpan(int count, Feature *feature, int y0, int y1);
	void decorateDepthAverage(int count, Feature *feature, int yMid, int ySpan);
	void decorateOres();
};