Design_SubModule/Scripts/DR_Generated/DRCardPackCfg.cs
zhengxianxin 14f42c5058 111
2026-01-21 17:17:49 +08:00

152 lines
4.0 KiB
C#
Raw Permalink 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 自动生成,请勿手动修改
// 配置类: CardPackCfg
// 数据类: CardPackCfgItem
using UnityEngine;
using Byway.Config;
using Byway.Thrift.Data;
using UnityGameFramework.Runtime;
namespace CrazyMaple
{
/// <summary>
/// CardPackCfg 数据行
/// </summary>
public class DRCardPackCfg : DataRowBase
{
private CardPackCfgItem _configData;
/// <summary>
/// 唯一标识
/// </summary>
public override int Id
{
get
{
return _configData?.Id ?? 0;
}
}
/// <summary>
/// Icon
/// </summary>
public string Icon
{
get
{
return _configData?.Icon ?? "";
}
}
/// <summary>
/// Color
/// </summary>
public int Color
{
get
{
return _configData?.Color ?? 0;
}
}
/// <summary>
/// Name
/// </summary>
public string Name
{
get
{
return _configData?.Name ?? "";
}
}
/// <summary>
/// RewardCnt
/// </summary>
public int RewardCnt
{
get
{
return _configData?.RewardCnt ?? 0;
}
}
/// <summary>
/// GoldRate
/// </summary>
public int GoldRate
{
get
{
return _configData?.GoldRate ?? 0;
}
}
/// <summary>
/// 从配置加载数据(优先使用传入的配置实例)
/// </summary>
public void LoadFromConfig(int id, CardPackCfg config = null)
{
if (config == null)
{
config = ConfigManager.Instance.GetConfig<CardPackCfg>();
}
if (config?.Cardpackcfgs != null)
{
config.Cardpackcfgs.TryGetValue(id, out _configData);
}
}
/// <summary>
/// 直接设置配置数据(性能优化:跳过字典查询)
/// </summary>
public void SetConfigData(CardPackCfgItem 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, CardPackCfgItem>;
if (dict != null && dict.TryGetValue(id, out var item))
{
_configData = item;
return true;
}
}
// 备选方案:从配置实例获取
if (userDataDict.TryGetValue("ConfigInstance", out object configObj))
{
var config = configObj as CardPackCfg;
if (config != null)
{
LoadFromConfig(id, config);
return _configData != null;
}
}
}
// 兜底方案:直接查询(最慢)
LoadFromConfig(id);
return _configData != null;
}
}
}