#pragma once #include class MerchantRecipe; class CompoundTag; class ItemInstance; class DataOutputStream; class DataInputStream; class MerchantRecipeList { private: std::vector m_recipes; public: MerchantRecipeList(); MerchantRecipeList(CompoundTag *tag); ~MerchantRecipeList(); MerchantRecipe *getRecipeFor(std::shared_ptr buyA, std::shared_ptr buyB, int selectionHint); bool addIfNewOrBetter(MerchantRecipe *recipe); // 4J Added bool return MerchantRecipe *getMatchingRecipeFor(std::shared_ptr buy, std::shared_ptr buyB, std::shared_ptr sell); void writeToStream(DataOutputStream *stream); static MerchantRecipeList *createFromStream(DataInputStream *stream); void load(CompoundTag *tag); CompoundTag *createTag(); void push_back(MerchantRecipe *recipe); MerchantRecipe *at(size_t index); std::vector::iterator begin(); std::vector::iterator end(); std::vector::iterator erase(std::vector::iterator it); size_t size(); bool empty(); };