123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include "Game.h"
- #include "Initialisierung.h"
- #include "Globals.h"
- #include <AsynchronCall.h>
- #include <Bildschirm.h>
- Game::Game( Bildschirm* zScreen )
- : Menu( zScreen )
- {
- logout = initKnopf( 10, 10, 200, 20, Knopf::Style::Normal, "Verlassen" );
- logout->setMausEreignis( [this, zScreen]( void* p, void* o, MausEreignis me ) {
- if( me.id == ME_RLinks )
- {
- logout->removeStyle( Knopf::Style::Erlaubt );
- new AsynchronCall( [this, zScreen]() {
- if( network->leaveGame() )
- {
- currentGame->release();
- currentGame = 0;
- zScreen->lock();
- hide();
- menuRegister->get( "directConnect" )->show();
- zScreen->unlock();
- }
- logout->addStyle( Knopf::Style::Erlaubt );
- } );
- }
- return 1;
- } );
- elements.add( logout );
- debug = initTextFeld( 10, 40, 500, 40, TextFeld::Style::Text | TextFeld::Style::Mehrzeilig, "" );
- elements.add( debug );
- invB = new Bild();
- invB->neuBild( zScreen->getBackBufferSize().x - 20, 50, 0 );
- invB->setAlpha3D( 1 );
- inventory = initBildZ( 10, zScreen->getBackBufferSize().y - 60, zScreen->getBackBufferSize().x - 20, 50, BildZ::Style::Sichtbar | BildZ::Style::Alpha, invB );
- elements.add( inventory );
- }
- void Game::updatePosition( Vec3<float> position, bool target, Vec3<int> targetPos )
- {
- Text txt = "Position: (";
- txt.setPrecision( 2 );
- txt += position.x;
- txt += ", ";
- txt += position.y;
- txt += ", ";
- txt += position.z;
- txt += ")";
- if( target )
- {
- txt += "\nTarget: (";
- txt += targetPos.x;
- txt += ", ";
- txt += targetPos.y;
- txt += ", ";
- txt += targetPos.z;
- txt += ")";
- }
- debug->setText( txt );
- }
- void Game::updateInventory( Framework::Array<ItemSlot*>& itemBar, int pos )
- {
- invB->fillRegion( 0, 0, invB->getBreite(), invB->getHeight(), 0 );
- TextRenderer tr;
- tr.setSchriftZ( dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()) );
- tr.setSchriftSize( 12 );
- int index = 0;
- for( auto slot : itemBar )
- {
- if( pos == index )
- {
- invB->fillRegion( 50 * index, 0, 50, 50, 0x7F202020 );
- }
- if( slot && slot->zStack() && slot->zStack()->zItem() )
- {
- tr.renderText( 5 + index * 50, 5, slot->zStack()->zItem()->getName(), *invB, 0xFFFFFFFF );
- }
- index++;
- }
- inventory->setRender();
- }
|