45 lines
1.4 KiB
C#

using Microsoft.Xna.Framework.Graphics;
using Engine.Core;
using Engine.Core.Debug;
using Engine.Core.Serialization;
using Engine.Integration.MonoGame;
using Engine.Serializers.Yaml;
using Engine.Systems.Network;
using MyUniverse.Platforms.Desktop;
Universe universe = new();
ISerializer serializer = new YamlSerializer();
ILogger logger = new RotatingFileLogger("Logs", "MyGame");
#if DEBUG
logger = new LoggerWrapper(logger, new ConsoleLogger());
#endif
universe.InstantiateUniverseObject().SetUniverseObject("Logger")
.BehaviourController.AddBehaviour<LoggerContainer>().Logger = ILogger.Shared = logger;
universe.InstantiateUniverseObject().SetUniverseObject("Desktop Inputs")
.BehaviourController.AddBehaviour<DesktopInputs>();
universe.InstantiateUniverseObject().SetUniverseObject("Visual Managers")
.BehaviourController.AddBehaviour<DrawManager>()
.BehaviourController.AddBehaviour<LoadContentManager>();
/* For Networking
LiteNetLibClient client = universe.InstantiateUniverseObject().SetUniverseObject("Client").BehaviourController.AddBehaviour<LiteNetLibClient>();
client.BehaviourController.AddBehaviour<NetworkManager>();
universe.OnPreUpdate.AddOneTimeListener((_, _) => client.Connect("localhost", 8888));
*/
MyUniverse.Shared.UniverseSource.ApplyUniverse(universe);
using MonoGameWindow monoGameWindow = new(universe);
monoGameWindow.Graphics.GraphicsProfile = GraphicsProfile.HiDef;
monoGameWindow.Run();