From eb6becc03fff76117ee3fcbeb32fe254236ca232 Mon Sep 17 00:00:00 2001 From: cyn0x8 Date: Wed, 22 Jan 2025 19:27:05 -0800 Subject: [PATCH] scriptable class changes --- .../base => graphics}/ScriptedFunkinSprite.hx | 4 ++-- source/funkin/modding/PolymodHandler.hx | 5 +++++ source/funkin/modding/base/Object.hx | 13 +++++++++++++ source/funkin/modding/base/ScriptedFlxBasic.hx | 8 ++++++++ source/funkin/modding/base/ScriptedFlxObject.hx | 8 ++++++++ source/funkin/modding/base/ScriptedObject.hx | 8 ++++++++ .../{modding/base => ui}/ScriptedMusicBeatState.hx | 4 ++-- .../base => ui}/ScriptedMusicBeatSubState.hx | 4 ++-- 8 files changed, 48 insertions(+), 6 deletions(-) rename source/funkin/{modding/base => graphics}/ScriptedFunkinSprite.hx (74%) create mode 100644 source/funkin/modding/base/Object.hx create mode 100644 source/funkin/modding/base/ScriptedFlxBasic.hx create mode 100644 source/funkin/modding/base/ScriptedFlxObject.hx create mode 100644 source/funkin/modding/base/ScriptedObject.hx rename source/funkin/{modding/base => ui}/ScriptedMusicBeatState.hx (76%) rename source/funkin/{modding/base => ui}/ScriptedMusicBeatSubState.hx (75%) diff --git a/source/funkin/modding/base/ScriptedFunkinSprite.hx b/source/funkin/graphics/ScriptedFunkinSprite.hx similarity index 74% rename from source/funkin/modding/base/ScriptedFunkinSprite.hx rename to source/funkin/graphics/ScriptedFunkinSprite.hx index 2ce84db3e..274859384 100644 --- a/source/funkin/modding/base/ScriptedFunkinSprite.hx +++ b/source/funkin/graphics/ScriptedFunkinSprite.hx @@ -1,8 +1,8 @@ -package funkin.modding.base; +package funkin.graphics; /** * A script that can be tied to a FunkinSprite. * Create a scripted class that extends FunkinSprite to use this. */ @:hscriptClass -class ScriptedFunkinSprite extends funkin.graphics.FunkinSprite implements HScriptedClass {} +class ScriptedFunkinSprite extends funkin.graphics.FunkinSprite implements polymod.hscript.HScriptedClass {} diff --git a/source/funkin/modding/PolymodHandler.hx b/source/funkin/modding/PolymodHandler.hx index ece4c4824..d6a548e0b 100644 --- a/source/funkin/modding/PolymodHandler.hx +++ b/source/funkin/modding/PolymodHandler.hx @@ -260,6 +260,11 @@ class PolymodHandler Polymod.addImportAlias('lime.utils.Assets', funkin.Assets); Polymod.addImportAlias('openfl.utils.Assets', funkin.Assets); + // Backward compatibility for certain scripted classes outside `funkin.modding.base`. + Polymod.addImportAlias('funkin.modding.base.ScriptedFunkinSprite', funkin.graphics.ScriptedFunkinSprite); + Polymod.addImportAlias('funkin.modding.base.ScriptedMusicBeatState', funkin.ui.ScriptedMusicBeatState); + Polymod.addImportAlias('funkin.modding.base.ScriptedMusicBeatSubState', funkin.ui.ScriptedMusicBeatSubState); + // `funkin.util.FileUtil` has unrestricted access to the file system. Polymod.addImportAlias('funkin.util.FileUtil', funkin.util.FileUtilSandboxed); diff --git a/source/funkin/modding/base/Object.hx b/source/funkin/modding/base/Object.hx new file mode 100644 index 000000000..1484f9882 --- /dev/null +++ b/source/funkin/modding/base/Object.hx @@ -0,0 +1,13 @@ +package funkin.modding.base; + +/** + * An empty base class meant to be extended by scripts. + */ + +class Object { + public function new() {} + + public function toString():String { + return "(Object)"; + } +} diff --git a/source/funkin/modding/base/ScriptedFlxBasic.hx b/source/funkin/modding/base/ScriptedFlxBasic.hx new file mode 100644 index 000000000..af0360554 --- /dev/null +++ b/source/funkin/modding/base/ScriptedFlxBasic.hx @@ -0,0 +1,8 @@ +package funkin.modding.base; + +/** + * A script that can be tied to an FlxBasic. + * Create a scripted class that extends FlxBasic to use this. + */ +@:hscriptClass +class ScriptedFlxBasic extends flixel.FlxBasic implements HScriptedClass {} diff --git a/source/funkin/modding/base/ScriptedFlxObject.hx b/source/funkin/modding/base/ScriptedFlxObject.hx new file mode 100644 index 000000000..9dd6b32ae --- /dev/null +++ b/source/funkin/modding/base/ScriptedFlxObject.hx @@ -0,0 +1,8 @@ +package funkin.modding.base; + +/** + * A script that can be tied to an FlxObject. + * Create a scripted class that extends FlxObject to use this. + */ +@:hscriptClass +class ScriptedFlxObject extends flixel.FlxObject implements HScriptedClass {} diff --git a/source/funkin/modding/base/ScriptedObject.hx b/source/funkin/modding/base/ScriptedObject.hx new file mode 100644 index 000000000..ac120dd4a --- /dev/null +++ b/source/funkin/modding/base/ScriptedObject.hx @@ -0,0 +1,8 @@ +package funkin.modding.base; + +/** + * A script that can be tied to an Object (empty base class). + * Create a scripted class that extends Object to use this. + */ +@:hscriptClass +class ScriptedObject extends funkin.modding.base.Object implements HScriptedClass {} diff --git a/source/funkin/modding/base/ScriptedMusicBeatState.hx b/source/funkin/ui/ScriptedMusicBeatState.hx similarity index 76% rename from source/funkin/modding/base/ScriptedMusicBeatState.hx rename to source/funkin/ui/ScriptedMusicBeatState.hx index 6dc6826c4..aa9165cee 100644 --- a/source/funkin/modding/base/ScriptedMusicBeatState.hx +++ b/source/funkin/ui/ScriptedMusicBeatState.hx @@ -1,8 +1,8 @@ -package funkin.modding.base; +package funkin.ui; /** * A script that can be tied to a MusicBeatState. * Create a scripted class that extends MusicBeatState to use this. */ @:hscriptClass -class ScriptedMusicBeatState extends funkin.ui.MusicBeatState implements HScriptedClass {} +class ScriptedMusicBeatState extends funkin.ui.MusicBeatState implements polymod.hscript.HScriptedClass {} diff --git a/source/funkin/modding/base/ScriptedMusicBeatSubState.hx b/source/funkin/ui/ScriptedMusicBeatSubState.hx similarity index 75% rename from source/funkin/modding/base/ScriptedMusicBeatSubState.hx rename to source/funkin/ui/ScriptedMusicBeatSubState.hx index 79c98ea3f..c28373779 100644 --- a/source/funkin/modding/base/ScriptedMusicBeatSubState.hx +++ b/source/funkin/ui/ScriptedMusicBeatSubState.hx @@ -1,8 +1,8 @@ -package funkin.modding.base; +package funkin.ui; /** * A script that can be tied to a MusicBeatSubState. * Create a scripted class that extends MusicBeatSubState to use this. */ @:hscriptClass -class ScriptedMusicBeatSubState extends funkin.ui.MusicBeatSubState implements HScriptedClass {} +class ScriptedMusicBeatSubState extends funkin.ui.MusicBeatSubState implements polymod.hscript.HScriptedClass {}