private void CheckSelfMod() { _Mod = null; var path = UnityEditor.AssetDatabase.GetAssetPath(this); if (!string.IsNullOrEmpty(path)) { _Mod = ""; if (path.StartsWith("Assets/Mods/")) { path = path.Substring("Assets/Mods/".Length); var im = path.IndexOf("/"); if (im > 0) { path = path.Substring(0, im); _Mod = path; } } else if (path.StartsWith("Packages/")) { path = path.Substring("Packages/".Length); var im = path.IndexOf("/"); if (im > 0) { path = path.Substring(0, im); _Mod = EditorToClientUtils.GetModNameFromPackageName(path); } } } }
public static string GetModNameFromPackageName(string package) { return(EditorToClientUtils.GetModNameFromPackageName(package)); }
public static string GetAssetNormPath(string rawpath, out string type, out string mod, out string dist) { if (rawpath != null) { rawpath = rawpath.Replace('\\', '/'); string norm = rawpath; mod = ""; if (rawpath.StartsWith("Assets/Mods/")) { var sub = rawpath.Substring("Assets/Mods/".Length); var index = sub.IndexOf('/'); if (index < 0) { mod = sub; type = null; dist = ""; return(""); } mod = sub.Substring(0, index); norm = sub.Substring(index + 1); } else if (rawpath.StartsWith("Packages/")) { var sub = rawpath.Substring("Packages/".Length); var index = sub.IndexOf('/'); if (index < 0) { mod = sub; } else { mod = sub.Substring(0, index); norm = sub.Substring(index + 1); } #if UNITY_EDITOR mod = EditorToClientUtils.GetModNameFromPackageName(mod); #endif if (index < 0) { type = null; dist = ""; return(""); } } else if (rawpath.StartsWith("Assets/")) { mod = ""; norm = rawpath.Substring("Assets/".Length); } else { mod = ""; dist = ""; type = null; return(rawpath); } if (norm.StartsWith("CapsSpt/")) { type = "spt"; norm = norm.Substring("CapsSpt/".Length); } else if (norm.StartsWith("CapsRes/")) { type = "res"; norm = norm.Substring("CapsRes/".Length); } else { dist = ""; type = null; if (string.IsNullOrEmpty(mod)) { return(rawpath); } else { return(norm); } } if (norm.StartsWith("dist/")) { var sub = norm.Substring("dist/".Length); var index = sub.IndexOf('/'); if (index < 0) { dist = sub; return(""); } dist = sub.Substring(0, index); norm = sub.Substring(index + 1); } else { dist = ""; } return(norm); } else { type = null; mod = null; dist = null; return(null); } }