示例#1
0
        public void Establish()
        {
            ConsoleKeyInfo   key;
            ManagementOfWork toWork = new ManagementOfWork();

            cursor.Show();
            toWork.ToWork = true;

            Down      downArrow  = new Down(cursor, field);
            Left      leftArrow  = new Left(cursor);
            Right     rightArrow = new Right(cursor, field);
            Up        upArrow    = new Up(cursor);
            Start     spacebar   = new Start(toWork);
            Remove    delete     = new Remove(cursor, sources, pipes);
            AddPipe   enter      = new AddPipe(cursor, sources, pipes);
            AddSource s          = new AddSource(cursor, sources, pipes);

            commands.Add(downArrow);
            commands.Add(leftArrow);
            commands.Add(rightArrow);
            commands.Add(upArrow);
            commands.Add(spacebar);
            commands.Add(delete);
            commands.Add(enter);
            commands.Add(s);

            while (toWork.ToWork)
            {
                key = Console.ReadKey();
                List <PipelineElement> pipelineElement = new List <PipelineElement>();
                pipelineElement.AddRange(pipes);
                pipelineElement.AddRange(sources);
                Console.SetCursorPosition(cursor.X, cursor.Y);
                // очистка хвоста
                Console.WriteLine(' ');

                foreach (PipelineElement element in pipelineElement)
                {
                    if (cursor.Y == element.Height && element.Width == cursor.X)
                    {
                        Console.SetCursorPosition(cursor.X, cursor.Y);
                        element.Print();
                        break;
                    }
                }

                foreach (ICommand command in commands)
                {
                    command.Executive(key);
                }

                Console.ResetColor();
                cursor.Show();
                field.Show();
            }
        }
示例#2
0
        private static void LoadModules(ModuleContainer moduleContainer)
        {
            //Global resource/s.
            var baseFont = new Font(AssPath + "/Resources/Fonts/SourceSansPro-Regular.otf");

            baseFont.GetTexture(14).Smooth = false;
            //Modules

            /*  Modules shouldn't depend on other modules unless absolutely neccessary.
             *  Draw order is determined by the order they are added to the container.
             */
            var pBar     = new ProgressBar();
            var songList = new SongList(baseFont);

            Audio.CurrentSongList = songList;
            var dragWindow    = new DragWindow();
            var playButton    = new PlayButton();
            var border        = new Border();
            var volumeControl = new VolumeControl();
            var shuffle       = new ShuffleButton();
            var repeat        = new RepeatButton();
            var add           = new AddSource();
            var spriteBatch   = new SpriteBatchMod(SpriteBatch);
            var search        = new TextSearch(songList, baseFont);
            var hotkeys       = new HotKeys(pBar, songList, volumeControl);

            moduleContainer.AddModule(pBar);
            moduleContainer.AddModule(songList);
            moduleContainer.AddModule(dragWindow);
            moduleContainer.AddModule(playButton);
            moduleContainer.AddModule(volumeControl);
            moduleContainer.AddModule(shuffle);
            moduleContainer.AddModule(repeat);
            moduleContainer.AddModule(add);
            moduleContainer.AddModule(spriteBatch);
            moduleContainer.AddModule(border);
            moduleContainer.AddModule(search);
            moduleContainer.AddModule(hotkeys);

            //Module specific resources
            songList.LoadFromMultipleDirectories(Config.musicDirectories);
            songList.SortByArtist();

            //Remove duplicates.
            var duplicates = songList.GroupBy(x => x.Name).Where(x => x.Count() > 1);

            foreach (Song song in duplicates
                     .SelectMany(duplicate => duplicate.Take(duplicate.Count() - 1)))
            {
                songList.Remove(song);
            }
        }
 private void Awake()
 {
     instance = this;
 }