Ejemplo n.º 1
0
 public void ChangeAnimation(int subAnimation)
 {
     if (subAnimation > subAnimations.Length - 1)
     {
         return;
     }
     currentAnimation = subAnimations[subAnimation];
     currenttextureId = currentAnimation.indexBox[0];
     isAnimating      = true;
     if (animateOnDelay)
     {
         delayCounter = Time.timeSinceLevelLoad + animationDelay;
     }
 }
Ejemplo n.º 2
0
 public override void Ignite()
 {
     base.Ignite();
     currentAnimation = defaultAnimation;
     if (defaultAnimation.indexBox.Length > 0)
     {
         currenttextureId = defaultAnimation.indexBox[0];
     }
     currenttextureId = 0;
     if (defaultAnimation.mode == AnimationMode.loop)
     {
         isAnimating = true;
     }
     if (animateOnDelay)
     {
         delayCounter = (float)timeSinceIgnition + animationDelay;
         Debug.Log(delayCounter);
     }
 }
Ejemplo n.º 3
0
    protected override void Cycle()
    {
        base.Cycle();
        if (animateOnDelay)
        {
            if (timeSinceIgnition < delayCounter)
            {
                return;
            }
        }


        if (!switchedOn)
        {
            if (givenPriodicAction)
            {
                if (timeSinceIgnition >= igniteAfter)
                {
                    givenPriodicAction = false;
                    Ignite();
                }
                else
                {
                    return;
                }
            }
        }
        if (switchedOn)
        {
            if (igniteAfter >= 0)
            {
                if (timeSinceIgnition >= killPowerBy)
                {
                    KillPower();
                    return;
                }
            }
        }
        if (!switchedOn)
        {
            return;
        }
        if (isAnimating)
        {
            if (textures.Length == 0)
            {
                return;
            }

            if (currenttextureId < currentAnimation.indexBox[1] + 0.5f)
            {
                currenttextureId += 0.005f * animationSpeed * (GlobalVariables.deltaTime / 0.02f);
            }

            else if (currentAnimation.mode == AnimationMode.oneShot)
            {
                foreach (var item in currentAnimation.targetObjects)
                {
                    foreach (var message in currentAnimation.messageAfterAnimation)
                    {
                        item.SendMessage(message, SendMessageOptions.DontRequireReceiver);
                    }
                }

                if (defaultAnimation.mode == AnimationMode.loop)
                {
                    if (currentAnimation.switchToDefault)
                    {
                        currentAnimation = defaultAnimation;
                        currenttextureId = currentAnimation.indexBox[0];
                    }
                    else
                    {
                        isAnimating = false;
                    }
                }
                else
                {
                    isAnimating = false;
                }
            }
            else
            {
                currenttextureId = currentAnimation.indexBox[0];
                foreach (var item in currentAnimation.targetObjects)
                {
                    foreach (var message in currentAnimation.messageAfterAnimation)
                    {
                        item.SendMessage(message, SendMessageOptions.DontRequireReceiver);
                    }
                }
            }
            if ((int)currenttextureId <= textures.Length - 1)
            {
                transform.renderer.material.mainTexture = textures[(int)currenttextureId];
            }
        }
    }