WorldUpdate.h 762 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include <ReferenceCounter.h>
  3. #include <Vec3.h>
  4. #include <Writer.h>
  5. #include "StaticRegistry.h"
  6. class Dimension;
  7. class WorldUpdateTypeEnum
  8. {
  9. public:
  10. static const int ADD_ENTITY = 0;
  11. static const int REMOVE_ENTITY = 1;
  12. };
  13. class WorldUpdate : public Framework::ReferenceCounter
  14. {
  15. private:
  16. int affectedDimensionId;
  17. int type;
  18. Framework::Vec3<float> pos;
  19. protected:
  20. virtual void write(Framework::StreamWriter* zWriter) = 0;
  21. public:
  22. WorldUpdate(int type, int dimensionId, Framework::Vec3<float> pos);
  23. virtual void onUpdate(Dimension* zDimension) = 0;
  24. void writeAndCheck(Framework::StreamWriter* zWriter);
  25. int getAffectedDimension() const;
  26. int getType() const;
  27. int distanceTo(int x, int y) const;
  28. };