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

class GameRules
{
private:
	class GameRule
	{
	private:
		wstring value;
		bool booleanValue;
		int intValue;
		double doubleValue;

	public:
		GameRule(const wstring &startValue);

		void set(const wstring &newValue);
		wstring get();
		bool getBoolean();
		int getInt();
		double getDouble();
	};

public:
	// 4J: Originally strings
	// default rules
	static const int RULE_DOFIRETICK;
	static const int RULE_MOBGRIEFING;
	static const int RULE_KEEPINVENTORY;
	static const int RULE_DOMOBSPAWNING;
	static const int RULE_DOMOBLOOT;
	static const int RULE_DOTILEDROPS;
	static const int RULE_COMMANDBLOCKOUTPUT;
	static const int RULE_NATURAL_REGENERATION;
	static const int RULE_DAYLIGHT;

private:
	unordered_map<wstring, GameRule *> rules;

public:
	GameRules();
	~GameRules();

	bool getBoolean(const int rule);

	// 4J: Removed unused functions
	/*void set(const wstring &ruleName, const wstring &newValue);
	void registerRule(const wstring &name, const wstring &startValue);
	wstring get(const wstring &ruleName);
	int getInt(const wstring &ruleName);
	double getDouble(const wstring &ruleName);
	CompoundTag *createTag();
	void loadFromTag(CompoundTag *tag);
	vector<wstring> *getRuleNames();
	bool contains(const wstring &rule);*/
};