ProjectDDD/Assets/_DDD/_Scripts/GameEvent/IInteractable.cs

32 lines
860 B
C#
Raw Normal View History

using UnityEngine;
namespace DDD
{
public enum InteractionType
{
None,
RestaurantManagementUi,
Count
}
public interface IInteractable
{
bool CanInteract();
bool OnInteracted(IInteractor interactor, ScriptableObject interactionPayloadSo = null);
InteractionType GetInteractionType();
GameObject GetInteractableGameObject();
void InitializeInteraction(InteractionType interactionType);
float GetRequiredHoldTime();
2025-08-05 10:46:36 +00:00
string GetInteractionMessageKey();
}
public interface IInteractor
{
GameObject GetInteractorGameObject();
}
public interface IInteractionSolver
{
bool ExecuteInteraction(IInteractor interactor, IInteractable interactable, ScriptableObject interactionPayloadSo = null);
bool CanInteract();
}
}