From 3e5dc6f79faf3e24700891ce200b65d35c3908f3 Mon Sep 17 00:00:00 2001 From: Ne_Eo Date: Wed, 28 Aug 2024 12:06:47 +0200 Subject: [PATCH 1/2] Fix bug with looping with atlases --- source/funkin/backend/FunkinSprite.hx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/source/funkin/backend/FunkinSprite.hx b/source/funkin/backend/FunkinSprite.hx index 6a634e1a..0d59650d 100644 --- a/source/funkin/backend/FunkinSprite.hx +++ b/source/funkin/backend/FunkinSprite.hx @@ -94,16 +94,15 @@ class FunkinSprite extends FlxSkewedSprite implements IBeatReceiver implements I public override function update(elapsed:Float) { super.update(elapsed); + if (animateAtlas != null) + animateAtlas.update(elapsed); // hate how it looks like but hey at least its optimized and fast - Nex if (!debugMode && isAnimFinished()) { var name = getAnimName() + '-loop'; - if (animation.exists(name)) + if (hasAnimation(name)) playAnim(name, false, lastAnimContext); } - - if (animateAtlas != null) - animateAtlas.update(elapsed); } public function loadSprite(path:String, Unique:Bool = false, Key:String = null) From e749a0e7e32c336b4e3b5f32a8a09be2cfb8693e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=8B=E3=82=B3=E3=83=A9=E3=82=B9=E2=98=85?= <61890175+Nikorasu-d@users.noreply.github.com> Date: Sat, 31 Aug 2024 12:46:51 -0400 Subject: [PATCH 2/2] Added optional Extra Data support to ModState/ModSubState (#374) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added Optional JSON Data to ModStates/ModSubState * Formatting fixes * Wanted changes * small little comment * Enhanced Comments * Duplicated null * Undo delete null setter - sorry * some changes Co-Authored-By: Ne_Eo * merp --------- Co-authored-by: Ne_Eo Co-authored-by: ⍚~Nex <87421482+NexIsDumb@users.noreply.github.com> --- source/funkin/backend/scripting/ModState.hx | 34 +++++++++++++++++-- .../funkin/backend/scripting/ModSubState.hx | 34 +++++++++++++++++-- 2 files changed, 62 insertions(+), 6 deletions(-) diff --git a/source/funkin/backend/scripting/ModState.hx b/source/funkin/backend/scripting/ModState.hx index adc0a42c..94a6ac7b 100644 --- a/source/funkin/backend/scripting/ModState.hx +++ b/source/funkin/backend/scripting/ModState.hx @@ -1,10 +1,38 @@ package funkin.backend.scripting; class ModState extends MusicBeatState { + + /** + * Name of HScript file in assets/data/states. + */ public static var lastName:String = null; - public function new(stateName:String) { - if (stateName != null) - lastName = stateName; + /** + * Last Optional extra data. + */ + public static var lastData:Dynamic = null; + + /** + * Optional extra data. + */ + public var data:Dynamic = null; + + /** + * ModState Constructor. + * Inherits from MusicBeatState and allows the execution of an HScript from assets/data/states passed via parameters. + * + * @param _stateName Name or path to a HScript file from assets/data/states. + * @param _data Optional extra Dynamic data passed from a previous state (JSON suggested). + */ + public function new(_stateName:String, ?_data:Dynamic) { + if(_stateName != null && _stateName != lastName) { + lastName = _stateName; + lastData = null; + } + + if(_data != null) + lastData = _data; + + data = lastData; super(true, lastName); } } \ No newline at end of file diff --git a/source/funkin/backend/scripting/ModSubState.hx b/source/funkin/backend/scripting/ModSubState.hx index 5f06072c..acd90f62 100644 --- a/source/funkin/backend/scripting/ModSubState.hx +++ b/source/funkin/backend/scripting/ModSubState.hx @@ -1,10 +1,38 @@ package funkin.backend.scripting; class ModSubState extends MusicBeatSubstate { + + /** + * Name of HScript file in assets/data/states. + */ public static var lastName:String = null; - public function new(stateName:String) { - if (stateName != null) - lastName = stateName; + /** + * Last Optional extra data. + */ + public static var lastData:Dynamic = null; + + /** + * Optional extra data. + */ + public var data:Dynamic = null; + + /** + * ModSubState Constructor. + * Inherits from MusicBeatSubstate and allows the execution of an HScript from assets/data/states passed via parameters. + * + * @param _stateName Name or path to a HScript file from assets/data/states. + * @param _data Optional extra Dynamic data passed from a previous state (JSON suggested). + */ + public function new(_stateName:String, ?_data:Dynamic) { + if(_stateName != null && _stateName != lastName) { + lastName = _stateName; + lastData = null; + } + + if(_data != null) + lastData = _data; + + data = lastData; super(true, lastName); } } \ No newline at end of file