Exemplo n.º 1
0
 public void DetectAll()
 {
     if (_DK_UMACrowd == null)
     {
         UMACrowdObj = GameObject.Find("DKUMACrowd");
         if (UMACrowdObj == null)
         {
             UMACrowdObj      = (GameObject)Instantiate(Resources.Load("DKUMACrowd"), Vector3.zero, Quaternion.identity);
             UMACrowdObj.name = "DKUMACrowd";
                             #if UNITY_EDITOR
             PrefabUtility.ReconnectToLastPrefab(UMACrowdObj);
                             #endif
         }
         _DK_UMACrowd = UMACrowdObj.GetComponent <DK_UMACrowd>();
     }
     if (!DKumaGenerator)
     {
         DKumaGenerator = GameObject.Find("DKUMAGenerator").GetComponent("DKUMAGenerator") as DKUMAGenerator;
     }
     if (!slotLibrary)
     {
         slotLibrary = _DK_UMACrowd.slotLibrary;
     }
     if (!raceLibrary)
     {
         raceLibrary = _DK_UMACrowd.raceLibrary;
     }
     if (!overlayLibrary)
     {
         overlayLibrary = _DK_UMACrowd.overlayLibrary;
     }
 }
Exemplo n.º 2
0
    void OnGUI()
    {
        this.minSize = new Vector2(340, 500);

        #region fonts variables
        var bold     = new GUIStyle("label");
        var boldFold = new GUIStyle("foldout");
        bold.fontStyle     = FontStyle.Bold;
        bold.fontSize      = 14;
        boldFold.fontStyle = FontStyle.Bold;
        //	var someMatched = false;

        var Slim = new GUIStyle("label");
        Slim.fontStyle = FontStyle.Normal;
        Slim.fontSize  = 10;

        var style = new GUIStyle("label");
        style.wordWrap = true;

        #endregion fonts variables

        #region Menu
        using (new Horizontal()) {
            GUILayout.Label("Convert UMA Avatar", "toolbarbutton", GUILayout.ExpandWidth(true));
            GUI.color = Red;
            if (Helper)
            {
                GUI.color = Green;
            }
            else
            {
                GUI.color = Color.yellow;
            }
            if (GUILayout.Button("?", "toolbarbutton", GUILayout.ExpandWidth(false)))
            {
                if (Helper)
                {
                    Helper = false;
                }
                else
                {
                    Helper = true;
                }
            }
        }
        if ((Selection.activeGameObject &&
             (Selection.activeGameObject.GetComponentInParent <UMA.UMAData> () != null ||
              Selection.activeGameObject.GetComponentInParent <UMADynamicAvatar> () != null ||
              Selection.activeGameObject.GetComponent <UMADynamicAvatar> () != null) &&
             Selection.activeGameObject.GetComponentInParent <DKUMAData> () == null))
        {
            GUI.color = Color.white;
            if (tmpStreamedUMA == "")
            {
                GUILayout.TextField("First the converter gets the definition of the UMA avatar.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
            }

            if (Selection.activeGameObject.GetComponentInParent <UMADynamicAvatar> () != null)
            {
                UMADynamicAvatar umaDynamicAvatar = Selection.activeGameObject.GetComponentInParent <UMADynamicAvatar> ();
                GUI.color = Green;
                if (tmpStreamedUMA == "" && GUILayout.Button("1- Find Avatar Streamed"))
                {
                    StreamedUMA = "";
                    raceName    = "";
                    var asset = ScriptableObject.CreateInstance <UMATextRecipe>();
                    try{
                        asset.Save(umaDynamicAvatar.umaData.umaRecipe, umaDynamicAvatar.context);
                        tmpStreamedUMA = asset.recipeString;
                        ScriptableObject.Destroy(asset);
                    }
                    catch (NullReferenceException) {
                        Debug.LogError("The UMA Avatar has no Values. You have to be in playmode to convert a UMA Avatar to DK UMA.");
                    }
                }
                GUI.color = Color.white;
                if (tmpStreamedUMA != "" && StreamedUMA == "" && DKRace == "" && Helper)
                {
                    GUILayout.TextField("select the basic settings for DK UMA to know the gender and the race of the avatar.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                }


                if (tmpStreamedUMA != "" && StreamedUMA == "" && raceName == "")
                {
                    DKRaceLibrary _RaceLibrary = GameObject.Find("DKUMACrowd").GetComponent <DK_UMACrowd>().raceLibrary;
                    GUI.color = Color.yellow;
                    GUILayout.TextField("2- Select a gender and a race for the new DK Avatar :", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                    using (new Horizontal()) {
                        if (Gender == "Male")
                        {
                            GUI.color = Green;
                        }
                        else
                        {
                            GUI.color = Color.gray;
                        }
                        if (GUILayout.Button("Male", GUILayout.ExpandWidth(true)))
                        {
                            Gender = "Male";
                        }
                        if (Gender == "Female")
                        {
                            GUI.color = Green;
                        }
                        else
                        {
                            GUI.color = Color.gray;
                        }
                        if (GUILayout.Button("Female", GUILayout.ExpandWidth(true)))
                        {
                            Gender = "Female";
                        }
                    }

                    if (DKRace != "" && Gender != "")
                    {
                        using (new HorizontalCentered()) GUILayout.TextField(DKRace, 50, bold, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                    }
                    using (new Horizontal()) {
                        GUI.color = Green;
                        if (DKRace != "" && Gender != "" && GUILayout.Button("3- Accept", GUILayout.ExpandWidth(true)))
                        {
                            for (int i2 = 0; i2 < _RaceLibrary.raceElementList.Length; i2++)
                            {
                                if (_RaceLibrary.raceElementList[i2].Race == DKRace &&
                                    _RaceLibrary.raceElementList[i2].Gender == Gender)
                                {
                                    raceName = _RaceLibrary.raceElementList[i2].raceName;
                                }
                            }
                        }
                    }

                    GUI.color = Color.yellow;
                    if (Gender != "")
                    {
                        GUILayout.TextField("Remember : the selected race applies its DNA to the converted avatar.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                    }

                    GUILayout.Space(5);
                    if (_RaceLibrary && Gender != "")
                    {
                        using (new ScrollView(ref scroll))
                        {
                            List <string> _RacesList = new List <string>();
                            for (int i = 0; i < _RaceLibrary.raceElementList.Length; i++)
                            {
                                try{
                                    if (_RacesList.Contains(_RaceLibrary.raceElementList[i].Race) == false &&
                                        _RaceLibrary.raceElementList[i].Active)
                                    {
                                        _RacesList.Add(_RaceLibrary.raceElementList[i].Race);
                                    }
                                }catch (NullReferenceException) {}
                            }
                            for (int i = 0; i < _RacesList.Count; i++)
                            {
                                using (new Horizontal()) {
                                    if (DKRace == _RacesList[i])
                                    {
                                        GUI.color = Color.yellow;
                                    }
                                    else
                                    {
                                        GUI.color = Color.white;
                                    }
                                    if (GUILayout.Button(_RacesList[i], "toolbarbutton", GUILayout.ExpandWidth(true)))
                                    {
                                        DKRace = _RacesList[i];
                                    }
                                }
                            }
                        }
                    }
                }

                if (tmpStreamedUMA != "" && StreamedUMA == "" && raceName != "")
                {
                    if (tmpStreamedUMA != "" && StreamedUMA == "" && Helper)
                    {
                        GUI.color = Color.white;
                    }
                    GUILayout.TextField("Now the converter is ready to modify the definition of the avatar. In this first version of the converter, it reads the UMA streamed of the avatar, then it changes the necessary fields and the new definition is created for DK UMA. " +
                                        "In the next version, the process will get the avatar information then generate the new avatar using the DK UMA tools.", 350, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));


                    using (new Horizontal()) {
                        GUILayout.Label("Race :", GUILayout.ExpandWidth(false));
                        GUILayout.TextField(raceName, 50, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                    }
                    GUI.color = Green;
                    if (GUILayout.Button("4- Convert Avatar"))
                    {
                        ConvertStreamedUMA();
                    }
                }



                if (tmpStreamedUMA != "" && StreamedUMA != "" && raceName != "")
                {
                    GUI.color = Color.white;
                    if (Helper)
                    {
                        GUILayout.TextField("You can save the new definition to a text file.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                    }

                    using (new Horizontal()) {
                        GUI.color = Green;
                        if (GUILayout.Button("5a- Save to a text file"))
                        {
                            var path = EditorUtility.SaveFilePanel("Save serialized Avatar", "Assets", Selection.activeGameObject.name + ".txt", "txt");
                            System.IO.File.WriteAllText(path, StreamedUMA);
                        }
                    }

                    GUI.color = Color.white;
                    if (NewAvatarGo == null && Helper)
                    {
                        GUILayout.TextField("Now the converted DK avatar can be generated. The DNA convertion may have some issues, you can correct the avatar proportions in the prepare panel of the Editor.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                    }

                    using (new Horizontal()) {
                        GUI.color = Green;
                        if (NewAvatarGo == null && GUILayout.Button("5b- Generate the new Avatar"))
                        {
                            // instantiate the prefab
                            GameObject NewAvatar = Instantiate(Resources.Load("NewDKAvatar", typeof(GameObject))) as GameObject;
                            NewAvatar.name = "NewDKAvatar";

                            // add the definition
                            DKUMAData _DKUMAData = NewAvatar.GetComponentInChildren <DKUMAData>();
                            _DKUMAData.streamedUMA = StreamedUMA;

                            // Launch the generation process
                            ApplyDNA(_DKUMAData, StreamedUMA, NewAvatar);
                            //	_DKUMAData.enabled = true;
                        }
                    }
                    GUI.color = Color.white;
                    if (NewAvatarGo != null && Helper)
                    {
                        GUILayout.TextField("Create a prefab to be able to use your new avatar in the Editor mode and to get it back in the Game mode.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                        GUILayout.TextField("The new prefab is stored in the Assets/DK Editors/DK_UMA_Editor/Prefabs/Models/ folder.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                        GUI.color = Green;
                        GUILayout.TextField("You can manipulate the prefabs of the avatars using the DK Browser.", 256, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                    }


                    using (new Horizontal()) {
                        GUI.color = Green;
                        if (NewAvatarGo != null && GUILayout.Button("5c- Create a prefab"))
                        {
                            CreatePrefab();
                        }
                    }
                }

                using (new Horizontal()) {
                    if (ShowUMA == true)
                    {
                        GUI.color = Color.yellow;
                    }
                    else
                    {
                        GUI.color = Color.gray;
                    }
                    if (tmpStreamedUMA != "" && GUILayout.Button("Show UMA Streamed", "toolbarbutton", GUILayout.ExpandWidth(true)))
                    {
                        if (ShowUMA == true)
                        {
                            ShowUMA = false;
                        }
                        else
                        {
                            ShowUMA = true;
                        }
                    }
                }
                if (ShowUMA == true)
                {
                    using (new ScrollView(ref scroll1))
                        GUILayout.TextField(tmpStreamedUMA, 6000, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                }

                using (new Horizontal()) {
                    if (ShowDKUMA == true)
                    {
                        GUI.color = Color.yellow;
                    }
                    else
                    {
                        GUI.color = Color.gray;
                    }
                    if (StreamedUMA != "" && GUILayout.Button("Show DK Streamed", "toolbarbutton", GUILayout.ExpandWidth(true)))
                    {
                        if (ShowDKUMA == true)
                        {
                            ShowDKUMA = false;
                        }
                        else
                        {
                            ShowDKUMA = true;
                        }
                    }
                }
                if (ShowDKUMA == true)
                {
                    using (new ScrollView(ref scroll2))
                        GUILayout.TextField(StreamedUMA, 6000, style, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true));
                }
            }
        }
        #endregion Menu
    }
Exemplo n.º 3
0
    public void Awaking()
    {
        //	Debug.Log ("Awaking");
        firstBake = true;
        DetectAll();

        if (this.transform.parent && this.transform.parent.GetComponentInChildren <DK_Model>() == true)
        {
            //	Debug.Log ( this.transform.parent.name);
            //	DKSlotLibraryObj = this.transform.parent.GetComponent<DK_Model>().DKSlotLibraryObj;
            if (!slotLibrary)
            {
                GameObject slotLibraryObj = GameObject.Find(DKSlotLibraryObj);
                if (slotLibraryObj)
                {
                    slotLibrary = slotLibraryObj.GetComponent("DKSlotLibrary") as DKSlotLibrary;
                }
                else
                {
                    Debug.LogError("The model '" + this.transform.parent.name + "' has not been generated : The Uma model does not found the needed Slot Library. You need to get the Library used during its creation: '" + DKSlotLibraryObj
                                   + "'. Try to contact the creator of the model's Asset to get: '" + DKSlotLibraryObj + "'"
                                   + " Or create a new Library named : '" + DKSlotLibraryObj + "', be sure to append all the recquired Elements needed by the model.");
                    if (this.transform.parent.parent.childCount == 1)
                    {
                        if (Application.isPlaying)
                        {
                            Destroy(this.transform.parent.parent.gameObject);
                        }
                        else
                        {
                            DestroyImmediate(this.transform.parent.parent.gameObject);
                        }
                    }
                    else
                    {
                        if (Application.isPlaying)
                        {
                            Destroy(this.transform.parent.gameObject);
                        }
                        else
                        {
                            DestroyImmediate(this.transform.parent.gameObject);
                        }
                    }
                }
            }
            else
            //	RaceLibraryObj = this.transform.parent.GetComponent<DK_Model>().RaceLibraryObj;
            if (!raceLibrary)
            {
                GameObject raceLibraryObj = GameObject.Find(RaceLibraryObj);
                if (raceLibraryObj)
                {
                    raceLibrary = raceLibraryObj.GetComponent("DKRaceLibrary") as DKRaceLibrary;
                }
                else
                {
                    Debug.LogError("The model '" + this.transform.parent.name + "' has not been generated : The Uma model does not found the needed Race Library. You need to get the Library used during its creation: '" + DKSlotLibraryObj
                                   + "'. Try to contact the creator of the model's Asset to get: '" + RaceLibraryObj + "'"
                                   + " Or create a new Library named : '" + RaceLibraryObj + "', be sure to append all the recquired Elements needed by the model.");
                    if (this.transform.parent.parent.childCount == 1)
                    {
                        if (Application.isPlaying)
                        {
                            Destroy(this.transform.parent.parent.gameObject);
                        }
                        else
                        {
                            DestroyImmediate(this.transform.parent.parent.gameObject);
                        }
                    }
                    else
                    {
                        if (Application.isPlaying)
                        {
                            Destroy(this.transform.parent.gameObject);
                        }
                        else
                        {
                            DestroyImmediate(this.transform.parent.gameObject);
                        }
                    }
                }
            }
            else
            //	OverlayLibraryObj = this.transform.parent.GetComponent<DK_Model>().OverlayLibraryObj;
            if (!overlayLibrary)
            {
                GameObject overlayLibraryObj = GameObject.Find(OverlayLibraryObj);
                if (overlayLibraryObj)
                {
                    overlayLibrary = overlayLibraryObj.GetComponent("DKOverlayLibrary") as DKOverlayLibrary;
                }
                else
                {
                    Debug.LogError("The model '" + this.transform.parent.name + "' has not been generated : The Uma model does not found the needed Overlay Library. You need to get the Library used during its creation: '" + DKSlotLibraryObj
                                   + "'. Try to contact the creator of the model's Asset to get: '" + OverlayLibraryObj + "'"
                                   + " Or create a new Library named : '" + OverlayLibraryObj + "', be sure to append all the recquired Elements needed by the model.");
                    if (this.transform.parent.parent.childCount == 1)
                    {
                        if (Application.isPlaying)
                        {
                            Destroy(this.transform.parent.parent.gameObject);
                        }
                        else
                        {
                            DestroyImmediate(this.transform.parent.parent.gameObject);
                        }
                    }
                    else
                    {
                        if (Application.isPlaying)
                        {
                            Destroy(this.transform.parent.gameObject);
                        }
                        else
                        {
                            DestroyImmediate(this.transform.parent.gameObject);
                        }
                    }
                }
            }
        }
        for (int i = 0; i < DKumaGenerator.umaDirtyList.Count; i++)
        {
            if (DKumaGenerator.umaDirtyList[i] == null)
            {
                DKumaGenerator.umaDirtyList.Remove(DKumaGenerator.umaDirtyList[i]);

                Debug.Log("Removing Missing Dirty");
            }
        }

        boneList.Clear();
        if (!Loading && boneList.Count == 0)
        {
            UpdateBoneData();
        }
        else
        if (boneList.Count == 0)
        {
            UpdateBoneData();
        }
        UseNaturalBehaviour = _DK_UMACrowd.UseNaturalBehaviour;
        //	if ( UseNaturalBehaviour && this.gameObject.GetComponent<NaturalLauncher>() == null ) AddNaturalLauncher ();
    }
Exemplo n.º 4
0
    public static void PrepareLists(DK_RPG_UMA_Generator _DK_RPG_UMA_Generator,
                                    DK_RPG_UMA _DK_RPG_UMA,
                                    GameObject _Selection,
                                    string SelectedType,
                                    DKSlotData SelectedSlot,
                                    DKOverlayData SelectedOverlay)
    {
        _DK_RPG_UMA_Generator = GameObject.Find("DK_UMA").GetComponent <DK_RPG_UMA_Generator>();
        if (_DK_RPG_UMA == null)
        {
            if (_DK_RPG_UMA == null)
            {
                _DK_RPG_UMA = _Selection.GetComponent <DK_RPG_UMA>();
            }
            if (_DK_RPG_UMA == null)
            {
                _DK_RPG_UMA = _Selection.GetComponentInChildren <DK_RPG_UMA>();
            }
            if (_DK_RPG_UMA == null)
            {
                _DK_RPG_UMA = _Selection.GetComponentInParent <DK_RPG_UMA>();
            }
        }

        if (_DK_RPG_UMA && _DK_RPG_UMA.RaceData == null)
        {
            DKRaceLibrary races = GameObject.Find("DKUMACrowd").GetComponent <DK_UMACrowd>().raceLibrary;
            foreach (DKRaceData race in races.raceElementList)
            {
                if (race.Race == _DK_RPG_UMA.Race)
                {
                    _DK_RPG_UMA.RaceData = race;
                }
            }
        }

        // Debug.Log (_DK_RPG_UMA.RaceData.raceName);
        if (_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Head.SlotList.Count == 0)
        {
            _DK_RPG_UMA_Generator.PopulateAllLists();
            Debug.Log("test list count :" + _DK_RPG_UMA.RaceData._Male._AvatarData._Face._Head.SlotList.Count);
        }

        #region Face Lists
        if (SelectedType == "Head")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Head.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Head.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "Eyes")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Eyes.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Eyes.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "Eyelash")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._EyeLash.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._EyeLash.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "Eyelids")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._EyeLids.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._EyeLids.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "Ears")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Ears.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Ears.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "Nose")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Nose.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Nose.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "Mouth")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Mouth.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Mouth.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "Eyebrow")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._FaceHair.EyeBrowsList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._FaceHair.EyeBrowsList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "Beard" && SelectedSlot)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._FaceHair._BeardSlotOnly.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._FaceHair._BeardSlotOnly.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "Beard" && SelectedSlot == null && SelectedOverlay)
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._FaceHair._BeardOverlayOnly.BeardList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._FaceHair._BeardOverlayOnly.BeardList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "Beard" && SelectedSlot == null && SelectedOverlay == null)
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._FaceHair._BeardOverlayOnly.BeardList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._FaceHair._BeardOverlayOnly.BeardList);
            }
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._FaceHair._BeardSlotOnly.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._FaceHair._BeardSlotOnly.SlotList);
            }
        }
        else if (SelectedType == "HeadTatoo")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Head.TattooList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Head.TattooList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "HeadMakeup")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Head.MakeupList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Head.MakeupList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "Hair" /*&& SelectedSlot*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._SlotOnly.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._OverlayOnly.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._SlotOnly.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._OverlayOnly.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._OverlayOnly.OverlayList);
                if (_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._SlotOnly.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._OverlayOnly.OverlayList);
                if (_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._SlotOnly.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }

        /*	else if ( SelectedType == "Hair" && SelectedSlot == null && SelectedOverlay ){
         *              SlotList.Clear();
         *              if ( _DK_RPG_UMA.Gender == "Male" ) {
         *                      SlotList.AddRange (_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._SlotOnly.SlotList);
         *                      if (_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._OverlayOnly.OverlayList.Count == 0 ) OverlayList.Clear();
         *              }
         *              else if ( _DK_RPG_UMA.Gender == "Female" ) {
         *                      SlotList.AddRange (_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._SlotOnly.SlotList);
         *                      if (_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._OverlayOnly.OverlayList.Count == 0 ) OverlayList.Clear();
         *              }
         *              OverlayList.Clear();
         *              if ( _DK_RPG_UMA.Gender == "Male" ) {
         *                      OverlayList.AddRange (_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._OverlayOnly.OverlayList);
         *                      if (_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._SlotOnly.SlotList.Count == 0 ) SlotList.Clear();
         *              }
         *              else if ( _DK_RPG_UMA.Gender == "Female" ) {
         *                      OverlayList.AddRange (_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._OverlayOnly.OverlayList);
         *                      if (_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._SlotOnly.SlotList.Count == 0 ) SlotList.Clear();
         *              }
         *      }*/
        /*	else if ( SelectedType == "Hair" && SelectedSlot == null && SelectedOverlay == null ){
         *      OverlayList.Clear();
         *      if ( _DK_RPG_UMA.Gender == "Male" ) OverlayList.AddRange (_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._OverlayOnly.OverlayList);
         *      else if ( _DK_RPG_UMA.Gender == "Female" ) OverlayList.AddRange (_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._OverlayOnly.OverlayList);
         *      SlotList.Clear();
         *      if ( _DK_RPG_UMA.Gender == "Male" ) SlotList.AddRange (_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._SlotOnly.SlotList);
         *      else if ( _DK_RPG_UMA.Gender == "Female" ) SlotList.AddRange (_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._SlotOnly.SlotList);
         *      Debug.Log (OverlayList.Count);
         * }*/

        else if (SelectedType == "HairModule")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Hair._SlotOnly._HairModule.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Hair._SlotOnly._HairModule.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "Lips")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Head.LipsList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Head.LipsList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "Innermouth")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Mouth._InnerMouth.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Mouth._InnerMouth.SlotList);
            }
            OverlayList.Clear();
        }
        #endregion Face Lists

        #region Body Lists
        else if (SelectedType == "Torso")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Torso.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Torso.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "TorsoTatoo")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Torso.TattooList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Torso.TattooList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "TorsoMakeup")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Torso.MakeupList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Torso.MakeupList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "Hands")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Hands.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Hands.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "HandsTatoo")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Hands.TattooList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Hands.TattooList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "HandsMakeup")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Hands.MakeupList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Hands.MakeupList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "Legs")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Legs.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Legs.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "LegsTatoo")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Legs.TattooList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Legs.TattooList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "LegsMakeup")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Legs.MakeupList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Legs.MakeupList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "Feet")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Feet.SlotList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Feet.SlotList);
            }
            OverlayList.Clear();
        }
        else if (SelectedType == "FeetTatoo")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Feet.TattooList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Feet.TattooList);
            }
            SlotList.Clear();
        }
        else if (SelectedType == "FeetMakeup")
        {
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Feet.MakeupList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Feet.MakeupList);
            }
            SlotList.Clear();
        }
        #endregion Body Lists

        #region Wear Lists
        else if (SelectedType == "HeadWear" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Head.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Head.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Head.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Head.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Head.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Head.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Head.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Head.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "ShoulderWear" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Shoulder.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Shoulder.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Shoulder.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Shoulder.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Shoulder.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Shoulder.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Shoulder.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Shoulder.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "ArmbandWear" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Armband.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Armband.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Armband.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Armband.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Armband.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Armband.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Armband.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Armband.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "WristWear" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Wrist.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Wrist.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Wrist.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Wrist.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Wrist.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Wrist.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Wrist.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Wrist.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "CloakWear" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Cloak.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Cloak.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Cloak.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Cloak.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
        }

        else if (SelectedType == "TorsoWear" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Torso.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Torso.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Torso.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Torso.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Torso.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Torso.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Torso.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Torso.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "HandsWear")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Hands.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Hands.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Hands.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Hands.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Hands.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Hands.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Hands.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Hands.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "LegsWear")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Legs.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Legs.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Legs.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Legs.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Legs.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Legs.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Legs.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Legs.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "FeetWear")
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Feet.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Feet.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Feet.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Feet.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Feet.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Feet.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Feet.OverlayOnlyList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Feet.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "Underwear")
        {
            SlotList.Clear();
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Underwear.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Underwear.OverlayList);
            }
        }
        else if (SelectedType == "HandledLeft" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._LeftHand.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._LeftHand.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._LeftHand.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._LeftHand.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._LeftHand.OverlayList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._LeftHand.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._LeftHand.OverlayList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._LeftHand.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "HandledRight" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._RightHand.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._RightHand.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._RightHand.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._RightHand.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._RightHand.OverlayList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._RightHand.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._RightHand.OverlayList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._RightHand.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "BeltWear" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Belt.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Belt.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Belt.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Belt.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Belt.OverlayList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Belt.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Belt.OverlayList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Belt.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "Cloak" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Cloak.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Cloak.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Cloak.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Cloak.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Cloak.OverlayList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Cloak.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Cloak.OverlayList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Cloak.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        else if (SelectedType == "Backpack" /*&& SelectedSlot == null && SelectedOverlay*/)
        {
            SlotList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Backpack.SlotList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Backpack.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                SlotList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Backpack.SlotList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Backpack.OverlayList.Count == 0)
                {
                    OverlayList.Clear();
                }
            }
            OverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._EquipmentData._Backpack.OverlayList);
                if (_DK_RPG_UMA.RaceData._Male._EquipmentData._Backpack.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                OverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._EquipmentData._Backpack.OverlayList);
                if (_DK_RPG_UMA.RaceData._Female._EquipmentData._Backpack.SlotList.Count == 0)
                {
                    SlotList.Clear();
                }
            }
        }
        #endregion Wear Lists
        PrepareOverlaysLists(_DK_RPG_UMA_Generator,
                             _DK_RPG_UMA,
                             _Selection,
                             SelectedType,
                             SelectedSlot,
                             SelectedOverlay);
    }
