예제 #1
0
        ///Show the sub-tasks list
        public void ShowListGUI()
        {
            TaskEditor.ShowCreateTaskSelectionButton <ConditionTask>(ownerSystem, AddCondition);

            ValidateList();

            if (conditions.Count == 0)
            {
                EditorGUILayout.HelpBox("No Conditions", MessageType.None);
                return;
            }

            if (conditions.Count == 1)
            {
                return;
            }

            EditorUtils.ReorderableList(conditions, (i, picked) =>
            {
                var condition = conditions[i];
                GUI.color     = Color.white.WithAlpha(condition == currentViewCondition ? 0.75f : 0.25f);
                GUILayout.BeginHorizontal("box");

                GUI.color               = Color.white.WithAlpha(condition.isUserEnabled ? 0.8f : 0.25f);
                GUI.enabled             = !Application.isPlaying;
                condition.isUserEnabled = EditorGUILayout.Toggle(condition.isUserEnabled, GUILayout.Width(18));
                GUI.enabled             = true;

                GUILayout.Label(condition.summaryInfo, GUILayout.MinWidth(0), GUILayout.ExpandWidth(true));

                if (!Application.isPlaying && GUILayout.Button("X", GUILayout.MaxWidth(20)))
                {
                    UndoUtility.RecordObject(ownerSystem.contextObject, "List Remove Task");
                    conditions.RemoveAt(i);
                    if (conditions.Count == 1)
                    {
                        conditions[0].isUserEnabled = true;
                    }
                }

                GUILayout.EndHorizontal();

                var lastRect = GUILayoutUtility.GetLastRect();
                EditorGUIUtility.AddCursorRect(lastRect, MouseCursor.Link);
                if (Event.current.type == EventType.MouseDown && lastRect.Contains(Event.current.mousePosition))
                {
                    currentViewCondition = condition == currentViewCondition ? null : condition;
                    Event.current.Use();
                }

                GUI.color = Color.white;
            });

            checkMode = (ConditionsCheckMode)EditorGUILayout.EnumPopup(checkMode);
        }
예제 #2
0
        public void ShowListGUI()
        {
            EditorUtils.TaskSelectionButton <ConditionTask>(ownerSystem, (c) => { AddCondition(c); });

            ValidateList();

            if (conditions.Count == 0)
            {
                EditorGUILayout.HelpBox("No Conditions", MessageType.None);
                return;
            }

            if (conditions.Count == 1)
            {
                return;
            }

            EditorUtils.ReorderableList(conditions, (i, picked) =>
            {
                var condition = conditions[i];
                GUI.color     = new Color(1, 1, 1, 0.25f);
                GUILayout.BeginHorizontal("box");

                GUI.color = condition.isActive? new Color(1, 1, 1, 0.8f) : new Color(1, 1, 1, 0.25f);

                condition.isActive = EditorGUILayout.Toggle(condition.isActive, GUILayout.Width(18));

                GUI.backgroundColor = condition == currentViewCondition? Color.grey : Color.white;
                if (GUILayout.Button(EditorUtils.viewIcon, GUILayout.Width(25), GUILayout.Height(18)))
                {
                    currentViewCondition = condition == currentViewCondition? null : condition;
                }
                EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link);
                GUI.backgroundColor = Color.white;
                GUILayout.Label(condition.summaryInfo, GUILayout.MinWidth(0), GUILayout.ExpandWidth(true));

                if (!Application.isPlaying && GUILayout.Button("X", GUILayout.MaxWidth(20)))
                {
                    Undo.RecordObject(ownerSystem.contextObject, "List Remove Task");
                    conditions.RemoveAt(i);
                }

                EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link);
                GUILayout.EndHorizontal();
                GUI.color = Color.white;
            });

            checkMode = (ConditionsCheckMode)EditorGUILayout.EnumPopup(checkMode);
        }
예제 #3
0
        void DoLoadPreset()
        {
            var path = EditorUtility.OpenFilePanel("Load Preset", "Assets", "conditionList");

            if (!string.IsNullOrEmpty(path))
            {
                var json = System.IO.File.ReadAllText(path);
                var list = JSONSerializer.Deserialize <ConditionList>(json);
                this.conditions           = list.conditions;
                this.checkMode            = list.checkMode;
                this.currentViewCondition = null;
                foreach (var a in conditions)
                {
                    a.SetOwnerSystem(this.ownerSystem);
                }
            }
        }
예제 #4
0
 public void DoLoadPreset()
 {
                 #if !UNITY_WEBPLAYER
     var path = EditorUtility.OpenFilePanel("Load Preset", "Assets", "conditionList");
     if (!string.IsNullOrEmpty(path))
     {
         var json = System.IO.File.ReadAllText(path);
         var list = JSONSerializer.Deserialize <ConditionList>(json);
         this.conditions           = list.conditions;
         this.checkMode            = list.checkMode;
         this.currentViewCondition = null;
         foreach (var a in conditions)
         {
             a.SetOwnerSystem(this.ownerSystem);
         }
     }
     #else
     Debug.LogWarning("Preset loading is not possible with WebPlayer as active platform");
     #endif
 }
예제 #5
0
		public void DoLoadPreset(){
			#if !UNITY_WEBPLAYER
            var path = EditorUtility.OpenFilePanel("Load Preset", "Assets", "conditionList");
            if (!string.IsNullOrEmpty(path)){
                var json = System.IO.File.ReadAllText(path);
                var list = JSON.Deserialize<ConditionList>(json);
                this.conditions = list.conditions;
                this.checkMode = list.checkMode;
                this.currentViewCondition = null;
                foreach(var a in conditions){
                	a.SetOwnerSystem(this.ownerSystem);
                }
            }				
            #else
            Debug.LogWarning("Preset loading is not possible with WebPlayer as active platform");
            #endif
		}
예제 #6
0
		public void ShowListGUI(){

			EditorUtils.TaskSelectionButton<ConditionTask>(ownerSystem, (c)=>{ AddCondition(c) ;});

			ValidateList();

			if (conditions.Count == 0){
				EditorGUILayout.HelpBox("No Conditions", MessageType.None);
				return;
			}

			if (conditions.Count == 1)
				return;
			
			EditorUtils.ReorderableList(conditions, delegate(int i){

				var condition = conditions[i];
				GUI.color = new Color(1, 1, 1, 0.25f);
				GUILayout.BeginHorizontal("box");

				GUI.color = condition.isActive? new Color(1,1,1,0.8f) : new Color(1,1,1,0.25f);

				condition.isActive = EditorGUILayout.Toggle(condition.isActive, GUILayout.Width(18));

				GUI.backgroundColor = condition == currentViewCondition? Color.grey : Color.white;
				if (GUILayout.Button(EditorUtils.viewIcon, GUILayout.Width(25), GUILayout.Height(18)))
					currentViewCondition = condition == currentViewCondition? null : condition;
				EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link);
				GUI.backgroundColor = Color.white;
				GUILayout.Label(condition.summaryInfo, GUILayout.MinWidth(0), GUILayout.ExpandWidth(true));
				
				if (!Application.isPlaying && GUILayout.Button("X", GUILayout.MaxWidth(20))){
					Undo.RecordObject(ownerSystem.baseObject, "List Remove Task");
					conditions.RemoveAt(i);
				}

				EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link);
				GUILayout.EndHorizontal();
				GUI.color = Color.white;
			});

			checkMode = (ConditionsCheckMode)EditorGUILayout.EnumPopup(checkMode);
		}