aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/RandomScatteredLargeFeature.h
blob: b5d46ce8d357e4791cc86730722b3cdbd6102243 (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
#pragma once

#include "StructureFeature.h"
#include "StructureStart.h"

class RandomScatteredLargeFeature : public StructureFeature
{
public:
	static const wstring OPTION_SPACING;

	static void staticCtor();
	static vector<Biome *> allowedBiomes;

private:
	vector<Biome::MobSpawnerData *> swamphutEnemies;
	int spacing;
	int minSeparation;

	void _init();

public:
	RandomScatteredLargeFeature();
	RandomScatteredLargeFeature(unordered_map<wstring, wstring> options);

	wstring getFeatureName();

protected:
	virtual bool isFeatureChunk(int x, int z, bool bIsSuperflat=false);
	StructureStart *createStructureStart(int x, int z);

public:
	class ScatteredFeatureStart : public StructureStart
	{
	public:
		static StructureStart *Create() { return new ScatteredFeatureStart(); }
		virtual EStructureStart GetType() { return eStructureStart_ScatteredFeatureStart; }

	public:
		ScatteredFeatureStart();
		ScatteredFeatureStart(Level *level, Random *random, int chunkX, int chunkZ);
	};

public:
	bool isSwamphut(int cellX, int cellY, int cellZ);
	vector<Biome::MobSpawnerData *> *getSwamphutEnemies();
};