diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..d2f4e1c --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,46 @@ +## DuckovMods — agent 快速上手说明 + +目标:为 AI 编码代理提供立即可用的、本仓库可执行的上下文和约定,便于快速完成修改、补丁与功能实现。 + +- 仓库概览 + - 顶层为多个独立 mod 项目文件夹(例如 `HideCharacter/`, `HitFeedback/`, `SceneSnapshot/`, `Theme/`, `UIFrame/`)。每个模块通常包含一个 `*.csproj`、`ModBehaviour.cs` 与若干源文件。 + - 解决方案文件:`DuckovMods.sln`。README 位于根目录,简短说明了仓库目的。 + +- 关键约定(必须遵循) + - 每个 mod 通过类 `ModBehaviour` 实现,且继承自 `Duckov.Modding.ModBehaviour`(示例:`Theme/ModBehaviour.cs`)。常用生命周期钩子:`OnAfterSetup()`、`OnBeforeDeactivate()`。 + - 模块间互操作通常通过反射和“安全 API 包装器”完成(示例:`HideCharacter/Api/ModConfigApi.cs`)。这些包装器: + - 在运行时用 `AppDomain.CurrentDomain.GetAssemblies()` 扫描目标程序集并反射所需类型/方法; + - 做好异常捕获并返回布尔成功标志或默认值; + - 约定配置键名为 `${modName}_${key}`(见 `SafeLoad`/`SafeSave` 用法)。 + - 配置与版本兼容:一些 API 会检查目标 mod 的静态 `VERSION` 字段(例中 `ModConfig.ModBehaviour.VERSION`)。在交互前请优先调用包装器的 `Initialize()`。 + - 日志使用 UnityEngine 的 `Debug.Log` / `Debug.LogWarning` / `Debug.LogError`。 + +- 构建 / 调试工作流 + - 这是一个 .NET 多项目解决方案。常规命令(PowerShell): + - 构建(调试):`dotnet build d:\vs_project\DuckovMods\DuckovMods.sln` + - 构建(发布):`dotnet build d:\vs_project\DuckovMods\DuckovMods.sln -c Release` + - 注意:部分项目输出见 `bin/Debug/netstandard2.1/` 或 `bin/Release/net9.0/`,在修改目标框架或依赖时,请检查对应 `*.csproj` 的 ``。 + - 仓库内未发现独立的单元测试项目 —— 若需要添加测试,请在顶层新建 `tests/` 并使用常见测试框架(xUnit/NUnit)。 + +- 常见开发任务与示例 + - 添加新 mod:在仓库根添加新文件夹并创建 `YourMod.csproj`、`ModBehaviour.cs`(继承 `Duckov.Modding.ModBehaviour`),在解决方案中加入 csproj。 + - 与 ModConfig 交互:参考 `HideCharacter/Api/ModConfigApi.cs` 的模式,优先编写“安全静态封装”以免反射调用抛出未捕获异常。 + - 读取/保存配置:使用 `SafeLoad(modName, key, default)` 与 `SafeSave(modName, key, value)`,键名需按 `${modName}_${key}` 规则。 + +- 代码风格与约定(可自动化检查) + - 命名:模块文件夹以 PascalCase,类名以 PascalCase。 + - 公共跨 mod API 放在各模块的 `Api/` 子目录(例如 `HideCharacter/Api/`),以降低命名冲突。 + - 反射查找尽量包含日志输出以便定位加载顺序问题(本仓库中已有此类日志用法)。 + +- 易出错点(agent 在修改时应特别留意) + - 直接调用其他 mod 的内部类型/方法会因加载顺序或版本不兼容而失败——请优先使用或添加“安全包装器”。 + - 修改 TargetFramework 可能导致与 Unity 或已有二进制不兼容。先在本地构建并检查 `bin/` 输出。 + - 不要假设存在单元测试;对行为敏感修改请手动验证或添加小型验证脚本。 + +- 推荐起始文件(优先阅读) + - `Theme/ModBehaviour.cs`(mod 生命周期示例) + - `HideCharacter/Api/ModConfigApi.cs`(反射 + 安全包装器范例) + - `UIFrame/UIFrameAPI.cs`(公共 API 占位) + - `DuckovMods.sln` 与根 `README.md` + +如果上面有遗漏或需要更详细的“如何运行/调试某个 mod”步骤,请指出具体目标(例如:“在 Unity 中热重载某 mod”或“为 HideCharacter 添加新的 ModConfig 项”),我会把说明扩展成更精确的操作步骤。 diff --git a/DuckovMods.sln b/DuckovMods.sln index 2388e59..56628e3 100644 --- a/DuckovMods.sln +++ b/DuckovMods.sln @@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HitFeedback", "HitFeedback\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UIFrame", "UIFrame\UIFrame.csproj", "{78BAF98F-64B2-41EB-BA04-2381E1D37AC8}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Theme", "Theme\Theme.csproj", "{7CCF2612-AF15-42F0-B472-8C8F8CAB9B20}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,6 +35,10 @@ Global {78BAF98F-64B2-41EB-BA04-2381E1D37AC8}.Debug|Any CPU.Build.0 = Debug|Any CPU {78BAF98F-64B2-41EB-BA04-2381E1D37AC8}.Release|Any CPU.ActiveCfg = Release|Any CPU {78BAF98F-64B2-41EB-BA04-2381E1D37AC8}.Release|Any CPU.Build.0 = Release|Any CPU + {7CCF2612-AF15-42F0-B472-8C8F8CAB9B20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CCF2612-AF15-42F0-B472-8C8F8CAB9B20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CCF2612-AF15-42F0-B472-8C8F8CAB9B20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CCF2612-AF15-42F0-B472-8C8F8CAB9B20}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/DuckovMods.sln.DotSettings.user b/DuckovMods.sln.DotSettings.user index 80fb4fb..f745fa7 100644 --- a/DuckovMods.sln.DotSettings.user +++ b/DuckovMods.sln.DotSettings.user @@ -1,5 +1,7 @@  True + True + True True ForceIncluded ForceIncluded @@ -25,14 +27,18 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded + ForceIncluded <AssemblyExplorer> <Assembly Path="D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Managed\ItemStatsSystem.dll" /> </AssemblyExplorer> \ No newline at end of file diff --git a/HideCharacter/Api/ModConfigApi.cs b/HideCharacter/Api/ModConfigApi.cs new file mode 100644 index 0000000..afa9ebd --- /dev/null +++ b/HideCharacter/Api/ModConfigApi.cs @@ -0,0 +1,488 @@ +using System; +using System.Linq; +using System.Reflection; +using UnityEngine; + +//替换为你的mod命名空间, 防止多个同名ModConfigAPI冲突 +namespace HideCharacter.Api { +/// +/// ModConfig 安全接口封装类 - 提供不抛异常的静态接口 +/// ModConfig Safe API Wrapper Class - Provides non-throwing static interfaces +/// +public static class ModConfigAPI +{ + public static string ModConfigName = "ModConfig"; + + //Ensure this match the number of ModConfig.ModBehaviour.VERSION + //这里确保版本号与ModConfig.ModBehaviour.VERSION匹配 + private const int ModConfigVersion = 1; + + private static string TAG = $"ModConfig_v{ModConfigVersion}"; + + private static Type modBehaviourType; + private static Type optionsManagerType; + public static bool isInitialized = false; + private static bool versionChecked = false; + private static bool isVersionCompatible = false; + + /// + /// 检查版本兼容性 + /// Check version compatibility + /// + private static bool CheckVersionCompatibility() + { + if (versionChecked) + return isVersionCompatible; + + try + { + // 尝试获取 ModConfig 的版本号 + // Try to get ModConfig version number + FieldInfo versionField = modBehaviourType.GetField("VERSION", BindingFlags.Public | BindingFlags.Static); + if (versionField != null && versionField.FieldType == typeof(int)) + { + int modConfigVersion = (int)versionField.GetValue(null); + isVersionCompatible = (modConfigVersion == ModConfigVersion); + + if (!isVersionCompatible) + { + Debug.LogError($"[{TAG}] 版本不匹配!API版本: {ModConfigVersion}, ModConfig版本: {modConfigVersion}"); + return false; + } + + Debug.Log($"[{TAG}] 版本检查通过: {ModConfigVersion}"); + versionChecked = true; + return true; + } + else + { + // 如果找不到版本字段,发出警告但继续运行(向后兼容) + // If version field not found, warn but continue (backward compatibility) + Debug.LogWarning($"[{TAG}] 未找到版本信息字段,跳过版本检查"); + isVersionCompatible = true; + versionChecked = true; + return true; + } + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 版本检查失败: {ex.Message}"); + isVersionCompatible = false; + versionChecked = true; + return false; + } + } + + /// + /// 初始化 ModConfigAPI,检查必要的函数是否存在 + /// Initialize ModConfigAPI, check if necessary functions exist + /// + public static bool Initialize() + { + try + { + if (isInitialized) + return true; + + // 获取 ModBehaviour 类型 + // Get ModBehaviour type + modBehaviourType = FindTypeInAssemblies("ModConfig.ModBehaviour"); + if (modBehaviourType == null) + { + Debug.LogWarning($"[{TAG}] ModConfig.ModBehaviour 类型未找到,ModConfig 可能未加载"); + return false; + } + + // 获取 OptionsManager_Mod 类型 + // Get OptionsManager_Mod type + optionsManagerType = FindTypeInAssemblies("ModConfig.OptionsManager_Mod"); + if (optionsManagerType == null) + { + Debug.LogWarning($"[{TAG}] ModConfig.OptionsManager_Mod 类型未找到"); + return false; + } + + // 检查版本兼容性 + // Check version compatibility + if (!CheckVersionCompatibility()) + { + Debug.LogWarning($"[{TAG}] ModConfig version mismatch!!!"); + return false; + } + + // 检查必要的静态方法是否存在 + // Check if necessary static methods exist + string[] requiredMethods = { + "AddDropdownList", + "AddInputWithSlider", + "AddBoolDropdownList", + "AddOnOptionsChangedDelegate", + "RemoveOnOptionsChangedDelegate", + }; + + foreach (string methodName in requiredMethods) + { + MethodInfo method = modBehaviourType.GetMethod(methodName, BindingFlags.Public | BindingFlags.Static); + if (method == null) + { + Debug.LogError($"[{TAG}] 必要方法 {methodName} 未找到"); + return false; + } + } + + isInitialized = true; + Debug.Log($"[{TAG}] ModConfigAPI 初始化成功"); + return true; + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 初始化失败: {ex.Message}"); + return false; + } + } + + /// + /// 在所有已加载的程序集中查找类型 + /// + private static Type FindTypeInAssemblies(string typeName) + { + try + { + // 获取当前域中的所有程序集 + Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); + + foreach (Assembly assembly in assemblies) + { + try + { + // 检查程序集名称是否包含 ModConfig + if (assembly.FullName.Contains("ModConfig")) + { + Debug.Log($"[{TAG}] 找到 ModConfig 相关程序集: {assembly.FullName}"); + } + + // 尝试在该程序集中查找类型 + Type type = assembly.GetType(typeName); + if (type != null) + { + Debug.Log($"[{TAG}] 在程序集 {assembly.FullName} 中找到类型 {typeName}"); + return type; + } + } + catch (Exception ex) + { + // 忽略单个程序集的查找错误 + continue; + } + } + + // 记录所有已加载的程序集用于调试 + Debug.LogWarning($"[{TAG}] 在所有程序集中未找到类型 {typeName},已加载程序集数量: {assemblies.Length}"); + foreach (var assembly in assemblies.Where(a => a.FullName.Contains("ModConfig"))) + { + Debug.Log($"[{TAG}] ModConfig 相关程序集: {assembly.FullName}"); + } + + return null; + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 程序集扫描失败: {ex.Message}"); + return null; + } + } + + /// + /// 安全地添加选项变更事件委托 + /// Safely add options changed event delegate + /// + /// 事件处理委托,参数为变更的选项键名 + /// 是否成功添加 + public static bool SafeAddOnOptionsChangedDelegate(Action action) + { + if (!Initialize()) + return false; + + if (action == null) + { + Debug.LogWarning($"[{TAG}] 不能添加空的事件委托"); + return false; + } + + try + { + MethodInfo method = modBehaviourType.GetMethod("AddOnOptionsChangedDelegate", BindingFlags.Public | BindingFlags.Static); + method.Invoke(null, new object[] { action }); + + Debug.Log($"[{TAG}] 成功添加选项变更事件委托"); + return true; + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 添加选项变更事件委托失败: {ex.Message}"); + return false; + } + } + + /// + /// 安全地移除选项变更事件委托 + /// Safely remove options changed event delegate + /// + /// 要移除的事件处理委托 + /// 是否成功移除 + public static bool SafeRemoveOnOptionsChangedDelegate(Action action) + { + if (!Initialize()) + return false; + + if (action == null) + { + Debug.LogWarning($"[{TAG}] 不能移除空的事件委托"); + return false; + } + + try + { + MethodInfo method = modBehaviourType.GetMethod("RemoveOnOptionsChangedDelegate", BindingFlags.Public | BindingFlags.Static); + method.Invoke(null, new object[] { action }); + + Debug.Log($"[{TAG}] 成功移除选项变更事件委托"); + return true; + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 移除选项变更事件委托失败: {ex.Message}"); + return false; + } + } + + /// + /// 安全地添加下拉列表配置项 + /// Safely add dropdown list configuration item + /// + public static bool SafeAddDropdownList(string modName, string key, string description, System.Collections.Generic.SortedDictionary options, Type valueType, object defaultValue) + { + key = $"{modName}_{key}"; + + if (!Initialize()) + return false; + + try + { + MethodInfo method = modBehaviourType.GetMethod("AddDropdownList", BindingFlags.Public | BindingFlags.Static); + method.Invoke(null, new object[] { modName, key, description, options, valueType, defaultValue }); + + Debug.Log($"[{TAG}] 成功添加下拉列表: {modName}.{key}"); + return true; + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 添加下拉列表失败 {modName}.{key}: {ex.Message}"); + return false; + } + } + + /// + /// 安全地添加带滑条的输入框配置项 + /// Safely add input box with slider configuration item + /// + public static bool SafeAddInputWithSlider(string modName, string key, string description, Type valueType, object defaultValue, UnityEngine.Vector2? sliderRange = null) + { + key = $"{modName}_{key}"; + + if (!Initialize()) + return false; + + try + { + MethodInfo method = modBehaviourType.GetMethod("AddInputWithSlider", BindingFlags.Public | BindingFlags.Static); + + // 处理可空参数 + // Handle nullable parameters + object[] parameters = sliderRange.HasValue ? + new object[] { modName, key, description, valueType, defaultValue, sliderRange.Value } : + new object[] { modName, key, description, valueType, defaultValue, null }; + + method.Invoke(null, parameters); + + Debug.Log($"[{TAG}] 成功添加滑条输入框: {modName}.{key}"); + return true; + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 添加滑条输入框失败 {modName}.{key}: {ex.Message}"); + return false; + } + } + + /// + /// 安全地添加布尔下拉列表配置项 + /// Safely add boolean dropdown list configuration item + /// + public static bool SafeAddBoolDropdownList(string modName, string key, string description, bool defaultValue) + { + key = $"{modName}_{key}"; + + if (!Initialize()) + return false; + + try + { + MethodInfo method = modBehaviourType.GetMethod("AddBoolDropdownList", BindingFlags.Public | BindingFlags.Static); + method.Invoke(null, new object[] { modName, key, description, defaultValue }); + + Debug.Log($"[{TAG}] 成功添加布尔下拉列表: {modName}.{key}"); + return true; + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 添加布尔下拉列表失败 {modName}.{key}: {ex.Message}"); + return false; + } + } + + /// + /// 安全地加载配置值 + /// Safely load configuration value + /// + /// 值的类型 + /// 配置键 + /// 默认值 + /// 加载的值或默认值 + public static T SafeLoad(string mod_name, string key, T defaultValue = default(T)) + { + key = $"{mod_name}_{key}"; + + if (!Initialize()) + return defaultValue; + + if (string.IsNullOrEmpty(key)) + { + Debug.LogWarning($"[{TAG}] 配置键不能为空"); + return defaultValue; + } + + try + { + MethodInfo loadMethod = optionsManagerType.GetMethod("Load", BindingFlags.Public | BindingFlags.Static); + if (loadMethod == null) + { + Debug.LogError($"[{TAG}] 未找到 OptionsManager_Mod.Load 方法"); + return defaultValue; + } + + // 获取泛型方法 + MethodInfo genericLoadMethod = loadMethod.MakeGenericMethod(typeof(T)); + object result = genericLoadMethod.Invoke(null, new object[] { key, defaultValue }); + + Debug.Log($"[{TAG}] 成功加载配置: {key} = {result}"); + return (T)result; + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 加载配置失败 {key}: {ex.Message}"); + return defaultValue; + } + } + + /// + /// 安全地保存配置值 + /// Safely save configuration value + /// + /// 值的类型 + /// 配置键 + /// 要保存的值 + /// 是否保存成功 + public static bool SafeSave(string mod_name, string key, T value) + { + key = $"{mod_name}_{key}"; + + if (!Initialize()) + return false; + + if (string.IsNullOrEmpty(key)) + { + Debug.LogWarning($"[{TAG}] 配置键不能为空"); + return false; + } + + try + { + MethodInfo saveMethod = optionsManagerType.GetMethod("Save", BindingFlags.Public | BindingFlags.Static); + if (saveMethod == null) + { + Debug.LogError($"[{TAG}] 未找到 OptionsManager_Mod.Save 方法"); + return false; + } + + // 获取泛型方法 + MethodInfo genericSaveMethod = saveMethod.MakeGenericMethod(typeof(T)); + genericSaveMethod.Invoke(null, new object[] { key, value }); + + Debug.Log($"[{TAG}] 成功保存配置: {key} = {value}"); + return true; + } + catch (Exception ex) + { + Debug.LogError($"[{TAG}] 保存配置失败 {key}: {ex.Message}"); + return false; + } + } + + /// + /// 检查 ModConfig 是否可用 + /// Check if ModConfig is available + /// + public static bool IsAvailable() + { + return Initialize(); + } + + /// + /// 获取 ModConfig 版本信息(如果存在) + /// Get ModConfig version information (if exists) + /// + public static string GetVersionInfo() + { + if (!Initialize()) + return "ModConfig 未加载 | ModConfig not loaded"; + + try + { + // 尝试获取版本信息(如果 ModBehaviour 有相关字段或属性) + // Try to get version information (if ModBehaviour has related fields or properties) + FieldInfo versionField = modBehaviourType.GetField("VERSION", BindingFlags.Public | BindingFlags.Static); + if (versionField != null && versionField.FieldType == typeof(int)) + { + int modConfigVersion = (int)versionField.GetValue(null); + string compatibility = (modConfigVersion == ModConfigVersion) ? "兼容" : "不兼容"; + return $"ModConfig v{modConfigVersion} (API v{ModConfigVersion}, {compatibility})"; + } + + PropertyInfo versionProperty = modBehaviourType.GetProperty("VERSION", BindingFlags.Public | BindingFlags.Static); + if (versionProperty != null) + { + object versionValue = versionProperty.GetValue(null); + return versionValue?.ToString() ?? "未知版本 | Unknown version"; + } + + return "ModConfig 已加载(版本信息不可用) | ModConfig loaded (version info unavailable)"; + } + catch + { + return "ModConfig 已加载(版本检查失败) | ModConfig loaded (version check failed)"; + } + } + + /// + /// 检查版本兼容性 + /// Check version compatibility + /// + public static bool IsVersionCompatible() + { + if (!Initialize()) + return false; + return isVersionCompatible; + } +} +} \ No newline at end of file diff --git a/HideCharacter/obj/Debug/HideCharacter.AssemblyInfo.cs b/HideCharacter/obj/Debug/HideCharacter.AssemblyInfo.cs index 04766b4..f10f434 100644 --- a/HideCharacter/obj/Debug/HideCharacter.AssemblyInfo.cs +++ b/HideCharacter/obj/Debug/HideCharacter.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.1")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.1+2af09007f967b42ac04776167f814297d14582e3")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.1+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] [assembly: System.Reflection.AssemblyProductAttribute("HideCharacter")] [assembly: System.Reflection.AssemblyTitleAttribute("HideCharacter")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.1")] diff --git a/HideCharacter/obj/Debug/HideCharacter.AssemblyInfoInputs.cache b/HideCharacter/obj/Debug/HideCharacter.AssemblyInfoInputs.cache index f3456ec..6fd36ab 100644 --- a/HideCharacter/obj/Debug/HideCharacter.AssemblyInfoInputs.cache +++ b/HideCharacter/obj/Debug/HideCharacter.AssemblyInfoInputs.cache @@ -1 +1 @@ -7182d425771de7b27f8f319b51a9341c4aa1ff6099af2487fa0a697a586e5ebb +87960f6ca296aa48c51c30197c7d764ab1cc8c1b2d2ae919555af9f2602b2fa1 diff --git a/HideCharacter/obj/Debug/HideCharacter.GeneratedMSBuildEditorConfig.editorconfig b/HideCharacter/obj/Debug/HideCharacter.GeneratedMSBuildEditorConfig.editorconfig index 77304fd..63f724d 100644 --- a/HideCharacter/obj/Debug/HideCharacter.GeneratedMSBuildEditorConfig.editorconfig +++ b/HideCharacter/obj/Debug/HideCharacter.GeneratedMSBuildEditorConfig.editorconfig @@ -1,6 +1,6 @@ is_global = true build_property.RootNamespace = HideCharacter -build_property.ProjectDir = d:\vs_project\DuckovMods\HideCharacter\ +build_property.ProjectDir = D:\vs_project\DuckovMods\HideCharacter\ build_property.EnableComHosting = build_property.EnableGeneratedComInterfaceComImportInterop = build_property.CsWinRTUseWindowsUIXamlProjections = false diff --git a/HideCharacter/obj/Debug/HideCharacter.assets.cache b/HideCharacter/obj/Debug/HideCharacter.assets.cache index 7ab4973..558bae3 100644 Binary files a/HideCharacter/obj/Debug/HideCharacter.assets.cache and b/HideCharacter/obj/Debug/HideCharacter.assets.cache differ diff --git a/HideCharacter/obj/Release/HideCharacter.AssemblyInfo.cs b/HideCharacter/obj/Release/HideCharacter.AssemblyInfo.cs index 0cb9f47..a890952 100644 --- a/HideCharacter/obj/Release/HideCharacter.AssemblyInfo.cs +++ b/HideCharacter/obj/Release/HideCharacter.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.1")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.1+2b7943339c8fff4147e07028e81b3fff19ff0d80")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.1+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] [assembly: System.Reflection.AssemblyProductAttribute("HideCharacter")] [assembly: System.Reflection.AssemblyTitleAttribute("HideCharacter")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.1")] diff --git a/HideCharacter/obj/Release/HideCharacter.AssemblyInfoInputs.cache b/HideCharacter/obj/Release/HideCharacter.AssemblyInfoInputs.cache index 1f63b6c..7243162 100644 --- a/HideCharacter/obj/Release/HideCharacter.AssemblyInfoInputs.cache +++ b/HideCharacter/obj/Release/HideCharacter.AssemblyInfoInputs.cache @@ -1 +1 @@ -881e0b84476729ea6e67f155d7d840fd64b730af85f17eb2df102486efe4db4b +0c41c29df034d7303af5a922ba9d31f37af5b0419be39221c78f9e624f5d890a diff --git a/HitFeedback/Config.cs b/HitFeedback/Config.cs index a2b88aa..667c589 100644 --- a/HitFeedback/Config.cs +++ b/HitFeedback/Config.cs @@ -1,9 +1,129 @@ using System.Collections.Generic; +using System.IO; +using UnityEngine; // 假设在Unity环境中使用Debug.LogError namespace HitFeedback { public class Config { + public KeyCode hotKey = KeyCode.F8; public Dictionary probability = new Dictionary(); + + public void LoadConfig(string filename) + { + if (!File.Exists(filename)) + { + Debug.LogError($"Config file not found: {filename}"); + return; // 如果文件不存在,就没必要继续了 + } + + // 清空旧的概率数据,确保每次加载都是从新开始 + probability.Clear(); + + try + { + using (var sr = new StreamReader(filename)) + { + string line; + var lineNumber = 0; // 用于错误报告 + while ((line = sr.ReadLine()) != null) + { + lineNumber++; + line = line.Trim(); // 移除行首尾的空白字符 + + // 忽略空行和注释行 + if (string.IsNullOrEmpty(line) || line.StartsWith(";") || line.StartsWith("#")) + { + continue; + } + + // 查找等号 + var separatorIndex = line.IndexOf('='); + if (separatorIndex == -1) + { + Debug.LogWarning($"Skipping malformed line in config file '{filename}' at line {lineNumber}: No '=' found. Line: '{line}'"); + continue; + } + + var key = line.Substring(0, separatorIndex).Trim(); + var valueStr = line.Substring(separatorIndex + 1).Trim(); + + // 解析 hotKey + if (key.Equals("hotKey", System.StringComparison.OrdinalIgnoreCase)) + { + try + { + hotKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), valueStr, true); + } + catch (System.ArgumentException) + { + Debug.LogError($"Invalid KeyCode '{valueStr}' in config file '{filename}' at line {lineNumber}. Using default F8."); + hotKey = KeyCode.F8; // 设置为默认值或保持不变 + } + } + // 解析 probability 字典项 + else + { + if (float.TryParse(valueStr, out var probValue)) + { + probability[key] = probValue; + } + else + { + Debug.LogWarning($"Invalid float value '{valueStr}' for key '{key}' in config file '{filename}' at line {lineNumber}. Skipping entry."); + } + } + } + } + } + catch (System.Exception ex) + { + Debug.LogError($"Error reading config file '{filename}': {ex.Message}"); + } + } + /// + /// 将当前配置存储到指定INI文件。 + /// + /// 要保存的INI文件的路径。 + public void SaveConfig(string filename) + { + try + { + // 确保目录存在 + var directory = Path.GetDirectoryName(filename); + if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory)) + { + Directory.CreateDirectory(directory); + } + using (var sw = new StreamWriter(filename)) + { + sw.WriteLine("; HitFeedback Configuration File"); + sw.WriteLine("; Generated by HitFeedback.Config class"); + sw.WriteLine(); // 空行 + sw.WriteLine("[General]"); + sw.WriteLine($"hotKey = {hotKey.ToString()}"); + sw.WriteLine(); + if (probability.Count > 0) + { + sw.WriteLine("[Probabilities]"); + foreach (var kvp in probability) + { + // 使用 InvariantCulture 确保浮点数的格式在不同区域设置下都一致 + sw.WriteLine($"{kvp.Key} = {kvp.Value.ToString(System.Globalization.CultureInfo.InvariantCulture)}"); + } + } + else + { + sw.WriteLine("; No probabilities currently configured."); + } + sw.WriteLine(); + } + Debug.Log($"Config saved to: {filename}"); + } + catch (System.Exception ex) + { + Debug.LogError($"Error saving config file '{filename}': {ex.Message}"); + } + } } -} \ No newline at end of file +} diff --git a/HitFeedback/ModBehaviour.cs b/HitFeedback/ModBehaviour.cs index a6ff8a0..cf74c12 100644 --- a/HitFeedback/ModBehaviour.cs +++ b/HitFeedback/ModBehaviour.cs @@ -14,13 +14,17 @@ namespace HitFeedback public class ModBehaviour:Duckov.Modding.ModBehaviour { public const string AudioFolderName = "audio"; + public const string ConfigFileName = "config.ini"; public string audioFolderPath; + public string configFilePath; - public List audioFilePath = new List(); + public Dictionary audioFilePath = new Dictionary(); public Health health; public Config config=new Config(); + + public float totalWeight; private void Update() { @@ -34,12 +38,46 @@ namespace HitFeedback { LevelManager.OnLevelInitialized += OnSceneLoaded; audioFolderPath=Path.Combine(info.path,AudioFolderName); + configFilePath=Path.Combine(info.path, ConfigFileName); FindWavFiles(); + config.LoadConfig(configFilePath); + ApplyConfig(); + foreach (var f in audioFilePath) + { + totalWeight+=f.Value; + } } protected override void OnBeforeDeactivate() { - LevelManager.OnLevelInitialized -= OnSceneLoaded; + SaveConfig(); + } + + private void OnDestroy() + { + SaveConfig(); + } + + private void ApplyConfig() + { + foreach (var f in config.probability) + { + if (audioFilePath.ContainsKey(f.Key)) + { + audioFilePath[f.Key] = f.Value; + } + } + } + + private void SaveConfig() + { + config.probability.Clear(); + foreach (var f in audioFilePath) + { + config.probability.Add(f.Key, f.Value); + } + + config.SaveConfig(configFilePath); } private void FindWavFiles() { @@ -55,7 +93,7 @@ namespace HitFeedback { foreach (string filePath in files) { - audioFilePath.Add(filePath); + audioFilePath.Add(Path.GetFileName(filePath), 1); } } } @@ -101,16 +139,21 @@ namespace HitFeedback { if (audioFilePath.Count > 0) { - var randomIndex = Random.Range(0, audioFilePath.Count); - var filePath = audioFilePath[randomIndex]; - AudioManager.PostCustomSFX(filePath); + var randomIndex = Random.Range(0, totalWeight); + foreach (var f in audioFilePath) + { + randomIndex -= f.Value; + if (randomIndex <= 0) + { + AudioManager.PostCustomSFX(Path.Combine(audioFolderPath, f.Key)); + return; + } + } } else { Debug.LogWarning("Mod Feedback: No audio clips loaded to play."); } } - - } } \ No newline at end of file diff --git a/HitFeedback/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/HitFeedback/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs new file mode 100644 index 0000000..348b87f --- /dev/null +++ b/HitFeedback/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/HitFeedback/obj/Debug/HitFeedback.AssemblyInfo.cs b/HitFeedback/obj/Debug/HitFeedback.AssemblyInfo.cs new file mode 100644 index 0000000..5f25c1f --- /dev/null +++ b/HitFeedback/obj/Debug/HitFeedback.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("HitFeedback")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] +[assembly: System.Reflection.AssemblyProductAttribute("HitFeedback")] +[assembly: System.Reflection.AssemblyTitleAttribute("HitFeedback")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/HitFeedback/obj/Debug/HitFeedback.AssemblyInfoInputs.cache b/HitFeedback/obj/Debug/HitFeedback.AssemblyInfoInputs.cache new file mode 100644 index 0000000..d0103aa --- /dev/null +++ b/HitFeedback/obj/Debug/HitFeedback.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +0e8871f70d957c8690d2d7e899b7c26cc6fec6a1db85ba1988bdbe458697eb11 diff --git a/HitFeedback/obj/Debug/HitFeedback.GeneratedMSBuildEditorConfig.editorconfig b/HitFeedback/obj/Debug/HitFeedback.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..a0a9fd3 --- /dev/null +++ b/HitFeedback/obj/Debug/HitFeedback.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = HitFeedback +build_property.ProjectDir = D:\vs_project\DuckovMods\HitFeedback\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/HitFeedback/obj/Debug/HitFeedback.assets.cache b/HitFeedback/obj/Debug/HitFeedback.assets.cache new file mode 100644 index 0000000..76df5e4 Binary files /dev/null and b/HitFeedback/obj/Debug/HitFeedback.assets.cache differ diff --git a/HitFeedback/obj/Debug/HitFeedback.csproj.AssemblyReference.cache b/HitFeedback/obj/Debug/HitFeedback.csproj.AssemblyReference.cache new file mode 100644 index 0000000..1b2ae5d Binary files /dev/null and b/HitFeedback/obj/Debug/HitFeedback.csproj.AssemblyReference.cache differ diff --git a/HitFeedback/obj/Release/HitFeedback.AssemblyInfo.cs b/HitFeedback/obj/Release/HitFeedback.AssemblyInfo.cs index bd1fb24..71318e8 100644 --- a/HitFeedback/obj/Release/HitFeedback.AssemblyInfo.cs +++ b/HitFeedback/obj/Release/HitFeedback.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("HitFeedback")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2b7943339c8fff4147e07028e81b3fff19ff0d80")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] [assembly: System.Reflection.AssemblyProductAttribute("HitFeedback")] [assembly: System.Reflection.AssemblyTitleAttribute("HitFeedback")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/HitFeedback/obj/Release/HitFeedback.AssemblyInfoInputs.cache b/HitFeedback/obj/Release/HitFeedback.AssemblyInfoInputs.cache index 5e56970..5943c9c 100644 --- a/HitFeedback/obj/Release/HitFeedback.AssemblyInfoInputs.cache +++ b/HitFeedback/obj/Release/HitFeedback.AssemblyInfoInputs.cache @@ -1 +1 @@ -1ef47fdca68bb8ba079c984a562e35f7d221eeaabc5c5290fb8b33cc52111227 +044e9b3ac36cbf242c64f55f40a9077d40727cb97e540d335e1e29dbc7dccff1 diff --git a/HitFeedback/obj/Release/HitFeedback.dll b/HitFeedback/obj/Release/HitFeedback.dll index 94c562f..35fcd84 100644 Binary files a/HitFeedback/obj/Release/HitFeedback.dll and b/HitFeedback/obj/Release/HitFeedback.dll differ diff --git a/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfo.cs b/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfo.cs index 84a24d9..0b997b0 100644 --- a/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfo.cs +++ b/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2af09007f967b42ac04776167f814297d14582e3")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] [assembly: System.Reflection.AssemblyProductAttribute("SceneSnapshot")] [assembly: System.Reflection.AssemblyTitleAttribute("SceneSnapshot")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0")] diff --git a/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfoInputs.cache b/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfoInputs.cache index 57fdf04..fbe10b7 100644 --- a/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfoInputs.cache +++ b/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfoInputs.cache @@ -1 +1 @@ -6db670cc723431582928e8b99ce9debac67aa7935e1b8f3b8518bcd6a23d4ca5 +76527c0524d74c181c8c103eb804bb9ea72920abff0b6da2de1250e7811cd906 diff --git a/SceneSnapshot/obj/Debug/SceneSnapshot.GeneratedMSBuildEditorConfig.editorconfig b/SceneSnapshot/obj/Debug/SceneSnapshot.GeneratedMSBuildEditorConfig.editorconfig index 1724fc1..7ec4bf6 100644 --- a/SceneSnapshot/obj/Debug/SceneSnapshot.GeneratedMSBuildEditorConfig.editorconfig +++ b/SceneSnapshot/obj/Debug/SceneSnapshot.GeneratedMSBuildEditorConfig.editorconfig @@ -1,6 +1,6 @@ is_global = true build_property.RootNamespace = SceneSnapshot -build_property.ProjectDir = d:\vs_project\DuckovMods\SceneSnapshot\ +build_property.ProjectDir = D:\vs_project\DuckovMods\SceneSnapshot\ build_property.EnableComHosting = build_property.EnableGeneratedComInterfaceComImportInterop = build_property.CsWinRTUseWindowsUIXamlProjections = false diff --git a/SceneSnapshot/obj/Debug/SceneSnapshot.assets.cache b/SceneSnapshot/obj/Debug/SceneSnapshot.assets.cache index 5bdef6f..6e8413b 100644 Binary files a/SceneSnapshot/obj/Debug/SceneSnapshot.assets.cache and b/SceneSnapshot/obj/Debug/SceneSnapshot.assets.cache differ diff --git a/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfo.cs b/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfo.cs index 64be909..2f2c13f 100644 --- a/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfo.cs +++ b/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("折纸的小箱子")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2b7943339c8fff4147e07028e81b3fff19ff0d80")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] [assembly: System.Reflection.AssemblyProductAttribute("SceneSnapshot")] [assembly: System.Reflection.AssemblyTitleAttribute("SceneSnapshot")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0")] diff --git a/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfoInputs.cache b/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfoInputs.cache index 03b67a3..02ed8f4 100644 --- a/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfoInputs.cache +++ b/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfoInputs.cache @@ -1 +1 @@ -2f140dae1dc23271ae8c394fe95f090beff12b9a0cf8188ff19a7e6d42bca22f +532b9b8318b6010ae03f608127d55a2c59d0b50d9243b633f698b5d460668837 diff --git a/SceneSnapshot/obj/Release/SceneSnapshot.csproj.AssemblyReference.cache b/SceneSnapshot/obj/Release/SceneSnapshot.csproj.AssemblyReference.cache index 6391f5f..e17280e 100644 Binary files a/SceneSnapshot/obj/Release/SceneSnapshot.csproj.AssemblyReference.cache and b/SceneSnapshot/obj/Release/SceneSnapshot.csproj.AssemblyReference.cache differ diff --git a/Theme/ModBehaviour.cs b/Theme/ModBehaviour.cs new file mode 100644 index 0000000..9888b64 --- /dev/null +++ b/Theme/ModBehaviour.cs @@ -0,0 +1,16 @@ +using System; + +namespace Theme +{ + public class ModBehaviour:Duckov.Modding.ModBehaviour + { + protected override void OnAfterSetup() + { + base.OnAfterSetup(); + } + protected override void OnBeforeDeactivate() + { + base.OnBeforeDeactivate(); + } + } +} \ No newline at end of file diff --git a/Theme/Theme.csproj b/Theme/Theme.csproj new file mode 100644 index 0000000..9a01549 --- /dev/null +++ b/Theme/Theme.csproj @@ -0,0 +1,22 @@ + + + + netstandard2.1 + enable + D:\steam\steamapps\common\Escape from Duckov + false + + + + D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\Theme + false + none + + + + + + + + + diff --git a/Theme/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/Theme/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs new file mode 100644 index 0000000..348b87f --- /dev/null +++ b/Theme/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/Theme/obj/Debug/Theme.AssemblyInfo.cs b/Theme/obj/Debug/Theme.AssemblyInfo.cs new file mode 100644 index 0000000..d398cc1 --- /dev/null +++ b/Theme/obj/Debug/Theme.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Theme")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] +[assembly: System.Reflection.AssemblyProductAttribute("Theme")] +[assembly: System.Reflection.AssemblyTitleAttribute("Theme")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/Theme/obj/Debug/Theme.AssemblyInfoInputs.cache b/Theme/obj/Debug/Theme.AssemblyInfoInputs.cache new file mode 100644 index 0000000..cd83146 --- /dev/null +++ b/Theme/obj/Debug/Theme.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +4effd31a0421ad5d63bf5819743524c1e96899884e3dc10e49ff75f0c7981933 diff --git a/Theme/obj/Debug/Theme.GeneratedMSBuildEditorConfig.editorconfig b/Theme/obj/Debug/Theme.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..2aae428 --- /dev/null +++ b/Theme/obj/Debug/Theme.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = Theme +build_property.ProjectDir = D:\vs_project\DuckovMods\Theme\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/Theme/obj/Debug/Theme.assets.cache b/Theme/obj/Debug/Theme.assets.cache new file mode 100644 index 0000000..c32c9d4 Binary files /dev/null and b/Theme/obj/Debug/Theme.assets.cache differ diff --git a/Theme/obj/Debug/Theme.csproj.AssemblyReference.cache b/Theme/obj/Debug/Theme.csproj.AssemblyReference.cache new file mode 100644 index 0000000..ef5d7be Binary files /dev/null and b/Theme/obj/Debug/Theme.csproj.AssemblyReference.cache differ diff --git a/Theme/obj/Release/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/Theme/obj/Release/.NETStandard,Version=v2.1.AssemblyAttributes.cs new file mode 100644 index 0000000..348b87f --- /dev/null +++ b/Theme/obj/Release/.NETStandard,Version=v2.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/Theme/obj/Release/Theme.AssemblyInfo.cs b/Theme/obj/Release/Theme.AssemblyInfo.cs new file mode 100644 index 0000000..4920b0d --- /dev/null +++ b/Theme/obj/Release/Theme.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Theme")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] +[assembly: System.Reflection.AssemblyProductAttribute("Theme")] +[assembly: System.Reflection.AssemblyTitleAttribute("Theme")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/Theme/obj/Release/Theme.AssemblyInfoInputs.cache b/Theme/obj/Release/Theme.AssemblyInfoInputs.cache new file mode 100644 index 0000000..ba29f83 --- /dev/null +++ b/Theme/obj/Release/Theme.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +9389535ab653bc716c7ef81ccb8542bee3753b2c1f4be9c952401b4ec0aa9c5d diff --git a/Theme/obj/Release/Theme.GeneratedMSBuildEditorConfig.editorconfig b/Theme/obj/Release/Theme.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..2aae428 --- /dev/null +++ b/Theme/obj/Release/Theme.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = Theme +build_property.ProjectDir = D:\vs_project\DuckovMods\Theme\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/Theme/obj/Release/Theme.assets.cache b/Theme/obj/Release/Theme.assets.cache new file mode 100644 index 0000000..c0c6f4f Binary files /dev/null and b/Theme/obj/Release/Theme.assets.cache differ diff --git a/Theme/obj/Release/Theme.csproj.AssemblyReference.cache b/Theme/obj/Release/Theme.csproj.AssemblyReference.cache new file mode 100644 index 0000000..1b2ae5d Binary files /dev/null and b/Theme/obj/Release/Theme.csproj.AssemblyReference.cache differ diff --git a/Theme/obj/Release/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/Theme/obj/Release/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs new file mode 100644 index 0000000..348b87f --- /dev/null +++ b/Theme/obj/Release/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/Theme/obj/Release/netstandard2.1/Theme.AssemblyInfo.cs b/Theme/obj/Release/netstandard2.1/Theme.AssemblyInfo.cs new file mode 100644 index 0000000..4920b0d --- /dev/null +++ b/Theme/obj/Release/netstandard2.1/Theme.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Theme")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] +[assembly: System.Reflection.AssemblyProductAttribute("Theme")] +[assembly: System.Reflection.AssemblyTitleAttribute("Theme")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/Theme/obj/Release/netstandard2.1/Theme.AssemblyInfoInputs.cache b/Theme/obj/Release/netstandard2.1/Theme.AssemblyInfoInputs.cache new file mode 100644 index 0000000..ba29f83 --- /dev/null +++ b/Theme/obj/Release/netstandard2.1/Theme.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +9389535ab653bc716c7ef81ccb8542bee3753b2c1f4be9c952401b4ec0aa9c5d diff --git a/Theme/obj/Release/netstandard2.1/Theme.GeneratedMSBuildEditorConfig.editorconfig b/Theme/obj/Release/netstandard2.1/Theme.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..2aae428 --- /dev/null +++ b/Theme/obj/Release/netstandard2.1/Theme.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = Theme +build_property.ProjectDir = D:\vs_project\DuckovMods\Theme\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/Theme/obj/Release/netstandard2.1/Theme.assets.cache b/Theme/obj/Release/netstandard2.1/Theme.assets.cache new file mode 100644 index 0000000..bfd76e8 Binary files /dev/null and b/Theme/obj/Release/netstandard2.1/Theme.assets.cache differ diff --git a/Theme/obj/Theme.csproj.nuget.dgspec.json b/Theme/obj/Theme.csproj.nuget.dgspec.json new file mode 100644 index 0000000..16e7221 --- /dev/null +++ b/Theme/obj/Theme.csproj.nuget.dgspec.json @@ -0,0 +1,73 @@ +{ + "format": 1, + "restore": { + "D:\\vs_project\\DuckovMods\\Theme\\Theme.csproj": {} + }, + "projects": { + "D:\\vs_project\\DuckovMods\\Theme\\Theme.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\vs_project\\DuckovMods\\Theme\\Theme.csproj", + "projectName": "Theme", + "projectPath": "D:\\vs_project\\DuckovMods\\Theme\\Theme.csproj", + "packagesPath": "C:\\Users\\Lenovo\\.nuget\\packages\\", + "outputPath": "D:\\vs_project\\DuckovMods\\Theme\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "D:\\vsShare\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\Lenovo\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "netstandard2.1" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "netstandard2.1": { + "targetAlias": "netstandard2.1", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "netstandard2.1": { + "targetAlias": "netstandard2.1", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "NETStandard.Library": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/Theme/obj/Theme.csproj.nuget.g.props b/Theme/obj/Theme.csproj.nuget.g.props new file mode 100644 index 0000000..2e378fe --- /dev/null +++ b/Theme/obj/Theme.csproj.nuget.g.props @@ -0,0 +1,16 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\Lenovo\.nuget\packages\;D:\vsShare\NuGetPackages + PackageReference + 6.14.0 + + + + + + \ No newline at end of file diff --git a/Theme/obj/Theme.csproj.nuget.g.targets b/Theme/obj/Theme.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/Theme/obj/Theme.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Theme/obj/project.assets.json b/Theme/obj/project.assets.json new file mode 100644 index 0000000..cad98ff --- /dev/null +++ b/Theme/obj/project.assets.json @@ -0,0 +1,79 @@ +{ + "version": 3, + "targets": { + ".NETStandard,Version=v2.1": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + ".NETStandard,Version=v2.1": [] + }, + "packageFolders": { + "C:\\Users\\Lenovo\\.nuget\\packages\\": {}, + "D:\\vsShare\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\vs_project\\DuckovMods\\Theme\\Theme.csproj", + "projectName": "Theme", + "projectPath": "D:\\vs_project\\DuckovMods\\Theme\\Theme.csproj", + "packagesPath": "C:\\Users\\Lenovo\\.nuget\\packages\\", + "outputPath": "D:\\vs_project\\DuckovMods\\Theme\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "D:\\vsShare\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\Lenovo\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "netstandard2.1" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "netstandard2.1": { + "targetAlias": "netstandard2.1", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "netstandard2.1": { + "targetAlias": "netstandard2.1", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "NETStandard.Library": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/Theme/obj/project.nuget.cache b/Theme/obj/project.nuget.cache new file mode 100644 index 0000000..44fe8dc --- /dev/null +++ b/Theme/obj/project.nuget.cache @@ -0,0 +1,8 @@ +{ + "version": 2, + "dgSpecHash": "N+YeLnamjSg=", + "success": true, + "projectFilePath": "D:\\vs_project\\DuckovMods\\Theme\\Theme.csproj", + "expectedPackageFiles": [], + "logs": [] +} \ No newline at end of file diff --git a/Theme/obj/project.packagespec.json b/Theme/obj/project.packagespec.json new file mode 100644 index 0000000..cc57597 --- /dev/null +++ b/Theme/obj/project.packagespec.json @@ -0,0 +1 @@ +"restore":{"projectUniqueName":"D:\\vs_project\\DuckovMods\\Theme\\Theme.csproj","projectName":"Theme","projectPath":"D:\\vs_project\\DuckovMods\\Theme\\Theme.csproj","outputPath":"D:\\vs_project\\DuckovMods\\Theme\\obj\\","projectStyle":"PackageReference","fallbackFolders":["D:\\vsShare\\NuGetPackages"],"originalTargetFrameworks":["netstandard2.1"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"netstandard2.1":{"targetAlias":"netstandard2.1","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.300"}"frameworks":{"netstandard2.1":{"targetAlias":"netstandard2.1","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"NETStandard.Library":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json"}} \ No newline at end of file diff --git a/Theme/obj/rider.project.restore.info b/Theme/obj/rider.project.restore.info new file mode 100644 index 0000000..2931e15 --- /dev/null +++ b/Theme/obj/rider.project.restore.info @@ -0,0 +1 @@ +17622424783469959 \ No newline at end of file diff --git a/UIFrame/ModBehaviour.cs b/UIFrame/ModBehaviour.cs index 7964916..298d1f3 100644 --- a/UIFrame/ModBehaviour.cs +++ b/UIFrame/ModBehaviour.cs @@ -1,3 +1,4 @@ +using Duckov.Options.UI; using UnityEngine; namespace UIFrame @@ -7,6 +8,7 @@ namespace UIFrame protected override void OnAfterSetup() { Debug.Log("OnAfterSetup"); + } protected override void OnBeforeDeactivate() diff --git a/UIFrame/UIFrame.csproj b/UIFrame/UIFrame.csproj new file mode 100644 index 0000000..6c99785 --- /dev/null +++ b/UIFrame/UIFrame.csproj @@ -0,0 +1,22 @@ + + + + netstandard2.1 + enable + D:\steam\steamapps\common\Escape from Duckov + false + + + + D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\UIFrame + false + none + + + + + + + + + diff --git a/UIFrame/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/UIFrame/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs new file mode 100644 index 0000000..348b87f --- /dev/null +++ b/UIFrame/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/UIFrame/obj/Debug/UIFrame.AssemblyInfo.cs b/UIFrame/obj/Debug/UIFrame.AssemblyInfo.cs new file mode 100644 index 0000000..e35ae9e --- /dev/null +++ b/UIFrame/obj/Debug/UIFrame.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("UIFrame")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] +[assembly: System.Reflection.AssemblyProductAttribute("UIFrame")] +[assembly: System.Reflection.AssemblyTitleAttribute("UIFrame")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/UIFrame/obj/Debug/UIFrame.AssemblyInfoInputs.cache b/UIFrame/obj/Debug/UIFrame.AssemblyInfoInputs.cache new file mode 100644 index 0000000..5af41bc --- /dev/null +++ b/UIFrame/obj/Debug/UIFrame.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +befe5a7453194406b1676f68d219a8c86bdf2f4cea49adddbaad5a1bb5006b5d diff --git a/UIFrame/obj/Debug/UIFrame.GeneratedMSBuildEditorConfig.editorconfig b/UIFrame/obj/Debug/UIFrame.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..e1e9803 --- /dev/null +++ b/UIFrame/obj/Debug/UIFrame.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = UIFrame +build_property.ProjectDir = D:\vs_project\DuckovMods\UIFrame\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/UIFrame/obj/Debug/UIFrame.assets.cache b/UIFrame/obj/Debug/UIFrame.assets.cache new file mode 100644 index 0000000..22fc8e2 Binary files /dev/null and b/UIFrame/obj/Debug/UIFrame.assets.cache differ diff --git a/UIFrame/obj/Debug/UIFrame.csproj.AssemblyReference.cache b/UIFrame/obj/Debug/UIFrame.csproj.AssemblyReference.cache new file mode 100644 index 0000000..ef5d7be Binary files /dev/null and b/UIFrame/obj/Debug/UIFrame.csproj.AssemblyReference.cache differ diff --git a/UIFrame/obj/Release/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/UIFrame/obj/Release/.NETStandard,Version=v2.1.AssemblyAttributes.cs new file mode 100644 index 0000000..348b87f --- /dev/null +++ b/UIFrame/obj/Release/.NETStandard,Version=v2.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/UIFrame/obj/Release/UIFrame.AssemblyInfo.cs b/UIFrame/obj/Release/UIFrame.AssemblyInfo.cs new file mode 100644 index 0000000..1a1154a --- /dev/null +++ b/UIFrame/obj/Release/UIFrame.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("UIFrame")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0206a83f56b5a794fe2f173b4a047cc4f0d4cd90")] +[assembly: System.Reflection.AssemblyProductAttribute("UIFrame")] +[assembly: System.Reflection.AssemblyTitleAttribute("UIFrame")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/UIFrame/obj/Release/UIFrame.AssemblyInfoInputs.cache b/UIFrame/obj/Release/UIFrame.AssemblyInfoInputs.cache new file mode 100644 index 0000000..b32f3f6 --- /dev/null +++ b/UIFrame/obj/Release/UIFrame.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +eb1c4a5bd10a6004eb2efc2bf4354383e0389ddf5e8c9585686a601d75e8a73a diff --git a/UIFrame/obj/Release/UIFrame.GeneratedMSBuildEditorConfig.editorconfig b/UIFrame/obj/Release/UIFrame.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..e1e9803 --- /dev/null +++ b/UIFrame/obj/Release/UIFrame.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = UIFrame +build_property.ProjectDir = D:\vs_project\DuckovMods\UIFrame\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/UIFrame/obj/Release/UIFrame.assets.cache b/UIFrame/obj/Release/UIFrame.assets.cache new file mode 100644 index 0000000..3bc61fd Binary files /dev/null and b/UIFrame/obj/Release/UIFrame.assets.cache differ diff --git a/UIFrame/obj/Release/UIFrame.csproj.AssemblyReference.cache b/UIFrame/obj/Release/UIFrame.csproj.AssemblyReference.cache new file mode 100644 index 0000000..2f0b834 Binary files /dev/null and b/UIFrame/obj/Release/UIFrame.csproj.AssemblyReference.cache differ diff --git a/UIFrame/obj/Release/UIFrame.csproj.CoreCompileInputs.cache b/UIFrame/obj/Release/UIFrame.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..c51f270 --- /dev/null +++ b/UIFrame/obj/Release/UIFrame.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +26cd918e8bf85dee638761fbef4e2117b1734f804498932e0dc10264a1740877 diff --git a/UIFrame/obj/Release/UIFrame.csproj.FileListAbsolute.txt b/UIFrame/obj/Release/UIFrame.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..ce69051 --- /dev/null +++ b/UIFrame/obj/Release/UIFrame.csproj.FileListAbsolute.txt @@ -0,0 +1,7 @@ +D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\UIFrame\UIFrame.dll +D:\vs_project\DuckovMods\UIFrame\obj\Release\UIFrame.csproj.AssemblyReference.cache +D:\vs_project\DuckovMods\UIFrame\obj\Release\UIFrame.GeneratedMSBuildEditorConfig.editorconfig +D:\vs_project\DuckovMods\UIFrame\obj\Release\UIFrame.AssemblyInfoInputs.cache +D:\vs_project\DuckovMods\UIFrame\obj\Release\UIFrame.AssemblyInfo.cs +D:\vs_project\DuckovMods\UIFrame\obj\Release\UIFrame.csproj.CoreCompileInputs.cache +D:\vs_project\DuckovMods\UIFrame\obj\Release\UIFrame.dll diff --git a/UIFrame/obj/Release/UIFrame.dll b/UIFrame/obj/Release/UIFrame.dll new file mode 100644 index 0000000..066342a Binary files /dev/null and b/UIFrame/obj/Release/UIFrame.dll differ diff --git a/UIFrame/obj/Release/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/UIFrame/obj/Release/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs new file mode 100644 index 0000000..348b87f --- /dev/null +++ b/UIFrame/obj/Release/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/UIFrame/obj/Release/netstandard2.1/UIFrame.AssemblyInfo.cs b/UIFrame/obj/Release/netstandard2.1/UIFrame.AssemblyInfo.cs new file mode 100644 index 0000000..0f81c4e --- /dev/null +++ b/UIFrame/obj/Release/netstandard2.1/UIFrame.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("UIFrame")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2b7943339c8fff4147e07028e81b3fff19ff0d80")] +[assembly: System.Reflection.AssemblyProductAttribute("UIFrame")] +[assembly: System.Reflection.AssemblyTitleAttribute("UIFrame")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/UIFrame/obj/Release/netstandard2.1/UIFrame.AssemblyInfoInputs.cache b/UIFrame/obj/Release/netstandard2.1/UIFrame.AssemblyInfoInputs.cache new file mode 100644 index 0000000..8588db6 --- /dev/null +++ b/UIFrame/obj/Release/netstandard2.1/UIFrame.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +182413bb99359ea7c161b45b2bb18fe3237278db1602606b22aaa2562bc9943e diff --git a/UIFrame/obj/Release/netstandard2.1/UIFrame.GeneratedMSBuildEditorConfig.editorconfig b/UIFrame/obj/Release/netstandard2.1/UIFrame.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..e1e9803 --- /dev/null +++ b/UIFrame/obj/Release/netstandard2.1/UIFrame.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = UIFrame +build_property.ProjectDir = D:\vs_project\DuckovMods\UIFrame\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/UIFrame/obj/Release/netstandard2.1/UIFrame.assets.cache b/UIFrame/obj/Release/netstandard2.1/UIFrame.assets.cache new file mode 100644 index 0000000..41c8092 Binary files /dev/null and b/UIFrame/obj/Release/netstandard2.1/UIFrame.assets.cache differ diff --git a/UIFrame/obj/UIFrame.csproj.nuget.dgspec.json b/UIFrame/obj/UIFrame.csproj.nuget.dgspec.json new file mode 100644 index 0000000..086340a --- /dev/null +++ b/UIFrame/obj/UIFrame.csproj.nuget.dgspec.json @@ -0,0 +1,73 @@ +{ + "format": 1, + "restore": { + "D:\\vs_project\\DuckovMods\\UIFrame\\UIFrame.csproj": {} + }, + "projects": { + "D:\\vs_project\\DuckovMods\\UIFrame\\UIFrame.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\vs_project\\DuckovMods\\UIFrame\\UIFrame.csproj", + "projectName": "UIFrame", + "projectPath": "D:\\vs_project\\DuckovMods\\UIFrame\\UIFrame.csproj", + "packagesPath": "C:\\Users\\Lenovo\\.nuget\\packages\\", + "outputPath": "D:\\vs_project\\DuckovMods\\UIFrame\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "D:\\vsShare\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\Lenovo\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "netstandard2.1" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "netstandard2.1": { + "targetAlias": "netstandard2.1", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "netstandard2.1": { + "targetAlias": "netstandard2.1", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "NETStandard.Library": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/UIFrame/obj/UIFrame.csproj.nuget.g.props b/UIFrame/obj/UIFrame.csproj.nuget.g.props new file mode 100644 index 0000000..2e378fe --- /dev/null +++ b/UIFrame/obj/UIFrame.csproj.nuget.g.props @@ -0,0 +1,16 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\Lenovo\.nuget\packages\;D:\vsShare\NuGetPackages + PackageReference + 6.14.0 + + + + + + \ No newline at end of file diff --git a/UIFrame/obj/UIFrame.csproj.nuget.g.targets b/UIFrame/obj/UIFrame.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/UIFrame/obj/UIFrame.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/UIFrame/obj/project.assets.json b/UIFrame/obj/project.assets.json new file mode 100644 index 0000000..7f9867a --- /dev/null +++ b/UIFrame/obj/project.assets.json @@ -0,0 +1,79 @@ +{ + "version": 3, + "targets": { + ".NETStandard,Version=v2.1": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + ".NETStandard,Version=v2.1": [] + }, + "packageFolders": { + "C:\\Users\\Lenovo\\.nuget\\packages\\": {}, + "D:\\vsShare\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\vs_project\\DuckovMods\\UIFrame\\UIFrame.csproj", + "projectName": "UIFrame", + "projectPath": "D:\\vs_project\\DuckovMods\\UIFrame\\UIFrame.csproj", + "packagesPath": "C:\\Users\\Lenovo\\.nuget\\packages\\", + "outputPath": "D:\\vs_project\\DuckovMods\\UIFrame\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "D:\\vsShare\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\Lenovo\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "netstandard2.1" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "netstandard2.1": { + "targetAlias": "netstandard2.1", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "netstandard2.1": { + "targetAlias": "netstandard2.1", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "NETStandard.Library": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/UIFrame/obj/project.nuget.cache b/UIFrame/obj/project.nuget.cache new file mode 100644 index 0000000..46bb9aa --- /dev/null +++ b/UIFrame/obj/project.nuget.cache @@ -0,0 +1,8 @@ +{ + "version": 2, + "dgSpecHash": "A4ZumVBkozg=", + "success": true, + "projectFilePath": "D:\\vs_project\\DuckovMods\\UIFrame\\UIFrame.csproj", + "expectedPackageFiles": [], + "logs": [] +} \ No newline at end of file diff --git a/UIFrame/obj/project.packagespec.json b/UIFrame/obj/project.packagespec.json new file mode 100644 index 0000000..477c4e3 --- /dev/null +++ b/UIFrame/obj/project.packagespec.json @@ -0,0 +1 @@ +"restore":{"projectUniqueName":"D:\\vs_project\\DuckovMods\\UIFrame\\UIFrame.csproj","projectName":"UIFrame","projectPath":"D:\\vs_project\\DuckovMods\\UIFrame\\UIFrame.csproj","outputPath":"D:\\vs_project\\DuckovMods\\UIFrame\\obj\\","projectStyle":"PackageReference","fallbackFolders":["D:\\vsShare\\NuGetPackages"],"originalTargetFrameworks":["netstandard2.1"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"netstandard2.1":{"targetAlias":"netstandard2.1","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.300"}"frameworks":{"netstandard2.1":{"targetAlias":"netstandard2.1","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"NETStandard.Library":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.306\\RuntimeIdentifierGraph.json"}} \ No newline at end of file diff --git a/UIFrame/obj/rider.project.model.nuget.info b/UIFrame/obj/rider.project.model.nuget.info new file mode 100644 index 0000000..cb867e2 --- /dev/null +++ b/UIFrame/obj/rider.project.model.nuget.info @@ -0,0 +1 @@ +17620796287866771 \ No newline at end of file diff --git a/UIFrame/obj/rider.project.restore.info b/UIFrame/obj/rider.project.restore.info new file mode 100644 index 0000000..cb867e2 --- /dev/null +++ b/UIFrame/obj/rider.project.restore.info @@ -0,0 +1 @@ +17620796287866771 \ No newline at end of file