From 5be429f46477a46a00ece09c2104160370070c97 Mon Sep 17 00:00:00 2001 From: Tom Rijnbeek Date: Mon, 1 Jan 2024 21:40:44 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=9E=EF=B8=8F=20Load=20Core=20UI=20mod?= =?UTF-8?q?=20on=20load?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Bearded.TD/Rendering/RenderContext.cs | 19 +------------------ src/Bearded.TD/TheGame.cs | 7 +++++++ 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/Bearded.TD/Rendering/RenderContext.cs b/src/Bearded.TD/Rendering/RenderContext.cs index 9352d4b1d..8148c9cd0 100644 --- a/src/Bearded.TD/Rendering/RenderContext.cs +++ b/src/Bearded.TD/Rendering/RenderContext.cs @@ -1,8 +1,4 @@ -using System.Collections.Generic; -using System.Linq; -using Bearded.TD.Content; -using Bearded.TD.Content.Mods; -using Bearded.TD.Game; +using Bearded.TD.Content; using Bearded.TD.Rendering.Loading; using Bearded.TD.Utilities; using Bearded.Utilities.IO; @@ -14,7 +10,6 @@ sealed class RenderContext { public CoreShaders Shaders { get; } public IGraphicsLoader GraphicsLoader { get; } - public Blueprints CoreAssets { get; } public CoreRenderers Renderers { get; } public DeferredRenderer DeferredRenderer { get; } @@ -26,24 +21,12 @@ public RenderContext(IActionQueue glActionQueue, Logger logger) { Shaders = new CoreShaders(); GraphicsLoader = new GraphicsLoader(Shaders.ShaderManager, glActionQueue, logger); - CoreAssets = loadCoreMod(new ModLoadingContext(logger, GraphicsLoader, new ModLoadingProfiler())); Settings = new CoreRenderSettings(); Renderers = new CoreRenderers(Shaders, Settings); DeferredRenderer = new DeferredRenderer(Settings, Shaders); Compositor = new FrameCompositor(logger, Settings, Shaders, Renderers, DeferredRenderer); Drawers = new CoreDrawers(Renderers, DeferredRenderer); - - } - - private static Blueprints loadCoreMod(ModLoadingContext context) - { - var meta = new ModLister().GetAll().First(m => m.Id == "core-ui"); - var dependencies = new List().AsReadOnly(); - - var mod = ModLoader.Load(context, meta, dependencies).GetAwaiter().GetResult(); - - return mod.Blueprints; } public void OnResize(ViewportSize viewportSize) diff --git a/src/Bearded.TD/TheGame.cs b/src/Bearded.TD/TheGame.cs index 39a79d716..1cd5b9a3a 100644 --- a/src/Bearded.TD/TheGame.cs +++ b/src/Bearded.TD/TheGame.cs @@ -60,6 +60,7 @@ sealed class TheGame : Window private InputManager inputManager = null!; private RenderContext renderContext = null!; private ContentManager contentManager = null!; + private IModLease coreMod = null!; private RootControl rootControl = null!; private UIUpdater uiUpdater = null!; private EventManager eventManager = null!; @@ -114,6 +115,12 @@ protected override void OnLoad() renderContext = new RenderContext(glActionQueue, logger); contentManager = new ContentManager(logger, renderContext.GraphicsLoader, new ModLister().GetAll()); + coreMod = contentManager.LeaseMod(contentManager.FindMod("core-ui")); + while (!coreMod.IsLoaded) + { + contentManager.Update(); + tryRunQueuedGlActionsFor(TimeSpan.FromMilliseconds(10)); + } var drawers = renderContext.Drawers; rendererRouter = new CachedRendererRouter(