#pragma once using namespace std; #include "TileEntity.h" #include struct BannerPattern { wstring pattern; int color; }; class BannerTileEntity : public TileEntity { public: eINSTANCEOF GetType() { return eTYPE_BANNERTILEENTITY; } static TileEntity *create() { return new BannerTileEntity(); } private: int baseColor; vector patterns; public: BannerTileEntity(); virtual ~BannerTileEntity() {} int getBaseColor() const { return baseColor; } void setBaseColor(int color) { baseColor = color; } const vector &getPatterns() const { return patterns; } void addPattern(const wstring &pattern, int color) { patterns.push_back({ pattern, color }); } void clearPatterns() { patterns.clear(); } virtual void save(CompoundTag *tag); virtual void load(CompoundTag *tag); virtual shared_ptr getUpdatePacket(); virtual shared_ptr clone(); };