Exemplo n.º 1
0
        private static void UpdateGenStepScatterer(string genStepDefName, RandomizableMultiplier rm, List <Pair <GenStep_Scatterer, ScattererValues> > scatterers, StringBuilder sb)
        {
            try
            {
                float      m = rm.GetMultiplier();
                GenStepDef d = DefDatabase <GenStepDef> .GetNamed(genStepDefName, false);

                /*if (d?.genStep is GenStep_PreciousLump pl)
                 * {
                 *  PreciousLump = new Pair<GenStep_PreciousLump, FloatRange>(pl, new FloatRange(pl.totalValueRange.min, pl.totalValueRange.max));
                 *  pl.totalValueRange.min *= m;
                 *  pl.totalValueRange.max *= m;
                 *  sb.AppendLine($"- {genStepDefName}.totalValueRange = {pl.totalValueRange} -- {pl.forcedLumpSize}");
                 * }
                 * else*/
                if (d?.genStep is GenStep_Scatterer rs)
                {
                    Scatterers.Add(new Pair <GenStep_Scatterer, ScattererValues>(rs, new ScattererValues(rs.countPer10kCellsRange)));
                    rs.countPer10kCellsRange.min *= m;
                    rs.countPer10kCellsRange.max *= m;
                    sb.AppendLine($"- {genStepDefName}.countPer10kCellsRange = {rs.countPer10kCellsRange}");
                }
                else
                {
                    Log.Warning($"[Configurable Maps] unable to patch {genStepDefName}");
                }
            }
            catch
            {
                Log.Error("[Configurable Maps] failed to update scatterer " + genStepDefName);
            }
        }
Exemplo n.º 2
0
 public static void AddGenStep(GenStepDef step)
 {
     MapGenUtility.customGenSteps.Add(step);
 }
Exemplo n.º 3
0
        public static void InitBiomeDefaults()
        {
            Log.Message("[Map Designer] Finding biomes...");
            MapDesignerSettings settings = MapDesignerMod.mod.settings;

            // Biomes
            Dictionary <string, BiomeDefault> biomeDefaults = new Dictionary <string, BiomeDefault>();

            try
            {
                foreach (BiomeDef biome in DefDatabase <BiomeDef> .AllDefs)
                {
                    BiomeDefault biodef = new BiomeDefault();
                    biodef.animalDensity       = biome.animalDensity;
                    biodef.plantDensity        = biome.plantDensity;
                    biodef.wildPlantRegrowDays = biome.wildPlantRegrowDays;
                    biodef.terrain             = new TerrainDefault()
                    {
                        terrainsByFertility = new List <TerrainThreshold>(biome.terrainsByFertility),
                        terrainPatchMakers  = new List <TerrainPatchMaker>(biome.terrainPatchMakers)
                    };
                    biomeDefaults.Add(biome.defName, biodef);
                }
                settings.biomeDefaults = biomeDefaults;
            }
            catch
            {
                Log.Message("[Map Designer] Could not initialize biome defaults");
            }


            // Densities
            Dictionary <string, FloatRange> densityDefaults = new Dictionary <string, FloatRange>();

            try
            {
                GenStepDef step = DefDatabase <GenStepDef> .GetNamed("ScatterRuinsSimple");

                densityDefaults.Add(step.defName, (step.genStep as GenStep_Scatterer).countPer10kCellsRange);

                step = DefDatabase <GenStepDef> .GetNamed("ScatterShrines");

                densityDefaults.Add(step.defName, (step.genStep as GenStep_Scatterer).countPer10kCellsRange);

                step = DefDatabase <GenStepDef> .GetNamed("SteamGeysers");

                densityDefaults.Add(step.defName, (step.genStep as GenStep_Scatterer).countPer10kCellsRange);

                settings.densityDefaults = densityDefaults;
            }
            catch
            {
                Log.Message("[Map Designer] Could not initialize density defaults");
            }

            // Rocks
            try
            {
                if (settings.allowedRocks.EnumerableNullOrEmpty())
                {
                    settings.allowedRocks = new Dictionary <string, bool>();
                }
                List <ThingDef> list = GetRockList();
                foreach (ThingDef rock in list)
                {
                    if (!settings.allowedRocks.ContainsKey(rock.defName))
                    {
                        settings.allowedRocks.Add(rock.defName, true);
                    }
                }
                settings.rockTypeRange.max = Math.Min(list.Count, settings.rockTypeRange.max);
                settings.rockTypeRange.min = Math.Min(list.Count, settings.rockTypeRange.min);
            }
            catch
            {
                Log.Message("[Map Designer] Could not initialize rock types");
                settings.rockTypeRange.max = 3;
                settings.rockTypeRange.min = 2;
            }

            // Ore
            try
            {
                if (settings.oreCommonality.EnumerableNullOrEmpty())
                {
                    settings.oreCommonality = new Dictionary <string, float>();
                }
                List <ThingDef> list = GetMineableList();
                foreach (ThingDef ore in list)
                {
                    if (!settings.oreCommonality.ContainsKey(ore.defName))
                    {
                        settings.oreCommonality.Add(ore.defName, 1f);
                    }
                }
            }
            catch
            {
                Log.Message("[Map Designer] Could not initialize ore types");
            }
        }
 public GenStepWithParams(GenStepDef def, GenStepParams parms)
 {
     this.def   = def;
     this.parms = parms;
 }