From bf2f6d268098239901004a52676aa7fa05559b72 Mon Sep 17 00:00:00 2001 From: BobSong <605277374@qq.com> Date: Thu, 9 Oct 2025 23:57:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Resources/config/ConfigAssets.asset | 342 ------------ .../Resources/config/ConfigAssets.asset.meta | 8 - .../Test => Resources/config}/configs.json | 512 +++++++++--------- .../config}/configs.json.meta | 2 +- Assets/Scripts/Configs.meta | 8 - Assets/Scripts/Configs/Cache.meta | 8 - Assets/Scripts/Configs/Cache/ConfigContext.cs | 90 --- .../Configs/Cache/ConfigContext.cs.meta | 2 - Assets/Scripts/Configs/Cache/Configs.cs | 27 - Assets/Scripts/Configs/Cache/Configs.cs.meta | 2 - .../Configs/Cache/TableNameAttribute.cs | 17 - .../Configs/Cache/TableNameAttribute.cs.meta | 3 - Assets/Scripts/Configs/ConfigAssets.Parse.cs | 68 --- .../Configs/ConfigAssets.Parse.cs.meta | 3 - Assets/Scripts/Configs/ConfigAssets.cs | 30 - Assets/Scripts/Configs/ConfigAssets.cs.meta | 3 - Assets/Scripts/Configs/Editor.meta | 3 - .../Scripts/Configs/Editor/CfgEditorUtil.cs | 197 ------- .../Configs/Editor/CfgEditorUtil.cs.meta | 3 - Assets/Scripts/Configs/Editor/CodeWriter.cs | 105 ---- .../Scripts/Configs/Editor/CodeWriter.cs.meta | 2 - .../Scripts/Configs/Editor/ConfigWarpTemplate | 65 --- .../Configs/Editor/ConfigWarpTemplate.meta | 7 - Assets/Scripts/Configs/Extemds.meta | 3 - .../Scripts/Configs/Extemds/JTokenExtends.cs | 138 ----- .../Configs/Extemds/JTokenExtends.cs.meta | 3 - Assets/Scripts/Configs/Gen.meta | 3 - .../Scripts/Configs/Gen/ConfigAssets.Gen.cs | 122 ----- .../Configs/Gen/ConfigAssets.Gen.cs.meta | 2 - Assets/Scripts/Configs/Gen/Warps.meta | 3 - .../Configs/Gen/Warps/BaitConfigWarp.cs | 65 --- .../Configs/Gen/Warps/BaitConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/BobberConfigWarp.cs | 65 --- .../Gen/Warps/BobberConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/FeederConfigWarp.cs | 65 --- .../Gen/Warps/FeederConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/FishAcceptConfigWarp.cs | 65 --- .../Gen/Warps/FishAcceptConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/FishConfigWarp.cs | 65 --- .../Configs/Gen/Warps/FishConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/HookConfigWarp.cs | 65 --- .../Configs/Gen/Warps/HookConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/LeadersConfigWarp.cs | 65 --- .../Gen/Warps/LeadersConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/LineConfigWarp.cs | 65 --- .../Configs/Gen/Warps/LineConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/LureConfigWarp.cs | 65 --- .../Configs/Gen/Warps/LureConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/ReelConfigWarp.cs | 65 --- .../Configs/Gen/Warps/ReelConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/RingConfigWarp.cs | 65 --- .../Configs/Gen/Warps/RingConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/RodConfigWarp.cs | 65 --- .../Configs/Gen/Warps/RodConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/UnitConfigWarp.cs | 65 --- .../Configs/Gen/Warps/UnitConfigWarp.cs.meta | 2 - .../Configs/Gen/Warps/WeightConfigWarp.cs | 65 --- .../Gen/Warps/WeightConfigWarp.cs.meta | 2 - Assets/Scripts/Configs/Mem.meta | 3 - Assets/Scripts/Configs/Mem/BaitConfig.cs | 137 ----- Assets/Scripts/Configs/Mem/BaitConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/BobberConfig.cs | 32 -- .../Scripts/Configs/Mem/BobberConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/CameraCfg.cs | 68 --- Assets/Scripts/Configs/Mem/CameraCfg.cs.meta | 3 - Assets/Scripts/Configs/Mem/ConfigBase.cs | 51 -- Assets/Scripts/Configs/Mem/ConfigBase.cs.meta | 3 - Assets/Scripts/Configs/Mem/FeederConfig.cs | 25 - .../Scripts/Configs/Mem/FeederConfig.cs.meta | 3 - .../Scripts/Configs/Mem/FishAcceptConfig.cs | 12 - .../Configs/Mem/FishAcceptConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/FishConfig.cs | 134 ----- Assets/Scripts/Configs/Mem/FishConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/HookConfig.cs | 167 ------ Assets/Scripts/Configs/Mem/HookConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/LeadersConfig.cs | 19 - .../Scripts/Configs/Mem/LeadersConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/LineConfig.cs | 28 - Assets/Scripts/Configs/Mem/LineConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/LureConfig.cs | 123 ----- Assets/Scripts/Configs/Mem/LureConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/ReelConfig.cs | 30 - Assets/Scripts/Configs/Mem/ReelConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/RingConfig.cs | 7 - Assets/Scripts/Configs/Mem/RingConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/RodConfig.cs | 41 -- Assets/Scripts/Configs/Mem/RodConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/UnitConfig.cs | 31 -- Assets/Scripts/Configs/Mem/UnitConfig.cs.meta | 3 - Assets/Scripts/Configs/Mem/WeightConfig.cs | 26 - .../Scripts/Configs/Mem/WeightConfig.cs.meta | 3 - .../Generate/{Test.meta => Config.meta} | 2 +- .../Generate/{Test => Config}/BaitConfig.cs | 2 +- .../Generate/Config/BaitConfig.cs.meta | 2 + .../Generate/{Test => Config}/BobberConfig.cs | 2 +- .../Generate/Config/BobberConfig.cs.meta | 2 + .../Generate/{Test => Config}/FeederConfig.cs | 2 +- .../Generate/Config/FeederConfig.cs.meta | 2 + .../Generate/{Test => Config}/FishConfig.cs | 2 +- .../Generate/Config/FishConfig.cs.meta | 2 + .../Generate/{Test => Config}/HookConfig.cs | 2 +- .../Generate/Config/HookConfig.cs.meta | 2 + .../Generate/{Test => Config}/LineConfig.cs | 2 +- .../Generate/Config/LineConfig.cs.meta | 2 + .../Generate/{Test => Config}/LureConfig.cs | 2 +- .../Generate/Config/LureConfig.cs.meta | 2 + .../Generate/{Test => Config}/ReelConfig.cs | 2 +- .../Generate/Config/ReelConfig.cs.meta | 2 + .../Generate/{Test => Config}/RingConfig.cs | 2 +- .../Generate/Config/RingConfig.cs.meta | 2 + .../Generate/{Test => Config}/RodConfig.cs | 2 +- .../Scripts/Generate/Config/RodConfig.cs.meta | 2 + .../Generate/{Test => Config}/Unit2Config.cs | 2 +- .../Generate/Config/Unit2Config.cs.meta | 2 + .../Generate/{Test => Config}/UnitConfig.cs | 2 +- .../Generate/Config/UnitConfig.cs.meta | 2 + .../Generate/{Test => Config}/WeightConfig.cs | 2 +- .../Generate/Config/WeightConfig.cs.meta | 2 + .../Scripts/Generate/Test/BaitConfig.cs.meta | 2 - .../Generate/Test/BobberConfig.cs.meta | 2 - .../Generate/Test/FeederConfig.cs.meta | 2 - .../Scripts/Generate/Test/FishConfig.cs.meta | 2 - .../Scripts/Generate/Test/HookConfig.cs.meta | 2 - .../Scripts/Generate/Test/LineConfig.cs.meta | 2 - .../Scripts/Generate/Test/LureConfig.cs.meta | 2 - .../Scripts/Generate/Test/ReelConfig.cs.meta | 2 - .../Scripts/Generate/Test/RingConfig.cs.meta | 2 - .../Scripts/Generate/Test/RodConfig.cs.meta | 2 - .../Scripts/Generate/Test/Unit2Config.cs.meta | 2 - .../Scripts/Generate/Test/UnitConfig.cs.meta | 2 - .../Generate/Test/WeightConfig.cs.meta | 2 - Assets/Scripts/Init.cs | 2 + .../Runtime/Core/Config/ConfigTableHelper.cs | 91 ++-- Config/BaitConfig.xlsx | Bin 0 -> 10010 bytes Config/BobberConfig.xlsx | Bin 0 -> 11779 bytes Config/FeederConfig.xlsx | Bin 0 -> 9692 bytes Config/FishConfig.xlsx | Bin 0 -> 11721 bytes Config/HookConfig.xlsx | Bin 0 -> 11687 bytes Config/LineConfig.xlsx | Bin 0 -> 11629 bytes Config/LureConfig.xlsx | Bin 0 -> 9999 bytes Config/ReelConfig.xlsx | Bin 0 -> 11647 bytes Config/RingConfig.xlsx | Bin 0 -> 9555 bytes Config/RodConfig.xlsx | Bin 0 -> 11912 bytes Config/UnitConfig.xlsx | Bin 0 -> 10550 bytes Config/WeightConfig.xlsx | Bin 0 -> 11428 bytes Config/fish-鱼.xlsx | Bin 34218 -> 0 bytes Config/fishing gear-渔具.xlsx | Bin 64587 -> 0 bytes Config/unit - 单位.xlsx | Bin 34051 -> 0 bytes 148 files changed, 343 insertions(+), 3531 deletions(-) delete mode 100644 Assets/Resources/config/ConfigAssets.asset delete mode 100644 Assets/Resources/config/ConfigAssets.asset.meta rename Assets/{Scripts/Generate/Test => Resources/config}/configs.json (100%) rename Assets/{Scripts/Generate/Test => Resources/config}/configs.json.meta (75%) delete mode 100644 Assets/Scripts/Configs.meta delete mode 100644 Assets/Scripts/Configs/Cache.meta delete mode 100644 Assets/Scripts/Configs/Cache/ConfigContext.cs delete mode 100644 Assets/Scripts/Configs/Cache/ConfigContext.cs.meta delete mode 100644 Assets/Scripts/Configs/Cache/Configs.cs delete mode 100644 Assets/Scripts/Configs/Cache/Configs.cs.meta delete mode 100644 Assets/Scripts/Configs/Cache/TableNameAttribute.cs delete mode 100644 Assets/Scripts/Configs/Cache/TableNameAttribute.cs.meta delete mode 100644 Assets/Scripts/Configs/ConfigAssets.Parse.cs delete mode 100644 Assets/Scripts/Configs/ConfigAssets.Parse.cs.meta delete mode 100644 Assets/Scripts/Configs/ConfigAssets.cs delete mode 100644 Assets/Scripts/Configs/ConfigAssets.cs.meta delete mode 100644 Assets/Scripts/Configs/Editor.meta delete mode 100644 Assets/Scripts/Configs/Editor/CfgEditorUtil.cs delete mode 100644 Assets/Scripts/Configs/Editor/CfgEditorUtil.cs.meta delete mode 100644 Assets/Scripts/Configs/Editor/CodeWriter.cs delete mode 100644 Assets/Scripts/Configs/Editor/CodeWriter.cs.meta delete mode 100644 Assets/Scripts/Configs/Editor/ConfigWarpTemplate delete mode 100644 Assets/Scripts/Configs/Editor/ConfigWarpTemplate.meta delete mode 100644 Assets/Scripts/Configs/Extemds.meta delete mode 100644 Assets/Scripts/Configs/Extemds/JTokenExtends.cs delete mode 100644 Assets/Scripts/Configs/Extemds/JTokenExtends.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen.meta delete mode 100644 Assets/Scripts/Configs/Gen/ConfigAssets.Gen.cs delete mode 100644 Assets/Scripts/Configs/Gen/ConfigAssets.Gen.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/BaitConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/BaitConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/BobberConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/BobberConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/FeederConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/FeederConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/FishAcceptConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/FishAcceptConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/FishConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/FishConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/HookConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/HookConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/LeadersConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/LeadersConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/LineConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/LineConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/LureConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/LureConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/ReelConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/ReelConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/RingConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/RingConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/RodConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/RodConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/UnitConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/UnitConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Gen/Warps/WeightConfigWarp.cs delete mode 100644 Assets/Scripts/Configs/Gen/Warps/WeightConfigWarp.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem.meta delete mode 100644 Assets/Scripts/Configs/Mem/BaitConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/BaitConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/BobberConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/BobberConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/CameraCfg.cs delete mode 100644 Assets/Scripts/Configs/Mem/CameraCfg.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/ConfigBase.cs delete mode 100644 Assets/Scripts/Configs/Mem/ConfigBase.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/FeederConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/FeederConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/FishAcceptConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/FishAcceptConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/FishConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/FishConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/HookConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/HookConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/LeadersConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/LeadersConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/LineConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/LineConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/LureConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/LureConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/ReelConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/ReelConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/RingConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/RingConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/RodConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/RodConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/UnitConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/UnitConfig.cs.meta delete mode 100644 Assets/Scripts/Configs/Mem/WeightConfig.cs delete mode 100644 Assets/Scripts/Configs/Mem/WeightConfig.cs.meta rename Assets/Scripts/Generate/{Test.meta => Config.meta} (77%) rename Assets/Scripts/Generate/{Test => Config}/BaitConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/BaitConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/BobberConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/BobberConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/FeederConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/FeederConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/FishConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/FishConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/HookConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/HookConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/LineConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/LineConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/LureConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/LureConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/ReelConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/ReelConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/RingConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/RingConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/RodConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/RodConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/Unit2Config.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/Unit2Config.cs.meta rename Assets/Scripts/Generate/{Test => Config}/UnitConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/UnitConfig.cs.meta rename Assets/Scripts/Generate/{Test => Config}/WeightConfig.cs (99%) create mode 100644 Assets/Scripts/Generate/Config/WeightConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/BaitConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/BobberConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/FeederConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/FishConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/HookConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/LineConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/LureConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/ReelConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/RingConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/RodConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/Unit2Config.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/UnitConfig.cs.meta delete mode 100644 Assets/Scripts/Generate/Test/WeightConfig.cs.meta create mode 100644 Config/BaitConfig.xlsx create mode 100644 Config/BobberConfig.xlsx create mode 100644 Config/FeederConfig.xlsx create mode 100644 Config/FishConfig.xlsx create mode 100644 Config/HookConfig.xlsx create mode 100644 Config/LineConfig.xlsx create mode 100644 Config/LureConfig.xlsx create mode 100644 Config/ReelConfig.xlsx create mode 100644 Config/RingConfig.xlsx create mode 100644 Config/RodConfig.xlsx create mode 100644 Config/UnitConfig.xlsx create mode 100644 Config/WeightConfig.xlsx delete mode 100644 Config/fish-鱼.xlsx delete mode 100644 Config/fishing gear-渔具.xlsx delete mode 100644 Config/unit - 单位.xlsx diff --git a/Assets/Resources/config/ConfigAssets.asset b/Assets/Resources/config/ConfigAssets.asset deleted file mode 100644 index 14bd62c5f..000000000 --- a/Assets/Resources/config/ConfigAssets.asset +++ /dev/null @@ -1,342 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d8691ef03f74aedb6cfd67e53cf664f, type: 3} - m_Name: ConfigAssets - m_EditorClassIdentifier: - BaitConfigArr: - - id: 500001 - modelPath: baits/worm_01/worm_01 - group: 0 - type: 0 - acceptFish: - weightFishAccept: {x: 0, y: 3} - weight: 2.5 - lenght: 0 - amount: 1 - Level: 1 - - id: 500002 - modelPath: baits/fly/fly - group: 0 - type: 0 - acceptFish: - weightFishAccept: {x: 0, y: 3} - weight: 2.5 - lenght: 0 - amount: 1 - Level: 1 - - id: 500003 - modelPath: baits/black_leech/black_leech - group: 0 - type: 0 - acceptFish: - weightFishAccept: {x: 0, y: 3} - weight: 2.5 - lenght: 0 - amount: 1 - Level: 1 - - id: 500004 - modelPath: baits/bread/bread - group: 0 - type: 0 - acceptFish: - weightFishAccept: {x: 0, y: 3} - weight: 2.5 - lenght: 0 - amount: 1 - Level: 1 - BobberConfigArr: - - id: 300001 - modelPath: bobbers/expressfishing/bob_25003/bob_25003 - group: 0 - type: 2 - weight: 0.5 - displacement: 3 - isNightLight: 0 - Level: 1 - amount: 1 - - id: 300002 - modelPath: bobbers/expressfishing/bob_25162_25163/bob_25162 - group: 0 - type: 0 - weight: 0.8 - displacement: 3 - isNightLight: 0 - Level: 1 - amount: 1 - - id: 300003 - modelPath: bobbers/expressfishing/bob_25166_25167/bob_25166 - group: 0 - type: 0 - weight: 0.8 - displacement: 3 - isNightLight: 0 - Level: 1 - amount: 1 - - id: 300004 - modelPath: bobbers/expressfishing/bob_25001/bob_25001 - group: 0 - type: 0 - weight: 0.8 - displacement: 3 - isNightLight: 0 - Level: 1 - amount: 1 - FeederConfigArr: - - id: 900001 - modelPath: Feeders/Feeder 1/FeedTrash 1 - group: 0 - type: 0 - weight: 5 - capacity: 100 - Level: 1 - amount: 1 - FishAcceptConfigArr: - - id: 2100001 - bait: 500189 - min: 0.3 - max: 26 - - id: 2100001 - bait: 500135 - min: 0.3 - max: 25 - FishConfigArr: - - id: 2200001 - speciesName: 10 - isEnabled: 1 - type: 0 - maxWeight: 34 - speciesCoins: 4 - rankingPoint: 1 - modelPath: - - Burbot_B - imagePath: [] - modelTrophyPath: [] - weightLenghtValues: [] - weightLengthCurve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - acceptFishBaits: [] - acceptFishLures: [] - - id: 2200002 - speciesName: 11 - isEnabled: 1 - type: 0 - maxWeight: 40 - speciesCoins: 4 - rankingPoint: 1 - modelPath: - - CarpCommon_B - imagePath: [] - modelTrophyPath: [] - weightLenghtValues: [] - weightLengthCurve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - acceptFishBaits: [] - acceptFishLures: [] - - id: 2200003 - speciesName: 14 - isEnabled: 1 - type: 0 - maxWeight: 45 - speciesCoins: 4 - rankingPoint: 1 - modelPath: - - CarpGrass_B - imagePath: [] - modelTrophyPath: [] - weightLenghtValues: [] - weightLengthCurve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - acceptFishBaits: [] - acceptFishLures: [] - - id: 2200004 - speciesName: 16 - isEnabled: 1 - type: 0 - maxWeight: 3 - speciesCoins: 4 - rankingPoint: 1 - modelPath: - - CarpCrucian_B - imagePath: [] - modelTrophyPath: [] - weightLenghtValues: [] - weightLengthCurve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - acceptFishBaits: [] - acceptFishLures: [] - HookConfigArr: - - id: 700001 - modelPath: hooks/alliance/c_hook_20789_20794/c_hook_20789 - group: 0 - color: Nickel - type: 1 - zadzior: 1 - size: 1 - amount: 1 - Level: 1 - - id: 700102 - modelPath: hooks/berserk_hooks/triple_20569_20577/triple_20569 - group: 0 - color: Nickel - type: 1 - zadzior: 1 - size: 1 - amount: 1 - Level: 1 - LeadersConfigArr: [] - LineConfigArr: - - id: 400001 - modelPath: Lines/UFE Mono/UFE monoClear - group: 0 - type: 0 - length: 75 - strength: 1.51 - size: 0.12 - Level: 1 - - id: 400002 - modelPath: Lines/UFE Mono/UFE monoClear - group: 0 - type: 0 - length: 75 - strength: 2.51 - size: 0.16 - Level: 1 - LureConfigArr: - - id: 600001 - modelPath: lures/express_fishing/crankbaits_1/775/crankbaits_775 - group: 0 - type: 0 - acceptFish: - weightFishAccept: {x: 0, y: 3} - weight: 5.3 - lenght: 80 - amount: 0 - Level: 1 - hook: c6ae0a00 - - id: 600002 - modelPath: lures/express_fishing/poppers_1/poppers_590/poppers_590 - group: 0 - type: 0 - acceptFish: - weightFishAccept: {x: 0, y: 3} - weight: 5.3 - lenght: 80 - amount: 0 - Level: 1 - hook: c6ae0a00 - - id: 600003 - modelPath: lures/express_fishing/softplastic/ef_supergrab_6/softplastic_g_1622 - group: 0 - type: 0 - acceptFish: - weightFishAccept: {x: 0, y: 3} - weight: 5.3 - lenght: 80 - amount: 0 - Level: 1 - hook: - - id: 600004 - modelPath: lures/express_fishing/softplastic/ef_superminnow_6/softplastic_m_1634 - group: 0 - type: 0 - acceptFish: - weightFishAccept: {x: 0, y: 3} - weight: 5.3 - lenght: 80 - amount: 0 - Level: 1 - hook: - ReelConfigArr: - - id: 200001 - modelPath: reels/syberia/spin_5002/spin_5002 - group: 0 - type: 0 - strength: 3 - gearRatio: {x: 6.2, y: 1} - size: 2000 - Level: 1 - - id: 200002 - modelPath: reels/syberia/spin_5036/spin_5036 - group: 0 - type: 0 - strength: 4.5 - gearRatio: {x: 6.2, y: 1} - size: 2000 - Level: 1 - RingConfigArr: - - id: 1100001 - modelPath: rod_rings/rumoi/rumoi_oxiline_spin - group: 0 - - id: 1100002 - modelPath: rod_rings/smt/smt_pure_ceramic_bolo - group: 0 - RodConfigArr: - - id: 100001 - modelPath: rods/syberia/tele_10037/tele_10037_t13 - group: 0 - type: 1 - length: 3,7 - weight: 250 - strength: 40.82 - maxRange: 67 - ring: 0 - - id: 100002 - modelPath: rods/syberia/bolo_10021/bolo_10021_LB400 - group: 0 - type: 0 - length: 2,5 - weight: 120 - strength: 1.59 - maxRange: 30 - ring: 1100002 - - id: 100003 - modelPath: rods/syberia/spin_10034/spin_10034_S60H - group: 0 - type: 0 - length: 2,5 - weight: 120 - strength: 1.59 - maxRange: 30 - ring: 1100001 - UnitConfigArr: - - id: 310001 - Type: 1 - - id: 310002 - Type: 2 - - id: 310003 - Type: 3 - - id: 310004 - Type: 4 - WeightConfigArr: - - id: 800001 - modelPath: Weights/Weight2_5g - group: 0 - type: 0 - weight: 3 - Level: 1 - amount: 1 diff --git a/Assets/Resources/config/ConfigAssets.asset.meta b/Assets/Resources/config/ConfigAssets.asset.meta deleted file mode 100644 index c20ddeaa1..000000000 --- a/Assets/Resources/config/ConfigAssets.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0921d6ed0762c1b4b9dbc2829bd80546 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Generate/Test/configs.json b/Assets/Resources/config/configs.json similarity index 100% rename from Assets/Scripts/Generate/Test/configs.json rename to Assets/Resources/config/configs.json index 0865fd5c2..e2205386d 100644 --- a/Assets/Scripts/Generate/Test/configs.json +++ b/Assets/Resources/config/configs.json @@ -1,260 +1,4 @@ { - "Unit2Config": [ - { - "Id": 1, - "Name": "Unit01", - "Model": "Unit01" - } - ], - "WeightConfig": [ - { - "Id": 800001, - "Model": "Weights/Weight2_5g", - "Type": 0, - "Weight": 3 - } - ], - "UnitConfig": [ - { - "Id": 1, - "Name": "Unit01", - "Model": "Unit01" - } - ], - "RingConfig": [ - { - "Id": 1100001, - "Model": "rod_rings/rumoi/rumoi_oxiline_spin" - }, - { - "Id": 1100002, - "Model": "rod_rings/smt/smt_pure_ceramic_bolo" - } - ], - "LureConfig": [ - { - "Id": 600001, - "Model": "lures/express_fishing/crankbaits_1/775/crankbaits_775", - "Hook": [ - 700102 - ], - "EfficacyBase": 50, - "Length": 0, - "Weight": 250 - }, - { - "Id": 600002, - "Model": "lures/express_fishing/poppers_1/poppers_590/poppers_590", - "Hook": [ - 700102 - ], - "EfficacyBase": 50, - "Length": 0, - "Weight": 120 - }, - { - "Id": 600003, - "Model": "lures/express_fishing/softplastic/ef_supergrab_6/softplastic_g_1622", - "Hook": [ - 0 - ], - "EfficacyBase": 50, - "Length": 0, - "Weight": 120 - }, - { - "Id": 600004, - "Model": "lures/express_fishing/softplastic/ef_superminnow_6/softplastic_m_1634", - "Hook": [ - 0 - ], - "EfficacyBase": 50, - "Length": 0, - "Weight": 120 - } - ], - "ReelConfig": [ - { - "Id": 200001, - "Model": "reels/syberia/spin_5002/spin_5002", - "Type": 0, - "GearRatio": [ - "7" - ], - "Size": 250, - "Strength": 40 - }, - { - "Id": 200002, - "Model": "reels/syberia/spin_5036/spin_5036", - "Type": 0, - "GearRatio": [ - "5" - ], - "Size": 120, - "Strength": 40 - } - ], - "LineConfig": [ - { - "Id": 400001, - "Model": "Lines/UFE Mono/UFE monoClear", - "Type": 0, - "Length": 7, - "Strength": 40, - "Size": 1 - }, - { - "Id": 400002, - "Model": "rods/syberia/bolo_10021/bolo_10021_LB400", - "Type": 0, - "Length": 5, - "Strength": 40, - "Size": 1 - } - ], - "HookConfig": [ - { - "Id": 700001, - "Model": "hooks/alliance/c_hook_20789_20794/c_hook_20789", - "Type": 1, - "Zadzior": 1, - "Length": 0, - "Weight": 1 - }, - { - "Id": 700002, - "Model": "hooks/berserk_hooks/triple_20569_20577/triple_20569", - "Type": 1, - "Zadzior": 1, - "Length": 0, - "Weight": 1 - } - ], - "RodConfig": [ - { - "Id": 100001, - "Model": "rods/syberia/tele_10037/tele_10037_t13", - "Type": 1, - "Ring": 0, - "Length": 7, - "Weight": 250, - "Strength": 40, - "MaxRange": 67, - "ConstructionType": 0 - }, - { - "Id": 100002, - "Model": "rods/syberia/bolo_10021/bolo_10021_LB400", - "Type": 0, - "Ring": 1100002, - "Length": 5, - "Weight": 120, - "Strength": 40, - "MaxRange": 30, - "ConstructionType": 0 - }, - { - "Id": 100003, - "Model": "rods/syberia/spin_10034/spin_10034_S60H", - "Type": 0, - "Ring": 1100001, - "Length": 5, - "Weight": 120, - "Strength": 40, - "MaxRange": 30, - "ConstructionType": 0 - } - ], - "FishConfig": [ - { - "Id": 2200001, - "Model": [ - "Burbot_B" - ], - "Type": 0, - "SpeciesName": 10, - "MinWeight": 1, - "MaxWeight": 34, - "Accept": 2100001 - }, - { - "Id": 2200002, - "Model": [ - "CarpCommon_B" - ], - "Type": 0, - "SpeciesName": 11, - "MinWeight": 1, - "MaxWeight": 34, - "Accept": 2100001 - }, - { - "Id": 2200003, - "Model": [ - "CarpGrass_B" - ], - "Type": 0, - "SpeciesName": 14, - "MinWeight": 1, - "MaxWeight": 34, - "Accept": 2100001 - }, - { - "Id": 2200004, - "Model": [ - "CarpCrucian_B" - ], - "Type": 0, - "SpeciesName": 16, - "MinWeight": 1, - "MaxWeight": 34, - "Accept": 2100001 - } - ], - "BobberConfig": [ - { - "Id": 300001, - "Model": "bobbers/expressfishing/bob_25003/bob_25003", - "Type": 2, - "Weight": 1, - "Displacement": 40, - "NightLight": 0 - }, - { - "Id": 300002, - "Model": "bobbers/expressfishing/bob_25162_25163/bob_25162", - "Type": 0, - "Weight": 1, - "Displacement": 40, - "NightLight": 0 - }, - { - "Id": 300003, - "Model": "bobbers/expressfishing/bob_25166_25167/bob_25166", - "Type": 0, - "Weight": 1, - "Displacement": 40, - "NightLight": 0 - }, - { - "Id": 300004, - "Model": "bobbers/expressfishing/bob_25001/bob_25001", - "Type": 0, - "Weight": 1, - "Displacement": 40, - "NightLight": 0 - } - ], - "FeederConfig": [ - { - "Id": 900001, - "Model": "Feeders/Feeder 1/FeedTrash 1", - "Type": 0, - "Capacity": 100, - "Weight": 5 - } - ], "BaitConfig": [ { "Id": 500001, @@ -319,5 +63,261 @@ "44|2" ] } + ], + "ReelConfig": [ + { + "Id": 200001, + "Model": "reels/syberia/spin_5002/spin_5002", + "Type": 0, + "GearRatio": [ + "7" + ], + "Size": 250, + "Strength": 40 + }, + { + "Id": 200002, + "Model": "reels/syberia/spin_5036/spin_5036", + "Type": 0, + "GearRatio": [ + "5" + ], + "Size": 120, + "Strength": 40 + } + ], + "FishConfig": [ + { + "Id": 2200001, + "Model": [ + "Burbot_B" + ], + "Type": 0, + "SpeciesName": 10, + "MinWeight": 1, + "MaxWeight": 34, + "Accept": 2100001 + }, + { + "Id": 2200002, + "Model": [ + "CarpCommon_B" + ], + "Type": 0, + "SpeciesName": 11, + "MinWeight": 1, + "MaxWeight": 34, + "Accept": 2100001 + }, + { + "Id": 2200003, + "Model": [ + "CarpGrass_B" + ], + "Type": 0, + "SpeciesName": 14, + "MinWeight": 1, + "MaxWeight": 34, + "Accept": 2100001 + }, + { + "Id": 2200004, + "Model": [ + "CarpCrucian_B" + ], + "Type": 0, + "SpeciesName": 16, + "MinWeight": 1, + "MaxWeight": 34, + "Accept": 2100001 + } + ], + "RodConfig": [ + { + "Id": 100001, + "Model": "rods/syberia/tele_10037/tele_10037_t13", + "Type": 1, + "Ring": 0, + "Length": 7, + "Weight": 250, + "Strength": 40, + "MaxRange": 67, + "ConstructionType": 0 + }, + { + "Id": 100002, + "Model": "rods/syberia/bolo_10021/bolo_10021_LB400", + "Type": 0, + "Ring": 1100002, + "Length": 5, + "Weight": 120, + "Strength": 40, + "MaxRange": 30, + "ConstructionType": 0 + }, + { + "Id": 100003, + "Model": "rods/syberia/spin_10034/spin_10034_S60H", + "Type": 0, + "Ring": 1100001, + "Length": 5, + "Weight": 120, + "Strength": 40, + "MaxRange": 30, + "ConstructionType": 0 + } + ], + "HookConfig": [ + { + "Id": 700001, + "Model": "hooks/alliance/c_hook_20789_20794/c_hook_20789", + "Type": 1, + "Zadzior": 1, + "Length": 0, + "Weight": 1 + }, + { + "Id": 700002, + "Model": "hooks/berserk_hooks/triple_20569_20577/triple_20569", + "Type": 1, + "Zadzior": 1, + "Length": 0, + "Weight": 1 + } + ], + "LureConfig": [ + { + "Id": 600001, + "Model": "lures/express_fishing/crankbaits_1/775/crankbaits_775", + "Hook": [ + 700102 + ], + "EfficacyBase": 50, + "Length": 0, + "Weight": 250 + }, + { + "Id": 600002, + "Model": "lures/express_fishing/poppers_1/poppers_590/poppers_590", + "Hook": [ + 700102 + ], + "EfficacyBase": 50, + "Length": 0, + "Weight": 120 + }, + { + "Id": 600003, + "Model": "lures/express_fishing/softplastic/ef_supergrab_6/softplastic_g_1622", + "Hook": [ + 0 + ], + "EfficacyBase": 50, + "Length": 0, + "Weight": 120 + }, + { + "Id": 600004, + "Model": "lures/express_fishing/softplastic/ef_superminnow_6/softplastic_m_1634", + "Hook": [ + 0 + ], + "EfficacyBase": 50, + "Length": 0, + "Weight": 120 + } + ], + "Unit2Config": [ + { + "Id": 1, + "Name": "Unit01", + "Model": "Unit01" + } + ], + "RingConfig": [ + { + "Id": 1100001, + "Model": "rod_rings/rumoi/rumoi_oxiline_spin" + }, + { + "Id": 1100002, + "Model": "rod_rings/smt/smt_pure_ceramic_bolo" + } + ], + "FeederConfig": [ + { + "Id": 900001, + "Model": "Feeders/Feeder 1/FeedTrash 1", + "Type": 0, + "Capacity": 100, + "Weight": 5 + } + ], + "BobberConfig": [ + { + "Id": 300001, + "Model": "bobbers/expressfishing/bob_25003/bob_25003", + "Type": 2, + "Weight": 1, + "Displacement": 40, + "NightLight": 0 + }, + { + "Id": 300002, + "Model": "bobbers/expressfishing/bob_25162_25163/bob_25162", + "Type": 0, + "Weight": 1, + "Displacement": 40, + "NightLight": 0 + }, + { + "Id": 300003, + "Model": "bobbers/expressfishing/bob_25166_25167/bob_25166", + "Type": 0, + "Weight": 1, + "Displacement": 40, + "NightLight": 0 + }, + { + "Id": 300004, + "Model": "bobbers/expressfishing/bob_25001/bob_25001", + "Type": 0, + "Weight": 1, + "Displacement": 40, + "NightLight": 0 + } + ], + "LineConfig": [ + { + "Id": 400001, + "Model": "Lines/UFE Mono/UFE monoClear", + "Type": 0, + "Length": 7, + "Strength": 40, + "Size": 1 + }, + { + "Id": 400002, + "Model": "rods/syberia/bolo_10021/bolo_10021_LB400", + "Type": 0, + "Length": 5, + "Strength": 40, + "Size": 1 + } + ], + "WeightConfig": [ + { + "Id": 800001, + "Model": "Weights/Weight2_5g", + "Type": 0, + "Weight": 3 + } + ], + "UnitConfig": [ + { + "Id": 1, + "Name": "Unit01", + "Model": "Unit01" + } ] } \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/configs.json.meta b/Assets/Resources/config/configs.json.meta similarity index 75% rename from Assets/Scripts/Generate/Test/configs.json.meta rename to Assets/Resources/config/configs.json.meta index 6c2030bad..d71de4bac 100644 --- a/Assets/Scripts/Generate/Test/configs.json.meta +++ b/Assets/Resources/config/configs.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c8b5cb8d32d7bc9438c04720cd8e7bf4 +guid: 0bfd3b5c53a04e544a8ad023bc4942da TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/Scripts/Configs.meta b/Assets/Scripts/Configs.meta deleted file mode 100644 index ad00bf98b..000000000 --- a/Assets/Scripts/Configs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 26c9eac372b5d1c469ec95dc690490be -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Configs/Cache.meta b/Assets/Scripts/Configs/Cache.meta deleted file mode 100644 index 13ca635d5..000000000 --- a/Assets/Scripts/Configs/Cache.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d89005a134404b88b748787a74946d20 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Configs/Cache/ConfigContext.cs b/Assets/Scripts/Configs/Cache/ConfigContext.cs deleted file mode 100644 index 4c1a3168d..000000000 --- a/Assets/Scripts/Configs/Cache/ConfigContext.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace NBF -{ - public interface IConfigContext - { - // 定义非泛型接口 - } - - public class ConfigContext : IConfigContext where T : ConfigBase - { - private static List _cacheList = new List(); - - #region Cache - - public void Association(List list) - { - if (list != null) - { - _cacheList = list; - } - } - - #endregion - - public int Count() - { - return _cacheList.Count; - } - - public int Count(Func predicate) - { - return _cacheList.Count(predicate); - } - - public T Get(int key) - { - return First(key); - } - - public T Fist() - { - return _cacheList.First(); - } - - public T Last() - { - return _cacheList.Last(); - } - - public T Fist(Predicate match) - { - return Get(match); - } - - public T Last(Predicate match) - { - return _cacheList.FindLast(match); - } - - public T Get(Predicate match) - { - return _cacheList.Find(match); - } - - public T GetRandom() - { - Random random = new Random(); - // 随机从列表中取一个对象 - return _cacheList[random.Next(_cacheList.Count)]; - } - - public List GetList() - { - return _cacheList; - } - - public List GetList(Predicate match) - { - return _cacheList.FindAll(match); - } - - private T First(int key) - { - return _cacheList.Find(t => t.id == key); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Cache/ConfigContext.cs.meta b/Assets/Scripts/Configs/Cache/ConfigContext.cs.meta deleted file mode 100644 index d6f758d4c..000000000 --- a/Assets/Scripts/Configs/Cache/ConfigContext.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 82dbb868b2724a85aa866e0bf9e88e91 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Cache/Configs.cs b/Assets/Scripts/Configs/Cache/Configs.cs deleted file mode 100644 index c4610a020..000000000 --- a/Assets/Scripts/Configs/Cache/Configs.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace NBF -{ - public static class Configs - { - private static readonly Dictionary _dictionary = new Dictionary(); - - static Configs() - { - } - - public static ConfigContext Table() where T : ConfigBase - { - var type = typeof(T); - if (_dictionary.TryGetValue(type, out var context)) - { - return context as ConfigContext; - } - - var jsonContext = new ConfigContext(); - _dictionary[type] = jsonContext; - return jsonContext; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Cache/Configs.cs.meta b/Assets/Scripts/Configs/Cache/Configs.cs.meta deleted file mode 100644 index 161d50cb5..000000000 --- a/Assets/Scripts/Configs/Cache/Configs.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 1881c9eee25240ddbaecbf99546a8750 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Cache/TableNameAttribute.cs b/Assets/Scripts/Configs/Cache/TableNameAttribute.cs deleted file mode 100644 index 9a9676b9a..000000000 --- a/Assets/Scripts/Configs/Cache/TableNameAttribute.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; - -namespace NBF -{ - [AttributeUsage(AttributeTargets.Class)] - public class TableNameAttribute : Attribute - { - public string Name; - public string Key; - - public TableNameAttribute(string name, string key = "id") - { - Name = name; - Key = key; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Cache/TableNameAttribute.cs.meta b/Assets/Scripts/Configs/Cache/TableNameAttribute.cs.meta deleted file mode 100644 index 05932f62f..000000000 --- a/Assets/Scripts/Configs/Cache/TableNameAttribute.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 737030131eba4fd6ba6067b47fcae5d3 -timeCreated: 1744862554 \ No newline at end of file diff --git a/Assets/Scripts/Configs/ConfigAssets.Parse.cs b/Assets/Scripts/Configs/ConfigAssets.Parse.cs deleted file mode 100644 index 39efaff89..000000000 --- a/Assets/Scripts/Configs/ConfigAssets.Parse.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using NBC; -using Newtonsoft.Json.Linq; -using UnityEngine; - -namespace NBF -{ - public partial class ConfigAssets - { - private static readonly Type CustomType = typeof(ICustomParse); - - private static List ParseLine(JToken[] arr, TableNameAttribute tableNameAttribute) where T : ConfigBase - { - List list = new List(); - var type = typeof(T); - foreach (var jToken in arr) - { - T instance = null; - try - { - if (CustomType.IsAssignableFrom(type)) //自定义解析 - { - instance = Activator.CreateInstance(); - } - else - { - instance = jToken.ToObject(); - } - } - catch (Exception e) - { - Log.Error(e); - } - - if (instance != null) - { - var key = jToken[tableNameAttribute.Key].ToInt(); - if (key < 1) - { - if (instance.id > 0) - { - key = instance.id; - } - } - - try - { - if (key < 1) continue; - if (instance is ICustomParse customParse) - { - customParse.Parse(jToken); - } - - instance.id = key; - list.Add(instance); - } - catch (Exception e) - { - Log.Error(e); - } - } - } - - return list; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/ConfigAssets.Parse.cs.meta b/Assets/Scripts/Configs/ConfigAssets.Parse.cs.meta deleted file mode 100644 index 221b4caad..000000000 --- a/Assets/Scripts/Configs/ConfigAssets.Parse.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 09494bd809bd47b29be0723c8671afb8 -timeCreated: 1744898106 \ No newline at end of file diff --git a/Assets/Scripts/Configs/ConfigAssets.cs b/Assets/Scripts/Configs/ConfigAssets.cs deleted file mode 100644 index e78d4afef..000000000 --- a/Assets/Scripts/Configs/ConfigAssets.cs +++ /dev/null @@ -1,30 +0,0 @@ -using UnityEngine; - -namespace NBF -{ - public partial class ConfigAssets : ScriptableObject - { - // public static string SavePath => $"Assets/ResRaw/Config/ConfigAssets.asset"; - public static string SavePath => $"Assets/Resources/Config/ConfigAssets.asset"; - private static ConfigAssets _inst; - - public static ConfigAssets Instance => _inst; - - public static void Init() - { - var asset = Resources.Load("config/ConfigAssets"); - if (asset != null) - { - asset.AssociationContexts(); - _inst = asset; - } - - // var assetProvider = NBC.Asset.Assets.LoadAsset(SavePath); - // if (assetProvider != null && assetProvider.Asset is ConfigAssets asset) - // { - // asset.AssociationContexts(); - // _inst = asset; - // } - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/ConfigAssets.cs.meta b/Assets/Scripts/Configs/ConfigAssets.cs.meta deleted file mode 100644 index a3398331b..000000000 --- a/Assets/Scripts/Configs/ConfigAssets.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 3d8691ef03f74aedb6cfd67e53cf664f -timeCreated: 1742999693 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Editor.meta b/Assets/Scripts/Configs/Editor.meta deleted file mode 100644 index 7d23eff71..000000000 --- a/Assets/Scripts/Configs/Editor.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 2178333fb882410eb05c0f66a95c8880 -timeCreated: 1742998269 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Editor/CfgEditorUtil.cs b/Assets/Scripts/Configs/Editor/CfgEditorUtil.cs deleted file mode 100644 index e7f116f82..000000000 --- a/Assets/Scripts/Configs/Editor/CfgEditorUtil.cs +++ /dev/null @@ -1,197 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using UnityEditor; -using UnityEngine; - -namespace NBF -{ - public static class CfgEditorUtil - { - [MenuItem("构建/配置表/生成脚本")] - public static void CreateScriptableObject() - { - EditorUtils.GetOrCreateAsset(ConfigAssets.SavePath); - GenConfigScripts(); - AssetDatabase.Refresh(); - } - - [MenuItem("构建/配置表/导表")] - public static void BuildExcel() - { - // ExcelToJsonWindow.GenConfig(false); - AssetDatabase.Refresh(); - } - - [MenuItem("构建/配置表/导多语言")] - public static void BuildLanguage() - { - // ExcelToJsonWindow.GenLanguage(); - AssetDatabase.Refresh(); - } - - #region 生成脚本 - - private static string GenPath = "Scripts/Configs/Gen"; - private static string TempPath = "Scripts/Configs/Editor/ConfigWarpTemplate"; - - public static void GenConfigScripts() - { - if (!Directory.Exists($"{Application.dataPath}/{GenPath}")) - { - return; - } - - var types = Reflection.GetAllNonAbstractDerivedTypes(); - Dictionary tableNameAttributes = new Dictionary(); - foreach (var type in types) - { - tableNameAttributes[type] = type.Name; - } - - // var canGen = CanGen(tableNameAttributes); - // - // if (!canGen) return; - GenParse(tableNameAttributes); - GenWarp(tableNameAttributes); - // GenBinder(tableNameAttributes); - AssetDatabase.Refresh(); - } - - private static bool CanGen(Dictionary tableNameAttributes) - { - // return true; - string filePath = Path.Combine(Application.dataPath, $"{GenPath}/Warps"); - if (!Directory.Exists(filePath)) return true; - var files = Directory.GetFiles(filePath); - List allFileName = new List(); - foreach (var file in files) - { - if (Path.GetExtension(file).ToLower() == ".meta") continue; - var fileName = Path.GetFileNameWithoutExtension(file); - allFileName.Add(fileName.Replace("Warp", "")); - } - - if (allFileName.Count != tableNameAttributes.Count) return true; - - foreach (var type in tableNameAttributes.Keys) - { - if (!allFileName.Contains(type.Name)) return true; - } - - return false; - } - - - private static void GenWarp(Dictionary tableNameAttributes) - { - // 为何使用生成式,不使用static静态泛型 ? 生成式扩展更强且不会破坏原类的集成结构,父类也不用是泛型类 - //否则比如 BaseConfig 类型来使用。集成结构会受很大限制,反而没有生成式来的灵活 - - string filePath = Path.Combine(Application.dataPath, TempPath); - if (File.Exists(filePath)) - { - // 读取文本内容 - string fileContent = File.ReadAllText(filePath); - var rootPath = $"{Application.dataPath}/{GenPath}/Warps"; - if (!Directory.Exists(rootPath)) - { - return; - } - - if (!Directory.Exists(rootPath)) - { - Directory.CreateDirectory(rootPath); - } - - foreach (var type in tableNameAttributes.Keys) - { - var content = fileContent.Replace("##NAME##", type.Name); - File.WriteAllText($"{rootPath}/{type.Name}Warp.cs", content); - } - } - else - { - Debug.LogError("生成代码模板不存在,请检查"); - } - } - - private static void GenParse(Dictionary tableNameAttributes) - { - if (!Directory.Exists($"{Application.dataPath}/{GenPath}")) - { - return; - } - - CodeWriter codeWriter = new CodeWriter(); - codeWriter.Writeln("/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/"); - codeWriter.Writeln(); - codeWriter.Writeln("using System;"); - codeWriter.Writeln("using System.Collections.Generic;"); - codeWriter.Writeln("using System.Reflection;"); - codeWriter.Writeln("using Newtonsoft.Json.Linq;"); - codeWriter.Writeln("using UnityEngine;"); - - codeWriter.Writeln(); - codeWriter.Writeln("namespace NBF"); - - codeWriter.StartBlock(); - - codeWriter.Writeln("public partial class ConfigAssets"); - codeWriter.StartBlock(); - - foreach (var type in tableNameAttributes.Keys) - { - // codeWriter.Writeln($"[HideInInspector] public List<{type.Name}> {type.Name}Arr;"); - codeWriter.Writeln($"public List<{type.Name}> {type.Name}Arr;"); - } - - codeWriter.Writeln(); - - codeWriter.Writeln("public void Parse(JToken[] arr, Type type)"); - codeWriter.StartBlock(); - codeWriter.Writeln("var tableNameAttribute = type.GetCustomAttribute();"); - codeWriter.Writeln("if (tableNameAttribute == null) return;"); - - foreach (var type in tableNameAttributes.Keys) - { - codeWriter.Writeln($"if (type == typeof({type.Name}))"); - codeWriter.StartBlock(); - codeWriter.Writeln($"{type.Name}Arr = ParseLine<{type.Name}>(arr, tableNameAttribute);"); - codeWriter.EndBlock(); - codeWriter.Writeln(); - } - - codeWriter.EndBlock(); - - codeWriter.Writeln(); - codeWriter.Writeln("public void AssociationContexts()"); - codeWriter.StartBlock(); - - foreach (var type in tableNameAttributes.Keys) - { - codeWriter.Writeln($"new ConfigContext<{type.Name}>().Association({type.Name}Arr);"); - } - - codeWriter.EndBlock(); - - - codeWriter.EndBlock(); - codeWriter.EndBlock(); - - codeWriter.Save($"{Application.dataPath}/{GenPath}/ConfigAssets.Gen.cs"); - } - - - private static void WriterCreateParse(CodeWriter codeWriter, Type type) - { - codeWriter.Writeln($"if (type == typeof({type.Name}))"); - codeWriter.StartBlock(); - codeWriter.Writeln($"return CreateParseTableTask<{type.Name}>();"); - codeWriter.EndBlock(); - codeWriter.Writeln(); - } - - #endregion - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Editor/CfgEditorUtil.cs.meta b/Assets/Scripts/Configs/Editor/CfgEditorUtil.cs.meta deleted file mode 100644 index 7c99811e6..000000000 --- a/Assets/Scripts/Configs/Editor/CfgEditorUtil.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 5bc0ac74b225496da64195b28ce14cb2 -timeCreated: 1742998279 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Editor/CodeWriter.cs b/Assets/Scripts/Configs/Editor/CodeWriter.cs deleted file mode 100644 index c7b2365de..000000000 --- a/Assets/Scripts/Configs/Editor/CodeWriter.cs +++ /dev/null @@ -1,105 +0,0 @@ -using System; -using System.IO; -using System.Text; - -namespace NBF -{ - public interface ICodeWriterConfig - { - string BlockStart { get; set; } - string BlockEnd { get; set; } - bool BlockFromNewLine { get; set; } - bool UsingTabs { get; set; } - string EndOfLine { get; set; } - } - - public class DefCSharpCodeWriterConfig : ICodeWriterConfig - { - public string BlockStart { get; set; } = "{"; - public string BlockEnd { get; set; } = "}"; - public bool BlockFromNewLine { get; set; } - public bool UsingTabs { get; set; } = true; - public string EndOfLine { get; set; } - } - - public class CodeWriter - { - private ICodeWriterConfig _config; - - private StringBuilder _stringBuilder = new StringBuilder(); - - private int _nowTabCount; - - public CodeWriter() - { - Init(); - } - - public CodeWriter(ICodeWriterConfig config) - { - Init(config); - } - - public void Write(string content) - { - _stringBuilder.Append(content); - } - - public void Writeln() - { - _stringBuilder.Append(Environment.NewLine); - } - - public void Writeln(string str) - { - _stringBuilder.Append(GetLinePrefix()); - _stringBuilder.Append(str); - _stringBuilder.Append(Environment.NewLine); - } - - public void StartBlock() - { - Writeln(_config.BlockStart); - _nowTabCount++; - } - - public void EndBlock() - { - _nowTabCount--; - Writeln(_config.BlockEnd); - } - - public void Save(string path) - { - var dirPath = Path.GetDirectoryName(path); - if (dirPath != null && !Directory.Exists(dirPath)) - { - Directory.CreateDirectory(dirPath); - } - - var content = _stringBuilder.ToString(); - File.WriteAllText(path, content); - } - - #region 内部方法 - - private void Init(ICodeWriterConfig config = null) - { - _config = config ?? new DefCSharpCodeWriterConfig(); - } - - private string GetLinePrefix() - { - string ret = string.Empty; - if (!_config.UsingTabs) return ret; - for (var i = 0; i < _nowTabCount; i++) - { - ret += "\t"; - } - - return ret; - } - - #endregion - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Editor/CodeWriter.cs.meta b/Assets/Scripts/Configs/Editor/CodeWriter.cs.meta deleted file mode 100644 index d0d64bd8b..000000000 --- a/Assets/Scripts/Configs/Editor/CodeWriter.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: cf1ac73cd67e4bdc9de1a53a13f5b841 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Editor/ConfigWarpTemplate b/Assets/Scripts/Configs/Editor/ConfigWarpTemplate deleted file mode 100644 index 51681f4f0..000000000 --- a/Assets/Scripts/Configs/Editor/ConfigWarpTemplate +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class ##NAME## - { - private static ConfigContext<##NAME##> _context; - - private static ConfigContext<##NAME##> Context => _context ??= Configs.Table<##NAME##>(); - - public static ##NAME## Get(int key) - { - return Context.Get(key); - } - - public static ##NAME## Get(Predicate<##NAME##> match) - { - return Context.Get(match); - } - - public static ##NAME## Fist() - { - return Context.Fist(); - } - - public static ##NAME## Last() - { - return Context.Last(); - } - - public static ##NAME## Fist(Predicate<##NAME##> match) - { - return Context.Fist(match); - } - - public static ##NAME## Last(Predicate<##NAME##> match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func<##NAME##, bool> predicate) - { - return Context.Count(predicate); - } - - - public static List<##NAME##> GetList() - { - return Context.GetList(); - } - - public static List<##NAME##> GetList(Predicate<##NAME##> match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Editor/ConfigWarpTemplate.meta b/Assets/Scripts/Configs/Editor/ConfigWarpTemplate.meta deleted file mode 100644 index fc3837842..000000000 --- a/Assets/Scripts/Configs/Editor/ConfigWarpTemplate.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 4b77eee728204f26bc602016c4a20c86 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Configs/Extemds.meta b/Assets/Scripts/Configs/Extemds.meta deleted file mode 100644 index d674680a6..000000000 --- a/Assets/Scripts/Configs/Extemds.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: b8a50bb33d07439e9c7762e17bced2e0 -timeCreated: 1744862665 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Extemds/JTokenExtends.cs b/Assets/Scripts/Configs/Extemds/JTokenExtends.cs deleted file mode 100644 index e0b24a635..000000000 --- a/Assets/Scripts/Configs/Extemds/JTokenExtends.cs +++ /dev/null @@ -1,138 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Newtonsoft.Json.Linq; -using UnityEngine; - -namespace NBF -{ - public static class JTokenExtends - { - public static Vector2 ToVector2(this string str, string sp = ",") - { - Vector2 vector2 = Vector2.zero; - var arr = str.Split(sp); - if (arr.Length > 0) - { - float.TryParse(arr[0], out vector2.x); - if (arr.Length > 1) - { - float.TryParse(arr[1], out vector2.y); - } - } - - return vector2; - } - - public static Vector3 ToVector3(this string str, string sp = ",") - { - Vector3 vector2 = Vector3.zero; - var arr = str.Split(sp); - if (arr.Length > 0) - { - float.TryParse(arr[0], out vector2.x); - if (arr.Length > 1) - { - float.TryParse(arr[1], out vector2.y); - } - - if (arr.Length > 2) - { - float.TryParse(arr[2], out vector2.z); - } - } - - return vector2; - } - - public static T[] ToArr(this JToken token, string split = ",") where T : IConvertible - { - if (token is JArray array) - { - return array.ToObject(); - } - - if (token != null) - { - var str = token.ToString(); - if (string.IsNullOrWhiteSpace(str)) return Array.Empty(); - - var arr = str.Split(split); - try - { - return arr.Select(a => (T)Convert.ChangeType(a, typeof(T))).ToArray(); - } - catch (Exception e) - { - Console.WriteLine(e); - throw; - } - } - - return Array.Empty(); - } - - public static int ToInt(this JToken token) - { - if (token == null) - { - return 0; - } - - try - { - return (int)token; - } - catch (Exception e) - { - return 0; - } - } - - public static float ToFloat(this JToken token) - { - if (token == null) - { - return 0; - } - - try - { - return (float)token; - } - catch (Exception e) - { - return 0; - } - } - - public static string ToStr(this JToken token) - { - if (token != null) - { - return token.ToString(); - } - - return string.Empty; - } - - public static List ToList(this JToken token, string split = ",") where T : IConvertible - { - if (token is JArray array) - { - return array.ToObject>(); - } - - if (token != null) - { - var str = token.ToString(); - if (string.IsNullOrWhiteSpace(str)) return new List(); - var arr = str.Split(split); - return arr.Select( - a => string.IsNullOrWhiteSpace(a) ? default : (T)Convert.ChangeType(a, typeof(T))).ToList(); - } - - return new List(); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Extemds/JTokenExtends.cs.meta b/Assets/Scripts/Configs/Extemds/JTokenExtends.cs.meta deleted file mode 100644 index 89797cceb..000000000 --- a/Assets/Scripts/Configs/Extemds/JTokenExtends.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 3d6ce3cc850f41b8ba83653660b928ce -timeCreated: 1744862670 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen.meta b/Assets/Scripts/Configs/Gen.meta deleted file mode 100644 index 0dc52f34e..000000000 --- a/Assets/Scripts/Configs/Gen.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 0eceaba126fb407583191d01e32bb735 -timeCreated: 1756050728 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/ConfigAssets.Gen.cs b/Assets/Scripts/Configs/Gen/ConfigAssets.Gen.cs deleted file mode 100644 index 63afd189c..000000000 --- a/Assets/Scripts/Configs/Gen/ConfigAssets.Gen.cs +++ /dev/null @@ -1,122 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ - -using System; -using System.Collections.Generic; -using System.Reflection; -using Newtonsoft.Json.Linq; -using UnityEngine; - -namespace NBF -{ - public partial class ConfigAssets - { - public List BaitConfigArr; - public List BobberConfigArr; - public List FeederConfigArr; - public List FishAcceptConfigArr; - public List FishConfigArr; - public List HookConfigArr; - public List LeadersConfigArr; - public List LineConfigArr; - public List LureConfigArr; - public List ReelConfigArr; - public List RingConfigArr; - public List RodConfigArr; - public List UnitConfigArr; - public List WeightConfigArr; - - public void Parse(JToken[] arr, Type type) - { - var tableNameAttribute = type.GetCustomAttribute(); - if (tableNameAttribute == null) return; - if (type == typeof(BaitConfig)) - { - BaitConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(BobberConfig)) - { - BobberConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(FeederConfig)) - { - FeederConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(FishAcceptConfig)) - { - FishAcceptConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(FishConfig)) - { - FishConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(HookConfig)) - { - HookConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(LeadersConfig)) - { - LeadersConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(LineConfig)) - { - LineConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(LureConfig)) - { - LureConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(ReelConfig)) - { - ReelConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(RingConfig)) - { - RingConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(RodConfig)) - { - RodConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(UnitConfig)) - { - UnitConfigArr = ParseLine(arr, tableNameAttribute); - } - - if (type == typeof(WeightConfig)) - { - WeightConfigArr = ParseLine(arr, tableNameAttribute); - } - - } - - public void AssociationContexts() - { - new ConfigContext().Association(BaitConfigArr); - new ConfigContext().Association(BobberConfigArr); - new ConfigContext().Association(FeederConfigArr); - new ConfigContext().Association(FishAcceptConfigArr); - new ConfigContext().Association(FishConfigArr); - new ConfigContext().Association(HookConfigArr); - new ConfigContext().Association(LeadersConfigArr); - new ConfigContext().Association(LineConfigArr); - new ConfigContext().Association(LureConfigArr); - new ConfigContext().Association(ReelConfigArr); - new ConfigContext().Association(RingConfigArr); - new ConfigContext().Association(RodConfigArr); - new ConfigContext().Association(UnitConfigArr); - new ConfigContext().Association(WeightConfigArr); - } - } -} diff --git a/Assets/Scripts/Configs/Gen/ConfigAssets.Gen.cs.meta b/Assets/Scripts/Configs/Gen/ConfigAssets.Gen.cs.meta deleted file mode 100644 index ed730e0fd..000000000 --- a/Assets/Scripts/Configs/Gen/ConfigAssets.Gen.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: bd9bbc8f86e64a928533f493e39813ed \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps.meta b/Assets/Scripts/Configs/Gen/Warps.meta deleted file mode 100644 index 15944082b..000000000 --- a/Assets/Scripts/Configs/Gen/Warps.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 98e70a75b52b4728aec1e5b7f506695c -timeCreated: 1756050753 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/BaitConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/BaitConfigWarp.cs deleted file mode 100644 index 78fbf6fbf..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/BaitConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class BaitConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static BaitConfig Get(int key) - { - return Context.Get(key); - } - - public static BaitConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static BaitConfig Fist() - { - return Context.Fist(); - } - - public static BaitConfig Last() - { - return Context.Last(); - } - - public static BaitConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static BaitConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/BaitConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/BaitConfigWarp.cs.meta deleted file mode 100644 index 62c32df08..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/BaitConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5c6bdb0bae4da2a4da6aacaf58a1abc0 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/BobberConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/BobberConfigWarp.cs deleted file mode 100644 index b6d3fac39..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/BobberConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class BobberConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static BobberConfig Get(int key) - { - return Context.Get(key); - } - - public static BobberConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static BobberConfig Fist() - { - return Context.Fist(); - } - - public static BobberConfig Last() - { - return Context.Last(); - } - - public static BobberConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static BobberConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/BobberConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/BobberConfigWarp.cs.meta deleted file mode 100644 index 53cac01ed..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/BobberConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 99b64c24f2bad454086ac41dd6aa7ffc \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/FeederConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/FeederConfigWarp.cs deleted file mode 100644 index bb2f54b52..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/FeederConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class FeederConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static FeederConfig Get(int key) - { - return Context.Get(key); - } - - public static FeederConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static FeederConfig Fist() - { - return Context.Fist(); - } - - public static FeederConfig Last() - { - return Context.Last(); - } - - public static FeederConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static FeederConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/FeederConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/FeederConfigWarp.cs.meta deleted file mode 100644 index 8bd74b4f9..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/FeederConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: dc082eda2a5880148843ce9c21ed4eed \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/FishAcceptConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/FishAcceptConfigWarp.cs deleted file mode 100644 index b8081592e..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/FishAcceptConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class FishAcceptConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static FishAcceptConfig Get(int key) - { - return Context.Get(key); - } - - public static FishAcceptConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static FishAcceptConfig Fist() - { - return Context.Fist(); - } - - public static FishAcceptConfig Last() - { - return Context.Last(); - } - - public static FishAcceptConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static FishAcceptConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/FishAcceptConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/FishAcceptConfigWarp.cs.meta deleted file mode 100644 index e06497024..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/FishAcceptConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 23d45122e487d8f439bf063a4df7a4b7 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/FishConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/FishConfigWarp.cs deleted file mode 100644 index 6ea97f0fc..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/FishConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class FishConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static FishConfig Get(int key) - { - return Context.Get(key); - } - - public static FishConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static FishConfig Fist() - { - return Context.Fist(); - } - - public static FishConfig Last() - { - return Context.Last(); - } - - public static FishConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static FishConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/FishConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/FishConfigWarp.cs.meta deleted file mode 100644 index 81486f4f3..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/FishConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: d60d97e94b1432c4e985a5469fd01409 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/HookConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/HookConfigWarp.cs deleted file mode 100644 index c03d22af3..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/HookConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class HookConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static HookConfig Get(int key) - { - return Context.Get(key); - } - - public static HookConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static HookConfig Fist() - { - return Context.Fist(); - } - - public static HookConfig Last() - { - return Context.Last(); - } - - public static HookConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static HookConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/HookConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/HookConfigWarp.cs.meta deleted file mode 100644 index a48eb7900..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/HookConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: fc38b93ab46f1bd4a83f81f1cd3b3e4c \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/LeadersConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/LeadersConfigWarp.cs deleted file mode 100644 index ad4c8a8af..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/LeadersConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class LeadersConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static LeadersConfig Get(int key) - { - return Context.Get(key); - } - - public static LeadersConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static LeadersConfig Fist() - { - return Context.Fist(); - } - - public static LeadersConfig Last() - { - return Context.Last(); - } - - public static LeadersConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static LeadersConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/LeadersConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/LeadersConfigWarp.cs.meta deleted file mode 100644 index f11b68d93..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/LeadersConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 7911fb1cf4470014eadb4d9db5db5861 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/LineConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/LineConfigWarp.cs deleted file mode 100644 index 7ae22d3ab..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/LineConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class LineConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static LineConfig Get(int key) - { - return Context.Get(key); - } - - public static LineConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static LineConfig Fist() - { - return Context.Fist(); - } - - public static LineConfig Last() - { - return Context.Last(); - } - - public static LineConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static LineConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/LineConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/LineConfigWarp.cs.meta deleted file mode 100644 index 48a663dea..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/LineConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 1acb019fe35da324cb5a26e45c54532d \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/LureConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/LureConfigWarp.cs deleted file mode 100644 index e26f0145e..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/LureConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class LureConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static LureConfig Get(int key) - { - return Context.Get(key); - } - - public static LureConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static LureConfig Fist() - { - return Context.Fist(); - } - - public static LureConfig Last() - { - return Context.Last(); - } - - public static LureConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static LureConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/LureConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/LureConfigWarp.cs.meta deleted file mode 100644 index 33df3e2ef..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/LureConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 74aae733a506d0840a1a7cc2623ed5fd \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/ReelConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/ReelConfigWarp.cs deleted file mode 100644 index e7cb60301..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/ReelConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class ReelConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static ReelConfig Get(int key) - { - return Context.Get(key); - } - - public static ReelConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static ReelConfig Fist() - { - return Context.Fist(); - } - - public static ReelConfig Last() - { - return Context.Last(); - } - - public static ReelConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static ReelConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/ReelConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/ReelConfigWarp.cs.meta deleted file mode 100644 index 30120eb5a..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/ReelConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 6bfa9f163eb97be418e04f1f62c607de \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/RingConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/RingConfigWarp.cs deleted file mode 100644 index 209da8dfb..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/RingConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class RingConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static RingConfig Get(int key) - { - return Context.Get(key); - } - - public static RingConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static RingConfig Fist() - { - return Context.Fist(); - } - - public static RingConfig Last() - { - return Context.Last(); - } - - public static RingConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static RingConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/RingConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/RingConfigWarp.cs.meta deleted file mode 100644 index 8a778e233..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/RingConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: a52a98969f4fae44ba19533cb1ae552e \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/RodConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/RodConfigWarp.cs deleted file mode 100644 index 280781968..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/RodConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class RodConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static RodConfig Get(int key) - { - return Context.Get(key); - } - - public static RodConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static RodConfig Fist() - { - return Context.Fist(); - } - - public static RodConfig Last() - { - return Context.Last(); - } - - public static RodConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static RodConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/RodConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/RodConfigWarp.cs.meta deleted file mode 100644 index 33ef28386..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/RodConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 81f057dddf36a734ead19cd98e19a2e0 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/UnitConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/UnitConfigWarp.cs deleted file mode 100644 index 0398f08b0..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/UnitConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class UnitConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static UnitConfig Get(int key) - { - return Context.Get(key); - } - - public static UnitConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static UnitConfig Fist() - { - return Context.Fist(); - } - - public static UnitConfig Last() - { - return Context.Last(); - } - - public static UnitConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static UnitConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/UnitConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/UnitConfigWarp.cs.meta deleted file mode 100644 index a260fdbd8..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/UnitConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 69acf2fddccdd7b4fae3ad883cbc50ec \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/WeightConfigWarp.cs b/Assets/Scripts/Configs/Gen/Warps/WeightConfigWarp.cs deleted file mode 100644 index 7018eed48..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/WeightConfigWarp.cs +++ /dev/null @@ -1,65 +0,0 @@ -/**本脚本为自动生成,每次生成会覆盖!请勿手动修改**/ -using System; -using System.Collections.Generic; - -namespace NBF -{ - [Serializable] - public partial class WeightConfig - { - private static ConfigContext _context; - - private static ConfigContext Context => _context ??= Configs.Table(); - - public static WeightConfig Get(int key) - { - return Context.Get(key); - } - - public static WeightConfig Get(Predicate match) - { - return Context.Get(match); - } - - public static WeightConfig Fist() - { - return Context.Fist(); - } - - public static WeightConfig Last() - { - return Context.Last(); - } - - public static WeightConfig Fist(Predicate match) - { - return Context.Fist(match); - } - - public static WeightConfig Last(Predicate match) - { - return Context.Last(match); - } - - public static int Count() - { - return Context.Count(); - } - - public static int Count(Func predicate) - { - return Context.Count(predicate); - } - - - public static List GetList() - { - return Context.GetList(); - } - - public static List GetList(Predicate match) - { - return Context.GetList(match); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Gen/Warps/WeightConfigWarp.cs.meta b/Assets/Scripts/Configs/Gen/Warps/WeightConfigWarp.cs.meta deleted file mode 100644 index a14f49de5..000000000 --- a/Assets/Scripts/Configs/Gen/Warps/WeightConfigWarp.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 43244884876723947bd6574d57b2349c \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem.meta b/Assets/Scripts/Configs/Mem.meta deleted file mode 100644 index 23fea0283..000000000 --- a/Assets/Scripts/Configs/Mem.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 9fbbf78150ef486581fecb379fc3b1cd -timeCreated: 1742998650 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/BaitConfig.cs b/Assets/Scripts/Configs/Mem/BaitConfig.cs deleted file mode 100644 index 36e636948..000000000 --- a/Assets/Scripts/Configs/Mem/BaitConfig.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System; -using System.Linq; -using UnityEngine; - -namespace NBF -{ - [TableName("gameBaits")] - public partial class BaitConfig : ConfigGearBase - { - public enum Type - { - Natural = 0, - Spinning = 1 - } - - - public Type type; - - public FishSpecies[] acceptFish; - - public Vector2 weightFishAccept = new Vector2(0f, 3f); - - - public float weight = 10f; - - public float lenght; - - public int amount = 1; - - - public int Level = 1; - - private Vector2 startedbaitValues; - - - public virtual bool CheckIsFishAccept(FishSpecies fishSpecies, float fishWeight = 0f) - { - var fish = FishConfig.Get(t => t.speciesName == fishSpecies); - if (fish == null) return false; - if (fish.type == FishConfig.Type.Predator && type == Type.Spinning) - { - Vector2 vector = weightFishAccept; - Debug.Log("Startowa wartosc przynety:" + vector.ToString()); - vector = startedbaitValues; - Debug.Log("Kolejna wartosc przynety 1:" + vector.ToString()); - Vector2 vector2 = new Vector2(0f, 0f); - if (startedbaitValues == vector2) - { - if (weightFishAccept.x > 0.01f && weightFishAccept.x <= 2.5f) - { - weightFishAccept.x = 0.01f; - } - else if (weightFishAccept.x > 2.5f && weightFishAccept.x <= 9.2f) - { - weightFishAccept.x = 2.5f; - } - else if (weightFishAccept.x > 9.2f && weightFishAccept.x <= 20f) - { - weightFishAccept.x = 8f; - } - else if (weightFishAccept.x > 20f && weightFishAccept.x <= 50f) - { - weightFishAccept.x = 14f; - } - else if (weightFishAccept.x > 50f && weightFishAccept.x <= 700f) - { - weightFishAccept.x = 22f; - } - else if (weightFishAccept.x > 700f) - { - weightFishAccept.x = 150f; - } - - if (weightFishAccept.y > 0.1f && weightFishAccept.y <= 3f) - { - weightFishAccept.y = 3f; - } - else if (weightFishAccept.y > 3f && weightFishAccept.y <= 9f) - { - weightFishAccept.y = 12f; - } - else if (weightFishAccept.y > 9f && weightFishAccept.y <= 24f) - { - weightFishAccept.y = 60f; - } - else if (weightFishAccept.y > 24f && weightFishAccept.y <= 50f) - { - weightFishAccept.y = 120f; - } - else if (weightFishAccept.y > 50f && weightFishAccept.y <= 105f) - { - weightFishAccept.y = 350f; - } - else if (weightFishAccept.y > 105f && weightFishAccept.y <= 170f) - { - weightFishAccept.y = 650f; - } - else if (weightFishAccept.y > 170f && weightFishAccept.y <= 500f) - { - weightFishAccept.y = 900f; - } - else if (weightFishAccept.y > 500f) - { - weightFishAccept.y = 1800f; - } - - startedbaitValues = weightFishAccept; - vector = startedbaitValues; - Debug.Log("Kolejna wartosc przynety: 2" + vector.ToString()); - } - - if (fishWeight >= weightFishAccept.x && fishWeight <= weightFishAccept.y) - { - vector = weightFishAccept; - Debug.Log("Fish accept lure: " + vector.ToString() + " weight:" + fishWeight); - return true; - } - } - else if (fish.type == FishConfig.Type.WhiteFish && type == Type.Natural) - { - if (acceptFish.Contains(fishSpecies)) - { - Debug.Log("Fish accept bait weight:" + fishWeight); - return true; - } - } - else if (fish.type == FishConfig.Type.Predator && type == Type.Natural && - acceptFish.Contains(fishSpecies)) - { - Debug.Log("Fish accept bait predator weight:" + fishWeight); - return true; - } - - return false; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/BaitConfig.cs.meta b/Assets/Scripts/Configs/Mem/BaitConfig.cs.meta deleted file mode 100644 index 320c10ff7..000000000 --- a/Assets/Scripts/Configs/Mem/BaitConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 29ac65179e8d469d96caa04ce15021d6 -timeCreated: 1742999023 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/BobberConfig.cs b/Assets/Scripts/Configs/Mem/BobberConfig.cs deleted file mode 100644 index 0457d38b6..000000000 --- a/Assets/Scripts/Configs/Mem/BobberConfig.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using UnityEngine; - -namespace NBF -{ - [TableName("gameFloats")] - public partial class BobberConfig : ConfigGearBase - { - public enum Type - { - Slider = 0, - Waggler = 1, - PoleFloats = 2, - Sport = 3, - Ball = 4, - Sinker = 5 - } - - - public Type type; - - public float weight = 10f; - - public float displacement = 10f; - - public bool isNightLight; - - public int Level = 1; - - public int amount = 1; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/BobberConfig.cs.meta b/Assets/Scripts/Configs/Mem/BobberConfig.cs.meta deleted file mode 100644 index af742927d..000000000 --- a/Assets/Scripts/Configs/Mem/BobberConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 6297ba097dac45eb8f14f55dc5ad7d7b -timeCreated: 1742999241 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/CameraCfg.cs b/Assets/Scripts/Configs/Mem/CameraCfg.cs deleted file mode 100644 index f09a3ae5b..000000000 --- a/Assets/Scripts/Configs/Mem/CameraCfg.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using UnityEngine; - -namespace NBF -{ - public enum CameraUpdateMode - { - Smooth, - Immediate, - } - - public enum CameraMode - { - Third, - Free, - } - - [Serializable] - public class CameraCfg - { - public CameraMode Mode; - public CameraUpdateMode UpdateMode; - - public float SmoothTime; - - public float NearClipPlane = 1; - public float FarClipPlane = 500; - - public Vector3 Near; - public Vector3 Far; - public float BestRatio = 0.5f; - - public Vector3 Distance - { - get { return this.Far - this.Near; } - } - - public Vector3 Best - { - get - { - switch (Mode) - { - case CameraMode.Third: - return this.Near + (this.Far - this.Near) * this.BestRatio; - default: - return Quaternion.Euler(this.PitchBest, 0, 0) * - (Vector3.back * (this.Near + (this.Far - this.Near) * this.BestRatio).magnitude); - } - } - } - - public float Yaw; - public bool YawAtThird; - - public float PitchBest; - public float PitchMin; - public float PitchMax; - } - - [CreateAssetMenu(menuName = "ET/CreateCameraConfig", fileName = "CameraCfg", order = 1)] - public class CameraScriptObject : ScriptableObject - { - public float ScaleTime = 6; - public CameraCfg ThirdCfg; - public CameraCfg FreeCfg; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/CameraCfg.cs.meta b/Assets/Scripts/Configs/Mem/CameraCfg.cs.meta deleted file mode 100644 index 317f73ee2..000000000 --- a/Assets/Scripts/Configs/Mem/CameraCfg.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 5f43c20e40ae42239e4381c12ad7cc00 -timeCreated: 1756823027 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/ConfigBase.cs b/Assets/Scripts/Configs/Mem/ConfigBase.cs deleted file mode 100644 index 88acd92e0..000000000 --- a/Assets/Scripts/Configs/Mem/ConfigBase.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using Newtonsoft.Json.Linq; -using UnityEngine; -using Object = UnityEngine.Object; - -namespace NBF -{ - public interface IConfigJsonParse - { - void Parse(JToken row); - } - - public interface ICustomParse - { - void Parse(JToken row); - } - - [Serializable] - public abstract class ConfigBase - { - public int id; - } - - public abstract class ConfigGearBase : ConfigBase - { - public string modelPath = "Models/Rods/"; - - protected virtual string ModelRoot => "gfx/"; - - /// - /// 所属的组 - /// - public int group; - - public GameObject GetModelPrefab() - { - return Resources.Load(ModelRoot + modelPath) as GameObject; - } - - public GameObject Instantiate(Transform parent) - { - return Object.Instantiate(GetModelPrefab(), Vector3.zero, Quaternion.identity, parent); - } - - public GameObject Instantiate(Transform parent, Vector3 position, - Quaternion rotation) - { - return Object.Instantiate(GetModelPrefab(), position, rotation, parent); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/ConfigBase.cs.meta b/Assets/Scripts/Configs/Mem/ConfigBase.cs.meta deleted file mode 100644 index c41648f0c..000000000 --- a/Assets/Scripts/Configs/Mem/ConfigBase.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: bfb754c68ea2417685d3e29804c996fa -timeCreated: 1742998658 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/FeederConfig.cs b/Assets/Scripts/Configs/Mem/FeederConfig.cs deleted file mode 100644 index ca386fad3..000000000 --- a/Assets/Scripts/Configs/Mem/FeederConfig.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using UnityEngine; - -namespace NBF -{ - [TableName("gameFeeders")] - public partial class FeederConfig : ConfigGearBase - { - public enum Type - { - Feeder = 0 - } - - public Type type; - - public float weight = 10f; - - public float capacity = 10f; - - public int Level = 1; - - public int amount = 1; - - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/FeederConfig.cs.meta b/Assets/Scripts/Configs/Mem/FeederConfig.cs.meta deleted file mode 100644 index fb7067d21..000000000 --- a/Assets/Scripts/Configs/Mem/FeederConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 4a3acf5935cc49be8a1e655250ea28e9 -timeCreated: 1742999291 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/FishAcceptConfig.cs b/Assets/Scripts/Configs/Mem/FishAcceptConfig.cs deleted file mode 100644 index 9b26f1d60..000000000 --- a/Assets/Scripts/Configs/Mem/FishAcceptConfig.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace NBF -{ - [TableName("gameFishAccepts")] - public partial class FishAcceptConfig : ConfigBase - { - public int bait; - - public float min; - - public float max; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/FishAcceptConfig.cs.meta b/Assets/Scripts/Configs/Mem/FishAcceptConfig.cs.meta deleted file mode 100644 index f6ec8cb3e..000000000 --- a/Assets/Scripts/Configs/Mem/FishAcceptConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 315e92a457a44e67a23cc79710bebdb6 -timeCreated: 1744862496 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/FishConfig.cs b/Assets/Scripts/Configs/Mem/FishConfig.cs deleted file mode 100644 index 56470fffc..000000000 --- a/Assets/Scripts/Configs/Mem/FishConfig.cs +++ /dev/null @@ -1,134 +0,0 @@ -using System; -using System.Collections.Generic; -using Unity.VisualScripting; -using UnityEngine; - -namespace NBF -{ - [Serializable] - public class AcceptFishBait - { - public string baitName; - - public int baitId; - - public float min; - - public float max; - } - - [TableName("gameFish")] - public partial class FishConfig : ConfigBase - { - public static FishConfig Get(FishSpecies fishSpecies) - { - return Get(t => t.speciesName == fishSpecies); - } - - public enum Type - { - WhiteFish = 0, - Predator = 1 - } - - public FishSpecies speciesName; - - public bool isEnabled = true; - - public Type type = Type.Predator; - - public float maxWeight = 10f; - - public float speciesCoins = 4f; - - public int rankingPoint = 1; - - public string[] modelPath; - - public string[] imagePath; - - public string[] modelTrophyPath; - - public Vector2[] weightLenghtValues; - - public AnimationCurve weightLengthCurve; - - public List acceptFishBaits; - - public List acceptFishLures; - - public Sprite GetIconImage(int index) - { - return Resources.Load("Icons/Fish/" + imagePath[index]); - } - - public float ConvertWeightFishToLength(float weight) - { - // return FishWeightToLength.Instance.ConvertWeightFishToLength(speciesName, weight); - return 1; - } - - public void SetupCurvesWeight() - { - weightLengthCurve.keys = null; - for (int i = 0; i < weightLenghtValues.Length; i++) - { - weightLengthCurve.AddKey(weightLenghtValues[i].x, weightLenghtValues[i].y); - } - } - - public Vector3 GetFishScale(float weight) - { - // if (!FishWeightToLength.Instance) - // { - // return Vector3.one; - // } - // - // var p = FishWeightToLength.Instance.ConvertWeightFishToLength(speciesName, weight); - // float num = FishWeightToLength.Instance.ConvertWeightFishToLength(speciesName, weight) * 0.0185f; - // return Vector3.one * num; - return Vector3.one; - } - - public GameObject GetModelPrefab(string _modelPath) - { - return Resources.Load("GameItemsPrefabs/Fish/" + _modelPath) as GameObject; - } - - public GameObject GetTrophyModelPrefab(float weight) - { - if (weight > maxWeight) - { - weight = maxWeight; - } - - float num = maxWeight / (float)modelTrophyPath.Length; - int num2 = (int)(weight / num); - if (num2 >= modelTrophyPath.Length) - { - num2 = modelTrophyPath.Length - 1; - } - - return Resources.Load("GameItemsPrefabs/Fish Trophies/" + modelTrophyPath[num2]) as GameObject; - } - - public GameObject GetFishModel(float weight) - { - if (weight > maxWeight) - { - weight = maxWeight; - } - - float num = maxWeight / (float)modelPath.Length; - int num2 = (int)(weight / num); - if (num2 >= modelPath.Length) - { - num2 = modelPath.Length - 1; - } - - return GetModelPrefab(modelPath[num2]); - } - - - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/FishConfig.cs.meta b/Assets/Scripts/Configs/Mem/FishConfig.cs.meta deleted file mode 100644 index 74a9d502f..000000000 --- a/Assets/Scripts/Configs/Mem/FishConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 036e4898008747fda0a473707565667b -timeCreated: 1742999445 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/HookConfig.cs b/Assets/Scripts/Configs/Mem/HookConfig.cs deleted file mode 100644 index 1c340ab28..000000000 --- a/Assets/Scripts/Configs/Mem/HookConfig.cs +++ /dev/null @@ -1,167 +0,0 @@ -using System; -using UnityEngine; - -namespace NBF -{ - [TableName("gameHooks")] - public partial class HookConfig : ConfigGearBase - { - public enum Type - { - Aberdeen = 0, - Bait = 1, - Circle = 2, - Treble = 3, - Octopus = 4, - Carp = 5, - LiveBait = 6, - WideGap = 7 - } - - public enum Zadzior - { - None = 0, - Barbless = 1 - } - - public enum Size - { - _16 = 0, - _14 = 1, - _12 = 2, - _10 = 3, - _9 = 4, - _8 = 5, - _7 = 6, - _6 = 7, - _5 = 8, - _4 = 9, - _3 = 10, - _2 = 11, - _1 = 12, - _1x0 = 13, - _2x0 = 14, - _3x0 = 15, - _4x0 = 16, - _5x0 = 17, - _6x0 = 18, - _7x0 = 19, - _8x0 = 20, - _9x0 = 21, - _10x0 = 22, - _11x0 = 23, - _12x0 = 24, - _13x0 = 25, - _14x0 = 26 - } - - public string color = "Nickel"; - - public Type type; - - public Zadzior zadzior; - - public Size size; - - public int amount = 1; - - public int Level = 1; - - - public string GetSizetext() - { - return size.ToString().Replace("_", "#").Replace("x", "/"); - } - - public Vector2 GetFishAcceptWeightBySize() - { - Vector2 result = Vector2.zero; - switch (size) - { - case Size._16: - result = new Vector2(0f, 3.5f); - break; - case Size._14: - result = new Vector2(0.4f, 5.3f); - break; - case Size._12: - result = new Vector2(0.5f, 7.4f); - break; - case Size._10: - result = new Vector2(0.7f, 10.3f); - break; - case Size._9: - result = new Vector2(1f, 14.4f); - break; - case Size._8: - result = new Vector2(1.4f, 20.2f); - break; - case Size._7: - result = new Vector2(1.6f, 26.2f); - break; - case Size._6: - result = new Vector2(1.8f, 31.5f); - break; - case Size._5: - result = new Vector2(2.2f, 34.6f); - break; - case Size._4: - result = new Vector2(2.4f, 45f); - break; - case Size._3: - result = new Vector2(3.1f, 58.5f); - break; - case Size._2: - result = new Vector2(4.1f, 81.9f); - break; - case Size._1: - result = new Vector2(5.7f, 114.6f); - break; - case Size._1x0: - result = new Vector2(9.2f, 160.5f); - break; - case Size._2x0: - result = new Vector2(12.8f, 216.7f); - break; - case Size._3x0: - result = new Vector2(17.3f, 292.5f); - break; - case Size._4x0: - result = new Vector2(23.4f, 394.9f); - break; - case Size._5x0: - result = new Vector2(31.6f, 533.1f); - break; - case Size._6x0: - result = new Vector2(42.6f, 693f); - break; - case Size._7x0: - result = new Vector2(55.4f, 935f); - break; - case Size._8x0: - result = new Vector2(74.8f, 1122f); - break; - case Size._9x0: - result = new Vector2(89f, 1342f); - break; - case Size._10x0: - result = new Vector2(107f, 1616f); - break; - case Size._11x0: - result = new Vector2(129f, 1940f); - break; - case Size._12x0: - result = new Vector2(155f, 2328f); - break; - case Size._13x0: - result = new Vector2(186f, 2793f); - break; - case Size._14x0: - result = new Vector2(223f, 3352f); - break; - } - - return result; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/HookConfig.cs.meta b/Assets/Scripts/Configs/Mem/HookConfig.cs.meta deleted file mode 100644 index b67ac5c11..000000000 --- a/Assets/Scripts/Configs/Mem/HookConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 163f314510a24a43b7f86e22854cde3b -timeCreated: 1742999185 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/LeadersConfig.cs b/Assets/Scripts/Configs/Mem/LeadersConfig.cs deleted file mode 100644 index 6123c5244..000000000 --- a/Assets/Scripts/Configs/Mem/LeadersConfig.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using UnityEngine; - -namespace NBF -{ - [TableName("gameLeaders")] - public partial class LeadersConfig : ConfigGearBase - { - public enum Type - { - Mono = 0, - Wire = 1, - Steel = 2, - Titanium = 3 - } - - public Type type; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/LeadersConfig.cs.meta b/Assets/Scripts/Configs/Mem/LeadersConfig.cs.meta deleted file mode 100644 index 196a20750..000000000 --- a/Assets/Scripts/Configs/Mem/LeadersConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 4a5ae0258ce84be1b6b2c2cb6a9921f9 -timeCreated: 1742998962 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/LineConfig.cs b/Assets/Scripts/Configs/Mem/LineConfig.cs deleted file mode 100644 index 747a5b153..000000000 --- a/Assets/Scripts/Configs/Mem/LineConfig.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using UnityEngine; - -namespace NBF -{ - [TableName("gameLines")] - public partial class LineConfig : ConfigGearBase - { - protected override string ModelRoot => "GameItemsPrefabs/"; - - public enum Type - { - Mono = 0, - Braid = 1, - Fluro = 2 - } - - public Type type; - - public int length = 125; - - public float strength = 1f; - - public float size = 0.12f; - - public int Level = 1; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/LineConfig.cs.meta b/Assets/Scripts/Configs/Mem/LineConfig.cs.meta deleted file mode 100644 index dbda52553..000000000 --- a/Assets/Scripts/Configs/Mem/LineConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 8f09d37212e24ee2bb9f0b99ca69df42 -timeCreated: 1742998906 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/LureConfig.cs b/Assets/Scripts/Configs/Mem/LureConfig.cs deleted file mode 100644 index 9a2b891da..000000000 --- a/Assets/Scripts/Configs/Mem/LureConfig.cs +++ /dev/null @@ -1,123 +0,0 @@ -using UnityEngine; - -namespace NBF -{ - [TableName("gameLures")] - public partial class LureConfig : ConfigGearBase - { - public enum Type - { - Natural = 0, - Spinning = 1 - } - - - public Type type; - - public FishSpecies[] acceptFish; - - public Vector2 weightFishAccept = new Vector2(0f, 3f); - - public float weight = 10f; - - public float lenght; - - public int amount = 1; - - public int Level = 1; - - /// - /// 配的鱼钩 - /// - public int[] hook; - - private Vector2 startedbaitValues; - - private Vector2 _startedbaitValues; - - public bool CheckIsFishAccept(FishSpecies fishSpecies, float fishWeight = 0) - { - if (FishConfig.Get(fishSpecies).type == FishConfig.Type.Predator) - { - Vector2 vector = weightFishAccept; - Debug.Log("诱饵的初始值:" + vector.ToString()); - vector = _startedbaitValues; - Debug.Log("下一个诱饵值 1:" + vector.ToString()); - Vector2 vector2 = new Vector2(0f, 0f); - if (_startedbaitValues == vector2) - { - if (weightFishAccept.x > 0.01f && weightFishAccept.x <= 2.5f) - { - weightFishAccept.x = 0.01f; - } - else if (weightFishAccept.x > 2.5f && weightFishAccept.x <= 9.2f) - { - weightFishAccept.x = 2.5f; - } - else if (weightFishAccept.x > 9.2f && weightFishAccept.x <= 20f) - { - weightFishAccept.x = 8f; - } - else if (weightFishAccept.x > 20f && weightFishAccept.x <= 50f) - { - weightFishAccept.x = 14f; - } - else if (weightFishAccept.x > 50f && weightFishAccept.x <= 700f) - { - weightFishAccept.x = 22f; - } - else if (weightFishAccept.x > 700f) - { - weightFishAccept.x = 150f; - } - - if (weightFishAccept.y > 0.1f && weightFishAccept.y <= 3f) - { - weightFishAccept.y = 3f; - } - else if (weightFishAccept.y > 3f && weightFishAccept.y <= 9f) - { - weightFishAccept.y = 12f; - } - else if (weightFishAccept.y > 9f && weightFishAccept.y <= 24f) - { - weightFishAccept.y = 60f; - } - else if (weightFishAccept.y > 24f && weightFishAccept.y <= 50f) - { - weightFishAccept.y = 120f; - } - else if (weightFishAccept.y > 50f && weightFishAccept.y <= 105f) - { - weightFishAccept.y = 350f; - } - else if (weightFishAccept.y > 105f && weightFishAccept.y <= 170f) - { - weightFishAccept.y = 650f; - } - else if (weightFishAccept.y > 170f && weightFishAccept.y <= 500f) - { - weightFishAccept.y = 900f; - } - else if (weightFishAccept.y > 500f) - { - weightFishAccept.y = 1800f; - } - - _startedbaitValues = weightFishAccept; - vector = _startedbaitValues; - Debug.Log("另一个有价值的诱饵: 2" + vector.ToString()); - } - - if (fishWeight >= weightFishAccept.x && fishWeight <= weightFishAccept.y) - { - vector = weightFishAccept; - Debug.Log("Fish accept lure: " + vector.ToString() + " weight:" + fishWeight); - return true; - } - } - - return false; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/LureConfig.cs.meta b/Assets/Scripts/Configs/Mem/LureConfig.cs.meta deleted file mode 100644 index 2ce12e541..000000000 --- a/Assets/Scripts/Configs/Mem/LureConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 184995816e1944d2afc02384ef109693 -timeCreated: 1744898827 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/ReelConfig.cs b/Assets/Scripts/Configs/Mem/ReelConfig.cs deleted file mode 100644 index dab4e3b4e..000000000 --- a/Assets/Scripts/Configs/Mem/ReelConfig.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using UnityEngine; - -namespace NBF -{ - [TableName("gameReels")] - public partial class ReelConfig : ConfigGearBase - { - // protected override string ModelRoot => "GameItemsPrefabs/"; - - public enum Type - { - Universal = 0, - Spinning = 1, - Casting = 2, - Feeder = 3 - } - - - public Type type; - - public float strength = 1f; - - public Vector2 gearRatio; - - public int size = 2000; - - public int Level = 1; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/ReelConfig.cs.meta b/Assets/Scripts/Configs/Mem/ReelConfig.cs.meta deleted file mode 100644 index 4f2cc54bc..000000000 --- a/Assets/Scripts/Configs/Mem/ReelConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 13045659d27f4ee89aab30efb1740215 -timeCreated: 1742998847 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/RingConfig.cs b/Assets/Scripts/Configs/Mem/RingConfig.cs deleted file mode 100644 index f29cdfdb0..000000000 --- a/Assets/Scripts/Configs/Mem/RingConfig.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace NBF -{ - [TableName("gameRings")] - public partial class RingConfig : ConfigGearBase - { - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/RingConfig.cs.meta b/Assets/Scripts/Configs/Mem/RingConfig.cs.meta deleted file mode 100644 index 6d96a2839..000000000 --- a/Assets/Scripts/Configs/Mem/RingConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 15f2ba6ac6404e9390d9cc2604f2016c -timeCreated: 1744861381 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/RodConfig.cs b/Assets/Scripts/Configs/Mem/RodConfig.cs deleted file mode 100644 index 15e8976cb..000000000 --- a/Assets/Scripts/Configs/Mem/RodConfig.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using UnityEngine; - -namespace NBF -{ - [TableName("gameRods")] - public partial class RodConfig : ConfigGearBase - { - - public enum Type - { - Universal = 0, - Tele = 1, - SpinningFloat = 2, - Spinning = 3, - } - - public enum Action - { - Slow = 0, - Medium = 1, - Fast = 2 - } - - - public Type type; - - public string length; - - public string weight; - - public float strength = 2f; - - public int maxRange = 15; - - /// - /// 使用的圈id - /// - public int ring; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/RodConfig.cs.meta b/Assets/Scripts/Configs/Mem/RodConfig.cs.meta deleted file mode 100644 index 7a1790a48..000000000 --- a/Assets/Scripts/Configs/Mem/RodConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 01b7a315690b4a2d8f82aec56a3a3971 -timeCreated: 1742998702 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/UnitConfig.cs b/Assets/Scripts/Configs/Mem/UnitConfig.cs deleted file mode 100644 index 7a39846f7..000000000 --- a/Assets/Scripts/Configs/Mem/UnitConfig.cs +++ /dev/null @@ -1,31 +0,0 @@ -namespace NBF -{ - [TableName("gameUnit")] - public partial class UnitConfig : ConfigBase - { - public UnitType Type; - } - - public enum UnitType : byte - { - /// - /// 玩家 - /// - Player = 1, - - /// - /// 鱼 - /// - Fish = 2, - - /// - /// 船 - /// - Boat = 3, - - /// - /// 车 - /// - Car = 4, - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/UnitConfig.cs.meta b/Assets/Scripts/Configs/Mem/UnitConfig.cs.meta deleted file mode 100644 index daa9722a3..000000000 --- a/Assets/Scripts/Configs/Mem/UnitConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 956ed7b067744c369fcff9a8baef77ee -timeCreated: 1756049614 \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/WeightConfig.cs b/Assets/Scripts/Configs/Mem/WeightConfig.cs deleted file mode 100644 index 8d769f975..000000000 --- a/Assets/Scripts/Configs/Mem/WeightConfig.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using UnityEngine; - -namespace NBF -{ - [TableName("gameWeights")] - public partial class WeightConfig : ConfigGearBase - { - protected override string ModelRoot => "GameItemsPrefabs/"; - - public enum Type - { - Ball = 0, - Teardrop = 1, - Olive = 2 - } - - public Type type; - - public float weight = 0.1f; - - public int Level = 1; - - public int amount = 1; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Configs/Mem/WeightConfig.cs.meta b/Assets/Scripts/Configs/Mem/WeightConfig.cs.meta deleted file mode 100644 index 113ec42c7..000000000 --- a/Assets/Scripts/Configs/Mem/WeightConfig.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 6bfe88a3b2474031aa65c995baebf6f6 -timeCreated: 1742999355 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test.meta b/Assets/Scripts/Generate/Config.meta similarity index 77% rename from Assets/Scripts/Generate/Test.meta rename to Assets/Scripts/Generate/Config.meta index 756c07270..ceec2258d 100644 --- a/Assets/Scripts/Generate/Test.meta +++ b/Assets/Scripts/Generate/Config.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 797250a29ac28db458a11e40145a9e6c +guid: 13431063251342f40a7e27cd403bf79b folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/Generate/Test/BaitConfig.cs b/Assets/Scripts/Generate/Config/BaitConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/BaitConfig.cs rename to Assets/Scripts/Generate/Config/BaitConfig.cs index e5c681acb..612b61cc7 100644 --- a/Assets/Scripts/Generate/Test/BaitConfig.cs +++ b/Assets/Scripts/Generate/Config/BaitConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class BaitConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/BaitConfig.cs.meta b/Assets/Scripts/Generate/Config/BaitConfig.cs.meta new file mode 100644 index 000000000..a3c7f4976 --- /dev/null +++ b/Assets/Scripts/Generate/Config/BaitConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 606b570b0b5860049a7c04db0184bf73 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/BobberConfig.cs b/Assets/Scripts/Generate/Config/BobberConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/BobberConfig.cs rename to Assets/Scripts/Generate/Config/BobberConfig.cs index 4db4bb1a8..b26f33a49 100644 --- a/Assets/Scripts/Generate/Test/BobberConfig.cs +++ b/Assets/Scripts/Generate/Config/BobberConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class BobberConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/BobberConfig.cs.meta b/Assets/Scripts/Generate/Config/BobberConfig.cs.meta new file mode 100644 index 000000000..62b9b8fa2 --- /dev/null +++ b/Assets/Scripts/Generate/Config/BobberConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ed66bec4f9191494db6d22d54034c86d \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/FeederConfig.cs b/Assets/Scripts/Generate/Config/FeederConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/FeederConfig.cs rename to Assets/Scripts/Generate/Config/FeederConfig.cs index 897498881..dfc491e21 100644 --- a/Assets/Scripts/Generate/Test/FeederConfig.cs +++ b/Assets/Scripts/Generate/Config/FeederConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class FeederConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/FeederConfig.cs.meta b/Assets/Scripts/Generate/Config/FeederConfig.cs.meta new file mode 100644 index 000000000..5497f14f3 --- /dev/null +++ b/Assets/Scripts/Generate/Config/FeederConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3f5cf9ae363b3bc46adb0ff67f428f25 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/FishConfig.cs b/Assets/Scripts/Generate/Config/FishConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/FishConfig.cs rename to Assets/Scripts/Generate/Config/FishConfig.cs index a213df6d1..a221dfd04 100644 --- a/Assets/Scripts/Generate/Test/FishConfig.cs +++ b/Assets/Scripts/Generate/Config/FishConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class FishConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/FishConfig.cs.meta b/Assets/Scripts/Generate/Config/FishConfig.cs.meta new file mode 100644 index 000000000..778cf69d5 --- /dev/null +++ b/Assets/Scripts/Generate/Config/FishConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: eba786f9f11680b4e949810278d7212f \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/HookConfig.cs b/Assets/Scripts/Generate/Config/HookConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/HookConfig.cs rename to Assets/Scripts/Generate/Config/HookConfig.cs index 7e27914be..e523a7021 100644 --- a/Assets/Scripts/Generate/Test/HookConfig.cs +++ b/Assets/Scripts/Generate/Config/HookConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class HookConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/HookConfig.cs.meta b/Assets/Scripts/Generate/Config/HookConfig.cs.meta new file mode 100644 index 000000000..e78be69d2 --- /dev/null +++ b/Assets/Scripts/Generate/Config/HookConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 641a11a91af45d74ea51fae44648611d \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/LineConfig.cs b/Assets/Scripts/Generate/Config/LineConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/LineConfig.cs rename to Assets/Scripts/Generate/Config/LineConfig.cs index 600506467..5a13c7ea7 100644 --- a/Assets/Scripts/Generate/Test/LineConfig.cs +++ b/Assets/Scripts/Generate/Config/LineConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class LineConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/LineConfig.cs.meta b/Assets/Scripts/Generate/Config/LineConfig.cs.meta new file mode 100644 index 000000000..ddb9e5fca --- /dev/null +++ b/Assets/Scripts/Generate/Config/LineConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2418acc87651b9548a804668c2e28306 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/LureConfig.cs b/Assets/Scripts/Generate/Config/LureConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/LureConfig.cs rename to Assets/Scripts/Generate/Config/LureConfig.cs index 72fa04639..e9feda92f 100644 --- a/Assets/Scripts/Generate/Test/LureConfig.cs +++ b/Assets/Scripts/Generate/Config/LureConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class LureConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/LureConfig.cs.meta b/Assets/Scripts/Generate/Config/LureConfig.cs.meta new file mode 100644 index 000000000..87b496cfb --- /dev/null +++ b/Assets/Scripts/Generate/Config/LureConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ef6c35038bac3ae49aced8e616a8424b \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/ReelConfig.cs b/Assets/Scripts/Generate/Config/ReelConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/ReelConfig.cs rename to Assets/Scripts/Generate/Config/ReelConfig.cs index 80b15118b..fa3a2a793 100644 --- a/Assets/Scripts/Generate/Test/ReelConfig.cs +++ b/Assets/Scripts/Generate/Config/ReelConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class ReelConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/ReelConfig.cs.meta b/Assets/Scripts/Generate/Config/ReelConfig.cs.meta new file mode 100644 index 000000000..91c72ee49 --- /dev/null +++ b/Assets/Scripts/Generate/Config/ReelConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d4057494001ca644d806866b82e454b5 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/RingConfig.cs b/Assets/Scripts/Generate/Config/RingConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/RingConfig.cs rename to Assets/Scripts/Generate/Config/RingConfig.cs index 373d6c844..1dd9dbc84 100644 --- a/Assets/Scripts/Generate/Test/RingConfig.cs +++ b/Assets/Scripts/Generate/Config/RingConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class RingConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/RingConfig.cs.meta b/Assets/Scripts/Generate/Config/RingConfig.cs.meta new file mode 100644 index 000000000..ffe9f2b46 --- /dev/null +++ b/Assets/Scripts/Generate/Config/RingConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d5ab2b592498a8e4ebdd9d25d1cd28eb \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/RodConfig.cs b/Assets/Scripts/Generate/Config/RodConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/RodConfig.cs rename to Assets/Scripts/Generate/Config/RodConfig.cs index 2d49a275b..acadcef48 100644 --- a/Assets/Scripts/Generate/Test/RodConfig.cs +++ b/Assets/Scripts/Generate/Config/RodConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class RodConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/RodConfig.cs.meta b/Assets/Scripts/Generate/Config/RodConfig.cs.meta new file mode 100644 index 000000000..d54d3a5f2 --- /dev/null +++ b/Assets/Scripts/Generate/Config/RodConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 176c5f1cc129a584386c5e3d31fdbe83 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/Unit2Config.cs b/Assets/Scripts/Generate/Config/Unit2Config.cs similarity index 99% rename from Assets/Scripts/Generate/Test/Unit2Config.cs rename to Assets/Scripts/Generate/Config/Unit2Config.cs index 8f2671705..5e39bc1a7 100644 --- a/Assets/Scripts/Generate/Test/Unit2Config.cs +++ b/Assets/Scripts/Generate/Config/Unit2Config.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class Unit2ConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/Unit2Config.cs.meta b/Assets/Scripts/Generate/Config/Unit2Config.cs.meta new file mode 100644 index 000000000..9e471ae4c --- /dev/null +++ b/Assets/Scripts/Generate/Config/Unit2Config.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f21c201a46908db49ba01e47739e1d6c \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/UnitConfig.cs b/Assets/Scripts/Generate/Config/UnitConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/UnitConfig.cs rename to Assets/Scripts/Generate/Config/UnitConfig.cs index b051d8fe9..ce42a9f12 100644 --- a/Assets/Scripts/Generate/Test/UnitConfig.cs +++ b/Assets/Scripts/Generate/Config/UnitConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class UnitConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/UnitConfig.cs.meta b/Assets/Scripts/Generate/Config/UnitConfig.cs.meta new file mode 100644 index 000000000..e883ae588 --- /dev/null +++ b/Assets/Scripts/Generate/Config/UnitConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d73eec65a1c15e04b87183f785900ae7 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/WeightConfig.cs b/Assets/Scripts/Generate/Config/WeightConfig.cs similarity index 99% rename from Assets/Scripts/Generate/Test/WeightConfig.cs rename to Assets/Scripts/Generate/Config/WeightConfig.cs index ea8a29cdc..993973951 100644 --- a/Assets/Scripts/Generate/Test/WeightConfig.cs +++ b/Assets/Scripts/Generate/Config/WeightConfig.cs @@ -20,7 +20,7 @@ using NBC.Serialize; #pragma warning disable CS8625 #pragma warning disable CS8603 -namespace Fantasy +namespace NBF { [ProtoContract] public sealed partial class WeightConfigData : ASerialize, IConfigTable, IProto diff --git a/Assets/Scripts/Generate/Config/WeightConfig.cs.meta b/Assets/Scripts/Generate/Config/WeightConfig.cs.meta new file mode 100644 index 000000000..4bb1e8f53 --- /dev/null +++ b/Assets/Scripts/Generate/Config/WeightConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6d0aa663b8919bf41a0bf3a7ce42170d \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/BaitConfig.cs.meta b/Assets/Scripts/Generate/Test/BaitConfig.cs.meta deleted file mode 100644 index 30315b183..000000000 --- a/Assets/Scripts/Generate/Test/BaitConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 6362bd09bd57c6647b87ac7abcde3a6c \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/BobberConfig.cs.meta b/Assets/Scripts/Generate/Test/BobberConfig.cs.meta deleted file mode 100644 index f6d7b246f..000000000 --- a/Assets/Scripts/Generate/Test/BobberConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 4c4ce5c38c2619a4f95a1bd26089cca7 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/FeederConfig.cs.meta b/Assets/Scripts/Generate/Test/FeederConfig.cs.meta deleted file mode 100644 index 90b228a26..000000000 --- a/Assets/Scripts/Generate/Test/FeederConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: da3d806c80cc74148a23c2af19ecbe4d \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/FishConfig.cs.meta b/Assets/Scripts/Generate/Test/FishConfig.cs.meta deleted file mode 100644 index fc444043a..000000000 --- a/Assets/Scripts/Generate/Test/FishConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 38a9a1b4cfa8ab24c8bb141ae7cba986 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/HookConfig.cs.meta b/Assets/Scripts/Generate/Test/HookConfig.cs.meta deleted file mode 100644 index 69396363d..000000000 --- a/Assets/Scripts/Generate/Test/HookConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5a6178b7c5ee4ca45b28631c50966e28 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/LineConfig.cs.meta b/Assets/Scripts/Generate/Test/LineConfig.cs.meta deleted file mode 100644 index 020df054b..000000000 --- a/Assets/Scripts/Generate/Test/LineConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: dd32cd6701963b84988ab6c9168f0568 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/LureConfig.cs.meta b/Assets/Scripts/Generate/Test/LureConfig.cs.meta deleted file mode 100644 index e4cbc6b53..000000000 --- a/Assets/Scripts/Generate/Test/LureConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: a3789e74296554d43b1ea6274f978384 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/ReelConfig.cs.meta b/Assets/Scripts/Generate/Test/ReelConfig.cs.meta deleted file mode 100644 index 6748cdd63..000000000 --- a/Assets/Scripts/Generate/Test/ReelConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 937f0fc7328e76f4a8f3137d0cf2bf3c \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/RingConfig.cs.meta b/Assets/Scripts/Generate/Test/RingConfig.cs.meta deleted file mode 100644 index b1ae506c2..000000000 --- a/Assets/Scripts/Generate/Test/RingConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 011d34ec27d1f7740b439af74c883be5 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/RodConfig.cs.meta b/Assets/Scripts/Generate/Test/RodConfig.cs.meta deleted file mode 100644 index 2c6f5ca12..000000000 --- a/Assets/Scripts/Generate/Test/RodConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 50e00e7722e5f804b9151354058842cc \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/Unit2Config.cs.meta b/Assets/Scripts/Generate/Test/Unit2Config.cs.meta deleted file mode 100644 index e2e3be243..000000000 --- a/Assets/Scripts/Generate/Test/Unit2Config.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 0750f0970e8c3aa49bd98757da8cbe39 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/UnitConfig.cs.meta b/Assets/Scripts/Generate/Test/UnitConfig.cs.meta deleted file mode 100644 index 7bf08ead5..000000000 --- a/Assets/Scripts/Generate/Test/UnitConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: c4fcd00be96ef734682179e668d43ff5 \ No newline at end of file diff --git a/Assets/Scripts/Generate/Test/WeightConfig.cs.meta b/Assets/Scripts/Generate/Test/WeightConfig.cs.meta deleted file mode 100644 index 7702578f4..000000000 --- a/Assets/Scripts/Generate/Test/WeightConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 190543eb94e16a24ba18b202c8f66cd3 \ No newline at end of file diff --git a/Assets/Scripts/Init.cs b/Assets/Scripts/Init.cs index 80bec7549..4ec236387 100644 --- a/Assets/Scripts/Init.cs +++ b/Assets/Scripts/Init.cs @@ -111,6 +111,8 @@ namespace NBF private void LoadData() { + var jsonAsset = Resources.Load("config/configs"); + ConfigTableHelper.Initialize(jsonAsset.text); // ConfigAssets.Init(); } diff --git a/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs index 79b499aa3..447872f07 100644 --- a/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using NBC.Serialize; +using Newtonsoft.Json.Linq; namespace NBC { @@ -10,24 +11,47 @@ namespace NBC /// public static class ConfigTableHelper { - private static string _configTableBinaryDirectory; + // private static string _configTableBinaryDirectory; + // private static string _jsonData; + private static readonly object Lock = new object(); + // 配置表数据缓存字典 - private static readonly Dictionary ConfigDic = new (); + private static readonly Dictionary ConfigDic = new(); + + private static readonly Dictionary Tokens = new(); + /// /// 初始化ConfigTableHelper /// - /// - public static void Initialize(string configTableBinaryDirectory) + public static void Initialize(string json) { - _configTableBinaryDirectory = configTableBinaryDirectory; + // _jsonData = json; + var jsonObj = JObject.Parse(json); + foreach (var item in jsonObj) + { + try + { + var name = item.Key; + var value = item.Value; + if (value is JArray jArray) + { + Tokens[name] = jArray; + } + } + catch (Exception e) + { + Log.Error($"读表异常,请检查,name={item.Key} ex={e}"); + } + } } + /// /// 加载配置表数据 /// /// 配置表类型 /// 配置表数据 - public static T Load() where T : ASerialize + public static T Load() where T : ASerialize, new() { lock (Lock) { @@ -39,13 +63,19 @@ namespace NBC { return (T)aProto; } - - var configFile = GetConfigPath(dataConfig); - var bytes = File.ReadAllBytes(configFile); - // Log.Debug($"dataConfig:{dataConfig} {bytes.Length}"); - var data = SerializerManager.GetSerializer(FantasySerializerType.ProtoBuf).Deserialize(bytes); - ConfigDic[dataConfig] = data; - return data; + + var configName = typeof(T).Name; + if (!Tokens.TryGetValue(configName, out var jArray)) + { + // jArray.ToObject>() + // return new T(); + } + + // var configFile = GetConfigPath(dataConfig); + // var bytes = File.ReadAllBytes(configFile); + // var data = SerializerManager.GetSerializer(FantasySerializerType.ProtoBuf).Deserialize(bytes); + // ConfigDic[dataConfig] = data; + return new T(); } catch (Exception ex) { @@ -53,38 +83,5 @@ namespace NBC } } } - - /// - /// 获取配置表文件路径 - /// - /// 配置表名称 - /// 配置表文件路径 - private static string GetConfigPath(string name) - { - var configFile = Path.Combine(_configTableBinaryDirectory, $"{name}.bytes"); - - if (File.Exists(configFile)) - { - return configFile; - } - - throw new FileNotFoundException($"{name}.byte not found: {configFile}"); - } - - /// - /// 重新加载配置表数据 - /// - public static void ReLoadConfigTable() - { - lock (Lock) - { - foreach (var (_, aProto) in ConfigDic) - { - ((IDisposable) aProto).Dispose(); - } - - ConfigDic.Clear(); - } - } } -} +} \ No newline at end of file diff --git a/Config/BaitConfig.xlsx b/Config/BaitConfig.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1f100b90a3fb70bd7afa0bde0cec4331dd2a165c GIT binary patch literal 10010 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 literal 0 HcmV?d00001 diff --git a/Config/BobberConfig.xlsx b/Config/BobberConfig.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7d1cc15e9e302c5d2f8f772b9c4e5cdd459ae5e9 GIT binary patch literal 11779 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 N(E`4!(NxcR{|D$)Ofdie literal 0 HcmV?d00001 diff --git a/Config/FeederConfig.xlsx b/Config/FeederConfig.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c253564fc3464f874a877be9850abb43a517afc4 GIT binary patch literal 9692 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 literal 0 HcmV?d00001 diff --git a/Config/FishConfig.xlsx b/Config/FishConfig.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ae840be99beb215864730e8e9b46758ee5060c0b GIT binary patch literal 11721 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 XB_jd(D*(O$c>|&j9II@U&wBp{MBodp literal 0 HcmV?d00001 diff --git a/Config/LineConfig.xlsx b/Config/LineConfig.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b8dcd5cf1ea6fffb12ccc9fd231c579ab902a914 GIT binary patch literal 11629 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%0A; zrHPvi(QrwhH4_Dki#4)^iZ)C63$6-4SKK7fMRVYEn&{;T=u%?lW`!E*3c5^JHPyn3 z>(T)Z+O-qwFEfL!GVO2nzQEuosmi`Q>9BeOeKaU}cWxd=g#DW8ay*Nivaw}DxrPFH zB+5N$u~_nctO}ZM(+_wYrCyxP@8N)Ol)Z2uh2Icfx(bG(Ehm*j=X9K07H`vosL;o+ zO|XTGHfh$7LDs@u%ti&*c|9tb0O^V=lZ@?1bKS4nJ3k zF%Z5A`bz~I3VNKPQ**Z51tdwh$m80`2S-Vz#bd*N6>JMG>L~aoW-(08J3h;7G;2&| zj!!A`)jg5|ejWP-c&srQ5%CyeVO%?p$BCVzpg3%@Pl7)*zfz6Q#zwU&LKK{)-iw&D zpPN%VIq?BKQ1njlQr*OhgpW6%JmyH^>L^0+nk;wI9vo2-Vjk{PrN+@K)=dfPa_261xu>}dO11KXB|o3vQ>7> z9w$!)CJ%w6Ay>QS;eMHgx%Z!gi=jJ45Td_CsOUfn`1OCMNgY*}b)E(;0a3$iQU|tX zkZy0O(neJv74Ce{###BfSG1!w>hB>si=0UFf~Lu%frMWR6zi zTd+U_A{{`@%VecP65v0pQF*{QSDhGcOSV@ioymclh^vJ6IRj$p_J7nwVL%_!1`cM{ z&yQt1xSX3FLH{j-l3>s`_rGKqpCn5`ElmS}@L8e#0Y0-J6CfTF$O6@Flj=m;C#hH6Z@lXWy!xW8x4Y%AJ@I1CK;h=Y^B zz>$kgP)X@q24r#Fz+{!s@0+@<_VmCWT?OJ$%FLk~p^1qf9qln=IyD1QJOPy1dyf>X zJzX1#ZUV0jq#RBeie3J{_2vHrXRq~~!#)VcuOK+_LBF7y!f&ysbFqJ?xc@>|-m;S! zE$}LENqDd&F+EXPX2V*BbYYs`C%QW^gaLl&yr;h0j?|vyGXVe!0MmRmB(<fqx&o&S&)Q|0)P6C@lVU4WW~EWzz6Dz-hy{b(>pd9HdvfqIZ+29LAmcJElkAK zHHKwO0juR$aLt_{L;WLc5&V6xCKh&~<1rB;w{U0M5}=(I&n7N=*%Ejt*5k$0WY8c@ zXm+ra_Ip2x^>k&a-zM`X;BSGym_xfvTIG*?YaGGD>OufNcjen)p@1Eow}? zn(=ma5iLa6IHS(zaa6kl_>f~+qO;pO1qf9LB@w7psSviS@4RfMhBX{KS|V-zb7>dV zM6zu%`Lw(Pb64m5UT@(gj1oqNMTR+itl67d3FJ75n6oUyxamyJnbLCT+u;V&U}awg zB1(w4BeNX_riI}h_vjym$i5?=P43qAM}{?_?h@(Qu#wNGS4fno-f+4zi0B6%>uV^B zvGyma6ACM9U?xCqZgfODN?fdysAKw{#QA{XH=;YEvldzF8fv+DW~M!&?Z!Ql@9zo} zUS%mq%ZUXOcPJ_+9OEd;ft*?0ojo0<{cca4J+;4a8UH!S=WNC&;otqe`n%e{xQ)+8`<$Wo zM>__z)c@-A-+aC2>d%R0f7IbY1gSsjf6>nV*QB2)RlnQQqzyrpN>CvGUkd+3X$%yk z{)+t12l{-Ac^C z|7-sLbe=t^<_PNi->1j_oc#0i<3Bwn|6T3RY4Y!=bv{q55pY;A81!o81 literal 0 HcmV?d00001 diff --git a/Config/RingConfig.xlsx b/Config/RingConfig.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e457fc523129529f70050c280879edde139d5e14 GIT binary patch literal 9555 zcma)CWk6iXvc}!r9RdUh9tf_%gS$&`26wmM?iPY;2<}dBCwPG1gS!TKLvr`-E_dI3 zuYdHMnfa=^&)28xR9BU}G$a%P*i-u;w1CpP;9y{HA;7@U{t7d&wPkX(w#tkflY(SH>pk*6LbC@<;h@vaW1XPthKZG2rDR$| zHcR$LNbgmunNG z_BL;Rgs@Q^*z35%;;%rQrY@|+hXWx+t9%*6xQ4IOXk~%~tAnN1nFpBYf}#@(zV#*^ ziy0tixI3u%QL^AiqCi{0X`|ebc|xBu*=bJsh&TWU_**n=L?Bd8xdJB%WX+{H>S^51 zp(`6XXJY#}coy+!^MQ*S(7-JuL~BZVjj0+K5q{R1s~t4VQ5z0nHnR2FC{-S*00OPq z8Yldi9Csf#cMq>?SI;Dhoh2=;%kujLk|H}xiLak4;elLnU!)sqlp%C+5Q%qCf7p>W zm;h~gGD>T9LS2G%?hUQ#<)*wh!jDL^`N98A^#%~=Ed`=l7eqDsU#T_%*qc0Y?G>jd z-OY^kbp^UzWWXc2=I1(+^#>(bf5?fjH7$w5I{oxus)d8a^g69_TK=sp2cN6&(s5tg z82sNctE$qAO@w5FVO0bwFJkd+m)b@_?4@9o6=CH8!EhL>&Z+|~2VX*>7EJ1AKoPpe zRVD0U9b`;l84bC}v+|sxY<`tBk=nYOvZ{Q4muU^&7dUJS9|gaKXXE?nFccVq)$(>1 zRjCH7lLbrO-yY{}E}V}CamwVw{5US7WCXHg&0uhcMngT-4b71*KZhD zUq-=E9GjaZ-{-YNQ~*w~2MsaeVzdwzBpwUsIjXryPAtz#w-;2u~ zxb>WuE8*MvIfJtU{f$Em0#3q|f$MpBe`T_@Jpe_pqYdA!nSA7tTzGlDHwL<_=$ z61H1Hwn+BhwnjEWQ=cvQOk9gW$Ay46Gk>9SYIaT)K^Tb4D?E?2pP8--r_qL6Rr@JA z@twQ1@t&u-v&7YXhgk6qLy&!lzGuL-Rc4ayZI>S#z{%D}%sK7jzEw4!obGFB{?)$h zWE-I3vFcc~KK^IF`8FMW& zOG&CsOScTOEN-;VXHON6Mi29YJw4C=Y+)clw7OdTvMv7%K=}=D0oYqQn3h`(0lg$XsS zWTaB;PcHy}V(Jf7zatwhz-;TLN z!~td>E{ex3LJ}O4TR}@8Zd>BanElq6rW=lAG*Gw_fr8|6+LY`wStIgLsypjW7LB}AJO$D)B!PTBZi`wKcTowhWSGWa`0#N>(Qyz+fYO_tT!F5_qQXcrH$fCTPplo8jun`L<`K)2l?-!gn(LX20WoQjIs|VUyf1bTQ)+}HJ~=u&F@1XkVb~z|FOa-uX-H!Is;q;5mzG_5c-;jec5vcbh3e zmT#9%xv)eabPCjfLaK`Ax1lr)$9s*2`N1p{DsEOZswGtXym0uIgIY!hY;lc0=VeuN z3U^eJME|-DMY&!zf`JR8dVhbJQ>*7%@TYw6x)2xhFW#8A`X

%S~HBOY`+;bDg6x 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 literal 0 HcmV?d00001 diff --git a/Config/WeightConfig.xlsx b/Config/WeightConfig.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..13782d911b629748b13bf6da136b4fd92e4bc0a5 GIT binary patch literal 11428 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 literal 0 HcmV?d00001 diff --git a/Config/fish-鱼.xlsx b/Config/fish-鱼.xlsx deleted file mode 100644 index 2345078b3154729bae42da1228f76096c363a7c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34218 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 diff --git a/Config/fishing gear-渔具.xlsx b/Config/fishing gear-渔具.xlsx deleted file mode 100644 index f9ed12d9a2193f0d8fab27fdc34becb80ef4bfc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64587 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 Vi<{mY(&5nI@B-VVXB|-7{|9Kh51{}6 diff --git a/Config/unit - 单位.xlsx b/Config/unit - 单位.xlsx deleted file mode 100644 index d3337655e748816afdb607a7b296d5f90f89d941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34051 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