Пример #1
0
 void Start()
 {
     Active         = false;
     myRenderer     = this.GetComponent <Renderer>();
     storedPosition = transform.position;
     AllPoints.Add(this, storedPosition);
     CallProvider.AddPeriodicUpdateListener(this.PeriodicUpdate);
 }
Пример #2
0
        private WebRtcAdapter.Call.Call SetCall()
        {
            ICallProvider callFactory =
                ClientCore.Factory.CallFactory.Singleton.CreateICallProvider();

            CallProvider callProvider = (CallProvider)callFactory;

            return((WebRtcAdapter.Call.Call)callProvider.GetCall());
        }
Пример #3
0
        void OnDestroy()
        {
            AllPoints.Remove(this, storedPosition);

            if (CallProvider.CanAccessInstance)
            {
                CallProvider.RemovePeriodicUpdateListener(this.PeriodicUpdate);
            }
        }
Пример #4
0
        private void DoUpdate()
        {
            if (Time.time <= lastStep + RevelationSpeed)
            {
                return;
            }

            lastStep += RevelationSpeed;

            foreach (var cell in prevCells)
            {
                if (!cell.IsNude || cell.IsBomb)
                {
                    continue;
                }

                foreach (var neighbor in cell.Neighbors)
                {
                    if (neighbor.State == CellState.Default)
                    {
                        neighbor.State = CellState.Revealed;

                        if (neighbor.IsNude && !neighbor.IsBomb)
                        {
                            buffer.Add(neighbor);
                        }
                    }
                }
            }

            if (buffer.Count == 0)
            {
                IsFinished = true;

                foreach (var action in followupActions)
                {
                    action.Invoke();
                }

                OnFinished();

                GlobalListPool <BoardCell> .Put(prevCells);

                GlobalListPool <BoardCell> .Put(buffer);

                GlobalListPool <Action> .Put(followupActions);

                CallProvider.RemoveUpdateListener(DoUpdate);
                return;
            }

            var tmp = prevCells;

            prevCells = buffer;
            buffer    = tmp;
            buffer.Clear();
        }
Пример #5
0
        public CallViewerForm()
        {
            InitializeComponent();

            storage            = new CallStorage();
            storage.CallAdded += RefreshCallListView;
            callProvider       = new CallProvider(storage);
            callProvider.StartGenerateCalls();
        }
Пример #6
0
 public Form1()
 {
     InitializeComponent();
     lock_obj           = new object();
     callList           = new List <CallViewModel>();
     storage            = new CallStorage();
     storage.CallAdded += ReshrechCallView;
     provider           = new CallProvider(storage);
     provider.Stast();
 }
Пример #7
0
        public Revelation(Board board, BoardCell cell, float revelationSpeed)
        {
            this.prevCells = GlobalListPool <BoardCell> .Get();

            this.buffer = GlobalListPool <BoardCell> .Get();

            this.followupActions = GlobalListPool <Action> .Get();

            this.RevelationSpeed = revelationSpeed;
            this.board           = board;

            cell.State = CellState.Revealed;
            prevCells.Add(cell);
            lastStep = Time.time;

            CallProvider.AddUpdateListener(DoUpdate);
        }
Пример #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AddCallTransformation"/> class.
 /// </summary>
 /// <param name="provider">Call provider that will be asked for call definition.</param>
 public AddCallTransformation(CallProvider provider)
 {
     _provider = provider;
 }
Пример #9
0
 /// <summary>
 /// Create edit for call creation.
 /// </summary>
 /// <param name="name">The name of edit.</param>
 /// <param name="callProvider">The provider of created call.</param>
 /// <returns>Created edit.</returns>
 protected Edit AddCallEdit(string name, CallProvider callProvider)
 {
     return(Edits.AddCall(This, name, callProvider));
 }
Пример #10
0
        /// <summary>
        /// Creates edit that creates specified call.
        /// </summary>
        /// <param name="editProvider">The edit provider.</param>
        /// <param name="editName">Name of the edit.</param>
        /// <param name="callProvider">The call provider.</param>
        /// <returns>Created edit.</returns>
        public Edit AddCall(Instance editProvider, string editName, CallProvider callProvider)
        {
            var transformation = new AddCallTransformation(callProvider);

            return(AddEdit(editProvider, editName, transformation));
        }
Пример #11
0
 private static Task <object> CallHelper(CallProvider reflectCallProvider, string method, byte[] param)
 {
     return(reflectCallProvider.ProcessCall(new { method, param }));
 }
Пример #12
0
 /// <summary>
 /// Register call provider for given node
 /// </summary>
 /// <param name="callNode">Node corresponding to given call provider</param>
 /// <param name="callProvider">Registered call provider</param>
 internal void RegisterCallProvider(INodeAST callNode, CallProvider callProvider)
 {
     _callProviders[callNode] = callProvider;
 }
Пример #13
0
        protected virtual Expression VisitMethod(CommonTree tree, Expression inner)
        {
            // Calc param types
            var parameters = new Expression[tree.ChildCount - 1];
            var types      = new Type[parameters.Length];

            for (int i = 1; i < tree.ChildCount; i++)
            {
                parameters[i - 1] = Visit((CommonTree)tree.Children[i]);
                types[i - 1]      = parameters[i - 1].Type;
            }

            var methodName = GetMethodName(tree, inner == null);

            Member     member = null;
            Expression callOn = null;

            if (inner == null)
            {
                // Parameters
                var param = Parameters.Where(p => p.Name == methodName).FirstOrDefault();
                if (param != null)
                {
                    return(param);
                }

                // Find method on this
                if (This != null)
                {
                    member = CallProvider.FindMethod(This.Type, methodName, types);
                    if (member != null)
                    {
                        callOn = This;
                    }
                }

                // Static method
                if (member == null)
                {
                    member = CallProvider.FindMethod(null, methodName, types);
                }
            }
            else
            {
                // Instance method
                member = CallProvider.FindMethod(inner.Type, methodName, types);
                if (member != null)
                {
                    callOn = inner;
                }
            }

            if (member == null)
            {
                if (tree.Parent == null || tree.Parent.Type != FormulaLexer.CALL)
                {
                    throw new MethodNotFoundException(
                              string.Format("Method with name '{0}' does not exist.", methodName));
                }

                return(null);
            }

            return(member.CreateExpression(callOn, parameters));
        }