#pragma once #include <ReferenceCounter.h> #include <Vec3.h> #include <Writer.h> #include "StaticRegistry.h" class Dimension; class WorldUpdate : public Framework::ReferenceCounter { private: int affectedDimensionId; Framework::Vec3<int> minAffected; Framework::Vec3<int> maxAffected; int type; protected: virtual void write( Framework::StreamWriter* zWriter ) = 0; public: WorldUpdate( int type, int dimensionId, Framework::Vec3<int> minAffected, Framework::Vec3<int> maxAffected ); virtual void onUpdate( Dimension* zDimension ) = 0; void writeAndCheck( Framework::StreamWriter* zWriter ); int getAffectedDimension() const; const Framework::Vec3<int>& getMinAffectedPoint() const; const Framework::Vec3<int>& getMaxAffectedPoint() const; int getType() const; int distanceTo( int x, int y ) const; }; class WorldUpdateType : public Framework::ReferenceCounter { protected: WorldUpdateType( int id ); };