/// ---------------------------------------------
/// Ultimate Character Controller
/// Copyright (c) Opsive. All Rights Reserved.
/// https://www.opsive.com
/// ---------------------------------------------
namespace Opsive.UltimateCharacterController.Inventory
{
using Opsive.Shared.Inventory;
using UnityEngine;
///
/// Specifies the amount of each ItemDefinitionBase that the character can pickup or is loaded with the default inventory.
///
[System.Serializable]
public struct ItemDefinitionAmount
{
[Tooltip("The type of item.")]
[UnityEngine.Serialization.FormerlySerializedAs("m_ItemType")]
[UnityEngine.Serialization.FormerlySerializedAs("m_ItemDefinition")]
[SerializeField] public ItemDefinitionBase ItemDefinition;
[Tooltip("The number of ItemIdentifier units to pickup.")]
[UnityEngine.Serialization.FormerlySerializedAs("m_Count")]
[UnityEngine.Serialization.FormerlySerializedAs("m_Amount")]
[SerializeField] public int Amount;
private IItemIdentifier m_ItemIdentifier;
public IItemIdentifier ItemIdentifier {
get {
if (Application.isPlaying && m_ItemIdentifier == null) {
m_ItemIdentifier = ItemDefinition.CreateItemIdentifier();
}
return m_ItemIdentifier;
}
}
///
/// ItemDefinitionAmount constructor with two parameters.
///
/// The definition of item.
/// The amount of ItemDefinitionBase.
public ItemDefinitionAmount(ItemDefinitionBase itemDefinition, int amount)
{
ItemDefinition = itemDefinition;
Amount = amount;
m_ItemIdentifier = null;
}
}
}