HoverRace  2.0
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Attributes | List of all members
HoverRace::Client::HoverScript::SessionPeer Class Reference

Scripting peer for a game session. More...

#include <SessionPeer.h>

+ Inheritance diagram for HoverRace::Client::HoverScript::SessionPeer:

Classes

class  PlayerRef
 

Public Member Functions

 SessionPeer (Script::Core &scripting, ClientSession *session)
 
virtual ~SessionPeer ()
 
template<class Fn >
void ForEachPlayer (Fn fn)
 
std::shared_ptr< MetaPlayer > & GetPlayer (unsigned idx)
 
void LCountdownToNextPhase (const std::string &s) const
 
std::shared_ptr< Util::ClockLGetClock () const
 
std::shared_ptr< Util::ClockLGetCountdown () const
 
int LGetNumPlayers () const
 
MR_SimulationTime LGetTime () const
 
std::shared_ptr< TrackPeerLGetTrack () const
 
void OnSessionEnd ()
 Signal that the session has ended. More...
 
void OnSessionStart (ClientSession *session)
 Attach a session. More...
 
void SetMeta (MetaSession *meta)
 
- Public Member Functions inherited from HoverRace::Script::Peer
 Peer (Core &scripting, const std::string &name)
 
 Peer (const Peer &)=delete
 
virtual ~Peer ()
 
CoreGetScripting () const
 
void LHelp ()
 
void LHelp_M (const std::string &methodName)
 
Peeroperator= (const Peer &)=delete
 

Static Public Member Functions

static void Register (Script::Core &scripting)
 Register this peer in an environment. More...
 
- Static Public Member Functions inherited from HoverRace::Script::Peer
static void Register (Core &scripting)
 

Protected Member Functions

void VerifySession () const
 Verify that the session is still active. More...
 

Private Types

using SUPER = Script::Peer
 

Private Attributes

MetaSessionmeta
 
std::vector< std::unique_ptr< PlayerRef > > playerRefs
 
luabind::object players
 
luabind::object rules
 
ClientSessionsession
 

Detailed Description

Scripting peer for a game session.

Author
Michael Imamura

Member Typedef Documentation

Constructor & Destructor Documentation

HoverRace::Client::HoverScript::SessionPeer::SessionPeer ( Script::Core scripting,
ClientSession session 
)
HoverRace::Client::HoverScript::SessionPeer::~SessionPeer ( )
virtual

Member Function Documentation

template<class Fn >
void HoverRace::Client::HoverScript::SessionPeer::ForEachPlayer ( Fn  fn)
inline
std::shared_ptr<MetaPlayer>& HoverRace::Client::HoverScript::SessionPeer::GetPlayer ( unsigned  idx)
inline
void HoverRace::Client::HoverScript::SessionPeer::LCountdownToNextPhase ( const std::string &  s) const
std::shared_ptr< Util::Clock > HoverRace::Client::HoverScript::SessionPeer::LGetClock ( ) const
std::shared_ptr< Util::Clock > HoverRace::Client::HoverScript::SessionPeer::LGetCountdown ( ) const
int HoverRace::Client::HoverScript::SessionPeer::LGetNumPlayers ( ) const
MR_SimulationTime HoverRace::Client::HoverScript::SessionPeer::LGetTime ( ) const
std::shared_ptr< TrackPeer > HoverRace::Client::HoverScript::SessionPeer::LGetTrack ( ) const
void HoverRace::Client::HoverScript::SessionPeer::OnSessionEnd ( )

Signal that the session has ended.

This will detach this peer from the session.

void HoverRace::Client::HoverScript::SessionPeer::OnSessionStart ( ClientSession session)

Attach a session.

Parameters
sessionThe session to attach (may be nullptr).
void HoverRace::Client::HoverScript::SessionPeer::Register ( Script::Core scripting)
static

Register this peer in an environment.

Parameters
scriptingThe target environment.
void HoverRace::Client::HoverScript::SessionPeer::SetMeta ( MetaSession meta)
inline
void HoverRace::Client::HoverScript::SessionPeer::VerifySession ( ) const
protected

Verify that the session is still active.

If the session is no longer active, then a Lua error will be triggered and this function will not return.

Member Data Documentation

MetaSession* HoverRace::Client::HoverScript::SessionPeer::meta
private
std::vector<std::unique_ptr<PlayerRef> > HoverRace::Client::HoverScript::SessionPeer::playerRefs
private
luabind::object HoverRace::Client::HoverScript::SessionPeer::players
private
luabind::object HoverRace::Client::HoverScript::SessionPeer::rules
private
ClientSession* HoverRace::Client::HoverScript::SessionPeer::session
private

The documentation for this class was generated from the following files: