Nebula
Loading...
Searching...
No Matches
Game::FeatureUnit Class Reference

#include <featureunit.h>

Detailed Description

A FeatureUnit is an encapsulated feature which can be added to an application.

E.g. game features can be core features like Render or Network, or it can be some of the addons like db or physics.

To add a new feature, derive from this class and add it to the Game::GameServer on application or statehandler startup.

The Game::GameServer will start, load, save, trigger and close your feature.

Inherits Core::RefCounted.

Inherited by AudioFeature::AudioFeatureUnit, BaseGameFeature::BaseGameFeatureUnit, GraphicsFeature::GraphicsFeatureUnit, PhysicsFeature::PhysicsFeatureUnit, and Scripting::ScriptFeatureUnit.

Public Member Functions

 FeatureUnit ()
 constructor
 
virtual ~FeatureUnit ()
 destructor
 
virtual void OnAttach ()
 called from GameServer::AttachGameFeature()
 
virtual void OnRemove ()
 called from GameServer::RemoveGameFeature()
 
virtual void OnActivate ()
 called after GameServer::AttachGameFeature()
 
virtual void OnDeactivate ()
 called before GameServer::RemoveGameFeature()
 
bool IsActive () const
 return true if featureunit is currently active
 
virtual void OnLoad (World *world)
 called from within GameServer::Load()
 
virtual void OnStart (World *world)
 called from within GameServer::OnStart() after OnLoad
 
virtual void OnSave (World *world)
 called from within GameServer::Save()
 
virtual void OnBeforeLoad (World *world)
 called from within GameServer::NotifyBeforeLoad()
 
virtual void OnBeforeCleanup (World *world)
 called from within GameServer::NotifyBeforeCleanup()
 
virtual void OnStop (World *world)
 called from withing GameServer::Stop()
 
virtual void OnBeginFrame ()
 called on begin of frame
 
virtual void OnBeforeViews ()
 Called between beginning of frame and before the views are iterated.
 
virtual void OnFrame ()
 called in the middle of the feature trigger cycle
 
virtual void OnEndFrame ()
 called at the end of the feature trigger cycle
 
virtual void OnDecay ()
 called after entities has been destroyed and before releasing their memory
 
virtual void OnRenderDebug ()
 called when game debug visualization is on
 
virtual ManagerHandle AttachManager (ManagerAPI api)
 attach a manager to the feature unit
 
virtual void RemoveManager (ManagerHandle handle)
 remove a manager from the feature unit
 
void SetCmdLineArgs (const Util::CommandLineArgs &a)
 set command line args
 
const Util::CommandLineArgsGetCmdLineArgs () const
 get command line args
 
- Public Member Functions inherited from Core::RefCounted
 RefCounted ()
 constructor
 
int GetRefCount () const
 get the current refcount
 
void AddRef ()
 increment refcount by one
 
void Release ()
 decrement refcount and destroy object if refcount is zero
 
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
 
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
 
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
 
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
 
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
 
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
 
const Util::StringGetClassName () const
 get the class name
 
Util::FourCC GetClassFourCC () const
 get the class FourCC code
 

Protected Attributes

Util::ArrayAllocator< ManagerHandle, ManagerAPImanagers
 
Ids::IdGenerationPool managerPool
 
bool active
 
Util::CommandLineArgs args
 cmdline args for configuration from cmdline
 

Private Member Functions

 __DeclareClass (FeatureUnit)
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::RefCounted
static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
 
- Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)
 

Constructor & Destructor Documentation

◆ FeatureUnit()

Game::FeatureUnit::FeatureUnit ( )

constructor

◆ ~FeatureUnit()

Game::FeatureUnit::~FeatureUnit ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

Game::FeatureUnit::__DeclareClass ( FeatureUnit )
private

◆ AttachManager()

ManagerHandle Game::FeatureUnit::AttachManager ( ManagerAPI api)
virtual

attach a manager to the feature unit

Attach a manager to the game world.

The manager's OnActivate() method will be called once right away, and then its OnFrame() method once per frame.

◆ GetCmdLineArgs()

const Util::CommandLineArgs & Game::FeatureUnit::GetCmdLineArgs ( ) const
inline

get command line args

◆ IsActive()

bool Game::FeatureUnit::IsActive ( ) const
inline

return true if featureunit is currently active

◆ OnActivate()

void Game::FeatureUnit::OnActivate ( )
virtual

◆ OnAttach()

◆ OnBeforeCleanup()

void Game::FeatureUnit::OnBeforeCleanup ( World * world)
virtual

◆ OnBeforeLoad()

