Skip to content

Commit

Permalink
reset icon texture when loading pixel icon files
Browse files Browse the repository at this point in the history
  • Loading branch information
lemz1 committed Nov 13, 2024
1 parent 1ef3f56 commit ca446ab
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 30 deletions.
2 changes: 2 additions & 0 deletions source/funkin/ui/debug/char/pages/CharCreatorSelectPage.hx
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ class CharCreatorSelectPage extends CharCreatorDefaultPage
if (FileUtil.doesFileExist(daXmlPath)) pixelIconFiles.push({name: daXmlPath, bytes: FileUtil.readBytesFromPath(daXmlPath)});

openFile.tooltip = "File Path: " + daImgPath;

cast(subPages[IndexSubPage], CharSelectIndexSubPage).resetIconTexture();
});
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -327,36 +327,7 @@ class CharSelectIndexSubPage extends FlxSpriteGroup
// also do we even need icontint anymore?
if (parentPage.pixelIconFiles.length > 0) // custom icons should have the priority over preset ones i think
{
var pngBytes = parentPage.pixelIconFiles[0].bytes;
var xmlBytes = parentPage.pixelIconFiles[1]?.bytes ?? null;
var graphic = openfl.display.BitmapData.fromBytes(pngBytes);

if (xmlBytes == null)
{
icon.loadGraphic(graphic);
iconTint.loadGraphic(graphic);
}
else
{
icon.frames = iconTint.frames = flixel.graphics.frames.FlxAtlasFrames.fromSparrow(graphic, xmlBytes.toString());
icon.animation.addByPrefix('idle', 'idle0', 10, true);
icon.animation.addByPrefix('confirm', 'confirm0', 10, false);
icon.animation.addByPrefix('confirm-hold', 'confirm-hold0', 10, true);

iconTint.animation.addByPrefix('idle', 'idle0', 10, true);
iconTint.animation.addByPrefix('confirm', 'confirm0', 10, false);
iconTint.animation.addByPrefix('confirm-hold', 'confirm-hold0', 10, true);

icon.animation.finishCallback = function(name:String):Void {
if (name == 'confirm') icon.animation.play('confirm-hold');
};
iconTint.animation.finishCallback = function(name:String):Void {
if (name == 'confirm') icon.animation.play('confirm-hold');
};

icon.animation.play('idle');
iconTint.animation.play('idle');
}
resetIconTexture();
}
else if (parentPage.data.importedPlayerData != null)
{
Expand Down Expand Up @@ -427,4 +398,36 @@ class CharSelectIndexSubPage extends FlxSpriteGroup

iconTint.scale.set(selectedIcon.scale.x, selectedIcon.scale.y);
}

public function resetIconTexture():Void
{
var icon:PixelatedIcon = cast grpIcons.members[parentPage.selectedIndexData];

var pngBytes = parentPage.pixelIconFiles[0].bytes;
var xmlBytes = parentPage.pixelIconFiles[1]?.bytes ?? null;
var graphic = openfl.display.BitmapData.fromBytes(pngBytes);
if (xmlBytes == null)
{
icon.loadGraphic(graphic);
iconTint.loadGraphic(graphic);
}
else
{
icon.frames = iconTint.frames = flixel.graphics.frames.FlxAtlasFrames.fromSparrow(graphic, xmlBytes.toString());
icon.animation.addByPrefix('idle', 'idle0', 10, true);
icon.animation.addByPrefix('confirm', 'confirm0', 10, false);
icon.animation.addByPrefix('confirm-hold', 'confirm-hold0', 10, true);
iconTint.animation.addByPrefix('idle', 'idle0', 10, true);
iconTint.animation.addByPrefix('confirm', 'confirm0', 10, false);
iconTint.animation.addByPrefix('confirm-hold', 'confirm-hold0', 10, true);
icon.animation.finishCallback = function(name:String):Void {
if (name == 'confirm') icon.animation.play('confirm-hold');
};
iconTint.animation.finishCallback = function(name:String):Void {
if (name == 'confirm') icon.animation.play('confirm-hold');
};
icon.animation.play('idle');
iconTint.animation.play('idle');
}
}
}

0 comments on commit ca446ab

Please sign in to comment.