Files
Webcam/include/modules/script_squirrel/legacy/emitter_binding.cpp

113 lines
2.9 KiB
C++

/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#include "binding_helpers.h"
#include "scene3d/scene.h"
#include "scene3d/memitter.h"
#include "core/engine.h"
#include "core/graphic_resource_factory.h"
using namespace GS::Core;
using namespace GS::S3D;
using namespace GS::Script;
SQInteger EmitterSetParticleModel(HSQUIRRELVM vm)
{
__SQ_GETSTART(2)
__SQ_GETSAFEPTR(e, MEmitter, typetag_Emitter)
__SQ_GETSAFEPTR(model, ParticleModel, typetag_ParticleModel)
__SQ_GETEND
if (e->render_data.IsNull())
return sq_throwerror(vm, "Emitter has no render data, you need to call ItemRenderSetup() first.");
e->render_data->particle_model = model;
__SQ_RETURN
}
SQInteger EmitterSetBirthRateScale(HSQUIRRELVM vm)
{
__SQ_GETSTART(2)
__SQ_GETSAFEPTR(e, MEmitter, typetag_Emitter)
__SQ_GETFLOAT(scale)
__SQ_GETEND
e->birth_rate_scale = scale;
__SQ_RETURN
}
SQInteger EmitterSetBirthSizeScale(HSQUIRRELVM vm)
{
__SQ_GETSTART(2)
__SQ_GETSAFEPTR(e, MEmitter, typetag_Emitter)
__SQ_GETFLOAT(scale)
__SQ_GETEND
e->birth_size_scale = scale;
__SQ_RETURN
}
SQInteger EmitterSetBirthSpeedScale(HSQUIRRELVM vm)
{
__SQ_GETSTART(2)
__SQ_GETSAFEPTR(e, MEmitter, typetag_Emitter)
__SQ_GETFLOAT(scale)
__SQ_GETEND
e->birth_speed_scale = scale;
__SQ_RETURN
}
SQInteger EmitterSetBirthOpacityScale(HSQUIRRELVM vm)
{
__SQ_GETSTART(2)
__SQ_GETSAFEPTR(e, MEmitter, typetag_Emitter)
__SQ_GETFLOAT(scale)
__SQ_GETEND
e->birth_opacity_scale = scale;
__SQ_RETURN
}
//--------------------------------------------------------
void RegisterEmitterBinding(HSQUIRRELVM vm)
//--------------------------------------------------------
{
/*#
Topic: Emitter
Type: Emitter
Type: ParticleModel
#*/
/*#
Section: EmitterSettings
Desc: Emitter functions
#*/
/*#
Func: EmitterSetParticleModel
Proto: void:Emitter,ParticleModel
Desc: Set the emitter particle model.
#*/
sq_register(vm, EmitterSetParticleModel, "EmitterSetParticleModel", _SC(".xx"));
/*#
Func: EmitterSetBirthRateScale
Proto: void:Emitter,float scale
Desc: Set the emitter birth rate scale.
#*/
sq_register(vm, EmitterSetBirthRateScale, "EmitterSetBirthRateScale", _SC(".xn"));
/*#
Func: EmitterSetBirthSizeScale
Proto: void:Emitter,float scale
Desc: Set the emitter birth size scale.
#*/
sq_register(vm, EmitterSetBirthSizeScale, "EmitterSetBirthSizeScale", _SC(".xn"));
/*#
Func: EmitterSetBirthSpeedScale
Proto: void:Emitter,float scale
Desc: Set the emitter birth speed scale.
#*/
sq_register(vm, EmitterSetBirthSpeedScale, "EmitterSetBirthSpeedScale", _SC(".xn"));
/*#
Func: EmitterSetBirthOpacityScale
Proto: void:Emitter,float scale
Desc: Set the emitter birth opacity scale.
#*/
sq_register(vm, EmitterSetBirthOpacityScale, "EmitterSetBirthOpacityScale", _SC(".xn"));
}