Example #1
0
    //Allows beings with base-game sprites to be overridden by attaching an AnimationOverrider if they don't have one
    public static void OverrideAnimator(Being being, string animName)
    {
        //If the anim name is found in the base game sprites, set the animator and disable any overrider by setting its controller name to empty
        if (S.I.itemMan.animations.ContainsKey(animName))
        {
            being.SetAnimatorController(S.I.itemMan.GetAnim(animName));
            if (being.animOverrider != null)
            {
                being.animOverrider.controllerName = "";
            }
            return;
        }

        //Otherwise, if the being already has an overrider, set that
        if (being.animOverrider != null)
        {
            being.animOverrider.controllerName = animName;
        }
        else     // Otherwise, add an overrider and set the animation
        {
            if (being.sprAnim == null)
            {
                Debug.Log("Adding sprite animator to " + being.beingObj.beingID);
                being.sprAnim         = being.gameObject.AddComponent <SpriteAnimator>();
                being.sprAnim.enabled = false;
            }
            Debug.Log("Adding animation overrider to " + being.beingObj.beingID);
            being.animOverrider = being.gameObject.AddComponent <AnimationOverrider>();
            being.animOverrider.Set(being.sprAnim, being.anim, animName, S.I.itemMan);
            being.anim.runtimeAnimatorController = string.IsNullOrEmpty(being.beingObj.animBase) ? S.I.batCtrl.baseCharacterAnim : S.I.batCtrl.baseMonsterAnim;
        }
    }