|
@@ -27,6 +27,8 @@ World::World( Bildschirm3D* zScreen )
|
|
|
kam->setWelt( renderedWorld );
|
|
|
zScreen->addKamera( kam );
|
|
|
firstMessage = 1;
|
|
|
+ hasTarget = 0;
|
|
|
+ entityTarget = -1;
|
|
|
start();
|
|
|
}
|
|
|
|
|
@@ -61,7 +63,7 @@ void World::update( bool background )
|
|
|
serverMessageReader->lese( (char*)&pos.x, 4 );
|
|
|
serverMessageReader->lese( (char*)&pos.y, 4 );
|
|
|
serverMessageReader->lese( (char*)&pos.z, 4 );
|
|
|
- kam->setPosition( pos + Vec3<float>( 0.f, 0.f, 2.f ) );
|
|
|
+ kam->setPosition( pos + Vec3<float>( 0.f, 0.f, 1.5f ) );
|
|
|
if( firstMessage )
|
|
|
{
|
|
|
firstMessage = 0;
|
|
@@ -73,6 +75,40 @@ void World::update( bool background )
|
|
|
((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos );
|
|
|
for( Dimension* dim : *dimensions )
|
|
|
dim->removeDistantChunks( { (int)pos.x, (int)pos.y } );
|
|
|
+ char b = 0;
|
|
|
+ serverMessageReader->lese( &b, 1 );
|
|
|
+ if( hasTarget && dimensions->hat( 0 ) )
|
|
|
+ {
|
|
|
+ if( entityTarget == -1 )
|
|
|
+ {
|
|
|
+ auto block = zBlockAt( target, dimensions->z( 0 )->getDimensionId() );
|
|
|
+ if( block.isA() )
|
|
|
+ block.getA()->setAmbientFactor( block.getA()->getAmbientFactor() - 0.2 );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( b == 1 )
|
|
|
+ {
|
|
|
+ serverMessageReader->lese( (char*)&entityTarget, 4 );
|
|
|
+ hasTarget = 1;
|
|
|
+ }
|
|
|
+ else if( b == 2 )
|
|
|
+ {
|
|
|
+ serverMessageReader->lese( (char*)&target.x, 4 );
|
|
|
+ serverMessageReader->lese( (char*)&target.y, 4 );
|
|
|
+ serverMessageReader->lese( (char*)&target.z, 4 );
|
|
|
+ hasTarget = 1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ hasTarget = 0;
|
|
|
+ if( hasTarget && dimensions->hat( 0 ) )
|
|
|
+ {
|
|
|
+ if( entityTarget == -1 )
|
|
|
+ {
|
|
|
+ auto block = zBlockAt( target, dimensions->z( 0 )->getDimensionId() );
|
|
|
+ if( block.isA() )
|
|
|
+ block.getA()->setAmbientFactor( block.getA()->getAmbientFactor() + 0.2 );
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
network->zFactoryClient()->endMessageReading( background );
|
|
|
}
|