public static ItemData Create(ItemType itemType)
        {
            switch (itemType)
            {
            case ItemType.Invalid:
            case ItemType.Research:
            case ItemType.Consumable:
            case ItemType.Resource:
            case ItemType.AugmentationMaterial:
            case ItemType.MakoSkin:
            case ItemType.MakoMod:
            case ItemType.Plot:
            case ItemType.PassiveSkill:
            {
                return(new ItemData());
            }

            case ItemType.RangedWeapon:
            {
                return(new RangedWeaponItemData());
            }

            case ItemType.CasualOutfit:
            case ItemType.Gear:
            case ItemType.GearPart:
            case ItemType.MeleeWeapon:
            case ItemType.WeaponPart:
            {
                return(new GearItemData());
            }

            case ItemType.Power:
            {
                return(new PowerItemData());
            }
            }

            throw new NotSupportedException();
        }
        public static string GetDisplayName(this ItemType type)
        {
            switch (type)
            {
            case ItemType.Invalid:
            {
                return("Misc");
            }

            case ItemType.Power:
            {
                return("Power");
            }

            case ItemType.RangedWeapon:
            {
                return("Ranged Weapon");
            }

            case ItemType.MeleeWeapon:
            {
                return("Melee Weapon");
            }

            case ItemType.WeaponPart:
            {
                return("Weapon Part");
            }

            case ItemType.Gear:
            {
                return("Gear");
            }

            case ItemType.GearPart:
            {
                return("Gear Part");
            }

            case ItemType.SpaceTool:
            {
                return("Space Tool");
            }

            case ItemType.Consumable:
            {
                return("Consumable");
            }

            case ItemType.Research:
            {
                return("Research");
            }

            case ItemType.Resource:
            {
                return("Resource");
            }

            case ItemType.AugmentationMaterial:
            {
                return("Augmentation");
            }

            case ItemType.MakoMod:
            {
                return("Nomad Mod");
            }

            case ItemType.MakoSkin:
            {
                return("Nomad Skin");
            }

            case ItemType.Plot:
            {
                return("Plot");
            }

            case ItemType.CasualOutfit:
            {
                return("Casual Outfit");
            }

            case ItemType.PassiveSkill:
            {
                return("Passive Skill");
            }
            }

            return(null);
        }
        public static int GetDisplayOrder(this ItemType type)
        {
            switch (type)
            {
            case ItemType.Invalid:
            {
                return((int)ItemTypeOrder.Invalid);
            }

            case ItemType.Power:
            {
                return((int)ItemTypeOrder.Power);
            }

            case ItemType.RangedWeapon:
            {
                return((int)ItemTypeOrder.RangedWeapon);
            }

            case ItemType.MeleeWeapon:
            {
                return((int)ItemTypeOrder.MeleeWeapon);
            }

            case ItemType.WeaponPart:
            {
                return((int)ItemTypeOrder.WeaponPart);
            }

            case ItemType.Gear:
            {
                return((int)ItemTypeOrder.Gear);
            }

            case ItemType.GearPart:
            {
                return((int)ItemTypeOrder.GearPart);
            }

            case ItemType.SpaceTool:
            {
                return((int)ItemTypeOrder.SpaceTool);
            }

            case ItemType.Consumable:
            {
                return((int)ItemTypeOrder.Consumable);
            }

            case ItemType.Research:
            {
                return((int)ItemTypeOrder.Research);
            }

            case ItemType.Resource:
            {
                return((int)ItemTypeOrder.Resource);
            }

            case ItemType.AugmentationMaterial:
            {
                return((int)ItemTypeOrder.AugmentationMaterial);
            }

            case ItemType.MakoMod:
            {
                return((int)ItemTypeOrder.MakoMod);
            }

            case ItemType.MakoSkin:
            {
                return((int)ItemTypeOrder.MakoSkin);
            }

            case ItemType.Plot:
            {
                return((int)ItemTypeOrder.Plot);
            }

            case ItemType.CasualOutfit:
            {
                return((int)ItemTypeOrder.CasualOutfit);
            }

            case ItemType.PassiveSkill:
            {
                return((int)ItemTypeOrder.PassiveSkill);
            }
            }

            return(int.MaxValue);
        }