From 24a09dcaa3f96392eb2066681611d41c4edf7997 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Sun, 10 Aug 2025 14:43:27 +0300 Subject: [PATCH] chore: updated engine with the more readable button inputs syntax --- Engine | 2 +- Platforms/Android/MobileInputs.cs | 28 ++++++++++++------------ Platforms/Desktop/DesktopInputs.cs | 34 ++++++++++++++++-------------- Platforms/Desktop/Program.cs | 2 ++ 4 files changed, 35 insertions(+), 31 deletions(-) diff --git a/Engine b/Engine index a4b8367..746d29f 160000 --- a/Engine +++ b/Engine @@ -1 +1 @@ -Subproject commit a4b83679b1c45313b57a7a2581547aacf9f3064f +Subproject commit 746d29fb7a0f71bd01b9237f73022eee0a58e1f9 diff --git a/Platforms/Android/MobileInputs.cs b/Platforms/Android/MobileInputs.cs index 9055ffc..7c96732 100644 --- a/Platforms/Android/MobileInputs.cs +++ b/Platforms/Android/MobileInputs.cs @@ -11,17 +11,17 @@ namespace MyUniverse.Platforms.Android; public class MobileInputs : Behaviour, IUpdate, IGameInputs { - public Event, IButtonInputs.ButtonCallbackArguments> OnAnyButtonPressed { get; } = new(); - public Event, IButtonInputs.ButtonCallbackArguments> OnAnyButtonReleased { get; } = new(); + public IButtonInputs.InputEvent OnAnyButtonPressed { get; } = new(); + public IButtonInputs.InputEvent OnAnyButtonReleased { get; } = new(); - private readonly Dictionary, IButtonInputs.ButtonCallbackArguments>> OnPressed = new(256); - private readonly Dictionary, IButtonInputs.ButtonCallbackArguments>> OnReleased = new(256); + private readonly Dictionary.InputEvent> OnPressed = new(256); + private readonly Dictionary.InputEvent> OnReleased = new(256); private TouchCollection touchCollection = default; - public void RegisterOnPress(IGameInputs.Button key, Event, IButtonInputs.ButtonCallbackArguments>.EventHandler callback) + public void RegisterOnPress(IGameInputs.Button key, IButtonInputs.InputEvent.EventHandler callback) { - if (OnPressed.TryGetValue(key, out Event, IButtonInputs.ButtonCallbackArguments> @event)) + if (OnPressed.TryGetValue(key, out IButtonInputs.InputEvent @event)) { @event.AddListener(callback); return; @@ -32,15 +32,15 @@ public class MobileInputs : Behaviour, IUpdate, IGameInputs OnPressed.Add(key, @event); } - public void UnregisterOnPress(IGameInputs.Button key, Event, IButtonInputs.ButtonCallbackArguments>.EventHandler callback) + public void UnregisterOnPress(IGameInputs.Button key, IButtonInputs.InputEvent.EventHandler callback) { - if (OnPressed.TryGetValue(key, out Event, IButtonInputs.ButtonCallbackArguments> @event)) + if (OnPressed.TryGetValue(key, out IButtonInputs.InputEvent @event)) @event.RemoveListener(callback); } - public void RegisterOnRelease(IGameInputs.Button key, Event, IButtonInputs.ButtonCallbackArguments>.EventHandler callback) + public void RegisterOnRelease(IGameInputs.Button key, IButtonInputs.InputEvent.EventHandler callback) { - if (OnReleased.TryGetValue(key, out Event, IButtonInputs.ButtonCallbackArguments> @event)) + if (OnReleased.TryGetValue(key, out IButtonInputs.InputEvent @event)) { @event.AddListener(callback); return; @@ -51,9 +51,9 @@ public class MobileInputs : Behaviour, IUpdate, IGameInputs OnReleased.Add(key, @event); } - public void UnregisterOnRelease(IGameInputs.Button key, Event, IButtonInputs.ButtonCallbackArguments>.EventHandler callback) + public void UnregisterOnRelease(IGameInputs.Button key, IButtonInputs.InputEvent.EventHandler callback) { - if (OnReleased.TryGetValue(key, out Event, IButtonInputs.ButtonCallbackArguments> @event)) + if (OnReleased.TryGetValue(key, out IButtonInputs.InputEvent @event)) @event.RemoveListener(callback); } @@ -66,13 +66,13 @@ public class MobileInputs : Behaviour, IUpdate, IGameInputs TouchLocation touchLocation = touchCollection[(int)IGameInputs.Button.Interact]; if (touchLocation.State == TouchLocationState.Pressed) { - if (OnPressed.TryGetValue(IGameInputs.Button.Interact, out Event, IButtonInputs.ButtonCallbackArguments> @event)) + if (OnPressed.TryGetValue(IGameInputs.Button.Interact, out IButtonInputs.InputEvent @event)) @event.Invoke(this, new(IGameInputs.Button.Interact)); OnAnyButtonPressed?.Invoke(this, new(IGameInputs.Button.Interact)); } else if (touchLocation.State == TouchLocationState.Released) { - if (OnReleased.TryGetValue(IGameInputs.Button.Interact, out Event, IButtonInputs.ButtonCallbackArguments> @event)) + if (OnReleased.TryGetValue(IGameInputs.Button.Interact, out IButtonInputs.InputEvent @event)) @event.Invoke(this, new(IGameInputs.Button.Interact)); OnAnyButtonReleased?.Invoke(this, new(IGameInputs.Button.Interact)); } diff --git a/Platforms/Desktop/DesktopInputs.cs b/Platforms/Desktop/DesktopInputs.cs index 31c391e..830bfbc 100644 --- a/Platforms/Desktop/DesktopInputs.cs +++ b/Platforms/Desktop/DesktopInputs.cs @@ -9,18 +9,20 @@ using Engine.Systems.Input; using MyUniverse.Shared.Behaviours.Abstract; +namespace MyUniverse.Platforms.Desktop; + public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGameInputs { - public Event, IButtonInputs.ButtonCallbackArguments> OnAnyButtonPressed { get; } = new(); - public Event, IButtonInputs.ButtonCallbackArguments> OnAnyButtonReleased { get; } = new(); + public IButtonInputs.InputEvent OnAnyButtonPressed { get; } = new(); + public IButtonInputs.InputEvent OnAnyButtonReleased { get; } = new(); - private readonly Dictionary, IButtonInputs.ButtonCallbackArguments>> OnPressed = new(256); - private readonly Dictionary, IButtonInputs.ButtonCallbackArguments>> OnReleased = new(256); + private readonly Dictionary.InputEvent> OnPressed = new(256); + private readonly Dictionary.InputEvent> OnReleased = new(256); private readonly Dictionary keyMappingReversed = []; private readonly Dictionary keyMapping = new() { - { Keys.Space, IGameInputs.Button.Interact } - }; + { Keys.Space, IGameInputs.Button.Interact } +}; private KeyboardInputs keyboardInputs = null!; @@ -54,7 +56,7 @@ public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGame if (!keyMapping.TryGetValue(args.Button, out IGameInputs.Button button)) return; - if (!OnPressed.TryGetValue(button, out Event, IButtonInputs.ButtonCallbackArguments>? @event)) + if (!OnPressed.TryGetValue(button, out IButtonInputs.InputEvent? @event)) return; @event.Invoke(this, new(button)); @@ -65,7 +67,7 @@ public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGame if (!keyMapping.TryGetValue(args.Button, out IGameInputs.Button button)) return; - if (!OnReleased.TryGetValue(button, out Event, IButtonInputs.ButtonCallbackArguments>? @event)) + if (!OnReleased.TryGetValue(button, out IButtonInputs.InputEvent? @event)) return; @event.Invoke(this, new(button)); @@ -83,9 +85,9 @@ public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGame OnAnyButtonPressed?.Invoke(this, new(button)); } - public void RegisterOnPress(IGameInputs.Button button, Event, IButtonInputs.ButtonCallbackArguments>.EventHandler callback) + public void RegisterOnPress(IGameInputs.Button button, IButtonInputs.InputEvent.EventHandler callback) { - if (!OnPressed.TryGetValue(button, out Event, IButtonInputs.ButtonCallbackArguments>? @event)) + if (!OnPressed.TryGetValue(button, out IButtonInputs.InputEvent? @event)) { @event = new(); OnPressed.Add(button, @event); @@ -94,15 +96,15 @@ public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGame @event.AddListener(callback); } - public void UnregisterOnPress(IGameInputs.Button button, Event, IButtonInputs.ButtonCallbackArguments>.EventHandler callback) + public void UnregisterOnPress(IGameInputs.Button button, IButtonInputs.InputEvent.EventHandler callback) { - if (OnPressed.TryGetValue(button, out Event, IButtonInputs.ButtonCallbackArguments>? @event)) + if (OnPressed.TryGetValue(button, out IButtonInputs.InputEvent? @event)) @event.RemoveListener(callback); } - public void RegisterOnRelease(IGameInputs.Button button, Event, IButtonInputs.ButtonCallbackArguments>.EventHandler callback) + public void RegisterOnRelease(IGameInputs.Button button, IButtonInputs.InputEvent.EventHandler callback) { - if (!OnReleased.TryGetValue(button, out Event, IButtonInputs.ButtonCallbackArguments>? @event)) + if (!OnReleased.TryGetValue(button, out IButtonInputs.InputEvent? @event)) { @event = new(); OnReleased.Add(button, @event); @@ -111,9 +113,9 @@ public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGame @event.AddListener(callback); } - public void UnregisterOnRelease(IGameInputs.Button button, Event, IButtonInputs.ButtonCallbackArguments>.EventHandler callback) + public void UnregisterOnRelease(IGameInputs.Button button, IButtonInputs.InputEvent.EventHandler callback) { - if (OnReleased.TryGetValue(button, out Event, IButtonInputs.ButtonCallbackArguments>? @event)) + if (OnReleased.TryGetValue(button, out IButtonInputs.InputEvent? @event)) @event.RemoveListener(callback); } diff --git a/Platforms/Desktop/Program.cs b/Platforms/Desktop/Program.cs index ba1cde5..7b4a81e 100644 --- a/Platforms/Desktop/Program.cs +++ b/Platforms/Desktop/Program.cs @@ -7,6 +7,8 @@ using Engine.Integration.MonoGame; using Engine.Serializers.Yaml; using Engine.Systems.Network; +using MyUniverse.Platforms.Desktop; + Universe universe = new(); ISerializer serializer = new YamlSerializer();