Skip to content

Commit 59b0127

Browse files
committed
chore: Update Analyzer for ScheduleOne.Core Exclusions
1 parent 4f465ee commit 59b0127

2 files changed

Lines changed: 65 additions & 1 deletion

File tree

tools/S1APICoverageAnalyzer/Analysis/ApiAssemblyAnalyzer.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,11 @@ private void RegisterGameTypeReference(Type type, Type apiType, ApiTypeInfo apiT
239239
apiTypeInfo.WrappedGameTypes.Add(normalizedName);
240240
TrackTypeAccess(normalizedName, apiType);
241241
}
242+
243+
if (type.DeclaringType != null && IsGameType(type.DeclaringType))
244+
{
245+
RegisterGameTypeReference(type.DeclaringType, apiType, apiTypeInfo);
246+
}
242247
}
243248

244249
// Also check generic type arguments
@@ -449,6 +454,11 @@ private void ExtractTypesFromIL(byte[] ilBytes, Module module, Type apiType, Api
449454
var member = module.ResolveMethod(token);
450455
if (member is MethodInfo method)
451456
{
457+
if (method.DeclaringType != null)
458+
{
459+
RegisterGameTypeReference(method.DeclaringType, apiType, apiTypeInfo);
460+
}
461+
452462
// Check if this is a generic method with game type arguments
453463
if (method.IsGenericMethod && !method.IsGenericMethodDefinition)
454464
{

tools/S1APICoverageAnalyzer/Configuration/ExclusionConfig.cs

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public static class ExclusionConfig
2828
"ScheduleOne.Audio",
2929
"ScheduleOne.VoiceOver",
3030
"ScheduleOne.Noise",
31+
"ScheduleOne.Core.Audio", // Internal audio configuration enums
3132

3233
// Visuals / Rendering / FX (internal implementation)
3334
"ScheduleOne.FX",
@@ -66,6 +67,10 @@ public static class ExclusionConfig
6667

6768
// Calling internals (CallManager is wrapped, but PayPhone etc are not)
6869
"ScheduleOne.Calling",
70+
71+
// Core settings/configuration assets are internal tuning/editor plumbing
72+
"ScheduleOne.Core.Deliveries",
73+
"ScheduleOne.Core.Settings",
6974

7075
// NPC Character Classes - empty network stubs that just inherit from NPC
7176
// The base NPC type is wrapped, and S1API has its own named NPC wrappers
@@ -77,6 +82,7 @@ public static class ExclusionConfig
7782

7883
// Player Tasks (Mini-games internals)
7984
"ScheduleOne.PlayerTasks",
85+
"ScheduleOne.Experimental", // Prototype/tuning data, not stable modding surface
8086
"Casino.UI",
8187
"ScheduleOne.Console",
8288
];
@@ -105,10 +111,54 @@ public static class ExclusionConfig
105111
"CanvasScaler",
106112
"GraphicRaycaster",
107113
"LayoutGroup",
108-
114+
"UIScreen",
115+
"UIScreenManager",
116+
"UIPanel",
117+
"UISelectable",
118+
"UIPopupScreen",
119+
"UIOption",
120+
"UITab",
121+
"UIToggle",
122+
"UISlider",
123+
"UITrigger",
124+
"UIMap",
125+
"UIDropdown",
126+
"UIHorizontalSelector",
127+
"UIContentPanel",
128+
"UISwitchInputModeDetector",
129+
"UIInputDetectBehaviour",
130+
109131
// Specific types that shouldn't count toward coverage
110132
"AchievementManager", // Internal achievement system
111133
"IGUIDRegisterable", // Internal interface
134+
"ExitListener",
135+
"TransformData",
136+
"TransformExtensions",
137+
"XPAmounts",
138+
"BuildStart_",
139+
"BuildStop_",
140+
"BuildUpdate_",
141+
"ActivateDuringBuild",
142+
"CornerObstacle",
143+
"OverrideGhostMaterial",
144+
"TileIntersection",
145+
"BrickPressContainer",
146+
"BrickPressHandle",
147+
"CauldronDisplayTub",
148+
"CashStackVisuals",
149+
"DebugInterface",
150+
"CommandListScreen",
151+
"CustomUIUtils",
152+
"OnScreenKeyboard",
153+
"OnScreenMouse",
154+
"INonNavigablePanel",
155+
"InputDescriptor",
156+
"InputDescriptorData",
157+
"JukeboxInterface",
158+
"LabOvenButton",
159+
"LabOvenDoor",
160+
"LabOvenHammer",
161+
"LabOvenWireTray",
112162
"Stan",
113163
"Meg",
114164
"Jerry",
@@ -123,6 +173,9 @@ public static class ExclusionConfig
123173
"BranchNodeData",
124174
"BranchOptionData",
125175
"EClothingColor",
176+
"ButtonAttribute",
177+
"ConditionalAttribute",
178+
"EMaterialType",
126179
"SlotReel",
127180
"AvatarLayer",
128181
"Eyebrow",
@@ -133,6 +186,7 @@ public static class ExclusionConfig
133186
"IStorageEntity",
134187
"CosmeticPowerLine",
135188
"AvatarLODBoundsUpdater",
189+
"ThirdPersonEquippableAlignmentHelper",
136190
];
137191

138192
/// <summary>

0 commit comments

Comments
 (0)