Exemple #1
0
    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());
    }
Exemple #2
0
    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);
    }
Exemple #3
0
    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);
    }
Exemple #4
0
 static AssetServer()
 {
     s_Instance = new AssetServer();
 }
Exemple #5
0
        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"));
            }
        }