feat: added IGameInputs

This commit is contained in:
2025-08-09 18:30:07 +03:00
parent 9907aebe36
commit 182f96a16e
6 changed files with 153 additions and 10 deletions

View File

@@ -0,0 +1,11 @@
using Engine.Systems.Input;
namespace MyUniverse.Shared.Behaviours.Abstract;
public interface IGameInputs : IButtonInputs<IGameInputs.Button>
{
public enum Button
{
Interact
}
}

View File

@@ -1,31 +1,30 @@
using System;
using Engine.Core;
using Engine.Integration.MonoGame;
using Engine.Systems.Input;
using Microsoft.Xna.Framework.Input;
using MyUniverse.Shared.Behaviours.Abstract;
namespace MyUniverse.Shared.Behaviours;
public class RotatorToggler : Behaviour2D, IFirstFrameUpdate, ILastFrameUpdate
{
private IRotator rotator = null!;
private KeyboardInputs inputs = null!;
private IGameInputs inputs = null!;
public void FirstActiveFrame()
{
rotator = BehaviourController.GetRequiredBehaviour<IRotator>();
inputs = Universe.FindRequiredBehaviour<KeyboardInputs>();
inputs = Universe.FindRequiredBehaviour<IGameInputs>();
inputs.RegisterOnPress(Keys.Space, ToggleRotator);
inputs.RegisterOnPress(IGameInputs.Button.Interact, ToggleRotator);
}
private void ToggleRotator(IButtonInputs<Keys> sender, IButtonInputs<Keys>.ButtonCallbackArguments args)
private void ToggleRotator(IButtonInputs<IGameInputs.Button> sender, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments args)
{
rotator.StateEnable.Enabled = !rotator.StateEnable.Enabled;
}
public void LastActiveFrame()
{
inputs.UnregisterOnPress(Keys.Space, ToggleRotator);
inputs.UnregisterOnPress(IGameInputs.Button.Interact, ToggleRotator);
}
}