#include "PlaceBlockUpdate.h" #include #include "BlockType.h" #include "StaticRegistry.h" #include "Registries.h" #include "Globals.h" PlaceBlockUpdateType::PlaceBlockUpdateType() : WorldUpdateType( ID ) {} void PlaceBlockUpdateType::applyUpdate( Framework::StreamReader* zReader ) { int dimension = 0; zReader->lese( (char*)&dimension, 4 ); Framework::Vec3 pos; zReader->lese( (char*)&pos.x, 4 ); zReader->lese( (char*)&pos.y, 4 ); zReader->lese( (char*)&pos.z, 4 ); unsigned short id; zReader->lese( (char*)&id, 2 ); bool d = 1; zReader->lese( (char*)&d, 1 ); if( !d ) { if( STATIC_REGISTRY( BlockType ).zElement( id )->needsInstance() ) currentGame->zDimension( dimension )->setBlock( STATIC_REGISTRY( BlockType ).zElement( id )->createBlock( pos ) ); } else currentGame->zDimension( dimension )->setBlock( STATIC_REGISTRY( BlockType ).zElement( id )->loadBlock( pos, zReader ) ); }