/// <summary>
        /// Gets a item description pre-formatted into friendly data.
        /// </summary>
        /// <param name="index">Index of item.</param>
        /// <returns>ItemTemplate</returns>
        public ItemTemplate GetItemDescription(int index)
        {
            ItemTemplate desc = new ItemTemplate();
            if (items.Count > 0 && index >= 0 && index < items.Count)
            {
                DFItem item = items[index];
                desc.index = index;
                desc.name = Encoding.UTF8.GetString(item.name).TrimEnd('\0');
                desc.baseWeight = (float)item.baseWeightUnits * 0.25f;
                desc.hitPoints = item.hitPoints;
                desc.capacityOrTarget = item.capacityOrTarget;
                desc.basePrice = item.basePrice;
                desc.enchantmentPoints = item.enchantmentPoints;
                desc.unknown = item.unknown;
                desc.variants = item.variants;
                desc.drawOrderOrEffect = item.drawOrderOrEffect;
                desc.isBluntWeapon = (((item.propertiesBitfield >> 4) & 1) == 1) ? true : false;
                desc.isLiquid = (((item.propertiesBitfield >> 3) & 1) == 1) ? true : false;
                desc.isOneHanded = (((item.propertiesBitfield >> 2) & 1) == 1) ? true : false;
                desc.isIngredient = ((item.propertiesBitfield & 1) == 1) ? true : false;
                desc.worldTextureArchive = item.worldTextureBitfield >> 7;
                desc.worldTextureRecord = item.worldTextureBitfield & 0x7f;
                desc.playerTextureArchive = item.playerTextureBitfield >> 7;
                desc.playerTextureRecord = item.playerTextureBitfield & 0x7f;
            }

            return desc;
        }
        /// <summary>
        /// Caches item template.
        /// </summary>
        ItemTemplate GetCachedItemTemplate()
        {
            if (itemGroup != cachedItemGroup || groupIndex != cachedGroupIndex)
            {
                cachedItemTemplate = DaggerfallUnity.Instance.ItemHelper.GetItemTemplate(itemGroup, groupIndex);
                cachedItemGroup = itemGroup;
                cachedGroupIndex = groupIndex;
            }

            return cachedItemTemplate;
        }