11using System . Reflection ;
2- using LabApi . Events . Arguments . Interfaces ;
32using Newtonsoft . Json ;
43using SER . Code . ArgumentSystem . Arguments ;
54using SER . Code . ArgumentSystem . BaseArguments ;
@@ -32,6 +31,7 @@ public static void CreateFiles()
3231 {
3332 SER . Code . EventSystem . EventHandler . Initialize ( ) ;
3433 SER . Code . EventSystem . EventHandler . LoadOptionalProjectMerEventsForTooling ( ) ;
34+ SER . Code . EventSystem . EventHandler . LoadOptionalUcrEventsForTooling ( ) ;
3535 }
3636 catch ( Exception ex )
3737 {
@@ -44,6 +44,8 @@ public static void CreateFiles()
4444 EventDetails = GetEventDetails ( SER . Code . EventSystem . EventHandler . AvailableEvents ) ,
4545 PMEREvents = SER . Code . EventSystem . EventHandler . AvailablePmerEvents . Select ( e => e . Name ) . Distinct ( ) . OrderBy ( n => n ) . ToArray ( ) ,
4646 PMEREventDetails = GetEventDetails ( SER . Code . EventSystem . EventHandler . AvailablePmerEvents ) ,
47+ UCREvents = SER . Code . EventSystem . EventHandler . AvailableUcrEvents . Select ( e => e . Name ) . Distinct ( ) . OrderBy ( n => n ) . ToArray ( ) ,
48+ UCREventDetails = GetEventDetails ( SER . Code . EventSystem . EventHandler . AvailableUcrEvents ) ,
4749 Methods = GetToolingMethods ( ) . Select ( m =>
4850 {
4951 return new
@@ -974,6 +976,8 @@ function getMethodTooltip(block, method) {
974976 ? metadata.Events
975977 : flag.Name === "OnPMER"
976978 ? metadata.PMEREvents
979+ : flag.Name === "OnUCR"
980+ ? metadata.UCREvents
977981 : null;
978982 if (availableEvents?.length) {
979983 const eventOptions = availableEvents.map(e => [e, e]);
@@ -994,10 +998,12 @@ function getMethodTooltip(block, method) {
994998 this.setColour(290);
995999 this.setTooltip(() => {
9961000 let tooltip = flag.Description.replace(/\n(?!\n)/g, '\n\n');
997- if (flag.Name === "OnEvent" || flag.Name === "OnPMER") {
1001+ if (flag.Name === "OnEvent" || flag.Name === "OnPMER" || flag.Name === "OnUCR" ) {
9981002 const selectedEvent = block.getFieldValue("INLINE");
9991003 const eventDetails = (flag.Name === "OnPMER"
10001004 ? metadata.PMEREventDetails
1005+ : flag.Name === "OnUCR"
1006+ ? metadata.UCREventDetails
10011007 : metadata.EventDetails)?.[selectedEvent];
10021008 if (eventDetails?.description) {
10031009 tooltip += `\n\n${eventDetails.description}`;
@@ -1604,14 +1610,13 @@ private static Dictionary<string, object> GetEventDetails(IEnumerable<EventInfo>
16041610 var eventArgsType = eventInfo . EventHandlerType ? . GetGenericArguments ( ) . FirstOrDefault ( ) ;
16051611 return new
16061612 {
1607- description = XmlDocReader . GetDocumentation ( eventInfo ) ,
1613+ description = SER . Code . EventSystem . EventHandler . GetEventDescription ( eventInfo ) ,
16081614 group = eventInfo . DeclaringType ? . Name ,
16091615 eventDataType = eventArgsType ? . AccurateName ,
16101616 eventDataDescription = eventArgsType is null
16111617 ? null
16121618 : XmlDocReader . GetDocumentation ( eventArgsType ) ,
1613- isCancellable = eventArgsType is not null &&
1614- typeof ( ICancellableEvent ) . IsAssignableFrom ( eventArgsType ) ,
1619+ isCancellable = SER . Code . EventSystem . EventHandler . IsCancellableEvent ( eventInfo ) ,
16151620 variables = SER . Code . EventSystem . EventHandler . GetMimicVariableInfo ( eventInfo )
16161621 . Select ( variable => new
16171622 {
@@ -1759,6 +1764,11 @@ private static void CreateSerMethodInfo()
17591764 . Distinct ( )
17601765 . OrderBy ( name => name ) ;
17611766 var pmerEventDetails = GetEventDetails ( SER . Code . EventSystem . EventHandler . AvailablePmerEvents ) ;
1767+ var ucrEvents = SER . Code . EventSystem . EventHandler . AvailableUcrEvents
1768+ . Select ( eventInfo => eventInfo . Name )
1769+ . Distinct ( )
1770+ . OrderBy ( name => name ) ;
1771+ var ucrEventDetails = GetEventDetails ( SER . Code . EventSystem . EventHandler . AvailableUcrEvents ) ;
17621772
17631773 var truthTable = new
17641774 {
@@ -1770,7 +1780,9 @@ private static void CreateSerMethodInfo()
17701780 events ,
17711781 eventDetails ,
17721782 pmerEvents ,
1773- pmerEventDetails
1783+ pmerEventDetails ,
1784+ ucrEvents ,
1785+ ucrEventDetails
17741786 } ;
17751787 var json = JsonConvert . SerializeObject ( truthTable , Formatting . Indented ) ;
17761788 var content = $ "const SER_TRUTH_TABLE = { json } ;{ Environment . NewLine } { Environment . NewLine } " +
0 commit comments