AddChunkUpdate.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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. int dimensionID = chunk->getDimensionId();
  20. zWriter->schreibe( (char*)&dimensionID, 4 );
  21. Framework::Punkt center = chunk->getCenter();
  22. zWriter->schreibe( (char*)&center.x, 4 );
  23. zWriter->schreibe( (char*)&center.y, 4 );
  24. chunk->save( zWriter, StreamTarget::CLIENT );
  25. }
  26. Chunk* AddChunkUpdate::zChunk() const
  27. {
  28. return chunk;
  29. }
  30. AddChunkUpdateType::AddChunkUpdateType()
  31. : WorldUpdateType( ID )
  32. {}