generated from DevPlus1/Unity-Customer-Template
69 lines
2.5 KiB
C#
69 lines
2.5 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace RunlevelSystems.DevPlus1.EditorTools
|
|
{
|
|
public static class RLAIContextExporter
|
|
{
|
|
public static void EnrichProjectContext(RLProjectAnalysisData data)
|
|
{
|
|
data.suggestedFirstFiles.Clear();
|
|
data.risksOrUnknowns.Clear();
|
|
|
|
foreach (RLScriptInfo script in data.scripts)
|
|
{
|
|
string lower = (script.className + " " + script.possibleRole).ToLowerInvariant();
|
|
if (lower.Contains("manager") || lower.Contains("controller") || script.lifecycleMethods.Count > 0)
|
|
{
|
|
AddUnique(data.suggestedFirstFiles, script.scriptPath);
|
|
}
|
|
}
|
|
|
|
foreach (string file in data.gitReports.importantFiles)
|
|
{
|
|
AddUnique(data.suggestedFirstFiles, file);
|
|
}
|
|
|
|
if (data.scenes.Count == 0)
|
|
{
|
|
data.risksOrUnknowns.Add("No scenes were analyzed. Scene flow needs manual confirmation.");
|
|
}
|
|
|
|
if (data.gitReports.validationFoundErrors)
|
|
{
|
|
data.risksOrUnknowns.Add("Git validation reports customer code errors. Review reports/errors.md before feature work.");
|
|
}
|
|
|
|
int missingScripts = 0;
|
|
int missingReferences = 0;
|
|
foreach (RLSceneInfo scene in data.scenes)
|
|
{
|
|
missingScripts += scene.missingScriptCount;
|
|
missingReferences += scene.missingReferenceCount;
|
|
}
|
|
foreach (RLPrefabInfo prefab in data.prefabs)
|
|
{
|
|
missingScripts += prefab.missingScriptCount;
|
|
missingReferences += prefab.missingReferenceCount;
|
|
}
|
|
|
|
if (missingScripts > 0)
|
|
{
|
|
data.risksOrUnknowns.Add("Missing scripts were detected. Inspect RL_Unity_Missing_References.md.");
|
|
}
|
|
if (missingReferences > 0)
|
|
{
|
|
data.risksOrUnknowns.Add("Missing serialized object references were detected. Inspect RL_Unity_Missing_References.md.");
|
|
}
|
|
|
|
data.risksOrUnknowns.Add("Analysis is best-effort and may miss runtime-created objects, reflection, addressables, or dependency injection.");
|
|
}
|
|
|
|
private static void AddUnique(List<string> values, string value)
|
|
{
|
|
if (!string.IsNullOrEmpty(value) && !values.Contains(value))
|
|
{
|
|
values.Add(value);
|
|
}
|
|
}
|
|
}
|
|
}
|