Files
caliverse_server/ServerCommon/MetaAssets/ItemMetaHelper.cs
2025-11-28 16:54:56 +09:00

92 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ServerCore;
using ServerBase;
using MetaAssets;
namespace ServerCommon;
public static class ItemMetaHelper
{
public static string getStringKeyOfItemName(this ItemMetaData itemMetaDta)
{
var err_msg = string.Empty;
if (false == MetaData.Instance._textTable.TryGetValue(itemMetaDta.Name, out var found_text_string_meta))
{
err_msg = $"Failed to MetaData.TextTable.TryGetValue() !!! : ItemName:{itemMetaDta.Name} - ItemMetaId:{itemMetaDta.ItemId}";
Log.getLogger().error(err_msg);
return err_msg;
}
return found_text_string_meta.Key;
}
public static Reward convertFromItemIdToReward(Int32 id, Int32 value)
{
ItemRewardMutable item_reward_mutable = new();
item_reward_mutable.Id = id;
item_reward_mutable.Count = value;
RewardMutable rewardMutable = new();
rewardMutable.Item = item_reward_mutable;
Reward reward = new(rewardMutable);
return reward;
}
public static bool isCreatableItem(this ItemMetaData metaData)
{
if( metaData.TypeSmall == EItemSmallType.LANDCERTIFICATE //EItemLargeType.EXPENDABLE
|| metaData.TypeSmall == EItemSmallType.BEACON_ITEM ) //EItemLargeType.EXPENDABLE
{
return false;
}
if(true == metaData.IsUiOnly)
{
return false;
}
return true;
}
public static bool isCrafterItem(this ItemMetaData itemMetaData)
{
switch (itemMetaData.TypeSmall)
{
case MetaAssets.EItemSmallType.CRAFTING_CLOTHES:
case MetaAssets.EItemSmallType.CRAFTING_COOKING:
case MetaAssets.EItemSmallType.CRAFTING_FURNITURE:
return true;
}
return false;
}
public static bool canRewardFromItem(this ItemMetaData itemMetaData)
{
switch (itemMetaData.TypeLarge)
{
case MetaAssets.EItemLargeType.RAND_BOX:
case MetaAssets.EItemLargeType.SET_BOX:
return true;
}
return false;
}
}