2025-11-25 08:19:33 -05:00
using System ;
using UnityEngine ;
namespace Cielonos.MainGame.Characters
{
public class PlayerPreinputSubmodule : SubmoduleBase < PlayerInputSubcontroller >
{
public bool isReceivingPreinput ;
public int currentPreinputPriority ;
public Action preinputAction ;
public PlayerPreinputSubmodule ( PlayerInputSubcontroller owner ) : base ( owner )
{
Reset ( ) ;
}
public void Reset ( )
{
isReceivingPreinput = false ;
currentPreinputPriority = int . MinValue ;
preinputAction = null ;
}
public void Update ( bool isReceiving , bool canExecute )
{
isReceivingPreinput = isReceiving ;
if ( canExecute )
{
Debug . Log ( $"Executing preinput action with priority {currentPreinputPriority}" ) ;
preinputAction ? . Invoke ( ) ;
Reset ( ) ;
}
}
public void RegisterPreinputAction ( Action action , int priority )
{
2025-12-08 05:27:53 -05:00
//Debug.Log($"Registering preinput action with priority {priority}, current priority is {currentPreinputPriority}, isReceivingPreinput: {isReceivingPreinput}");
2025-11-25 08:19:33 -05:00
if ( isReceivingPreinput & & priority > currentPreinputPriority )
{
Debug . Log ( $"Preinput action registered." ) ;
preinputAction = action ;
currentPreinputPriority = priority ;
}
}
}
}