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