Funkin/source/funkin/CutsceneCharacter.hx

80 lines
1.9 KiB
Haxe
Raw Normal View History

package funkin;
2021-04-06 18:12:31 -04:00
import flixel.FlxSprite;
import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.math.FlxPoint;
using StringTools;
class CutsceneCharacter extends FlxTypedGroup<FlxSprite>
{
public var coolPos:FlxPoint = FlxPoint.get();
public var animShit:Map<String, FlxPoint> = new Map();
private var imageShit:String;
public function new(x:Float, y:Float, imageShit:String)
{
super();
coolPos.set(x, y);
this.imageShit = imageShit;
parseOffsets();
createCutscene(0);
}
// shitshow, oh well
var arrayLMFAOOOO:Array<String> = [];
function parseOffsets()
{
var splitShit:Array<String> = CoolUtil.coolTextFile(Paths.file('images/cutsceneStuff/' + imageShit + "CutsceneOffsets.txt"));
for (i in splitShit)
{
var xAndY:FlxPoint = FlxPoint.get();
var dumbSplit:Array<String> = i.split('---')[1].trim().split(' ');
2021-04-08 20:48:11 -04:00
trace('cool split: ' + i.split('---')[1]);
trace(dumbSplit);
2021-04-06 18:12:31 -04:00
xAndY.set(Std.parseFloat(dumbSplit[0]), Std.parseFloat(dumbSplit[1]));
animShit.set(i.split('---')[0].trim(), xAndY);
arrayLMFAOOOO.push(i.split('---')[0].trim());
}
trace(animShit);
}
public function createCutscene(daNum:Int = 0)
{
var cutScene:FlxSprite = new FlxSprite(coolPos.x + animShit.get(arrayLMFAOOOO[daNum]).x, coolPos.y + animShit.get(arrayLMFAOOOO[daNum]).y);
cutScene.frames = Paths.getSparrowAtlas('cutsceneStuff/' + imageShit + "-" + daNum);
cutScene.animation.addByPrefix('weed', arrayLMFAOOOO[daNum], 24, false);
cutScene.animation.play('weed');
2021-04-07 20:19:49 -04:00
cutScene.antialiasing = true;
2021-04-06 18:12:31 -04:00
cutScene.animation.finishCallback = function(anim:String)
{
2021-04-08 20:58:07 -04:00
cutScene.kill();
cutScene.destroy();
2021-04-10 01:49:57 -04:00
cutScene = null;
2021-04-06 18:12:31 -04:00
if (daNum + 1 < arrayLMFAOOOO.length)
createCutscene(daNum + 1);
2021-04-09 03:03:27 -04:00
else
ended();
2021-04-06 18:12:31 -04:00
};
add(cutScene);
}
2021-04-09 03:03:27 -04:00
public var onFinish:Void->Void;
public function ended():Void
{
if (onFinish != null)
onFinish();
}
2021-04-06 18:12:31 -04:00
}