31 lines
900 B
C#
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);
|
|
}
|
|
}
|