32 lines
		
	
	
		
			917 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			917 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.FindBehaviour<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);
 | 
						|
        inputs = null;
 | 
						|
    }
 | 
						|
}
 |