Example #1
0
        public override void SetServer(string ip, int port, CallbackCollection callbackCollection, int MAX_LISTEN)
        {
            _BufferManager = new SimpleBuffer();
            _Callback      = callbackCollection;
            //_BufferManager = new MicrosoftBuffer(4096 * 10, 4096);
            for (int i = 0; i < MAX_LISTEN; i++)
            {
                UniNetObject e = new UniNetObject();
                e.SetProtocol(_Callback._ProtocolOp);
                //SocketAsyncEventArgs args = new SocketAsyncEventArgs();
                e.SetCompletedHandler(ProcessIO);
                //args.Completed += new EventHandler<SocketAsyncEventArgs>(ProcessIO);
                //byte[] buf = new byte[4096];
                //_BufferManager.SetBuffer(args.SetBuffer, 4096);
                //_ConnectPool.InitPush(args);
            }
            _IpAddress = ip != null?
                         IPAddress.Parse(ip) :
                             IPAddress.Any;

            _Port            = port;
            _ServerUniObject = new UniNetObject();
            _ServerUniObject.SetProtocol(_Callback._ProtocolOp);
            _ServerUniObject.SetRemoteEndPoint(new IPEndPoint(_IpAddress, _Port));
            _MAX_LISTEN = MAX_LISTEN;
            _Callback   = callbackCollection;
            _Type       = CoreType.Server;
        }
Example #2
0
        /// <summary>
        /// Called when before.
        /// </summary>
        /// <param name="invocation">The invocation.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="invocation"/> is <c>null</c>.</exception>
        protected override void OnBefore(IInvocation invocation)
        {
            Argument.IsNotNull("invocation", invocation);

            CallbackCollection.ForEach(callBack => callBack.Accept(_visitor));
            _visitor.OnBeforeCallbackCollection.ForEach(callBack => callBack.Intercept(invocation));
        }
Example #3
0
    private void AddCallbackInternal(CallbackType type, Action action)
    {
        NamedAction namedAction = new NamedAction();

        // Give that shit a name so we can refer to it in profiler.
#if UNITY_EDITOR
        namedAction.Name = action.Target != null?
                           action.Target.GetType().ToString() + "." + action.Method.ToString() :
                               action.Method.ToString();
#endif
        namedAction.Action = action;

        CallbackCollection callbackCollection = collections[type];

        // Check if it's already been added, should never be the case so avoiding the overhead in build.
#if UNITY_EDITOR
        if (callbackCollection.ActionDictionary.ContainsKey(action))
        {
            Debug.LogErrorFormat("Failed to add callback '{0}' to CallbackEvent '{1}' because it is already added.", namedAction.Name, type.ToString());
            return;
        }
#endif

        callbackCollection.ActionList.Add(namedAction);
        callbackCollection.ActionDictionary.Add(action, namedAction);
    }
Example #4
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     desiredDistance = UnityEditor.EditorGUILayout.FloatField("distance:", desiredDistance);
     fleeFrom = UnityEditor.EditorGUILayout.TextField("from:", fleeFrom);
     #endif
 }
Example #5
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     UnityEditor.EditorGUILayout.BeginHorizontal();
     UnityEngine.GUILayout.Label("Method name:");
     methodName = UnityEditor.EditorGUILayout.TextField(methodName);
     UnityEditor.EditorGUILayout.EndHorizontal();
     useTargetVar = UnityEditor.EditorGUILayout.Toggle("Use other target", useTargetVar);
     if (useTargetVar)
     {
         UnityEditor.EditorGUILayout.BeginHorizontal();
         UnityEngine.GUILayout.Label("Target var name:");
         targetVarName = UnityEditor.EditorGUILayout.TextField(targetVarName);
         UnityEditor.EditorGUILayout.EndHorizontal();
     }
     paramType = (ParameterType)UnityEditor.EditorGUILayout.EnumPopup("Parameter:", paramType);
     if (paramType == ParameterType.VarValue)
     {
         UnityEditor.EditorGUILayout.BeginHorizontal();
         UnityEngine.GUILayout.Label("Var name:");
         paramTypeValue = UnityEditor.EditorGUILayout.TextField(paramTypeValue);
         UnityEditor.EditorGUILayout.EndHorizontal();
     }
     if (paramType == ParameterType.String)
     {
         UnityEditor.EditorGUILayout.BeginHorizontal();
         UnityEngine.GUILayout.Label("Value:");
         paramTypeValue = UnityEditor.EditorGUILayout.TextField(paramTypeValue);
         UnityEditor.EditorGUILayout.EndHorizontal();
     }
     #endif
 }
