aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/GameRules/CollectItemRuleDefinition.h
blob: 5ee6f4c5790b5256654798319cceb5edc98d88e0 (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
#pragma once

#include "GameRuleDefinition.h"

class Pos;
class UseTileRuleDefinition;
class ItemInstance;

class CollectItemRuleDefinition : public GameRuleDefinition
{
private:
	// These values should map directly to the xsd definition for this Rule
	int m_itemId;
	unsigned char m_auxValue;
	int m_quantity;

public:
	CollectItemRuleDefinition();
	~CollectItemRuleDefinition();

	ConsoleGameRules::EGameRuleType getActionType() { return ConsoleGameRules::eGameRuleType_CollectItemRule; }

	virtual void writeAttributes(DataOutputStream *, UINT numAttributes);
	virtual void addAttribute(const wstring &attributeName, const wstring &attributeValue);

	virtual int getGoal();
	virtual int getProgress(GameRule *rule);
	
	virtual int getIcon() { return m_itemId; }
	virtual int getAuxValue() { return m_auxValue; }

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

	bool onCollectItem(GameRule *rule, shared_ptr<ItemInstance> item);

	static wstring generateXml(shared_ptr<ItemInstance> item);

private:	
	//static wstring generateXml(CollectItemRuleDefinition *ruleDef);
};