chore: updated engine with the more readable button inputs syntax
This commit is contained in:
		
							
								
								
									
										2
									
								
								Engine
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								Engine
									
									
									
									
									
								
							 Submodule Engine updated: a4b83679b1...746d29fb7a
									
								
							@@ -11,17 +11,17 @@ namespace MyUniverse.Platforms.Android;
 | 
			
		||||
 | 
			
		||||
public class MobileInputs : Behaviour, IUpdate, IGameInputs
 | 
			
		||||
{
 | 
			
		||||
    public Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> OnAnyButtonPressed { get; } = new();
 | 
			
		||||
    public Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> OnAnyButtonReleased { get; } = new();
 | 
			
		||||
    public IButtonInputs<IGameInputs.Button>.InputEvent OnAnyButtonPressed { get; } = new();
 | 
			
		||||
    public IButtonInputs<IGameInputs.Button>.InputEvent OnAnyButtonReleased { get; } = new();
 | 
			
		||||
 | 
			
		||||
    private readonly Dictionary<IGameInputs.Button, Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>> OnPressed = new(256);
 | 
			
		||||
    private readonly Dictionary<IGameInputs.Button, Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>> OnReleased = new(256);
 | 
			
		||||
    private readonly Dictionary<IGameInputs.Button, IButtonInputs<IGameInputs.Button>.InputEvent> OnPressed = new(256);
 | 
			
		||||
    private readonly Dictionary<IGameInputs.Button, IButtonInputs<IGameInputs.Button>.InputEvent> OnReleased = new(256);
 | 
			
		||||
 | 
			
		||||
    private TouchCollection touchCollection = default;
 | 
			
		||||
 | 
			
		||||
    public void RegisterOnPress(IGameInputs.Button key, Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>.EventHandler callback)
 | 
			
		||||
    public void RegisterOnPress(IGameInputs.Button key, IButtonInputs<IGameInputs.Button>.InputEvent.EventHandler callback)
 | 
			
		||||
    {
 | 
			
		||||
        if (OnPressed.TryGetValue(key, out Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> @event))
 | 
			
		||||
        if (OnPressed.TryGetValue(key, out IButtonInputs<IGameInputs.Button>.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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>.EventHandler callback)
 | 
			
		||||
    public void UnregisterOnPress(IGameInputs.Button key, IButtonInputs<IGameInputs.Button>.InputEvent.EventHandler callback)
 | 
			
		||||
    {
 | 
			
		||||
        if (OnPressed.TryGetValue(key, out Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> @event))
 | 
			
		||||
        if (OnPressed.TryGetValue(key, out IButtonInputs<IGameInputs.Button>.InputEvent @event))
 | 
			
		||||
            @event.RemoveListener(callback);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void RegisterOnRelease(IGameInputs.Button key, Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>.EventHandler callback)
 | 
			
		||||
    public void RegisterOnRelease(IGameInputs.Button key, IButtonInputs<IGameInputs.Button>.InputEvent.EventHandler callback)
 | 
			
		||||
    {
 | 
			
		||||
        if (OnReleased.TryGetValue(key, out Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> @event))
 | 
			
		||||
        if (OnReleased.TryGetValue(key, out IButtonInputs<IGameInputs.Button>.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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>.EventHandler callback)
 | 
			
		||||
    public void UnregisterOnRelease(IGameInputs.Button key, IButtonInputs<IGameInputs.Button>.InputEvent.EventHandler callback)
 | 
			
		||||
    {
 | 
			
		||||
        if (OnReleased.TryGetValue(key, out Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> @event))
 | 
			
		||||
        if (OnReleased.TryGetValue(key, out IButtonInputs<IGameInputs.Button>.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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> @event))
 | 
			
		||||
                if (OnPressed.TryGetValue(IGameInputs.Button.Interact, out IButtonInputs<IGameInputs.Button>.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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> @event))
 | 
			
		||||
                if (OnReleased.TryGetValue(IGameInputs.Button.Interact, out IButtonInputs<IGameInputs.Button>.InputEvent @event))
 | 
			
		||||
                    @event.Invoke(this, new(IGameInputs.Button.Interact));
 | 
			
		||||
                OnAnyButtonReleased?.Invoke(this, new(IGameInputs.Button.Interact));
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
@@ -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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> OnAnyButtonPressed { get; } = new();
 | 
			
		||||
    public Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> OnAnyButtonReleased { get; } = new();
 | 
			
		||||
    public IButtonInputs<IGameInputs.Button>.InputEvent OnAnyButtonPressed { get; } = new();
 | 
			
		||||
    public IButtonInputs<IGameInputs.Button>.InputEvent OnAnyButtonReleased { get; } = new();
 | 
			
		||||
 | 
			
		||||
    private readonly Dictionary<IGameInputs.Button, Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>> OnPressed = new(256);
 | 
			
		||||
    private readonly Dictionary<IGameInputs.Button, Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>> OnReleased = new(256);
 | 
			
		||||
    private readonly Dictionary<IGameInputs.Button, IButtonInputs<IGameInputs.Button>.InputEvent> OnPressed = new(256);
 | 
			
		||||
    private readonly Dictionary<IGameInputs.Button, IButtonInputs<IGameInputs.Button>.InputEvent> OnReleased = new(256);
 | 
			
		||||
 | 
			
		||||
    private readonly Dictionary<IGameInputs.Button, Keys> keyMappingReversed = [];
 | 
			
		||||
    private readonly Dictionary<Keys, IGameInputs.Button> 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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>? @event))
 | 
			
		||||
        if (!OnPressed.TryGetValue(button, out IButtonInputs<IGameInputs.Button>.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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>? @event))
 | 
			
		||||
        if (!OnReleased.TryGetValue(button, out IButtonInputs<IGameInputs.Button>.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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>.EventHandler callback)
 | 
			
		||||
    public void RegisterOnPress(IGameInputs.Button button, IButtonInputs<IGameInputs.Button>.InputEvent.EventHandler callback)
 | 
			
		||||
    {
 | 
			
		||||
        if (!OnPressed.TryGetValue(button, out Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>? @event))
 | 
			
		||||
        if (!OnPressed.TryGetValue(button, out IButtonInputs<IGameInputs.Button>.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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>.EventHandler callback)
 | 
			
		||||
    public void UnregisterOnPress(IGameInputs.Button button, IButtonInputs<IGameInputs.Button>.InputEvent.EventHandler callback)
 | 
			
		||||
    {
 | 
			
		||||
        if (OnPressed.TryGetValue(button, out Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>? @event))
 | 
			
		||||
        if (OnPressed.TryGetValue(button, out IButtonInputs<IGameInputs.Button>.InputEvent? @event))
 | 
			
		||||
            @event.RemoveListener(callback);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void RegisterOnRelease(IGameInputs.Button button, Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>.EventHandler callback)
 | 
			
		||||
    public void RegisterOnRelease(IGameInputs.Button button, IButtonInputs<IGameInputs.Button>.InputEvent.EventHandler callback)
 | 
			
		||||
    {
 | 
			
		||||
        if (!OnReleased.TryGetValue(button, out Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>? @event))
 | 
			
		||||
        if (!OnReleased.TryGetValue(button, out IButtonInputs<IGameInputs.Button>.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<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>.EventHandler callback)
 | 
			
		||||
    public void UnregisterOnRelease(IGameInputs.Button button, IButtonInputs<IGameInputs.Button>.InputEvent.EventHandler callback)
 | 
			
		||||
    {
 | 
			
		||||
        if (OnReleased.TryGetValue(button, out Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments>? @event))
 | 
			
		||||
        if (OnReleased.TryGetValue(button, out IButtonInputs<IGameInputs.Button>.InputEvent? @event))
 | 
			
		||||
            @event.RemoveListener(callback);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user