/// --------------------------------------------- /// 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; } } }