GFramework/GFramework.Godot/Pause/GodotPauseHandler.cs
gewuyou ff553977e3 chore(license): 补齐 Apache-2.0 文件头治理
- 新增许可证文件头检查与修复脚本

- 补充维护者手动修复 PR 工作流和 CI 校验

- 更新贡献指南中的文件头说明

- 补齐仓库维护源码和配置文件的许可证声明
2026-05-03 19:39:49 +08:00

45 lines
1.2 KiB
C#

// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
using GFramework.Core.Abstractions.Pause;
using Godot;
namespace GFramework.Godot.Pause;
/// <summary>
/// Godot 引擎的暂停处理器
/// 响应暂停栈状态变化,控制 SceneTree.Paused
/// </summary>
public class GodotPauseHandler : IPauseHandler
{
private readonly SceneTree _tree;
/// <summary>
/// 创建 Godot 暂停处理器
/// </summary>
/// <param name="tree">场景树</param>
public GodotPauseHandler(SceneTree tree)
{
_tree = tree ?? throw new ArgumentNullException(nameof(tree));
}
/// <summary>
/// 处理器优先级
/// </summary>
public int Priority => 0;
/// <summary>
/// 当暂停状态变化时调用
/// </summary>
/// <param name="group">暂停组</param>
/// <param name="isPaused">是否暂停</param>
public void OnPauseStateChanged(PauseGroup group, bool isPaused)
{
// 只有 Global 组影响 Godot 的全局暂停
if (group == PauseGroup.Global)
{
_tree.Paused = isPaused;
GD.Print($"[GodotPauseHandler] SceneTree.Paused = {isPaused}");
}
}
}