using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace BITKit.Entities
{
public interface IEntityOverride
{
///
/// 是否正在被覆盖
///
bool IsOvering { get; }
///
/// 当前对象,用于判断是否是自己的覆盖
///
object CurrentObject { get; }
///
/// 当开始覆盖或者结束覆盖时触发
///
event Action OnOverride;
///
/// 添加覆盖
///
void AddOverride(object key,int priority=0);
///
/// 移除覆盖
///
void RemoveOverride(object key,int priority=0);
}
[CustomType(typeof(IEntityOverride))]
public class EntityOverride : EntityBehavior,IEntityOverride
{
[SerializeField,ReadOnly] private bool isOvering;
[SerializeField, ReadOnly(HideLabel = true)] private string overrideKeys;
public bool IsOvering => _allowOverrideHandle;
public object CurrentObject => _prioritySelector.Current;
private readonly ValidHandle _allowOverrideHandle = new();
private readonly PrioritySelector