Editor/ShaderGraphPlus/ProjectConverter/Node Core/FunctionResultConvert.cs
using VanillaGraph = Editor.ShaderGraph;
using VanillaNodes = Editor.ShaderGraph.Nodes;
using ShaderGraphBaseNode = Editor.ShaderGraph.BaseNode;

namespace ShaderGraphPlus.Internal;

internal class FunctionResultConvert : BaseNodeConvert
{
	public override Type NodeTypeToConvert => typeof( VanillaGraph.FunctionResult );

	public override IEnumerable<BaseNodePlus> Convert( ProjectConverter converter, ShaderGraphBaseNode oldNode )
	{
		var newNodes = new List<BaseNodePlus>();
		var oldFunctionResult = oldNode as VanillaGraph.FunctionResult;

		//SGPLog.Info( "Convert functionResult node" );

		throw new NotImplementedException();

		/*
		Vector2 lastOffset = Vector2.Zero;
		foreach ( var oldInput in oldFunctionResult.FunctionOutputs )
		{
			var newSubgraphOutput = new SubgraphOutput();
			lastOffset.y += 64;
			newSubgraphOutput.Position = oldFunctionResult.Position + new Vector2( 0, lastOffset.y );
			newSubgraphOutput.OutputName = oldInput.Name;
			newSubgraphOutput.OutputDescription = "";
			newSubgraphOutput.SetSubgraphPortTypeFromType( oldInput.Type );
			newSubgraphOutput.Preview = oldInput.Preview switch
			{
				VanillaGraph.FunctionOutput.PreviewType.None => SubgraphOutputPreviewType.None,
				VanillaGraph.FunctionOutput.PreviewType.Albedo => SubgraphOutputPreviewType.Albedo,
				VanillaGraph.FunctionOutput.PreviewType.Emission => SubgraphOutputPreviewType.Emission,
				VanillaGraph.FunctionOutput.PreviewType.Opacity => SubgraphOutputPreviewType.Opacity,
				VanillaGraph.FunctionOutput.PreviewType.Normal => SubgraphOutputPreviewType.Normal,
				VanillaGraph.FunctionOutput.PreviewType.Roughness => SubgraphOutputPreviewType.Roughness,
				VanillaGraph.FunctionOutput.PreviewType.Metalness => SubgraphOutputPreviewType.Metalness,
				VanillaGraph.FunctionOutput.PreviewType.AmbientOcclusion => SubgraphOutputPreviewType.AmbientOcclusion,
				VanillaGraph.FunctionOutput.PreviewType.PositionOffset => SubgraphOutputPreviewType.PositionOffset,
				_ => throw new NotImplementedException(),
			};
			newSubgraphOutput.PortOrder = oldInput.Priority;

			newSubgraphOutput.InitializeNode();

			converter.AddNewSubgraphOutputID( newSubgraphOutput.OutputName );

			newNodes.Add( newSubgraphOutput );
		}
		
		return newNodes;
		*/
	}
}