first commit

This commit is contained in:
2025-10-31 22:43:32 +08:00
commit 24b50da003
73 changed files with 850 additions and 0 deletions

BIN
BasicConfig.xlsx Normal file

Binary file not shown.

BIN
FishConfig.xlsx Normal file

Binary file not shown.

BIN
Gear.xlsx Normal file

Binary file not shown.

BIN
Item.xlsx Normal file

Binary file not shown.

Binary file not shown.

BIN
NBConfigBuilder/EPPlus.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,516 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"NBConfigBuilder/1.0.0": {
"dependencies": {
"EPPlus": "8.2.0",
"Microsoft.CodeAnalysis.CSharp": "4.14.0",
"NLog": "6.0.4",
"Newtonsoft.Json": "13.0.4",
"protobuf-net": "3.2.56"
},
"runtime": {
"NBConfigBuilder.dll": {}
}
},
"EPPlus/8.2.0": {
"dependencies": {
"EPPlus.Interfaces": "8.1.0",
"Microsoft.Extensions.Configuration.Json": "8.0.1",
"Microsoft.IO.RecyclableMemoryStream": "3.0.1",
"System.ComponentModel.Annotations": "5.0.0",
"System.Security.Cryptography.Pkcs": "8.0.1",
"System.Security.Cryptography.Xml": "8.0.2",
"System.Text.Encoding.CodePages": "8.0.0"
},
"runtime": {
"lib/net8.0/EPPlus.dll": {
"assemblyVersion": "8.2.0.0",
"fileVersion": "8.2.0.0"
}
}
},
"EPPlus.Interfaces/8.1.0": {
"runtime": {
"lib/net8.0/EPPlus.Interfaces.dll": {
"assemblyVersion": "8.1.0.0",
"fileVersion": "8.1.0.0"
}
}
},
"Microsoft.CodeAnalysis.Analyzers/3.11.0": {},
"Microsoft.CodeAnalysis.Common/4.14.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Analyzers": "3.11.0",
"System.Collections.Immutable": "9.0.0",
"System.Reflection.Metadata": "9.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.CodeAnalysis.dll": {
"assemblyVersion": "4.14.0.0",
"fileVersion": "4.1400.25.26210"
}
},
"resources": {
"lib/net8.0/cs/Microsoft.CodeAnalysis.resources.dll": {
"locale": "cs"
},
"lib/net8.0/de/Microsoft.CodeAnalysis.resources.dll": {
"locale": "de"
},
"lib/net8.0/es/Microsoft.CodeAnalysis.resources.dll": {
"locale": "es"
},
"lib/net8.0/fr/Microsoft.CodeAnalysis.resources.dll": {
"locale": "fr"
},
"lib/net8.0/it/Microsoft.CodeAnalysis.resources.dll": {
"locale": "it"
},
"lib/net8.0/ja/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ja"
},
"lib/net8.0/ko/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ko"
},
"lib/net8.0/pl/Microsoft.CodeAnalysis.resources.dll": {
"locale": "pl"
},
"lib/net8.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
"locale": "pt-BR"
},
"lib/net8.0/ru/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ru"
},
"lib/net8.0/tr/Microsoft.CodeAnalysis.resources.dll": {
"locale": "tr"
},
"lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
"locale": "zh-Hans"
},
"lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.CSharp/4.14.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Analyzers": "3.11.0",
"Microsoft.CodeAnalysis.Common": "4.14.0",
"System.Collections.Immutable": "9.0.0",
"System.Reflection.Metadata": "9.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.CodeAnalysis.CSharp.dll": {
"assemblyVersion": "4.14.0.0",
"fileVersion": "4.1400.25.26210"
}
},
"resources": {
"lib/net8.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "cs"
},
"lib/net8.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "de"
},
"lib/net8.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "es"
},
"lib/net8.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "fr"
},
"lib/net8.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "it"
},
"lib/net8.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ja"
},
"lib/net8.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ko"
},
"lib/net8.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "pl"
},
"lib/net8.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "pt-BR"
},
"lib/net8.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ru"
},
"lib/net8.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "tr"
},
"lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "zh-Hans"
},
"lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.Extensions.Configuration/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/8.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Physical": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.724.31311"
}
}
},
"Microsoft.Extensions.Configuration.Json/8.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "8.0.1",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Configuration.Json.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Microsoft.Extensions.FileProviders.Physical/8.0.0": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Microsoft.Extensions.FileSystemGlobbing/8.0.0": {
"runtime": {
"lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Microsoft.Extensions.Primitives/8.0.0": {
"runtime": {
"lib/net8.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"Microsoft.IO.RecyclableMemoryStream/3.0.1": {
"runtime": {
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
"assemblyVersion": "3.0.1.0",
"fileVersion": "3.0.1.0"
}
}
},
"Newtonsoft.Json/13.0.4": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.4.30916"
}
}
},
"NLog/6.0.4": {
"runtime": {
"lib/netstandard2.1/NLog.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.4.4534"
}
}
},
"protobuf-net/3.2.56": {
"dependencies": {
"protobuf-net.Core": "3.2.56"
},
"runtime": {
"lib/net8.0/protobuf-net.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.2.56.57311"
}
}
},
"protobuf-net.Core/3.2.56": {
"runtime": {
"lib/net8.0/protobuf-net.Core.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.2.56.57311"
}
}
},
"System.Collections.Immutable/9.0.0": {
"runtime": {
"lib/net8.0/System.Collections.Immutable.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.ComponentModel.Annotations/5.0.0": {},
"System.Reflection.Metadata/9.0.0": {
"dependencies": {
"System.Collections.Immutable": "9.0.0"
},
"runtime": {
"lib/net8.0/System.Reflection.Metadata.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Security.Cryptography.Pkcs/8.0.1": {
"runtime": {
"lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
},
"runtimeTargets": {
"runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"System.Security.Cryptography.Xml/8.0.2": {
"dependencies": {
"System.Security.Cryptography.Pkcs": "8.0.1"
},
"runtime": {
"lib/net8.0/System.Security.Cryptography.Xml.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"System.Text.Encoding.CodePages/8.0.0": {}
}
},
"libraries": {
"NBConfigBuilder/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"EPPlus/8.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UFAjVAP4UyR9rPL/adHw1uezX1gDbt2mM7Bkb7cMmqbw51y0HFKyLoHpsjvNzKRL/u05vW4pHJAmkuvrPBcgSw==",
"path": "epplus/8.2.0",
"hashPath": "epplus.8.2.0.nupkg.sha512"
},
"EPPlus.Interfaces/8.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Nfc7ehsn8Sb8Ed8KYYuOxqt8gWqmy2Vhts5nfLMw3zISi+aZFwyW+k9s3FOpVuW91VDSrhVAId9brYtz9NnmKA==",
"path": "epplus.interfaces/8.1.0",
"hashPath": "epplus.interfaces.8.1.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Analyzers/3.11.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-v/EW3UE8/lbEYHoC2Qq7AR/DnmvpgdtAMndfQNmpuIMx/Mto8L5JnuCfdBYtgvalQOtfNCnxFejxuRrryvUTsg==",
"path": "microsoft.codeanalysis.analyzers/3.11.0",
"hashPath": "microsoft.codeanalysis.analyzers.3.11.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Common/4.14.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PC3tuwZYnC+idaPuoC/AZpEdwrtX7qFpmnrfQkgobGIWiYmGi5MCRtl5mx6QrfMGQpK78X2lfIEoZDLg/qnuHg==",
"path": "microsoft.codeanalysis.common/4.14.0",
"hashPath": "microsoft.codeanalysis.common.4.14.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.CSharp/4.14.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-568a6wcTivauIhbeWcCwfWwIn7UV7MeHEBvFB2uzGIpM2OhJ4eM/FZ8KS0yhPoNxnSpjGzz7x7CIjTxhslojQA==",
"path": "microsoft.codeanalysis.csharp/4.14.0",
"hashPath": "microsoft.codeanalysis.csharp.4.14.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==",
"path": "microsoft.extensions.configuration/8.0.0",
"hashPath": "microsoft.extensions.configuration.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
"path": "microsoft.extensions.configuration.abstractions/8.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==",
"path": "microsoft.extensions.configuration.fileextensions/8.0.1",
"hashPath": "microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==",
"path": "microsoft.extensions.configuration.json/8.0.1",
"hashPath": "microsoft.extensions.configuration.json.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==",
"path": "microsoft.extensions.fileproviders.abstractions/8.0.0",
"hashPath": "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==",
"path": "microsoft.extensions.fileproviders.physical/8.0.0",
"hashPath": "microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==",
"path": "microsoft.extensions.filesystemglobbing/8.0.0",
"hashPath": "microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==",
"path": "microsoft.extensions.primitives/8.0.0",
"hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512"
},
"Microsoft.IO.RecyclableMemoryStream/3.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-s/s20YTVY9r9TPfTrN5g8zPF1YhwxyqO6PxUkrYTGI2B+OGPe9AdajWZrLhFqXIvqIW23fnUE4+ztrUWNU1+9g==",
"path": "microsoft.io.recyclablememorystream/3.0.1",
"hashPath": "microsoft.io.recyclablememorystream.3.0.1.nupkg.sha512"
},
"Newtonsoft.Json/13.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==",
"path": "newtonsoft.json/13.0.4",
"hashPath": "newtonsoft.json.13.0.4.nupkg.sha512"
},
"NLog/6.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Xr+lIk1ZlTTFXEqnxQVLxrDqZlt2tm5X+/AhJbaY2emb/dVtGDiU5QuEtj3gHtwV/SWlP/rJ922I/BPuOJXlRw==",
"path": "nlog/6.0.4",
"hashPath": "nlog.6.0.4.nupkg.sha512"
},
"protobuf-net/3.2.56": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4IPJeTYAMNewlN8MDaFkcmR/9hLhJeo9eARnTh104zh7mf+vXT2gu5MUfUnkSQU+CH578Q6vcdU7LQDQPG6eaw==",
"path": "protobuf-net/3.2.56",
"hashPath": "protobuf-net.3.2.56.nupkg.sha512"
},
"protobuf-net.Core/3.2.56": {
"type": "package",
"serviceable": true,
"sha512": "sha512-d6QOukTpDzs7zZv9tPnBZMtvHDNeHJQXUhMx54g4urUQsXK3oo9U70H9HvklYq7hlQ4A7AHJl7EVEqyCXXIl8Q==",
"path": "protobuf-net.core/3.2.56",
"hashPath": "protobuf-net.core.3.2.56.nupkg.sha512"
},
"System.Collections.Immutable/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QhkXUl2gNrQtvPmtBTQHb0YsUrDiDQ2QS09YbtTTiSjGcf7NBqtYbrG/BE06zcBPCKEwQGzIv13IVdXNOSub2w==",
"path": "system.collections.immutable/9.0.0",
"hashPath": "system.collections.immutable.9.0.0.nupkg.sha512"
},
"System.ComponentModel.Annotations/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==",
"path": "system.componentmodel.annotations/5.0.0",
"hashPath": "system.componentmodel.annotations.5.0.0.nupkg.sha512"
},
"System.Reflection.Metadata/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ANiqLu3DxW9kol/hMmTWbt3414t9ftdIuiIU7j80okq2YzAueo120M442xk1kDJWtmZTqWQn7wHDvMRipVOEOQ==",
"path": "system.reflection.metadata/9.0.0",
"hashPath": "system.reflection.metadata.9.0.0.nupkg.sha512"
},
"System.Security.Cryptography.Pkcs/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA==",
"path": "system.security.cryptography.pkcs/8.0.1",
"hashPath": "system.security.cryptography.pkcs.8.0.1.nupkg.sha512"
},
"System.Security.Cryptography.Xml/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aDM/wm0ZGEZ6ZYJLzgqjp2FZdHbDHh6/OmpGfb7AdZ105zYmPn/83JRU2xLIbwgoNz9U1SLUTJN0v5th3qmvjA==",
"path": "system.security.cryptography.xml/8.0.2",
"hashPath": "system.security.cryptography.xml.8.0.2.nupkg.sha512"
},
"System.Text.Encoding.CodePages/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==",
"path": "system.text.encoding.codepages/8.0.0",
"hashPath": "system.text.encoding.codepages.8.0.0.nupkg.sha512"
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,19 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
{
"name": "Microsoft.WindowsDesktop.App",
"version": "8.0.0"
}
],
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true,
"CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false
}
}
}

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<!-- 文件目标 -->
<target xsi:type="File"
name="fileTarget"
fileName="logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message} ${exception:format=ToString}" />
<!-- 控制台目标 -->
<target xsi:type="Console"
name="consoleTarget"
layout="${longdate} ${uppercase:${level}} ${message} ${exception:format=ToString}" />
</targets>
<rules>
<!-- 记录所有级别高于 Debug 的日志到文件 -->
<logger name="*" minlevel="Debug" writeTo="fileTarget" />
<!-- 记录所有级别高于 Info 的日志到控制台 -->
<logger name="*" minlevel="Info" writeTo="consoleTarget" />
</rules>
</nlog>

