using System; namespace Unity.VisualScripting { public struct ScriptReference { /// /// The ID of the script in the source file. /// public int fileID; /// /// The GUID of the source file (script or DLL). /// public string guid; private ScriptReference(string guid, int fileID) { this.guid = guid; this.fileID = fileID; } public static ScriptReference Existing(Type type) { return new ScriptReference(ScriptUtility.GetScriptGuid(type), ScriptUtility.GetFileID(type)); } public static ScriptReference Manual(string guid, int fileID) { return new ScriptReference(guid, fileID); } public static ScriptReference Cs(string csGuid) { return new ScriptReference(csGuid, ScriptUtility.CsFileID); } public static ScriptReference Dll(string dllGuid, Type type) { return new ScriptReference(dllGuid, ScriptUtility.GetDllFileID(type)); } public static ScriptReference Dll(string dllGuid, string @namespace, string typeName) { return new ScriptReference(dllGuid, ScriptUtility.GetDllFileID(@namespace, typeName)); } public override string ToString() { return $"{{fileID: {fileID}, guid: {guid}, type: 3}}"; } } }