diff --git a/.github/hooks/post-checkout b/.github/hooks/post-checkout old mode 100644 new mode 100755 diff --git a/.github/hooks/post-merge b/.github/hooks/post-merge old mode 100644 new mode 100755 diff --git a/.github/hooks/pre-push b/.github/hooks/pre-push old mode 100644 new mode 100755 diff --git a/Project.xml b/Project.xml index 0a44a268c..2e056426c 100644 --- a/Project.xml +++ b/Project.xml @@ -124,7 +124,7 @@ - + diff --git a/hmm.json b/hmm.json index 300f0287f..67511a638 100644 --- a/hmm.json +++ b/hmm.json @@ -46,10 +46,10 @@ "version": "3.5.0" }, { - "name": "funkVis", + "name": "funkin.vis", "type": "git", "dir": null, - "ref": "7fc9901553fbe9b8fcf6e2e84bc86eabeaf29701", + "ref": "98c9db09f0bbfedfe67a84538a5814aaef80bdea", "url": "https://github.com/FunkinCrew/funkVis" }, { diff --git a/source/funkin/audio/visualize/ABotVis.hx b/source/funkin/audio/visualize/ABotVis.hx index 0295e35ff..ca77dd58a 100644 --- a/source/funkin/audio/visualize/ABotVis.hx +++ b/source/funkin/audio/visualize/ABotVis.hx @@ -8,8 +8,8 @@ import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup; import flixel.math.FlxMath; import flixel.sound.FlxSound; import funkin.util.MathUtil; -import funkVis.dsp.SpectralAnalyzer; -import funkVis.audioclip.frontends.LimeAudioClip; +import funkin.vis.dsp.SpectralAnalyzer; +import funkin.vis.audioclip.frontends.LimeAudioClip; using Lambda; @@ -90,7 +90,7 @@ class ABotVis extends FlxTypedSpriteGroup } /** - * TJW funkVis based visualizer! updateFFT() is the old nasty shit that dont worky! + * TJW funkin.vis based visualizer! updateFFT() is the old nasty shit that dont worky! */ function drawFFT():Void { diff --git a/source/funkin/play/components/PopUpStuff.hx b/source/funkin/play/components/PopUpStuff.hx index b062b22cf..b7e206e97 100644 --- a/source/funkin/play/components/PopUpStuff.hx +++ b/source/funkin/play/components/PopUpStuff.hx @@ -42,7 +42,7 @@ class PopUpStuff extends FlxTypedGroup if (PlayState.instance.currentStageId.startsWith('school')) { - rating.setGraphicSize(Std.int(rating.width * Constants.PIXEL_ART_SCALE * 0.65)); + rating.setGraphicSize(Std.int(rating.width * Constants.PIXEL_ART_SCALE * 0.7)); rating.antialiasing = false; } else @@ -133,7 +133,7 @@ class PopUpStuff extends FlxTypedGroup if (PlayState.instance.currentStageId.startsWith('school')) { - numScore.setGraphicSize(Std.int(numScore.width * Constants.PIXEL_ART_SCALE)); + numScore.setGraphicSize(Std.int(numScore.width * Constants.PIXEL_ART_SCALE * 0.7)); numScore.antialiasing = false; } else diff --git a/source/funkin/play/event/FocusCameraSongEvent.hx b/source/funkin/play/event/FocusCameraSongEvent.hx index 569dcb87a..074fafccf 100644 --- a/source/funkin/play/event/FocusCameraSongEvent.hx +++ b/source/funkin/play/event/FocusCameraSongEvent.hx @@ -127,7 +127,7 @@ class FocusCameraSongEvent extends SongEvent switch (ease) { case 'CLASSIC': // Old-school. No ease. Just set follow point. - PlayState.instance.resetCamera(); + PlayState.instance.resetCamera(false, true); PlayState.instance.cameraFollowPoint.setPosition(targetX, targetY); case 'INSTANT': // Instant ease. Duration is automatically 0. PlayState.instance.tweenCameraToPosition(targetX, targetY, 0); diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx index b16cbe63a..bd558f747 100644 --- a/source/funkin/ui/freeplay/FreeplayState.hx +++ b/source/funkin/ui/freeplay/FreeplayState.hx @@ -456,6 +456,14 @@ class FreeplayState extends MusicBeatSubState default: generateSongList({filterType: REGEXP, filterData: str}, true); } + + // We want to land on the first song of the group, rather than random song when changing letter sorts + // that is, only if there's more than one song in the group! + if (grpCapsules.members.length > 0) + { + curSelected = 1; + changeSelection(); + } }; exitMovers.set([fp, txtCompletion, fnfHighscoreSpr], diff --git a/source/funkin/ui/options/FunkinSoundTray.hx b/source/funkin/ui/options/FunkinSoundTray.hx index 4af94569b..b8c408508 100644 --- a/source/funkin/ui/options/FunkinSoundTray.hx +++ b/source/funkin/ui/options/FunkinSoundTray.hx @@ -20,6 +20,7 @@ class FunkinSoundTray extends FlxSoundTray { var graphicScale:Float = 0.30; var lerpYPos:Float = 0; + var alphaTarget:Float = 0; var volumeMaxSound:String; @@ -40,7 +41,7 @@ class FunkinSoundTray extends FlxSoundTray // makes an alpha'd version of all the bars (bar_10.png) var backingBar:Bitmap = new Bitmap(Assets.getBitmapData(Paths.image("soundtray/bars_10"))); - backingBar.x = 10; + backingBar.x = 9; backingBar.y = 5; backingBar.scaleX = graphicScale; backingBar.scaleY = graphicScale; @@ -56,7 +57,7 @@ class FunkinSoundTray extends FlxSoundTray for (i in 1...11) { var bar:Bitmap = new Bitmap(Assets.getBitmapData(Paths.image("soundtray/bars_" + i))); - bar.x = 10; + bar.x = 9; bar.y = 5; bar.scaleX = graphicScale; bar.scaleY = graphicScale; @@ -77,15 +78,18 @@ class FunkinSoundTray extends FlxSoundTray override public function update(MS:Float):Void { y = MathUtil.coolLerp(y, lerpYPos, 0.1); + alpha = MathUtil.coolLerp(alpha, alphaTarget, 0.25); // Animate sound tray thing if (_timer > 0) { _timer -= (MS / 1000); + alphaTarget = 1; } else if (y > -height) { lerpYPos = -height - 10; + alphaTarget = 0; if (y <= -height) { diff --git a/source/funkin/ui/transition/LoadingState.hx b/source/funkin/ui/transition/LoadingState.hx index 3b53e1b4a..28533e35b 100644 --- a/source/funkin/ui/transition/LoadingState.hx +++ b/source/funkin/ui/transition/LoadingState.hx @@ -326,15 +326,20 @@ class LoadingState extends MusicBeatSubState // I will fix this properly later I swear -eric if (!path.endsWith('.png')) continue; - FunkinSprite.cacheTexture(path); + new Future(function() { + FunkinSprite.cacheTexture(path); + // Another dumb hack: FlxAnimate fetches from OpenFL's BitmapData cache directly and skips the FlxGraphic cache. + // Since FlxGraphic tells OpenFL to not cache it, we have to do it manually. + if (path.endsWith('spritemap1.png')) + { + trace('Preloading FlxAnimate asset: ${path}'); + openfl.Assets.getBitmapData(path, true); + } + return 'Done precaching ${path}'; + }, true); - // Another dumb hack: FlxAnimate fetches from OpenFL's BitmapData cache directly and skips the FlxGraphic cache. - // Since FlxGraphic tells OpenFL to not cache it, we have to do it manually. - if (path.endsWith('spritemap1.png')) - { - trace('Preloading FlxAnimate asset: ${path}'); - openfl.Assets.getBitmapData(path, true); - } + trace("Queued ${path} for precaching"); + // FunkinSprite.cacheTexture(path); } // FunkinSprite.cacheAllNoteStyleTextures(noteStyle) // This will replace the stuff above!