Scripting : start adding features to control light objects
This commit is contained in:
parent
d2e6a10026
commit
953c29089e
@ -213,6 +213,25 @@ namespace Scripting
|
|||||||
/** @} */
|
/** @} */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------- Light Object methods -----------
|
||||||
|
|
||||||
|
namespace Light
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @addtogroup Scripting_Light Light (script binding)
|
||||||
|
* Type returned by trackObject.getLight()
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
void setEnergy(float energy, /** \cond DOXYGEN_IGNORE */void *memory /** \endcond */)
|
||||||
|
{
|
||||||
|
((TrackObjectPresentationLight*)memory)->setEnergy(energy);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ----------- Sound Object methods -----------
|
// ----------- Sound Object methods -----------
|
||||||
|
|
||||||
namespace SoundEmitter
|
namespace SoundEmitter
|
||||||
@ -289,6 +308,7 @@ namespace Scripting
|
|||||||
r = engine->RegisterObjectType("ParticleEmitter", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
r = engine->RegisterObjectType("ParticleEmitter", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
||||||
r = engine->RegisterObjectType("SoundEmitter", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
r = engine->RegisterObjectType("SoundEmitter", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
||||||
r = engine->RegisterObjectType("Animator", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
r = engine->RegisterObjectType("Animator", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
||||||
|
r = engine->RegisterObjectType("Light", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
||||||
|
|
||||||
//r = engine->RegisterGlobalFunction("void disableTrackObject(const string &in)", asFUNCTION(disableTrackObject), asCALL_CDECL); assert(r >= 0);
|
//r = engine->RegisterGlobalFunction("void disableTrackObject(const string &in)", asFUNCTION(disableTrackObject), asCALL_CDECL); assert(r >= 0);
|
||||||
//r = engine->RegisterGlobalFunction("void enableTrackObject(const string &in)", asFUNCTION(enableTrackObject), asCALL_CDECL); assert(r >= 0);
|
//r = engine->RegisterGlobalFunction("void enableTrackObject(const string &in)", asFUNCTION(enableTrackObject), asCALL_CDECL); assert(r >= 0);
|
||||||
@ -305,6 +325,7 @@ namespace Scripting
|
|||||||
// TrackObject
|
// TrackObject
|
||||||
r = engine->RegisterObjectMethod("TrackObject", "void setEnabled(bool status)", asMETHOD(::TrackObject, setEnabled), asCALL_THISCALL); assert(r >= 0);
|
r = engine->RegisterObjectMethod("TrackObject", "void setEnabled(bool status)", asMETHOD(::TrackObject, setEnabled), asCALL_THISCALL); assert(r >= 0);
|
||||||
r = engine->RegisterObjectMethod("TrackObject", "SoundEmitter@ getSoundEmitter()", asMETHOD(::TrackObject, getSoundEmitter), asCALL_THISCALL); assert(r >= 0);
|
r = engine->RegisterObjectMethod("TrackObject", "SoundEmitter@ getSoundEmitter()", asMETHOD(::TrackObject, getSoundEmitter), asCALL_THISCALL); assert(r >= 0);
|
||||||
|
r = engine->RegisterObjectMethod("TrackObject", "Light@ getLight()", asMETHOD(::TrackObject, getLight), asCALL_THISCALL); assert(r >= 0);
|
||||||
r = engine->RegisterObjectMethod("TrackObject", "PhysicalObject@ getPhysics()", asMETHOD(::TrackObject, getPhysics), asCALL_THISCALL); assert(r >= 0);
|
r = engine->RegisterObjectMethod("TrackObject", "PhysicalObject@ getPhysics()", asMETHOD(::TrackObject, getPhysics), asCALL_THISCALL); assert(r >= 0);
|
||||||
r = engine->RegisterObjectMethod("TrackObject", "Mesh@ getMesh()", asMETHOD(::TrackObject, getMesh), asCALL_THISCALL); assert(r >= 0);
|
r = engine->RegisterObjectMethod("TrackObject", "Mesh@ getMesh()", asMETHOD(::TrackObject, getMesh), asCALL_THISCALL); assert(r >= 0);
|
||||||
r = engine->RegisterObjectMethod("TrackObject", "ParticleEmitter@ getParticleEmitter()", asMETHOD(::TrackObject, getParticleEmitter), asCALL_THISCALL); assert(r >= 0);
|
r = engine->RegisterObjectMethod("TrackObject", "ParticleEmitter@ getParticleEmitter()", asMETHOD(::TrackObject, getParticleEmitter), asCALL_THISCALL); assert(r >= 0);
|
||||||
@ -335,6 +356,8 @@ namespace Scripting
|
|||||||
r = engine->RegisterObjectMethod("SoundEmitter", "void playOnce()", asFUNCTION(SoundEmitter::playOnce), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
r = engine->RegisterObjectMethod("SoundEmitter", "void playOnce()", asFUNCTION(SoundEmitter::playOnce), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||||
r = engine->RegisterObjectMethod("SoundEmitter", "void playLoop()", asFUNCTION(SoundEmitter::playLoop), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
r = engine->RegisterObjectMethod("SoundEmitter", "void playLoop()", asFUNCTION(SoundEmitter::playLoop), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||||
|
|
||||||
|
// Light
|
||||||
|
r = engine->RegisterObjectMethod("Light", "void setEnergy(float)", asFUNCTION(Light::setEnergy), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||||
|
|
||||||
// Curve based Animation
|
// Curve based Animation
|
||||||
//fails due to insufficient visibility to scripts TODO : Decide whether to fix visibility or introduce wrappers
|
//fails due to insufficient visibility to scripts TODO : Decide whether to fix visibility or introduce wrappers
|
||||||
|
@ -197,6 +197,10 @@ public:
|
|||||||
* On the script side, the returned object is of type : @ref Scripting_SoundEmitter
|
* On the script side, the returned object is of type : @ref Scripting_SoundEmitter
|
||||||
*/
|
*/
|
||||||
TrackObjectPresentationSound* getSoundEmitter(){ return getPresentation<TrackObjectPresentationSound>(); }
|
TrackObjectPresentationSound* getSoundEmitter(){ return getPresentation<TrackObjectPresentationSound>(); }
|
||||||
|
/** Should only be used on sound emitter track objects.
|
||||||
|
* On the script side, the returned object is of type : @ref Scripting_Light
|
||||||
|
*/
|
||||||
|
TrackObjectPresentationLight* getLight() { return getPresentation<TrackObjectPresentationLight>(); }
|
||||||
// For angelscript. Needs to be named something different than getAnimator since it's overloaded.
|
// For angelscript. Needs to be named something different than getAnimator since it's overloaded.
|
||||||
/** Should only be used on TrackObjects that use curve-based animation.
|
/** Should only be used on TrackObjects that use curve-based animation.
|
||||||
* On the script side, the returned object is of type : @ref Scripting_Animator
|
* On the script side, the returned object is of type : @ref Scripting_Animator
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "graphics/camera.hpp"
|
#include "graphics/camera.hpp"
|
||||||
#include "graphics/central_settings.hpp"
|
#include "graphics/central_settings.hpp"
|
||||||
#include "graphics/irr_driver.hpp"
|
#include "graphics/irr_driver.hpp"
|
||||||
|
#include "graphics/light.hpp"
|
||||||
#include "graphics/material_manager.hpp"
|
#include "graphics/material_manager.hpp"
|
||||||
#include "graphics/mesh_tools.hpp"
|
#include "graphics/mesh_tools.hpp"
|
||||||
#include "graphics/particle_emitter.hpp"
|
#include "graphics/particle_emitter.hpp"
|
||||||
@ -972,7 +973,16 @@ TrackObjectPresentationLight::TrackObjectPresentationLight(
|
|||||||
TrackObjectPresentationLight::~TrackObjectPresentationLight()
|
TrackObjectPresentationLight::~TrackObjectPresentationLight()
|
||||||
{
|
{
|
||||||
} // ~TrackObjectPresentationLight
|
} // ~TrackObjectPresentationLight
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
void TrackObjectPresentationLight::setEnergy(float energy)
|
||||||
|
{
|
||||||
|
m_energy = energy;
|
||||||
|
LightNode* lnode = dynamic_cast<LightNode*>(m_node);
|
||||||
|
if (lnode != NULL)
|
||||||
|
{
|
||||||
|
lnode->setEnergy(energy);
|
||||||
|
}
|
||||||
|
}
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
TrackObjectPresentationActionTrigger::TrackObjectPresentationActionTrigger(
|
TrackObjectPresentationActionTrigger::TrackObjectPresentationActionTrigger(
|
||||||
const XMLNode& xml_node)
|
const XMLNode& xml_node)
|
||||||
|
@ -359,6 +359,7 @@ public:
|
|||||||
TrackObjectPresentationLight(const XMLNode& xml_node,
|
TrackObjectPresentationLight(const XMLNode& xml_node,
|
||||||
scene::ISceneNode* parent);
|
scene::ISceneNode* parent);
|
||||||
virtual ~TrackObjectPresentationLight();
|
virtual ~TrackObjectPresentationLight();
|
||||||
|
void setEnergy(float energy);
|
||||||
}; // TrackObjectPresentationLight
|
}; // TrackObjectPresentationLight
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
Loading…
Reference in New Issue
Block a user