#pragma once #include #include #include class Dimension; class WorldUpdateTypeEnum { public: static const int ADD_ENTITY = 0; static const int REMOVE_ENTITY = 1; }; class WorldUpdate : public Framework::ReferenceCounter { private: int affectedDimensionId; int type; Framework::Vec3 pos; protected: virtual void write(Framework::StreamWriter* zWriter) = 0; public: WorldUpdate(int type, int dimensionId, Framework::Vec3 pos); virtual void onUpdate(Dimension* zDimension) = 0; void writeAndCheck(Framework::StreamWriter* zWriter); int getAffectedDimension() const; int getType() const; int distanceTo(int x, int y) const; };