예제 #1
0
        public override void Initialize()
        {
            _songSortDisplay = new SongSortDisplay {
                Position = Core.Metrics["SongSortDisplay", 0], Size = Core.Metrics["SongSortDisplay.Size", 0]
            };
            _songSortDisplay.InitSprites();
            _songListDrawOpacity = 255;
            Crossfader           = Core.Crossfader;
            _preloadState        = PreloadState.NOT_LOADING;
            _previewStarted      = false;

            _highScoreFrame = new HighScoreFrame
            {
                EnableFadeout = false,
                Position      = (Core.Metrics["SongHighScoreFrame", 0])
            };

            _highScoreFrame.InitSprites();
            _bpmMeter = new BpmMeter {
                Position = (Core.Metrics["BPMMeter", 0])
            };

            _playerOptionsSet = new PlayerOptionsSet {
                Players     = Core.Players, Positions = Core.Metrics["PlayerOptionsFrame"], CurrentGameType = (GameType)Core.Cookies["CurrentGameType"],
                DrawAttract = true, StackableFrames = true, Size = Core.Metrics["PlayerOptionsFrame.Size", 0]
            };
            _playerOptionsSet.GameTypeInvalidated += delegate
            { Core.ScreenTransition("MainMenu"); };
            _playerOptionsSet.CreatePlayerOptionsFrames();

            CreateSongList();

            var lastSongHash = Core.Settings.Get <int>("LastSongPlayed");
            var lastSong     = (from e in _songList where e.Song.GetHashCode() == lastSongHash select e).FirstOrDefault();

            if (lastSong != null)
            {
                _selectedIndex = _songList.IndexOf(lastSong);
                _songSortDisplay.SelectedSongIndex = _selectedIndex;
            }


            _songTypeDisplay = new SongTypeDisplay {
                Position = Core.Metrics["SongTypeDisplay", 0], Size = Core.Metrics["SongTypeDisplay.Size", 0]
            };
            InitSprites();
            _spectrumDrawer = new SpectrumDrawer
            {
                LevelsCount  = SPECTRUM_POINTS / SPECTRUM_CLUSTER_SIZE,
                Size         = Core.Metrics["SelectedSongSpectrum.Size", 0],
                Position     = Core.Metrics["SelectedSongSpectrum", 0],
                ColorShading = Color.White
            };
            _songLockedSprite = new Sprite3D {
                Position = Core.Metrics["BPMMeter", 0], Texture = TextureManager.Textures("SongLocked")
            };
            base.Initialize();
        }
예제 #2
0
 private void StartSongLoading(object state)
 {
     _preloadState = PreloadState.LOADING_STARTED;
     Core.Log.AddMessage("Song preload started...", LogLevel.DEBUG);
     Core.Cookies["GameSongChannel"] = Core.Songs.PreloadSong(CurrentSong);
     SetPanicState();
     Core.Log.AddMessage("Song preload done.", LogLevel.DEBUG);
     _preloadState = PreloadState.LOADING_FINISHED;
 }
예제 #3
0
 public PreloadData(Type type)
 {
     uiType    = type;
     loadState = PreloadState.Init;
 }