#pragma once #include #include #include #include "GameRuleDefinition.h" #include "app/common/GameRules/ConsoleGameRulesConstants.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*, unsigned int 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::string& attributeName, const std::string& attributeValue); bool addItemToContainer(std::shared_ptr container, int slotId); };