AddChunkUpdate.cpp 1.1 KB

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