7 [
Attribute(
"1",
UIWidgets.CheckBox,
"If true, the particle effect will play at the object's bounding box instead of at its origin")]
10 [
Attribute(
"1",
desc:
"If true, the particle effect will play rotated in the hit direction.")]
17 positionAndRotation.Clear();
29 if (!super.CompareAttributes(other))
32 if (otherParticle.m_Particle != m_Particle)
35 if (otherParticle.m_bAtCenter != m_bAtCenter)
38 if (otherParticle.m_bDirectional != m_bDirectional)
46 super.SetVariables(api, source,
path,
index);
49 api.SetVariableValue(source,
path,
"m_Particle", m_Particle);
50 api.SetVariableValue(source,
path,
"m_bAtCenter", m_bAtCenter.ToString(
true));
51 api.SetVariableValue(source,
path,
"m_bDirectional", m_bDirectional.ToString(
true));
57 if (!AlreadyExists(api, source,
index))
59 api.CreateObjectArrayVariableMember(source,
path,
"m_aPhaseDestroySpawnObjects",
"SCR_ParticleSpawnable",
index);
80 vector center = (maxs - mins) * 0.5 + mins;
81 spawnMat[3] = center.Multiply4(spawnMat);
93 vector newRight, newUp, newForward;
95 newUp = -hitInfo.m_HitDirection;
96 newRight = newUp * spawnMat[2];
97 newForward = newUp * newRight;
99 spawnMat[0] = newRight;
101 spawnMat[2] = newForward;
104 return SCR_DestructionCommon.PlayParticleEffect_Child(m_Particle, hitInfo.m_DamageType, owner, spawnMat);
121 vector center = (maxs - mins) * 0.5 + mins;
122 spawnMat[3] = center.Multiply4(spawnMat);
134 vector newRight, newUp, newForward;
136 newUp = -hitInfo.m_HitDirection;
137 newRight = newUp * spawnMat[2];
138 newForward = newUp * newRight;
140 spawnMat[0] = newRight;
142 spawnMat[2] = newForward;
145 return SCR_DestructionCommon.PlayParticleEffect_Transform(m_Particle, hitInfo.m_DamageType, spawnMat);
void ParticleEffectEntity(IEntitySource src, IEntity parent)
AISpawnerGroupClass AIGroupClass Spawn()
Spawns a new group entity, sets its transformation and then calls OnSpawn.