Merge branch 'rewrite/master' into cutscene-updates

This commit is contained in:
Cameron Taylor 2024-04-29 22:21:06 -04:00
commit 12f5904aa5
11 changed files with 36 additions and 19 deletions

0
.github/hooks/post-checkout vendored Normal file → Executable file
View file

0
.github/hooks/post-merge vendored Normal file → Executable file
View file

0
.github/hooks/pre-push vendored Normal file → Executable file
View file

View file

@ -124,7 +124,7 @@
<haxelib name="polymod" /> <!-- Modding framework --> <haxelib name="polymod" /> <!-- Modding framework -->
<haxelib name="flxanimate" /> <!-- Texture atlas rendering --> <haxelib name="flxanimate" /> <!-- Texture atlas rendering -->
<haxelib name="hxCodec" if="desktop" unless="hl" /> <!-- Video playback --> <haxelib name="hxCodec" if="desktop" unless="hl" /> <!-- Video playback -->
<haxelib name="funkVis"/> <haxelib name="funkin.vis"/>
<haxelib name="json2object" /> <!-- JSON parsing --> <haxelib name="json2object" /> <!-- JSON parsing -->

View file

@ -46,10 +46,10 @@
"version": "3.5.0" "version": "3.5.0"
}, },
{ {
"name": "funkVis", "name": "funkin.vis",
"type": "git", "type": "git",
"dir": null, "dir": null,
"ref": "7fc9901553fbe9b8fcf6e2e84bc86eabeaf29701", "ref": "98c9db09f0bbfedfe67a84538a5814aaef80bdea",
"url": "https://github.com/FunkinCrew/funkVis" "url": "https://github.com/FunkinCrew/funkVis"
}, },
{ {

View file

@ -8,8 +8,8 @@ import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup;
import flixel.math.FlxMath; import flixel.math.FlxMath;
import flixel.sound.FlxSound; import flixel.sound.FlxSound;
import funkin.util.MathUtil; import funkin.util.MathUtil;
import funkVis.dsp.SpectralAnalyzer; import funkin.vis.dsp.SpectralAnalyzer;
import funkVis.audioclip.frontends.LimeAudioClip; import funkin.vis.audioclip.frontends.LimeAudioClip;
using Lambda; using Lambda;
@ -90,7 +90,7 @@ class ABotVis extends FlxTypedSpriteGroup<FlxSprite>
} }
/** /**
* 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 function drawFFT():Void
{ {

View file

@ -42,7 +42,7 @@ class PopUpStuff extends FlxTypedGroup<FlxSprite>
if (PlayState.instance.currentStageId.startsWith('school')) 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; rating.antialiasing = false;
} }
else else
@ -133,7 +133,7 @@ class PopUpStuff extends FlxTypedGroup<FlxSprite>
if (PlayState.instance.currentStageId.startsWith('school')) 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; numScore.antialiasing = false;
} }
else else

View file

@ -127,7 +127,7 @@ class FocusCameraSongEvent extends SongEvent
switch (ease) switch (ease)
{ {
case 'CLASSIC': // Old-school. No ease. Just set follow point. case 'CLASSIC': // Old-school. No ease. Just set follow point.
PlayState.instance.resetCamera(); PlayState.instance.resetCamera(false, true);
PlayState.instance.cameraFollowPoint.setPosition(targetX, targetY); PlayState.instance.cameraFollowPoint.setPosition(targetX, targetY);
case 'INSTANT': // Instant ease. Duration is automatically 0. case 'INSTANT': // Instant ease. Duration is automatically 0.
PlayState.instance.tweenCameraToPosition(targetX, targetY, 0); PlayState.instance.tweenCameraToPosition(targetX, targetY, 0);

View file

@ -456,6 +456,14 @@ class FreeplayState extends MusicBeatSubState
default: default:
generateSongList({filterType: REGEXP, filterData: str}, true); 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], exitMovers.set([fp, txtCompletion, fnfHighscoreSpr],

View file

@ -20,6 +20,7 @@ class FunkinSoundTray extends FlxSoundTray
{ {
var graphicScale:Float = 0.30; var graphicScale:Float = 0.30;
var lerpYPos:Float = 0; var lerpYPos:Float = 0;
var alphaTarget:Float = 0;
var volumeMaxSound:String; var volumeMaxSound:String;
@ -40,7 +41,7 @@ class FunkinSoundTray extends FlxSoundTray
// makes an alpha'd version of all the bars (bar_10.png) // makes an alpha'd version of all the bars (bar_10.png)
var backingBar:Bitmap = new Bitmap(Assets.getBitmapData(Paths.image("soundtray/bars_10"))); var backingBar:Bitmap = new Bitmap(Assets.getBitmapData(Paths.image("soundtray/bars_10")));
backingBar.x = 10; backingBar.x = 9;
backingBar.y = 5; backingBar.y = 5;
backingBar.scaleX = graphicScale; backingBar.scaleX = graphicScale;
backingBar.scaleY = graphicScale; backingBar.scaleY = graphicScale;
@ -56,7 +57,7 @@ class FunkinSoundTray extends FlxSoundTray
for (i in 1...11) for (i in 1...11)
{ {
var bar:Bitmap = new Bitmap(Assets.getBitmapData(Paths.image("soundtray/bars_" + i))); var bar:Bitmap = new Bitmap(Assets.getBitmapData(Paths.image("soundtray/bars_" + i)));
bar.x = 10; bar.x = 9;
bar.y = 5; bar.y = 5;
bar.scaleX = graphicScale; bar.scaleX = graphicScale;
bar.scaleY = graphicScale; bar.scaleY = graphicScale;
@ -77,15 +78,18 @@ class FunkinSoundTray extends FlxSoundTray
override public function update(MS:Float):Void override public function update(MS:Float):Void
{ {
y = MathUtil.coolLerp(y, lerpYPos, 0.1); y = MathUtil.coolLerp(y, lerpYPos, 0.1);
alpha = MathUtil.coolLerp(alpha, alphaTarget, 0.25);
// Animate sound tray thing // Animate sound tray thing
if (_timer > 0) if (_timer > 0)
{ {
_timer -= (MS / 1000); _timer -= (MS / 1000);
alphaTarget = 1;
} }
else if (y > -height) else if (y > -height)
{ {
lerpYPos = -height - 10; lerpYPos = -height - 10;
alphaTarget = 0;
if (y <= -height) if (y <= -height)
{ {

View file

@ -326,8 +326,8 @@ class LoadingState extends MusicBeatSubState
// I will fix this properly later I swear -eric // I will fix this properly later I swear -eric
if (!path.endsWith('.png')) continue; if (!path.endsWith('.png')) continue;
new Future<String>(function() {
FunkinSprite.cacheTexture(path); FunkinSprite.cacheTexture(path);
// Another dumb hack: FlxAnimate fetches from OpenFL's BitmapData cache directly and skips the FlxGraphic cache. // 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. // Since FlxGraphic tells OpenFL to not cache it, we have to do it manually.
if (path.endsWith('spritemap1.png')) if (path.endsWith('spritemap1.png'))
@ -335,6 +335,11 @@ class LoadingState extends MusicBeatSubState
trace('Preloading FlxAnimate asset: ${path}'); trace('Preloading FlxAnimate asset: ${path}');
openfl.Assets.getBitmapData(path, true); openfl.Assets.getBitmapData(path, true);
} }
return 'Done precaching ${path}';
}, true);
trace("Queued ${path} for precaching");
// FunkinSprite.cacheTexture(path);
} }
// FunkinSprite.cacheAllNoteStyleTextures(noteStyle) // This will replace the stuff above! // FunkinSprite.cacheAllNoteStyleTextures(noteStyle) // This will replace the stuff above!