Design_SubModule/Scripts/DR_Generated/DRNPCFriendsData.cs
2026-02-05 21:15:08 +08:00

196 lines
4.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 此文件由 ThriftIntegratedPipeline 自动生成,请勿手动修改
// 配置类: NPCFriendsData
// 数据类: NPCFriendsDataItem
using UnityEngine;
using Byway.Config;
using Byway.Thrift.Data;
using UnityGameFramework.Runtime;
namespace CrazyMaple
{
/// <summary>
/// NPCFriendsData 数据行
/// </summary>
public class DRNPCFriendsData : DataRowBase
{
private NPCFriendsDataItem _configData;
/// <summary>
/// 唯一标识
/// </summary>
public override int Id
{
get
{
return _configData?.Id ?? 0;
}
}
/// <summary>
/// NameKey
/// </summary>
public string NameKey
{
get
{
return _configData?.NameKey ?? "";
}
}
/// <summary>
/// NameCN
/// </summary>
public string NameCN
{
get
{
return _configData?.NameCN ?? "";
}
}
/// <summary>
/// NamePr
/// </summary>
public string NamePr
{
get
{
return _configData?.NamePr ?? "";
}
}
/// <summary>
/// Level
/// </summary>
public int Level
{
get
{
return _configData?.Level ?? 0;
}
}
/// <summary>
/// Head
/// </summary>
public int Head
{
get
{
return _configData?.Head ?? 0;
}
}
/// <summary>
/// Greeting
/// </summary>
public int Greeting
{
get
{
return _configData?.Greeting ?? 0;
}
}
/// <summary>
/// Happy
/// </summary>
public int Happy
{
get
{
return _configData?.Happy ?? 0;
}
}
/// <summary>
/// Taunt
/// </summary>
public int Taunt
{
get
{
return _configData?.Taunt ?? 0;
}
}
/// <summary>
/// Fail
/// </summary>
public int Fail
{
get
{
return _configData?.Fail ?? 0;
}
}
/// <summary>
/// 从配置加载数据(优先使用传入的配置实例)
/// </summary>
public void LoadFromConfig(int id, NPCFriendsData config = null)
{
if (config == null)
{
config = ConfigManager.Instance.GetConfig<NPCFriendsData>();
}
if (config?.Npcfriendsdatas != null)
{
config.Npcfriendsdatas.TryGetValue(id, out _configData);
}
}
/// <summary>
/// 直接设置配置数据(性能优化:跳过字典查询)
/// </summary>
public void SetConfigData(NPCFriendsDataItem configData)
{
_configData = configData;
}
/// <summary>
/// 解析数据行(优化:使用 userData 传入的配置实例,避免重复调用 GetConfig
/// </summary>
public override bool ParseDataRow(string dataRowString, object userData)
{
int id = 0;
if (!int.TryParse(dataRowString, out id))
{
return false;
}
// 性能优化:尝试从 userData 获取配置字典,直接获取 Item
if (userData is System.Collections.Generic.Dictionary<string, object> userDataDict)
{
// 优先尝试从缓存的字典直接获取 Item最快
if (userDataDict.TryGetValue("ConfigDict", out object dictObj))
{
var dict = dictObj as System.Collections.Generic.Dictionary<int, NPCFriendsDataItem>;
if (dict != null && dict.TryGetValue(id, out var item))
{
_configData = item;
return true;
}
}
// 备选方案:从配置实例获取
if (userDataDict.TryGetValue("ConfigInstance", out object configObj))
{
var config = configObj as NPCFriendsData;
if (config != null)
{
LoadFromConfig(id, config);
return _configData != null;
}
}
}
// 兜底方案:直接查询(最慢)
LoadFromConfig(id);
return _configData != null;
}
}
}