Skip to content

Commit a69030c

Browse files
update and improve UCR integration
1 parent ec815f6 commit a69030c

30 files changed

Lines changed: 1835 additions & 105 deletions

Code/Builders/Builder.cs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System.Reflection;
2-
using LabApi.Events.Arguments.Interfaces;
32
using Newtonsoft.Json;
43
using SER.Code.ArgumentSystem.Arguments;
54
using 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

Comments
 (0)