Add modcharting features (using FunkinModchart) (#526)

Technically already in the codes but yeah
This commit is contained in:
theo
2025-08-09 15:13:19 +07:00
committed by GitHub
parent 5acabccd9a
commit ba50edfc99
7 changed files with 40 additions and 3 deletions
+2 -1
View File
@@ -79,4 +79,5 @@ _**QOL = Quality of Life**_
- Features not found in other editors!
- Every single state & substate can be modified via HScript (`data/states/StateName.hx`)
- **Instances launched via `lime test windows` will automatically use assets from source.**
</details>
- Modcharting features powered by [FunkinModchart](https://lib.haxe.org/p/funkin-modchart/).
</details>
+1
View File
@@ -87,4 +87,5 @@ If you don't have a github account please go onto https://codename-engine.com/ a
- Credits to the [FlxAnimate](https://github.com/Dot-Stuff/flxanimate) team for the Animate Atlas support
- Credits to Smokey555 for the backup Animate Atlas to spritesheet code
- Credits to MAJigsaw77 for [hxvlc](https://github.com/MAJigsaw77/hxvlc) (video cutscene/mp4 support) and [hxdiscord_rpc](https://github.com/MAJigsaw77/hxdiscord_rpc) (discord rpc integration)
- Credits to [TheoDev](https://github.com/TheoDevelops) for [FunkinModchart](https://lib.haxe.org/p/funkin-modchart/). ***(library used for modcharting features)***
</details>
+1 -1
View File
@@ -16,7 +16,7 @@
<git name="hscript-improved" url="https://github.com/CodenameCrew/hscript-improved" ref="codename-dev" />
<git name="flxanimate" url="https://github.com/CodenameCrew/cne-flxanimate" />
<git name="hxdiscord_rpc" url="https://github.com/CodenameCrew/cne-hxdiscord_rpc" skipDeps="true" />
<git name="funkin-modchart" url="https://github.com/CodenameCrew/FunkinModchart" skipDeps="true" />
<lib name="funkin-modchart" skipDeps="true" />
<lib name="hxvlc" version="1.9.3" skipDeps="true" />
<!-- Documentation and other features -->
+11
View File
@@ -53,6 +53,13 @@ class Note extends FlxSprite
*/
public var nextSustain:Note;
/**
* The parent of the sustain.
*
* If this note is not sustain, this will be null.
*/
public var sustainParent:Null<Note>;
/**
* Name of the splash.
*/
@@ -125,6 +132,10 @@ class Note extends FlxSprite
for(field in Reflect.fields(noteData)) if(!DEFAULT_FIELDS.contains(field))
this.extra.set(field, Reflect.field(noteData, field));
// work around to set the `sustainParent`
if (isSustainNote)
sustainParent = prevNote.isSustainNote ? prevNote.sustainParent : prevNote;
x += 50;
// MAKE SURE ITS DEFINITELY OFF SCREEN?
y -= 2000;
+7
View File
@@ -39,6 +39,13 @@ class OptionsMenu extends TreeMenu {
state: LanguageOptions
},
#end
#if MODCHARTING_FEATURES
{
name: 'Modchart Settings >',
desc: 'Customize your modcharting experience...',
state: ModchartingOptions
},
#end
{
name: 'optionsTree.miscellaneous-name',
desc: 'optionsTree.miscellaneous-desc',
@@ -60,4 +60,4 @@ class AdvancedAppearanceOptions extends TreeMenuScreen {
private function __changeAntialiasing() {
FlxG.game.stage.quality = (FlxG.enableAntialiasing = Options.antialiasing) ? BEST : LOW;
}
}
}
@@ -0,0 +1,17 @@
package funkin.options.categories;
#if MODCHARTING_FEATURES
class ModchartingOptions extends TreeMenuScreen {
public override function new() {
super("Modcharting Options", "Customize your modcharting experience.");
add(new NumOption(
"Hold Subdivisions",
"Subdivides the arrow's hold/sustain tail for smoother visuals, higher values improve quality but can hurt performance",
1, // minimum
128, // maximum
1, // change
"modchartingHoldSubdivisions" // save name
)); // callback
}
}
#end