public void LoadValue(string value)
        {
            WeaponCategory = WeaponCategoryEnumeration.GetWeaponCategoryByName(value);

            if (WeaponCategory == null)
            {
                WeaponCategory = WeaponCategoryEnumeration.GetNotSetValue();
            }

            if (!WeaponCategory.Is_NotSet)
            {
                HPinfo = HardpointController.Instance[WeaponCategory];
            }
        }
        public void OnLoaded(Dictionary <string, object> values)
        {
            AddWeaponCategory = WeaponCategoryEnumeration.GetWeaponCategoryByName(AddHardpoint);

            if (AddWeaponCategory == null)
            {
                AddWeaponCategory = WeaponCategoryEnumeration.GetNotSetValue();
            }

            UseWeaponCategory = WeaponCategoryEnumeration.GetWeaponCategoryByName(UseHardpoint);

            if (UseWeaponCategory == null)
            {
                UseWeaponCategory = WeaponCategoryEnumeration.GetNotSetValue();
            }
        }
        public void LoadValue(string value)
        {
            Control.LogDebug(DType.Hardpoints, $"UseHardpoint LoadValue for {Def.Description.Id}: {value}");

            var cat = WeaponCategoryEnumeration.GetWeaponCategoryByName(value);

            WeaponCategory = cat ?? WeaponCategoryEnumeration.GetNotSetValue();

            hpInfo = WeaponCategory.Is_NotSet ? null : HardpointController.Instance[WeaponCategory];
            if (hpInfo != null && !hpInfo.AllowOnWeapon)
            {
                Control.LogError($"{Def.Description.Id} use {value} weapon category that cannot be used on weapons");
                hpInfo         = null;
                WeaponCategory = WeaponCategoryEnumeration.GetNotSetValue();
            }

            Control.LogDebug(DType.Hardpoints, $"- {cat.WeaponCategoryID}:{cat.Name}/{cat.FriendlyName}");
        }
 internal static WeaponCategoryValue MapToBasicType(WeaponCategoryValue value)
 {
     if (value.IsBallistic)
     {
         return(WeaponCategoryEnumeration.GetBallistic());
     }
     else if (value.IsEnergy)
     {
         return(WeaponCategoryEnumeration.GetEnergy());
     }
     else if (value.IsMissile)
     {
         return(WeaponCategoryEnumeration.GetMissile());
     }
     else if (value.IsSupport)
     {
         return(WeaponCategoryEnumeration.GetSupport());
     }
     else
     {
         Control.mod.Logger.LogWarning($"Unsupported weapon category for {value.ID}");
         return(WeaponCategoryEnumeration.GetNotSetValue());
     }
 }