导表工具修改

This commit is contained in:
2025-10-09 17:56:21 +08:00
parent e60822137f
commit 9ac305feba
45 changed files with 2753 additions and 557 deletions

View File

@@ -82,12 +82,12 @@ namespace NBC
BaseInfo = default;
RoleId = default;
Items.Clear();
ItemBinds.Clear();
Fishs.Clear();
Activities.Clear();
Currency.Clear();
Slots.Clear();
Skills.Clear();
Gears.Clear();
MapId = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<RoleInfo>(this);
@@ -100,17 +100,17 @@ namespace NBC
[ProtoMember(3)]
public List<ItemInfo> Items = new List<ItemInfo>();
[ProtoMember(4)]
public List<FishInfo> Fishs = new List<FishInfo>();
public List<ItemBindInfo> ItemBinds = new List<ItemBindInfo>();
[ProtoMember(5)]
public List<ActivityInfo> Activities = new List<ActivityInfo>();
public List<FishInfo> Fishs = new List<FishInfo>();
[ProtoMember(6)]
public List<KeyValueInt64> Currency = new List<KeyValueInt64>();
public List<ActivityInfo> Activities = new List<ActivityInfo>();
[ProtoMember(7)]
public List<KeyValueInt64> Slots = new List<KeyValueInt64>();
public List<KeyValueInt64> Currency = new List<KeyValueInt64>();
[ProtoMember(8)]
public List<SkillInfo> Skills = new List<SkillInfo>();
public List<KeyValueInt64> Slots = new List<KeyValueInt64>();
[ProtoMember(9)]
public List<GearInfo> Gears = new List<GearInfo>();
public List<SkillInfo> Skills = new List<SkillInfo>();
[ProtoMember(10)]
public int MapId { get; set; }
}
@@ -199,6 +199,29 @@ namespace NBC
public int Count { get; set; }
}
/// <summary>
/// 玩家当前使用钓组信息
/// </summary>
[ProtoContract]
public partial class ItemBindInfo : AMessage, IProto
{
public static ItemBindInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<ItemBindInfo>();
}
public override void Dispose()
{
Item = default;
BindItems.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<ItemBindInfo>(this);
#endif
}
[ProtoMember(1)]
public long Item { get; set; }
[ProtoMember(2)]
public List<long> BindItems = new List<long>();
}
/// <summary>
/// 物品信息
/// </summary>
[ProtoContract]

View File

