Files
CodenameEngine/source/funkin/editors/ui/UIContextMenu.hx
T
2023-03-18 01:28:13 +01:00

44 lines
1.1 KiB
Haxe

package funkin.editors.ui;
class UIContextMenu extends MusicBeatSubstate {
var options:Array<UIContextMenuOption>;
var x:Float;
var y:Float;
var contextCam:FlxCamera;
var bg:UISpliceSprite;
public function new(options:Array<UIContextMenuOption>, x:Float, y:Float) {
super();
this.options = options.getDefault([]);
this.x = x;
this.y = y;
}
public override function create() {
super.create();
camera = contextCam = new FlxCamera();
contextCam.bgColor = 0;
contextCam.alpha = 0;
FlxG.cameras.add(contextCam, false);
bg = new UISpliceSprite(x, y, 100, 100, 'editors/ui/context-bg');
add(bg);
}
public override function update(elapsed:Float) {
if (FlxG.mouse.pressed && !bg.hoveredByChild)
close();
super.update(elapsed);
contextCam.alpha = CoolUtil.fpsLerp(contextCam.alpha, 1, 0.25);
}
}
typedef UIContextMenuOption = {
var label:String;
var ?icon:Int;
var ?onSelect:Void->Void;
var ?childs:Array<UIContextMenuOption>;
}