BIN
NBConfigBuilder/NLog.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,96 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
#if FANTASY_NET
using Fantasy.ConfigTable;
using Fantasy.Serialize;
#else
using NBC;
using NBC.Serialize;
#endif
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace (namespace)
{
[ProtoContract]
public sealed partial class (ConfigName)Data : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<(ConfigName)> List { get; set; } = new List<(ConfigName)>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, (ConfigName)> _configs = new ConcurrentDictionary<uint, (ConfigName)>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, (ConfigName)> _configs = new Dictionary<uint, (ConfigName)>();
#endif
private static (ConfigName)Data _instance = null;
public static (ConfigName)Data Instance
{
get { return _instance ??= ConfigTableHelper.Load<(ConfigName)Data>(); }
private set => _instance = value;
}
public (ConfigName) Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"(ConfigName) not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out (ConfigName) config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class (ConfigName) : ASerialize, IProto
{(Fields)
}
}

View File

@@ -0,0 +1,79 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using NBC;
using NBC.Serialize;
namespace NBF
{
[ProtoContract]
public sealed partial class (ConfigName) : ASerialize, IProto, IConfigTable
{
(Fields)
[ProtoIgnore]
public uint Key => Id;
#region Static
private static ConfigContext<(ConfigName)> Context => ConfigTableHelper.Table<(ConfigName)>();
public static (ConfigName) Get(uint key)
{
return Context.Get(key);
}
public static (ConfigName) Get(Predicate<(ConfigName)> match)
{
return Context.Get(match);
}
public static (ConfigName) Fist()
{
return Context.Fist();
}
public static (ConfigName) Last()
{
return Context.Last();
}
public static (ConfigName) Fist(Predicate<(ConfigName)> match)
{
return Context.Fist(match);
}
public static (ConfigName) Last(Predicate<(ConfigName)> match)
{
return Context.Last(match);
}
public static int Count()
{
return Context.Count();
}
public static int Count(Func<(ConfigName), bool> predicate)
{
return Context.Count(predicate);
}
public static List<(ConfigName)> GetList()
{
return Context.GetList();
}
public static List<(ConfigName)> GetList(Predicate<(ConfigName)> match)
{
return Context.GetList(match);
}
public static void ParseJson(Newtonsoft.Json.Linq.JArray arr)
{
ConfigTableHelper.ParseLine<(ConfigName)>(arr);
}
#endregion
}
}

