using UnityEngine;
using System.Collections.Generic;

namespace CommonAIClient.Unity.Utils
{
    public class AssetObjectExt : AssetObject
    {
        private Dictionary<string, GameObject> mDummyNodes = new Dictionary<string, GameObject>();


        void Awake()
        {
            TrailRenderer render = gameObject.GetComponentInChildren<TrailRenderer>(true);
            if (render != null)
            {
                trailRendererCheck = true;
            }
        }

        public GameObject GetDummyNode(string name)
        {
            GameObject tmp = null;
            if (mDummyNodes.TryGetValue(name, out tmp))
            {
                if (tmp != null && tmp.transform.IsChildOf(gameObject.transform))
                {
                    return tmp;
                }
                else
                {
                    mDummyNodes.Remove(name);
                }
            }

            Transform[] allTrans = transform.GetComponentsInChildren<Transform>();
            foreach (var trans in allTrans)
            {
                if (trans.name == name)
                {
                    tmp = trans.gameObject;
                    mDummyNodes.Add(name, tmp);
                    break;
                }
            }

            return tmp;
        }
    }
}