Files
Cielonos/Assets/Scripts/MainGame/Characters/Player/Input/PlayerPreinputSubmodule.cs

47 lines
1.4 KiB
C#
Raw Normal View History

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)
{
2026-01-03 18:19:39 -05:00
//Debug.Log($"Executing preinput action with priority {currentPreinputPriority}");
2025-11-25 08:19:33 -05:00
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)
{
2026-01-03 18:19:39 -05:00
//Debug.Log($"Preinput action registered.");
2025-11-25 08:19:33 -05:00
preinputAction = action;
currentPreinputPriority = priority;
}
}
}
}