View File

@@ -0,0 +1,79 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using Fantasy.Serialize;
using Fantasy.ConfigTable;
namespace NBF
{
[ProtoContract]
public sealed partial class (ConfigName) : ASerialize, IProto, IConfigTable
{
(Fields)
[ProtoIgnore]
public uint Key => Id;
#region Static
private static ConfigContext<(ConfigName)> Context => ConfigTableHelper.Table<(ConfigName)>();
public static (ConfigName) Get(uint key)
{
return Context.Get(key);
}
public static (ConfigName) Get(Predicate<(ConfigName)> match)
{
return Context.Get(match);
}
public static (ConfigName) Fist()
{
return Context.Fist();
}
public static (ConfigName) Last()
{
return Context.Last();
}
public static (ConfigName) Fist(Predicate<(ConfigName)> match)
{
return Context.Fist(match);
}
public static (ConfigName) Last(Predicate<(ConfigName)> match)
{
return Context.Last(match);
}
public static int Count()
{
return Context.Count();
}
public static int Count(Func<(ConfigName), bool> predicate)
{
return Context.Count(predicate);
}
public static List<(ConfigName)> GetList()
{
return Context.GetList();
}
public static List<(ConfigName)> GetList(Predicate<(ConfigName)> match)
{
return Context.GetList(match);
}
public static void ParseJson(Newtonsoft.Json.Linq.JArray arr)
{
ConfigTableHelper.ParseLine<(ConfigName)>(arr);
}
#endregion
}
}

