refactor: Nullable Keyboard Input Actions

This commit is contained in:
Syntriax 2024-02-13 11:08:53 +03:00
parent 6af84bcb6d
commit 89b756a615
1 changed files with 4 additions and 4 deletions

View File

@ -9,8 +9,8 @@ namespace Pong.Behaviours;
public class KeyboardInputsBehaviour : BehaviourOverride, IButtonInputs<Keys> public class KeyboardInputsBehaviour : BehaviourOverride, IButtonInputs<Keys>
{ {
private readonly Dictionary<Keys, Action<IButtonInputs<Keys>, Keys>> OnPressed = new(256); private readonly Dictionary<Keys, Action<IButtonInputs<Keys>, Keys>?> OnPressed = new(256);
private readonly Dictionary<Keys, Action<IButtonInputs<Keys>, Keys>> OnReleased = new(256); private readonly Dictionary<Keys, Action<IButtonInputs<Keys>, Keys>?> OnReleased = new(256);
private int cachePressedCurrentlyCount = 0; private int cachePressedCurrentlyCount = 0;
private readonly Keys[] cachePressedCurrently = new Keys[256]; private readonly Keys[] cachePressedCurrently = new Keys[256];
@ -68,7 +68,7 @@ public class KeyboardInputsBehaviour : BehaviourOverride, IButtonInputs<Keys>
if (WasPressed(currentlyPressedKey)) if (WasPressed(currentlyPressedKey))
continue; continue;
action.Invoke(this, currentlyPressedKey); action?.Invoke(this, currentlyPressedKey);
} }
for (int i = 0; i < cachePressedPreviouslyCount; i++) for (int i = 0; i < cachePressedPreviouslyCount; i++)
@ -81,7 +81,7 @@ public class KeyboardInputsBehaviour : BehaviourOverride, IButtonInputs<Keys>
if (IsPressed(previouslyPressedKey)) if (IsPressed(previouslyPressedKey))
continue; continue;
action.Invoke(this, previouslyPressedKey); action?.Invoke(this, previouslyPressedKey);
} }
Array.Copy(cachePressedCurrently, cachePressedPreviously, cachePressedCurrentlyCount); Array.Copy(cachePressedCurrently, cachePressedPreviously, cachePressedCurrentlyCount);