/// <summary> /// Verify each command in AdditionalCommands. /// This will break up each line into a command. /// It will then verify each command. If the command /// is good, it will be added to the list. /// </summary> /// <returns>List of all the additional commands that were validated.</returns> private List <string> VerifyAdditionalCommands() { List <string> commands = new List <string>(); // Break up the commands per line // verify each line string[] lines = AdditionalCommands.Split('\n'); return(lines.ToList()); }
private void AdditionalCommands_Leave(object sender, EventArgs e) { AdditionalCommands.Visible = false; AdditionalCommands.SendToBack(); AdditionalCommands.Text = AdditionalCommands.Text.Replace("\r\n", " "); }
private void AddLaunchParams_Click(object sender, EventArgs e) { AdditionalCommands.Visible = true; AdditionalCommands.BringToFront(); AdditionalCommands.Focus(); }
private void generateHorizontalText(string text, FontGenerator font, float fontScale, float initPositionY, double startTime, double endTime, AdditionalCommands callback = null) { var lineWidth = 0f; var letterY = initPositionY; foreach (var letter in text) { var texture = font.GetTexture(letter.ToString()); lineWidth += texture.BaseWidth * fontScale; } var letterX = 320 - lineWidth * 0.5f; foreach (var letter in text) { var texture = font.GetTexture(letter.ToString()); if (!texture.IsEmpty) { var position = new Vector2(letterX, letterY) + texture.OffsetFor(OsbOrigin.Centre) * fontScale; var sprite = GetLayer("lyrics").CreateSprite(texture.Path, OsbOrigin.Centre, position); sprite.MoveY(startTime, position.Y); sprite.Scale(startTime, fontScale); sprite.Fade(startTime, 1); sprite.Fade(endTime, 0); if (callback != null) { callback(sprite); } letterX += texture.BaseWidth * fontScale; } } }
private void generateVeritcalText(string text, FontGenerator font, float fontScale, float initPositionX, float initPositionY, string layer, double startTime, double endTime, AdditionalCommands callback = null) { var lineHeight = 0f; var letterX = initPositionX; foreach (var letter in text) { var texture = font.GetTexture(letter.ToString()); lineHeight += texture.BaseHeight * fontScale; } var letterY = initPositionY - lineHeight * 0.5f; foreach (var letter in text) { var texture = font.GetTexture(letter.ToString()); if (!texture.IsEmpty) { var position = new Vector2(letterX, letterY); var sprite = GetLayer(layer).CreateSprite(texture.Path, OsbOrigin.Centre, position); sprite.MoveX(startTime, position.X); sprite.Scale(startTime, fontScale); sprite.Fade(startTime, 1); sprite.Fade(endTime, 0); if (callback != null) { callback(sprite); } letterY += texture.BaseHeight * fontScale; } } }
/*============================================= * //* Scenes * =============================================*/ private void Scene1(FontGenerator font) { generateCinematicBars(); /*============================================= * //* Line 1 * =============================================*/ //* Background generateBackgroundColor(965, 1888, whiteColor); generateBackgroundColor(1888, 2811, redColor); generateBackgroundColor(2811, 3272, whiteColor); generateBackgroundColor(3272, 4195, blueMarineColor); //* Lyrics // 小さく AdditionalCommands line1word1 = (sprite) => { sprite.Color(965, redColor); sprite.Color(1888, Color4.White); sprite.MoveX(1888, 320 + 107); sprite.MoveX(2811, 320 + 854 / 4); sprite.Color(2811, blueMarineColor); sprite.Color(3272, Color4.White); sprite.MoveX(3272, 320 + 107 + 854 / 4); }; generateVeritcalText("小さく", font, 0.1f, 320, 240, "lyrics", 965, 4195, line1word1); // 遠くで AdditionalCommands line1word2 = (sprite) => { sprite.Color(1888, Color4.White); sprite.MoveX(2811, 320); sprite.Color(2811, blueMarineColor); sprite.Color(3272, Color4.White); sprite.MoveX(3272, 320 + 107); }; generateVeritcalText("遠くで", font, 0.1f, 320 - 107, 240, "lyrics", 1888, 4195, line1word2); // 何かが AdditionalCommands line1word3 = (sprite) => { sprite.Color(2811, blueMarineColor); sprite.Color(3272, Color4.White); sprite.MoveX(3272, 320 - 107); }; generateVeritcalText("何かが", font, 0.1f, 320 - 854 / 4, 240, "lyrics", 2811, 4195, line1word3); // 鳴った generateVeritcalText("鳴った", font, 0.1f, 320 - 107 - 854 / 4, 240, "lyrics", 3272, 4195); /*============================================= * //* Line 2 * =============================================*/ //* Background generateBackgroundColor(4195, 4657, whiteColor); generateBackgroundColor(4657, 5118, magentaColor); generateBackgroundColor(5118, 6272, whiteColor); generateBackgroundColor(6272, 6965, violetColor); generateBackgroundColor(6965, 8349, whiteColor); //* Lyrics // 君の AdditionalCommands line2word1 = (sprite) => { sprite.Color(4195, magentaColor); sprite.Color(4657, Color4.White); sprite.MoveX(4657, 320 + 107); sprite.MoveX(5118, 320 + 854 / 4); sprite.Color(5118, violetColor); sprite.Color(6272, Color4.White); sprite.MoveX(6272, 320 + 107 + 854 / 4); sprite.Color(6965, blueMarineColor); }; generateVeritcalText("君の", font, 0.1f, 320, 240, "lyrics", 4195, 7426, line2word1); // 横顔を AdditionalCommands line2word2 = (sprite) => { sprite.Color(4657, Color4.White); sprite.MoveX(5118, 320); sprite.Color(5118, violetColor); sprite.Color(6272, Color4.White); sprite.MoveX(6272, 320 + 107); sprite.Color(6965, blueMarineColor); }; generateVeritcalText("横顔を", font, 0.1f, 320 - 107, 240, "lyrics", 4657, 7426, line2word2); // 追った AdditionalCommands line2word3 = (sprite) => { sprite.Color(5118, violetColor); sprite.Color(6272, Color4.White); sprite.MoveX(6272, 320 - 107); sprite.Color(6965, blueMarineColor); }; generateVeritcalText("追った", font, 0.1f, 320 - 854 / 4, 240, "lyrics", 5118, 7426, line2word3); // 一瞬、 AdditionalCommands line2word4 = (sprite) => { sprite.Color(6272, Color4.White); sprite.Color(6965, blueMarineColor); }; generateVeritcalText("一瞬、", font, 0.1f, 320 - 107 - 854 / 4, 240, "lyrics", 6272, 7426, line2word4); // もう一瞬 AdditionalCommands line2word5 = (sprite) => { sprite.Color(7888, blueMarineColor); }; generateHorizontalText("もう一瞬", font, 0.7f, 140, 7888, 8349, line2word5); }