Skip to content

Commit

Permalink
🌐 Create ContentManager globally
Browse files Browse the repository at this point in the history
  • Loading branch information
tomrijnbeek committed Jan 1, 2024
1 parent 4b90261 commit 7b7bdff
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 21 deletions.
17 changes: 10 additions & 7 deletions src/Bearded.TD/TheGame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
using Bearded.Audio;
using Bearded.Graphics;
using Bearded.TD.Commands.Serialization;
using Bearded.TD.Content;
using Bearded.TD.Content.Mods;
using Bearded.TD.Game;
using Bearded.TD.Game.Players;
using Bearded.TD.Meta;
Expand Down Expand Up @@ -57,6 +59,7 @@ sealed class TheGame : Window

private InputManager inputManager = null!;
private RenderContext renderContext = null!;
private ContentManager contentManager = null!;
private RootControl rootControl = null!;
private UIUpdater uiUpdater = null!;
private EventManager eventManager = null!;
Expand Down Expand Up @@ -109,13 +112,8 @@ protected override void OnLoad()
UserSettings.Save(logger);
UserSettingsSchema.Initialize();

var dependencyResolver = new DependencyResolver();
dependencyResolver.Add(logger);
dependencyResolver.Add(activityTimer);
dependencyResolver.Add(
(IEnumerable<ImmutableArray<TimedActivity>>)recordedActivityTimes.AsReadOnlyEnumerable());

renderContext = new RenderContext(glActionQueue, logger);
contentManager = new ContentManager(logger, renderContext.GraphicsLoader, new ModLister().GetAll());

var drawers = renderContext.Drawers;
rendererRouter = new CachedRendererRouter(
Expand All @@ -136,8 +134,13 @@ protected override void OnLoad()
(typeof(Control), new FallbackBoxRenderer(drawers.ConsoleBackground)),
});

var dependencyResolver = new DependencyResolver();
dependencyResolver.Add(logger);
dependencyResolver.Add(activityTimer);
dependencyResolver.Add(
(IEnumerable<ImmutableArray<TimedActivity>>)recordedActivityTimes.AsReadOnlyEnumerable());
dependencyResolver.Add(renderContext);
dependencyResolver.Add(renderContext.GraphicsLoader);
dependencyResolver.Add(contentManager);

inputManager = new InputManager(NativeWindow);
dependencyResolver.Add(inputManager);
Expand Down
13 changes: 8 additions & 5 deletions src/Bearded.TD/UI/Controls/lobby/ServerLobbyManager.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using System.Linq;
using Bearded.Graphics;
using Bearded.TD.Content;
using Bearded.TD.Content.Mods;
using Bearded.TD.Game;
using Bearded.TD.Game.Loading;
using Bearded.TD.Game.Players;
Expand Down Expand Up @@ -72,10 +71,12 @@ private void doHeartbeat()
public override LoadingManager GetLoadingManager() => new ServerLoadingManager(Game, Network);

public static ServerLobbyManager CreateWithReadyPlayer(
ServerNetworkInterface networkInterface, Logger logger, IGraphicsLoader graphicsLoader,
ServerNetworkInterface networkInterface,
Logger logger,
ContentManager contentManager,
RenderContext renderContext)
{
var m = Create(networkInterface, logger, graphicsLoader, renderContext);
var m = Create(networkInterface, logger, contentManager, renderContext);

if (!m.Game.Content.EnabledMods.IsEmpty)
{
Expand All @@ -86,9 +87,11 @@ public static ServerLobbyManager CreateWithReadyPlayer(
}

public static ServerLobbyManager Create(
ServerNetworkInterface networkInterface, Logger logger, IGraphicsLoader graphicsLoader, RenderContext renderContext)
ServerNetworkInterface networkInterface,
Logger logger,
ContentManager contentManager,
RenderContext renderContext)
{
var contentManager = new ContentManager(logger, graphicsLoader, new ModLister().GetAllVisible());
var gameContent = new GameContent(contentManager);
gameContent.SetEnabledModsById(UserSettings.Instance.LastGameSettings.ActiveModIds);

Expand Down
7 changes: 3 additions & 4 deletions src/Bearded.TD/UI/Controls/lobbyList/LobbyList.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using System.Collections.Generic;
using Bearded.Graphics;
using Bearded.TD.Content;
using Bearded.TD.Content.Mods;
using Bearded.TD.Game;
using Bearded.TD.Game.Players;
using Bearded.TD.Meta;
Expand All @@ -18,7 +17,7 @@ namespace Bearded.TD.UI.Controls;
sealed class LobbyList : UpdateableNavigationNode<Void>, INetworkMessageHandler
{
private Logger logger = null!;
private IGraphicsLoader graphicsLoader = null!;
private ContentManager contentManager = null!;
private ClientNetworkInterface networkInterface = null!;
private RenderContext renderContext = null!;

Expand All @@ -32,7 +31,7 @@ protected override void Initialize(DependencyResolver dependencies, Void paramet
base.Initialize(dependencies, parameters);

logger = dependencies.Resolve<Logger>();
graphicsLoader = dependencies.Resolve<IGraphicsLoader>();
contentManager = dependencies.Resolve<ContentManager>();
renderContext = dependencies.Resolve<RenderContext>();

networkInterface = new ClientNetworkInterface();
Expand Down Expand Up @@ -106,7 +105,7 @@ private void goToLobby(NetIncomingMessage msg)
var info = LobbyPlayerInfo.FromBuffer(msg.SenderConnection.RemoteHailMessage);
var game = new GameInstance(
new ClientGameContext(networkInterface, logger),
new GameContent(new ContentManager(logger, graphicsLoader, new ModLister().GetAllVisible())),
new GameContent(contentManager),
new Player(info.Id, playerName) { ConnectionState = PlayerConnectionState.Connecting },
new IdManager(),
renderContext);
Expand Down
9 changes: 4 additions & 5 deletions src/Bearded.TD/UI/Controls/mainMenu/MainMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ namespace Bearded.TD.UI.Controls;
sealed class MainMenu : NavigationNode<Intent>
{
private Logger logger = null!;
private IGraphicsLoader graphicsLoader = null!;
private ContentManager contentManager = null!;
private RenderContext renderContext = null!;

protected override void Initialize(DependencyResolver dependencies, Intent intent)
{
logger = dependencies.Resolve<Logger>();
graphicsLoader = dependencies.Resolve<IGraphicsLoader>();
contentManager = dependencies.Resolve<ContentManager>();
renderContext = dependencies.Resolve<RenderContext>();

if (intent != Intent.None)
Expand All @@ -37,13 +37,12 @@ public void OnHostGameButtonClicked()
}

private void startLobby(
Func<ServerNetworkInterface, Logger, IGraphicsLoader,
RenderContext, ServerLobbyManager> lobbyManagerFactory
Func<ServerNetworkInterface, Logger, ContentManager, RenderContext, ServerLobbyManager> lobbyManagerFactory
)
{
var network = new ServerNetworkInterface();
network.RegisterMessageHandler(new NetworkDebugMessageHandler(logger));
var lobbyManager = lobbyManagerFactory(network, logger, graphicsLoader, renderContext);
var lobbyManager = lobbyManagerFactory(network, logger, contentManager, renderContext);
Navigation!.Replace<Lobby, LobbyManager>(lobbyManager, this);
}

Expand Down

0 comments on commit 7b7bdff

Please sign in to comment.