void Game::FeatureUnit::OnBeforeLoad ( World * world)
virtual

called from within GameServer::NotifyBeforeLoad()

◆ OnBeforeViews()

void Game::FeatureUnit::OnBeforeViews ( )
virtual

Called between beginning of frame and before the views are iterated.

This method is called from Game::GameServer::OnBeforeViews() on all game features attached to an GameServer in the order of attachment.

Override this method if your FeatureUnit has to do any work at the beginning of the frame.

Reimplemented in GraphicsFeature::GraphicsFeatureUnit.

◆ OnBeginFrame()

void Game::FeatureUnit::OnBeginFrame ( )
virtual

called on begin of frame

This method is called from Game::GameServer::OnBeginFrame() on all game features attached to an GameServer in the order of attachment.

Override this method if your FeatureUnit has to do any work at the beginning of the frame.

Reimplemented in AudioFeature::AudioFeatureUnit, PhysicsFeature::PhysicsFeatureUnit, GraphicsFeature::GraphicsFeatureUnit, and Scripting::ScriptFeatureUnit.

◆ OnDeactivate()

void Game::FeatureUnit::OnDeactivate ( )
virtual

◆ OnDecay()

void Game::FeatureUnit::OnDecay ( )
virtual

called after entities has been destroyed and before releasing their memory

Reimplemented in PhysicsFeature::PhysicsFeatureUnit.

◆ OnEndFrame()

void Game::FeatureUnit::OnEndFrame ( )
virtual

called at the end of the feature trigger cycle

This method is called from Game::GameServer::OnRender() on all game features attached to an GameServer in the order of attachment.

Override this method if your FeatureUnit has any work to do before rendering happens.

Reimplemented in GraphicsFeature::GraphicsFeatureUnit, Scripting::ScriptFeatureUnit, and BaseGameFeature::BaseGameFeatureUnit.

◆ OnFrame()

void Game::FeatureUnit::OnFrame ( )
virtual

called in the middle of the feature trigger cycle

This method is called from Game::GameServer::OnMoveBefore() on all game features attached to an GameServer in the order of attachment.

Override this method if your FeatureUnit has any work to do before the physics subsystem is triggered.

Reimplemented in GraphicsFeature::GraphicsFeatureUnit, Scripting::ScriptFeatureUnit, and BaseGameFeature::BaseGameFeatureUnit.

◆ OnLoad()

void Game::FeatureUnit::OnLoad ( World * world)
virtual

called from within GameServer::Load()

This method is called from within Game::GameServer::Load().

◆ OnRemove()

void Game::FeatureUnit::OnRemove ( )
virtual

◆ OnRenderDebug()

void Game::FeatureUnit::OnRenderDebug ( )
virtual

called when game debug visualization is on

This method is called from Game::GameServer::OnRenderDebug() on all game features attached to an GameServer in the order of attachment.

It's meant for debug issues. It will be called when debug mode is enabled.

Reimplemented in AudioFeature::AudioFeatureUnit, Scripting::ScriptFeatureUnit, PhysicsFeature::PhysicsFeatureUnit, GraphicsFeature::GraphicsFeatureUnit, and BaseGameFeature::BaseGameFeatureUnit.

◆ OnSave()

void Game::FeatureUnit::OnSave ( World * world)
virtual

called from within GameServer::Save()

This method is called from within Game::GameServer::NotifyGameSave().

◆ OnStart()

void Game::FeatureUnit::OnStart ( World * world)
virtual

called from within GameServer::OnStart() after OnLoad

This method is called from within Game::GameServer::OnStart().

Its called after all game features are activated and have initialized their subsystems.

◆ OnStop()

void Game::FeatureUnit::OnStop ( World * world)
virtual

called from withing GameServer::Stop()

◆ RemoveManager()

void Game::FeatureUnit::RemoveManager ( ManagerHandle handle)
virtual

remove a manager from the feature unit

Remove a manager from the game world.

The manager's OnDeactivate() method will be called.

◆ SetCmdLineArgs()

void Game::FeatureUnit::SetCmdLineArgs ( const Util::CommandLineArgs & a)
inline

set command line args

Member Data Documentation

◆ active

bool Game::FeatureUnit::active
protected

◆ args

Util::CommandLineArgs Game::FeatureUnit::args
protected

cmdline args for configuration from cmdline

◆ managerPool

Ids::IdGenerationPool Game::FeatureUnit::managerPool
protected

◆ managers

Util::ArrayAllocator<ManagerHandle, ManagerAPI> Game::FeatureUnit::managers
protected

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