123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #include "Player.h"
- #include "Game.h"
- Player::Player( Framework::Vec3<float> location, int dimensionId, int entityId )
- : Entity( PlayerEntityType::INSTANCE, location, dimensionId, entityId )
- {
- maxHP = 10;
- currentHP = 10;
- stamina = 10;
- maxStamina = 10;
- hunger = 10;
- maxHunger = 10;
- thirst = 10;
- maxThirst = 10;
- keyState = 0;
- }
- void Player::setName( Framework::Text name )
- {
- this->name = name;
- }
- const char* Player::getName() const
- {
- return name;
- }
- void Player::tick( const Dimension* zDimension, Game* zGame )
- {
- if( (keyState | Key::MOVE_FRONT) == keyState )
- location += {faceDir.x * 0.05f, faceDir.y * 0.05f, 0};
- if( (keyState | Key::MOVE_BACK) == keyState )
- location += {-faceDir.x * 0.05f, -faceDir.y * 0.05f, 0};
- if( (keyState | Key::MOVE_RIGHT) == keyState )
- {
- Vec2<float> right = Vec2<float>( faceDir ).CW90();
- location += {right.x * 0.05f, right.y * 0.05f, 0};
- }
- if( (keyState | Key::MOVE_LEFT) == keyState )
- {
- Vec2<float> left = Vec2<float>( faceDir ).CCW90();
- location += {left.x * 0.05f, left.y * 0.05f, 0};
- }
- if( (keyState | Key::MOVE_UP) == keyState )
- location += {0, 0, 0.05f};
- if( (keyState | Key::MOVE_DOWN) == keyState )
- location += {0, 0, -0.05f};
- if( (keyState | Key::ROTATE_LEFT) == keyState )
- faceDir = faceDir.rotation( -0.05f );
- if( (keyState | Key::ROTATE_RIGHT) == keyState )
- faceDir = faceDir.rotation( 0.05f );
- }
- void Player::api( Framework::StreamReader* zRequest, NetworkResponse* zResponse )
- {
- char byte;
- zRequest->lese( &byte, 1 );
- switch( byte )
- {
- case 0:
- zRequest->lese( &byte, 1 );
- switch( byte )
- {
- case 0:
- keyState = keyState & ~Key::MOVE_FRONT;
- break;
- case 1:
- keyState = keyState & ~Key::MOVE_LEFT;
- break;
- case 2:
- keyState = keyState & ~Key::MOVE_BACK;
- break;
- case 3:
- keyState = keyState & ~Key::MOVE_RIGHT;
- break;
- case 4:
- keyState = keyState & ~Key::MOVE_UP;
- break;
- case 5:
- keyState = keyState & ~Key::ROTATE_LEFT;
- break;
- case 6:
- keyState = keyState & ~Key::ROTATE_RIGHT;
- break;
- case 7:
- keyState = keyState & ~Key::MOVE_DOWN;
- break;
- }
- break;
- case 1:
- zRequest->lese( &byte, 1 );
- switch( byte )
- {
- case 0:
- keyState = keyState | Key::MOVE_FRONT;
- break;
- case 1:
- keyState = keyState | Key::MOVE_LEFT;
- break;
- case 2:
- keyState = keyState | Key::MOVE_BACK;
- break;
- case 3:
- keyState = keyState | Key::MOVE_RIGHT;
- break;
- case 4:
- keyState = keyState | Key::MOVE_UP;
- break;
- case 5:
- keyState = keyState | Key::ROTATE_LEFT;
- break;
- case 6:
- keyState = keyState | Key::ROTATE_RIGHT;
- break;
- case 7:
- keyState = keyState | Key::MOVE_DOWN;
- break;
- }
- break;
- }
- }
- PlayerEntityType::PlayerEntityType()
- : EntityType( ID )
- {}
- void PlayerEntityType::loadSuperEntity( Entity* zEntity, Framework::StreamReader* zReader ) const
- {}
- void PlayerEntityType::saveSuperEntity( Entity* zEntity, Framework::StreamWriter* zWriter ) const
- {}
- Entity* PlayerEntityType::createEntity( Framework::Vec3<float> position, int dimensionId, Game* zTarget, int entityId ) const
- {
- return new Player( position, dimensionId, entityId );
- }
|