public ChooseSongScene(GUIComponentContainer guiComponents, PolarPolygon centerPolygon, Player player, ShaderProgram shaderProgram) { _guiComponents = guiComponents; _centerPolygon = centerPolygon; _player = player; _shaderProgram = shaderProgram; Exclusive = true; }
public LoadingScene(float audioCorrection, float maxAudioVolume, PolarPolygon centerPolygon, Player player, ShaderProgram shaderProgram, Song song) { Exclusive = true; _audioCorrection = audioCorrection; _maxAudioVolume = maxAudioVolume; _centerPolygon = centerPolygon; _player = player; _shaderProgram = shaderProgram; _song = song; }
public override void Load() { SceneManager.GameWindow.Cursor = MouseCursor.Default; // Remap keypad enter to normal enter InputSystem.KeyRemappings.Add(Key.KeypadEnter, Key.Enter); _gameVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); // Choose correct version directive because OSX is dumb string version = "#version 130"; if (PlatformDetection.RunningPlatform() == Platform.MacOSX) { version = "#version 150"; } // Load shaders var vert = new Shader(Path.Combine(SceneManager.Directories["Shaders"].FullName, "simple.vs"), version); var frag = new Shader(Path.Combine(SceneManager.Directories["Shaders"].FullName, "simple.fs"), version); _shaderProgram = new ShaderProgram(); _shaderProgram.Load(vert, frag); _player = new Player(); _player.Position = new PolarVector(1.5 * (Math.PI / 3) - _player.Length * 0.5f, _player.Position.Radius); _player.ShaderProgram = _shaderProgram; _centerPolygon = new PolarPolygon(Enumerable.Repeat(true, 6).ToList(), new PolarVector(0.5, 0), 50, 80, 0); _centerPolygon.ShaderProgram = _shaderProgram; _menuFont = SceneManager.GameFontLibrary.GetFirstOrDefault("menuworld"); _menuFontDrawing = new QFontDrawing(); _menuFontDrawing.ProjectionMatrix = SceneManager.ScreenCamera.WorldModelViewProjection; _menuRenderOptions = new QFontRenderOptions { DropShadowActive = true, Colour = Color.White }; _versionFont = SceneManager.GameFontLibrary.GetFirstOrDefault("versiontext"); var guiRenderer = new Gwen.Renderer.OpenTK(); var skin = new TexturedBase(guiRenderer, Path.Combine(SceneManager.Directories["Images"].FullName, "DefaultSkin.png")); skin.DefaultFont = new Gwen.Font(guiRenderer, SceneManager.FontPath, 30); _GUIComponents = new GUIComponentContainer(guiRenderer, skin); Loaded = true; }
public StageGeometry Build(AudioFeatures audioFeatures, Random random, GeometryBuilderOptions builderOptions) { _audioFeatures = audioFeatures; _builderOptions = builderOptions; _random = random; _builderOptions.RandomFunction = _random; BuildGoodBeatsList(); BuildBeatFrequencyList(); BuildGeometry(); SetStartColour(); var backgroundPolygon = new PolarPolygon(6, new PolarVector(0.5, 0), 500000, -20, 0); backgroundPolygon.ShaderProgram = _builderOptions.GeometryShaderProgram; return(new StageGeometry(_onsets, _onsetDrawing, _segmentStartColour, _random) { BackgroundPolygon = backgroundPolygon }); }
public void LoadAsync(Song song, float audioCorrection, float maxAudioVolume, IProgress <string> progress, PolarPolygon centerPolygon, Player player, DifficultyOptions difficultyOptions, DifficultyLevels difficultyLevel) { progress.Report("Loading audio"); if (!song.SongAudioLoaded) { song.LoadSongAudio(); } song.SongAudio.Position = 0; var tempStream = new MemoryStream(); song.SongAudio.WriteToStream(tempStream); tempStream.Position = 0; var sourceStream = new MemoryStream(); tempStream.CopyTo(sourceStream); tempStream.Position = sourceStream.Position = 0; IWaveSource detectionSource = new CSCore.Codecs.RAW.RawDataReader(tempStream, song.SongAudio.WaveFormat); IWaveSource songSource = new CSCore.Codecs.RAW.RawDataReader(sourceStream, song.SongAudio.WaveFormat); _stageAudio.Load(songSource); _stageAudio.MaxVolume = maxAudioVolume; _random = new Random(_stageAudio.AudioHashCode); _stageAudio.Volume = 0f; _stageAudio.Seek(WADSWORTH); _stageAudio.Play(); _stageAudio.FadeIn(1000, _stageAudio.MaxVolume * 0.5f, 0.01f, FadeEndAction.Nothing); LoadAudioFeatures(detectionSource, audioCorrection, progress, song); progress.Report("Building stage geometry"); //Apply difficulty options to builder options var bOptions = new GeometryBuilderOptions(ShaderProgram); bOptions.ApplyDifficulty(difficultyOptions); _difficultyOptions = difficultyOptions; //Build stage geometry StageGeometry = new StageGeometryBuilder().Build(_audioFeatures, _random, bOptions); StageGeometry.ParentStage = this; StageGeometry.Player = player; StageGeometry.CenterPolygon = centerPolygon; StageGeometry.RotationSpeed = _difficultyOptions.RotationSpeed; StageGeometry.CurrentColourMode = (ColourMode)ServiceLocator.Settings["ColourMode"]; progress.Report("Load complete"); Thread.Sleep(1000); _stageAudio.CancelAudioFades(); _stageAudio.FadeOut(500, 0.0f, 0.01f, FadeEndAction.Stop); CurrentSong = song; CurrentDifficulty = difficultyLevel; song.SongAudioLoaded = true; Loaded = true; }