From 63805b806b81ae9d0dff6ccc0aa78a7fa7795232 Mon Sep 17 00:00:00 2001 From: lunarcleint <88809950+lunarcleint@users.noreply.github.com> Date: Tue, 16 Apr 2024 17:38:35 -0700 Subject: [PATCH] wip for display windows --- .../funkin/editors/character/CharacterAnimButton.hx | 12 +++++++++--- .../funkin/editors/character/CharacterAnimsWindow.hx | 11 ++++++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/source/funkin/editors/character/CharacterAnimButton.hx b/source/funkin/editors/character/CharacterAnimButton.hx index ef0deb91..8ac8d0d0 100644 --- a/source/funkin/editors/character/CharacterAnimButton.hx +++ b/source/funkin/editors/character/CharacterAnimButton.hx @@ -102,8 +102,14 @@ class CharacterAnimButton extends UIButton { public override function draw() { super.draw(); - // if (parent.displayAnimsList.contains(anim)) { - // parent.displayAnimsList.animation - // } + if (parent.displayAnimsFramesList.exists(anim)) { + parent.displayWindowSprite.frame = parent.displayWindowSprite.frames.frames[parent.displayAnimsFramesList.get(anim)]; + + parent.displayWindowSprite.scale.x = parent.displayWindowSprite.scale.y = 120/parent.displayWindowSprite.frame.sourceSize.y; + parent.displayWindowSprite.updateHitbox(); + + parent.displayWindowSprite.follow(this, 16+(128/2)-((parent.displayWindowSprite.frame.sourceSize.x*parent.displayWindowSprite.scale.x)/2), 12+18+11+4); + parent.displayWindowSprite.draw(); + } } } \ No newline at end of file diff --git a/source/funkin/editors/character/CharacterAnimsWindow.hx b/source/funkin/editors/character/CharacterAnimsWindow.hx index 8ebe328f..e3e44610 100644 --- a/source/funkin/editors/character/CharacterAnimsWindow.hx +++ b/source/funkin/editors/character/CharacterAnimsWindow.hx @@ -1,12 +1,13 @@ package funkin.editors.character; +import flixel.graphics.frames.FlxFrame; import funkin.game.Character; class CharacterAnimsWindow extends UIButtonList { public var character:Character; public var displayWindowSprite:FlxSprite; - public var displayAnimsList:Array = []; + public var displayAnimsFramesList:Map = []; public function new(x:Float, y:Float, character:Character) { super(x, y, Std.int(500-16), 419, "", FlxPoint.get(Std.int(500-16-32), 184)); @@ -16,8 +17,12 @@ class CharacterAnimsWindow extends UIButtonList { displayWindowSprite = new FlxSprite(); displayWindowSprite.loadGraphicFromSprite(character); - - displayAnimsList = displayWindowSprite.animation.getNameList(); + displayWindowSprite.antialiasing = character.antialiasing; + displayWindowSprite.flipX = character.flipX; + + @:privateAccess + for (name => anim in displayWindowSprite.animation._animations) + displayAnimsFramesList.set(name, anim.frames.getDefault([0])[0]); for (anim in character.getAnimOrder()) add(new CharacterAnimButton(0,0, character.animDatas.get(anim), this));