|
@@ -56,25 +56,56 @@ void ActionTarget::placeBlock( Entity* zActor, Item* zItem )
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void ActionTarget::save( Framework::StreamWriter* zWriter ) const
|
|
|
+void ActionTarget::save( ActionTarget* zTarget, Framework::StreamWriter* zWriter )
|
|
|
{
|
|
|
- if( entityId >= 0 )
|
|
|
+ if( zTarget )
|
|
|
{
|
|
|
- char b = 1;
|
|
|
- zWriter->schreibe( &b, 1 );
|
|
|
- zWriter->schreibe( (char*)&entityId, 4 );
|
|
|
+ if( zTarget->entityId >= 0 )
|
|
|
+ {
|
|
|
+ char b = 1;
|
|
|
+ zWriter->schreibe( &b, 1 );
|
|
|
+ zWriter->schreibe( (char*)&zTarget->entityId, 4 );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ char b = 2;
|
|
|
+ zWriter->schreibe( &b, 1 );
|
|
|
+ zWriter->schreibe( (char*)&zTarget->blockPos.x, 4 );
|
|
|
+ zWriter->schreibe( (char*)&zTarget->blockPos.y, 4 );
|
|
|
+ zWriter->schreibe( (char*)&zTarget->blockPos.z, 4 );
|
|
|
+ zWriter->schreibe( (char*)&zTarget->targetBlockSide, 4 );
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- char b = 2;
|
|
|
+ char b = 0;
|
|
|
zWriter->schreibe( &b, 1 );
|
|
|
- zWriter->schreibe( (char*)&blockPos.x, 4 );
|
|
|
- zWriter->schreibe( (char*)&blockPos.y, 4 );
|
|
|
- zWriter->schreibe( (char*)&blockPos.z, 4 );
|
|
|
- zWriter->schreibe( (char*)&targetBlockSide, 4 );
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ActionTarget* ActionTarget::load( Framework::StreamReader* zReader )
|
|
|
+{
|
|
|
+ char b;
|
|
|
+ zReader->lese( &b, 1 );
|
|
|
+ if( b == 1 )
|
|
|
+ {
|
|
|
+ int id;
|
|
|
+ zReader->lese( (char*)&id, 4 );
|
|
|
+ return new ActionTarget( id );
|
|
|
+ }
|
|
|
+ else if( b == 2 )
|
|
|
+ {
|
|
|
+ Framework::Vec3<int> pos;
|
|
|
+ Direction side;
|
|
|
+ zReader->lese( (char*)&pos.x, 4 );
|
|
|
+ zReader->lese( (char*)&pos.y, 4 );
|
|
|
+ zReader->lese( (char*)&pos.z, 4 );
|
|
|
+ zReader->lese( (char*)&side, 4 );
|
|
|
+ return new ActionTarget( pos, side );
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
Entity::Entity( const EntityType* zType, Framework::Vec3<float> location, int dimensionId, int entityId )
|
|
|
: Inventory( location, true ),
|