Emergency 2017 Dokumentation  v3.0.1
qsf::ScriptComponent Class Reference

Script component class. More...

#include <ScriptComponent.h>

Public Member Functions

 ScriptComponent (Prototype *prototype)
 Constructor. More...
 
virtual ~ScriptComponent ()
 Destructor. More...
 
const AssetProxygetScript () const
 Return the script asset to use. More...
 
void setScript (const AssetProxy &script)
 Set the script asset to use. More...
 
const std::string & getScriptExecute () const
 Return the script source code to execute. More...
 
void setScriptExecute (const std::string &scriptExecute)
 Set the script source code to execute. More...
 
ScriptgetScriptInstance () const
 Return the script instance. More...
 
virtual ScriptgetAssociatedScript () const override
 Return the script instance associated with this object instance. More...
 
- Public Member Functions inherited from qsf::Component
virtual ~Component ()
 Destructor. More...
 
PrototypegetPrototype () const
 Return the prototype this component is in. More...
 
EntitygetEntity () const
 Return a reference to the entity this component is in. More...
 
uint32 getId () const
 Return the unique component identifier. More...
 
ComponentManagergetComponentManager () const
 Return the component manager that's responsible for this component instance. More...
 
ComponentCollectiongetComponentCollection () const
 Return the component collection that's responsible for this component instance. More...
 
bool isSimulating () const
 Return whether or not the component is in simulating mode. More...
 
bool isActive () const
 Return whether or not the component is considered to be active. More...
 
void setActive (bool active)
 Set whether or not the component is considered to be active. More...
 
bool isDebug () const
 Return whether or not the component is considered to be in debug mode. More...
 
bool isHidden () const
 Return whether or not the component is hidden. More...
 
void setHidden (bool hidden)
 Set whether or not the component is hidden. More...
 
bool isGloballyHidden () const
 Return whether or not the component is globally hidden. More...
 
void setGloballyHidden (bool globallyHidden)
 Set whether or not the component is globally hidden. More...
 
bool isReallyHidden () const
 Return whether or not the component is really hidden. More...
 
bool startup ()
 Startup the component. More...
 
bool isRunning () const
 Return whether or not the component is up-and-running. More...
 
void shutdown ()
 Shutdown the component. More...
 
uint64 getPrototypeId () const
 Return the ID of the prototype this component is in. More...
 
uint64 getEntityId () const
 Return the ID of the entity this component is in. More...
 
virtual void onInvalidation ()
 Invalidate the component. More...
 
virtual void setDebug (bool debugMode)
 Set whether or not the component is considered to be in debug mode. More...
 
virtual void serialize (BinarySerializer &serializer)
 Serialize or deserialize the component using a binary serializer. More...
 
- Public Member Functions inherited from qsf::InheritedObject
void copyPropertyOverrideStateFrom (const InheritedObject &object, bool add=false)
 
void setAllPropertyOverrideFlags (bool value)
 
void autoCreatePropertyOverrideState ()
 
virtual camp::Value getPropertyDefaultValue (const StringHash &propertyId) const override
 
virtual PropertyOverrideState getPropertyOverrideState (const StringHash &propertyId) const override
 
virtual bool setPropertyOverrideState (const StringHash &propertyId, PropertyOverrideState overrideState) override
 
- Public Member Functions inherited from qsf::Object
virtual ~Object ()
 Destructor. More...
 
const camp::Class & getCampClass () const
 Return the CAMP class. More...
 
int getPropertyIndexById (const StringHash &propertyId) const
 Return the CAMP property index by using the unique class property ID. More...
 
uint32 getPropertyIdByIndex (int index) const
 Return the unique class property ID with the given index. More...
 
std::string getPropertyNameById (const StringHash &propertyId) const
 Return the CAMP property name by using the unique class property ID. More...
 
const camp::Property * getCampPropertyById (const StringHash &propertyId) const
 Return the CAMP property by using the unique class property ID. More...
 
void setPropertyValuesByString (const std::string &values)
 Set CAMP reflection property values by using a given string. More...
 
void setPropertiesToDefaultValues ()
 Set all CAMP reflection system properties to their default values. More...
 
void serializeToBoostPTree (boost::property_tree::ptree &pTree, SerializationMethod serializationMethod=SERIALIZE_DIFFERENTIAL) const
 
void serializeToBoostPTree (boost::property_tree::ptree &pTree, const camp::Class &campClass, SerializationMethod serializationMethod=SERIALIZE_DIFFERENTIAL) const
 
bool deserializeFromBoostPTree (const boost::property_tree::ptree &pTree, SerializationMethod serializationMethod=SERIALIZE_DIFFERENTIAL)
 
bool deserializeFromBoostPTree (const boost::property_tree::ptree &pTree, const camp::Class &campClass, SerializationMethod serializationMethod=SERIALIZE_DIFFERENTIAL)
 
