More fixes to blueprint exporter.

This commit is contained in:
2026-02-16 21:02:01 -05:00
parent 15997aee62
commit 55ad662d3f
5 changed files with 55 additions and 25 deletions

View File

@@ -10,35 +10,34 @@ The exporter class (`Source/Integration/BlueprintExporter.h/.cpp`) processes one
## Output Format
Each file has two sections:
The graph file is written to `Saved/BlueprintExports/<BlueprintName>/<GraphName>.txt`. A details file with node-name-to-GUID mappings is written to `Saved/BlueprintExports/<BlueprintName>/DETAILS/<GraphName>.txt`.
**NodeList** maps readable node names to GUIDs:
```
NodeList:
Event_Tick = 44BAE739C72246DD9E9A72803C3B67CA
Set_Tick_Delta_Seconds = 204486800C0C4906A456A378F9F7ADE4
```
Every line in the graph file starts with a keyword, making it easy to parse. The format is:
**Graph** shows the flow with pins and connections:
```
Graph:
Event_Tick
return Output_Delegate,Delta_Seconds
node Event_Tick
return Output_Delegate, Delta_Seconds
goto Set_Tick_Delta_Seconds
Set_Tick_Delta_Seconds
Real Tick_Delta_Seconds = Event_Tick.Delta_Seconds
node Set_Tick_Delta_Seconds
input Real Tick_Delta_Seconds = Event_Tick.Delta_Seconds
return Output_Get
goto CallFunctionByName
```
- Input data pins: `Type Name = Source` where Source is a `Node.Pin` reference, a literal value, `<self>`, or `<default>`.
- Output data pins: `return Pin1,Pin2`.
- Exec flow: `goto Target` (single output), `goto Target if PinName` (multiple outputs), or `then goto`/`else goto` (branch nodes).
### Line Keywords
- `node Name` — starts a new node block.
- `input Type Name = Source` — an input data pin. Source is a `Node.Pin` reference, a literal value, `<self>`, or `<default>`.
- `return Pin1, Pin2` — output data pins.
- `goto Target` — exec flow (single output).
- `goto-if PinName Target` — exec flow (multiple outputs, e.g. branch true/false).
- `// comment text` — comment node.
### Special Handling
- String defaults are shown in quotes.
- Variable get nodes are inlined (the variable name appears directly at the point of use).
- Comment nodes appear as `// comment text`.
- Variable get nodes are inlined (the variable name appears directly at the point of use rather than as a separate node).
- Knot (reroute) nodes are followed through transparently.
## Node Ordering