From 94b24d92e0b533e0631c70748c32a0b5719bfb68 Mon Sep 17 00:00:00 2001 From: Richard Hendricks Date: Mon, 2 Oct 2017 20:04:20 -0500 Subject: Add variable to configure number of attempts before giving up, default to 64. Set default orevein fill rate to 75% --- src/main/java/gregtech/GT_Mod.java | 4 +++- src/main/java/gregtech/api/enums/GT_Values.java | 20 ++++++++++++++------ .../gregtech/common/GT_Worldgen_GT_Ore_Layer.java | 8 +++++--- src/main/java/gregtech/common/GT_Worldgenerator.java | 17 +++++++++-------- 4 files changed, 31 insertions(+), 18 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 39bd959262..8889179326 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -190,7 +190,9 @@ public class GT_Mod implements IGT_Mod { GT_Values.D2 = tMainConfig.get(aTextGeneral, "Debug2", false).getBoolean(false); GT_Values.debugCleanroom = tMainConfig.get(aTextGeneral, "debugCleanroom", false).getBoolean(false); GT_Values.debugWorldGen = tMainConfig.get(aTextGeneral, "debugWorldGen", false).getBoolean(false); - GT_Values.oreveinPercentage = tMainConfig.get(aTextGeneral, "oreveinPercentage_100",100).getInt(100); + GT_Values.debugOrevein = tMainConfig.get(aTextGeneral, "debugOrevein", false).getBoolean(false); + GT_Values.oreveinPercentage = tMainConfig.get(aTextGeneral, "oreveinPercentage_75",75).getInt(75); + GT_Values.oreveinAttempts = tMainConfig.get(aTextGeneral, "oreveinAttempts_64",64).getInt(64); GregTech_API.TICKS_FOR_LAG_AVERAGING = tMainConfig.get(aTextGeneral, "TicksForLagAveragingWithScanner", 25).getInt(25); GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING = tMainConfig.get(aTextGeneral, "MillisecondsPassedInGTTileEntityUntilLagWarning", 100).getInt(100); diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java index 8f98e2ceef..71e22bb1d7 100644 --- a/src/main/java/gregtech/api/enums/GT_Values.java +++ b/src/main/java/gregtech/api/enums/GT_Values.java @@ -117,24 +117,32 @@ public class GT_Values { * For Internal Usage (Network) */ public static IGT_NetworkHandler NW; - /** + /** + * Control percentage of filled 3x3 chunks. Lower number means less oreveins spawn + */ + public static int oreveinPercentage; + /** + * Control number of attempts to find a valid orevein. Lower numbers is slightly faster chunkgen, but more empty chunks with thin stone height. + */ + public static int oreveinAttempts; + /** * Not really Constants, but they set using the Config and therefore should be constant (those are for the Debug Mode) */ public static boolean D1 = false, D2 = false; /** * Debug parameter for cleanroom testing. - */ + */ public static boolean debugCleanroom = false; /** * Debug parameter for world generation. Tracks chunks added/removed from run queue. */ public static boolean debugWorldGen = false; + /** + * Debug parameter for orevein generation. + */ + public static boolean debugOrevein = false; /** * If you have to give something a World Parameter but there is no World... (Dummy World) */ public static World DW; - /** - * Control percentage of filled 3x3 chunks. Lower number means less oreveins spawn - */ - public static int oreveinPercentage; } \ No newline at end of file diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java index 8008510b2b..7c89ea443f 100644 --- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java +++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java @@ -15,7 +15,7 @@ import net.minecraft.world.chunk.IChunkProvider; import java.util.ArrayList; import java.util.Random; -import static gregtech.api.enums.GT_Values.D1; +import static gregtech.api.enums.GT_Values.debugOrevein; public class GT_Worldgen_GT_Ore_Layer extends GT_Worldgen { @@ -123,7 +123,8 @@ public class GT_Worldgen_GT_Ore_Layer } } } - if (D1) { + if (debugOrevein) { + String tDimensionName = aWorld.provider.getDimensionName(); GT_Log.out.println( "Generated Orevein:" + this.mWorldGenName + " chunkX="+aChunkX+ @@ -132,7 +133,8 @@ public class GT_Worldgen_GT_Ore_Layer " Secondary="+placeCount[1]+" "+new ItemStack(GregTech_API.sBlockOres1,1,mSecondaryMeta).getDisplayName()+ " Between="+placeCount[2]+" "+new ItemStack(GregTech_API.sBlockOres1,1,mBetweenMeta).getDisplayName()+ " Primary="+placeCount[0]+" "+new ItemStack(GregTech_API.sBlockOres1,1,mPrimaryMeta).getDisplayName()+ - " Sporadic="+placeCount[3]+" "+new ItemStack(GregTech_API.sBlockOres1,1,mSporadicMeta).getDisplayName() + " Sporadic="+placeCount[3]+" "+new ItemStack(GregTech_API.sBlockOres1,1,mSporadicMeta).getDisplayName() + + " Dimension=" + tDimensionName ); } // Didn't place anything, return false diff --git a/src/main/java/gregtech/common/GT_Worldgenerator.java b/src/main/java/gregtech/common/GT_Worldgenerator.java index a99da09916..47990cae64 100644 --- a/src/main/java/gregtech/common/GT_Worldgenerator.java +++ b/src/main/java/gregtech/common/GT_Worldgenerator.java @@ -18,6 +18,8 @@ import net.minecraft.world.gen.ChunkProviderHell; import static gregtech.api.enums.GT_Values.D1; import static gregtech.api.enums.GT_Values.oreveinPercentage; import static gregtech.api.enums.GT_Values.debugWorldGen; +import static gregtech.api.enums.GT_Values.debugOrevein; +import static gregtech.api.enums.GT_Values.oreveinAttempts; import java.util.ArrayList; import java.util.List; @@ -120,7 +122,7 @@ public class GT_Worldgenerator int tRandomWeight; int i; - for (i = 0; (i < 256) && (temp); i++) { + for (i = 0; (i < oreveinAttempts) && (temp); i++) { tRandomWeight = this.mRandom.nextInt(GT_Worldgen_GT_Ore_Layer.sWeight); for (GT_Worldgen tWorldGen : GT_Worldgen_GT_Ore_Layer.sList) { tRandomWeight -= ((GT_Worldgen_GT_Ore_Layer) tWorldGen).mWeight; @@ -136,15 +138,15 @@ public class GT_Worldgenerator } } } - if (D1 & temp) { + if (debugOrevein & temp) { GT_Log.out.println( "No orevein selected!" + - " @ dim="+ this.mDimensionType+ " chunkX="+ this.mX + " chunkZ="+ this.mZ + + " oreveinAttemps=" + oreveinAttempts + " dimensionName=" + tDimensionName ); - } else if (D1) + } else if (debugOrevein) { GT_Log.out.println( "Orevein took " + i + @@ -155,11 +157,10 @@ public class GT_Worldgenerator }else { - if((oreveinRNG >= oreveinPercentage) && (D1)) + if((oreveinRNG >= oreveinPercentage) && (debugOrevein)) { GT_Log.out.println( "Skipped orevein in this 3x3 chunk!" + - " @ dim="+ this.mDimensionType+ " chunkX="+ this.mX + " chunkZ="+ this.mZ + " RNG=" + oreveinRNG + @@ -191,7 +192,7 @@ public class GT_Worldgenerator } else { - if (D1) { + if (debugOrevein) { GT_Log.out.println( "Skipped chunk, not 3x3 center" + " @ dim="+this.mDimensionType+ @@ -214,7 +215,7 @@ public class GT_Worldgenerator if ((GT_Worldgen_GT_Ore_Layer.sWeight > 0) && (GT_Worldgen_GT_Ore_Layer.sList.size() > 0)) { boolean temp = true; int tRandomWeight; - for (int i = 0; (i < 256) && (temp); i++) { + for (int i = 0; (i < oreveinAttempts) && (temp); i++) { tRandomWeight = aRandom.nextInt(GT_Worldgen_GT_Ore_Layer.sWeight); for (GT_Worldgen_GT_Ore_Layer tWorldGen : GT_Worldgen_GT_Ore_Layer.sList) { tRandomWeight -= ((GT_Worldgen_GT_Ore_Layer) tWorldGen).mWeight; -- cgit