From 0047111244120f6061360b7bdf047d184e55e6d0 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Wed, 18 Jun 2025 17:40:01 +0300 Subject: [PATCH] feat: added loggers to the universe --- Engine | 2 +- Platforms/Desktop/Program.cs | 14 +++++++++++++- Platforms/Server/Program.cs | 13 +++++++++++-- Shared/PongUniverse.cs | 10 +++++++--- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/Engine b/Engine index cf7061f..c3be8f6 160000 --- a/Engine +++ b/Engine @@ -1 +1 @@ -Subproject commit cf7061fd58189827edbf4ef3915636a6fd537d7c +Subproject commit c3be8f60b7e78984bb73501dc4d273a05b1331d2 diff --git a/Platforms/Desktop/Program.cs b/Platforms/Desktop/Program.cs index d2fd4fe..09aaa36 100644 --- a/Platforms/Desktop/Program.cs +++ b/Platforms/Desktop/Program.cs @@ -1,14 +1,26 @@ using System; +using System.IO; using System.Linq; using Microsoft.Xna.Framework.Graphics; using Syntriax.Engine.Core; +using Syntriax.Engine.Core.Debug; using Syntriax.Engine.Integration.MonoGame; bool isServerEnabled = Environment.GetCommandLineArgs().FirstOrDefault(x => x.CompareTo("--server") == 0) is not null; -IUniverse universe = Pong.PongUniverse.GetPongUniverse(isServerEnabled, isClientEnabled: true); +Universe universe = new(); + +FileLogger fileLogger = new($"{Path.Combine(Directory.GetCurrentDirectory(), "logs", DateTime.UtcNow.ToString("yyyy-MM-dd_HH-mm-ss"))}.log"); + +#if DEBUG +universe.InstantiateUniverseObject().SetUniverseObject("Logger").BehaviourController.AddBehaviour().Logger = new LoggerWrapper(fileLogger, new ConsoleLogger()); +#else +universe.InstantiateUniverseObject().SetUniverseObject("Logger").BehaviourController.AddBehaviour().Logger = firstLogger; +#endif + +Pong.PongUniverse.ApplyPongUniverse(universe, isServerEnabled, isClientEnabled: true); universe.InstantiateUniverseObject().SetUniverseObject("Desktop HO") .BehaviourController.AddBehaviour(); diff --git a/Platforms/Server/Program.cs b/Platforms/Server/Program.cs index d406b51..68f7050 100644 --- a/Platforms/Server/Program.cs +++ b/Platforms/Server/Program.cs @@ -1,8 +1,17 @@ using System; +using System.IO; using System.Threading; -using Syntriax.Engine.Core; -IUniverse universe = Pong.PongUniverse.GetPongUniverse(isServerEnabled: true, isClientEnabled: false); +using Syntriax.Engine.Core; +using Syntriax.Engine.Core.Debug; + +Universe universe = new(); + +FileLogger fileLogger = new($"{Path.Combine(Directory.GetCurrentDirectory(), "logs", DateTime.UtcNow.ToString("yyyy-MM-dd_HH-mm-ss"))}.log"); +universe.InstantiateUniverseObject().SetUniverseObject("Logger").BehaviourController + .AddBehaviour().Logger = new LoggerWrapper(fileLogger, new ConsoleLogger()); + +Pong.PongUniverse.ApplyPongUniverse(universe, isServerEnabled: true, isClientEnabled: false); DateTime lastRun = DateTime.UtcNow; TimeSpan interval = new(0, 0, 0, 0, 16); diff --git a/Shared/PongUniverse.cs b/Shared/PongUniverse.cs index a08c28c..ea1d800 100644 --- a/Shared/PongUniverse.cs +++ b/Shared/PongUniverse.cs @@ -15,10 +15,8 @@ namespace Pong; public static class PongUniverse { - public static IUniverse GetPongUniverse(bool isServerEnabled, bool isClientEnabled) + public static IUniverse ApplyPongUniverse(Universe universe, bool isServerEnabled, bool isClientEnabled) { - Universe universe = new(); - if (isServerEnabled) { LiteNetLibServer server = universe.InstantiateUniverseObject().SetUniverseObject("Server").BehaviourController.AddBehaviour(); @@ -118,4 +116,10 @@ public static class PongUniverse return universe; } + + public static IUniverse GetPongUniverse(bool isServerEnabled, bool isClientEnabled) + { + Universe universe = new(); + return ApplyPongUniverse(universe, isServerEnabled, isClientEnabled); + } }