AddChunkUpdate.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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, 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->setChunk( dynamic_cast<Chunk*>(chunk->getThis()), chunk->getCenter() );
  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. Chunk* AddChunkUpdate::zChunk() const
  28. {
  29. return chunk;
  30. }
  31. AddChunkUpdateType::AddChunkUpdateType()
  32. : WorldUpdateType( ID )
  33. {}