void serializeToBinarySerializer (BinarySerializer &serializer, SerializationMode mode=MODE_MINIMAL, SerializationMethod serializationMethod=SERIALIZE_DIFFERENTIAL) const
 
void deserializeFromBinarySerializer (BinarySerializer &serializer, SerializationMode mode=MODE_MINIMAL, SerializationMethod serializationMethod=SERIALIZE_DIFFERENTIAL, bool setOverrideState=true)
 
virtual void onPreDeserialize ()
 Called right before the object is deserialized using any of the above methods. Default implementation is empty. More...
 
virtual void onPostDeserialize ()
 Called right after the object was deserialized using any of the above methods. Default implementation is empty. More...
 

Static Public Attributes

static const uint32 COMPONENT_ID
 "qsf::ScriptComponent" unique component ID More...
 
static const uint32 ACTIVE
 "Active" unique class property ID inside the class More...
 
static const uint32 SCRIPT
 "Script" unique class property ID inside the class More...
 
static const uint32 SCRIPT_EXECUTE
 "ScriptExecute" unique class property ID inside the class More...
 
- Static Public Attributes inherited from qsf::Component
static const uint32 COMPONENT_ID
 "qsf::Component" unique component ID More...
 

Protected Member Functions

virtual void onSetActive (bool active) override
 Set whether or not the component is considered to be active. More...
 
virtual bool onStartup () override
 Startup the component. More...
 
virtual void onShutdown () override
 Shutdown the component. More...
 
- Protected Member Functions inherited from qsf::Component
 Component (Prototype *prototype)
 Constructor. More...
 
void promotePropertyChange (uint32 propertyId)
 A component property value was changed. More...
 
template<typename T , typename S >
bool assignAndPromoteChange (T &variable, const S &newValue, uint32 propertyId)
 Comfort function for updating an exported member variable and promoting any change that happened. More...
 
void setRegisterForSimulationTransformChanges (bool enable)
 Register or unregister this component as simulation transform listener. More...
 
void setRegisterForAnimationTransformChanges (bool enable)
 Register or unregister this component as animation transform listener. More...
 
virtual const ObjectgetPropertyDefaultsProvider () const override
 
virtual bool implementsOnComponentPropertyChange () const
 Signal whether this component needs the "onComponentPropertyChange" callback at all. More...
 
virtual void onComponentPropertyChange (const Component &component, uint32 propertyId)
 Called in case a component property value was changed. More...
 
virtual void onComponentTransformChange (const Transform &transform, TransformChangeFlags flags)
 Called in case a component transformation value was changed. More...
 
virtual void onSetSimulating (bool simulating)
 Set whether or not the component is in simulating mode. More...
 
virtual void onSetDebug (bool debug)
 Set whether or not the component is considered to be in debug mode. More...
 
virtual void onSetHidden (bool hidden)
 Set whether or not the component is considered to be hidden. More...
 
- Protected Member Functions inherited from qsf::InheritedObject
 InheritedObject ()
 Default constructor. More...
 
- Protected Member Functions inherited from qsf::Object
 Object ()
 Default constructor. More...
 
- Protected Member Functions inherited from qsf::WeakPtrTarget
 WeakPtrTarget ()
 Default constructor. More...
 
 WeakPtrTarget (const WeakPtrTarget &other)
 Copy constructor. More...
 
 WeakPtrTarget (WeakPtrTarget &&)=delete
 Delete the move constructor, as WeakPtrTarget would need a proper move constructor-implementation that ensures that its pointer gets updated in the WeakPtrBase as well. More...
 
 ~WeakPtrTarget ()
 Destructor. More...
 
void invalidateAllWeakPtr ()
 Invalidate all weak pointers to this object. More...
 
void operator= (const WeakPtrTarget &other)
 Copy operator. More...
 

Additional Inherited Members

- Public Types inherited from qsf::Component
enum  TransformChangeFlag {
  TRANSFORM_CHANGE_POSITION = 0x01, TRANSFORM_CHANGE_ROTATION = 0x02, TRANSFORM_CHANGE_SCALE = 0x04, TRANSFORM_CHANGE_TRANSFORM = 0x07,
  TRANSFORM_CHANGE_FOR_SIMULATION = 0x08, TRANSFORM_CHANGE_FOR_ANIMATION = 0x10
}
 
typedef BitFlagSet< uint8, TransformChangeFlagTransformChangeFlags
 
- Public Types inherited from qsf::Object
enum  PropertyOverrideState { PROPERTY_INVALID, PROPERTY_DEFAULT, PROPERTY_OVERRIDE, PROPERTY_REMOVED }
 
enum  SerializationMethod { SERIALIZE_FLAT, SERIALIZE_COMPLETE, SERIALIZE_DIFFERENTIAL, SERIALIZE_IGNORE_UNKNOWN }
 
