public void AddPosition(TypedSlotPosition position)
 {
     if (!ItemTypePositions.ContainsKey(position.Type))
     {
         positions.Add(position);
         OnValidate();
     }
 }
        public ItemSlotPosition GetPosition(ItemType itemType, string modelName = "")
        {
            var key = ModelSlotPosition.CreateKey(itemType, modelName);

            if (ModelSlotPositionsSet.ContainsKey(key))
            {
                return(ModelSlotPositionsSet[key].position);
            }
            else if (ItemTypePositions.ContainsKey(itemType))
            {
                return(ItemTypePositions[itemType].position);
            }

            return(new ItemSlotPosition()
            {
                type = itemType,
                bone = defaultBone
            });
        }
 public TypedSlotPosition GetTypedSlotPosition(Item item)
 {
     return(ItemTypePositions.TryGetValue(item.Type, out var result) ? result : null);
 }