57 lines
2.2 KiB
Haxe
57 lines
2.2 KiB
Haxe
package funkin.editors.charter;
|
|
|
|
import funkin.backend.system.framerate.Framerate;
|
|
import flixel.util.FlxColor;
|
|
import funkin.menus.FreeplayState.FreeplaySonglist;
|
|
import funkin.editors.EditorTreeMenu;
|
|
import funkin.options.*;
|
|
import funkin.options.type.*;
|
|
|
|
class CharterSelection extends EditorTreeMenu {
|
|
public var freeplayList:FreeplaySonglist;
|
|
public override function create() {
|
|
bgType = "charter";
|
|
|
|
super.create();
|
|
|
|
Framerate.offset.y = 60;
|
|
|
|
freeplayList = FreeplaySonglist.get(false);
|
|
|
|
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() {
|
|
FlxG.switchState(new Charter(s.name, d));
|
|
})
|
|
]));
|
|
})
|
|
]);
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
} |