// IS SCALE INPUT // // public static bool isScaleInput(eCurveInputs ci) { bool returnValue = false; if (ci == eCurveInputs.EmitterScale || ci == eCurveInputs.Scale) { returnValue = true; } return(returnValue); }
// IS ROTATION INPUT // // public static bool isRotationInput(eCurveInputs ci) { bool returnValue = false; if (ci == eCurveInputs.EmitterRotation || ci == eCurveInputs.Rotation) { returnValue = true; } return(returnValue); }
// IS VELOCITY INPUT // // public static bool isVelocityInput(eCurveInputs ci) { bool returnValue = false; if (ci == eCurveInputs.EmitterVelocity || ci == eCurveInputs.EmitterAcceleration || ci == eCurveInputs.Velocity || ci == eCurveInputs.Acceleration) { returnValue = true; } return(returnValue); }
// IS PARTICLE RELATED INPUT // // public static bool isParticleRelatedInput(eCurveInputs ci) { bool returnValue = true; if (ci == eCurveInputs.EmitterTime || ci == eCurveInputs.LoopTime || ci == eCurveInputs.SpawnRate || ci == eCurveInputs.EmitterPosition || ci == eCurveInputs.EmitterRotation || ci == eCurveInputs.EmitterForward || ci == eCurveInputs.EmitterScale || ci == eCurveInputs.EmitterAcceleration || ci == eCurveInputs.EmitterVelocity || ci == eCurveInputs.FrameRate || ci == eCurveInputs.ParticleCount) { returnValue = false; } return(returnValue); }
// IS FLOAT INPUT // // public static bool isFloatInput(eCurveInputs ci) { bool returnValue = false; if (ci == eCurveInputs.EmitterTime || ci == eCurveInputs.LoopTime || ci == eCurveInputs.ParticleTime || ci == eCurveInputs.DeathCondition || ci == eCurveInputs.DyingDuration || ci == eCurveInputs.DyingTime || ci == eCurveInputs.CollisionTime || ci == eCurveInputs.SpawnRate || ci == eCurveInputs.CustomScalar || ci == eCurveInputs.FrameRate || ci == eCurveInputs.ParticleCount || ci == eCurveInputs.NonZeroParticleCountTime) { returnValue = true; } return(returnValue); }
// GET SYSTEM PROPERTY // // public static Vector4 GetSystemProperty(AmpsBlueprint theBlueprint, int particleIndex, eCurveInputs property) { float f; // Helper variable. Vector4 returnValue = Vector4.zero; switch (property) { case AmpsHelpers.eCurveInputs.EmitterTime: returnValue = ConvertFloatVector4(theBlueprint.ownerEmitter.emitterTime); break; case AmpsHelpers.eCurveInputs.LoopTime: returnValue = ConvertFloatVector4(theBlueprint.ownerEmitter.emitterLoopTime); break; case AmpsHelpers.eCurveInputs.ParticleTime: if (particleIndex >= 0) { returnValue = ConvertFloatVector4(theBlueprint.ownerEmitter.particleTimes[particleIndex]); } break; case AmpsHelpers.eCurveInputs.DeathCondition: if (particleIndex >= 0) { returnValue = ConvertFloatVector4(theBlueprint.deathConditionStack.values[particleIndex]); } break; case AmpsHelpers.eCurveInputs.DyingDuration: if (particleIndex >= 0) { returnValue = ConvertFloatVector4(theBlueprint.deathDurationStack.values[particleIndex]); } break; case AmpsHelpers.eCurveInputs.DyingTime: if (particleIndex >= 0) { if (theBlueprint.deathDurationStack.values[particleIndex] > 0 && theBlueprint.ownerEmitter.particleDyingTimes[particleIndex] > 0) { f = theBlueprint.ownerEmitter.particleDyingTimes[particleIndex] - theBlueprint.ownerEmitter.particleTimes[particleIndex]; f = 1 - (f / theBlueprint.deathDurationStack.values[particleIndex]); returnValue = ConvertFloatVector4(f); } else { returnValue = Vector4.zero; } } break; case AmpsHelpers.eCurveInputs.CollisionTime: if (particleIndex >= 0) { returnValue = ConvertFloatVector4(theBlueprint.ownerEmitter.collisionTimes[particleIndex]); } break; case AmpsHelpers.eCurveInputs.SpawnRate: returnValue = ConvertFloatVector4(theBlueprint.spawnRateStack.value); break; case AmpsHelpers.eCurveInputs.CustomScalar: if (particleIndex >= 0) { returnValue = ConvertFloatVector4(theBlueprint.customScalarStack.values[particleIndex]); } break; case AmpsHelpers.eCurveInputs.FrameRate: f = 1 / Mathf.Clamp(theBlueprint.ownerEmitter.smoothDeltaTime, 0.016666f, 0.06666f); // Limiting range to 15..60 fps. returnValue = ConvertFloatVector4((f - 15f) / 45); // Normalizing. break; case AmpsHelpers.eCurveInputs.EmitterPosition: returnValue = theBlueprint.ownerEmitter.emitterPosition; break; case AmpsHelpers.eCurveInputs.EmitterRotation: returnValue = theBlueprint.ownerEmitter.emitterRotation; break; case AmpsHelpers.eCurveInputs.EmitterForward: returnValue = theBlueprint.ownerEmitter.emitterDirection; break; case AmpsHelpers.eCurveInputs.EmitterScale: returnValue = theBlueprint.ownerEmitter.emitterScale; break; case AmpsHelpers.eCurveInputs.EmitterAcceleration: returnValue = theBlueprint.ownerEmitter.emitterAcceleration; break; case AmpsHelpers.eCurveInputs.EmitterVelocity: returnValue = theBlueprint.ownerEmitter.emitterVelocity; break; case AmpsHelpers.eCurveInputs.CustomVector: if (particleIndex >= 0) { returnValue = theBlueprint.customVectorStack.values[particleIndex]; } break; case AmpsHelpers.eCurveInputs.Acceleration: if (particleIndex >= 0) { returnValue = theBlueprint.accelerationStack.values[particleIndex]; } break; case AmpsHelpers.eCurveInputs.Velocity: if (particleIndex >= 0) { returnValue = theBlueprint.velocityStack.values[particleIndex]; } break; case AmpsHelpers.eCurveInputs.Position: if (particleIndex >= 0) { returnValue = theBlueprint.positionStack.values[particleIndex]; } break; case AmpsHelpers.eCurveInputs.RotationRate: if (particleIndex >= 0) { returnValue = theBlueprint.rotationRateStack.values[particleIndex]; } break; case AmpsHelpers.eCurveInputs.Rotation: if (particleIndex >= 0) { returnValue = theBlueprint.rotationStack.values[particleIndex]; } break; case AmpsHelpers.eCurveInputs.Forward: if (particleIndex >= 0) { returnValue = Quaternion.Euler(AmpsHelpers.ConvertVector4Vector3(theBlueprint.rotationStack.values[particleIndex])) * Vector3.forward; } break; case AmpsHelpers.eCurveInputs.Scale: if (particleIndex >= 0) { returnValue = theBlueprint.scaleStack.values[particleIndex]; } break; case AmpsHelpers.eCurveInputs.Color: if (particleIndex >= 0) { returnValue = theBlueprint.colorStack.values[particleIndex]; } break; case AmpsHelpers.eCurveInputs.ParticleCount: if (theBlueprint.ownerEmitter.particleMarkers != null) { returnValue = ConvertFloatVector4(theBlueprint.ownerEmitter.particleMarkers.ActiveCount); } break; case AmpsHelpers.eCurveInputs.EmitterPositionLocal: returnValue = theBlueprint.ownerEmitter.transform.localPosition; break; case AmpsHelpers.eCurveInputs.EmitterRotationLocal: returnValue = theBlueprint.ownerEmitter.transform.localRotation.eulerAngles; break; case AmpsHelpers.eCurveInputs.NonZeroParticleCountTime: returnValue = ConvertFloatVector4(theBlueprint.ownerEmitter.nonZeroParticleCountTime); break; } return(returnValue); }