aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/LevelSettings.h
blob: 73f588f684bc7bc3e57f55cfa3bd1be98b399d83 (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
#pragma once
class LevelType;

class Abilities;
class LevelData;

#define _ADVENTURE_MODE_ENABLED

// 4J Stu - Was Java enum class
class GameType
{
public:
	static GameType *NOT_SET;
	static GameType *SURVIVAL;
	static GameType *CREATIVE;
	static GameType *ADVENTURE;

	static void staticCtor();

private:
	int id;
	wstring name;

	GameType(int id, const wstring &name);

public:
	int getId();
	wstring getName();
	void updatePlayerAbilities(Abilities *abilities);
	bool isAdventureRestricted();
	bool isCreative();
	bool isSurvival();
	static GameType *byId(int id);
	static GameType *byName(const wstring &name);
};

class LevelSettings
{
private:
	int64_t seed;
	GameType *gameType;
	bool generateMapFeatures;
	bool hardcore;
	bool newSeaLevel;
	LevelType *levelType;
	bool allowCommands;
	bool startingBonusItems;	// 4J - brought forward from 1.3.2
	wstring levelTypeOptions;
	int m_xzSize;	// 4J Added
	int m_hellScale;

	void _init(int64_t seed, GameType *gameType, bool generateMapFeatures, bool hardcore, bool newSeaLevel, LevelType *levelType, int xzSize, int hellScale); // 4J Added xzSize and hellScale param

public:
	LevelSettings(int64_t seed, GameType *gameType, bool generateMapFeatures, bool hardcore, bool newSeaLevel, LevelType *levelType, int xzSize, int hellScale); // 4J Added xzSize and hellScale param
	LevelSettings(LevelData *levelData);
	LevelSettings *enableStartingBonusItems();		// 4J - brought forward from 1.3.2
	LevelSettings *enableSinglePlayerCommands();
	LevelSettings *setLevelTypeOptions(const wstring &options);
	bool hasStartingBonusItems(); // 4J - brought forward from 1.3.2
	int64_t getSeed();
	GameType *getGameType();
	bool isHardcore();
	LevelType *getLevelType();
	bool getAllowCommands();
	bool isGenerateMapFeatures();
	bool useNewSeaLevel();
	int getXZSize(); // 4J Added
	int getHellScale(); // 4J Added
	static GameType *validateGameType(int gameType);
	wstring getLevelTypeOptions();
};