multithreaded credits loading

This commit is contained in:
Yoshman29
2022-12-24 15:00:25 +01:00
parent 8729eedbed
commit e8678da5c0
2 changed files with 27 additions and 4 deletions
+1 -1
View File
@@ -1 +1 @@
1761
1763
+26 -3
View File
@@ -1,5 +1,6 @@
package funkin.menus.credits;
import flixel.graphics.FlxGraphic;
import flixel.FlxG;
import openfl.display.BitmapData;
import flixel.FlxSprite;
@@ -8,6 +9,9 @@ import funkin.github.GitHub;
import funkin.menus.MainMenuState;
class CreditsCodename extends MusicBeatState {
public var contributorsSprites:Array<FlxSprite> = [];
public var contributorsAvatars:Array<FlxGraphic> = [];
public var avatarLoadListId:Int = 0;
public override function create() {
super.create();
@@ -23,14 +27,21 @@ class CreditsCodename extends MusicBeatState {
trace(e);
});
for(k=>c in contributors) {
var bmap = BitmapData.fromBytes(GitHub.__requestBytesOnGitHubServers('${c.avatar_url}&size=64'));
var spr = new FlxSprite(0, k * 50);
spr.antialiasing = true;
spr.loadGraphic(FlxG.bitmap.add(bmap, false, 'GITHUB-USER:${c.login}'));
spr.setUnstretchedGraphicSize(50, 50, false);
contributorsSprites.push(spr);
add(spr);
}
Main.execAsync(function() {
for(k=>c in contributors) {
var bytes = GitHub.__requestBytesOnGitHubServers('${c.avatar_url}&size=64');
var bmap = BitmapData.fromBytes(bytes);
contributorsAvatars.push(FlxG.bitmap.add(bmap, false, 'GITHUB-USER:${c.login}'));
if (destroyed) return;
}
});
}
public override function update(elapsed:Float) {
@@ -40,5 +51,17 @@ class CreditsCodename extends MusicBeatState {
FlxTransitionableState.skipNextTransIn = FlxTransitionableState.skipNextTransOut = true;
FlxG.switchState(new MainMenuState());
}
if (avatarLoadListId < contributorsAvatars.length) {
for(i in avatarLoadListId...contributorsAvatars.length) {
var v = contributorsSprites[i];
v.loadGraphic(contributorsAvatars[i]);
v.setUnstretchedGraphicSize(50, 50, false);
}
avatarLoadListId = contributorsAvatars.length;
}
}
public override function destroy() {
super.destroy();
}
}