Пример #1
0
        // IS SCALE INPUT //
        //
        public static bool isScaleInput(eCurveInputs ci)
        {
            bool returnValue = false;

            if (ci == eCurveInputs.EmitterScale ||
                ci == eCurveInputs.Scale)
            {
                returnValue = true;
            }

            return(returnValue);
        }
Пример #2
0
        // IS ROTATION INPUT //
        //
        public static bool isRotationInput(eCurveInputs ci)
        {
            bool returnValue = false;

            if (ci == eCurveInputs.EmitterRotation ||
                ci == eCurveInputs.Rotation)
            {
                returnValue = true;
            }

            return(returnValue);
        }
Пример #3
0
        // 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);
        }
Пример #4
0
        // 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);
        }
Пример #5
0
        // 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);
        }
Пример #6
0
        // 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);
        }