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