@@ -9,4 +9,304 @@ using NBC.Serialize;
namespace NBC
{
/// <summary>
/// /////////// ******** 物品信息 *******/////////////
/// </summary>
/// <summary>
/// 请求背包列表
/// </summary>
[ProtoContract]
public partial class C2Game_GetItemsRequest : AMessage, ICustomRouteRequest, IProto
{
public static C2Game_GetItemsRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2Game_GetItemsRequest>();
}
public override void Dispose()
{
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2Game_GetItemsRequest>(this);
#endif
}
[ProtoIgnore]
public Game2C_GetItemsResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2Game_GetItemsRequest; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.GameRoute;
}
/// <summary>
/// 请求背包列表响应
/// </summary>
[ProtoContract]
public partial class Game2C_GetItemsResponse : AMessage, ICustomRouteResponse, IProto
{
public static Game2C_GetItemsResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Game2C_GetItemsResponse>();
}
public override void Dispose()
{
ErrorCode = default;
Items.Clear();
Rigs.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_GetItemsResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Game2C_GetItemsResponse; }
[ProtoMember(1)]
public List<ItemInfo> Items = new List<ItemInfo>();
[ProtoMember(2)]
public List<ItemBindInfo> Rigs = new List<ItemBindInfo>();
[ProtoMember(3)]
public uint ErrorCode { get; set; }
}
/// <summary>
/// 请求使用物品
/// </summary>
[ProtoContract]
public partial class C2Game_UseItemRequest : AMessage, ICustomRouteRequest, IProto
{
public static C2Game_UseItemRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2Game_UseItemRequest>();
}
public override void Dispose()
{
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2Game_UseItemRequest>(this);
#endif
}
[ProtoIgnore]
public Game2C_UseItemResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2Game_UseItemRequest; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.GameRoute;
}
/// <summary>
/// 请求使用物品响应
/// </summary>
[ProtoContract]
public partial class Game2C_UseItemResponse : AMessage, ICustomRouteResponse, IProto
{
public static Game2C_UseItemResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Game2C_UseItemResponse>();
}
public override void Dispose()
{
ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_UseItemResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Game2C_UseItemResponse; }
[ProtoMember(1)]
public uint ErrorCode { get; set; }
}
/// <summary>
/// 物品变化
/// </summary>
[ProtoContract]
public partial class Game2C_ItemChange : AMessage, ICustomRouteMessage, IProto
{
public static Game2C_ItemChange Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Game2C_ItemChange>();
}
public override void Dispose()
{
Type = default;
Items.Clear();
Removes.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_ItemChange>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Game2C_ItemChange; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.GameRoute;
[ProtoMember(1)]
public int Type { get; set; }
[ProtoMember(2)]
public List<ItemInfo> Items = new List<ItemInfo>();
[ProtoMember(3)]
public List<long> Removes = new List<long>();
}
/// <summary>
/// /////////// ******** 鱼护 *******/////////////
/// </summary>
/// <summary>
/// 请求鱼护列表
/// </summary>
[ProtoContract]
public partial class C2Game_GetFishsRequest : AMessage, ICustomRouteRequest, IProto
{
public static C2Game_GetFishsRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2Game_GetFishsRequest>();
}
public override void Dispose()
{
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2Game_GetFishsRequest>(this);
#endif
}
[ProtoIgnore]
public Game2C_GetFishsResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2Game_GetFishsRequest; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.GameRoute;
}
/// <summary>
/// 请求鱼护列表响应
/// </summary>
[ProtoContract]
public partial class Game2C_GetFishsResponse : AMessage, ICustomRouteResponse, IProto
{
public static Game2C_GetFishsResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Game2C_GetFishsResponse>();
}
public override void Dispose()
{
ErrorCode = default;
Fishs.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_GetFishsResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Game2C_GetFishsResponse; }
[ProtoMember(1)]
public List<FishInfo> Fishs = new List<FishInfo>();
[ProtoMember(2)]
public uint ErrorCode { get; set; }
}
/// <summary>
/// 鱼护变化
/// </summary>
[ProtoContract]
public partial class Game2C_FishChange : AMessage, ICustomRouteMessage, IProto
{
public static Game2C_FishChange Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Game2C_FishChange>();
}
public override void Dispose()
{
Type = default;
Fishs.Clear();
Removes.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_FishChange>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Game2C_FishChange; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.GameRoute;
[ProtoMember(1)]
public int Type { get; set; }
[ProtoMember(2)]
public List<FishInfo> Fishs = new List<FishInfo>();
[ProtoMember(3)]
public List<long> Removes = new List<long>();
}
/// <summary>
/// 请求出售
/// </summary>
[ProtoContract]
public partial class C2Game_SellFishRequest : AMessage, ICustomRouteRequest, IProto
{
public static C2Game_SellFishRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2Game_SellFishRequest>();
}
public override void Dispose()
{
Ids.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2Game_SellFishRequest>(this);
#endif
}
[ProtoIgnore]
public Game2C_SellFishResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2Game_SellFishRequest; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.GameRoute;
[ProtoMember(1)]
public List<long> Ids = new List<long>();
}
/// <summary>
/// 请求出售响应
/// </summary>
[ProtoContract]
public partial class Game2C_SellFishResponse : AMessage, ICustomRouteResponse, IProto
{
public static Game2C_SellFishResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Game2C_SellFishResponse>();
}
public override void Dispose()
{
ErrorCode = default;
Awards.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_SellFishResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Game2C_SellFishResponse; }
[ProtoMember(1)]
public List<AwardInfo> Awards = new List<AwardInfo>();
[ProtoMember(2)]
public uint ErrorCode { get; set; }
}
/// <summary>
/// /////////// ******** 商店 *******/////////////
/// </summary>
/// <summary>
/// 请求购买
/// </summary>
[ProtoContract]
public partial class C2Game_BuyRequest : AMessage, ICustomRouteRequest, IProto
{
public static C2Game_BuyRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2Game_BuyRequest>();
}
public override void Dispose()
{
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2Game_BuyRequest>(this);
#endif
}
[ProtoIgnore]
public Game2C_GetFishsResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2Game_BuyRequest; }
[ProtoIgnore]
public int RouteType => Fantasy.RouteType.GameRoute;
}
/// <summary>
/// 请求购买响应
/// </summary>
[ProtoContract]
public partial class Game2C_BuyResponse : AMessage, ICustomRouteResponse, IProto
{
public static Game2C_BuyResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<Game2C_BuyResponse>();
}
public override void Dispose()
{
ErrorCode = default;
Awards.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Game2C_BuyResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.Game2C_BuyResponse; }
[ProtoMember(1)]
public List<AwardInfo> Awards = new List<AwardInfo>();
[ProtoMember(2)]
public uint ErrorCode { get; set; }
}
}