Example #6
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     int currentState = 0;
     List<string> stateNames = new List<string> ();
     stateNames.Add ("Select");
     for (int i = 0; i < intelligence.states.Count; i++) {
         string newStateName = intelligence.states [i].name;
         if (newState != null) {
             if (newState.name.Equals (newStateName, System.StringComparison.OrdinalIgnoreCase)) {
                 currentState = i + 1;
             }
         }
         stateNames.Add (newStateName);
     }
     EditorGUILayout.BeginHorizontal ();
     GUILayout.Label ("New State: ");
     int selectedState = EditorGUILayout.Popup (currentState, stateNames.ToArray ());
     EditorGUILayout.EndHorizontal ();
     if (selectedState > 0) {
         if (!parentState.name.Equals (intelligence.states [selectedState - 1].name)) {
             newState = intelligence.states [selectedState - 1];
         } else {
             Debug.LogWarning ("transitioning to self is useless.");
         }
     }
     #endif
 }
Example #7
0
    private static void AddCallbackInternal(Dictionary <CallbackType, CallbackCollection> collection, CallbackType type, Func <bool> callback)
    {
        if (!collection.ContainsKey(type))
        {
            collection.Add(type, new CallbackCollection());
        }

        NamedFunc namedFunc = new NamedFunc();

        // We do PHASED_DEBUG instead of UNITY_EDITOR in case we connect profiler in debug build
#if PHASED_DEBUG
        namedFunc.Name = callback.Target != null?
                         callback.Target.GetType().ToString() + "." + callback.Method.ToString() :
                             callback.Method.ToString();
#endif
        namedFunc.Func = callback;

        CallbackCollection callbackCollection = collection[type];

        if (callbackCollection.FunctionsDictionary.ContainsKey(callback))
        {
            Debug.LogErrorFormat("Failed to add callback '{0}' to CallbackEvent '{1}' because it is already added.", namedFunc.Name, type.ToString());
            return;
        }

        callbackCollection.FunctionsList.Add(namedFunc);
        callbackCollection.FunctionsDictionary.Add(callback, namedFunc);
    }
Example #8
0
 public override void SetClient(CallbackCollection callbackCollection, bool SingleConnect)
 {
     _Type          = CoreType.Client;
     _Callback      = callbackCollection;
     _SingleConnect = SingleConnect;
     _BufferManager = new SimpleBuffer();
     //_BufferManager = new MicrosoftBuffer(4096 * 3, 4096);
 }
Example #9
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     UnityEditor.EditorGUILayout.BeginHorizontal();
     UnityEngine.GUILayout.Label(new UnityEngine.GUIContent("Type:", "Only if this type is currently playing as continuous it will be stopped"));
     type = (SoundSet.ClipType)UnityEditor.EditorGUILayout.EnumPopup(type);
     UnityEditor.EditorGUILayout.EndHorizontal();
     #endif
 }
Example #10
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     EditorGUILayout.BeginHorizontal();
     GUILayout.Label("Var Name:", GUILayout.Width(64));
     storeName = EditorGUILayout.TextField(storeName);
     EditorGUILayout.EndHorizontal();
         #endif
 }
Example #11
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     UnityEditor.EditorGUILayout.BeginHorizontal();
     GUILayout.Label("Var name:");
     varName = UnityEditor.EditorGUILayout.TextField(varName);
     UnityEditor.EditorGUILayout.EndHorizontal();
     #endif
 }
