cool stuff

This commit is contained in:
Yoshman29
2023-03-13 22:51:31 +01:00
parent e0076a4ddf
commit c97eb04e12
9 changed files with 88 additions and 22 deletions
+4 -9
View File
@@ -1,19 +1,14 @@
<!DOCTYPE codename-mod-options>
<!-- NOT WORKING YET -->
<!-- TEMPLATE FOR CUSTOM OPTIONS!!! -->
<menu name="Mod Options" desc="Modify mod options here">
<checkbox id="levelOfIdk" name="Level of idk" />
<choice id="levelOfChoice" name="Level of choice">
<checkbox id="checkboxExample" name="Checkbox example" />
<choice id="choiceExample" name="Choice Example">
<value name="Disabled" value="disabled" />
<value name="This Only" value="thisonly" />
<value name="All" value="all" />
</choice>
<menu name="Submenu" desc="Submenu test">
<menu name="Submenu Example" desc="Submenu test">
<checkbox id="levelOfIdk2" name="Level of idk" />
<choice id="levelOfChoice" name="Level of choice">
<value name="Disabled" value="disabled" />
<value name="This Only" value="thisonly" />
<value name="All" value="all" />
</choice>
</menu>
</menu>
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

+1 -1
View File
@@ -1 +1 @@
2482
2489
+1 -1
View File
@@ -12,7 +12,7 @@ class EditorPicker extends MusicBeatSubstate {
{
name: "Chart Editor",
iconID: 0,
state: null
state: funkin.editors.charter.CharterSelection
},
{
name: "Character Editor",
+24
View File
@@ -0,0 +1,24 @@
package funkin.editors;
import flixel.addons.display.FlxBackdrop;
import funkin.options.*;
class EditorTreeMenu extends TreeMenu {
public var bg:FlxBackdrop;
public var bgType:String = "default";
public override function create() {
super.create();
bg = new FlxBackdrop();
bg.loadGraphic(Paths.image('editors/bgs/${bgType}'));
bg.antialiasing = true;
add(bg);
}
public override function update(elapsed:Float) {
super.update(elapsed);
bg.x += elapsed * 125;
bg.y += elapsed * 125;
}
}
@@ -1,23 +1,55 @@
package funkin.editors.charter;
import flixel.util.FlxColor;
import funkin.menus.FreeplayState.FreeplaySonglist;
import funkin.editors.EditorTreeMenu;
import funkin.options.*;
import funkin.options.type.*;
class CharterSelection extends MusicBeatState {
public var songNames:FlxTypedSpriteGroup<Alphabet>;
public var freeplaySonglist:FreeplaySonglist;
class CharterSelection extends EditorTreeMenu {
public var freeplayList:FreeplaySonglist;
public override function create() {
bgType = "charter";
super.create();
songNames = new FlxTypedSpriteGroup<Alphabet>();
freeplayList = FreeplaySonglist.get();
freeplaySonglist = FreeplaySonglist.get();
main = new OptionsScreen("Chart Editor", "Select a song to modify the charts from.", [
for(s in freeplayList.songs) new IconOption(s.name, "Press ACCEPT to choose a difficulty to edit.", s.icon, function() {
optionsTree.add(new OptionsScreen(s.name, "Select a difficulty to continue, or press 1 to add a new one.", [
for(d in s.difficulties) new TextOption(d, "Press ACCEPT to edit the chart for the selected difficulty", function() {
trace(s.name);
trace(d);
})
]));
})
]);
}
for(k=>s in freeplaySonglist.songs) {
var alphabet = new Alphabet(0, k * 60, s.displayName, true);
songNames.add(alphabet);
public override function update(elapsed:Float) {
super.update(elapsed);
bg.colorTransform.redOffset = lerp(bg.colorTransform.redOffset, 0, 0.0625);
bg.colorTransform.greenOffset = lerp(bg.colorTransform.greenOffset, 0, 0.0625);
bg.colorTransform.blueOffset = lerp(bg.colorTransform.blueOffset, 0, 0.0625);
bg.colorTransform.redMultiplier = lerp(bg.colorTransform.redMultiplier, 1, 0.0625);
bg.colorTransform.greenMultiplier = lerp(bg.colorTransform.greenMultiplier, 1, 0.0625);
bg.colorTransform.blueMultiplier = lerp(bg.colorTransform.blueMultiplier, 1, 0.0625);
}
public override function onMenuChange() {
super.onMenuChange();
if (optionsTree.members.length > 1) { // selected a song
// small flashbang
var color:FlxColor = freeplayList.songs[main.curSelected].parsedColor.getDefault(0xFFFFFFFF);
bg.colorTransform.redOffset = 0.25 * color.red;
bg.colorTransform.greenOffset = 0.25 * color.green;
bg.colorTransform.blueOffset = 0.25 * color.blue;
bg.colorTransform.redMultiplier = FlxMath.lerp(1, color.redFloat, 0.25);
bg.colorTransform.greenMultiplier = FlxMath.lerp(1, color.greenFloat, 0.25);
bg.colorTransform.blueMultiplier = FlxMath.lerp(1, color.blueFloat, 0.25);
}
add(songNames);
}
}
+15
View File
@@ -0,0 +1,15 @@
package funkin.options.type;
import funkin.game.HealthIcon;
class IconOption extends TextOption {
public var iconSpr:HealthIcon;
public function new(name:String, desc:String, icon:String, callback:Void->Void) {
super(name, desc, callback);
iconSpr = new HealthIcon(icon, false);
iconSpr.setPosition(90 - iconSpr.width, (__text.height - iconSpr.height) / 2);
add(iconSpr);
}
}