Nymph Game Engine
Chaiscript based Game Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Script::ScriptObject Class Reference

Class for script object. More...

#include <script_object.h>

Inheritance diagram for Script::ScriptObject:
Events::Subject Events::Observer

Public Member Functions

 ScriptObject (const std::string &name)
 ScriptObject constructor. More...
 
 ScriptObject (const ScriptObject &other)
 Copy constructor for ScriptObject. More...
 
 ~ScriptObject ()=default
 Destroys the object. More...
 
void setClassName (const std::string &name)
 Sets the class name on the scripting object. More...
 
std::string getClassName () const noexcept
 
void onStart ()
 Calls onStart in the attached script object. More...
 
void onUpdate (const float delta)
 Calls onUpdate in the attached script object. More...
 
void onDestroy ()
 Calls onDestroy in the attached script object. More...
 
bool shouldBeSerialized () const noexcept
 
Json::Value getSaveData () const noexcept
 
void loadSavedData (Json::Value &save_data)
 
bool representsDynamicObject (const chaiscript::dispatch::Dynamic_Object &obj) const noexcept
 
virtual void onNotifyNow (std::shared_ptr< Events::Event > event) override
 When receiving an event that is immediate, onNotifyNow is used. It acts as an interrupt to make sure the object is notified before another engine loop. This is pure virtual and is implemented on a case by case basis in derived classes. More...
 
virtual void handleQueuedEvent (std::shared_ptr< Events::Event > event) override
 HandleQueuedEvent allows derived classes to define behaviour for when queuedEvents are received. More...
 
- Public Member Functions inherited from Events::Subject
virtual ~Subject ()=default
 
virtual void notify (std::shared_ptr< Event > event)
 notify is used to tell observers of an event. More...
 
virtual void notifyNow (std::shared_ptr< Event > event)
 notifyNow is used to tell observers of an event as an interrupt. More...
 
virtual void addObserver (std::shared_ptr< Observer > observer)
 Adds an observer. More...
 
virtual void removeObserver (std::shared_ptr< Observer > observer)
 Removes an observer. More...
 
- Public Member Functions inherited from Events::Observer
virtual ~Observer ()
 
void onNotify (std::shared_ptr< Event > event)
 When receiving an event that is non-immediate, onNotify is used. The event is added to the event queue that is processed when processEventQueue is called. More...
 
void processEventQueue ()
 This should be called once ever loop for every Observer to properly use queued events. More...
 

Friends

class ScriptingSystem
 

Additional Inherited Members

- Protected Member Functions inherited from Events::Observer
std::shared_ptr< EventgetEvent ()
 
bool eventsWaiting () const noexcept
 

Detailed Description

Class for script object.

Constructor & Destructor Documentation

Script::ScriptObject::ScriptObject ( const std::string &  name)

ScriptObject constructor.

Parameters
[in]nameThe name
Script::ScriptObject::ScriptObject ( const ScriptObject other)

Copy constructor for ScriptObject.

Parameters
[in]otherThe other
Script::ScriptObject::~ScriptObject ( )
default

Destroys the object.

Member Function Documentation

std::string Script::ScriptObject::getClassName ( ) const
noexcept
Json::Value Script::ScriptObject::getSaveData ( ) const
noexcept
void Script::ScriptObject::loadSavedData ( Json::Value &  save_data)
void Script::ScriptObject::onDestroy ( )

Calls onDestroy in the attached script object.

void Script::ScriptObject::onNotifyNow ( std::shared_ptr< Events::Event event)
overridevirtual

When receiving an event that is immediate, onNotifyNow is used. It acts as an interrupt to make sure the object is notified before another engine loop. This is pure virtual and is implemented on a case by case basis in derived classes.

Parameters
[in]eventThe event

Implements Events::Observer.

References handleQueuedEvent().

void Script::ScriptObject::onStart ( )

Calls onStart in the attached script object.

void Script::ScriptObject::onUpdate ( const float  delta)

Calls onUpdate in the attached script object.

Parameters
[in]deltaThe delta

References Events::Observer::processEventQueue().

bool Script::ScriptObject::representsDynamicObject ( const chaiscript::dispatch::Dynamic_Object &  obj) const
noexcept
void Script::ScriptObject::setClassName ( const std::string &  name)

Sets the class name on the scripting object.

Parameters
[in]nameThe name

Referenced by generated::getScriptObjectModule().

bool Script::ScriptObject::shouldBeSerialized ( ) const
noexcept

Friends And Related Function Documentation

friend class ScriptingSystem
friend

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