Example #12
0
    private void AddCallbackInternal(CallbackType type, Action action)
    {
        if (type == CallbackType.UPDATE)
        {
            if (!Instance.updateActions.Contains(action))
            {
                Instance.updateActions.Add(action);
                return;
            }
        }

        if (type == CallbackType.FIXED_UPDATE)
        {
            if (!Instance.fixedUpdateActions.Contains(action))
            {
                Instance.fixedUpdateActions.Add(action);
                return;
            }
        }

        if (type == CallbackType.LATE_UPDATE)
        {
            if (!Instance.lateUpdateActions.Contains(action))
            {
                Instance.lateUpdateActions.Add(action);
                return;
            }
        }

        //FIXME current system is 2 x slower possibly because of garbage being created
        //in ProcessCallbacks()
        return;

        NamedAction namedAction = new NamedAction();

        // Give that shit a name so we can refer to it in profiler.
#if UNITY_EDITOR
        namedAction.Name = action.Target != null?
                           action.Target.GetType().ToString() + "." + action.Method.ToString() :
                               action.Method.ToString();
#endif
        namedAction.Action = action;

        CallbackCollection callbackCollection = collections[type];

        // Check if it's already been added, should never be the case so avoiding the overhead in build.
#if UNITY_EDITOR
        if (callbackCollection.ActionDictionary.ContainsKey(action))
        {
            Debug.LogErrorFormat("Failed to add callback '{0}' to CallbackEvent '{1}' because it is already added.", namedAction.Name, type.ToString());
            return;
        }
#endif

        callbackCollection.ActionList.Add(namedAction);
        callbackCollection.ActionDictionary.Add(action, namedAction);
    }
Example #13
0
 public override void DrawGUI(Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     GUILayout.BeginHorizontal();
     GUILayout.Label("Name:", GUILayout.Width(40));
     saveName = EditorGUILayout.TextField(saveName);
     GUILayout.EndHorizontal();
     #endif
 }
Example #14
0
 override public void SetClient(CallbackCollection callbackCollection, bool SingleConnect)
 {
     _Callback = callbackCollection;
     _Callback.BindCore(this);
     _SocketCollection           = new List <SocketStateObject>();
     _ConnectingSocketCollection = new List <Socket>();
     _isServer      = false;
     _isSet         = true;
     _SingleConnect = SingleConnect;
 }
Example #15
0
    private void RemoveCallbackInternal(CallbackCollection collection, Action callback)
    {
        NamedAction namedAction;

        if (collection.ActionDictionary.TryGetValue(callback, out namedAction))
        {
            namedAction.WaitingForRemove = true;
            collection.ActionDictionary.Remove(callback);
        }
    }
Example #16
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     EditorGUILayout.BeginHorizontal();
     GUILayout.Label("target var name: ");
     entityVarName = EditorGUILayout.TextField(entityVarName);
     EditorGUILayout.EndHorizontal();
     range = EditorGUILayout.FloatField("Range:", range);
     #endif
 }
Example #17
0
        /// <summary>
        /// Initializes a new instance of the <see cref="StateInterceptor" /> class.
        /// </summary>
        /// <param name="memberDefinition">The method signature.</param>
        /// <param name="callbacks">The callbacks.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="memberDefinition" /> is <c>null</c>.</exception>
        /// <exception cref="ArgumentNullException">The <paramref name="callbacks" /> is <c>null</c>.</exception>
        public StateInterceptor(IMemberDefinition memberDefinition, CallbackCollection callbacks)
        {
            Argument.IsNotNull("methodDefinition", memberDefinition);
            Argument.IsNotNull("callbacks", callbacks);

            MemberDefinition   = memberDefinition;
            CallbackCollection = callbacks;

            _visitor = new SelectCallbackVisitor();
        }
Example #18
0
    private static void RemoveCallbackInternal(CallbackCollection callbackCollection, Func <bool> callback)
    {
        NamedFunc namedFunc;

        if (callbackCollection.FunctionsDictionary.TryGetValue(callback, out namedFunc))
        {
            namedFunc.WaitingForRemove = true;
            callbackCollection.FunctionsDictionary.Remove(callback);
        }
    }
