From 730b21467eabd22823d4094425699437b4cccf52 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Tue, 28 Oct 2025 08:50:36 +0300 Subject: [PATCH] fix: server platform build issues --- .vscode/launch.json | 2 +- Platforms/Android/Program.cs | 1 + Platforms/Desktop/Program.cs | 1 + Platforms/Server/Endpoints.cs | 2 +- Platforms/Server/Program.cs | 6 ++++++ Shared/Behaviours/RotatorToggler.cs | 9 +++++---- Shared/UniverseSource.cs | 15 +++++++++++---- 7 files changed, 26 insertions(+), 10 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 0780f96..906ef51 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -38,7 +38,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "build-server", - "program": "${workspaceFolder}/Platforms/Server/bin/Debug/net9.0/Server.dll", + "program": "${workspaceFolder}/Platforms/Server/bin/Debug/net9.0/MyUniverse.dll", "args": [], "env": { "PORT": "8888", diff --git a/Platforms/Android/Program.cs b/Platforms/Android/Program.cs index ceb283a..1521df3 100644 --- a/Platforms/Android/Program.cs +++ b/Platforms/Android/Program.cs @@ -50,6 +50,7 @@ namespace MyUniverse.Platforms.Android universe.OnPreUpdate.AddOneTimeListener((_, _) => client.Connect("localhost", 8888)); */ + Shared.UniverseSource.ApplyClient(universe); Shared.UniverseSource.ApplyUniverse(universe); _game = new MonoGameWindow(universe); diff --git a/Platforms/Desktop/Program.cs b/Platforms/Desktop/Program.cs index 844eb0e..df8958b 100644 --- a/Platforms/Desktop/Program.cs +++ b/Platforms/Desktop/Program.cs @@ -38,6 +38,7 @@ client.BehaviourController.AddBehaviour(); universe.OnPreUpdate.AddOneTimeListener((_, _) => client.Connect("localhost", 8888)); */ +MyUniverse.Shared.UniverseSource.ApplyClient(universe); MyUniverse.Shared.UniverseSource.ApplyUniverse(universe); monoGameWindow.Graphics.GraphicsProfile = GraphicsProfile.HiDef; diff --git a/Platforms/Server/Endpoints.cs b/Platforms/Server/Endpoints.cs index 57402d6..c6b8053 100644 --- a/Platforms/Server/Endpoints.cs +++ b/Platforms/Server/Endpoints.cs @@ -9,7 +9,7 @@ using Microsoft.Extensions.DependencyInjection; using Engine.Core; using Engine.Systems.Network; -namespace Server; +namespace MyUniverse.Platforms.Server; public class Endpoints : Behaviour, IFirstFrameUpdate, ILastFrameUpdate { diff --git a/Platforms/Server/Program.cs b/Platforms/Server/Program.cs index 216753b..614c04b 100644 --- a/Platforms/Server/Program.cs +++ b/Platforms/Server/Program.cs @@ -5,6 +5,8 @@ using Engine.Core; using Engine.Core.Debug; using Engine.Systems.Network; +using MyUniverse.Platforms.Server; + Universe universe = new(); RotatingFileLogger fileLogger = new("Logs", "MyGame", DateTime.UtcNow.ToString("yyyy-MM-dd_HH-mm-ss-ffffff")); @@ -14,9 +16,13 @@ universe.InstantiateUniverseObject().SetUniverseObject("Logger") .BehaviourController.AddBehaviour(); LiteNetLibServer server = universe.InstantiateUniverseObject().SetUniverseObject("Server").BehaviourController.AddBehaviour(); + +server.BehaviourController.AddBehaviour(); server.BehaviourController.AddBehaviour(); + universe.OnPreUpdate.AddOneTimeListener((_, _) => server.Start(8888, 2)); +MyUniverse.Shared.UniverseSource.ApplyCore(universe); MyUniverse.Shared.UniverseSource.ApplyUniverse(universe); DateTime lastRun = DateTime.UtcNow; diff --git a/Shared/Behaviours/RotatorToggler.cs b/Shared/Behaviours/RotatorToggler.cs index 9088603..1a7415c 100644 --- a/Shared/Behaviours/RotatorToggler.cs +++ b/Shared/Behaviours/RotatorToggler.cs @@ -8,14 +8,14 @@ namespace MyUniverse.Shared.Behaviours; public class RotatorToggler : Behaviour2D, IFirstFrameUpdate, ILastFrameUpdate { private IRotator rotator = null!; - private IGameInputs inputs = null!; + private IGameInputs? inputs = null; public void FirstActiveFrame() { rotator = BehaviourController.GetRequiredBehaviour(); - inputs = Universe.FindRequiredBehaviour(); + inputs = Universe.FindBehaviour(); - inputs.RegisterOnPress(IGameInputs.Button.Interact, ToggleRotator); + inputs?.RegisterOnPress(IGameInputs.Button.Interact, ToggleRotator); } private void ToggleRotator(IButtonInputs sender, IButtonInputs.ButtonCallbackArguments args) @@ -25,6 +25,7 @@ public class RotatorToggler : Behaviour2D, IFirstFrameUpdate, ILastFrameUpdate public void LastActiveFrame() { - inputs.UnregisterOnPress(IGameInputs.Button.Interact, ToggleRotator); + inputs?.UnregisterOnPress(IGameInputs.Button.Interact, ToggleRotator); + inputs = null; } } diff --git a/Shared/UniverseSource.cs b/Shared/UniverseSource.cs index 6a7af81..2e06fe6 100644 --- a/Shared/UniverseSource.cs +++ b/Shared/UniverseSource.cs @@ -12,12 +12,21 @@ public static class UniverseSource public static void ApplyCore(IUniverse universe) { IUniverseObject coreManagersUO = universe.InstantiateUniverseObject().SetUniverseObject("Core Managers"); + coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Entrance Manager").BehaviourController.AddBehaviour().UniverseObject); coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Update Manager").BehaviourController.AddBehaviour().UniverseObject); coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Coroutine Manager").BehaviourController.AddBehaviour().UniverseObject); coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Tween Manager").BehaviourController.AddBehaviour().UniverseObject); - coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Sprite Batcher").BehaviourController.AddBehaviour().UniverseObject); - coreManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Triangle Batcher").BehaviourController.AddBehaviour().UniverseObject); + } + + public static void ApplyClient(IUniverse universe) + { + ApplyCore(universe); + + IUniverseObject clientManagersUO = universe.InstantiateUniverseObject().SetUniverseObject("Core Managers"); + clientManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Sprite Batcher").BehaviourController.AddBehaviour().UniverseObject); + clientManagersUO.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Triangle Batcher").BehaviourController.AddBehaviour().UniverseObject); + MonoGameCamera2D camera = universe.InstantiateUniverseObject().SetUniverseObject("Camera") .BehaviourController.AddBehaviour() @@ -28,8 +37,6 @@ public static class UniverseSource public static void ApplyUniverse(IUniverse universe) { - ApplyCore(universe); - IUniverseObject exampleObject = universe.InstantiateUniverseObject().SetUniverseObject("Example Object"); ExampleBehaviour exampleBehaviour = exampleObject.BehaviourController.AddBehaviour();