UEObjectCreateMenuItem.UEObjectCreateMenuItem

Undocumented in source.
template UEObjectCreateMenuItem()
enum UEObjectCreateMenuItem = q{ static if(!is(typeof(this) == UEComponent) && is(typeof(this) : UEComponent)) { version(UEIncludeEditor)import unecht.core.components.editor.menus; version(UEIncludeEditor)import unecht.meta.uda; version(UEIncludeEditor)override void getMenuItems(ref EditorMenuItem[] items) { super.getMenuItems(items); alias T = typeof(this); foreach(m; __traits(derivedMembers, T)) { static if(__traits(isStaticFunction, __traits(getMember, T, m))) { static if(hasUDA!(__traits(getMember, T, m), MenuItem)) { alias MemberType = typeof(&__traits(getMember, T, m)); static if(is(MemberType : MenuItemFunc)) { alias uda = getUDA!(__traits(getMember, T, m), MenuItem); items ~= EditorMenuItem(uda.name, &__traits(getMember, T, m), uda.validate); } else { static assert(false, format("%s.%s is annotated as MenuItem but has type: '%s' expected '%s'", T.stringof,m,MemberType.stringof,MenuItemFunc.stringof)); } } } } } } };

Meta