View File

@@ -2,61 +2,73 @@ namespace Fantasy
{
public static partial class OuterOpcode
{
public const uint C2Map_CreateRoomRequest = 2281711377;
public const uint Map2C_CreateRoomResponse = 2415929105;
public const uint C2Game_GetItemsRequest = 2281711377;
public const uint Game2C_GetItemsResponse = 2415929105;
public const uint C2Game_UseItemRequest = 2281711378;
public const uint Game2C_UseItemResponse = 2415929106;
public const uint Game2C_ItemChange = 2147493649;
public const uint C2Game_GetFishsRequest = 2281711379;
public const uint Game2C_GetFishsResponse = 2415929107;
public const uint Game2C_FishChange = 2147493650;
public const uint C2Game_SellFishRequest = 2281711380;
public const uint Game2C_SellFishResponse = 2415929108;
public const uint C2Game_BuyRequest = 2281711381;
public const uint Game2C_BuyResponse = 2415929109;
public const uint C2Map_CreateRoomRequest = 2281711382;
public const uint Map2C_CreateRoomResponse = 2415929110;
public const uint C2G_ExitRoomRequest = 268445457;
public const uint G2C_ExitRoomResponse = 402663185;
public const uint C2G_EnterMapRequest = 268445458;
public const uint G2C_EnterMapResponse = 402663186;
public const uint Map2C_ChangeMap = 2147493649;
public const uint Map2C_ChangeMap = 2147493651;
public const uint C2A_LoginRequest = 268445459;
public const uint A2C_LoginResponse = 402663187;
public const uint C2G_LoginRequest = 268445460;
public const uint G2C_LoginResponse = 402663188;
public const uint G2C_RepeatLogin = 134227729;
public const uint C2Game_GetRoleInfoRequest = 2281711378;
public const uint Game2C_GetRoleInfoResponse = 2415929106;
public const uint Map2C_RoleEnterRoomNotify = 2147493650;
public const uint Map2C_RoleExitRoomNotify = 2147493651;
public const uint C2Map_RolePropertyChange = 2147493652;
public const uint Map2C_RoleStateNotify = 2147493653;
public const uint Map2C_RoleGearChangeNotify = 2147493654;
public const uint Map2C_RolePropertyChangeNotify = 2147493655;
public const uint C2Map_Move = 2147493656;
public const uint C2Map_Look = 2147493657;
public const uint Map2C_MoveNotify = 2147493658;
public const uint Map2C_LookeNotify = 2147493659;
public const uint C2S_GetConversationsRequest = 2281711379;
public const uint S2C_GetConversationsResponse = 2415929107;
public const uint C2S_SendMailRequest = 2281711380;
public const uint S2C_SendMailResponse = 2415929108;
public const uint C2S_DeleteMailRequest = 2281711381;
public const uint S2C_DeleteMailResponse = 2415929109;
public const uint S2C_HaveMail = 2147493660;
public const uint S2C_MailState = 2147493661;
public const uint C2S_CreateChannelRequest = 2281711382;
public const uint S2C_CreateChannelResponse = 2415929110;
public const uint C2S_JoinChannelRequest = 2281711383;
public const uint S2C_JoinChannelResponse = 2415929111;
public const uint C2S_SendMessageRequest = 2281711384;
public const uint S2C_SendMessageResponse = 2415929112;
public const uint S2C_Message = 2147493662;
public const uint C2S_CreateClubRequest = 2281711385;
public const uint S2C_CreateClubResponse = 2415929113;
public const uint C2S_GetClubInfoRequest = 2281711386;
public const uint S2C_GetClubInfoResponse = 2415929114;
public const uint C2S_GetMemberListRequest = 2281711387;
public const uint S2C_GetMemberListResponse = 2415929115;
public const uint C2S_GetClubListRequest = 2281711388;
public const uint S2C_GetClubListResponse = 2415929116;
public const uint C2S_JoinClubRequest = 2281711389;
public const uint S2C_JoinClubResponse = 2415929117;
public const uint C2S_LeaveClubRequest = 2281711390;
public const uint S2C_LeaveClubResponse = 2415929118;
public const uint C2S_DissolveClubRequest = 2281711391;
public const uint S2C_DissolveClubResponse = 2415929119;
public const uint C2S_DisposeJoinRequest = 2281711392;
public const uint S2C_DisposeJoinResponse = 2415929120;
public const uint S2C_ClubChange = 2147493663;
public const uint C2Game_GetRoleInfoRequest = 2281711383;
public const uint Game2C_GetRoleInfoResponse = 2415929111;
public const uint Map2C_RoleEnterRoomNotify = 2147493652;
public const uint Map2C_RoleExitRoomNotify = 2147493653;
public const uint C2Map_RolePropertyChange = 2147493654;
public const uint Map2C_RoleStateNotify = 2147493655;
public const uint Map2C_RoleGearChangeNotify = 2147493656;
public const uint Map2C_RolePropertyChangeNotify = 2147493657;
public const uint C2Map_Move = 2147493658;
public const uint C2Map_Look = 2147493659;
public const uint Map2C_MoveNotify = 2147493660;
public const uint Map2C_LookeNotify = 2147493661;
public const uint C2S_GetConversationsRequest = 2281711384;
public const uint S2C_GetConversationsResponse = 2415929112;
public const uint C2S_SendMailRequest = 2281711385;
public const uint S2C_SendMailResponse = 2415929113;
public const uint C2S_DeleteMailRequest = 2281711386;
public const uint S2C_DeleteMailResponse = 2415929114;
public const uint S2C_HaveMail = 2147493662;
public const uint S2C_MailState = 2147493663;
public const uint C2S_CreateChannelRequest = 2281711387;
public const uint S2C_CreateChannelResponse = 2415929115;
public const uint C2S_JoinChannelRequest = 2281711388;
public const uint S2C_JoinChannelResponse = 2415929116;
public const uint C2S_SendMessageRequest = 2281711389;
public const uint S2C_SendMessageResponse = 2415929117;
public const uint S2C_Message = 2147493664;
public const uint C2S_CreateClubRequest = 2281711390;
public const uint S2C_CreateClubResponse = 2415929118;
public const uint C2S_GetClubInfoRequest = 2281711391;
public const uint S2C_GetClubInfoResponse = 2415929119;
public const uint C2S_GetMemberListRequest = 2281711392;
public const uint S2C_GetMemberListResponse = 2415929120;
public const uint C2S_GetClubListRequest = 2281711393;
public const uint S2C_GetClubListResponse = 2415929121;
public const uint C2S_JoinClubRequest = 2281711394;
public const uint S2C_JoinClubResponse = 2415929122;
public const uint C2S_LeaveClubRequest = 2281711395;
public const uint S2C_LeaveClubResponse = 2415929123;
public const uint C2S_DissolveClubRequest = 2281711396;
public const uint S2C_DissolveClubResponse = 2415929124;
public const uint C2S_DisposeJoinRequest = 2281711397;
public const uint S2C_DisposeJoinResponse = 2415929125;
public const uint S2C_ClubChange = 2147493665;
}
}

