private void OnAddCondition(object aValue)
        {
            var item = new AntAIScenarioItem
            {
                id    = _scenario.conditions.GetIndex(aValue.ToString()),
                value = true
            };

            AntArray.Add(ref _goal.conditions, item);
        }
Example #2
0
        private void DrawConditionsList(string aLabel, ref AntAIScenarioItem[] aConditions)
        {
            Color c = GUI.color;

            GUILayout.BeginVertical(_rowStyleA);

            var list = new string[_self.conditions.list.Length + 1];

            list[0] = "- Select to Add -";
            for (int i = 1, n = list.Length; i < n; i++)
            {
                list[i] = _self.conditions.list[i - 1].name;
            }

            int addIndex = EditorGUILayout.Popup(aLabel, 0, list);

            if (addIndex > 0)
            {
                var item = new AntAIScenarioItem()
                {
                    id    = _self.conditions.GetID(list[addIndex]),
                    value = true
                };
                AddToArray <AntAIScenarioItem>(ref aConditions, item);
            }
            GUILayout.EndVertical();

            int delIndex = -1;

            for (int i = 0, n = aConditions.Length; i < n; i++)
            {
                GUILayout.BeginVertical((i % 2 == 0) ? _rowStyleB : _rowStyleC);
                GUILayout.BeginHorizontal();
                GUI.color = c * ((aConditions[i].value) ? new Color(0.5f, 1.0f, 0.5f) : new Color(1.0f, 0.5f, 0.5f));                 // green : red
                if (GUILayout.Button((aConditions[i].value) ? "I" : "O", GUILayout.MaxWidth(20.0f), GUILayout.MaxHeight(16.0f)))
                {
                    aConditions[i].value = !aConditions[i].value;
                }
                GUILayout.Label(_self.conditions.GetName(aConditions[i].id));
                GUI.color = c;
                if (GUILayout.Button("x", GUILayout.MaxWidth(20.0f), GUILayout.MaxHeight(16.0f)))
                {
                    delIndex = i;
                }
                GUILayout.EndHorizontal();
                GUILayout.Space(2.0f);
                GUILayout.EndVertical();
            }

            if (delIndex > -1)
            {
                RemoveFromArrayAt <AntAIScenarioItem>(ref aConditions, delIndex);
            }
        }
        private void OnAddPostCondition(object aValue)
        {
            var item = new AntAIScenarioItem
            {
                id    = _scenario.conditions.GetIndex(aValue.ToString()),
                value = true
            };

            AntArray.Add(ref _action.post, item);
            EditorUtility.SetDirty(Scenario);
        }
        private void AddConditionHandler(object aValue)
        {
            var item = new AntAIScenarioItem
            {
                id    = _scenario.conditions.GetIndex(aValue.ToString()),
                value = true
            };

            AntArray.Add(ref _worldState.list, item);
            EditorUtility.SetDirty(_scenario);
        }