#pragma once #include "TileEntity.h" #include "../../Containers/WorldlyContainer.h" class BrewingStandTileEntity : public TileEntity, public WorldlyContainer { public: eINSTANCEOF GetType() { return eTYPE_BREWINGSTANDTILEENTITY; } static TileEntity* create() { return new BrewingStandTileEntity(); } static const int INGREDIENT_SLOT = 3; private: ItemInstanceArray items; static intArray SLOTS_FOR_UP; static intArray SLOTS_FOR_OTHER_FACES; int brewTime; int lastPotionCount; int ingredientId; std::wstring name; public: BrewingStandTileEntity(); ~BrewingStandTileEntity(); virtual std::wstring getName(); virtual std::wstring getCustomName(); virtual bool hasCustomName(); virtual void setCustomName(const std::wstring& name); virtual unsigned int getContainerSize(); virtual void tick(); int getBrewTime(); private: bool isBrewable(); void doBrew(); int applyIngredient(int currentBrew, std::shared_ptr ingredient); public: virtual void load(CompoundTag* base); virtual void save(CompoundTag* base); virtual std::shared_ptr getItem(unsigned int slot); virtual std::shared_ptr removeItem(unsigned int slot, int i); virtual std::shared_ptr removeItemNoUpdate(int slot); virtual void setItem(unsigned int slot, std::shared_ptr item); virtual int getMaxStackSize(); virtual bool stillValid(std::shared_ptr player); virtual void startOpen(); virtual void stopOpen(); virtual bool canPlaceItem(int slot, std::shared_ptr item); virtual void setBrewTime(int value); virtual void setChanged() { TileEntity::setChanged(); } // 4J added int getPotionBits(); virtual intArray getSlotsForFace(int face); virtual bool canPlaceItemThroughFace(int slot, std::shared_ptr item, int face); virtual bool canTakeItemThroughFace(int slot, std::shared_ptr item, int face); // 4J Added virtual std::shared_ptr clone(); };