Example #19
0
        /// <summary>
        /// Initializes a new instance of the <see cref="StateInterceptor" /> class.
        /// </summary>
        /// <param name="memberDefinition">The method signature.</param>
        /// <param name="callbacks">The callbacks.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="memberDefinition" /> is <c>null</c>.</exception>
        /// <exception cref="ArgumentNullException">The <paramref name="callbacks" /> is <c>null</c>.</exception>
        public StateInterceptor(IMemberDefinition memberDefinition, CallbackCollection callbacks)
        {
            Argument.IsNotNull("methodDefinition", memberDefinition);
            Argument.IsNotNull("callbacks", callbacks);

            MemberDefinition = memberDefinition;
            CallbackCollection = callbacks;

            _visitor = new SelectCallbackVisitor();
        }
Example #20
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
        }
Example #21
0
 override public void SetServer(String ip, int port, CallbackCollection callbackCollection, int MAX_LISTEN = 10)
 {
     _IpAddress        = IPAddress.Parse(ip);
     _Port             = port;
     _Callback         = callbackCollection;
     _SocketCollection = new List <SocketStateObject>();
     acceptThreadLock  = new object();
     _isSet            = true;
     _isServer         = true;
     _MAX_LISTEN       = MAX_LISTEN;
 }
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     target = (MessageTarget)EditorGUILayout.EnumPopup("Target:",target);
     type = (NotificationType)EditorGUILayout.EnumPopup("Type:", type);
     EditorGUILayout.BeginHorizontal();
     GUILayout.Label("Position var:", GUILayout.Width(74));
     positionVariableName = EditorGUILayout.TextField(positionVariableName);
     EditorGUILayout.EndHorizontal();
     radius = EditorGUILayout.FloatField("Radius:", radius);
     #endif
 }
Example #23
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     type = (EntityMover.SpeedModType)UnityEditor.EditorGUILayout.EnumPopup("Type", type);
     timeout = UnityEditor.EditorGUILayout.FloatField("Timeout:", timeout);
     saveAsVar = UnityEditor.EditorGUILayout.Toggle("Save as var", saveAsVar);
     if (saveAsVar)
     {
         varName = UnityEditor.EditorGUILayout.TextField("var:", varName);
     }
     #endif
 }
Example #24
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     UnityEditor.EditorGUILayout.BeginHorizontal();
     GUILayout.Label("Type:");
     type = (SoundSet.ClipType)UnityEditor.EditorGUILayout.EnumPopup(type);
     UnityEditor.EditorGUILayout.EndHorizontal();
     UnityEditor.EditorGUILayout.BeginHorizontal();
     GUILayout.Label("Interval (if continuous):");
     interval = UnityEditor.EditorGUILayout.FloatField(interval);
     UnityEditor.EditorGUILayout.EndHorizontal();
     #endif
 }
Example #25
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     EditorGUILayout.BeginHorizontal();
     GUILayout.Label("Target var name:");
     entityVarName = EditorGUILayout.TextField(entityVarName);
     EditorGUILayout.EndHorizontal();
     EditorGUILayout.BeginHorizontal();
     GUILayout.Label("Interval:");
     interval = EditorGUILayout.Slider(interval, 0.1f, 2f);
     EditorGUILayout.EndHorizontal();
     damagePerAttack = EditorGUILayout.IntField(new GUIContent("Damage:", "per interval"), damagePerAttack);
     #endif
 }
Example #26
0
 public void OnDelete(CallbackCollection callbacks)
 {
     for (int i = 0; i < enterActions.Count; i++)
     {
         enterActions[i].OnDelete(callbacks);
     }
     for (int i = 0; i < updateActions.Count; i++)
     {
         updateActions[i].OnDelete(callbacks);
     }
     for (int i = 0; i < exitActions.Count; i++)
     {
         exitActions[i].OnDelete(callbacks);
     }
 }
