From 8fcbdc5649e0b93fd1b771001f53cdbb81da2c78 Mon Sep 17 00:00:00 2001 From: m0_75251201 Date: Thu, 13 Nov 2025 16:24:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=9C=BA=E6=99=AF=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B1=9E=E6=80=A7=E7=BC=96=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=AE=E5=BB=93=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CharacterPreview/CharacterPreview.csproj | 32 + CharacterPreview/ModBehaviour.cs | 134 +++ CharacterPreview/ModelMove.cs | 53 ++ .../PatchSceneLoaderNotifyPointerClick.cs | 13 + .../CharacterPreview.csproj.nuget.dgspec.json | 79 ++ .../obj/CharacterPreview.csproj.nuget.g.props | 16 + .../CharacterPreview.csproj.nuget.g.targets | 2 + ...tandard,Version=v2.1.AssemblyAttributes.cs | 4 + .../obj/Debug/Characte.69A9E5B8.Up2Date | 0 .../Debug/CharacterPreview.AssemblyInfo.cs | 22 + .../CharacterPreview.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 8 + .../obj/Debug/CharacterPreview.assets.cache | Bin 0 -> 750 bytes ...cterPreview.csproj.AssemblyReference.cache | Bin 0 -> 32519 bytes ...cterPreview.csproj.CoreCompileInputs.cache | 1 + ...aracterPreview.csproj.FileListAbsolute.txt | 8 + .../obj/Debug/CharacterPreview.dll | Bin 0 -> 8192 bytes ...tandard,Version=v2.1.AssemblyAttributes.cs | 4 + .../Release/CharacterPreview.AssemblyInfo.cs | 22 + .../CharacterPreview.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 8 + .../obj/Release/CharacterPreview.assets.cache | Bin 0 -> 750 bytes ...cterPreview.csproj.AssemblyReference.cache | Bin 0 -> 32519 bytes ...cterPreview.csproj.CoreCompileInputs.cache | 1 + ...aracterPreview.csproj.FileListAbsolute.txt | 7 + .../obj/Release/CharacterPreview.dll | Bin 0 -> 5632 bytes ...tandard,Version=v2.1.AssemblyAttributes.cs | 4 + .../CharacterPreview.AssemblyInfo.cs | 22 + .../CharacterPreview.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 8 + .../CharacterPreview.assets.cache | Bin 0 -> 182 bytes CharacterPreview/obj/project.assets.json | 239 ++++++ CharacterPreview/obj/project.nuget.cache | 12 + CharacterPreview/obj/project.packagespec.json | 1 + .../obj/rider.project.model.nuget.info | 1 + .../obj/rider.project.restore.info | 1 + DuckovMods.sln | 6 + DuckovMods.sln.DotSettings.user | 17 + .../obj/Debug/HideCharacter.AssemblyInfo.cs | 2 +- .../HideCharacter.AssemblyInfoInputs.cache | 2 +- .../obj/Release/HideCharacter.AssemblyInfo.cs | 2 +- .../HideCharacter.AssemblyInfoInputs.cache | 2 +- .../obj/Debug/HitFeedback.AssemblyInfo.cs | 2 +- .../HitFeedback.AssemblyInfoInputs.cache | 2 +- .../obj/Release/HitFeedback.AssemblyInfo.cs | 2 +- .../HitFeedback.AssemblyInfoInputs.cache | 2 +- .../obj/Debug/SceneSnapshot.AssemblyInfo.cs | 2 +- .../SceneSnapshot.AssemblyInfoInputs.cache | 2 +- .../obj/Release/SceneSnapshot.AssemblyInfo.cs | 2 +- .../SceneSnapshot.AssemblyInfoInputs.cache | 2 +- SceneView/CanvasControl.cs | 69 +- SceneView/ControlUtilities.cs | 629 +++++++++++--- SceneView/FontUtilities.cs | 22 +- SceneView/ModBehaviour.cs | 42 +- SceneView/ParametersPanel.cs | 340 ++++++++ SceneView/PatchGameObjectStart.cs | 14 - SceneView/PatchObjectDestroy.cs | 15 - SceneView/SceneView.csproj | 10 +- SceneView/SceneViewPanel.cs | 95 +-- SceneView/TreeViewNode.cs | 187 ++-- SceneView/bin/Debug/SceneView.deps.json | 59 ++ SceneView/bin/Debug/SceneView.dll | Bin 0 -> 40448 bytes SceneView/bin/Debug/SceneView.pdb | Bin 0 -> 27124 bytes SceneView/obj/Debug/SceneView.AssemblyInfo.cs | 2 +- .../Debug/SceneView.AssemblyInfoInputs.cache | 2 +- .../SceneView.csproj.AssemblyReference.cache | Bin 31776 -> 80220 bytes .../SceneView.csproj.CoreCompileInputs.cache | 1 + .../SceneView.csproj.FileListAbsolute.txt | 11 + SceneView/obj/Debug/SceneView.dll | Bin 0 -> 40448 bytes SceneView/obj/Debug/SceneView.pdb | Bin 0 -> 27124 bytes SceneView/obj/Debug/SceneView.sourcelink.json | 1 + .../obj/Release/SceneView.AssemblyInfo.cs | 2 +- .../SceneView.AssemblyInfoInputs.cache | 2 +- .../SceneView.csproj.AssemblyReference.cache | Bin 85853 -> 121123 bytes .../SceneView.csproj.CoreCompileInputs.cache | 2 +- SceneView/obj/Release/SceneView.dll | Bin 26624 -> 37888 bytes Theme/obj/Debug/Theme.AssemblyInfo.cs | 2 +- .../obj/Debug/Theme.AssemblyInfoInputs.cache | 2 +- Theme/obj/Release/Theme.AssemblyInfo.cs | 2 +- .../Release/Theme.AssemblyInfoInputs.cache | 2 +- UIFrame/GameOriginMainMenuUI.cs | 26 + UIFrame/ModBehaviour.cs | 13 +- .../PatchSpriteRendererLocalizorRefresh.cs | 36 +- .../Patch/PatchTextLocalizorRefreshTexts.cs | 48 ++ UIFrame/UIFrameAPI.cs | 19 +- UIFrame/UIFrameAPIComponent.cs | 9 + UIFrame/UIFrameWorker.cs | 15 + UIFrame/Utilities/ConfigApply.cs | 41 + UIFrame/Utilities/ControlUtilities.cs | 799 ++++++++++++++++++ UIFrame/obj/Debug/UIFrame.AssemblyInfo.cs | 2 +- .../Debug/UIFrame.AssemblyInfoInputs.cache | 2 +- UIFrame/obj/Release/UIFrame.AssemblyInfo.cs | 2 +- .../Release/UIFrame.AssemblyInfoInputs.cache | 2 +- .../UIFrame.csproj.CoreCompileInputs.cache | 2 +- UIFrame/obj/Release/UIFrame.dll | Bin 13824 -> 14336 bytes 95 files changed, 2836 insertions(+), 445 deletions(-) create mode 100644 CharacterPreview/CharacterPreview.csproj create mode 100644 CharacterPreview/ModBehaviour.cs create mode 100644 CharacterPreview/ModelMove.cs create mode 100644 CharacterPreview/PatchSceneLoaderNotifyPointerClick.cs create mode 100644 CharacterPreview/obj/CharacterPreview.csproj.nuget.dgspec.json create mode 100644 CharacterPreview/obj/CharacterPreview.csproj.nuget.g.props create mode 100644 CharacterPreview/obj/CharacterPreview.csproj.nuget.g.targets create mode 100644 CharacterPreview/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs create mode 100644 CharacterPreview/obj/Debug/Characte.69A9E5B8.Up2Date create mode 100644 CharacterPreview/obj/Debug/CharacterPreview.AssemblyInfo.cs create mode 100644 CharacterPreview/obj/Debug/CharacterPreview.AssemblyInfoInputs.cache create mode 100644 CharacterPreview/obj/Debug/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 CharacterPreview/obj/Debug/CharacterPreview.assets.cache create mode 100644 CharacterPreview/obj/Debug/CharacterPreview.csproj.AssemblyReference.cache create mode 100644 CharacterPreview/obj/Debug/CharacterPreview.csproj.CoreCompileInputs.cache create mode 100644 CharacterPreview/obj/Debug/CharacterPreview.csproj.FileListAbsolute.txt create mode 100644 CharacterPreview/obj/Debug/CharacterPreview.dll create mode 100644 CharacterPreview/obj/Release/.NETStandard,Version=v2.1.AssemblyAttributes.cs create mode 100644 CharacterPreview/obj/Release/CharacterPreview.AssemblyInfo.cs create mode 100644 CharacterPreview/obj/Release/CharacterPreview.AssemblyInfoInputs.cache create mode 100644 CharacterPreview/obj/Release/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 CharacterPreview/obj/Release/CharacterPreview.assets.cache create mode 100644 CharacterPreview/obj/Release/CharacterPreview.csproj.AssemblyReference.cache create mode 100644 CharacterPreview/obj/Release/CharacterPreview.csproj.CoreCompileInputs.cache create mode 100644 CharacterPreview/obj/Release/CharacterPreview.csproj.FileListAbsolute.txt create mode 100644 CharacterPreview/obj/Release/CharacterPreview.dll create mode 100644 CharacterPreview/obj/Release/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs create mode 100644 CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.AssemblyInfo.cs create mode 100644 CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.AssemblyInfoInputs.cache create mode 100644 CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.assets.cache create mode 100644 CharacterPreview/obj/project.assets.json create mode 100644 CharacterPreview/obj/project.nuget.cache create mode 100644 CharacterPreview/obj/project.packagespec.json create mode 100644 CharacterPreview/obj/rider.project.model.nuget.info create mode 100644 CharacterPreview/obj/rider.project.restore.info create mode 100644 SceneView/ParametersPanel.cs delete mode 100644 SceneView/PatchGameObjectStart.cs delete mode 100644 SceneView/PatchObjectDestroy.cs create mode 100644 SceneView/bin/Debug/SceneView.deps.json create mode 100644 SceneView/bin/Debug/SceneView.dll create mode 100644 SceneView/bin/Debug/SceneView.pdb create mode 100644 SceneView/obj/Debug/SceneView.csproj.CoreCompileInputs.cache create mode 100644 SceneView/obj/Debug/SceneView.csproj.FileListAbsolute.txt create mode 100644 SceneView/obj/Debug/SceneView.dll create mode 100644 SceneView/obj/Debug/SceneView.pdb create mode 100644 SceneView/obj/Debug/SceneView.sourcelink.json create mode 100644 UIFrame/Patch/PatchTextLocalizorRefreshTexts.cs create mode 100644 UIFrame/Utilities/ConfigApply.cs create mode 100644 UIFrame/Utilities/ControlUtilities.cs diff --git a/CharacterPreview/CharacterPreview.csproj b/CharacterPreview/CharacterPreview.csproj new file mode 100644 index 0000000..39e50cc --- /dev/null +++ b/CharacterPreview/CharacterPreview.csproj @@ -0,0 +1,32 @@ + + + + netstandard2.1 + enable + D:\steam\steamapps\common\Escape from Duckov + false + + + + D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\CharacterPreview + false + none + + + D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\CharacterPreview + false + none + + + + + + + + ..\..\..\steam\steamapps\common\Escape from Duckov\Duckov_Data\Managed\Eflatun.SceneReference.dll + + + + + + diff --git a/CharacterPreview/ModBehaviour.cs b/CharacterPreview/ModBehaviour.cs new file mode 100644 index 0000000..1afab38 --- /dev/null +++ b/CharacterPreview/ModBehaviour.cs @@ -0,0 +1,134 @@ +using System; +using System.Linq; +using System.Reflection; +using Duckov.Utilities; +using Saves; +using UnityEngine; +using UnityEngine.SceneManagement; +using Object = UnityEngine.Object; + +namespace CharacterPreview +{ + public class ModBehaviour : Duckov.Modding.ModBehaviour + { + private static CharacterModel characterModel; + private const string characterFaceSaveKey = "CustomFace_MainCharacter"; + private OnPointerClick? instance; + + private const string ModelName = "CharacterPreviewModel"; + + protected override void OnAfterSetup() + { + MainMenu.OnMainMenuAwake += CreateCharacterModel; + // + // if (!instance) + // { + // instance = GetPointerClickEventReceiver(); + // if (instance == null) + // { + // Debug.LogError("未能找到 SceneLoader.Instance.pointerClickEventRecevier!"); + // } + // else + // { + // instance.onPointerClick.AddListener((t) => CreateCharacterModel()); + // } + // + // } + } + + protected override void OnBeforeDeactivate() + { + MainMenu.OnMainMenuAwake -= CreateCharacterModel; + + if (characterModel) + { + Destroy(characterModel.gameObject); + } + } + + public static void CreateCharacterModel() + { + if (characterModel) + { + Debug.LogWarning("CharacterModel is already created"); + return; + } + + if (SceneManager.GetActiveScene().name != "MainMenu") + { + Debug.LogWarning("非主菜单"); + return; + } + if (!characterModel) + { + var prefab = GetCharacterModelPrefab_Reflection(); + if (prefab == null) + { + Debug.LogError("未能获取 CharacterModel 预制体!"); + return; + } + characterModel = Instantiate(prefab); + } + + if (characterModel) + { + characterModel.name = ModelName; + var customFaceSettingData = SavesSystem.Load(characterFaceSaveKey); + if (!customFaceSettingData.savedSetting) + { + Debug.LogError("未能找到或加载 CustomFaceSettingData !"); + customFaceSettingData = GameplayDataSettings.CustomFaceData.DefaultPreset.settings; + } + characterModel.CustomFace.LoadFromData(customFaceSettingData); + characterModel.gameObject.AddComponent(); + } + } + + OnPointerClick GetPointerClickEventReceiver() + { + var sl = SceneLoader.Instance; + // 使用反射获取 SceneLoader 中的 pointerClickEventReceiver 字段 + var field = typeof(SceneLoader).GetField("pointerClickEventRecevier", BindingFlags.Instance | BindingFlags.NonPublic); + if (field == null) + { + Debug.LogError("pointerClickEventRecevier 字段在 SceneLoader 中未找到!"); + return null; + } + // 获取字段值并转换为 OnPointerClick + var eventReceiver = field.GetValue(sl) as OnPointerClick; + if (eventReceiver == null) + { + Debug.LogError("pointerClickEventRecevier 字段的值为空!"); + return null; + } + return eventReceiver; + } + private static CharacterModel GetCharacterModelPrefab_Reflection() + { + // 获取 LevelManager 实例 + var lm = GameplayDataSettings.Prefabs.LevelManagerPrefab; + if (lm == null) + { + Debug.LogError("LevelManager 实例未找到!"); + return null; + } + + // 使用反射获取 LevelManager 中的 characterModel 字段 + var field = typeof(LevelManager).GetField("characterModel", BindingFlags.Instance | BindingFlags.NonPublic); + if (field == null) + { + Debug.LogError("characterModel 字段在 LevelManager 中未找到!"); + return null; + } + + // 获取字段值并转换为 CharacterModel + var modelPrefab = field.GetValue(lm) as CharacterModel; + if (modelPrefab == null) + { + Debug.LogError("characterModel 字段的值为空!"); + return null; + } + return modelPrefab; + } + } +} diff --git a/CharacterPreview/ModelMove.cs b/CharacterPreview/ModelMove.cs new file mode 100644 index 0000000..1763e7d --- /dev/null +++ b/CharacterPreview/ModelMove.cs @@ -0,0 +1,53 @@ +using System; +using UnityEngine; + +namespace CharacterPreview +{ + public class ModelMove:MonoBehaviour + { + private Camera _camera; + public Camera currentCamera + { + get + { + if (!_camera) + { + _camera = Camera.main; + if (!_camera) + { + _camera = FindObjectOfType(); + } + } + return _camera; + } + } + private void Start() + { + if (currentCamera) + { + var worldPos = CameraLocalToWorld(currentCamera, new Vector3(1, -1, 1)); + transform.position = worldPos; + } + else + { + transform.position = new Vector3(8, 8, -16); + } + } + /// + /// 将摄像机局部坐标系中的点转换为世界坐标系中的点。 + /// 假设摄像机局部坐标系:前向为 +Z,右为 +X,上为 +Y。 + /// + /// 目标摄像机 + /// 在摄像机局部坐标系中的点 + /// 对应的世界坐标 + public static Vector3 CameraLocalToWorld(Camera camera, Vector3 localPoint) + { + if (camera == null) + throw new System.ArgumentNullException(nameof(camera)); + + Transform camTransform = camera.transform; + // 旋转局部点到世界方向,然后加上摄像机位置 + return camTransform.position + camTransform.rotation * localPoint; + } + } +} \ No newline at end of file diff --git a/CharacterPreview/PatchSceneLoaderNotifyPointerClick.cs b/CharacterPreview/PatchSceneLoaderNotifyPointerClick.cs new file mode 100644 index 0000000..940c2d9 --- /dev/null +++ b/CharacterPreview/PatchSceneLoaderNotifyPointerClick.cs @@ -0,0 +1,13 @@ +// using HarmonyLib; +// +// namespace CharacterPreview +// { +// [HarmonyPatch(typeof(SceneLoader), "NotifyPointerClick")] +// public class PatchSceneLoaderNotifyPointerClick +// { +// public static void Postfix(SceneLoader __instance) +// { +// ModBehaviour.CreateCharacterModel(); +// } +// } +// } \ No newline at end of file diff --git a/CharacterPreview/obj/CharacterPreview.csproj.nuget.dgspec.json b/CharacterPreview/obj/CharacterPreview.csproj.nuget.dgspec.json new file mode 100644 index 0000000..6ce5711 --- /dev/null +++ b/CharacterPreview/obj/CharacterPreview.csproj.nuget.dgspec.json @@ -0,0 +1,79 @@ +{ + "format": 1, + "restore": { + "D:\\vs_project\\DuckovMods\\CharacterPreview\\CharacterPreview.csproj": {} + }, + "projects": { + "D:\\vs_project\\DuckovMods\\CharacterPreview\\CharacterPreview.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\vs_project\\DuckovMods\\CharacterPreview\\CharacterPreview.csproj", + "projectName": "CharacterPreview", + "projectPath": "D:\\vs_project\\DuckovMods\\CharacterPreview\\CharacterPreview.csproj", + "packagesPath": "C:\\Users\\Lenovo\\.nuget\\packages\\", + "outputPath": "D:\\vs_project\\DuckovMods\\CharacterPreview\\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", + "dependencies": { + "Lib.Harmony": { + "target": "Package", + "version": "[2.4.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/CharacterPreview/obj/CharacterPreview.csproj.nuget.g.props b/CharacterPreview/obj/CharacterPreview.csproj.nuget.g.props new file mode 100644 index 0000000..2e378fe --- /dev/null +++ b/CharacterPreview/obj/CharacterPreview.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/CharacterPreview/obj/CharacterPreview.csproj.nuget.g.targets b/CharacterPreview/obj/CharacterPreview.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/CharacterPreview/obj/CharacterPreview.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/CharacterPreview/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/CharacterPreview/obj/Debug/.NETStandard,Version=v2.1.AssemblyAttributes.cs new file mode 100644 index 0000000..348b87f --- /dev/null +++ b/CharacterPreview/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/CharacterPreview/obj/Debug/Characte.69A9E5B8.Up2Date b/CharacterPreview/obj/Debug/Characte.69A9E5B8.Up2Date new file mode 100644 index 0000000..e69de29 diff --git a/CharacterPreview/obj/Debug/CharacterPreview.AssemblyInfo.cs b/CharacterPreview/obj/Debug/CharacterPreview.AssemblyInfo.cs new file mode 100644 index 0000000..1cb0887 --- /dev/null +++ b/CharacterPreview/obj/Debug/CharacterPreview.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("CharacterPreview")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9b9121897387fa7e2a57d76690a2a9ae848b1705")] +[assembly: System.Reflection.AssemblyProductAttribute("CharacterPreview")] +[assembly: System.Reflection.AssemblyTitleAttribute("CharacterPreview")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/CharacterPreview/obj/Debug/CharacterPreview.AssemblyInfoInputs.cache b/CharacterPreview/obj/Debug/CharacterPreview.AssemblyInfoInputs.cache new file mode 100644 index 0000000..5277c29 --- /dev/null +++ b/CharacterPreview/obj/Debug/CharacterPreview.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +3bcd831ea4f29882c4ad0e74553f21cd67857c5ac8ecf673bf0a5c0e6b28519c diff --git a/CharacterPreview/obj/Debug/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig b/CharacterPreview/obj/Debug/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..0e94d46 --- /dev/null +++ b/CharacterPreview/obj/Debug/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = CharacterPreview +build_property.ProjectDir = D:\vs_project\DuckovMods\CharacterPreview\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/CharacterPreview/obj/Debug/CharacterPreview.assets.cache b/CharacterPreview/obj/Debug/CharacterPreview.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..dc2b8bcb56ae44765253a4819419784e381d60d0 GIT binary patch literal 750 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 literal 0 HcmV?d00001 diff --git a/CharacterPreview/obj/Debug/CharacterPreview.csproj.CoreCompileInputs.cache b/CharacterPreview/obj/Debug/CharacterPreview.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..cebde03 --- /dev/null +++ b/CharacterPreview/obj/Debug/CharacterPreview.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +c29902ba5d072858998bd0700a0022b61d2b982553e1d41c36961a930ba99211 diff --git a/CharacterPreview/obj/Debug/CharacterPreview.csproj.FileListAbsolute.txt b/CharacterPreview/obj/Debug/CharacterPreview.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..71c9663 --- /dev/null +++ b/CharacterPreview/obj/Debug/CharacterPreview.csproj.FileListAbsolute.txt @@ -0,0 +1,8 @@ +D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\CharacterPreview\CharacterPreview.dll +D:\vs_project\DuckovMods\CharacterPreview\obj\Debug\CharacterPreview.csproj.AssemblyReference.cache +D:\vs_project\DuckovMods\CharacterPreview\obj\Debug\CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig +D:\vs_project\DuckovMods\CharacterPreview\obj\Debug\CharacterPreview.AssemblyInfoInputs.cache +D:\vs_project\DuckovMods\CharacterPreview\obj\Debug\CharacterPreview.AssemblyInfo.cs +D:\vs_project\DuckovMods\CharacterPreview\obj\Debug\CharacterPreview.csproj.CoreCompileInputs.cache +D:\vs_project\DuckovMods\CharacterPreview\obj\Debug\CharacterPreview.dll +D:\vs_project\DuckovMods\CharacterPreview\obj\Debug\Characte.69A9E5B8.Up2Date diff --git a/CharacterPreview/obj/Debug/CharacterPreview.dll b/CharacterPreview/obj/Debug/CharacterPreview.dll new file mode 100644 index 0000000000000000000000000000000000000000..2124ffcb58f38264ce9f42c07d2ab67332a96df5 GIT binary patch literal 8192 zcmeHM3v3+6dH!ejZjU@t7u``-q(-t&qNJQj>P(7~NZPI~iVul4AL3I{43*lu8y+{h z+ogB+C{u!6TC$DCZW8CAycz_Kou+lsAP?BB?ZR~uJ22eVwF?AB(j;!x0!7g_Fai{X zo2FL3fA(G!W2q^E0tGt9{dfL<{`ucCyE`2F;G?7yQ3%)N%S6xM&h3zbR|l&Yj@|HF zjGk(Ib;mPe^wk|RiTV+6Bhr{Mj+rxBU z3=%fIV?>aB?>*?Jkie*a1H`QIP#er@>C}}o5E=gk6XI(o+=s-5Qt&DoH98WcP^SfG zY7+nv1h#Z)v=PE!0_4^6$H@hKDRmvQ_Pzz(smr5fQ@ODG=Nl-i0}E#Y{W=b1bYiG_|wFfSfTL2LUeTT&;a#fTdn zc0h1Hi75_>GD_|XJR7#Rw?yKRbI5xX>RKA&4IS5$`_roE6k-^4k^tv+0JKB`NzP6n z@rcukTbaVqaiF|?54CZui?9i3oKm|n5`7&Z5UD-rx?O^nZrJ6#AN{7trc?@d_z90B z1_F;ZwS?L`BZhM$#!6gV%?)dv|Lz*ra0B=efl8hqg>IBRbb}Ig+5w_QARy4xsMTwd zuOk~3<1liCag~5iteI3b50z6hkE0DwerFA9)jZUC2W;W;QT1~N?qRl5JBQK@3Jz&N z&2^BL+6&funZ9-uRkH!3@ULBsq6F3K=5}g;;Fiu1bKQ|GLOpj%@~KF&=&+5CN{aRAO_w( z%s#6*EF@|;-MAUfen35S05EkBK-rDRU|-?L9G<@8uqf{)yf-cHPj{xfJG;C3fFN20 zz+MEc^**96jlB8(Omq_$D!K@PdX&H~!XCnW#9JTVv5eVY#mBsr3!=I1(0-ybjU~LG zWx@uv=?o*cIxf`6mnUIo7=cYzU2m|1I=mbRf(;+lir2Fcw-A z1|5a`DE&5~Y0!}nYuRQn{5*8U=x!ysQNgElp8I#9DFc?PSz74vaFkvQe;g30hTc}l ziPB%H2&_VaK|dpge-s`MJwY6MgPw$z7~KTzKna^1n##P`NZ%2c!Uw9@`w&CMI9D6# zZG~xwv_N)K;fqE;cABul=Jbn(L~fdB5B+}lS+R%m`tu@AZ|dI?ldE4bUJ`;X(aY!` z5ZvEIe=d$CS@T0%b|T7xPE@hiFz!~d?*Ths#dz!!3VVrOfnS22DPvzlECn^}Ahb`@ zEBarvmYs~(;0XmyK!a8QuOmzK ze@g#E@1uW5{|0Ilr^IfC`fmCh4I2k2E;bprp#L&*utQwb=jcW;Dej^#(e2_Cb%`Gu zIgGw$drp6?Wg&8!?WeUobFwDf&!+=@Etn7Lus zDJtZcD;La+r}`{mR4&WHm}#4N=>}uO{B%V6!a-9h!No?3*!ii(r$CdgJ-G(A^ln3T9(sUX~QC?n89qSlSIRootwyf z2!WqiV1+az&Em9^Gt+~m>}h9NsiHwyka^RW6u9DB+@G)y%LN!RC{0$vq@iL)=5jLE z@8ijtDS-l=OIAU;M__;pmb#%T)2xU1S1~Bdl=68qQ>dejmkNcolzz{X#Y|yk#`5bK zXG|A~9maQ`Jma{hYf>xx!?0#fx}N3O>jy_{I8-!!44Q>^=gVTcEH_u%YSXVSSsfu_LIKsy6ojOzRoN6Q`T40Di?cM}kBBIC z)Y1Hs;{^z>sVdU%=1WEFNu0Q$d$Mv#@v9w!D+uA}Uw~cOWbQn7bW(3F)th=Rxxxzba zxkNnPk9a%wXw1sGj^`}+*i~|}A8TyIvplL+Zm@VgVkyCLhVCwzyf%4!#FiC|pM(Pgv`8koxU%GvL~o27d}B#` zizM-u@MG3L+V%V-QE7TK670ZVw@{f*DuGXA3rv(uuhE&rdZe|+JM z=_KA8uBPdM&mNqbo)DKs`+B}(O5ZYcNIFwzA9W2tn+Llce31_;A0*9#Bd}+^B)XmL zxi8Z>wK?k`fX@^g}O{H~`@r;aCSTFJ5@Zxot21DvBI?HzB+vmc1q!2eYK1IxD_yLtTV zS;%<*sIr)|&e5}R<;$ABc-JEnRbAV&SIHvXd9~4+Pw%d)&a1uGmQ`o}hAb>DDvM2& z^`A|>x##D9I63gAZ~yS08-M)O^At)7(V!g-O$5u?S#dEHM_@ zD8%(RatuX9V#rWP41LTpAQ&QlR|$SnH{!FZ_f=)iY`9aDXKiVY7>N^!lZg=xe^8S+ z(Lf@x`i=PN(+x>2aWWQPeO9SEnK%iDwr$%Gi6l%+7*Yl*EzgHwzG*~sSY@#cD~xl! zz$_~qfg435sf*_3W@fxw*-(r`^u*m50V!UDaq-pfHWF~$T*Wsgf-L_3pL1Fc3iNk4V?85mEenj1Z(h6zs z%k*{a>+0?6>F(`WFni=a^FU9o=itG1eLs-L^3|qZN&;zIW zOK3*h&|fGxXUfk3yh&?~BleFN>FVsouMI^zv@VxKhnpVgG9wpTMYpMXat>siMPYLF?$u z$NxL{z#*a>A6%4MPRF?*&0#m62OPpPVj5qZ6EqHd1aLU`uM0gNdh4Cw3%3&c;Lhh= z+)(74@-=M`7*0&E|GAK3VF$+t5_a$fJTJKIQnO|-%KN&9aekgz7`4?n(bq#SL8yRD zKDdIX-g-%oDV|RF9sKs=qzf^?{~h9(I{v{&rCsc2_ReeI58YV!<<=pM8Zo53Z#%jc0NJKW-^x z2TKe(^GXUwWeM+09MwFYoIZGxxTciOi87rd&N?gpGse%dYsao$caR6(NcsJ(g!uV& zUR+xi)X{mm3HGm*ab*N+@oUF +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/CharacterPreview/obj/Release/CharacterPreview.AssemblyInfo.cs b/CharacterPreview/obj/Release/CharacterPreview.AssemblyInfo.cs new file mode 100644 index 0000000..87ea779 --- /dev/null +++ b/CharacterPreview/obj/Release/CharacterPreview.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("CharacterPreview")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9b9121897387fa7e2a57d76690a2a9ae848b1705")] +[assembly: System.Reflection.AssemblyProductAttribute("CharacterPreview")] +[assembly: System.Reflection.AssemblyTitleAttribute("CharacterPreview")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/CharacterPreview/obj/Release/CharacterPreview.AssemblyInfoInputs.cache b/CharacterPreview/obj/Release/CharacterPreview.AssemblyInfoInputs.cache new file mode 100644 index 0000000..c0e0e81 --- /dev/null +++ b/CharacterPreview/obj/Release/CharacterPreview.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +cdbee0654e5bd2c9896d77407e3d7ce5ae6183e3f37c36106e534970cbdd063c diff --git a/CharacterPreview/obj/Release/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig b/CharacterPreview/obj/Release/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..0e94d46 --- /dev/null +++ b/CharacterPreview/obj/Release/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = CharacterPreview +build_property.ProjectDir = D:\vs_project\DuckovMods\CharacterPreview\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/CharacterPreview/obj/Release/CharacterPreview.assets.cache b/CharacterPreview/obj/Release/CharacterPreview.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..c5fc3aaed249e2e802fc22a1dc54c2cf83c52e8c GIT binary patch literal 750 zcmcIi%TB^T6s_6qK(Ub!0^({mm0qB6+LF$IvT)-g#-(52 z()b^KfbmcK02A-Ul2kUVoaAJBADwgOoN1oc4%Zb$*?Nn-Ki}tWHy`(&J}bkIm+Wi$ zZYT5geRI&z9&6xp#}N*jq33_G6iQ)Jr#=e7W62W zX-|X%he8frX?w1INIt5itZ2ts>SCaRf=0KqL_~Xl{`l*rQ~t zWi}RVR0UXLR0G)z#G>LqiF)nunRCQ26O|a}R|*r!@LYy9uVp%1K1cUaNo^`vqG`&3 z;RZL_MxXP4ea?q{RvV@RVdJ8~VQE7c&XC((Tk=U2dbSIec5HG1u@(rAkHJ#U{1K=` NS6n1|=nek9zaK#x%4q-q literal 0 HcmV?d00001 diff --git a/CharacterPreview/obj/Release/CharacterPreview.csproj.AssemblyReference.cache b/CharacterPreview/obj/Release/CharacterPreview.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..00be8a775fda88f51ce1a98448da78b1a2a80e04 GIT binary patch literal 32519 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 literal 0 HcmV?d00001 diff --git a/CharacterPreview/obj/Release/CharacterPreview.csproj.CoreCompileInputs.cache b/CharacterPreview/obj/Release/CharacterPreview.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..67d3d27 --- /dev/null +++ b/CharacterPreview/obj/Release/CharacterPreview.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +356db5ad935a1120367a47fbf381e8f0de76f293776515bb91fa0b0cadad25c7 diff --git a/CharacterPreview/obj/Release/CharacterPreview.csproj.FileListAbsolute.txt b/CharacterPreview/obj/Release/CharacterPreview.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..5f793ff --- /dev/null +++ b/CharacterPreview/obj/Release/CharacterPreview.csproj.FileListAbsolute.txt @@ -0,0 +1,7 @@ +D:\steam\steamapps\common\Escape from Duckov\Duckov_Data\Mods\CharacterPreview\CharacterPreview.dll +D:\vs_project\DuckovMods\CharacterPreview\obj\Release\CharacterPreview.csproj.AssemblyReference.cache +D:\vs_project\DuckovMods\CharacterPreview\obj\Release\CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig +D:\vs_project\DuckovMods\CharacterPreview\obj\Release\CharacterPreview.AssemblyInfoInputs.cache +D:\vs_project\DuckovMods\CharacterPreview\obj\Release\CharacterPreview.AssemblyInfo.cs +D:\vs_project\DuckovMods\CharacterPreview\obj\Release\CharacterPreview.csproj.CoreCompileInputs.cache +D:\vs_project\DuckovMods\CharacterPreview\obj\Release\CharacterPreview.dll diff --git a/CharacterPreview/obj/Release/CharacterPreview.dll b/CharacterPreview/obj/Release/CharacterPreview.dll new file mode 100644 index 0000000000000000000000000000000000000000..7201cbfba9da38c170711e6cd398285eff4fb4e9 GIT binary patch literal 5632 zcmeHLYit}>6+Sb&UOO8nwKqZ1CS7i3K70@clP19 zNr==RAaU3C+QW>5=gEUxVfAlss`ZTEFzb`lusJ8-i>roj_$>b*N>fhp4X%mEC5JD+=4DQU$%TgQ#mYks_&g z54Ncd@F?7PEZ?g4z5pYX`!)o=auzCsjSuR z-m_V4s6;Y^LlSMORznRC*?pEJ%H*1Mehm0N7%YE<)75}pR5C? z0oI0L2J8sX8MH8~wqZSgxB(y>s%y9xZBw;_(X$O3(XVTK6FQZKP3Suhg1UW|{Sow6 zSJpLb&dUy$WGh29(kPsRElPD&QQM0p3Fj*Jw?e3@5z*X+4h-sx9qd#5S>ZWeXpc5W z+nU>2x`ANcOu!QeM*Y)7Z=gMmJgJX)j$x%;mKZ=X{uOQgbd0)IvmDW@YQ7E8PnAyv zLe#1h`$|DuR*3J$nfuUO%2nN zfh6EX3?8Olsk1S_dL|*cmfC~QVOb4J_@>Hzg&6JtB~0%IE(hibQwPcga6^!1&7Xtj z5FM28m(a$(AV4TG{z?t~jQ$bmC}Q>SjxmlHvJPH$pdSRK2KF5a_99jlbU$4STm(F( zehHj!sxQ%`#yX$hI0MfVdc25z9ay%AeGAwpiWu`QNbGfLm*4%($6kZ|3T@m$D9_OQ z>UV&>EV04}t7s;mP%R*04j85f0c)s5!fpwBB^;6Pkc3Z2r~`&*5pX>jvVVyl4r+9X zz73zgN559v=ql)4^h4SjcodYT;2^k(;6eHYoeVrdzoKn)43v|>B)vo9i2PsZW0VE# zpi}fk(3b$G)lY)^8Fd~$@Q6`b4P8-MM^^whLrawE>34v;sZohi8}$G_Ok;rkbOi7* zNsj^c(^2{?U>Gnd`$@l_q!*QQl5$Q`&QX%CDBqx+^bTNz-cvTyB*7rWu)G|?no`SX zFVOySw%@<_0W?d}w!>~&4vVB`J8iUY%ueM@v7aU#F{>xs0o~InExhBSVnLW=x}~Ru zljqT}@P-UwrpOYW>*-cXcTzN!vpgds;)_{v03=he7-K_@o$)EtmfD; z)3WET9AwhLEGNAZqu?C$@-3jmDA>%Jb!)N2@aI|5JtJY5n9>rrZxMmV#2?npoS-37 zPm@1~nClcy0E#WTp2$RfHBsMF=8W19<_VzwIo-j;3I`tvlakBPA{XhnV2D%Elxg~E zDemZ&%Yl@+>lLxWsAASc!XtKUWKoeECZF8Lr%EC&(m!jvhLo2X&y$4Y>z##dG2!L1 zRK7gegF(l!9g6azBB<>XbNYf|=NxH|zqSf77%=p-WxJk{bPJ?HSPHot6V8H>6t16{ z2ou{1G`}#WJ&wNtLSZ5~_vk3;Ky@1 zrwea94~&wa1yqy9NGA(54a^~pUOxKiiN^HPiRLNghO#wDbKp6sN%Ew`7}=DPU(#c@ z<7zZ>^at||GaB7`tUcq!k@nnK*ZGBglMjubIRm>|Y7$?adhOg>F%5Rz+Cq)ae_`)b zY(i~TDE`*>zx>A^2YNsMho7e(*thy63Tlc{70^hjK&Q5r(Y3PM9jsI$gB7Hxk?G1B zMcIZED;Nd|=Un8;kQPv?tE;7?&J+PjB{E%A8HkKT#vnx$$uMK2l2oXOOydfmY{97< zS*$%uy}%^V>s#(AEkyR1paAXo^z7!)&c!ZG%;c z|Bl$k*N?cmVaCz33 zpBl@Vo{`027FSn|SaZTLaE`FpC~oI>604B6G{BYRre_oF^4~rzxu5$Q_g0p|8!68@ zjze_7#OZ8UlyQ?d5QW?fnS0|t=(u^9l?wlBDST%o!mDO!xrs8Sgh^gOXE}a5KHfu= z;>*8ZQh|2#4pWSd0}j#@dLwvgj{_e89Lm4C=|{mo{VRXZD$H2Eebm>3W##9!Pe3z( zsz596P(!$nn%I{{u$#?dkK(dRK9b{d|FXyhU&k(HfSbRE5q&rKI$zgelLsjS^z;X4 z`kIt!hTr*LJ0&;`AnAV;Q9QJikAPM(c~i^lD_||`Jalw FzX3uOu-5

+using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.AssemblyInfo.cs b/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.AssemblyInfo.cs new file mode 100644 index 0000000..87ea779 --- /dev/null +++ b/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.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("CharacterPreview")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9b9121897387fa7e2a57d76690a2a9ae848b1705")] +[assembly: System.Reflection.AssemblyProductAttribute("CharacterPreview")] +[assembly: System.Reflection.AssemblyTitleAttribute("CharacterPreview")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.AssemblyInfoInputs.cache b/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.AssemblyInfoInputs.cache new file mode 100644 index 0000000..c0e0e81 --- /dev/null +++ b/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +cdbee0654e5bd2c9896d77407e3d7ce5ae6183e3f37c36106e534970cbdd063c diff --git a/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig b/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..0e94d46 --- /dev/null +++ b/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.RootNamespace = CharacterPreview +build_property.ProjectDir = D:\vs_project\DuckovMods\CharacterPreview\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = +build_property.EnableCodeStyleSeverity = diff --git a/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.assets.cache b/CharacterPreview/obj/Release/netstandard2.1/CharacterPreview.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..8d551f0abdfc44fd4b3c77d694f37d0ef0b02e68 GIT binary patch literal 182 zcmWIWc6a1qU|^VDcrn%C{jZeI9-cc5IE&|~EVtq3{_#o9IZfEaGi24@O+Yoo0w$nB z1!t?6(Bjmh;uxRQy!^8K7`?pG^wg4=g2d$P#PrnS7?5ESE>^&HUR*;j3zq( literal 0 HcmV?d00001 diff --git a/CharacterPreview/obj/project.assets.json b/CharacterPreview/obj/project.assets.json new file mode 100644 index 0000000..9fd268e --- /dev/null +++ b/CharacterPreview/obj/project.assets.json @@ -0,0 +1,239 @@ +{ + "version": 3, + "targets": { + ".NETStandard,Version=v2.1": { + "Lib.Harmony/2.4.1": { + "type": "package", + "dependencies": { + "Lib.Harmony.Ref": "2.4.1" + }, + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Lib.Harmony.Ref/2.4.1": { + "type": "package", + "dependencies": { + "System.Reflection.Emit": "4.7.0" + }, + "compile": { + "ref/netstandard2.0/0Harmony.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.Emit/4.7.0": { + "type": "package", + "compile": { + "ref/netstandard2.1/_._": {} + }, + "runtime": { + "lib/netstandard2.1/_._": {} + } + } + } + }, + "libraries": { + "Lib.Harmony/2.4.1": { + "sha512": "iLTZi/kKKB18jYEIwReZSx2xXyVUh4J1swReMgvYBBBn4tzA1Nd0PJlVyntY5BDdSiXSxzmvjc/3OYfFs0YwFg==", + "type": "package", + "path": "lib.harmony/2.4.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "HarmonyLogo.png", + "LICENSE", + "README.md", + "lib.harmony.2.4.1.nupkg.sha512", + "lib.harmony.nuspec", + "lib/net35/0Harmony.dll", + "lib/net35/0Harmony.pdb", + "lib/net35/0Harmony.xml", + "lib/net452/0Harmony.dll", + "lib/net452/0Harmony.pdb", + "lib/net452/0Harmony.xml", + "lib/net472/0Harmony.dll", + "lib/net472/0Harmony.pdb", + "lib/net472/0Harmony.xml", + "lib/net48/0Harmony.dll", + "lib/net48/0Harmony.pdb", + "lib/net48/0Harmony.xml", + "lib/net5.0/0Harmony.dll", + "lib/net5.0/0Harmony.pdb", + "lib/net5.0/0Harmony.xml", + "lib/net6.0/0Harmony.dll", + "lib/net6.0/0Harmony.pdb", + "lib/net6.0/0Harmony.xml", + "lib/net7.0/0Harmony.dll", + "lib/net7.0/0Harmony.pdb", + "lib/net7.0/0Harmony.xml", + "lib/net8.0/0Harmony.dll", + "lib/net8.0/0Harmony.pdb", + "lib/net8.0/0Harmony.xml", + "lib/net9.0/0Harmony.dll", + "lib/net9.0/0Harmony.pdb", + "lib/net9.0/0Harmony.xml", + "lib/netcoreapp3.0/0Harmony.dll", + "lib/netcoreapp3.0/0Harmony.pdb", + "lib/netcoreapp3.0/0Harmony.xml", + "lib/netcoreapp3.1/0Harmony.dll", + "lib/netcoreapp3.1/0Harmony.pdb", + "lib/netcoreapp3.1/0Harmony.xml", + "lib/netstandard2.0/_._" + ] + }, + "Lib.Harmony.Ref/2.4.1": { + "sha512": "+u1y2Qd6OlSUQ8JtrsrSo3adnAsrXMJ2YPYtbW+FAmdPI5yw34M9VX4bKl8ZwRuUzaGzZIz+oGMbn/yS4fWtZw==", + "type": "package", + "path": "lib.harmony.ref/2.4.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "HarmonyLogo.png", + "LICENSE", + "README.md", + "lib.harmony.ref.2.4.1.nupkg.sha512", + "lib.harmony.ref.nuspec", + "ref/netstandard2.0/0Harmony.dll", + "ref/netstandard2.0/0Harmony.xml" + ] + }, + "System.Reflection.Emit/4.7.0": { + "sha512": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==", + "type": "package", + "path": "system.reflection.emit/4.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.dll", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.1/System.Reflection.Emit.dll", + "lib/netstandard1.1/System.Reflection.Emit.xml", + "lib/netstandard1.3/System.Reflection.Emit.dll", + "lib/netstandard2.0/System.Reflection.Emit.dll", + "lib/netstandard2.0/System.Reflection.Emit.xml", + "lib/netstandard2.1/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcoreapp2.0/_._", + "ref/netstandard1.1/System.Reflection.Emit.dll", + "ref/netstandard1.1/System.Reflection.Emit.xml", + "ref/netstandard1.1/de/System.Reflection.Emit.xml", + "ref/netstandard1.1/es/System.Reflection.Emit.xml", + "ref/netstandard1.1/fr/System.Reflection.Emit.xml", + "ref/netstandard1.1/it/System.Reflection.Emit.xml", + "ref/netstandard1.1/ja/System.Reflection.Emit.xml", + "ref/netstandard1.1/ko/System.Reflection.Emit.xml", + "ref/netstandard1.1/ru/System.Reflection.Emit.xml", + "ref/netstandard1.1/zh-hans/System.Reflection.Emit.xml", + "ref/netstandard1.1/zh-hant/System.Reflection.Emit.xml", + "ref/netstandard2.0/System.Reflection.Emit.dll", + "ref/netstandard2.0/System.Reflection.Emit.xml", + "ref/netstandard2.1/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Reflection.Emit.dll", + "runtimes/aot/lib/netcore50/System.Reflection.Emit.xml", + "system.reflection.emit.4.7.0.nupkg.sha512", + "system.reflection.emit.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + } + }, + "projectFileDependencyGroups": { + ".NETStandard,Version=v2.1": [ + "Lib.Harmony >= 2.4.1" + ] + }, + "packageFolders": { + "C:\\Users\\Lenovo\\.nuget\\packages\\": {}, + "D:\\vsShare\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\vs_project\\DuckovMods\\CharacterPreview\\CharacterPreview.csproj", + "projectName": "CharacterPreview", + "projectPath": "D:\\vs_project\\DuckovMods\\CharacterPreview\\CharacterPreview.csproj", + "packagesPath": "C:\\Users\\Lenovo\\.nuget\\packages\\", + "outputPath": "D:\\vs_project\\DuckovMods\\CharacterPreview\\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", + "dependencies": { + "Lib.Harmony": { + "target": "Package", + "version": "[2.4.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/CharacterPreview/obj/project.nuget.cache b/CharacterPreview/obj/project.nuget.cache new file mode 100644 index 0000000..a1f200e --- /dev/null +++ b/CharacterPreview/obj/project.nuget.cache @@ -0,0 +1,12 @@ +{ + "version": 2, + "dgSpecHash": "7zqX1jgBbf8=", + "success": true, + "projectFilePath": "D:\\vs_project\\DuckovMods\\CharacterPreview\\CharacterPreview.csproj", + "expectedPackageFiles": [ + "C:\\Users\\Lenovo\\.nuget\\packages\\lib.harmony\\2.4.1\\lib.harmony.2.4.1.nupkg.sha512", + "C:\\Users\\Lenovo\\.nuget\\packages\\lib.harmony.ref\\2.4.1\\lib.harmony.ref.2.4.1.nupkg.sha512", + "C:\\Users\\Lenovo\\.nuget\\packages\\system.reflection.emit\\4.7.0\\system.reflection.emit.4.7.0.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/CharacterPreview/obj/project.packagespec.json b/CharacterPreview/obj/project.packagespec.json new file mode 100644 index 0000000..a86e11d --- /dev/null +++ b/CharacterPreview/obj/project.packagespec.json @@ -0,0 +1 @@ +"restore":{"projectUniqueName":"D:\\vs_project\\DuckovMods\\CharacterPreview\\CharacterPreview.csproj","projectName":"CharacterPreview","projectPath":"D:\\vs_project\\DuckovMods\\CharacterPreview\\CharacterPreview.csproj","outputPath":"D:\\vs_project\\DuckovMods\\CharacterPreview\\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","dependencies":{"Lib.Harmony":{"target":"Package","version":"[2.4.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/CharacterPreview/obj/rider.project.model.nuget.info b/CharacterPreview/obj/rider.project.model.nuget.info new file mode 100644 index 0000000..5eb4a45 --- /dev/null +++ b/CharacterPreview/obj/rider.project.model.nuget.info @@ -0,0 +1 @@ +17627872868371582 \ No newline at end of file diff --git a/CharacterPreview/obj/rider.project.restore.info b/CharacterPreview/obj/rider.project.restore.info new file mode 100644 index 0000000..5eb4a45 --- /dev/null +++ b/CharacterPreview/obj/rider.project.restore.info @@ -0,0 +1 @@ +17627872868371582 \ No newline at end of file diff --git a/DuckovMods.sln b/DuckovMods.sln index fa3fd60..23b2d9d 100644 --- a/DuckovMods.sln +++ b/DuckovMods.sln @@ -15,6 +15,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Theme", "Theme\Theme.csproj EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SceneView", "SceneView\SceneView.csproj", "{87AA16B9-C7F9-456E-8F57-CE05F393D91F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CharacterPreview", "CharacterPreview\CharacterPreview.csproj", "{4D2577DB-5915-40AC-869B-68C37D28AC8F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -45,6 +47,10 @@ Global {87AA16B9-C7F9-456E-8F57-CE05F393D91F}.Debug|Any CPU.Build.0 = Debug|Any CPU {87AA16B9-C7F9-456E-8F57-CE05F393D91F}.Release|Any CPU.ActiveCfg = Release|Any CPU {87AA16B9-C7F9-456E-8F57-CE05F393D91F}.Release|Any CPU.Build.0 = Release|Any CPU + {4D2577DB-5915-40AC-869B-68C37D28AC8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D2577DB-5915-40AC-869B-68C37D28AC8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D2577DB-5915-40AC-869B-68C37D28AC8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D2577DB-5915-40AC-869B-68C37D28AC8F}.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 fb9b486..337c416 100644 --- a/DuckovMods.sln.DotSettings.user +++ b/DuckovMods.sln.DotSettings.user @@ -1,10 +1,12 @@  + True True True True True True True + ForceIncluded ForceIncluded ForceIncluded ForceIncluded @@ -17,13 +19,17 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded @@ -31,17 +37,24 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded + ForceIncluded + ForceIncluded ForceIncluded + ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded @@ -57,11 +70,15 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded + ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded diff --git a/HideCharacter/obj/Debug/HideCharacter.AssemblyInfo.cs b/HideCharacter/obj/Debug/HideCharacter.AssemblyInfo.cs index 92c28f4..c73c60a 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+786025f720c05ae486c8c66d3a6114633ccd0dbf")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.1+9b9121897387fa7e2a57d76690a2a9ae848b1705")] [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 4611129..6c4d615 100644 --- a/HideCharacter/obj/Debug/HideCharacter.AssemblyInfoInputs.cache +++ b/HideCharacter/obj/Debug/HideCharacter.AssemblyInfoInputs.cache @@ -1 +1 @@ -5da31913e91a183301e6883819f7ba57fc0b3e4eba9910ae6ee0eafc05d2af54 +dc9e2512ec7accc32370dea781198b720358eb9814b7c9c591d009607f13a5e8 diff --git a/HideCharacter/obj/Release/HideCharacter.AssemblyInfo.cs b/HideCharacter/obj/Release/HideCharacter.AssemblyInfo.cs index e4e57b3..4e5cdba 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+786025f720c05ae486c8c66d3a6114633ccd0dbf")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.1+9b9121897387fa7e2a57d76690a2a9ae848b1705")] [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 9e7b02e..24105c3 100644 --- a/HideCharacter/obj/Release/HideCharacter.AssemblyInfoInputs.cache +++ b/HideCharacter/obj/Release/HideCharacter.AssemblyInfoInputs.cache @@ -1 +1 @@ -12b8810f5c5efba722348e9a42589fd931584289646df256a80c8a5aac0c67b6 +71229c5bb112e72727f560fc4c2dcb61c8790b85769f99a1131c10e137989a56 diff --git a/HitFeedback/obj/Debug/HitFeedback.AssemblyInfo.cs b/HitFeedback/obj/Debug/HitFeedback.AssemblyInfo.cs index 47ed931..c2a090d 100644 --- a/HitFeedback/obj/Debug/HitFeedback.AssemblyInfo.cs +++ b/HitFeedback/obj/Debug/HitFeedback.AssemblyInfo.cs @@ -13,7 +13,7 @@ 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+786025f720c05ae486c8c66d3a6114633ccd0dbf")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9b9121897387fa7e2a57d76690a2a9ae848b1705")] [assembly: System.Reflection.AssemblyProductAttribute("HitFeedback")] [assembly: System.Reflection.AssemblyTitleAttribute("HitFeedback")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/HitFeedback/obj/Debug/HitFeedback.AssemblyInfoInputs.cache b/HitFeedback/obj/Debug/HitFeedback.AssemblyInfoInputs.cache index f3e01a8..dc56c0e 100644 --- a/HitFeedback/obj/Debug/HitFeedback.AssemblyInfoInputs.cache +++ b/HitFeedback/obj/Debug/HitFeedback.AssemblyInfoInputs.cache @@ -1 +1 @@ -011b05448cb33a5df382363baa29281f37b1217de1b772941e072e5e1e318697 +368a9f7418aefa097e80abe04f0e70d25ca97877e818b633d54a07496a4eb4d6 diff --git a/HitFeedback/obj/Release/HitFeedback.AssemblyInfo.cs b/HitFeedback/obj/Release/HitFeedback.AssemblyInfo.cs index 7b66a69..d908505 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+786025f720c05ae486c8c66d3a6114633ccd0dbf")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9b9121897387fa7e2a57d76690a2a9ae848b1705")] [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 62798cc..c69b649 100644 --- a/HitFeedback/obj/Release/HitFeedback.AssemblyInfoInputs.cache +++ b/HitFeedback/obj/Release/HitFeedback.AssemblyInfoInputs.cache @@ -1 +1 @@ -d5e421014b0d794da78442d8a65960e244ed2b8a5d6b7b2541d1354650cfeae5 +11eb56433e596da88b772bc3383f597712eafe48622740bf0786e8030e13d6e9 diff --git a/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfo.cs b/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfo.cs index c0e3e31..17baca1 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+786025f720c05ae486c8c66d3a6114633ccd0dbf")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9b9121897387fa7e2a57d76690a2a9ae848b1705")] [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 c2e6df2..7940298 100644 --- a/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfoInputs.cache +++ b/SceneSnapshot/obj/Debug/SceneSnapshot.AssemblyInfoInputs.cache @@ -1 +1 @@ -d0b14bb5a2fe44e4165960f86b2001d300338f5655dddb8b391c1544fb8fcca4 +993bfd6f35451c9a8b17b20fe9cf49f2468dd9f29516d3ea773a01d0f4d44c33 diff --git a/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfo.cs b/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfo.cs index 5dc9bfb..57edfd5 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+786025f720c05ae486c8c66d3a6114633ccd0dbf")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9b9121897387fa7e2a57d76690a2a9ae848b1705")] [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 0b5a2ab..25e5d0b 100644 --- a/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfoInputs.cache +++ b/SceneSnapshot/obj/Release/SceneSnapshot.AssemblyInfoInputs.cache @@ -1 +1 @@ -0377007546f92d23941a0c0e6a0cef8c6022db4ce07a6a7b98556714f9c594f1 +ca1555b48da049a281894ed9d271c1d8ac9ceef6558c6d583a8608bf7fa55818 diff --git a/SceneView/CanvasControl.cs b/SceneView/CanvasControl.cs index 5dc5f27..5bb7751 100644 --- a/SceneView/CanvasControl.cs +++ b/SceneView/CanvasControl.cs @@ -6,13 +6,35 @@ namespace SceneView { public class CanvasControl : MonoBehaviour { - public SceneViewPanel? sceneViewPanel; - + public const string ViewCanvasName = "_SceneViewCanvas"; + public const string ShowAim = ""; + public static Vector2 panelSize = new Vector2(500, 800); - public const string ViewCanvasName = "_SceneViewCanvas"; - public const string ShowAim = "LOGO"; - + private static GameObject _focusObject; + public SceneViewPanel? sceneViewPanel; + public ParametersPanel? parametersPanel; + + public static GameObject FocusGameObject + { + get => _focusObject; + set + { + if (value != _focusObject) + { + if (_focusObject) + { + var outline=_focusObject.GetComponent(); + if (outline) + Destroy(outline); + } + _focusObject = value; + _focusObject.AddComponent(); + OnChangeFocusObject?.Invoke(value); + } + } + } + private void Start() { InitCanvas(); @@ -20,17 +42,26 @@ namespace SceneView public void Update() { - if (Input.GetKeyDown(KeyCode.F2)) + if (Input.GetKeyDown(KeyCode.F3)) { - Debug.Log("切换"); + // Debug.Log("切换"); + parametersPanel.gameObject.SetActive(!parametersPanel.gameObject.activeSelf); sceneViewPanel.gameObject.SetActive(!sceneViewPanel.gameObject.activeSelf); - if (sceneViewPanel.gameObject.activeSelf) - { - sceneViewPanel.Refresh(); - } } + // if (sceneViewPanel.gameObject.activeSelf) + // { + // sceneViewPanel.Refresh(); + // } } + private void OnDestroy() + { + if (sceneViewPanel) Destroy(sceneViewPanel.gameObject); + if (parametersPanel) Destroy(parametersPanel.gameObject); + } + + public static event Action OnChangeFocusObject; + private void InitCanvas() { var canvasObj = new GameObject(ViewCanvasName); @@ -41,11 +72,13 @@ namespace SceneView canvasObj.AddComponent(); DontDestroyOnLoad(canvasObj); - sceneViewPanel=CreateSceneViewPanel(canvasObj.transform); + sceneViewPanel = CreateSceneViewPanel(canvasObj.transform); + parametersPanel = CreateParametersPanel(canvasObj.transform); } + public static SceneViewPanel CreateSceneViewPanel(Transform parent) { - var panelObj = new GameObject("SceneViewPanel"); + var panelObj = new GameObject(ViewCanvasName); panelObj.transform.SetParent(parent, false); var sceneViewPanel = panelObj.AddComponent(); var panelImage = panelObj.AddComponent(); @@ -56,5 +89,15 @@ namespace SceneView return sceneViewPanel; } + + public ParametersPanel CreateParametersPanel(Transform parent) + { + var panelObj = new GameObject(ViewCanvasName); + panelObj.transform.SetParent(parent, false); + var parametersViewPanel = panelObj.AddComponent(); + var panelImage = panelObj.AddComponent(); + panelImage.color = new Color(0.5f, 0.5f, 0.5f, 0.3f); + return parametersViewPanel; + } } } \ No newline at end of file diff --git a/SceneView/ControlUtilities.cs b/SceneView/ControlUtilities.cs index d3ebae8..8905855 100644 --- a/SceneView/ControlUtilities.cs +++ b/SceneView/ControlUtilities.cs @@ -1,11 +1,14 @@ -using System; -using TMPro; -using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; +using UnityEngine; +using System; +using System.Collections.Generic; +using TMPro; namespace SceneView { + + [Serializable] public struct RectTransformConfig { @@ -19,13 +22,24 @@ namespace SceneView // 默认配置 public static readonly RectTransformConfig Default = new RectTransformConfig( - anchorMin: new Vector2(0, 1), - anchorMax: new Vector2(0, 1), - anchoredPosition: Vector2.zero, - sizeDelta: Vector2.zero, - offsetMin: Vector2.zero, - offsetMax: Vector2.zero, - pivot: new Vector2(0.5f, 0.5f) // 默认居中轴心点 + Vector2.up, // 锚点最小:左上角 (0, 1) + Vector2.up, // 锚点最大:左上角 (0, 1) + Vector2.zero, + Vector2.zero, + Vector2.zero, + Vector2.zero, + new Vector2(0.5f, 0.5f) // 默认居中轴心点 + ); + + // 填充父级的配置 + public static readonly RectTransformConfig FillParent = new RectTransformConfig( + Vector2.zero, // 锚点最小:左下角 (0, 0) + Vector2.one, // 锚点最大:右上角 (1, 1) + Vector2.zero, + Vector2.zero, // sizeDelta为零表示通过offsetMin/Max来控制尺寸 + Vector2.zero, + Vector2.zero, + new Vector2(0.5f, 0.5f) ); public RectTransformConfig( @@ -58,12 +72,12 @@ namespace SceneView public bool RaycastTarget; public static readonly ButtonConfig Default = new ButtonConfig( - rectConfig: RectTransformConfig.Default, - backgroundColor: new Color(0.2f, 0.2f, 0.2f, 1f), - text: "Button", - fontSize: 18, - textColor: Color.white, - raycastTarget: true + RectTransformConfig.Default, + new Color(0.2f, 0.2f, 0.2f, 1f), + "Button", + 18, + Color.white, + true ); public ButtonConfig( @@ -122,7 +136,7 @@ namespace SceneView [Serializable] public struct ScrollViewConfig { - public Vector2 SizeDelta; // ScrollView 的尺寸 + public RectTransformConfig RectConfig; // 新增:ScrollView自身的RectTransform配置 public bool Vertical; public bool Horizontal; public Color BackgroundColor; @@ -130,7 +144,15 @@ namespace SceneView public static readonly ScrollViewConfig Default = new ScrollViewConfig { - SizeDelta = new Vector2(400, 300), + RectConfig = new RectTransformConfig( + new Vector2(0.5f, 0.5f), // 锚点最小:中心 (0.5, 0.5) + new Vector2(0.5f, 0.5f), // 锚点最大:中心 (0.5, 0.5) + Vector2.zero, + new Vector2(400, 300), // 默认尺寸 + Vector2.zero, + Vector2.zero, + new Vector2(0.5f, 0.5f) + ), Vertical = true, Horizontal = false, BackgroundColor = new Color(0.1f, 0.1f, 0.1f, 0.8f), @@ -151,18 +173,20 @@ namespace SceneView public TextAlignmentOptions TextAlignment; public TMP_InputField.CharacterValidation CharacterValidation; public int CharacterLimit; + public static readonly InputFieldConfig Default = new InputFieldConfig( - rectConfig: RectTransformConfig.Default, - backgroundColor: new Color(0.2f, 0.2f, 0.2f, 1f), - placeholderText: "Enter text here", - placeholderFontSize: 14, - placeholderTextColor: new Color(0.7f, 0.7f, 0.7f, 1f), - textColor: Color.white, - fontSize: 18, - textAlignment: TextAlignmentOptions.Left, - characterValidation: TMP_InputField.CharacterValidation.None, - characterLimit: 0 + RectTransformConfig.Default, + new Color(0.2f, 0.2f, 0.2f, 1f), + "Enter text here", + 14, + new Color(0.7f, 0.7f, 0.7f, 1f), + Color.white, + 18, + TextAlignmentOptions.Left, + TMP_InputField.CharacterValidation.None, + 0 ); + public InputFieldConfig( RectTransformConfig rectConfig, Color backgroundColor, @@ -188,6 +212,143 @@ namespace SceneView } } + [Serializable] + public struct LabeledInputFieldConfig + { + public RectTransformConfig RectConfig; // 整个控件(标签+输入框)的配置 + public string LabelText; + public int LabelFontSize; + public Color LabelTextColor; + public float LabelWidth; // 标签部分的固定宽度 + public float Spacing; // 标签和输入框之间的间距 + public InputFieldConfig InputFieldConfig; // 复用已有的输入框配置 + + public static readonly LabeledInputFieldConfig Default = new LabeledInputFieldConfig + { + RectConfig = new RectTransformConfig( + Vector2.up, // 锚点最小:左上角 (0, 1) + Vector2.one, // 锚点最大:右上角 (1, 1),默认水平拉伸 + Vector2.zero, + new Vector2(0, 30), // 默认高度30 + Vector2.zero, + Vector2.zero, + new Vector2(0.5f, 1) // 轴心点:顶部居中 + ), + LabelText = "Label", + LabelFontSize = 18, + LabelTextColor = Color.white, + LabelWidth = 100f, + Spacing = 10f, + InputFieldConfig = InputFieldConfig.Default + }; + } + + [Serializable] + public struct DropdownConfig + { + public RectTransformConfig RectConfig; + public List Options; + public Color BackgroundColor; + public int CaptionFontSize; // 下拉框当前选中项的文本大小 + public Color CaptionTextColor; + public int ItemFontSize; // 下拉列表每一项的文本大小 + public Color ItemTextColor; + + public static readonly DropdownConfig Default = new DropdownConfig( + new RectTransformConfig( + new Vector2(0.5f, 0.5f), // 锚点最小:中心 (0.5, 0.5) + new Vector2(0.5f, 0.5f), // 锚点最大:中心 (0.5, 0.5) + Vector2.zero, + new Vector2(160, 30), + Vector2.zero, + Vector2.zero, + new Vector2(0.5f, 0.5f) + ), + new List { "Option A", "Option B", "Option C" }, + new Color(0.2f, 0.2f, 0.2f, 1f), + 18, + Color.white, + 16, + Color.white + ); + + public DropdownConfig(RectTransformConfig rectConfig, List options, Color backgroundColor, + int captionFontSize, Color captionTextColor, int itemFontSize, Color itemTextColor) + { + RectConfig = rectConfig; + Options = options; + BackgroundColor = backgroundColor; + CaptionFontSize = captionFontSize; + CaptionTextColor = captionTextColor; + ItemFontSize = itemFontSize; + ItemTextColor = itemTextColor; + } + } + + [Serializable] + public struct LabeledDropdownConfig + { + public RectTransformConfig RectConfig; + public string LabelText; + public int LabelFontSize; + public Color LabelTextColor; + public float LabelWidth; + public float Spacing; + public DropdownConfig DropdownConfig; + + public static readonly LabeledDropdownConfig Default = new LabeledDropdownConfig + { + RectConfig = new RectTransformConfig( + Vector2.up, // 锚点最小:左上角 (0, 1) + Vector2.one, // 锚点最大:右上角 (1, 1) + Vector2.zero, + new Vector2(0, 30), + Vector2.zero, + Vector2.zero, + new Vector2(0.5f, 1) + ), + LabelText = "Label", + LabelFontSize = 18, + LabelTextColor = Color.white, + LabelWidth = 100f, + Spacing = 10f, + DropdownConfig = DropdownConfig.Default + }; + } + + [Serializable] + public struct ToggleConfig + { + public RectTransformConfig RectConfig; + public string LabelText; + public int LabelFontSize; + public Color LabelTextColor; + public Color BackgroundColor; + public Color CheckmarkColor; + public float Spacing; // 开关图形和标签之间的间距 + public bool IsOnByDefault; + + public static readonly ToggleConfig Default = new ToggleConfig + { + RectConfig = new RectTransformConfig( + Vector2.up, // 锚点最小:左上角 (0, 1) + Vector2.up, // 锚点最大:左上角 (0, 1) + Vector2.zero, + new Vector2(160, 20), + Vector2.zero, + Vector2.zero, + new Vector2(0.5f, 0.5f) + ), + LabelText = "Toggle", + LabelFontSize = 18, + LabelTextColor = Color.white, + BackgroundColor = new Color(0.2f, 0.2f, 0.2f, 1f), + CheckmarkColor = new Color(0.1f, 0.6f, 1f, 1f), + Spacing = 10f, + IsOnByDefault = false + }; + } + public static class ControlUtilities { // 通用方法:将 RectTransformConfig 应用于 RectTransform @@ -197,9 +358,12 @@ namespace SceneView rectTransform.anchorMax = config.AnchorMax; rectTransform.pivot = config.Pivot; - var isStretched = config.SizeDelta == Vector2.zero; - - if (isStretched) + // 当sizeDelta为Vector2.zero时,我们假定用户希望通过offsetMin/Max来拉伸元素 + // 否则使用anchoredPosition和sizeDelta来定位和设置尺寸 + if (config.SizeDelta == Vector2.zero && (config.OffsetMin != Vector2.zero || + config.OffsetMax != Vector2.zero || + (config.AnchorMin == Vector2.zero && + config.AnchorMax == Vector2.one))) { rectTransform.offsetMin = config.OffsetMin; rectTransform.offsetMax = config.OffsetMax; @@ -211,45 +375,48 @@ namespace SceneView } } + // ======================== + // 矩形对象创建 + // ======================== + ///

+ /// 创建一个带有 RectTransform 组件的空 GameObject。 + /// + /// 父级 Transform。 + /// GameObject 的名称。 + /// RectTransform 的配置。 + /// 创建的 RectTransform 组件。 + public static RectTransform CreateRect(Transform parent, string name, RectTransformConfig config) + { + var obj = new GameObject(name); + var rect = obj.AddComponent(); + rect.SetParent(parent, false); // false表示不保留世界坐标,而是以父级为基准 + ApplyRectTransformConfig(rect, config); + return rect; + } + // ======================== // 按钮创建 // ======================== public static (Button? button, TextMeshProUGUI? text) CreateButton(RectTransform? parent, ButtonConfig config, UnityAction? onClick) { - var btnObj = new GameObject(config.Text + "Button"); - var btnRect = btnObj.AddComponent(); - btnRect.SetParent(parent, false); + // 使用 CreateRect 创建按钮根对象并应用配置 + var btnRect = CreateRect(parent, config.Text + "Button", config.RectConfig); - ApplyRectTransformConfig(btnRect, config.RectConfig); - - var button = btnObj.AddComponent