public override void Awake() { ShowDoppleganger = false; DopplegangerProps.Clear(); DopplegangerMode = WIMode.Stacked; MouseoverHover = false; DisplayMode = SquareDisplayMode.Disabled; base.Awake(); }
public void DrawGenericWorldItemSelector(GenericWorldItem item, ref bool open, bool useStrictness) { if (WorldItems.Get == null) { Manager.WakeUp <WorldItems>("Frontiers_WorldItems"); WorldItems.Get.Initialize(); } bool drawEditor = true; UnityEditor.EditorStyles.miniButton.stretchWidth = true; UnityEditor.EditorStyles.textField.stretchWidth = true; UnityEditor.EditorStyles.popup.stretchWidth = true; GUILayout.BeginVertical(); if (string.IsNullOrEmpty(item.PackName)) { drawEditor = false; UnityEngine.GUI.color = Color.green; if (GUILayout.Button("(Add)", UnityEditor.EditorStyles.miniButton)) { item.PackName = "AncientArtifacts"; item.PrefabName = string.Empty; drawEditor = true; } UnityEngine.GUI.color = Color.yellow; if (GUILayout.Button("(Done)", UnityEditor.EditorStyles.miniButton)) { drawEditor = false; selectedItemIndex = -1; selectedRowIndex = -1; } } else { UnityEngine.GUI.color = Color.red; if (GUILayout.Button("(Clear)", UnityEditor.EditorStyles.miniButton)) { item.Clear(); drawEditor = false; } } if (drawEditor) { UnityEngine.GUI.color = Color.yellow; int packIndex = 0; List <string> packNames = new List <string>(); WorldItemPack pack = null; WorldItem worlditem = null; for (int i = 0; i < WorldItems.Get.WorldItemPacks.Count; i++) { string packName = WorldItems.Get.WorldItemPacks[i].Name; packNames.Add(packName); if (item.PackName == packName) { packIndex = i; pack = WorldItems.Get.WorldItemPacks[i]; } } if (pack == null) { pack = WorldItems.Get.WorldItemPacks[0]; } packIndex = UnityEditor.EditorGUILayout.Popup("Pack:", packIndex, packNames.ToArray(), UnityEditor.EditorStyles.popup); List <string> prefabNames = new List <string>(); int prefabIndex = 0; for (int i = 0; i < pack.Prefabs.Count; i++) { prefabNames.Add(pack.Prefabs[i].name); if (item.PrefabName == pack.Prefabs[i].name) { prefabIndex = i; worlditem = pack.Prefabs[i].GetComponent <WorldItem>(); } } prefabIndex = UnityEditor.EditorGUILayout.Popup("Prefab:", prefabIndex, prefabNames.ToArray(), UnityEditor.EditorStyles.popup); item.PackName = packNames[packIndex]; item.PrefabName = prefabNames[prefabIndex]; if (worlditem != null) { UnityEngine.GUI.color = Color.yellow; item.DisplayName = worlditem.DisplayName; if (!useStrictness || Flags.Check((uint)Blueprint.Strictness, (uint)BlueprintStrictness.StackName, Flags.CheckType.MatchAny)) { GUILayout.BeginHorizontal(); GUILayout.Label("StackName: "); if (string.IsNullOrEmpty(item.StackName) || !worlditem.StackName.Contains(item.StackName)) { item.StackName = worlditem.StackName; } item.StackName = GUILayout.TextField(item.StackName); GUILayout.EndHorizontal(); } if (!useStrictness || Flags.Check((uint)Blueprint.Strictness, (uint)BlueprintStrictness.StateName, Flags.CheckType.MatchAny)) { GUILayout.BeginHorizontal(); int stateIndex = 0; List <string> stateNames = new List <string>(); stateNames.Add("Default"); WIStates states = worlditem.GetComponent <WIStates>(); if (states != null) { for (int i = 0; i < states.States.Count; i++) { stateNames.Add(states.States[i].Name); if (item.State == states.States[i].Name) { stateIndex = i + 1; //since the first one is Default } } } stateIndex = UnityEditor.EditorGUILayout.Popup("State:", stateIndex, stateNames.ToArray(), UnityEditor.EditorStyles.popup); GUILayout.EndHorizontal(); item.State = stateNames[stateIndex]; } } UnityEngine.GUI.color = Color.white; if (!useStrictness || Flags.Check((uint)Blueprint.Strictness, (uint)BlueprintStrictness.Subcategory, Flags.CheckType.MatchAny)) { GUILayout.BeginHorizontal(); GUILayout.Label("Subcategory: "); item.Subcategory = GUILayout.TextField(item.Subcategory); GUILayout.EndHorizontal(); } UnityEngine.GUI.color = Color.yellow; if (GUILayout.Button("(Done)", UnityEditor.EditorStyles.miniButton)) { open = false; } } GUILayout.EndVertical(); UnityEditor.EditorStyles.miniButton.stretchWidth = true; UnityEditor.EditorStyles.textField.stretchWidth = true; UnityEditor.EditorStyles.popup.stretchWidth = true; }