View File

@@ -0,0 +1,10 @@
{
"ExcelPath": "D:\\work\\Fishing2\\Config",
"ClientPath": "D:\\work\\Fishing2\\Assets\\Scripts\\Generate\\Config",
"ClientJsonPath": "D:\\work\\Fishing2\\Assets\\Resources\\config",
"ServerPath": "D:\\work\\Fishing2Server\\Entity\\Generate\\ConfigTable\\Entity",
"ServerJsonPath": "D:\\work\\Fishing2Server\\Config\\Json",
"GenClient": true,
"GenServer": true,
"ExcelVersionPath": "D:\\work\\Fishing2\\Config\\Version.txt"
}

View File

@@ -0,0 +1,10 @@
{
"ExcelPath": "..\\..\\..\\Fishing2\\Config",
"ClientPath": "..\\..\\..\\Fishing2\\Assets\\Scripts\\Generate\\Config",
"ClientJsonPath": "..\\..\\..\\Fishing2\\Assets\\Resources\\config",
"ServerPath": "..\\..\\..\\Fishing2Server\\Entity\\Generate\\ConfigTable\\Entity",
"ServerJsonPath": "..\\..\\..\\Fishing2Server\\Config\\Json",
"GenClient": true,
"GenServer": true,
"ExcelVersionPath": "..\\..\\..\\Fishing2\\Config\\Version.txt"
}

View File

@@ -0,0 +1,3 @@
2025-10-19 20:08:15.9571 INFO Application started
2025-10-19 20:09:51.7518 INFO Application closing
2025-10-19 20:09:59.2390 INFO Application started

View File

@@ -0,0 +1 @@
2025-10-21 22:43:24.1482 INFO Application started

View File

@@ -0,0 +1 @@
2025-10-29 21:37:12.6535 INFO Application started

View File

@@ -0,0 +1 @@
2025-10-31 22:34:48.9949 INFO Application started

Binary file not shown.

Binary file not shown.

BIN
language/Language.xlsx Normal file

Binary file not shown.

BIN
language/LanguageFont.xlsx Normal file

Binary file not shown.

BIN
language/LanguageImage.xlsx Normal file

Binary file not shown.

Binary file not shown.

10
language/命名规则.txt Normal file
View File

@@ -0,0 +1,10 @@
模块名_..
例:
Mission_Title_10001
Mission_Describe_10001
Notice_GoldLow
Item_Name_300001
艺术字,增加第二个字段标注为Image
Mission_Image_Title_10001

0
新建 文本文档.txt Normal file
View File