From 1a13809bae7f300fb58b54f2f2569869d9c63d91 Mon Sep 17 00:00:00 2001
From: GwWuYou <95328647+GeWuYou@users.noreply.github.com>
Date: Sun, 28 Dec 2025 13:12:08 +0800
Subject: [PATCH] =?UTF-8?q?refactor(godot):=20=E5=B0=86Godot=E6=8A=BD?=
=?UTF-8?q?=E8=B1=A1=E6=8E=A5=E5=8F=A3=E7=A7=BB=E5=8A=A8=E5=88=B0=E7=8B=AC?=
=?UTF-8?q?=E7=AB=8B=E9=A1=B9=E7=9B=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 将IGodotModule接口从GFramework.Godot移动到GFramework.Godot.Abstractions
- 将IResourceLoadSystem接口从GFramework.Godot移动到GFramework.Godot.Abstractions
- 将IAudioManagerSystem接口从GFramework.Godot移动到GFramework.Godot.Abstractions
- 在相关系统类中添加对GFramework.Godot.Abstractions的引用
- 在解决方案文件中添加GFramework.Godot.Abstractions项目引用
- 创建Directory.Build.props和项目配置文件支持抽象层构建
---
.../Directory.Build.props | 24 +++++++++++
.../GFramework.Godot.Abstractions.csproj | 24 +++++++++++
.../architecture/IGodotModule.cs | 4 +-
.../assets/IResourceLoadSystem.cs | 4 +-
.../system/IAudioManagerSystem.cs | 3 +-
GFramework.Godot/GFramework.Godot.csproj | 2 +-
.../assets/AbstractResourceFactorySystem.cs | 1 +
GFramework.Godot/assets/ResourceLoadSystem.cs | 2 +-
.../system/AbstractAudioManagerSystem.cs | 43 ++++++++++---------
GFramework.sln | 6 +++
10 files changed, 82 insertions(+), 31 deletions(-)
create mode 100644 GFramework.Godot.Abstractions/Directory.Build.props
create mode 100644 GFramework.Godot.Abstractions/GFramework.Godot.Abstractions.csproj
rename {GFramework.Godot => GFramework.Godot.Abstractions}/architecture/IGodotModule.cs (87%)
rename {GFramework.Godot => GFramework.Godot.Abstractions}/assets/IResourceLoadSystem.cs (97%)
rename {GFramework.Godot => GFramework.Godot.Abstractions}/system/IAudioManagerSystem.cs (99%)
diff --git a/GFramework.Godot.Abstractions/Directory.Build.props b/GFramework.Godot.Abstractions/Directory.Build.props
new file mode 100644
index 0000000..1e6c3bf
--- /dev/null
+++ b/GFramework.Godot.Abstractions/Directory.Build.props
@@ -0,0 +1,24 @@
+
+
+
+ netstandard2.0
+ true
+ true
+
+ preview
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
+
+
diff --git a/GFramework.Godot.Abstractions/GFramework.Godot.Abstractions.csproj b/GFramework.Godot.Abstractions/GFramework.Godot.Abstractions.csproj
new file mode 100644
index 0000000..bedec62
--- /dev/null
+++ b/GFramework.Godot.Abstractions/GFramework.Godot.Abstractions.csproj
@@ -0,0 +1,24 @@
+
+
+
+
+ false
+ true
+ T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GFramework.Godot/architecture/IGodotModule.cs b/GFramework.Godot.Abstractions/architecture/IGodotModule.cs
similarity index 87%
rename from GFramework.Godot/architecture/IGodotModule.cs
rename to GFramework.Godot.Abstractions/architecture/IGodotModule.cs
index 01a15b8..7fe6e06 100644
--- a/GFramework.Godot/architecture/IGodotModule.cs
+++ b/GFramework.Godot.Abstractions/architecture/IGodotModule.cs
@@ -1,8 +1,6 @@
using GFramework.Core.Abstractions.architecture;
-using GFramework.Core.architecture;
-using Godot;
-namespace GFramework.Godot.architecture;
+namespace GFramework.Godot.Abstractions.architecture;
///
/// Godot模块接口,定义了Godot引擎中模块的基本行为和属性
diff --git a/GFramework.Godot/assets/IResourceLoadSystem.cs b/GFramework.Godot.Abstractions/assets/IResourceLoadSystem.cs
similarity index 97%
rename from GFramework.Godot/assets/IResourceLoadSystem.cs
rename to GFramework.Godot.Abstractions/assets/IResourceLoadSystem.cs
index 65181bb..3070391 100644
--- a/GFramework.Godot/assets/IResourceLoadSystem.cs
+++ b/GFramework.Godot.Abstractions/assets/IResourceLoadSystem.cs
@@ -1,8 +1,6 @@
using GFramework.Core.Abstractions.system;
-using GFramework.Game.assets;
-using Godot;
-namespace GFramework.Godot.assets;
+namespace GFramework.Godot.Abstractions.assets;
///
/// 资源加载系统接口,提供资源和场景的加载、实例化、预加载等功能
diff --git a/GFramework.Godot/system/IAudioManagerSystem.cs b/GFramework.Godot.Abstractions/system/IAudioManagerSystem.cs
similarity index 99%
rename from GFramework.Godot/system/IAudioManagerSystem.cs
rename to GFramework.Godot.Abstractions/system/IAudioManagerSystem.cs
index 209297c..0c6427d 100644
--- a/GFramework.Godot/system/IAudioManagerSystem.cs
+++ b/GFramework.Godot.Abstractions/system/IAudioManagerSystem.cs
@@ -1,7 +1,6 @@
using GFramework.Core.Abstractions.system;
-using Godot;
-namespace GFramework.Godot.system;
+namespace GFramework.Godot.Abstractions.system;
///
/// 音频管理器系统接口,用于统一管理背景音乐和音效的播放
diff --git a/GFramework.Godot/GFramework.Godot.csproj b/GFramework.Godot/GFramework.Godot.csproj
index 6c052b3..fbeda6a 100644
--- a/GFramework.Godot/GFramework.Godot.csproj
+++ b/GFramework.Godot/GFramework.Godot.csproj
@@ -15,8 +15,8 @@
+
-
diff --git a/GFramework.Godot/assets/AbstractResourceFactorySystem.cs b/GFramework.Godot/assets/AbstractResourceFactorySystem.cs
index 321155e..451e5b6 100644
--- a/GFramework.Godot/assets/AbstractResourceFactorySystem.cs
+++ b/GFramework.Godot/assets/AbstractResourceFactorySystem.cs
@@ -1,6 +1,7 @@
using GFramework.Core.Abstractions.architecture;
using GFramework.Core.system;
using GFramework.Game.assets;
+using GFramework.Godot.Abstractions.assets;
using Godot;
namespace GFramework.Godot.assets;
diff --git a/GFramework.Godot/assets/ResourceLoadSystem.cs b/GFramework.Godot/assets/ResourceLoadSystem.cs
index 7a90b37..426ce77 100644
--- a/GFramework.Godot/assets/ResourceLoadSystem.cs
+++ b/GFramework.Godot/assets/ResourceLoadSystem.cs
@@ -1,6 +1,6 @@
using GFramework.Core.system;
using GFramework.Game.assets;
-using GFramework.Godot.assets;
+using GFramework.Godot.Abstractions.assets;
using Godot;
namespace GFramework.Godot.system;
diff --git a/GFramework.Godot/system/AbstractAudioManagerSystem.cs b/GFramework.Godot/system/AbstractAudioManagerSystem.cs
index 92b55f9..38fc485 100644
--- a/GFramework.Godot/system/AbstractAudioManagerSystem.cs
+++ b/GFramework.Godot/system/AbstractAudioManagerSystem.cs
@@ -1,6 +1,7 @@
using GFramework.Core.system;
using GFramework.Game.assets;
-using GFramework.Godot.assets;
+using GFramework.Godot.Abstractions.assets;
+using GFramework.Godot.Abstractions.system;
using Godot;
namespace GFramework.Godot.system;
@@ -195,26 +196,6 @@ public abstract class AbstractAudioManagerSystem : AbstractSystem, IAudioManager
player.Play();
}
- ///
- /// 播放3D音效
- ///
- /// 音频文件路径
- /// 3D空间中的位置
- /// 音量大小,范围0-1
- public virtual void PlaySound3D(string audioPath, Vector3 position, float volume = 1.0f)
- {
- if (AvailableSound3DPlayers.Count == 0) return;
-
- var audioStream = ResourceLoadSystem?.LoadResource(audioPath);
- if (audioStream == null) return;
-
- var player = AvailableSound3DPlayers.Dequeue();
- player.Stream = audioStream;
- player.VolumeDb = LinearToDb(volume * SoundVolume * MasterVolume);
- player.Position = position;
- player.Play();
- }
-
///
/// 停止背景音乐
///
@@ -425,6 +406,26 @@ public abstract class AbstractAudioManagerSystem : AbstractSystem, IAudioManager
// 可以通过AudioEffectReverb实现
}
+ ///
+ /// 播放3D音效
+ ///
+ /// 音频文件路径
+ /// 3D空间中的位置
+ /// 音量大小,范围0-1
+ public virtual void PlaySound3D(string audioPath, Vector3 position, float volume = 1.0f)
+ {
+ if (AvailableSound3DPlayers.Count == 0) return;
+
+ var audioStream = ResourceLoadSystem?.LoadResource(audioPath);
+ if (audioStream == null) return;
+
+ var player = AvailableSound3DPlayers.Dequeue();
+ player.Stream = audioStream;
+ player.VolumeDb = LinearToDb(volume * SoundVolume * MasterVolume);
+ player.Position = position;
+ player.Play();
+ }
+
///
/// 系统初始化方法
///
diff --git a/GFramework.sln b/GFramework.sln
index 25d6dac..cf67b9b 100644
--- a/GFramework.sln
+++ b/GFramework.sln
@@ -22,6 +22,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GFramework.SourceGenerators
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GFramework.Core.Abstractions", "GFramework.Core.Abstractions\GFramework.Core.Abstractions.csproj", "{31BA9F62-153A-4943-A8A0-7571FC7D5FEE}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GFramework.Godot.Abstractions", "GFramework.Godot.Abstractions\GFramework.Godot.Abstractions.csproj", "{EFE2EF31-CEAC-4BFD-851B-5E00FEBC945D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -72,5 +74,9 @@ Global
{31BA9F62-153A-4943-A8A0-7571FC7D5FEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{31BA9F62-153A-4943-A8A0-7571FC7D5FEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{31BA9F62-153A-4943-A8A0-7571FC7D5FEE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EFE2EF31-CEAC-4BFD-851B-5E00FEBC945D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EFE2EF31-CEAC-4BFD-851B-5E00FEBC945D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EFE2EF31-CEAC-4BFD-851B-5E00FEBC945D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EFE2EF31-CEAC-4BFD-851B-5E00FEBC945D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal