chore: updated engine with the more readable button inputs syntax
This commit is contained in:
parent
80d29a71ed
commit
24a09dcaa3
2
Engine
2
Engine
@ -1 +1 @@
|
|||||||
Subproject commit a4b83679b1c45313b57a7a2581547aacf9f3064f
|
Subproject commit 746d29fb7a0f71bd01b9237f73022eee0a58e1f9
|
@ -11,17 +11,17 @@ namespace MyUniverse.Platforms.Android;
|
|||||||
|
|
||||||
public class MobileInputs : Behaviour, IUpdate, IGameInputs
|
public class MobileInputs : Behaviour, IUpdate, IGameInputs
|
||||||
{
|
{
|
||||||
public Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> OnAnyButtonPressed { get; } = new();
|
public IButtonInputs<IGameInputs.Button>.InputEvent OnAnyButtonPressed { get; } = new();
|
||||||
public Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> OnAnyButtonReleased { 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, IButtonInputs<IGameInputs.Button>.InputEvent> 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> OnReleased = new(256);
|
||||||
|
|
||||||
private TouchCollection touchCollection = default;
|
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);
|
@event.AddListener(callback);
|
||||||
return;
|
return;
|
||||||
@ -32,15 +32,15 @@ public class MobileInputs : Behaviour, IUpdate, IGameInputs
|
|||||||
OnPressed.Add(key, @event);
|
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);
|
@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);
|
@event.AddListener(callback);
|
||||||
return;
|
return;
|
||||||
@ -51,9 +51,9 @@ public class MobileInputs : Behaviour, IUpdate, IGameInputs
|
|||||||
OnReleased.Add(key, @event);
|
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);
|
@event.RemoveListener(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,13 +66,13 @@ public class MobileInputs : Behaviour, IUpdate, IGameInputs
|
|||||||
TouchLocation touchLocation = touchCollection[(int)IGameInputs.Button.Interact];
|
TouchLocation touchLocation = touchCollection[(int)IGameInputs.Button.Interact];
|
||||||
if (touchLocation.State == TouchLocationState.Pressed)
|
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));
|
@event.Invoke(this, new(IGameInputs.Button.Interact));
|
||||||
OnAnyButtonPressed?.Invoke(this, new(IGameInputs.Button.Interact));
|
OnAnyButtonPressed?.Invoke(this, new(IGameInputs.Button.Interact));
|
||||||
}
|
}
|
||||||
else if (touchLocation.State == TouchLocationState.Released)
|
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));
|
@event.Invoke(this, new(IGameInputs.Button.Interact));
|
||||||
OnAnyButtonReleased?.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;
|
using MyUniverse.Shared.Behaviours.Abstract;
|
||||||
|
|
||||||
|
namespace MyUniverse.Platforms.Desktop;
|
||||||
|
|
||||||
public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGameInputs
|
public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGameInputs
|
||||||
{
|
{
|
||||||
public Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> OnAnyButtonPressed { get; } = new();
|
public IButtonInputs<IGameInputs.Button>.InputEvent OnAnyButtonPressed { get; } = new();
|
||||||
public Event<IButtonInputs<IGameInputs.Button>, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments> OnAnyButtonReleased { 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, IButtonInputs<IGameInputs.Button>.InputEvent> 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> OnReleased = new(256);
|
||||||
|
|
||||||
private readonly Dictionary<IGameInputs.Button, Keys> keyMappingReversed = [];
|
private readonly Dictionary<IGameInputs.Button, Keys> keyMappingReversed = [];
|
||||||
private readonly Dictionary<Keys, IGameInputs.Button> keyMapping = new() {
|
private readonly Dictionary<Keys, IGameInputs.Button> keyMapping = new() {
|
||||||
{ Keys.Space, IGameInputs.Button.Interact }
|
{ Keys.Space, IGameInputs.Button.Interact }
|
||||||
};
|
};
|
||||||
|
|
||||||
private KeyboardInputs keyboardInputs = null!;
|
private KeyboardInputs keyboardInputs = null!;
|
||||||
|
|
||||||
@ -54,7 +56,7 @@ public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGame
|
|||||||
if (!keyMapping.TryGetValue(args.Button, out IGameInputs.Button button))
|
if (!keyMapping.TryGetValue(args.Button, out IGameInputs.Button button))
|
||||||
return;
|
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;
|
return;
|
||||||
|
|
||||||
@event.Invoke(this, new(button));
|
@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))
|
if (!keyMapping.TryGetValue(args.Button, out IGameInputs.Button button))
|
||||||
return;
|
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;
|
return;
|
||||||
|
|
||||||
@event.Invoke(this, new(button));
|
@event.Invoke(this, new(button));
|
||||||
@ -83,9 +85,9 @@ public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGame
|
|||||||
OnAnyButtonPressed?.Invoke(this, new(button));
|
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();
|
@event = new();
|
||||||
OnPressed.Add(button, @event);
|
OnPressed.Add(button, @event);
|
||||||
@ -94,15 +96,15 @@ public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGame
|
|||||||
@event.AddListener(callback);
|
@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);
|
@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();
|
@event = new();
|
||||||
OnReleased.Add(button, @event);
|
OnReleased.Add(button, @event);
|
||||||
@ -111,9 +113,9 @@ public class DesktopInputs : BehaviourBase, IEnterUniverse, IExitUniverse, IGame
|
|||||||
@event.AddListener(callback);
|
@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);
|
@event.RemoveListener(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,8 @@ using Engine.Integration.MonoGame;
|
|||||||
using Engine.Serializers.Yaml;
|
using Engine.Serializers.Yaml;
|
||||||
using Engine.Systems.Network;
|
using Engine.Systems.Network;
|
||||||
|
|
||||||
|
using MyUniverse.Platforms.Desktop;
|
||||||
|
|
||||||
Universe universe = new();
|
Universe universe = new();
|
||||||
|
|
||||||
ISerializer serializer = new YamlSerializer();
|
ISerializer serializer = new YamlSerializer();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user