public static void Init () {
			// Get existing open window or if none, make a new one:
			window = (FPSWeaponEditorWindow)EditorWindow.GetWindow(typeof (FPSWeaponEditorWindow));
			//~ window.minSize=new Vector2(375, 449);
			//~ window.maxSize=new Vector2(375, 800);
			
			EditorDBManager.Init();
			
			UpdateObjectHierarchyList();
		}
Example #2
0
        public static void Init(int prefabID = -1)
        {
            // Get existing open window or if none, make a new one:
            window         = (FPSWeaponEditorWindow)EditorWindow.GetWindow(typeof(FPSWeaponEditorWindow), false, "FPS Weapon Editor");
            window.minSize = new Vector2(400, 300);

            LoadDB();

            //if(prefabID>=0) window.selectID=TDSEditor.GetWeaponIndex(prefabID)-1;

            window.SetupCallback();
        }
Example #3
0
 public static void OpenAbilityEditor()
 {
     FPSWeaponEditorWindow.Init();
 }
Example #4
0
        public override void OnInspectorGUI()
        {
            GUI.changed = false;

            EditorGUILayout.Space();
            cont = new GUIContent("Use Tower Weapon:", "Check to have use the assigned weapon of the selected tower. When this is enabled, player cannot switch weapon.");
            instance.useTowerWeapon = EditorGUILayout.Toggle(cont, instance.useTowerWeapon);


            cont = new GUIContent("Aim Sensitivity:", "Mouse sensitivity when aiming in fps mode");
            instance.aimSensitivity = EditorGUILayout.FloatField(cont, instance.aimSensitivity);

            cont  = new GUIContent("Recoil Mode:", "The way shoot recoil works");
            contL = new GUIContent[recoilModeLabel.Length];
            for (int i = 0; i < contL.Length; i++)
            {
                contL[i] = new GUIContent(recoilModeLabel[i], recoilModeTooltip[i]);
            }
            instance.recoilMode = EditorGUILayout.Popup(cont, instance.recoilMode, contL);

            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("", GUILayout.MaxWidth(10));
            showPivotTransform = EditorGUILayout.Foldout(showPivotTransform, "Show Pivot Transforms & Camera");
            EditorGUILayout.EndHorizontal();
            if (showPivotTransform)
            {
                cont = new GUIContent("Weapon Pivot:", "The pivot transform of the weapon object.");
                instance.weaponPivot = (Transform)EditorGUILayout.ObjectField(cont, instance.weaponPivot, typeof(Transform), true);

                cont = new GUIContent("Camera Pivot:", "The pivot transform of the camera");
                instance.cameraPivot = (Transform)EditorGUILayout.ObjectField(cont, instance.cameraPivot, typeof(Transform), true);

                cont          = new GUIContent("Camera Transform:", "The transform which contains the fps camera component");
                instance.camT = (Transform)EditorGUILayout.ObjectField(cont, instance.camT, typeof(Transform), true);
            }


            EditorGUILayout.Space();


            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("", GUILayout.MaxWidth(10));
            showWeaponList = EditorGUILayout.Foldout(showWeaponList, "Show Weapon List");
            EditorGUILayout.EndHorizontal();
            if (showWeaponList)
            {
                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("EnableAll") && !Application.isPlaying)
                {
                    instance.unavailableIDList = new List <int>();
                }
                if (GUILayout.Button("DisableAll") && !Application.isPlaying)
                {
                    instance.unavailableIDList = new List <int>();
                    for (int i = 0; i < weaponList.Count; i++)
                    {
                        instance.unavailableIDList.Add(weaponList[i].prefabID);
                    }
                }
                EditorGUILayout.EndHorizontal();

                //scrollPosition = GUILayout.BeginScrollView (scrollPosition);

                for (int i = 0; i < weaponList.Count; i++)
                {
                    FPSWeapon weapon = weaponList[i];

                    GUILayout.BeginHorizontal();

                    GUILayout.Box("", GUILayout.Width(40), GUILayout.Height(40));
                    Rect rect = GUILayoutUtility.GetLastRect();
                    EditorUtilities.DrawSprite(rect, weapon.icon, false);

                    GUILayout.BeginVertical();
                    EditorGUILayout.Space();
                    GUILayout.Label(weapon.name, GUILayout.ExpandWidth(false));

                    bool flag = !instance.unavailableIDList.Contains(weapon.prefabID) ? true : false;
                    if (Application.isPlaying)
                    {
                        flag = !flag;                                                           //switch it around in runtime
                    }
                    flag = EditorGUILayout.Toggle(new GUIContent(" - enabled: ", "check to enable the weapon in this level"), flag);

                    if (!Application.isPlaying)
                    {
                        if (flag)
                        {
                            instance.unavailableIDList.Remove(weapon.prefabID);
                        }
                        else
                        {
                            if (!instance.unavailableIDList.Contains(weapon.prefabID))
                            {
                                instance.unavailableIDList.Add(weapon.prefabID);
                            }
                        }
                    }

                    GUILayout.EndVertical();

                    GUILayout.EndHorizontal();
                }
            }


            EditorGUILayout.Space();


            if (GUILayout.Button("Open FPSWeaponEditor"))
            {
                FPSWeaponEditorWindow.Init();
            }
            EditorGUILayout.Space();



            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("", GUILayout.MaxWidth(10));
            showDefaultFlag = EditorGUILayout.Foldout(showDefaultFlag, "Show default editor");
            EditorGUILayout.EndHorizontal();
            if (showDefaultFlag)
            {
                DrawDefaultInspector();
            }

            if (GUI.changed)
            {
                EditorUtility.SetDirty(instance);
            }
        }