enum  SerializationMode { MODE_MINIMAL, MODE_COMPATIBLE }
 
- Protected Attributes inherited from qsf::InheritedObject
std::bitset< 128 > mPropertyOverrideFlags
 One bit for each property; if set, the property is overridden. More...
 

Detailed Description

Script component class.

Remarks
There are the following known build-in global script functions which are used as entry points:
  • "onStartup": Name of the optional script function called by C++ when the script component should startup itself
  • "onUpdate": Name of the optional script function called by C++ when the script component should update itself TODO(co) Currently it's unclear whether or not the update remains in here, maybe it's moved to the game logic system
  • "onShutdown": Name of the optional script function called by C++ when the script component should shutdown itself
Todo:
  • TODO(co) At the moment this script component is primarily for rabid prototyping and proof-of-concept of the script system

Definition at line 50 of file ScriptComponent.h.

Constructor & Destructor Documentation

qsf::ScriptComponent::ScriptComponent ( Prototype prototype)
inlineexplicit

Constructor.

Parameters
[in]prototypeThe prototype this component is in, no null pointer allowed

Definition at line 14 of file ScriptComponent-inl.h.

qsf::ScriptComponent::~ScriptComponent ( )
inlinevirtual

Destructor.

Definition at line 21 of file ScriptComponent-inl.h.

Member Function Documentation

virtual Script* qsf::ScriptComponent::getAssociatedScript ( ) const
overridevirtual

Return the script instance associated with this object instance.

Returns
The script instance associated with this object instance, can be a null pointer, do not destroy the instance
Note
  • The default implementation is empty and always returns a null pointer

Reimplemented from qsf::Object.

const AssetProxy & qsf::ScriptComponent::getScript ( ) const
inline

Return the script asset to use.

Returns
The script asset to use (e.g. "sample/script/lua/squirrel"), do no destroy the returned instance
Note
  • Connected to the CAMP reflection system

Definition at line 26 of file ScriptComponent-inl.h.

const std::string & qsf::ScriptComponent::getScriptExecute ( ) const
inline

Return the script source code to execute.

Returns
The script source code to execute
Note
  • Connected to the CAMP reflection system
See also
  • "qsf::setScriptExecute()"

Definition at line 31 of file ScriptComponent-inl.h.

Script * qsf::ScriptComponent::getScriptInstance ( ) const
inline

Return the script instance.

Returns
The script instance, can be a null pointer, do not destroy the instance

Definition at line 36 of file ScriptComponent-inl.h.

virtual void qsf::ScriptComponent::onSetActive ( bool  active)
overrideprotectedvirtual

Set whether or not the component is considered to be active.

Parameters
[in]active"true" if the component is considered to be active, else "false"
Note
  • The default implementation is empty
  • This method is only called in case there's a real state change
  • This method is also called in case the component is currently not running
See also
  • "qsf::Component::setActive()"

Reimplemented from qsf::Component.

virtual void qsf::ScriptComponent::onShutdown ( )
overrideprotectedvirtual

Shutdown the component.

Note
  • Only called in case "onStartup()" returned successfully
  • The default implementation is empty

Reimplemented from qsf::Component.

virtual bool qsf::ScriptComponent::onStartup ( )
overrideprotectedvirtual

Startup the component.

Returns
"true" if all went fine, else "false"
Note
  • The default implementation is empty
  • Only components which are part of entities (concrete prototype instances) get started
  • When this method gets called, the properties might still be on default values but it's also possible that properties already have customized values. Take this into account when implementing your method.

Reimplemented from qsf::Component.

void qsf::ScriptComponent::setScript ( const AssetProxy script)

Set the script asset to use.

Parameters
[in]scriptThe script asset to use (e.g. "sample/script/lua/squirrel")
Note
  • Connected to the CAMP reflection system
void qsf::ScriptComponent::setScriptExecute ( const std::string &  scriptExecute)

Set the script source code to execute.

Parameters
[in]scriptExecuteThe script source code to execute
Note
  • Connected to the CAMP reflection system
  • Directly called after calling the global "onStartup" script function, also called in case another script to execute is called later on

Member Data Documentation

const uint32 qsf::ScriptComponent::ACTIVE
static

"Active" unique class property ID inside the class

Definition at line 59 of file ScriptComponent.h.

const uint32 qsf::ScriptComponent::COMPONENT_ID
static

"qsf::ScriptComponent" unique component ID

Definition at line 58 of file ScriptComponent.h.

const uint32 qsf::ScriptComponent::SCRIPT
static

"Script" unique class property ID inside the class

Definition at line 60 of file ScriptComponent.h.

const uint32 qsf::ScriptComponent::SCRIPT_EXECUTE
static

"ScriptExecute" unique class property ID inside the class

Definition at line 61 of file ScriptComponent.h.


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