From daae6e96945a19a30614b51b122fdee49950b095 Mon Sep 17 00:00:00 2001 From: Lazzzycatwastaken Date: Thu, 18 Sep 2025 20:17:32 +0200 Subject: [PATCH] peak meter 100% --- .../java/com/hbm/config/StructureConfig.java | 82 ++++++++ .../com/hbm/world/gen/NTMWorldGenerator.java | 175 +++++++++--------- 2 files changed, 172 insertions(+), 85 deletions(-) diff --git a/src/main/java/com/hbm/config/StructureConfig.java b/src/main/java/com/hbm/config/StructureConfig.java index 5ce4c6d51..2ed7b40e3 100644 --- a/src/main/java/com/hbm/config/StructureConfig.java +++ b/src/main/java/com/hbm/config/StructureConfig.java @@ -17,6 +17,50 @@ public class StructureConfig { public static boolean debugStructures = false; + public static boolean enableRuins = true; + public static boolean enableOceanStructures = true; + + public static int ruinsASpawnWeight = 10; + public static int ruinsBSpawnWeight = 12; + public static int ruinsCSpawnWeight = 12; + public static int ruinsDSpawnWeight = 12; + public static int ruinsESpawnWeight = 12; + public static int ruinsFSpawnWeight = 12; + public static int ruinsGSpawnWeight = 12; + public static int ruinsHSpawnWeight = 12; + public static int ruinsISpawnWeight = 12; + public static int ruinsJSpawnWeight = 12; // Total 120 (used to be 220) + + public static int plane1SpawnWeight = 25; + public static int plane2SpawnWeight = 25; + + public static int desertShack1SpawnWeight = 18; + public static int desertShack2SpawnWeight = 20; + public static int desertShack3SpawnWeight = 22; + + public static int laboratorySpawnWeight = 20; + public static int lighthouseSpawnWeight = 4; + public static int oilRigSpawnWeight = 5; + public static int beachedPatrolSpawnWeight = 15; + public static int vertibirdSpawnWeight = 6; + public static int vertibirdCrashedSpawnWeight = 10; + + public static int factorySpawnWeight = 40; + public static int radioSpawnWeight = 30; + public static int forestChemSpawnWeight = 30; + public static int forestPostSpawnWeight = 30; + + public static int spireSpawnWeight = 2; + public static int bunkerSpawnWeight = 6; + public static int dishSpawnWeight = 20; + public static int featuresSpawnWeight = 50; + + public static int aircraftCarrierSpawnWeight = 3; + + // --- Null weights + public static int plainsNullWeight = 4; + public static int oceanNullWeight = 15; + public static void loadFromConfig(Configuration config) { final String CATEGORY_STRUCTURES = CommonConfig.CATEGORY_STRUCTURES; @@ -32,6 +76,44 @@ public class StructureConfig { debugStructures = CommonConfig.createConfigBool(config, CATEGORY_STRUCTURES, "5.04_debugStructures", "If enabled, special structure blocks like jigsaw blocks will not be transformed after generating", false); + enableRuins = CommonConfig.createConfigBool(config, CATEGORY_STRUCTURES, "5.05_enableRuins", "Toggle for all ruin structures (A through J)", true); + enableOceanStructures = CommonConfig.createConfigBool(config, CATEGORY_STRUCTURES, "5.06_enableOceanStructures", "Toggle for ocean structures. (Aircraft carrier, oil rig, lighthouse.)", true); + + spireSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.07_spireSpawnWeight", "Spawn weight for spire structure.", 2); + featuresSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.08_featuresSpawnWeight", "Spawn weight for misc structures (ex. Houses, offices.)", 50); + bunkerSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.09_bunkerSpawnWeight", "Spawn weight for bunker structure.", 6); + vertibirdSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.10_vertibirdSpawnWeight", "Spawn weight for vertibird structure.", 6); + vertibirdCrashedSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.11_crashedVertibirdSpawnWeight", "Spawn weight for crashed vertibird structure.", 10); + aircraftCarrierSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.12_aircraftCarrierSpawnWeight", "Spawn weight for aircraft carrier structure.", 3); + oilRigSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.13_oilRigSpawnWeight", "Spawn weight for oil rig structure.", 5); + lighthouseSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.14_lighthouseSpawnWeight", "Spawn weight for lighthouse structure.", 1); + beachedPatrolSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.15_beachedPatrolSpawnWeight", "Spawn weight for beached patrol structure.", 15); + dishSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.16_dishSpawnWeight", "Spawn weight for dish structures.", 10); + forestChemSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.17_forestChemSpawnWeight", "Spawn weight for forest chemical plant structure.", 30); + plane1SpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.18_plane1SpawnWeight", "Spawn weight for crashed plane 1 structure.", 25); + plane2SpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.19_plane2SpawnWeight", "Spawn weight for crashed plane 2 structure.", 25); + desertShack1SpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.20_desertShack1SpawnWeight", "Spawn weight for desert shack 1 structure.", 18); + desertShack2SpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.21_desertShack2SpawnWeight", "Spawn weight for desert shack 2 structure.", 20); + desertShack3SpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.22_desertShack3SpawnWeight", "Spawn weight for desert shack 3 structure.", 22); + laboratorySpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.23_laboratorySpawnWeight", "Spawn weight for laboratory structure/", 20); + forestPostSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.24_forestPostSpawnWeight", "Spawn weight for forest post structure.", 30); + ruinsASpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.25_ruinASpawnWeight", "Spawn weight for ruin A structure.", 10); + ruinsBSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.26_ruinBSpawnWeight", "Spawn weight for ruin B structure.", 12); + ruinsCSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.27_ruinCSpawnWeight", "Spawn weight for ruin C structure.", 12); + ruinsDSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.28_ruinDSpawnWeight", "Spawn weight for ruin D structure.", 12); + ruinsESpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.29_ruinESpawnWeight", "Spawn weight for ruin E structure.", 12); + ruinsFSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.30_ruinFSpawnWeight", "Spawn weight for ruin F structure.", 12); + ruinsGSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.31_ruinGSpawnWeight", "Spawn weight for ruin G structure.", 12); + ruinsHSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.32_ruinHSpawnWeight", "Spawn weight for ruin H structure.", 12); + ruinsISpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.33_ruinISpawnWeight", "Spawn weight for ruin I structure.", 12); + ruinsJSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.34_ruinJSpawnWeight", "Spawn weight for ruin J structure.", 12); + radioSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.35_radioSpawnWeight", "Spawn weight for radio structure.", 25); + factorySpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.36_factorySpawnWeight", "Spawn weight for factory structure.", 40); + + plainsNullWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.37_plainsNullWeight", "Null spawn weight for plains biome", 20); + oceanNullWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.38_oceanNullWeight", "Null spawn weight for ocean biomes", 35); + + structureMinChunks = CommonConfig.setDef(structureMinChunks, 4); structureMaxChunks = CommonConfig.setDef(structureMaxChunks, 12); diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 4e61206ff..8d951f8a3 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -40,60 +40,38 @@ public class NTMWorldGenerator implements IWorldGenerator { final List oceanBiomes = Arrays.asList(new BiomeGenBase[] { BiomeGenBase.ocean, BiomeGenBase.deepOcean }); final List beachBiomes = Arrays.asList(new BiomeGenBase[] { BiomeGenBase.beach, BiomeGenBase.stoneBeach, BiomeGenBase.coldBeach }); final List lighthouseBiomes = Arrays.asList(new BiomeGenBase[] { BiomeGenBase.ocean, BiomeGenBase.deepOcean, BiomeGenBase.beach, BiomeGenBase.stoneBeach, BiomeGenBase.coldBeach }); - final List flatbiomes = Arrays.asList(new BiomeGenBase[] { BiomeGenBase.plains, BiomeGenBase.icePlains, BiomeGenBase.desert }); + final List flatbiomes = Arrays.asList(BiomeGenBase.plains,BiomeGenBase.icePlains,BiomeGenBase.desert, BiomeGenBase.forest, BiomeGenBase.taiga, BiomeGenBase.coldTaiga, BiomeGenBase.savanna, BiomeGenBase.savannaPlateau, BiomeGenBase.birchForest); + /// SPIRE /// NBTStructure.registerStructure(0, new SpawnCondition("spire") {{ canSpawn = biome -> biome.heightVariation <= 0.05F && !invalidBiomes.contains(biome); structure = new JigsawPiece("spire", StructureManager.spire, -1); - spawnWeight = 2; + spawnWeight = StructureConfig.spireSpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("features") {{ canSpawn = biome -> !invalidBiomes.contains(biome); start = d -> new MapGenNTMFeatures.Start(d.getW(), d.getX(), d.getY(), d.getZ()); - spawnWeight = 14 * 4; + spawnWeight = StructureConfig.featuresSpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("bunker") {{ canSpawn = biome -> !invalidBiomes.contains(biome); start = d -> new BunkerStart(d.getW(), d.getX(), d.getY(), d.getZ()); - spawnWeight = 1 * 4; + spawnWeight = StructureConfig.bunkerSpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("vertibird") {{ canSpawn = biome -> !biome.canSpawnLightningBolt() && biome.temperature >= 2F; structure = new JigsawPiece("vertibird", StructureManager.vertibird, -3); - spawnWeight = 3 * 4; + spawnWeight = StructureConfig.vertibirdSpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("crashed_vertibird") {{ canSpawn = biome -> !biome.canSpawnLightningBolt() && biome.temperature >= 2F; structure = new JigsawPiece("crashed_vertibird", StructureManager.crashed_vertibird, -10); - spawnWeight = 3 * 4; - }}); - - NBTStructure.registerStructure(0, new SpawnCondition("aircraft_carrier") {{ - canSpawn = oceanBiomes::contains; - structure = new JigsawPiece("aircraft_carrier", StructureManager.aircraft_carrier, -6); - maxHeight = 42; - spawnWeight = 1; - }}); - - NBTStructure.registerStructure(0, new SpawnCondition("oil_rig") {{ - canSpawn = biome -> biome == BiomeGenBase.deepOcean; - structure = new JigsawPiece("oil_rig", StructureManager.oil_rig, -20); - maxHeight = 12; - minHeight = 11; - spawnWeight = 2; - }}); - - NBTStructure.registerStructure(0, new SpawnCondition("lighthouse") {{ - canSpawn = lighthouseBiomes::contains; - structure = new JigsawPiece("lighthouse", StructureManager.lighthouse, -40); - maxHeight = 29; - minHeight = 28; - spawnWeight = 2; + spawnWeight = StructureConfig.vertibirdCrashedSpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("beached_patrol") {{ @@ -101,7 +79,30 @@ public class NTMWorldGenerator implements IWorldGenerator { structure = new JigsawPiece("beached_patrol", StructureManager.beached_patrol, -5); minHeight = 58; maxHeight = 67; - spawnWeight = 8; + spawnWeight = StructureConfig.beachedPatrolSpawnWeight; + }}); + + NBTStructure.registerStructure(0, new SpawnCondition("aircraft_carrier") {{ + canSpawn = oceanBiomes::contains; + structure = new JigsawPiece("aircraft_carrier", StructureManager.aircraft_carrier, -6); + maxHeight = 42; + spawnWeight = StructureConfig.enableOceanStructures ? StructureConfig.aircraftCarrierSpawnWeight : 0; + }}); + + NBTStructure.registerStructure(0, new SpawnCondition("oil_rig") {{ + canSpawn = biome -> biome == BiomeGenBase.deepOcean; + structure = new JigsawPiece("oil_rig", StructureManager.oil_rig, -20); + maxHeight = 12; + minHeight = 11; + spawnWeight = StructureConfig.enableOceanStructures ? StructureConfig.oilRigSpawnWeight : 0; + }}); + + NBTStructure.registerStructure(0, new SpawnCondition("lighthouse") {{ + canSpawn = lighthouseBiomes::contains; + structure = new JigsawPiece("lighthouse", StructureManager.lighthouse, -40); + maxHeight = 29; + minHeight = 28; + spawnWeight = StructureConfig.enableOceanStructures ? StructureConfig.lighthouseSpawnWeight : 0; }}); NBTStructure.registerStructure(0, new SpawnCondition("dish") {{ @@ -109,120 +110,124 @@ public class NTMWorldGenerator implements IWorldGenerator { structure = new JigsawPiece("dish", StructureManager.dish, -10); minHeight = 53; maxHeight = 65; - spawnWeight = 1; + spawnWeight = StructureConfig.dishSpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("forestchem") {{ - canSpawn = biome -> biome == BiomeGenBase.forest; + canSpawn = biome -> biome.heightVariation <= 0.3F; structure = new JigsawPiece("forest_chem", StructureManager.forest_chem, -9); - spawnWeight = 50; + spawnWeight = StructureConfig.forestChemSpawnWeight; }}); + + NBTStructure.registerStructure(0, new SpawnCondition("labolatory") {{ + canSpawn = flatbiomes::contains; + structure = new JigsawPiece("laboratory", StructureManager.laboratory, -10); + minHeight = 53; + maxHeight = 65; + spawnWeight = StructureConfig.laboratorySpawnWeight; + }}); + + NBTStructure.registerStructure(0, new SpawnCondition("forest_post") {{ + canSpawn = biome -> biome.heightVariation <= 0.3F; + structure = new JigsawPiece("forest_post", StructureManager.forest_post, -9); + spawnWeight = StructureConfig.forestPostSpawnWeight; + }}); + + NBTStructure.registerStructure(0, new SpawnCondition("radio") {{ + canSpawn = flatbiomes::contains; + structure = new JigsawPiece("radio_house", StructureManager.radio_house, -6); + spawnWeight = StructureConfig.radioSpawnWeight; + }}); + + NBTStructure.registerStructure(0, new SpawnCondition("factory") {{ + canSpawn = flatbiomes::contains; + structure = new JigsawPiece("factory", StructureManager.factory, -10); + spawnWeight = StructureConfig.factorySpawnWeight; + }}); + NBTStructure.registerStructure(0, new SpawnCondition("plane1") {{ - canSpawn = biome -> biome == BiomeGenBase.forest || biome == BiomeGenBase.plains; + canSpawn = biome -> biome.heightVariation <= 0.3F; structure = new JigsawPiece("crashed_plane_1", StructureManager.plane1, -5); - spawnWeight = 50; + spawnWeight = StructureConfig.plane1SpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("plane2") {{ - canSpawn = biome -> biome == BiomeGenBase.forest || biome == BiomeGenBase.plains; + canSpawn = biome -> biome.heightVariation <= 0.3F; structure = new JigsawPiece("crashed_plane_2", StructureManager.plane2, -8); - spawnWeight = 50; + spawnWeight = StructureConfig.plane2SpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("desert_shack_1") {{ canSpawn = biome -> biome == BiomeGenBase.desert; structure = new JigsawPiece("desert_shack_1", StructureManager.desert_shack_1, -7); - spawnWeight = 20; + spawnWeight = StructureConfig.desertShack1SpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("desert_shack_2") {{ canSpawn = biome -> biome == BiomeGenBase.desert; structure = new JigsawPiece("desert_shack_2", StructureManager.desert_shack_2, -7); - spawnWeight = 25; + spawnWeight = StructureConfig.desertShack2SpawnWeight; }}); NBTStructure.registerStructure(0, new SpawnCondition("desert_shack_3") {{ canSpawn = biome -> biome == BiomeGenBase.desert; structure = new JigsawPiece("desert_shack_3", StructureManager.desert_shack_3, -5); - spawnWeight = 30; + spawnWeight = StructureConfig.desertShack3SpawnWeight; }}); - NBTStructure.registerStructure(0, new SpawnCondition("labolatory") {{ - canSpawn = biome -> biome == BiomeGenBase.plains; - structure = new JigsawPiece("laboratory", StructureManager.laboratory, -10); - minHeight = 53; - maxHeight = 65; - spawnWeight = 8; - }}); - NBTStructure.registerStructure(0, new SpawnCondition("forest_post") {{ - canSpawn = biome -> biome == BiomeGenBase.forest; - structure = new JigsawPiece("forest_post", StructureManager.forest_post, -9); - spawnWeight = 40; - }}); - - NBTStructure.registerStructure(0, new SpawnCondition("ruin1") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinA") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsA", StructureManager.ntmruinsA, -1) {{conformToTerrain = true;}}; - spawnWeight = 20; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsASpawnWeight : 0; }}); - NBTStructure.registerStructure(0, new SpawnCondition("ruin2") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinB") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsB", StructureManager.ntmruinsB, -1) {{conformToTerrain = true;}}; - spawnWeight = 25; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsBSpawnWeight : 0; }}); - NBTStructure.registerStructure(0, new SpawnCondition("ruin3") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinC") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsC", StructureManager.ntmruinsC, -1) {{conformToTerrain = true;}}; - spawnWeight = 25; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsCSpawnWeight : 0; }}); - NBTStructure.registerStructure(0, new SpawnCondition("ruin4") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinD") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsD", StructureManager.ntmruinsD, -1) {{conformToTerrain = true;}}; - spawnWeight = 30; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsDSpawnWeight : 0; }}); - NBTStructure.registerStructure(0, new SpawnCondition("ruin5") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinE") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsE", StructureManager.ntmruinsE, -1) {{conformToTerrain = true;}}; - spawnWeight = 30; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsESpawnWeight : 0; }}); - NBTStructure.registerStructure(0, new SpawnCondition("ruin6") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinF") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsF", StructureManager.ntmruinsF, -1) {{conformToTerrain = true;}}; - spawnWeight = 35; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsFSpawnWeight : 0; }}); - NBTStructure.registerStructure(0, new SpawnCondition("ruin7") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinG") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsG", StructureManager.ntmruinsG, -1) {{conformToTerrain = true;}}; - spawnWeight = 35; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsGSpawnWeight : 0; }}); - NBTStructure.registerStructure(0, new SpawnCondition("ruin8") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinH") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsH", StructureManager.ntmruinsH, -1) {{conformToTerrain = true;}}; - spawnWeight = 35; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsHSpawnWeight : 0; }}); - NBTStructure.registerStructure(0, new SpawnCondition("ruin9") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinI") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsI", StructureManager.ntmruinsI, -1) {{conformToTerrain = true;}}; - spawnWeight = 35; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsISpawnWeight : 0; }}); - NBTStructure.registerStructure(0, new SpawnCondition("ruin10") {{ + NBTStructure.registerStructure(0, new SpawnCondition("ruinJ") {{ canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt(); structure = new JigsawPiece("NTMRuinsJ", StructureManager.ntmruinsJ, -1) {{conformToTerrain = true;}}; - spawnWeight = 35; - }}); - NBTStructure.registerStructure(0, new SpawnCondition("radio") {{ - canSpawn = flatbiomes::contains; - structure = new JigsawPiece("radio_house", StructureManager.radio_house, -6); - spawnWeight = 30; - }}); - NBTStructure.registerStructure(0, new SpawnCondition("factory") {{ - canSpawn = flatbiomes::contains; - structure = new JigsawPiece("factory", StructureManager.factory, -6); - spawnWeight = 30; + spawnWeight = StructureConfig.enableRuins ? StructureConfig.ruinsJSpawnWeight : 0; }}); - NBTStructure.registerNullWeight(0, 2, biome -> biome == BiomeGenBase.plains); - NBTStructure.registerNullWeight(0, 4, oceanBiomes::contains); + NBTStructure.registerNullWeight(0, StructureConfig.plainsNullWeight, biome -> biome == BiomeGenBase.plains); + NBTStructure.registerNullWeight(0, StructureConfig.oceanNullWeight, oceanBiomes::contains); Map bricks = new HashMap() {{ put(ModBlocks.meteor_brick, new MeteorBricks());