Beispiel #1
0
 public override void DeepClone(List<System.Action<System.Func<IntelligenceState, IntelligenceState>>> stateCloneCallbacks)
 {
     if (action)
     {
         action = Instantiate(action);
         action.DeepClone(stateCloneCallbacks);
     }
 }
Beispiel #2
0
        public override void DrawGUI(Intelligence intelligence, CallbackCollection callbacks)
        {
            #if UNITY_EDITOR
            invert = EditorGUILayout.Toggle("Invert:", invert);
            GUILayout.Label(string.Format("If{0}:", invert ? " not" : ""));
            if (ifAction == null)
            {
                Type res = callbacks.TriggerActionPopup();
                if (res != null)
                {

                    ifAction = CreateInstance(res) as TriggerAction;
                    ifAction.name = res.Name;
                    callbacks.AddAsset(ifAction);
                }
            }
            else
            {
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                EditorGUILayout.BeginHorizontal();
                GUILayout.Label(ifAction.name);
                if (GUILayout.Button("x", EditorStyles.miniButton, GUILayout.Width(20)))
                {
                    callbacks.RemoveAsset(ifAction);
                }
                EditorGUILayout.EndHorizontal();
                ifAction.DrawGUI(intelligence, callbacks);
                EditorGUILayout.EndVertical();
            }
            GUILayout.Label("Then:");
            if (thenAction == null)
            {
                Type res = callbacks.TriggerActionPopup();
                if (res != null)
                {
                    thenAction = CreateInstance(res) as TriggerAction;
                    thenAction.name = res.Name;
                    callbacks.AddAsset(thenAction);
                }
            }
            else
            {
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                EditorGUILayout.BeginHorizontal();
                GUILayout.Label(thenAction.name);
                if (GUILayout.Button("x", EditorStyles.miniButton, GUILayout.Width(20)))
                {
                    callbacks.RemoveAsset(thenAction);
                }
                EditorGUILayout.EndHorizontal();
                thenAction.DrawGUI(intelligence, callbacks);
                EditorGUILayout.EndVertical();
            }
            #endif
        }
Beispiel #3
0
 public override void DeepClone(List<Action<Func<IntelligenceState, IntelligenceState>>> stateCloneCallbacks)
 {
     if (ifAction)
     {
         ifAction = Instantiate(ifAction);
         ifAction.DeepClone(stateCloneCallbacks);
     }
     if (thenAction)
     {
         thenAction = Instantiate(thenAction);
         thenAction.DeepClone(stateCloneCallbacks);
     }
 }
Beispiel #4
0
 public override void DrawGUI(Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     handledType = (NotificationType)EditorGUILayout.EnumPopup("Type:", handledType);
     savePosition = EditorGUILayout.Toggle("Save position", savePosition);
     if (savePosition)
     {
         EditorGUILayout.BeginHorizontal();
         GUILayout.Label("var name:", GUILayout.Width(60));
         varName = EditorGUILayout.TextField(varName);
         EditorGUILayout.EndHorizontal();
     }
     saveSender = EditorGUILayout.Toggle("Save sender", saveSender);
     if (saveSender)
     {
         EditorGUILayout.BeginHorizontal();
         GUILayout.Label("var name:", GUILayout.Width(80));
         senderVarName = EditorGUILayout.TextField(senderVarName);
         EditorGUILayout.EndHorizontal();
     }
     GUILayout.Label("Then:");
     if (action == null)
     {
         System.Type res = callbacks.TriggerActionPopup();
         if (res != null)
         {
             action = CreateInstance(res) as TriggerAction;
             action.name = res.Name;
             callbacks.AddAsset(action);
         }
     }
     else
     {
         if (action is HandleMessage) { callbacks.RemoveAsset(action); return; }
         EditorGUILayout.BeginVertical(EditorStyles.helpBox);
         EditorGUILayout.BeginHorizontal();
         GUILayout.Label(action.name);
         if (GUILayout.Button("x", EditorStyles.miniButton, GUILayout.Width(20)))
         {
             callbacks.RemoveAsset(action);
         }
         EditorGUILayout.EndHorizontal();
         action.DrawGUI(intelligence, callbacks);
         EditorGUILayout.EndVertical();
     }
     #endif
 }