示例#1
0
        public static void Main(string[] args)
        {
            RegisterServices();
            var tasksHandler = DependencyInjectionHelper.InjectDependency <ITasksHandler>();

            CommandsHelper.AnalyseCommandArgs(args);
            tasksHandler.ExecuteTasks();
            NotificationsHelper.DisplayMessage(Messages.Finish);
            SystemsHelper.Sleep();
        }
 public void ExecuteTasks()
 {
     if (CommandsHelper.ShouldOpenSettings())
     {
         SystemsHelper.OpenFile(_userSettings.SettingsFileLocation);
     }
     if (CommandsHelper.ShouldOpenTasks())
     {
         SystemsHelper.OpenFile(_userSettings.TasksLocation);
     }
     if (CommandsHelper.ShouldOpenDownloadsDirectory())
     {
         SystemsHelper.OpenDirectory(_userSettings.DownloadLocation);
     }
     if (CommandsHelper.ShouldExecuteTasks())
     {
         ExtractTasks();
     }
     else
     {
         NotificationsHelper.DisplayMessage(Messages.CommandNotRecognized);
     }
 }
示例#3
0
        protected override void OnUpdate()
        {
            var gameState = GetSingleton <GameState>();

            if (gameState.state != State.LoookingForMatches)
            {
                return;
            }

            if (gameState.needChangeGravity)
            {
                gameState.needChangeGravity = false;
                if (gameState.gravity == Gravity.Down)
                {
                    gameState.gravity = Gravity.Up;
                }
                else
                {
                    gameState.gravity = Gravity.Down;
                }
            }

            var em = EntityManager;

            for (int i = 0; i < Setting.Instance.rowCount; i++)
            {
                var row = Entities.GetCellEntitiesByRow(i);
                row.Sort(columnComparer);

                Color color        = Color.None;
                int   countMatched = 0;
                int   r            = 0;
                for (r = 0; r < row.Length; r++)
                {
                    var cell = em.GetCellByEntity(row[r]);
                    if (cell.color == color)
                    {
                        countMatched++;
                    }
                    else if (cell.color != color)
                    {
                        if (countMatched >= 2)
                        {
                            countMatched++;
                            int matched = countMatched;
                            for (int j = r - 1; countMatched > 0; countMatched--, j--)
                            {
                                var entity = row[j];
                                SetMatched(ref entity, matched);
                            }
                        }
                        countMatched = 0;
                    }
                    color = cell.color;
                }
                if (countMatched >= 2)
                {
                    countMatched++;
                    int matched = countMatched;
                    for (int j = r - 2; countMatched > 0; countMatched--, j--)
                    {
                        var entity = row[j];
                        SetMatched(ref entity, matched);
                    }
                }
            }

            for (int i = 0; i < Setting.Instance.columnCount; i++)
            {
                var column = Entities.GetCellEntitiesByColumn(i);
                column.Sort(rowComparer);
                Color color        = Color.None;
                int   countMatched = 0;
                int   r            = 0;
                for (r = 0; r < column.Length; r++)
                {
                    var cell = em.GetCellByEntity(column[r]);
                    if (cell.color == color)
                    {
                        countMatched++;
                    }
                    else if (cell.color != color)
                    {
                        if (countMatched >= 2)
                        {
                            countMatched++;
                            int matched = countMatched;
                            for (int j = r - 1; countMatched > 0; countMatched--, j--)
                            {
                                var entity = column[j];
                                SetMatched(ref entity, matched);
                            }
                        }
                        countMatched = 0;
                    }
                    color = cell.color;
                }
                if (countMatched >= 2)
                {
                    countMatched++;
                    int matched = countMatched;
                    for (int j = r - 2; countMatched > 0; countMatched--, j--)
                    {
                        var entity = column[j];
                        SetMatched(ref entity, matched);
                    }
                }
            }

            bool setIdle = true;

            Entities.WithAll <Matched>().ForEach((Entity entity, ref Matched matched, ref Cell cell) => {
                if (matched.count >= 4 && em.HasComponent <Selected>(entity))
                {
                    cell.type = Type.Gravity;
                    em.RemoveComponent <Matched>(entity);
                    var renderMesh = em.GetSharedComponentData <RenderMesh>(entity);
                    em.SetSharedComponentData <RenderMesh>(entity, new RenderMesh {
                        mesh                 = renderMesh.mesh,
                        layer                = 0,
                        castShadows          = UnityEngine.Rendering.ShadowCastingMode.Off,
                        receiveShadows       = false,
                        needMotionVectorPass = false,
                        material             = SystemsHelper.TextureByCell(cell)
                    });
                }
                else
                {
                    if (cell.type == Type.Gravity)
                    {
                        gameState.needChangeGravity = !gameState.needChangeGravity;
                    }
                    var empty = em.CreateEntity(typeof(Empty));
                    em.SetComponentData <Empty>(empty, new Empty {
                        column = cell.column,
                        row    = cell.row
                    });
                    setIdle = false;
                    em.DestroyEntity(entity);
                }
            });

            Entities.WithAll <Selected>().ForEach((Entity entity) => {
                em.RemoveComponent <Selected>(entity);
            });

            if (setIdle)
            {
                gameState.state = State.Idle;
            }
            else
            {
                gameState.state = State.Filling;
            }

            SetSingleton <GameState>(gameState);
        }
 private static void ExecuteCmdTask(Task task)
 {
     NotificationsHelper.DisplayMessage(Messages.ExecutingTask);
     SystemsHelper.ExecuteCommand(task.Value);
     task.TaskStatus = TaskStatus.Done;
 }