mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-25 04:18:12 +08:00
Add colors to all nodes in a graph, even if disconnected, and properly display hidden network imports (#1921)
* Get output/input types by iterating to proto node. Fix types when undoing/redoing * Remove unused code * Fix types not updating when modified * Improve code quality * Improve proto node type lookup * Nits * Fix crash when adding Extract --------- Co-authored-by: dennis@kobert.dev <dennis@kobert.dev> Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
co-authored by
dennis@kobert.dev
Keavon Chambers
parent
1f278799d6
commit
60707c0369
@@ -26,10 +26,13 @@ const ImportsToVec2Array = Transform(({ obj }) => {
|
||||
const ExportsToVec2Array = Transform(({ obj }) => {
|
||||
const exports: { inputMetadata: FrontendGraphInput; position: XY }[] = [];
|
||||
obj.exports.forEach(([inputMetadata, x, y]: [FrontendGraphInput, number, number]) => {
|
||||
inputMetadata.connectedTo = ((connectedTo: any) => {
|
||||
if (connectedTo?.import !== undefined) return { index: connectedTo?.import.index };
|
||||
return { nodeId: connectedTo?.node.nodeId, index: connectedTo?.node.outputIndex };
|
||||
})(inputMetadata.connectedTo);
|
||||
if (inputMetadata.connectedTo !== undefined) {
|
||||
if (inputMetadata.connectedTo?.import !== undefined) {
|
||||
inputMetadata.connectedTo = { index: inputMetadata.connectedTo?.import.index };
|
||||
} else {
|
||||
inputMetadata.connectedTo = { nodeId: inputMetadata.connectedTo?.node.nodeId, index: inputMetadata.connectedTo?.node.outputIndex };
|
||||
}
|
||||
}
|
||||
exports.push({ inputMetadata, position: { x, y } });
|
||||
});
|
||||
return exports;
|
||||
@@ -200,6 +203,9 @@ export type OutputConnector = Node | Import;
|
||||
export type InputConnector = Node | Export;
|
||||
|
||||
const CreateOutputConnectorOptional = Transform(({ obj }) => {
|
||||
if (obj.connectedTo == undefined) {
|
||||
return undefined;
|
||||
}
|
||||
if (obj.connectedTo?.export !== undefined) {
|
||||
return { index: obj.connectedTo?.export };
|
||||
} else if (obj.connectedTo?.import !== undefined) {
|
||||
@@ -221,7 +227,7 @@ export class FrontendGraphInput {
|
||||
readonly resolvedType!: string | undefined;
|
||||
|
||||
@CreateOutputConnectorOptional
|
||||
readonly connectedTo!: OutputConnector | undefined;
|
||||
connectedTo!: OutputConnector | undefined;
|
||||
}
|
||||
|
||||
const CreateInputConnectorArray = Transform(({ obj }) => {
|
||||
|
||||
Reference in New Issue
Block a user