PlaceBlockUpdate.cpp 1019 B

12345678910111213141516171819202122232425262728293031
  1. #include "PlaceBlockUpdate.h"
  2. #include <Vec3.h>
  3. #include "BlockType.h"
  4. #include "StaticRegistry.h"
  5. #include "Registries.h"
  6. #include "Globals.h"
  7. PlaceBlockUpdateType::PlaceBlockUpdateType()
  8. : WorldUpdateType( ID )
  9. {}
  10. void PlaceBlockUpdateType::applyUpdate( Framework::StreamReader* zReader )
  11. {
  12. int dimension = 0;
  13. zReader->lese( (char*)&dimension, 4 );
  14. Framework::Vec3<int> pos;
  15. zReader->lese( (char*)&pos.x, 4 );
  16. zReader->lese( (char*)&pos.y, 4 );
  17. zReader->lese( (char*)&pos.z, 4 );
  18. unsigned short id;
  19. zReader->lese( (char*)&id, 2 );
  20. bool d = 1;
  21. zReader->lese( (char*)&d, 1 );
  22. if( !d )
  23. {
  24. if( STATIC_REGISTRY( BlockType ).zElement( id )->needsInstance() )
  25. currentGame->zDimension( dimension )->setBlock( STATIC_REGISTRY( BlockType ).zElement( id )->createBlock( pos ) );
  26. }
  27. else
  28. currentGame->zDimension( dimension )->setBlock( STATIC_REGISTRY( BlockType ).zElement( id )->loadBlock( pos, zReader ) );
  29. }