Example #27
0
    private void ProcessCallbacks(CallbackCollection collection)
    {
        List <NamedAction> callbackList = collection.ActionList;

        // Iterate backwards so we can remove at O(1) while still iterating the rest.
        int startCount = callbackList.Count;
        int count      = startCount;

        for (int i = count - 1; i >= 0; --i)
        {
            NamedAction namedAction = callbackList[i];
            Action      callback    = namedAction.Action;

            if (namedAction.WaitingForRemove)
            {
                // When removing from a list, everything else will shift to fill in the gaps.
                // To avoid this, we swap this item to the back of the list.
                // At the end of iteration, we remove the items marked for removal from the back (can be multiple) so no other memory has to shift.
                NamedAction last = callbackList[count - 1];
                callbackList[count - 1] = namedAction;
                callbackList[i]         = last;
                count--;
                continue;
            }

#if UNITY_EDITOR
            Profiler.BeginSample(namedAction.Name);
            try
            {
                callback?.Invoke();
            }
            catch (Exception e)
            {
                // Catch the exception so it does not break flow of all callbacks
                // But still log it to Unity console so we know something happened
                Debug.LogException(e);

                // Get rid of it.
                RemoveCallbackInternal(collection, callback);
            }
            Profiler.EndSample();
#else
            callback?.Invoke();
#endif
        }

        callbackList.RemoveRange(count, startCount - count);
    }
Example #28
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     targetName = UnityEditor.EditorGUILayout.TextField("Target var:", targetName);
     triggerName = UnityEditor.EditorGUILayout.TextField("Trigger name:", triggerName);
     paramType = (ParameterType)UnityEditor.EditorGUILayout.EnumPopup("Parameter:", paramType);
     if (paramType == ParameterType.VarValue)
     {
         paramTypeValue = UnityEditor.EditorGUILayout.TextField("Var name:", paramTypeValue);
     }
     if (paramType == ParameterType.String)
     {
         paramTypeValue = UnityEditor.EditorGUILayout.TextField("Value:", paramTypeValue);
     }
     #endif
 }
Example #29
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
 }
Example #30
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     Type = (TargetType)EditorGUILayout.EnumPopup("Type:", Type);
     targetClassification = (IntelligenceType) EditorGUILayout.EnumPopup("Classification:", targetClassification);
     range = EditorGUILayout.FloatField("Range:", range);
     checkLOS = EditorGUILayout.Toggle("Check LOS:", checkLOS);
     saveVar = EditorGUILayout.Toggle("Save", saveVar);
     if (saveVar)
     {
         EditorGUILayout.BeginHorizontal();
         GUILayout.Label("Var name:");
         storageVar = EditorGUILayout.TextField(storageVar);
         EditorGUILayout.EndHorizontal();
     }
     #endif
 }
Example #31
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     target = (TargetType)UnityEditor.EditorGUILayout.EnumPopup("Target:", target);
     if (target == TargetType.TargetVar)
     {
         UnityEditor.EditorGUILayout.BeginHorizontal();
         UnityEngine.GUILayout.Label("Target var name:");
         targetVarName = UnityEditor.EditorGUILayout.TextField(targetVarName);
         UnityEditor.EditorGUILayout.EndHorizontal();
     }
     UnityEditor.EditorGUILayout.BeginHorizontal();
     UnityEngine.GUILayout.Label("Save var name:");
     varName = UnityEditor.EditorGUILayout.TextField(varName);
     UnityEditor.EditorGUILayout.EndHorizontal();
     #endif
 }
Example #32
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     posVarSource = (PositionSource)UnityEditor.EditorGUILayout.EnumPopup("Position source:", posVarSource);
     if (posVarSource == PositionSource.VarValue)
     {
         UnityEditor.EditorGUILayout.BeginHorizontal();
         GUILayout.Label("Postion var name:");
         posVarName = UnityEditor.EditorGUILayout.TextField(posVarName);
         UnityEditor.EditorGUILayout.EndHorizontal();
     }
     saveAsVar = UnityEditor.EditorGUILayout.Toggle("Save as var:", saveAsVar);
     if (saveAsVar)
     {
         UnityEditor.EditorGUILayout.BeginHorizontal();
         GUILayout.Label("Save var name:");
         saveVarName = UnityEditor.EditorGUILayout.TextField(saveVarName);
         UnityEditor.EditorGUILayout.EndHorizontal();
     }
     #endif
 }