View File

@@ -225,6 +225,7 @@ namespace NBC
Rotation = default;
Direction = default;
IsStop = default;
IsRun = default;
Timestamp = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<Map2C_MoveNotify>(this);
@@ -244,6 +245,8 @@ namespace NBC
[ProtoMember(5)]
public bool IsStop { get; set; }
[ProtoMember(6)]
public bool IsRun { get; set; }
[ProtoMember(7)]
public long Timestamp { get; set; }
}
/// <summary>

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 797250a29ac28db458a11e40145a9e6c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,110 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
#if FANTASY_NET
using Fantasy.ConfigTable;
using Fantasy.Serialize;
#else
using NBC;
using NBC.Serialize;
#endif
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class BaitConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<BaitConfig> List { get; set; } = new List<BaitConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, BaitConfig> _configs = new ConcurrentDictionary<uint, BaitConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, BaitConfig> _configs = new Dictionary<uint, BaitConfig>();
#endif
private static BaitConfigData _instance = null;
public static BaitConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<BaitConfigData>(); }
private set => _instance = value;
}
public BaitConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"BaitConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out BaitConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class BaitConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Model { get; set; } // 模型
[ProtoMember(3)]
public uint EfficacyBase { get; set; } // 吸引力
[ProtoMember(4)]
public uint Length { get; set; } // 长度(毫米)
[ProtoMember(5)]
public uint Weight { get; set; } // 重量(克)
[ProtoMember(6)]
public uint[] Arr { get; set; } = Array.Empty<uint>(); // 重量(克)
[ProtoMember(7)]
public string[] ArrStr { get; set; } = Array.Empty<string>(); // 重量(克)
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6362bd09bd57c6647b87ac7abcde3a6c

