public static bool IsCrossAssemblyExcluded(this MechDef d)
        {
            if (!Settings.UseOnlyCCAssemblyOptions)
            {
                if (Settings.CrossAssemblyExcludedMechs.Contains(d.Description.Id))
                {
                    return(true);
                }
                if (d.Chassis.ChassisTags.Contains("chassis_ExcludeCrossAssembly"))
                {
                    return(true);
                }
            }
            if (d.IsVehicle())
            {
                VehicleChassisDef vd = d.Chassis.GetVehicleChassisDefFromFakeVehicle();
                if (vd == null)
                {
                    return(false);
                }
                IVAssemblyVariant vv = CCIntegration.GetCCVehicleAssemblyVariant(vd);
                if (vv == null)
                {
                    return(false);
                }
                return(vv.Exclude);
            }
            IAssemblyVariant v = CCIntegration.GetCCAssemblyVariant(d.Chassis);

            if (v != null)
            {
                return(v.Exclude);
            }
            return(false);
        }
예제 #2
0
 public static string getOriginal(this VehicleChassisDef def)
 {
     if (originals.TryGetValue(def.GetType(), out Dictionary <string, string> origs) == false)
     {
         return(def.ToJSON());
     }
     if (origs.TryGetValue(def.Description.Id, out string result) == false)
     {
         return(def.ToJSON());
     }
     return(result);
 }
예제 #3
0
 public static string GetVariant(this ChassisDef d)
 {
     if (d.IsVehicle())
     {
         VehicleChassisDef vd = d.GetVehicleChassisDefFromFakeVehicle();
         if (vd == null)
         {
             return(d.Description.Id);
         }
         IVAssemblyVariant iVAssemblyVariant = GetCCVehicleAssemblyVariant(vd);
         //FileLog.Log($"vehicle {d.Description.Id} -> {iVAssemblyVariant?.PrefabID ?? d.Description.Id} null:{iVAssemblyVariant==null}");
         return(iVAssemblyVariant?.PrefabID ?? d.Description.Id);
     }
     return(GetCCAssemblyVariant(d)?.PrefabID ?? d.Description.UIName);
 }
예제 #4
0
 public static void setOriginal(this VehicleChassisDef def, string json)
 {
     if (originals.TryGetValue(def.GetType(), out Dictionary <string, string> origs) == false)
     {
         origs = new Dictionary <string, string>();
         originals.Add(def.GetType(), origs);
     }
     if (origs.ContainsKey(def.Description.Id))
     {
         origs[def.Description.Id] = json;
     }
     else
     {
         origs.Add(def.Description.Id, json);
     }
 }
 public static bool Is <T>(this VehicleChassisDef target)
 {
     return(Database.Is <T>(target));
 }
 public static bool Is <T>(this VehicleChassisDef target, out T res)
 {
     return(Database.Is(target, out res));
 }
 public static IEnumerable <T> GetComponents <T>(this VehicleChassisDef target)
 {
     return(Database.GetCustoms <T>(target));
 }
 public static T GetComponent <T>(this VehicleChassisDef target)
 {
     return(Database.GetCustom <T>(target));
 }