public static bool PopulateSaveableUpgrades(VehicleDef def, bool hardReset = false)
 {
     try
     {
         if (hardReset)
         {
             VehicleMod.settings.upgrades.upgradeSettings.Remove(def.defName);
         }
         if (def.HasComp(typeof(CompUpgradeTree)))
         {
             if (!VehicleMod.settings.upgrades.upgradeSettings.TryGetValue(def.defName, out var currentUpgradeDict))
             {
                 VehicleMod.settings.upgrades.upgradeSettings.Add(def.defName, new Dictionary <SaveableField, SavedField <object> >());
                 currentUpgradeDict = VehicleMod.settings.upgrades.upgradeSettings[def.defName];
                 foreach (UpgradeNode node in def.GetSortedCompProperties <CompProperties_UpgradeTree>().upgrades)
                 {
                     IterateUpgradeNode(def, node, ref currentUpgradeDict);
                 }
                 //Redundancy only
                 VehicleMod.settings.upgrades.upgradeSettings[def.defName] = currentUpgradeDict;
             }
         }
     }
     catch (Exception ex)
     {
         Log.Error($"Failed to populate upgrade settings for {def.defName}. Exception=\"{ex.Message}\"\nInnerException=\"{ex.InnerException}\"");
         return(false);
     }
     return(true);
 }
Ejemplo n.º 2
0
 public static void DrawGhostVehicle(IntVec3 center, Rot8 rot, ThingDef thingDef, Graphic baseGraphic, Color ghostCol, AltitudeLayer drawAltitude, Thing thing = null)
 {
     if (thingDef is VehicleBuildDef def)
     {
         VehicleDef vehicleDef = def.thingToSpawn;
         if (vehicleDef.GetSortedCompProperties <CompProperties_Cannons>() is CompProperties_Cannons props)
         {
             Vector3 loc = GenThing.TrueCenter(center, rot, def.Size, drawAltitude.AltitudeFor());
             vehicleDef.DrawGhostCannonTextures(loc, rot, ghostCol);
         }
     }
 }
Ejemplo n.º 3
0
        public VehicleGenerationRequest(VehicleDef vehicleDef, Faction faction, bool randomizeColors = false, bool randomizeMask = false, bool cleanSlate = true)
        {
            Rand.PushState();

            VehicleDef = vehicleDef;
            Faction    = faction;

            if (randomizeColors)
            {
                float r1 = Rand.Range(0.25f, .75f);
                float g1 = Rand.Range(0.25f, .75f);
                float b1 = Rand.Range(0.25f, .75f);
                ColorOne = new Color(r1, g1, b1, 1);
                float r2 = Rand.Range(0.25f, .75f);
                float g2 = Rand.Range(0.25f, .75f);
                float b2 = Rand.Range(0.25f, .75f);
                ColorTwo = new Color(r2, g2, b2, 1);
                float r3 = Rand.Range(0.25f, .75f);
                float g3 = Rand.Range(0.25f, .75f);
                float b3 = Rand.Range(0.25f, .75f);
                ColorThree = new Color(r3, g3, b3, 1);
            }
            else
            {
                ColorOne   = vehicleDef.graphicData.color;
                ColorTwo   = vehicleDef.graphicData.colorTwo;
                ColorThree = vehicleDef.graphicData.colorThree;
            }

            Upgrades   = 0;
            CleanSlate = cleanSlate;
            if (!CleanSlate && vehicleDef.GetSortedCompProperties <CompProperties_UpgradeTree>() is CompProperties_UpgradeTree compProperties_UpgradeTree)
            {
                Upgrades = Rand.Range(0, compProperties_UpgradeTree.upgrades.Count);
            }

            RandomizeMask = randomizeMask;

            Rand.PopState();
        }