Traveller/scripts/item/ItemType.cs

29 lines
999 B
C#
Raw Normal View History

2024-06-10 15:08:48 +00:00
using System;
using Godot;
namespace ColdMint.scripts.item;
public readonly struct ItemType(string id, Func<IItem?> newItemFunc, Texture2D? icon, int maxStackQuantity)
2024-06-10 15:08:48 +00:00
{
/// <summary>
/// <para>Item id of this type</para>
/// <para>该类型物品的id</para>
2024-06-10 15:08:48 +00:00
/// </summary>
public string Id { get; init; } = id;
2024-06-10 15:08:48 +00:00
/// <summary>
/// <para>A function returns a new item instance of this type</para>
/// <para>用于创建该类型的物品实例的函数</para>
2024-06-10 15:08:48 +00:00
/// </summary>
public Func<IItem?> NewItemFunc { get; init; } = newItemFunc;
2024-06-10 15:08:48 +00:00
/// <summary>
/// <para>Default icon of items of this type</para>
/// <para>该类型物品的默认图标</para>
2024-06-10 15:08:48 +00:00
/// </summary>
public Texture2D? Icon { get; init; } = icon;
2024-06-10 15:08:48 +00:00
/// <summary>
/// <para>Max number in item stack of this type</para>
/// <para>该类型物品的最大堆叠数量</para>
2024-06-10 15:08:48 +00:00
/// </summary>
public int MaxStackQuantity { get; init; } = maxStackQuantity;
2024-06-10 15:08:48 +00:00
}