using System; using Godot; namespace BITKit; public class UXContextMenuBuilder { public void Build() { UXContextMenu.Singleton.Position = UXContextMenu.MousePosition; UXContextMenu.Singleton.Show(); } } public static class UXContextMenuExtensions { public static UXContextMenuBuilder AddAction(this UXContextMenuBuilder self,string name,Action action) { UXContextMenu.Singleton.AddItem(name); return self; } } [GlobalClass] public partial class UXContextMenu:PopupMenu { public static UXContextMenu Singleton { get; private set; } public static Vector2I MousePosition { get; private set; } public override void _Ready() { Singleton = this; } public static UXContextMenuBuilder Create() { Singleton.Clear(); return new UXContextMenuBuilder(); } public override void _Input(InputEvent @event) { if (@event is InputEventMouseMotion motion) { MousePosition = (Vector2I)motion.Position; } } }