aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/GameRules/CompoundGameRuleDefinition.h
blob: 4b91cda82e85d62aa5930089d32949c49fdae843 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include "GameRuleDefinition.h"

class CompoundGameRuleDefinition : public GameRuleDefinition
{
protected:
	vector<GameRuleDefinition *> m_children;
protected:
	GameRuleDefinition *m_lastRuleStatusChanged;
public:
	CompoundGameRuleDefinition();
	virtual ~CompoundGameRuleDefinition();

	virtual void getChildren(vector<GameRuleDefinition *> *children);
	virtual GameRuleDefinition *addChild(ConsoleGameRules::EGameRuleType ruleType);

	virtual void populateGameRule(GameRulesInstance::EGameRulesInstanceType type, GameRule *rule);

	virtual bool onUseTile(GameRule *rule, int tileId, int x, int y, int z);
	virtual bool onCollectItem(GameRule *rule, std::shared_ptr<ItemInstance> item);
	virtual void postProcessPlayer(std::shared_ptr<Player> player);
};