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); } }
public static void AddGenStep(GenStepDef step) { MapGenUtility.customGenSteps.Add(step); }
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; }