// 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; } } }