Example #33
0
    private void ProcessCallbacks(CallbackCollection collection)
    {
        List <NamedFunc> callbackList = collection.FunctionsList;

        int startCount = callbackList.Count;
        int count      = startCount;

        for (int i = count - 1; i >= 0; --i)
        {
            NamedFunc   namedFunc = callbackList[i];
            Func <bool> callback  = namedFunc.Func;

            if (namedFunc.WaitingForRemove)
            {
                NamedFunc last = callbackList[count - 1];
                callbackList[count - 1] = namedFunc;
                callbackList[i]         = last;
                count--;
                continue;
            }

            Profiler.BeginSample(namedFunc.Name);
            try
            {
                if (!callback())
                {
                    RemoveCallbackInternal(collection, callback);
                }
            }
            catch (Exception e)
            {
                // Catch the exception so it does not break flow of all callbacks
                // But still log it to Unity console so we know something happened
                Debug.LogException(e);
            }
            Profiler.EndSample();
        }

        callbackList.RemoveRange(count, startCount - count);
    }
Example #34
0
        public override void SetServer(string ip, int port, CallbackCollection callbackCollection, int MAX_LISTEN)
        {
            _BufferManager = new SimpleBuffer();
            //_BufferManager = new MicrosoftBuffer(4096 * 10, 4096);
            _ConnectPool = new SocketAsyncPool();
            _ConnectPool.Init(MAX_LISTEN);
            for (int i = 0; i < MAX_LISTEN; i++)
            {
                SocketAsyncEventArgs args = new SocketAsyncEventArgs();
                args.Completed += new EventHandler <SocketAsyncEventArgs>(ProcessIO);
                //byte[] buf = new byte[4096];
                _BufferManager.SetBuffer(args.SetBuffer, 4096);
                _ConnectPool.InitPush(args);
            }
            _IpAddress = ip != null?
                         IPAddress.Parse(ip) :
                             IPAddress.Any;

            _Port       = port;
            _MAX_LISTEN = MAX_LISTEN;
            _Callback   = callbackCollection;
            _Type       = CoreType.Server;
        }
Example #35
0
 public virtual void OnDelete(CallbackCollection callbacks)
 {
 }
Example #36
0
        bool repeated = false; //minimize progress delay

        #endregion Fields

        #region Methods

        public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
        {
            #if UNITY_EDITOR
            ignorePathConfiguration = UnityEditor.EditorGUILayout.Toggle("Ignore point actions", ignorePathConfiguration);
                #endif
        }
Example #37
0
 public virtual void DrawGUI(Intelligence intelligence, CallbackCollection callbacks)
 {
 }
 void OnEnable()
 {
     callbackCollection = new CallbackCollection();
     callbackCollection.AddAsset = AddToAsset;
     callbackCollection.RemoveAsset = RemoveAsset;
     callbackCollection.OneShotActionPopup = OneShotPopup;
     callbackCollection.ContinuousActionPopup = ContinuousActionPopup;
     callbackCollection.ConditionalActionPopup = ConditionalActionPopup;
     callbackCollection.TriggerActionPopup = TriggerActionPopup;
     CacheUsableTypes();
 }
Example #39
0
 abstract public void SetClient(CallbackCollection callbackCollection, bool SingleConnect);
Example #40
0
 public override void DrawGUI(Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     txt = UnityEditor.EditorGUILayout.TextField("Text:", txt);
     #endif
 }
Example #41
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     color = UnityEditor.EditorGUILayout.ColorField("Color:", color);
     #endif
 }
Example #42
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     triggerID = UnityEditor.EditorGUILayout.TextField("TriggerID:", triggerID);
     #endif
 }
Example #43
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     newBehaviour = UnityEditor.EditorGUILayout.ObjectField("Behaviour:", newBehaviour, typeof(Intelligence), false) as Intelligence;
     #endif
 }
Example #44
0
 public override void OnDelete(CallbackCollection callbacks)
 {
     if (ifAction != null)
     {
         ifAction.OnDelete(callbacks);
         callbacks.RemoveAsset(ifAction);
     }
     if (thenAction != null)
     {
         thenAction.OnDelete(callbacks);
         callbacks.RemoveAsset(thenAction);
     }
 }
Example #45
0
 abstract public void SetServer(String ip, int port, CallbackCollection callbackCollection, int MAX_LISTEN = -1);
Example #46
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     varName = UnityEditor.EditorGUILayout.TextField("var:", varName);
     #endif
 }