@@ -71,6 +71,10 @@ public class ClimateControlSettings extends Settings {
71
71
private static final String zSpawnOffsetName = "zSpawnOffset" ;
72
72
private static final String mountainsChains = "Mountains in Mountain Chains" ;
73
73
private static final String frozenIcecapName = "Frozen Icecaps" ;
74
+ private static final String landExpansionRoundsName = "Land Expansion Rounds" ;
75
+ private static final String forceIceMountainsName = "Ice Mountains in Mountain Chains" ;
76
+ private static final String forceMoutainMesasName = "Mesas in Mountain Chains" ;
77
+ private static final String mesaMesaBordersName = "Mesas for mesa borders" ;
74
78
75
79
private final String subDirectoryName = "climateControl" ;
76
80
@@ -92,6 +96,12 @@ public class ClimateControlSettings extends Settings {
92
96
public final Mutable <Boolean > mountainChains = climateZoneCategory
93
97
.booleanSetting (mountainsChains , false , "Place mountains in chains" );
94
98
99
+ public final Mutable <Boolean > forceIceMountains = climateZoneCategory
100
+ .booleanSetting (forceIceMountainsName , true , "Use Ice Mountains instead of Ice Plains in mountain chain areas" );
101
+
102
+ public final Mutable <Boolean > MesaMountains = climateZoneCategory
103
+ .booleanSetting (this .forceMoutainMesasName , true , "Use Mesas as mountains in mountain chain areas" );
104
+
95
105
public final Mutable <Integer > bandedClimateWidth = climateZoneCategory .intSetting (
96
106
bandedClimateWidthName ,
97
107
-1 ,
@@ -190,6 +200,11 @@ public class ClimateControlSettings extends Settings {
190
200
public final Mutable <Integer > rescueSearchLimit = climateControlCategory
191
201
.intSetting (rescueLimitName , -1 , "Maximum Number of Rescue attempts. Negative numbers mean no limit" );
192
202
203
+ public final Mutable <Boolean > mesaMesaBorders = climateControlCategory .booleanSetting (
204
+ mesaMesaBordersName ,
205
+ false ,
206
+ "Use red sand mesa for mesa borders. False uses desert like vanilla" );
207
+
193
208
public boolean cachingOn () {
194
209
return true ;
195
210
}// {return cacheSize.value()> 0;}
@@ -225,22 +240,27 @@ public int cacheSize() {
225
240
+ "SeparateLandmasses = false makes a continental world" );
226
241
227
242
public final Mutable <Integer > largeContinentFrequency = oceanControlCategory
228
- .intSetting (largeContinentFrequencyName , 0 , "frequency of large continent seeds, about 8000x16000" );
243
+ .intSetting (largeContinentFrequencyName , 40 , "frequency of large continent seeds, about 8000x16000" );
229
244
public final Mutable <Integer > mediumContinentFrequency = oceanControlCategory
230
- .intSetting (mediumContinentFrequencyName , 60 , "frequency of medium continent seeds, about 4000x8000" );
245
+ .intSetting (mediumContinentFrequencyName , 100 , "frequency of medium continent seeds, about 4000x8000" );
231
246
public final Mutable <Integer > smallContinentFrequency = oceanControlCategory
232
- .intSetting (smallContinentFrequencyName , 120 , "frequency of small continent seeds, about 2000x4000" );
247
+ .intSetting (smallContinentFrequencyName , 60 , "frequency of small continent seeds, about 2000x4000" );
233
248
public final Mutable <Integer > largeIslandFrequency = oceanControlCategory
234
- .intSetting (largeIslandFrequencyName , 60 , "frequency of large island seeds, about 500x1000" );
249
+ .intSetting (largeIslandFrequencyName , 30 , "frequency of large island seeds, about 500x1000" );
235
250
public final Mutable <Integer > mediumIslandFrequency = oceanControlCategory .intSetting (
236
251
mediumIslandFrequencyName ,
237
- 30 ,
252
+ 15 ,
238
253
"frequency of medium island seeds, about 250x500, but they tend to break up into archipelagos" );
239
254
public final Mutable <Boolean > separateLandmasses = oceanControlCategory .booleanSetting (
240
255
separateLandmassesName ,
241
256
true ,
242
257
"True mostly stops landmasses merging." + "With default settings you will get an oceanic world if true and "
243
258
+ "a continental world if false" );
259
+ public final Mutable <Integer > landExpansionRounds = oceanControlCategory .intSetting (
260
+ landExpansionRoundsName ,
261
+ 1 ,
262
+ "Rounds of continent and large island expansion in oceanic worlds (with separateLandmasses off). "
263
+ + "More makes continents larger and oceans narrower. Default is 1." );
244
264
245
265
private OceanBiomeSettings oceanBiomeSettings = new OceanBiomeSettings ();
246
266
@@ -298,7 +318,19 @@ public boolean doHalf() {
298
318
return halfSize .value () && !quarterSize .value ();
299
319
}
300
320
321
+ private boolean vanillaMountainsForced ;
322
+
301
323
public ArrayList <BiomeSettings > biomeSettings () {
324
+ // force in ice mountains as a biome for mountains chains
325
+ // this is hacky but the best quick solution
326
+ if (!vanillaMountainsForced ) {
327
+ vanillaMountainsForced = true ;
328
+ if (this .mountainChains .value ()) {
329
+ if (this .forceIceMountains .value ()) {
330
+ vanillaBiomeSettings .forceIceMountains ();
331
+ }
332
+ }
333
+ }
302
334
ArrayList <BiomeSettings > result = new ArrayList <BiomeSettings >();
303
335
result .add (oceanBiomeSettings );
304
336
if (this .vanillaBiomesOn .value ()) result .add (vanillaBiomeSettings );
@@ -381,7 +413,7 @@ public void readFrom(Configuration source) {
381
413
}
382
414
partitioners = new ArrayList <DistributionPartitioner >();
383
415
if (mountainChains .value ()) {
384
- this .partitioners .add (new MountainFormer ());
416
+ this .partitioners .add (new MountainFormer (this . MesaMountains . value () ));
385
417
}
386
418
}
387
419
0 commit comments