Files
GDevelop/Extensions/ParticleSystem/JsExtension.cpp
T
2018-04-07 23:51:28 -03:00

138 lines
9.4 KiB
C++

/**
GDevelop - Particle System Extension
Copyright (c) 2010-2016 Florian Rival (Florian.Rival@gmail.com)
This project is released under the MIT License.
*/
#if defined(GD_IDE_ONLY)
#include "GDCore/Extensions/PlatformExtension.h"
#include "ParticleEmitterObject.h"
void DeclareParticleSystemExtension(gd::PlatformExtension & extension);
/**
* Constructor of an extension declares everything the extension contains: objects, actions, conditions and expressions.
*/
class ParticleSystemJsExtension : public gd::PlatformExtension
{
public:
/**
* Constructor of an extension declares everything the extension contains: objects, actions, conditions and expressions.
*/
ParticleSystemJsExtension()
{
DeclareParticleSystemExtension(*this);
GetObjectMetadata("ParticleSystem::ParticleEmitter")
.SetIncludeFile("Extensions/ParticleSystem/particleemitterobject.js")
.AddIncludeFile("Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js")
.AddIncludeFile("Extensions/ParticleSystem/pixi-particles-pixi-renderer.min.js")
.AddIncludeFile("Extensions/ParticleSystem/particleemitterobject-cocos-renderer.js");
auto & actions = GetAllActionsForObject("ParticleSystem::ParticleEmitter");
auto & conditions = GetAllConditionsForObject("ParticleSystem::ParticleEmitter");
auto & expressions = GetAllExpressionsForObject("ParticleSystem::ParticleEmitter");
auto & strExpressions = GetAllStrExpressionsForObject("ParticleSystem::ParticleEmitter");
actions["ParticleSystem::EmitterForceMin"].SetFunctionName("setEmitterForceMin").SetGetter("getEmitterForceMin");
actions["ParticleSystem::EmitterForceMax"].SetFunctionName("setEmitterForceMax").SetGetter("getEmitterForceMax");
actions["ParticleSystem::EmitterAngle"].SetFunctionName("setAngle").SetGetter("getAngle");
conditions["ParticleSystem::EmitterAngle"].SetFunctionName("getAngle");
actions["ParticleSystem::EmitterAngleA"].SetFunctionName("setEmitterAngleA").SetGetter("getEmitterAngleA");
conditions["ParticleSystem::EmitterAngleA"].SetFunctionName("getEmitterAngleA");
actions["ParticleSystem::EmitterAngleB"].SetFunctionName("setEmitterAngleB").SetGetter("getEmitterAngleB");
conditions["ParticleSystem::EmitterAngleB"].SetFunctionName("getEmitterAngleB");
actions["ParticleSystem::ConeSprayAngle"].SetFunctionName("setConeSprayAngle").SetGetter("getConeSprayAngle");
conditions["ParticleSystem::ConeSprayAngle"].SetFunctionName("getConeSprayAngle");
actions["ParticleSystem::ZoneRadius"].SetFunctionName("setZoneRadius").SetGetter("getZoneRadius");
conditions["ParticleSystem::ZoneRadius"].SetFunctionName("getZoneRadius");
actions["ParticleSystem::ParticleLifeTimeMin"].SetFunctionName("setParticleLifeTimeMin").SetGetter("getParticleLifeTimeMin");
conditions["ParticleSystem::ParticleLifeTimeMin"].SetFunctionName("getParticleLifeTimeMin");
actions["ParticleSystem::ParticleLifeTimeMax"].SetFunctionName("setParticleLifeTimeMax").SetGetter("getParticleLifeTimeMax");
conditions["ParticleSystem::ParticleLifeTimeMax"].SetFunctionName("getParticleLifeTimeMax");
actions["ParticleSystem::ParticleGravityX"].SetFunctionName("setParticleGravityX").SetGetter("getParticleGravityX");
conditions["ParticleSystem::ParticleGravityX"].SetFunctionName("getParticleGravityX");
actions["ParticleSystem::ParticleGravityY"].SetFunctionName("setParticleGravityY").SetGetter("getParticleGravityY");
conditions["ParticleSystem::ParticleGravityY"].SetFunctionName("getParticleGravityY");
actions["ParticleSystem::ParticleGravityAngle"].SetFunctionName("setParticleGravityAngle").SetGetter("getParticleGravityAngle");
conditions["ParticleSystem::ParticleGravityAngle"].SetFunctionName("getParticleGravityAngle");
actions["ParticleSystem::ParticleGravityLength"].SetFunctionName("setParticleGravityLength").SetGetter("getParticleGravityLength");
conditions["ParticleSystem::ParticleGravityLength"].SetFunctionName("getParticleGravityLength");
actions["ParticleSystem::ParticleColor1"].SetFunctionName("setParticleColor1");
actions["ParticleSystem::ParticleColor2"].SetFunctionName("setParticleColor2");
actions["ParticleSystem::ParticleRed1"].SetFunctionName("setParticleRed1").SetGetter("getParticleRed1");
conditions["ParticleSystem::ParticleRed1"].SetFunctionName("getParticleRed1");
actions["ParticleSystem::ParticleRed2"].SetFunctionName("setParticleRed2").SetGetter("getParticleRed2");
conditions["ParticleSystem::ParticleRed2"].SetFunctionName("getParticleRed2");
actions["ParticleSystem::ParticleBlue1"].SetFunctionName("setParticleBlue1").SetGetter("getParticleBlue1");
conditions["ParticleSystem::ParticleBlue1"].SetFunctionName("getParticleBlue1");
actions["ParticleSystem::ParticleBlue2"].SetFunctionName("setParticleBlue2").SetGetter("getParticleBlue2");
conditions["ParticleSystem::ParticleBlue2"].SetFunctionName("getParticleBlue2");
actions["ParticleSystem::ParticleGreen1"].SetFunctionName("setParticleGreen1").SetGetter("getParticleGreen1");
conditions["ParticleSystem::ParticleGreen1"].SetFunctionName("getParticleGreen1");
actions["ParticleSystem::ParticleGreen2"].SetFunctionName("setParticleGreen2").SetGetter("getParticleGreen2");
conditions["ParticleSystem::ParticleGreen2"].SetFunctionName("getParticleGreen2");
actions["ParticleSystem::ParticleSize1"].SetFunctionName("setParticleSize1").SetGetter("getParticleSize1");
conditions["ParticleSystem::ParticleSize1"].SetFunctionName("getParticleSize1");
actions["ParticleSystem::ParticleSize2"].SetFunctionName("setParticleSize2").SetGetter("getParticleSize2");
conditions["ParticleSystem::ParticleSize2"].SetFunctionName("getParticleSize2");
actions["ParticleSystem::ParticleAlpha1"].SetFunctionName("setParticleAlpha1").SetGetter("getParticleAlpha1");
conditions["ParticleSystem::ParticleAlpha1"].SetFunctionName("getParticleAlpha1");
actions["ParticleSystem::ParticleAlpha2"].SetFunctionName("setParticleAlpha2").SetGetter("getParticleAlpha2");
conditions["ParticleSystem::ParticleAlpha2"].SetFunctionName("getParticleAlpha2");
conditions["ParticleSystem::NoMoreParticles"].SetFunctionName("noMoreParticles");
actions["ParticleSystem::RecreateParticleSystem"].SetFunctionName("recreateParticleSystem");
actions["ParticleSystem::Tank"].SetFunctionName("setTank").SetGetter("getTank");
conditions["ParticleSystem::Tank"].SetFunctionName("getTank");
actions["ParticleSystem::Flow"].SetFunctionName("setFlow").SetGetter("getFlow");
conditions["ParticleSystem::Flow"].SetFunctionName("getFlow");
actions["ParticleSystem::Texture"].AddCodeOnlyParameter("currentScene", "").SetFunctionName("setTexture").SetGetter("getTexture");
conditions["ParticleSystem::Texture"].SetFunctionName("getTexture");
strExpressions["Texture"].SetFunctionName("getTexture");
expressions["NbParticles"].SetFunctionName("getNbParticles");
expressions["RendererParam1"].SetFunctionName("getRendererParam1");
expressions["RendererParam2"].SetFunctionName("getRendererParam2");
expressions["Tank"].SetFunctionName("getTank");
expressions["Flow"].SetFunctionName("getFlow");
expressions["EmitterForceMin"].SetFunctionName("getEmitterForceMin");
expressions["EmitterForceMax"].SetFunctionName("getEmitterForceMax");
expressions["EmitterAngle"].SetFunctionName("getAngle");
expressions["EmitterAngleA"].SetFunctionName("getEmitterAngleA");
expressions["EmitterAngleB"].SetFunctionName("getEmitterAngleB");
expressions["ZoneRadius"].SetFunctionName("getZoneRadius");
expressions["ParticleGravityX"].SetFunctionName("getParticleGravityX");
expressions["ParticleGravityY"].SetFunctionName("getParticleGravityY");
expressions["ParticleGravityAngle"].SetFunctionName("getParticleGravityAngle");
expressions["ParticleGravityLength"].SetFunctionName("getParticleGravityLength");
expressions["ParticleLifeTimeMin"].SetFunctionName("getParticleLifeTimeMin");
expressions["ParticleLifeTimeMax"].SetFunctionName("getParticleLifeTimeMax");
expressions["ParticleRed1"].SetFunctionName("getParticleRed1");
expressions["ParticleRed2"].SetFunctionName("getParticleRed2");
expressions["ParticleBlue1"].SetFunctionName("getParticleBlue1");
expressions["ParticleBlue2"].SetFunctionName("getParticleBlue2");
expressions["ParticleGreen1"].SetFunctionName("getParticleGreen1");
expressions["ParticleGreen2"].SetFunctionName("getParticleGreen2");
expressions["ParticleAlpha1"].SetFunctionName("getParticleAlpha1");
expressions["ParticleAlpha2"].SetFunctionName("getParticleAlpha2");
expressions["ParticleSize1"].SetFunctionName("getParticleSize1");
expressions["ParticleSize2"].SetFunctionName("getParticleSize2");
StripUnimplementedInstructionsAndExpressions();
GD_COMPLETE_EXTENSION_COMPILATION_INFORMATION();
};
};
/**
* Used by GDevelop to create the extension class
* -- Do not need to be modified. --
*/
extern "C" gd::PlatformExtension * GD_EXTENSION_API CreateGDJSExtension() {
return new ParticleSystemJsExtension;
}
#endif