public static string[] GetFilesOpenForEdit() { var assetServer = new AssetServer(); var files = System.IO.Directory.GetFiles("Assets/", "*", System.IO.SearchOption.AllDirectories); var open = new List <string>(); foreach (var file in files) { if (file.EndsWith(".meta")) { continue; } var guid = AssetDatabase.AssetPathToGUID(file); if (string.IsNullOrEmpty(guid)) { continue; } var status = assetServer.GetStatusGUID(guid); switch (status) { case AssetStatus.NewLocalVersion: case AssetStatus.ClientOnly: case AssetStatus.RestoredFromTrash: open.Add(file); break; } } return(open.ToArray()); }
static string[] GetGUIDS(Package package, string localRootPath) { var includeProjectSettings = package.IsCompleteProjects && !s_SkipProjectSettings; var str1 = "Assets" + (localRootPath ?? string.Empty); var chars = new[] { (char)47 }; var path1 = str1.Trim(chars); var assetsItemArray = AssetServer.BuildExportPackageAssetListAssetsItems(AssetServer.CollectAllChildren(AssetDatabase.AssetPathToGUID(path1), new string[0]), true); var list = new List <string>(); var str2 = path1.ToLower(); foreach (var assetsItem in assetsItemArray) { var str3 = AssetDatabase.GUIDToAssetPath(assetsItem.guid).ToLower(); if (str3.StartsWith("assets/plugins") || str3.Contains("standard assets") || str3.StartsWith(str2)) { list.Add(assetsItem.guid); } } if (includeProjectSettings) { foreach (var path2 in Directory.GetFiles("ProjectSettings")) { var str3 = AssetDatabase.AssetPathToGUID(path2); if (str3.Length > 0) { list.Add(str3); } } } var array = new string[list.Count]; list.CopyTo(array); return(array); }
static string[] GetGUIDS(Package package, string localRootPath) { var includeProjectSettings = package.IsCompleteProjects && !s_SkipProjectSettings; var str1 = "Assets" + (localRootPath ?? string.Empty); var chars = new[] { (char)47 }; var path1 = str1.Trim(chars); string[] guidArray = null; object[] assetsItemArray = null; if (typeof(DebugUtils).Assembly.GetType("UnityEditor.AssetServer") != null) { assetsItemArray = AssetServer.BuildExportPackageAssetListAssetsItems(AssetServer.CollectAllChildren(AssetDatabase.AssetPathToGUID(path1), new string[0]), true); } else { guidArray = Packager.BuildExportPackageAssetListGuids(Packager.CollectAllChildren(AssetDatabase.AssetPathToGUID(path1), new string[0]), true); } var list = new List <string>(); var str2 = path1.ToLower(); if (assetsItemArray != null) { foreach (var assetsItem in assetsItemArray) { var assetGuid = assetsItem.GetFieldValue <string>("guid"); var str3 = AssetDatabase.GUIDToAssetPath(assetGuid).ToLower(); if (str3.StartsWith("assets/plugins") || str3.Contains("standard assets") || str3.StartsWith(str2)) { list.Add(assetGuid); } } } else { foreach (var guid in guidArray) { var str3 = AssetDatabase.GUIDToAssetPath(guid).ToLower(); if (str3.StartsWith("assets/plugins") || str3.Contains("standard assets") || str3.StartsWith(str2)) { list.Add(guid); } } } if (includeProjectSettings) { foreach (var path2 in Directory.GetFiles("ProjectSettings")) { var str3 = AssetDatabase.AssetPathToGUID(path2); if (str3.Length > 0) { list.Add(str3); } } } var array = new string[list.Count]; list.CopyTo(array); return(array); }
static AssetServer() { s_Instance = new AssetServer(); }
public HelloWorld() : base("HelloWorld", new IPEndPoint(IPAddress.Parse("0.0.0.0"), 8080), new Method[] { Method.GET, Method.HEAD }, Path.Combine(Directory.GetCurrentDirectory(), "log"), "/HTTP") { Sessions = new WebApp.SessionStores.MemoryStore(); BasicServer.Response render(string text, string ct = "text/plain") { var headers = BasicServer.DefaultHeaders(); headers["Content-Type"] = ct; return(new BasicServer.Response() { Status = StatusCode.OK, Body = Encoding.UTF8.GetBytes(text), Headers = headers, }); } BasicServer.Response count(AdvancedServer.Request request) { var response_headers = BasicServer.DefaultHeaders(); WebApp.SessionStores.DictionarySession session; if (!request.Headers.Cookie.HasValue) { session = Sessions.Create(); response_headers["Set-Cookie"] = $"id={session.ID}"; } else { var cookie_str = request.Headers.Cookie.Value; var tok = cookie_str.Trim().Split(' ').Where(str => str.StartsWith("id=")).Select(s => s.TrimEnd(';')).Last(); var id = tok.Substring(3); if (!Sessions.HasSession(id)) { session = Sessions.Create(); response_headers["Set-Cookie"] = $"id={session.ID}"; } else { session = Sessions.Open(id); } } int hit_count; if (!session.HasKey("count")) { hit_count = 0; } else { hit_count = int.Parse(session["count"]); } session["count"] = $"{++hit_count}"; var response_text = $"count: {hit_count}"; return(new BasicServer.Response() { Status = StatusCode.OK, Headers = response_headers, Body = Encoding.UTF8.GetBytes(response_text), }); } Router.GET("/", (r => render("Hello, world!"))); Router.GET("/test", (r => render("test successful"))); Router.GET("/name/$name", (r, vars) => render($"hello, {vars["name"]}!")); Router.GET("/doublename/$name", (r, vars) => render($"{vars["name"]}{vars["name"]}")); Router.HEAD("/", (r => render("Hello, world!"))); Router.HEAD("/test", (r => render("test successful"))); Router.HEAD("/name/$name", (r, vars) => render($"hello, {vars["name"]}!")); Router.HEAD("/doublename/$name", (r, vars) => render($"{vars["name"]}{vars["name"]}")); //Router.GET("/foo/$bar/baz/$bar", r => render_plaintext("this shouldn't work!")); Router.GET("/count", count); Router.GET("/count/reset", request => { if (!request.Headers.Cookie.HasValue) { return(Server.RenderServerError(StatusCode.BAD_REQUEST)); } var cookie_str = request.Headers.Cookie.Value; var tok = cookie_str.Trim().Split(' ').Where(str => str.StartsWith("id=")).Select(s => s.TrimEnd(';')).Last(); var id = tok.Substring(3); if (Sessions.HasSession(id)) { Sessions.Destroy(Sessions.Open(id)); } var redirect = Redirect("/HTTP/count"); redirect.Headers["Set-Cookie"] = "id="; return(redirect); }); var assetsdir = Path.Combine(Directory.GetCurrentDirectory(), "assets"); if (Directory.Exists(assetsdir)) { AssetServer.Register(assetsdir, Router, "/assets", true); } var viewsdir = Path.Combine(Directory.GetCurrentDirectory(), "views"); if (Directory.Exists(viewsdir)) { Views = new TemplateEngine(viewsdir); var name_template = Views.Load("name.html.template"); Router.GET("/rendername/$name", (r, vars) => render(name_template.With(vars), "text/html")); } }