public static String PluginsScripts(this HtmlHelper html, IEnumerable <ICorePlugin> plugins) { var sb = new StringBuilder(); var externalScripts = new List <String>(); foreach (var plugin in plugins) { //get plugin inner scripts package path var path = AssetsHelper.GetPluginInnerJsVirtualPath(plugin, ApplicationUtility.Path, html.ViewContext.HttpContext.Request.PhysicalApplicationPath); if (!String.IsNullOrEmpty(path)) { sb.Append(AssetsExtensions.JavascriptHelper(html.ViewContext.HttpContext, path)); } if (!String.IsNullOrEmpty(plugin.CssJsConfigPath) && !String.IsNullOrEmpty(plugin.JsPack)) { externalScripts.AddRange(AssetsHelper.GetPluginJsPackFiles(plugin.JsPack, Path.Combine(plugin.PluginDirectory, plugin.CssJsConfigPath), OuterPluginTypeName)); } } externalScripts.Distinct(); //add external scripts foreach (var item in externalScripts) { sb.Append(html.JavascriptInclude(item)); } return(sb.ToString()); }
private void Start() { foreach (R.E.Scene scene in scenes) { string sceneName = R.S.Scene.ToString(scene); #if UNITY_EDITOR //Can't load scene if it is not in the BuildSettings. Can only check this while in Editor. string scenePath = AssetsExtensions.FindScenePath(sceneName).Replace("\\", "/"); bool founded = false; foreach (UnityEditor.EditorBuildSettingsScene sceneInBuildSettings in UnityEditor.EditorBuildSettings.scenes) { if (sceneInBuildSettings.path == scenePath) { founded = true; break; } } if (!founded) { throw new Exception("Unable to load utilitary scene named \"" + sceneName + "\". It is not in the Unity BuildSettings. " + "Thus, Unity can't load it. To solve this, go to the \"Harmony/Settings\" menu and add it to the Utilitary" + "Scenes. If it's already added, just click the \"Harmony/Generate Build Settings From Activities\" " + "and try again."); } #endif SceneManager.LoadScene(sceneName, mode); } }
private Activity GetCurrentPreloadedActivityInEditor() { foreach (Activity activity in AssetsExtensions.FindAssets <Activity>()) { bool hasAllScenesLoaded = true; if (activity.Scene != R.E.Scene.None) { hasAllScenesLoaded &= SceneManagerExtensions.IsSceneLoaded(R.S.Scene.ToString(activity.Scene)); } foreach (Fragment fragment in activity.Fragments) { if (fragment.Scene != R.E.Scene.None) { hasAllScenesLoaded &= SceneManagerExtensions.IsSceneLoaded(R.S.Scene.ToString(fragment.Scene)); } } foreach (Menu menu in activity.Menus) { if (menu.Scene != R.E.Scene.None) { hasAllScenesLoaded &= SceneManagerExtensions.IsSceneLoaded(R.S.Scene.ToString(menu.Scene)); } } if (hasAllScenesLoaded) { return(activity); } } return(null); }
private Activity GetCurrentPreloadedActivityInEditor() { IList <string> loadedScenes = SceneManagerExtensions.GetLoadedScenes(); //Startup scene and Utilitary scenes should be ignored. They should not //be in any activity. Configuration configuration = Configuration.Get(); loadedScenes.Remove(R.S.Scene.ToString(configuration.StartingScene)); foreach (R.E.Scene scene in configuration.UtilitaryScenes) { loadedScenes.Remove(R.S.Scene.ToString(scene)); } //If any activity scenes matches the currently loaded scenes, then this is //the current activity. foreach (Activity activity in AssetsExtensions.FindAssets <Activity>()) { bool hasAllScenesLoaded = true; foreach (string scene in activity.GetScenes()) { hasAllScenesLoaded &= loadedScenes.Contains(scene); } if (hasAllScenesLoaded) { return(activity); } } return(null); }
public void ProcessRequest(HttpContext context) { String common = context.Request.QueryString[CommonPackage]; String package = context.Request.QueryString[SinglePackage]; context.Response.ContentType = CssContentType; context.Response.Cache.VaryByHeaders["Accept-Encoding"] = true; context.Response.Cache.SetExpires(DateTime.Now.AddYears(1)); //context.Response.Cache.SetCacheability(HttpCacheability.Public); if (!String.IsNullOrEmpty(common)) { var ids = common.Split('_').ToList(); var idsLong = new List <long>(); ids.ForEach(t => { long id; if (long.TryParse(t, out id)) { idsLong.Add(id); } }); var plugins = ServiceLocator.Current.GetInstance <IPluginService>().FindPluginsByIds(idsLong); var file = AssetsExtensions.CssPluginPackHelper(context, Application.Plugins.Where(t => plugins.Any(temp => temp.Identifier == t.Identifier)), common, null); if (!String.IsNullOrEmpty(file)) { context.Response.WriteFile(file); return; } } if (!String.IsNullOrEmpty(package)) { var file = AssetsHelper.BuildPluginCssPack(Application.Plugins.Where(t => t.Identifier == package).SingleOrDefault(), context.Request.PhysicalApplicationPath); if (!String.IsNullOrEmpty(file)) { context.Response.WriteFile(file); return; } } }