Danbias/Into The Void client/Player.h

56 lines
1.3 KiB
C++

#pragma once
#ifndef PLAYER_H
#define PLAYER_H
#include "RenderEngine.h"
#include "SoundSystem.h"
#include "GameLogic.h"
#include "Engine.h"
#include "NetworkConnection.h"
#include "NetworkUpdateStructs.h"
class Player
{
// friend class NetworkConnection;
// friend class IntoTheVoid;
friend class RenderEngine;
private:
Oyster::Render::Model* renderAvatar;
Game::Ship logicAvatar;
Oyster::Math::Float4x4 *orientationPointer;
std::string name;
SoundSource *weaponSound;
public:
enum Result { Success, Failure };
static Result init( );
Player( const std::string &objFile = "", const ::Oyster::Math::Float4x4 &transform = ::Oyster::Math::Float4x4::identity );
virtual ~Player();
Game::Ship & accessShip( );
const Game::Ship & accessShip( ) const;
void update( const ::Oyster::Math::Float &deltaTime , ClientToServerUpdateData &update);
void render( ) const;
SoundSource *getWeaponSound() const;
const Oyster::Math::Float4x4 *getOrientation();
// transform is a matrix that is supposed to change the shape of the ship. Scaling as an example
void setMutation(const Oyster::Math::Float4x4 &transform);
void copyLogicFrom( const Player &player ); // Not garbage .. grrrrr ~Dan
std::string getName() const;
void setName(const std::string &name);
int HP,Score, Shield;// evul public /Par
float Speed;
};
#endif