Exemplo n.º 5
0
    public static void PrepareOverlaysLists(DK_RPG_UMA_Generator _DK_RPG_UMA_Generator,
                                            DK_RPG_UMA _DK_RPG_UMA,
                                            GameObject _Selection,
                                            string SelectedType,
                                            DKSlotData SelectedSlot,
                                            DKOverlayData SelectedOverlay)
    {
        _DK_RPG_UMA_Generator = GameObject.Find("DK_UMA").GetComponent <DK_RPG_UMA_Generator>();
        if (_DK_RPG_UMA == null)
        {
            if (_DK_RPG_UMA == null)
            {
                _DK_RPG_UMA = _Selection.GetComponent <DK_RPG_UMA>();
            }
            if (_DK_RPG_UMA == null)
            {
                _DK_RPG_UMA = _Selection.GetComponentInChildren <DK_RPG_UMA>();
            }
            if (_DK_RPG_UMA == null)
            {
                _DK_RPG_UMA = _Selection.GetComponentInParent <DK_RPG_UMA>();
            }
        }

        if (_DK_RPG_UMA && _DK_RPG_UMA.RaceData == null)
        {
            DKRaceLibrary races = GameObject.Find("DKUMACrowd").GetComponent <DK_UMACrowd>().raceLibrary;
            foreach (DKRaceData race in races.raceElementList)
            {
                if (race.Race == _DK_RPG_UMA.Race)
                {
                    _DK_RPG_UMA.RaceData = race;
                }
            }
        }
        #region Face Lists
        LinkedOverlayList.Clear();
        if (SelectedType == "Head")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Head.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Head.OverlayList);
            }
        }
        else if (SelectedType == "Eyes")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Eyes.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Eyes.OverlayList);
            }
        }
        else if (SelectedType == "Eyelash")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._EyeLash.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._EyeLash.OverlayList);
            }
        }
        else if (SelectedType == "Eyelids")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._EyeLids.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._EyeLids.OverlayList);
            }
        }
        else if (SelectedType == "Ears")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Ears.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Ears.OverlayList);
            }
        }
        else if (SelectedType == "Nose")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Nose.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Nose.OverlayList);
            }
        }
        else if (SelectedType == "Mouth")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Mouth.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Mouth.OverlayList);
            }
        }
        else if (SelectedType == "Innermouth")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Face._Mouth._InnerMouth.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Face._Mouth._InnerMouth.OverlayList);
            }
        }
        #endregion Face Lists

        #region Body Lists
        else if (SelectedType == "Torso")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Torso.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Torso.OverlayList);
            }
        }
        else if (SelectedType == "Hands")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Hands.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Hands.OverlayList);
            }
        }
        else if (SelectedType == "Legs")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Legs.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Legs.OverlayList);
            }
        }
        else if (SelectedType == "Feet")
        {
            LinkedOverlayList.Clear();
            if (_DK_RPG_UMA.Gender == "Male")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Male._AvatarData._Body._Feet.OverlayList);
            }
            else if (_DK_RPG_UMA.Gender == "Female")
            {
                LinkedOverlayList.AddRange(_DK_RPG_UMA.RaceData._Female._AvatarData._Body._Feet.OverlayList);
            }
        }
        if (SelectedSlot)
        {
            LinkedOverlayList.AddRange(SelectedSlot.LinkedOverlayList);
        }
        #endregion Body Lists
    }