using UnityEngine;

#if UNITY_EDITOR
using System;
using System.Collections.Generic;
using UnityEditor.Experimental.SceneManagement;
#endif

public sealed class SpriteRendererSpriteSwapper : MonoBehaviour {

#if UNITY_EDITOR
    [SerializableAttribute]
    public sealed class SwapInfo {
        [SerializeField]
        private Sprite swapTargetSprite = default;
        public Sprite SwapTargetSprite {
            get{ return swapTargetSprite; }
        }
        [SerializeField]
        private Sprite swapSprite = default;
        public Sprite SwapSprite {
            get{ return swapSprite; }
        }
    }

    [SerializeField]
    private SwapInfo[] swapInfoArray = new SwapInfo[1];

    [ContextMenu("SwapSprite")]
    private void SwapSprite(){
        foreach(var info in swapInfoArray){
            if(info.SwapTargetSprite == null) return ;
            if(info.SwapSprite == null) return ;

            transform.FindAllChildrensComponent<SpriteRenderer>(sr => {
                if(sr.sprite == info.SwapTargetSprite){
                    sr.sprite = info.SwapSprite;
                }
            });
        }
    }
#endif
}
