Could not register base emitter for particle...
by Thomas Bang · in Torque Game Engine Advanced · 03/09/2011 (4:51 am) · 9 replies
Could not register base emitter for particle of class: ChimneyFireEmitterNode
What does it mean?
What does it mean?
#2
03/09/2011 (7:12 am)
The emitter is valid.
#3
03/09/2011 (7:14 am)
Hmm, in that case maybe the system is declared out of order... Have you arranged your datablocks such that particles are fist, then emitters, then nodes?
#4
And the ParticleEmitterNode is created with:
03/09/2011 (7:18 am)
This is the loading order: datablock ParticleData(ChimneyFire1)
{
textureName = "scriptsAndAssets/data/shapes/particles/smoke";
dragCoefficient = 0.0;
gravityCoefficient = -0.3; // rises slowly
inheritedVelFactor = 0.00;
lifetimeMS = 500;
lifetimeVarianceMS = 250;
useInvAlpha = false;
spinRandomMin = -30.0;
spinRandomMax = 30.0;
colors[0] = "0.8 0.6 0.0 0.1";
colors[1] = "0.8 0.6 0.0 0.1";
colors[2] = "0.0 0.0 0.0 0.0";
sizes[0] = 1.0;
sizes[1] = 1.0;
sizes[2] = 5.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleData(ChimneyFire2)
{
textureName = "scriptsAndAssets/data/shapes/particles/smoke";
dragCoefficient = 0.0;
gravityCoefficient = -0.5; // rises slowly
inheritedVelFactor = 0.00;
lifetimeMS = 800;
lifetimeVarianceMS = 150;
useInvAlpha = false;
spinRandomMin = -30.0;
spinRandomMax = 30.0;
colors[0] = "0.6 0.6 0.0 0.1";
colors[1] = "0.6 0.6 0.0 0.1";
colors[2] = "0.0 0.0 0.0 0.0";
sizes[0] = 0.5;
sizes[1] = 0.5;
sizes[2] = 0.5;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData(ChimneyFireEmitter)
{
ejectionPeriodMS = 15;
periodVarianceMS = 5;
ejectionVelocity = 0.25;
velocityVariance = 0.10;
thetaMin = 0.0;
thetaMax = 90.0;
particles = "ChimneyFire1" TAB "ChimneyFire2";
};
datablock ParticleEmitterNodeData(ChimneyFireEmitterNode)
{
timeMultiple = 1;
};And the ParticleEmitterNode is created with:
new ParticleEmitterNode(Fire2)
{
canSaveDynamicFields = "1";
Enabled = "1";
position = "359.73 310.39 218.502";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "ChimneyFireEmitterNode";
emitter = "ChimneyFireEmitter";
velocity = "1";
};
#5
03/09/2011 (7:29 am)
Break your ChimneyFireEmitter into two emitters. If I recall correctly the multiple particles in a TGEa emitter does not work like it did in TGE. I think that's why I had to rework particle fx in the TGEa port of Kaboom - it's just been so long.... ;)particles = "ChimneyFire1" TAB "ChimneyFire2"; // almost certain this doesn't work in TGEa
#6
03/09/2011 (7:33 am)
I have the code from chimneyfire.cs in TGEA. And there it works. But not in my project.
#7
Sorry can't be more help. I've seen the message before, it's just been so long ago that I don't recall the circumstances or what I did to correct it.
03/09/2011 (7:45 am)
Hmm, last guess then: have you double checked the assets to make sure they are in the defined location?Sorry can't be more help. I've seen the message before, it's just been so long ago that I don't recall the circumstances or what I did to correct it.
#8
03/09/2011 (8:24 am)
It is possible that your emitter is registered too early,before the game connection.Try to schedule your code with 10 seconds.
#9
Test: I made particles = "ChimneyFire1" TAB "ChimneyFire2"; as a comment. Now the error message is gone. So i guess it has something to do with ParticleData or with the rendering of the particles itself.
03/09/2011 (9:37 am)
It has nothing to do with GameConnection because other objects with her datablocks are working fine (ItemData as example). Test: I made particles = "ChimneyFire1" TAB "ChimneyFire2"; as a comment. Now the error message is gone. So i guess it has something to do with ParticleData or with the rendering of the particles itself.
Associate Michael Hall
Distracted...
Just blindly guessing that particular message means it (the engine) can't create (find) the emitter the node is looking to use.