Example #5
0
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            if (instance == null)
            {
                Awake();
            }

            GUI.changed = false;

            serializedObject.Update();

            EditorGUILayout.Space();


            PrefabType type = PrefabUtility.GetPrefabType(instance);

            if (type == PrefabType.Prefab || type == PrefabType.PrefabInstance)
            {
                bool existInDB = false;
                if (type == PrefabType.PrefabInstance)
                {
                    existInDB = TDEditor.ExistInDB((FPSWeapon)PrefabUtility.GetPrefabParent(instance));
                }
                else if (type == PrefabType.Prefab)
                {
                    existInDB = TDEditor.ExistInDB(instance);
                }

                if (!existInDB)
                {
                    EditorGUILayout.Space();

                    EditorGUILayout.HelpBox("This prefab hasn't been added to database hence it won't be accessible to the game.", MessageType.Warning);
                    GUI.color = new Color(1f, 0.7f, .2f, 1f);
                    if (GUILayout.Button("Add Prefab to Database"))
                    {
                        FPSWeaponEditorWindow.Init();
                        FPSWeaponEditorWindow.NewItem(instance);
                        FPSWeaponEditorWindow.Init();                                   //call again to select the instance in editor window
                    }
                    GUI.color = Color.white;
                }
                else
                {
                    EditorGUILayout.HelpBox("Editing FPS-weapon using Inspector is not recommended.\nPlease use the editor window instead.", MessageType.Info);
                    if (GUILayout.Button("FPS-Weapon Editor Window"))
                    {
                        FPSWeaponEditorWindow.Init(instance.prefabID);
                    }
                }

                EditorGUILayout.Space();
            }
            else
            {
                string text = "FPS-weapon object won't be available for game deployment, or accessible in TDTK editor until it's made a prefab and added to TDTK database.";
                text += "\n\nYou can still edit the FPS-weapon object using default inspector. However it's not recommended";
                EditorGUILayout.HelpBox(text, MessageType.Warning);

                EditorGUILayout.Space();
                if (GUILayout.Button("FPS-Weapon Editor Window"))
                {
                    FPSWeaponEditorWindow.Init(instance.prefabID);
                }
            }


            DefaultInspector();

            if (GUI.changed)
            {
                EditorUtility.SetDirty(instance);
            }
        }