aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/VillageFeature.h
blob: 1ff7ac759a199bd14aa3fc07a0be834d46058b5c (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
#pragma once
#include "StructureFeature.h"
#include "StructureStart.h"
class Biome;

class VillageFeature : public StructureFeature
{
public:
	static const wstring OPTION_SIZE_MODIFIER;
	static const wstring OPTION_SPACING;

private:
	int villageSizeModifier;
	int townSpacing;
	int minTownSeparation;

	void _init(int iXZSize);
public:
	static void staticCtor();
	static vector<Biome *> allowedBiomes;
	VillageFeature(int iXZSize);
	VillageFeature(unordered_map<wstring, wstring> options, int iXZSize);
	wstring getFeatureName();

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


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

	private:
		bool valid;
		int m_iXZSize;
	public:
		VillageStart();
		VillageStart(Level *level, Random *random, int chunkX, int chunkZ, int villageSizeModifier,int iXZSize);
		bool isValid();
		void addAdditonalSaveData(CompoundTag *tag);
		void readAdditonalSaveData(CompoundTag *tag);
	};

	int m_iXZSize;
};