feat: added IGameInputs
This commit is contained in:
11
Shared/Behaviours/Abstract/IGameInputs.cs
Normal file
11
Shared/Behaviours/Abstract/IGameInputs.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Engine.Systems.Input;
|
||||
|
||||
namespace MyUniverse.Shared.Behaviours.Abstract;
|
||||
|
||||
public interface IGameInputs : IButtonInputs<IGameInputs.Button>
|
||||
{
|
||||
public enum Button
|
||||
{
|
||||
Interact
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user