View File

@@ -0,0 +1,108 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
#if FANTASY_NET
using Fantasy.ConfigTable;
using Fantasy.Serialize;
#else
using NBC;
using NBC.Serialize;
#endif
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class BobberConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<BobberConfig> List { get; set; } = new List<BobberConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, BobberConfig> _configs = new ConcurrentDictionary<uint, BobberConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, BobberConfig> _configs = new Dictionary<uint, BobberConfig>();
#endif
private static BobberConfigData _instance = null;
public static BobberConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<BobberConfigData>(); }
private set => _instance = value;
}
public BobberConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"BobberConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out BobberConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class BobberConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Model { get; set; } // 模型
[ProtoMember(3)]
public uint Type { get; set; } // 类型
[ProtoMember(4)]
public uint Weight { get; set; } // 重量(克)
[ProtoMember(5)]
public uint Displacement { get; set; } // 位移
[ProtoMember(6)]
public uint NightLight { get; set; } // 是否夜光
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 4c4ce5c38c2619a4f95a1bd26089cca7

View File

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

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: da3d806c80cc74148a23c2af19ecbe4d

View File

@@ -0,0 +1,110 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
#if FANTASY_NET
using Fantasy.ConfigTable;
using Fantasy.Serialize;
#else
using NBC;
using NBC.Serialize;
#endif
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class FishConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<FishConfig> List { get; set; } = new List<FishConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, FishConfig> _configs = new ConcurrentDictionary<uint, FishConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, FishConfig> _configs = new Dictionary<uint, FishConfig>();
#endif
private static FishConfigData _instance = null;
public static FishConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<FishConfigData>(); }
private set => _instance = value;
}
public FishConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"FishConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out FishConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class FishConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string[] Model { get; set; } = Array.Empty<string>(); // 模型
[ProtoMember(3)]
public uint Type { get; set; } // 类型
[ProtoMember(4)]
public uint SpeciesName { get; set; } // 鱼类型Id
[ProtoMember(5)]
public uint MinWeight { get; set; } // 最小重量(克)
[ProtoMember(6)]
public uint MaxWeight { get; set; } // 最大重量(克)
[ProtoMember(7)]
public uint Accept { get; set; } // 接受饵
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 38a9a1b4cfa8ab24c8bb141ae7cba986

View File

@@ -0,0 +1,108 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
#if FANTASY_NET
using Fantasy.ConfigTable;
using Fantasy.Serialize;
#else
using NBC;
using NBC.Serialize;
#endif
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class HookConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<HookConfig> List { get; set; } = new List<HookConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, HookConfig> _configs = new ConcurrentDictionary<uint, HookConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, HookConfig> _configs = new Dictionary<uint, HookConfig>();
#endif
private static HookConfigData _instance = null;
public static HookConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<HookConfigData>(); }
private set => _instance = value;
}
public HookConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"HookConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out HookConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class HookConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Model { get; set; } // 模型
[ProtoMember(3)]
public uint Type { get; set; } // 类型
[ProtoMember(4)]
public uint Zadzior { get; set; } // 长钉
[ProtoMember(5)]
public uint Length { get; set; } // 长度(毫米)
[ProtoMember(6)]
public uint Weight { get; set; } // 重量(克)
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5a6178b7c5ee4ca45b28631c50966e28

View File

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

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: dd32cd6701963b84988ab6c9168f0568

View File

