PlaceBlockUpdate.cpp 864 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "PlaceBlockUpdate.h"
  2. #include "Block.h"
  3. #include "Dimension.h"
  4. PlaceBlockUpdate::PlaceBlockUpdate( Block* block, int dimensionId )
  5. : WorldUpdate( PlaceBlockUpdateType::ID, dimensionId, block->getPos(), block->getPos() ),
  6. block( block )
  7. {}
  8. PlaceBlockUpdate::~PlaceBlockUpdate()
  9. {
  10. block->release();
  11. }
  12. void PlaceBlockUpdate::onUpdate( Dimension* zDimension )
  13. {
  14. zDimension->placeBlock( dynamic_cast<Block*>(block->getThis()) );
  15. }
  16. void PlaceBlockUpdate::write( Framework::StreamWriter* zWriter )
  17. {
  18. zWriter->schreibe( (char*)&PlaceBlockUpdateType::ID, 4 );
  19. int id = block->zBlockType()->getId();
  20. zWriter->schreibe( (char*)&id, 4 );
  21. block->zBlockType()->saveBlock( block, zWriter );
  22. }
  23. Block* PlaceBlockUpdate::zBlock() const
  24. {
  25. return block;
  26. }
  27. PlaceBlockUpdateType::PlaceBlockUpdateType()
  28. : WorldUpdateType( ID )
  29. {}