unity-open-mcp 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -12
- package/dist/batch-spawn.d.ts +4 -0
- package/dist/batch-spawn.js +55 -11
- package/dist/batch-spawn.js.map +1 -1
- package/dist/capabilities/cost-hints.js +20 -0
- package/dist/capabilities/cost-hints.js.map +1 -1
- package/dist/cli/commands.js +9 -8
- package/dist/cli/commands.js.map +1 -1
- package/dist/constants.d.ts +89 -0
- package/dist/constants.js +109 -0
- package/dist/constants.js.map +1 -0
- package/dist/dialog-dismiss.d.ts +0 -7
- package/dist/dialog-dismiss.js +17 -19
- package/dist/dialog-dismiss.js.map +1 -1
- package/dist/hub-control.d.ts +6 -2
- package/dist/hub-control.js +8 -8
- package/dist/hub-control.js.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/instance-discovery.js +2 -1
- package/dist/instance-discovery.js.map +1 -1
- package/dist/live-client.d.ts +49 -0
- package/dist/live-client.js +292 -255
- package/dist/live-client.js.map +1 -1
- package/dist/offline/api.d.ts +171 -0
- package/dist/offline/api.js +852 -0
- package/dist/offline/api.js.map +1 -0
- package/dist/offline/hierarchy.d.ts +24 -0
- package/dist/offline/hierarchy.js +242 -0
- package/dist/offline/hierarchy.js.map +1 -0
- package/dist/offline/index-builders.d.ts +11 -0
- package/dist/offline/index-builders.js +202 -0
- package/dist/offline/index-builders.js.map +1 -0
- package/dist/offline/model.d.ts +8 -0
- package/dist/offline/model.js +188 -0
- package/dist/offline/model.js.map +1 -0
- package/dist/offline/names.d.ts +7 -0
- package/dist/offline/names.js +20 -0
- package/dist/offline/names.js.map +1 -0
- package/dist/offline/overrides.d.ts +17 -0
- package/dist/offline/overrides.js +266 -0
- package/dist/offline/overrides.js.map +1 -0
- package/dist/offline/parse.d.ts +25 -0
- package/dist/offline/parse.js +236 -0
- package/dist/offline/parse.js.map +1 -0
- package/dist/offline/paths.d.ts +4 -0
- package/dist/offline/paths.js +23 -0
- package/dist/offline/paths.js.map +1 -0
- package/dist/offline/primitives.d.ts +17 -0
- package/dist/offline/primitives.js +195 -0
- package/dist/offline/primitives.js.map +1 -0
- package/dist/offline/references.d.ts +9 -0
- package/dist/offline/references.js +55 -0
- package/dist/offline/references.js.map +1 -0
- package/dist/offline/types.d.ts +65 -0
- package/dist/offline/types.js +154 -0
- package/dist/offline/types.js.map +1 -0
- package/dist/offline.d.ts +2 -180
- package/dist/offline.js +27 -2282
- package/dist/offline.js.map +1 -1
- package/dist/project-health.d.ts +1 -1
- package/dist/project-health.js +66 -3
- package/dist/project-health.js.map +1 -1
- package/dist/routers.js +6 -5
- package/dist/routers.js.map +1 -1
- package/dist/tool-router.d.ts +12 -0
- package/dist/tool-router.js +72 -100
- package/dist/tool-router.js.map +1 -1
- package/dist/tools/component-get.js +44 -11
- package/dist/tools/component-get.js.map +1 -1
- package/dist/tools/editor-status.js +3 -2
- package/dist/tools/editor-status.js.map +1 -1
- package/dist/tools/execute-csharp.js +3 -2
- package/dist/tools/execute-csharp.js.map +1 -1
- package/dist/tools/index.js +19 -17
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inputsystem-asset-create.js +4 -4
- package/dist/tools/inputsystem-asset-create.js.map +1 -1
- package/dist/tools/invoke-method.js +2 -1
- package/dist/tools/invoke-method.js.map +1 -1
- package/dist/tools/navigation-surface-add.js +6 -5
- package/dist/tools/navigation-surface-add.js.map +1 -1
- package/dist/tools/probuilder-create-shape.js +4 -4
- package/dist/tools/probuilder-create-shape.js.map +1 -1
- package/dist/tools/read-compile-errors.js +44 -31
- package/dist/tools/read-compile-errors.js.map +1 -1
- package/dist/tools/scene-get-data.js +10 -2
- package/dist/tools/scene-get-data.js.map +1 -1
- package/dist/tools/scene-save.js +16 -5
- package/dist/tools/scene-save.js.map +1 -1
- package/dist/tools/scene-set-active.js +22 -6
- package/dist/tools/scene-set-active.js.map +1 -1
- package/dist/tools/scene-unload.js +20 -6
- package/dist/tools/scene-unload.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
// AssetModel builders + integrity checks for the offline reader.
|
|
2
|
+
//
|
|
3
|
+
// Extracted from the former monolithic offline.ts (M28-refactoring Plan 3,
|
|
4
|
+
// T3.1). Converts a parsed YAML/JSON asset into the AssetModel the compression
|
|
5
|
+
// layer renders, and runs the per-asset integrity checks (orphaned prefab
|
|
6
|
+
// instance, missing script/asset refs, malformed JSON, asmdef/shadergraph
|
|
7
|
+
// shape). Depends on types + parse + hierarchy + overrides + references
|
|
8
|
+
// (injected) + primitives.
|
|
9
|
+
import { EMPTY_PARSED } from "./types.js";
|
|
10
|
+
import { findGUIDs } from "./primitives.js";
|
|
11
|
+
import { readGUIDField } from "./primitives.js";
|
|
12
|
+
import { parseJsonAsset, jsonFields, pickString } from "./parse.js";
|
|
13
|
+
import { buildHierarchy, componentsFor, componentName, fieldsWithHidden, } from "./hierarchy.js";
|
|
14
|
+
import { collectOverrides } from "./overrides.js";
|
|
15
|
+
import { resolveReferences } from "./references.js";
|
|
16
|
+
// ===========================================================================
|
|
17
|
+
// YAML AssetModel builder.
|
|
18
|
+
// ===========================================================================
|
|
19
|
+
export function buildAssetModel(parsed, scriptIndex, guidIndex, fieldLimit) {
|
|
20
|
+
const hierarchy = buildHierarchy(parsed);
|
|
21
|
+
const overrides = collectOverrides(parsed, scriptIndex, guidIndex);
|
|
22
|
+
if (hierarchy.length > 0) {
|
|
23
|
+
const roots = hierarchy.map((node) => convertNode(node, parsed, scriptIndex, guidIndex, fieldLimit));
|
|
24
|
+
let componentCount = 0;
|
|
25
|
+
const countComps = (n) => {
|
|
26
|
+
componentCount += n.components.length;
|
|
27
|
+
n.children.forEach(countComps);
|
|
28
|
+
};
|
|
29
|
+
roots.forEach(countComps);
|
|
30
|
+
return {
|
|
31
|
+
kind: parsed.kind,
|
|
32
|
+
path: parsed.path,
|
|
33
|
+
guid: parsed.guid || undefined,
|
|
34
|
+
objectCount: parsed.objects.length,
|
|
35
|
+
componentCount,
|
|
36
|
+
roots,
|
|
37
|
+
...(overrides.length > 0 ? { overrides } : {}),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const flatObjects = [];
|
|
41
|
+
for (const obj of parsed.objects) {
|
|
42
|
+
if (obj.type === "PrefabInstance")
|
|
43
|
+
continue;
|
|
44
|
+
const { name } = componentName(obj, scriptIndex);
|
|
45
|
+
const { fields } = fieldsWithHidden(parsed, obj, fieldLimit, guidIndex, resolveReferences);
|
|
46
|
+
flatObjects.push({
|
|
47
|
+
name: obj.name || name,
|
|
48
|
+
type: name,
|
|
49
|
+
fields: fields.length > 0 ? fields.map(toComponentField) : undefined,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
kind: parsed.kind,
|
|
54
|
+
path: parsed.path,
|
|
55
|
+
guid: parsed.guid || undefined,
|
|
56
|
+
objectCount: parsed.objects.length,
|
|
57
|
+
componentCount: 0,
|
|
58
|
+
roots: [],
|
|
59
|
+
flatObjects,
|
|
60
|
+
...(overrides.length > 0 ? { overrides } : {}),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function convertNode(node, parsed, scriptIndex, guidIndex, fieldLimit) {
|
|
64
|
+
const comps = componentsFor(parsed, node.gameObject.id, scriptIndex);
|
|
65
|
+
const components = comps.map((c) => {
|
|
66
|
+
const comp = { name: c.name };
|
|
67
|
+
if (c.scriptPath)
|
|
68
|
+
comp.scriptPath = c.scriptPath;
|
|
69
|
+
if (fieldLimit > 0) {
|
|
70
|
+
const { fields } = fieldsWithHidden(parsed, c.object, fieldLimit, guidIndex, resolveReferences);
|
|
71
|
+
if (fields.length > 0)
|
|
72
|
+
comp.fields = fields.map(toComponentField);
|
|
73
|
+
}
|
|
74
|
+
return comp;
|
|
75
|
+
});
|
|
76
|
+
return {
|
|
77
|
+
name: node.gameObject.name,
|
|
78
|
+
path: node.path,
|
|
79
|
+
depth: node.depth,
|
|
80
|
+
fileID: node.gameObject.id,
|
|
81
|
+
components,
|
|
82
|
+
children: node.children.map((child) => convertNode(child, parsed, scriptIndex, guidIndex, fieldLimit)),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function toComponentField(f) {
|
|
86
|
+
return { name: f.name, value: f.value };
|
|
87
|
+
}
|
|
88
|
+
// ===========================================================================
|
|
89
|
+
// JSON AssetModel builder.
|
|
90
|
+
// ===========================================================================
|
|
91
|
+
export function buildJsonAssetModel(data, assetPath, kind, guid, guidIndex, fieldLimit) {
|
|
92
|
+
const issues = [];
|
|
93
|
+
const objects = parseJsonAsset(data, issues);
|
|
94
|
+
const flatObjects = [];
|
|
95
|
+
for (const obj of objects) {
|
|
96
|
+
const fields = jsonFields(obj.value, fieldLimit, guidIndex, resolveReferences);
|
|
97
|
+
flatObjects.push({
|
|
98
|
+
name: obj.name,
|
|
99
|
+
type: obj.type,
|
|
100
|
+
fields: fields.length > 0 ? fields : undefined,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
const integrity = runJsonIntegrityChecks(kind, objects, issues, assetPath);
|
|
104
|
+
return {
|
|
105
|
+
kind,
|
|
106
|
+
path: assetPath,
|
|
107
|
+
guid: guid || undefined,
|
|
108
|
+
objectCount: objects.length,
|
|
109
|
+
componentCount: 0,
|
|
110
|
+
roots: [],
|
|
111
|
+
flatObjects,
|
|
112
|
+
...(integrity.length > 0 ? { integrity } : {}),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
// ===========================================================================
|
|
116
|
+
// M24 — offline integrity checks.
|
|
117
|
+
// ===========================================================================
|
|
118
|
+
export function runYamlIntegrityChecks(parsed, guidIndex) {
|
|
119
|
+
const issues = [];
|
|
120
|
+
// Orphaned PrefabInstance: a PrefabInstance whose m_SourcePrefab GUID is
|
|
121
|
+
// missing from the project (the base prefab was deleted or never imported).
|
|
122
|
+
for (const obj of parsed.objects) {
|
|
123
|
+
if (obj.type !== "PrefabInstance")
|
|
124
|
+
continue;
|
|
125
|
+
const sourceGuid = readGUIDField(obj.lines, "m_SourcePrefab");
|
|
126
|
+
if (sourceGuid !== "" && !guidIndex.has(sourceGuid)) {
|
|
127
|
+
issues.push({
|
|
128
|
+
code: "orphaned_prefab_instance",
|
|
129
|
+
detail: `m_SourcePrefab guid ${sourceGuid} not found in project`,
|
|
130
|
+
severity: "warning",
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Unresolved field GUIDs (missing references) — every guid: in a field that
|
|
135
|
+
// the meta index cannot resolve. Component m_Script guids get their own code
|
|
136
|
+
// so a missing-script is distinguishable from a missing asset ref.
|
|
137
|
+
const missingScripts = new Set();
|
|
138
|
+
const missingRefs = new Set();
|
|
139
|
+
for (const obj of parsed.objects) {
|
|
140
|
+
for (const line of obj.lines) {
|
|
141
|
+
if (!line.includes("guid:"))
|
|
142
|
+
continue;
|
|
143
|
+
const isScript = line.includes("m_Script");
|
|
144
|
+
for (const g of findGUIDs(line)) {
|
|
145
|
+
if (guidIndex.has(g))
|
|
146
|
+
continue;
|
|
147
|
+
if (isScript)
|
|
148
|
+
missingScripts.add(g);
|
|
149
|
+
else
|
|
150
|
+
missingRefs.add(g);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
for (const g of missingScripts) {
|
|
155
|
+
issues.push({ code: "missing_script_reference", detail: `script guid ${g} unresolved`, severity: "error" });
|
|
156
|
+
}
|
|
157
|
+
for (const g of missingRefs) {
|
|
158
|
+
issues.push({ code: "missing_reference", detail: `asset guid ${g} unresolved`, severity: "warning" });
|
|
159
|
+
}
|
|
160
|
+
return issues;
|
|
161
|
+
}
|
|
162
|
+
export function runJsonIntegrityChecks(kind, objects, parseIssues, _assetPath) {
|
|
163
|
+
const issues = [...parseIssues];
|
|
164
|
+
if (kind === "asmdef") {
|
|
165
|
+
const first = objects[0]?.value;
|
|
166
|
+
if (first && typeof first === "object" && !Array.isArray(first)) {
|
|
167
|
+
const obj = first;
|
|
168
|
+
if (pickString(obj.name) === undefined) {
|
|
169
|
+
issues.push({ code: "asmdef_missing_name", detail: "asmdef has no 'name' field", severity: "error" });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (kind === "shadergraph") {
|
|
174
|
+
// A valid graph stream must start with the GraphData root.
|
|
175
|
+
const rootType = objects[0]?.type;
|
|
176
|
+
if (rootType !== undefined && !rootType.includes("GraphData")) {
|
|
177
|
+
issues.push({
|
|
178
|
+
code: "shadergraph_root_missing",
|
|
179
|
+
detail: `first object is ${rootType}, expected a GraphData root`,
|
|
180
|
+
severity: "warning",
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return issues;
|
|
185
|
+
}
|
|
186
|
+
// Re-export EMPTY_PARSED consumers (jsonScalar used it; kept for parity).
|
|
187
|
+
export { EMPTY_PARSED };
|
|
188
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/offline/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalize a serialized field name for display: strip the
|
|
3
|
+
* `<Name>k__BackingField` wrapper C# emits for auto-property backing fields,
|
|
4
|
+
* leaving the property name. Used by the field renderer, prefab-override
|
|
5
|
+
* propertyPath, and reference-location extractor.
|
|
6
|
+
*/
|
|
7
|
+
export declare function displayFieldName(name: string): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Shared field-name display helpers.
|
|
2
|
+
//
|
|
3
|
+
// Extracted from the former monolithic offline.ts (M28-refactoring Plan 3,
|
|
4
|
+
// T3.1). displayFieldName normalizes backing-field and propertyPath names so
|
|
5
|
+
// the YAML renderer, the prefab-override parser, and the reference-location
|
|
6
|
+
// extractor all produce the same display labels. A leaf module — no internal
|
|
7
|
+
// imports.
|
|
8
|
+
/**
|
|
9
|
+
* Normalize a serialized field name for display: strip the
|
|
10
|
+
* `<Name>k__BackingField` wrapper C# emits for auto-property backing fields,
|
|
11
|
+
* leaving the property name. Used by the field renderer, prefab-override
|
|
12
|
+
* propertyPath, and reference-location extractor.
|
|
13
|
+
*/
|
|
14
|
+
export function displayFieldName(name) {
|
|
15
|
+
if (name.startsWith("<") && name.endsWith(">k__BackingField")) {
|
|
16
|
+
return name.slice(1, -">k__BackingField".length);
|
|
17
|
+
}
|
|
18
|
+
return name;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/offline/names.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,WAAW;AAEX;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PrefabOverrideEntry } from "../compression/asset-model.js";
|
|
2
|
+
import type { GUIDIndex, ParsedAsset, ParsedObject, PrefabOverride, ScriptIndex } from "./types.js";
|
|
3
|
+
export declare function applyPrefabNameOverrides(objects: ParsedObject[]): void;
|
|
4
|
+
export declare function parsePrefabOverrides(lines: string[]): PrefabOverride[];
|
|
5
|
+
export interface LabelHelpers {
|
|
6
|
+
objectPath(asset: ParsedAsset, goID: string): string;
|
|
7
|
+
localReferenceLabel(asset: ParsedAsset, fileID: string, scriptIndex: ScriptIndex): string;
|
|
8
|
+
componentName(obj: ParsedObject, scriptIndex: ScriptIndex): {
|
|
9
|
+
name: string;
|
|
10
|
+
scriptPath: string;
|
|
11
|
+
};
|
|
12
|
+
resolveReferences(value: string, guidIndex: GUIDIndex, asset: ParsedAsset): string;
|
|
13
|
+
}
|
|
14
|
+
export declare function setLabelHelpers(helpers: LabelHelpers): void;
|
|
15
|
+
export declare function buildSourceMap(parsed: ParsedAsset): Map<string, ParsedObject>;
|
|
16
|
+
export declare function collectOverrides(parsed: ParsedAsset, scriptIndex: ScriptIndex, guidIndex: GUIDIndex): PrefabOverrideEntry[];
|
|
17
|
+
export declare function scriptBaseName(path: string): string;
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
// Prefab override name resolution + override parsing.
|
|
2
|
+
//
|
|
3
|
+
// Extracted from the former monolithic offline.ts (M28-refactoring Plan 3,
|
|
4
|
+
// T3.1). Two responsibilities:
|
|
5
|
+
// 1. applyPrefabNameOverrides — runs at parse time to resolve GameObject
|
|
6
|
+
// names inherited from prefab variants (called by parse.ts).
|
|
7
|
+
// 2. The raw-override parser + the readable-label resolver used by the
|
|
8
|
+
// hierarchy builder to produce the PrefabOverrideEntry[] model.
|
|
9
|
+
//
|
|
10
|
+
// Depends on types + primitives + hierarchy (for objectPath / componentName /
|
|
11
|
+
// localReferenceLabel used by the label resolver). The hierarchy import is
|
|
12
|
+
// one-directional — hierarchy.ts does not import overrides.ts.
|
|
13
|
+
import { basename } from "node:path";
|
|
14
|
+
import { displayFieldName } from "./names.js";
|
|
15
|
+
import { cleanScalar, extractFileID, extractGUID } from "./primitives.js";
|
|
16
|
+
// ===========================================================================
|
|
17
|
+
// Prefab override name resolution — runs at parse time.
|
|
18
|
+
// ===========================================================================
|
|
19
|
+
export function applyPrefabNameOverrides(objects) {
|
|
20
|
+
const names = new Map();
|
|
21
|
+
for (const obj of objects) {
|
|
22
|
+
if (obj.type !== "PrefabInstance")
|
|
23
|
+
continue;
|
|
24
|
+
for (const override of parsePrefabOverrides(obj.lines)) {
|
|
25
|
+
if (override.kind !== "property" || override.propertyPath !== "m_Name" || override.value === "")
|
|
26
|
+
continue;
|
|
27
|
+
const id = extractFileID(override.target);
|
|
28
|
+
const guid = extractGUID(override.target);
|
|
29
|
+
if (id === "" || guid === "")
|
|
30
|
+
continue;
|
|
31
|
+
names.set(`${guid.toLowerCase()}\0${id}`, override.value);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (names.size === 0)
|
|
35
|
+
return;
|
|
36
|
+
for (const obj of objects) {
|
|
37
|
+
if (obj.name !== "" || obj.sourceObjectID === "" || obj.sourceGUID === "")
|
|
38
|
+
continue;
|
|
39
|
+
const name = names.get(`${obj.sourceGUID.toLowerCase()}\0${obj.sourceObjectID}`);
|
|
40
|
+
if (name)
|
|
41
|
+
obj.name = name;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// ===========================================================================
|
|
45
|
+
// Raw prefab-override parser — extracts the m_Modifications / m_Removed* /
|
|
46
|
+
// m_Added* sections from a PrefabInstance object's lines.
|
|
47
|
+
// ===========================================================================
|
|
48
|
+
export function parsePrefabOverrides(lines) {
|
|
49
|
+
const out = [];
|
|
50
|
+
let section = "";
|
|
51
|
+
for (let i = 0; i < lines.length; i++) {
|
|
52
|
+
const trim = lines[i].trim();
|
|
53
|
+
switch (trim) {
|
|
54
|
+
case "m_Modifications:":
|
|
55
|
+
section = "modifications";
|
|
56
|
+
continue;
|
|
57
|
+
case "m_RemovedComponents:":
|
|
58
|
+
section = "removed-components";
|
|
59
|
+
continue;
|
|
60
|
+
case "m_RemovedGameObjects:":
|
|
61
|
+
section = "removed-gameobjects";
|
|
62
|
+
continue;
|
|
63
|
+
case "m_AddedComponents:":
|
|
64
|
+
section = "added-components";
|
|
65
|
+
continue;
|
|
66
|
+
case "m_AddedGameObjects:":
|
|
67
|
+
section = "added-gameobjects";
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (!trim.startsWith("- "))
|
|
71
|
+
continue;
|
|
72
|
+
switch (section) {
|
|
73
|
+
case "modifications": {
|
|
74
|
+
const { override, next } = parsePrefabPropertyOverride(lines, i);
|
|
75
|
+
if (override.target !== "")
|
|
76
|
+
out.push(override);
|
|
77
|
+
i = next;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case "removed-components":
|
|
81
|
+
case "removed-gameobjects": {
|
|
82
|
+
const target = trim.slice(2).trim();
|
|
83
|
+
if (target !== "" && target !== "[]") {
|
|
84
|
+
out.push({ kind: section, target, propertyPath: "", value: "", addedObject: "" });
|
|
85
|
+
}
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
case "added-components": {
|
|
89
|
+
const { override, next } = parsePrefabAddedComponentOverride(lines, i, "added-component");
|
|
90
|
+
if (override.target !== "" || override.addedObject !== "")
|
|
91
|
+
out.push(override);
|
|
92
|
+
i = next;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
case "added-gameobjects": {
|
|
96
|
+
const { override, next } = parsePrefabAddedComponentOverride(lines, i, "added-gameobjects");
|
|
97
|
+
if (override.target !== "" || override.addedObject !== "")
|
|
98
|
+
out.push(override);
|
|
99
|
+
i = next;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return out;
|
|
105
|
+
}
|
|
106
|
+
function parsePrefabPropertyOverride(lines, start) {
|
|
107
|
+
const override = { kind: "property", target: "", propertyPath: "", value: "", addedObject: "" };
|
|
108
|
+
for (let i = start; i < lines.length; i++) {
|
|
109
|
+
const trim = lines[i].trim();
|
|
110
|
+
if (i > start && isPrefabOverrideSection(trim))
|
|
111
|
+
return { override, next: i - 1 };
|
|
112
|
+
if (i > start && trim.startsWith("- "))
|
|
113
|
+
return { override, next: i - 1 };
|
|
114
|
+
if (trim.startsWith("- target:")) {
|
|
115
|
+
override.target = trim.slice("- target:".length).trim();
|
|
116
|
+
}
|
|
117
|
+
else if (trim.startsWith("propertyPath:")) {
|
|
118
|
+
override.propertyPath = displayFieldName(cleanScalar(trim.slice("propertyPath:".length).trim()));
|
|
119
|
+
}
|
|
120
|
+
else if (trim.startsWith("value:")) {
|
|
121
|
+
override.value = cleanScalar(trim.slice("value:".length).trim());
|
|
122
|
+
}
|
|
123
|
+
else if (trim.startsWith("objectReference:") && override.value === "") {
|
|
124
|
+
override.value = trim.slice("objectReference:".length).trim();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return { override, next: lines.length - 1 };
|
|
128
|
+
}
|
|
129
|
+
function parsePrefabAddedComponentOverride(lines, start, kind) {
|
|
130
|
+
const override = { kind, target: "", propertyPath: "", value: "", addedObject: "" };
|
|
131
|
+
for (let i = start; i < lines.length; i++) {
|
|
132
|
+
const trim = lines[i].trim();
|
|
133
|
+
if (i > start && isPrefabOverrideSection(trim))
|
|
134
|
+
return { override, next: i - 1 };
|
|
135
|
+
if (i > start && trim.startsWith("- "))
|
|
136
|
+
return { override, next: i - 1 };
|
|
137
|
+
if (trim.startsWith("- targetCorrespondingSourceObject:")) {
|
|
138
|
+
override.target = trim.slice("- targetCorrespondingSourceObject:".length).trim();
|
|
139
|
+
}
|
|
140
|
+
else if (trim.startsWith("addedObject:")) {
|
|
141
|
+
override.addedObject = trim.slice("addedObject:".length).trim();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return { override, next: lines.length - 1 };
|
|
145
|
+
}
|
|
146
|
+
function isPrefabOverrideSection(trim) {
|
|
147
|
+
switch (trim) {
|
|
148
|
+
case "m_Modifications:":
|
|
149
|
+
case "m_RemovedComponents:":
|
|
150
|
+
case "m_RemovedGameObjects:":
|
|
151
|
+
case "m_AddedComponents:":
|
|
152
|
+
case "m_AddedGameObjects:":
|
|
153
|
+
return true;
|
|
154
|
+
default:
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Late-bound registry so overrides.ts can call hierarchy.ts helpers without an
|
|
159
|
+
// import cycle. The references module (which depends on both) wires the real
|
|
160
|
+
// implementations at load time.
|
|
161
|
+
let labelHelpers = null;
|
|
162
|
+
export function setLabelHelpers(helpers) {
|
|
163
|
+
labelHelpers = helpers;
|
|
164
|
+
}
|
|
165
|
+
export function buildSourceMap(parsed) {
|
|
166
|
+
const map = new Map();
|
|
167
|
+
for (const obj of parsed.objects) {
|
|
168
|
+
if (obj.sourceObjectID === "" || obj.sourceGUID === "")
|
|
169
|
+
continue;
|
|
170
|
+
map.set(`${obj.sourceGUID.toLowerCase()}\0${obj.sourceObjectID}`, obj);
|
|
171
|
+
}
|
|
172
|
+
return map;
|
|
173
|
+
}
|
|
174
|
+
export function collectOverrides(parsed, scriptIndex, guidIndex) {
|
|
175
|
+
const sourceMap = buildSourceMap(parsed);
|
|
176
|
+
const entries = [];
|
|
177
|
+
for (const obj of parsed.objects) {
|
|
178
|
+
if (obj.type !== "PrefabInstance")
|
|
179
|
+
continue;
|
|
180
|
+
for (const ov of parsePrefabOverrides(obj.lines)) {
|
|
181
|
+
entries.push(resolveOverrideEntry(ov, parsed, sourceMap, scriptIndex, guidIndex));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return entries;
|
|
185
|
+
}
|
|
186
|
+
function resolveOverrideEntry(ov, parsed, sourceMap, scriptIndex, guidIndex) {
|
|
187
|
+
const entry = { kind: ov.kind };
|
|
188
|
+
switch (ov.kind) {
|
|
189
|
+
case "property":
|
|
190
|
+
entry.propertyPath = ov.propertyPath;
|
|
191
|
+
entry.value = normalizeOverrideValue(ov.value, guidIndex, parsed);
|
|
192
|
+
entry.target = resolveOverrideTarget(ov.target, sourceMap, parsed, scriptIndex);
|
|
193
|
+
break;
|
|
194
|
+
case "added-component":
|
|
195
|
+
case "added-gameobjects":
|
|
196
|
+
entry.target = resolveOverrideTarget(ov.target, sourceMap, parsed, scriptIndex);
|
|
197
|
+
entry.addedObject = resolveAddedObject(ov.addedObject, parsed, scriptIndex);
|
|
198
|
+
break;
|
|
199
|
+
default:
|
|
200
|
+
entry.target = resolveOverrideTarget(ov.target, sourceMap, parsed, scriptIndex);
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
return entry;
|
|
204
|
+
}
|
|
205
|
+
function normalizeOverrideValue(value, guidIndex, parsed) {
|
|
206
|
+
const trimmed = value.trim();
|
|
207
|
+
if (trimmed === "{fileID: 0}" || trimmed === "{}")
|
|
208
|
+
return "null";
|
|
209
|
+
if (labelHelpers)
|
|
210
|
+
return labelHelpers.resolveReferences(value, guidIndex, parsed);
|
|
211
|
+
return value;
|
|
212
|
+
}
|
|
213
|
+
function resolveOverrideTarget(target, sourceMap, parsed, scriptIndex) {
|
|
214
|
+
if (target === "")
|
|
215
|
+
return undefined;
|
|
216
|
+
const fileID = extractFileID(target);
|
|
217
|
+
const guid = extractGUID(target);
|
|
218
|
+
if (fileID === "" && guid === "")
|
|
219
|
+
return undefined;
|
|
220
|
+
if (guid !== "" && fileID !== "") {
|
|
221
|
+
const localObj = sourceMap.get(`${guid.toLowerCase()}\0${fileID}`);
|
|
222
|
+
if (localObj && labelHelpers) {
|
|
223
|
+
return labelForParsedObject(localObj, parsed, scriptIndex);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (fileID !== "" && labelHelpers) {
|
|
227
|
+
const label = labelHelpers.localReferenceLabel(parsed, fileID, scriptIndex);
|
|
228
|
+
if (label)
|
|
229
|
+
return label;
|
|
230
|
+
}
|
|
231
|
+
return undefined;
|
|
232
|
+
}
|
|
233
|
+
function resolveAddedObject(addedObject, parsed, scriptIndex) {
|
|
234
|
+
if (addedObject === "")
|
|
235
|
+
return undefined;
|
|
236
|
+
const fileID = extractFileID(addedObject);
|
|
237
|
+
if (fileID === "")
|
|
238
|
+
return undefined;
|
|
239
|
+
if (!labelHelpers)
|
|
240
|
+
return undefined;
|
|
241
|
+
const label = labelHelpers.localReferenceLabel(parsed, fileID, scriptIndex);
|
|
242
|
+
return label || undefined;
|
|
243
|
+
}
|
|
244
|
+
function labelForParsedObject(obj, parsed, scriptIndex) {
|
|
245
|
+
if (!labelHelpers)
|
|
246
|
+
return obj.name;
|
|
247
|
+
if (obj.type === "GameObject")
|
|
248
|
+
return labelHelpers.objectPath(parsed, obj.id);
|
|
249
|
+
const { name } = labelHelpers.componentName(obj, scriptIndex);
|
|
250
|
+
if (obj.gameObjectID !== "") {
|
|
251
|
+
const path = labelHelpers.objectPath(parsed, obj.gameObjectID);
|
|
252
|
+
if (path)
|
|
253
|
+
return `${name} on ${path}`;
|
|
254
|
+
}
|
|
255
|
+
if (obj.name !== "")
|
|
256
|
+
return `${name} ${obj.name}`;
|
|
257
|
+
return `${name} ${obj.id}`;
|
|
258
|
+
}
|
|
259
|
+
// Re-export basename-derived helper for the script-path name extraction so the
|
|
260
|
+
// hierarchy module's componentName can share it without re-importing node:path.
|
|
261
|
+
export function scriptBaseName(path) {
|
|
262
|
+
const base = basename(path);
|
|
263
|
+
const ext = path.match(/\.[^.]+$/)?.[0] ?? "";
|
|
264
|
+
return ext ? base.slice(0, -ext.length) : base;
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=overrides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/offline/overrides.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AssetIntegrityIssue } from "../compression/asset-model.js";
|
|
2
|
+
import type { GUIDIndex, JsonParsedObject, ParsedAsset } from "./types.js";
|
|
3
|
+
export declare function parseAsset(data: string): ParsedAsset;
|
|
4
|
+
export declare function parseJsonAsset(data: string, issues: AssetIntegrityIssue[]): JsonParsedObject[];
|
|
5
|
+
export declare function pickString(v: unknown): string | undefined;
|
|
6
|
+
/** Shorten a ShaderGraph m_Type like "UnityEditor.ShaderGraph.MultiplyNode" → "MultiplyNode". */
|
|
7
|
+
export declare function jsonShortType(full: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* A `.shadergraph` is a stream of pretty-printed JSON objects. They are
|
|
10
|
+
* separated by blank lines, but a single object's pretty-printed body also
|
|
11
|
+
* contains newlines — so the split must track brace depth, not line gaps.
|
|
12
|
+
* `.asmdef` is a single object; this still returns a one-element array.
|
|
13
|
+
*/
|
|
14
|
+
export declare function splitJsonStream(data: string): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Flatten a parsed JSON value into display fields. Scalars, arrays, and nested
|
|
17
|
+
* objects are summarized into short `name: value` rows, mirroring the YAML
|
|
18
|
+
* field renderer. GUID refs are resolved against the meta index via the
|
|
19
|
+
* injected resolver (avoids a direct reference-resolution import here).
|
|
20
|
+
*/
|
|
21
|
+
export declare function jsonFields(value: unknown, limit: number, guidIndex: GUIDIndex, resolveRef: (value: string, guidIndex: GUIDIndex, asset: ParsedAsset) => string): {
|
|
22
|
+
name: string;
|
|
23
|
+
value: string;
|
|
24
|
+
}[];
|
|
25
|
+
export declare function jsonScalar(value: unknown, guidIndex: GUIDIndex, resolveRef: (value: string, guidIndex: GUIDIndex, asset: ParsedAsset) => string): string;
|