Engine-Template/Shared/Behaviours/RotatorToggler.cs
2025-08-09 19:26:11 +03:00

31 lines
900 B
C#

using Engine.Core;
using Engine.Systems.Input;
using MyUniverse.Shared.Behaviours.Abstract;
namespace MyUniverse.Shared.Behaviours;
public class RotatorToggler : Behaviour2D, IFirstFrameUpdate, ILastFrameUpdate
{
private IRotator rotator = null!;
private IGameInputs inputs = null!;
public void FirstActiveFrame()
{
rotator = BehaviourController.GetRequiredBehaviour<IRotator>();
inputs = Universe.FindRequiredBehaviour<IGameInputs>();
inputs.RegisterOnPress(IGameInputs.Button.Interact, ToggleRotator);
}
private void ToggleRotator(IButtonInputs<IGameInputs.Button> sender, IButtonInputs<IGameInputs.Button>.ButtonCallbackArguments args)
{
rotator.StateEnable.Enabled = !rotator.StateEnable.Enabled;
}
public void LastActiveFrame()
{
inputs.UnregisterOnPress(IGameInputs.Button.Interact, ToggleRotator);
}
}