#pragma once #include "GameRuleDefinition.h" class Container; class AddEnchantmentRuleDefinition; class AddItemRuleDefinition : public GameRuleDefinition { private: int m_itemId; int m_quantity; int m_auxValue; int m_dataTag; int m_slot; std::vector m_enchantments; public: AddItemRuleDefinition(); virtual void writeAttributes(DataOutputStream *, UINT numAttributes); virtual void getChildren(std::vector *children); virtual ConsoleGameRules::EGameRuleType getActionType() { return ConsoleGameRules::eGameRuleType_AddItem; } virtual GameRuleDefinition *addChild(ConsoleGameRules::EGameRuleType ruleType); virtual void addAttribute(const std::wstring &attributeName, const std::wstring &attributeValue); bool addItemToContainer(std::shared_ptr container, int slotId); };