@@ -0,0 +1,108 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
#if FANTASY_NET
using Fantasy.ConfigTable;
using Fantasy.Serialize;
#else
using NBC;
using NBC.Serialize;
#endif
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class LureConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<LureConfig> List { get; set; } = new List<LureConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, LureConfig> _configs = new ConcurrentDictionary<uint, LureConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, LureConfig> _configs = new Dictionary<uint, LureConfig>();
#endif
private static LureConfigData _instance = null;
public static LureConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<LureConfigData>(); }
private set => _instance = value;
}
public LureConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"LureConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out LureConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class LureConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Model { get; set; } // 模型
[ProtoMember(3)]
public uint[] Hook { get; set; } = Array.Empty<uint>(); // 勾
[ProtoMember(4)]
public uint EfficacyBase { get; set; } // 吸引力
[ProtoMember(5)]
public uint Length { get; set; } // 长度(毫米)
[ProtoMember(6)]
public uint Weight { get; set; } // 重量(克)
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a3789e74296554d43b1ea6274f978384

View File

@@ -0,0 +1,108 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
#if FANTASY_NET
using Fantasy.ConfigTable;
using Fantasy.Serialize;
#else
using NBC;
using NBC.Serialize;
#endif
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class ReelConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<ReelConfig> List { get; set; } = new List<ReelConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, ReelConfig> _configs = new ConcurrentDictionary<uint, ReelConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, ReelConfig> _configs = new Dictionary<uint, ReelConfig>();
#endif
private static ReelConfigData _instance = null;
public static ReelConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<ReelConfigData>(); }
private set => _instance = value;
}
public ReelConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"ReelConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out ReelConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class ReelConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Model { get; set; } // 模型
[ProtoMember(3)]
public uint Type { get; set; } // 类型
[ProtoMember(4)]
public float[] GearRatio { get; set; } = Array.Empty<float>(); // 组件比
[ProtoMember(5)]
public uint Size { get; set; } // 尺寸
[ProtoMember(6)]
public uint Strength { get; set; } // 强度
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 937f0fc7328e76f4a8f3137d0cf2bf3c

View File

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

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 011d34ec27d1f7740b439af74c883be5

View File

@@ -0,0 +1,114 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
#if FANTASY_NET
using Fantasy.ConfigTable;
using Fantasy.Serialize;
#else
using NBC;
using NBC.Serialize;
#endif
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class RodConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<RodConfig> List { get; set; } = new List<RodConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, RodConfig> _configs = new ConcurrentDictionary<uint, RodConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, RodConfig> _configs = new Dictionary<uint, RodConfig>();
#endif
private static RodConfigData _instance = null;
public static RodConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<RodConfigData>(); }
private set => _instance = value;
}
public RodConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"RodConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out RodConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class RodConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Model { get; set; } // 模型
[ProtoMember(3)]
public uint Type { get; set; } // 类型
[ProtoMember(4)]
public uint Ring { get; set; } // 导线圈
[ProtoMember(5)]
public uint Length { get; set; } // 长度(毫米)
[ProtoMember(6)]
public uint Weight { get; set; } // 重量(克)
[ProtoMember(7)]
public uint Strength { get; set; } // 强度
[ProtoMember(8)]
public uint MaxRange { get; set; } // 最大范围
[ProtoMember(9)]
public uint ConstructionType { get; set; } // 结构类型
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 50e00e7722e5f804b9151354058842cc

View File

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

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 0750f0970e8c3aa49bd98757da8cbe39

View File

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

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c4fcd00be96ef734682179e668d43ff5

View File

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

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 190543eb94e16a24ba18b202c8f66cd3

View File

@@ -0,0 +1,323 @@
{
"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,
"Model": "baits/worm_01/worm_01",
"EfficacyBase": 15,
"Length": 0,
"Weight": 250,
"Arr": [
250,
1,
2,
3
],
"ArrStr": [
"d",
"a",
"bb",
"e|12"
]
},
{
"Id": 500002,
"Model": "baits/fly/fly",
"EfficacyBase": 15,
"Length": 0,
"Weight": 120,
"Arr": [
120,
4,
3
],
"ArrStr": [
"120",
"4",
"3"
]
},
{
"Id": 500003,
"Model": "baits/black_leech/black_leech",
"EfficacyBase": 15,
"Length": 0,
"Weight": 120,
"Arr": [
120
],
"ArrStr": [
"kkk"
]
},
{
"Id": 500004,
"Model": "baits/bread/bread",
"EfficacyBase": 15,
"Length": 0,
"Weight": 120,
"Arr": [
120
],
"ArrStr": [
"11|33",
"44|2"
]
}
]
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c8b5cb8d32d7bc9438c04720cd8e7bf4
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: