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

141 lines
3.8 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 自动生成,请勿手动修改
// 配置类: ShopSpecial
// 数据类: ShopSpecialItem
using UnityEngine;
using Byway.Config;
using Byway.Thrift.Data;
using UnityGameFramework.Runtime;
namespace CrazyMaple
{
/// <summary>
/// ShopSpecial 数据行
/// </summary>
public class DRShopSpecial : DataRowBase
{
private ShopSpecialItem _configData;
/// <summary>
/// 唯一标识
/// </summary>
public override int Id
{
get
{
return _configData?.Id ?? 0;
}
}
/// <summary>
/// Type
/// </summary>
public int Type
{
get
{
return _configData?.Type ?? 0;
}
}
/// <summary>
/// SortId
/// </summary>
public int SortId
{
get
{
return _configData?.SortId ?? 0;
}
}
/// <summary>
/// ItemReward
/// </summary>
public string ItemReward
{
get
{
return _configData?.ItemReward ?? "";
}
}
/// <summary>
/// PayPrice
/// </summary>
public float PayPrice
{
get
{
return System.Convert.ToSingle(_configData?.PayPrice ?? 0.0);
}
}
/// <summary>
/// 从配置加载数据(优先使用传入的配置实例)
/// </summary>
public void LoadFromConfig(int id, ShopSpecial config = null)
{
if (config == null)
{
config = ConfigManager.Instance.GetConfig<ShopSpecial>();
}
if (config?.Shopspecials != null)
{
config.Shopspecials.TryGetValue(id, out _configData);
}
}
/// <summary>
/// 直接设置配置数据(性能优化:跳过字典查询)
/// </summary>
public void SetConfigData(ShopSpecialItem 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, ShopSpecialItem>;
if (dict != null && dict.TryGetValue(id, out var item))
{
_configData = item;
return true;
}
}
// 备选方案:从配置实例获取
if (userDataDict.TryGetValue("ConfigInstance", out object configObj))
{
var config = configObj as ShopSpecial;
if (config != null)
{
LoadFromConfig(id, config);
return _configData != null;
}
}
}
// 兜底方案:直接查询(最慢)
LoadFromConfig(id);
return _configData != null;
}
}
}