AddChunkUpdate.cpp 1002 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "AddChunkUpdate.h"
  2. #include "Chunk.h"
  3. #include "Constants.h"
  4. #include "Dimension.h"
  5. AddChunkUpdate::AddChunkUpdate(Chunk* chunk)
  6. : WorldUpdate(AddChunkUpdateType::ID, chunk->getDimensionId(), Framework::Vec3<int>(chunk->getCenter().x - CHUNK_SIZE / 2, chunk->getCenter().y - CHUNK_SIZE / 2, 0), Framework::Vec3<int>(chunk->getCenter().x + CHUNK_SIZE / 2 - 1, chunk->getCenter().y + CHUNK_SIZE / 2 - 1, WORLD_HEIGHT - 1)),
  7. chunk(chunk)
  8. {}
  9. AddChunkUpdate::~AddChunkUpdate()
  10. {
  11. chunk->release();
  12. }
  13. void AddChunkUpdate::onUpdate(Dimension* zDimension)
  14. {
  15. zDimension->setChunk(dynamic_cast<Chunk*>(chunk->getThis()), chunk->getCenter());
  16. }
  17. void AddChunkUpdate::write(Framework::StreamWriter* zWriter)
  18. {
  19. Framework::Punkt center = chunk->getCenter();
  20. zWriter->schreibe((char*)&center.x, 4);
  21. zWriter->schreibe((char*)&center.y, 4);
  22. chunk->sendToClient(zWriter);
  23. }
  24. Chunk* AddChunkUpdate::zChunk() const
  25. {
  26. return chunk;
  27. }
  28. AddChunkUpdateType::AddChunkUpdateType()
  29. : WorldUpdateType(ID)
  30. {}