// Assets/Scripts/World/Puzzle/PuzzleInterfaces.cs
// 谜题系统核心接口(Architecture 21_LiquidPuzzleModule §8)
using System;
using UnityEngine;
namespace BaseGames.Puzzle
{
/// 任何可被切换激活/停用状态的谜题元素。
public interface ISwitchable
{
bool IsActive { get; }
event Action OnStateChanged;
/// SaveData 恢复时调用,强制设置状态不触发副作用逻辑。
void ForceState(bool active);
}
/// 可被玩家推动的物件(需 Rigidbody2D)。
public interface IMovable
{
bool CanBePushed { get; }
void OnPushStart(Vector2 direction);
void OnPushEnd();
}
/// 接受激活信号后改变自身状态的物件。
public interface IActivatable
{
void Activate();
void Deactivate();
bool IsActivated { get; }
}
}