2025-08-20 06:30:08 +00:00
|
|
|
using System;
|
|
|
|
using UnityEngine;
|
|
|
|
|
2025-08-20 05:07:33 +00:00
|
|
|
namespace DDD
|
|
|
|
{
|
2025-08-20 07:50:29 +00:00
|
|
|
public interface IInteractionSubsystemObject
|
|
|
|
{
|
|
|
|
void InitializeSubsystem();
|
|
|
|
bool CanInteract();
|
|
|
|
bool OnInteracted(IInteractor interactor, ScriptableObject payloadSo = null);
|
2025-08-26 08:27:50 +00:00
|
|
|
ScriptableObject GetPayload();
|
2025-08-20 07:50:29 +00:00
|
|
|
}
|
|
|
|
public interface IInteractionSubsystemObject<T> : IInteractionSubsystemObject where T : Enum
|
2025-08-20 06:30:08 +00:00
|
|
|
{
|
|
|
|
T GetInteractionSubsystemType();
|
|
|
|
}
|
2025-08-20 07:50:29 +00:00
|
|
|
|
|
|
|
public interface IInteractionSubsystemSolver
|
|
|
|
{
|
|
|
|
}
|
|
|
|
public interface IInteractionSubsystemSolver<T> : IInteractionSubsystemSolver where T : Enum
|
2025-08-20 06:30:08 +00:00
|
|
|
{
|
2025-08-26 08:27:50 +00:00
|
|
|
bool ExecuteInteractionSubsystem(IInteractor interactor, IInteractable interactable, ScriptableObject causerPayload = null, ScriptableObject targetPayloadSo = null);
|
|
|
|
bool CanExecuteInteractionSubsystem(IInteractor interactor = null, IInteractable interactable = null, ScriptableObject causerPayload = null, ScriptableObject targetPayloadSo = null);
|
2025-08-20 06:30:08 +00:00
|
|
|
}
|
2025-08-20 05:07:33 +00:00
|
|
|
}
|