1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2024-11-14 10:53:21 +00:00
Funkin/source/HealthIcon.hx

88 lines
1.8 KiB
Haxe
Raw Normal View History

2020-12-24 23:24:11 +00:00
package;
import flixel.FlxSprite;
2021-09-02 21:07:32 +00:00
import openfl.utils.Assets;
2020-12-24 23:24:11 +00:00
2021-03-19 01:08:44 +00:00
using StringTools;
2020-12-24 23:24:11 +00:00
class HealthIcon extends FlxSprite
{
2021-03-01 23:59:51 +00:00
/**
* Used for FreeplayState! If you use it elsewhere, prob gonna annoying
*/
public var sprTracker:FlxSprite;
2021-09-21 02:08:24 +00:00
public var char:String = '';
2021-03-19 01:08:44 +00:00
var isPlayer:Bool = false;
2020-12-24 23:24:11 +00:00
public function new(char:String = 'bf', isPlayer:Bool = false)
{
super();
2021-03-19 01:08:44 +00:00
this.isPlayer = isPlayer;
2020-12-24 23:24:11 +00:00
antialiasing = true;
2021-06-23 00:32:37 +00:00
changeIcon(char);
2020-12-24 23:24:11 +00:00
scrollFactor.set();
}
2021-03-01 23:59:51 +00:00
2021-03-19 01:08:44 +00:00
public var isOldIcon:Bool = false;
public function swapOldIcon():Void
{
isOldIcon = !isOldIcon;
if (isOldIcon)
changeIcon('bf-old');
2021-03-19 01:08:44 +00:00
else
changeIcon(PlayState.SONG.player1);
2021-03-19 01:08:44 +00:00
}
2021-06-23 01:11:06 +00:00
var pixelArrayFunny:Array<String> = CoolUtil.coolTextFile(Paths.file('images/icons/pixelIcons.txt'));
public function changeIcon(newChar:String):Void
2021-03-19 01:08:44 +00:00
{
if (newChar != 'bf-pixel' && newChar != 'bf-old')
newChar = newChar.split('-')[0].trim();
2021-09-02 21:07:32 +00:00
if (!Assets.exists(Paths.image('icons/icon-' + newChar)))
{
FlxG.log.warn('No icon with data: $newChar : using default placeholder face instead!');
newChar = "face";
}
if (newChar != char)
2021-03-19 04:03:29 +00:00
{
if (animation.getByName(newChar) == null)
{
2021-06-23 00:18:22 +00:00
var imgSize:Int = 150;
2021-06-23 01:11:06 +00:00
if (newChar.endsWith('pixel') || pixelArrayFunny.contains(newChar))
2021-06-23 00:18:22 +00:00
imgSize = 32;
loadGraphic(Paths.image('icons/icon-' + newChar), true, imgSize, imgSize);
animation.add(newChar, [0, 1], 0, false, isPlayer);
}
animation.play(newChar);
char = newChar;
2021-06-23 00:18:22 +00:00
2021-06-23 01:11:06 +00:00
if (newChar.endsWith('pixel') || pixelArrayFunny.contains(newChar))
2021-06-23 00:21:54 +00:00
antialiasing = false;
else
antialiasing = true;
setGraphicSize(150);
updateHitbox();
2021-03-19 04:03:29 +00:00
}
2021-03-19 01:08:44 +00:00
}
2021-03-01 23:59:51 +00:00
override function update(elapsed:Float)
{
super.update(elapsed);
if (sprTracker != null)
setPosition(sprTracker.x + sprTracker.width + 10, sprTracker.y - 30);
}
2020-12-24 23:24:11 +00:00
}