aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/LevelType.cpp
blob: 924c8ab401d7e45fd3085a1977f7595007133ead (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include "stdafx.h"
#include "net.minecraft.world.level.h"


// 	public static final LevelType[] levelTypes = new LevelType[16];
// 
// 

// 
// 
// 	private final String generatorName;
// 	private final int version;
// 	private boolean selectable;
// 	private boolean replacement;

LevelType *LevelType::levelTypes[16];// = new LevelType[16];
LevelType *LevelType::lvl_normal=nullptr;// = new LevelType(0, "default", 1).setHasReplacement();
LevelType *LevelType::lvl_flat=nullptr;// = new LevelType(1, "flat");
LevelType *LevelType::lvl_largeBiomes = nullptr;// = new LevelType(2, "largeBiomes");
LevelType *LevelType::lvl_normal_1_1=nullptr;// = new LevelType(8, "default_1_1", 0).setSelectableByUser(false);

void LevelType::staticCtor()
{
	for(int i=0;i<16;i++) levelTypes[i]=nullptr;
	lvl_normal = new LevelType(0, L"default", 1);
	lvl_normal->setHasReplacement();
	lvl_flat = new LevelType(1, L"flat");
	lvl_largeBiomes = new LevelType(2, L"largeBiomes");
	lvl_normal_1_1 = new LevelType(8, L"default_1_1", 0);
	lvl_normal_1_1->setSelectableByUser(false);	
}

LevelType::LevelType(int id, wstring generatorName) 
{
	init(id, generatorName, 0);
}

LevelType::LevelType(int id, wstring generatorName, int version) 
{
	m_generatorName = generatorName;
	m_version = version;
	m_selectable = true;
	levelTypes[id] = this;
}


void LevelType::init(int id, wstring generatorName, int version) 
{
	this->id = id;
	m_generatorName = generatorName;
	m_version = version;
	m_selectable = true;
	levelTypes[id] = this;
}

wstring LevelType::getGeneratorName() 
{
	return m_generatorName;
}

wstring LevelType::getDescriptionId() 
{
	return L"generator." + m_generatorName;
}

int LevelType::getVersion() 
{
	return m_version;
}

LevelType *LevelType::getReplacementForVersion(int oldVersion) 
{
	if (this == lvl_normal && oldVersion == 0) 
	{
		return lvl_normal_1_1;
	}
	return this;
}

LevelType *LevelType::setSelectableByUser(bool selectable) 
{
	m_selectable = selectable;
	return this;
}

bool LevelType::isSelectable() 
{
	return m_selectable;
}

LevelType *LevelType::setHasReplacement() 
{
	m_replacement = true;
	return this;
}

bool LevelType::hasReplacement() 
{
	return m_replacement;
}

LevelType *LevelType::getLevelType(wstring name) 
{
	if(name.length()>0)
	{	
		for (int i = 0; i < 16; i++) 
		{
			wstring genname=levelTypes[i]->m_generatorName;

			if (levelTypes[i] != nullptr && (genname.compare(name)==0)) 
			{
				return levelTypes[i];
			}
		}
	}
	return nullptr;
}

int LevelType::getId()
{
	return id;
}