using System; using Engine.Core; using Engine.Core.Debug; using Engine.Core.Serialization; using Engine.Serializers.Yaml; using Engine.Systems.Network; using Engine.Systems.Time; Universe universe = new(); ISerializer serializer = new YamlSerializer(); ILogger logger = new RotatingFileLogger("Logs", "MyUniverse"); #if DEBUG logger = new LoggerWrapper(logger, new ConsoleLogger()); #endif universe.InstantiateUniverseObject().SetUniverseObject("Logger") .BehaviourController.AddBehaviour().Logger = ILogger.Shared = logger; IUniverseObject desktopParent = universe.InstantiateUniverseObject().SetUniverseObject("Desktop"); universe.InstantiateUniverseObject().SetUniverseObject("Visual Managers", desktopParent) .BehaviourController.AddBehaviour(); /* For Networking LiteNetLibClient client = universe.InstantiateUniverseObject().SetUniverseObject("Client").BehaviourController.AddBehaviour(); client.BehaviourController.AddBehaviour(); universe.OnPreUpdate.AddOneTimeListener((_, _) => client.Connect("localhost", 8888)); */ MyUniverse.Shared.UniverseSource.ApplyCore(universe); MyUniverse.Shared.UniverseSource.ApplyUniverse(universe); desktopParent.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Triangle Batcher").BehaviourController.AddBehaviour().UniverseObject); universe.Initialize(); DateTime lastRun = DateTime.UtcNow; TimeSpan timeSinceStart = new(0); while (true) { DateTime now = DateTime.UtcNow; TimeSpan updateTimeSpan = now - lastRun; timeSinceStart += updateTimeSpan; universe.Update(new(timeSinceStart, updateTimeSpan)); lastRun = now; System.Threading.Thread.Sleep(1); }