Merge pull request #2399 from Lazzzycatwastaken/NTMRUINS1

Sludgening is beginning
This commit is contained in:
HbmMods 2025-08-31 12:58:38 +02:00 committed by GitHub
commit be78cf3a43
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 187 additions and 82 deletions

View File

@ -10,8 +10,8 @@ public class StructureConfig {
public static int enableStructures = 2;
public static int structureMinChunks = 8;
public static int structureMaxChunks = 24;
public static int structureMinChunks = 4;
public static int structureMaxChunks = 12;
public static double lootAmountFactor = 1D;
@ -25,15 +25,15 @@ public class StructureConfig {
enableStructures = CommonConfig.parseStructureFlag(unparsedStructureFlag);
structureMinChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.01_structureMinChunks", "Minimum non-zero distance between structures in chunks (Settings lower than 8 may be problematic).", 8);
structureMaxChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.02_structureMaxChunks", "Maximum non-zero distance between structures in chunks.", 24);
structureMinChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.01_structureMinChunks", "Minimum non-zero distance between structures in chunks (Settings lower than 8 may be problematic).", 4);
structureMaxChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.02_structureMaxChunks", "Maximum non-zero distance between structures in chunks.", 16);
lootAmountFactor = CommonConfig.createConfigDouble(config, CATEGORY_STRUCTURES, "5.03_lootAmountFactor", "General factor for loot spawns. Applies to spawned IInventories, not loot blocks.", 1D);
debugStructures = CommonConfig.createConfigBool(config, CATEGORY_STRUCTURES, "5.04_debugStructures", "If enabled, special structure blocks like jigsaw blocks will not be transformed after generating", false);
structureMinChunks = CommonConfig.setDef(structureMinChunks, 8);
structureMaxChunks = CommonConfig.setDef(structureMaxChunks, 24);
structureMinChunks = CommonConfig.setDef(structureMinChunks, 4);
structureMaxChunks = CommonConfig.setDef(structureMaxChunks, 12);
if(structureMinChunks > structureMaxChunks) {
MainRegistry.logger.error("Fatal error config: Minimum value has been set higher than the maximum value!");

View File

@ -21,9 +21,10 @@ public class ItemPoolsPile {
public static final String POOL_PILE_MAKESHIFT_PLATES = "POOL_PILE_MAKESHIFT_PLATES";
public static final String POOL_PILE_MAKESHIFT_WIRE = "POOL_PILE_MAKESHIFT_WIRE";
public static final String POOL_PILE_NUKE_STORAGE = "POOL_PILE_NUKE_STORAGE";
public static final String POOL_PILE_OF_GARBAGE = "POOL_PILE_OF_GARBAGE";
public static void init() {
//items found in glyphid hives
new ItemPool(POOL_PILE_HIVE) {{
this.pool = new WeightedRandomChestContent[] {
@ -56,7 +57,7 @@ public class ItemPoolsPile {
weighted(Items.experience_bottle, 0, 1, 3, 5),
};
}};
//items found in glyphid bone piles
new ItemPool(POOL_PILE_BONES) {{
this.pool = new WeightedRandomChestContent[] {
@ -65,7 +66,7 @@ public class ItemPoolsPile {
weighted(ModItems.biomass, 0, 1, 1, 2)
};
}};
//bottlecap stashess
new ItemPool(POOL_PILE_CAPS) {{
this.pool = new WeightedRandomChestContent[] {
@ -74,7 +75,7 @@ public class ItemPoolsPile {
weighted(ModItems.cap_sparkle, 0, 4, 4, 1),
};
}};
//medicine stashes
new ItemPool(POOL_PILE_MED_SYRINGE) {{
this.pool = new WeightedRandomChestContent[] {
@ -91,13 +92,13 @@ public class ItemPoolsPile {
weighted(ModItems.siox, 0, 1, 1, 5),
};
}};
//makeshift gun
new ItemPool(POOL_PILE_MAKESHIFT_GUN) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.gun_maresleg, 0, 1, 1, 10) }; }};
new ItemPool(POOL_PILE_MAKESHIFT_WRENCH) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.wrench, 0, 1, 1, 10) }; }};
new ItemPool(POOL_PILE_MAKESHIFT_PLATES) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.plate_steel, 0, 1, 1, 10) }; }};
new ItemPool(POOL_PILE_MAKESHIFT_WIRE) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.wire_fine, Mats.MAT_ALUMINIUM.id, 1, 1, 10) }; }};
new ItemPool(POOL_PILE_NUKE_STORAGE) {{
this.pool = new WeightedRandomChestContent[] {
weighted(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD.ordinal(), 1, 1, 50),
@ -106,5 +107,34 @@ public class ItemPoolsPile {
};
}};
new ItemPool(POOL_PILE_OF_GARBAGE) {{
this.pool = new WeightedRandomChestContent[] {
weighted(ModItems.pipe, 2600, 0, 2, 20),
weighted(ModItems.scrap, 0, 1, 5, 20),
weighted(ModItems.wire_fine, 8200, 1, 2, 20),
weighted(ModItems.dust, 0, 1, 3, 40),
weighted(ModItems.dust_tiny, 0, 1, 7, 40),
weighted(ModItems.powder_cement, 0, 1, 6, 40),
weighted(ModItems.nugget_lead, 0, 0, 3, 20),
weighted(ModItems.wire_fine, 0, 0, 3, 20),
weighted(ModItems.powder_ash, 0, 0, 1, 15),
weighted(ModItems.plate_lead, 0, 0, 1, 15),
weighted(Items.string, 0, 0, 1, 15),
weighted(ModItems.bolt, 8200, 0, 2, 15),
weighted(ModItems.pin, 0, 0, 2, 15),
weighted(ModItems.cap_nuka, 0, 0, 8, 15),
weighted(ModItems.plate_iron, 0, 0, 2, 15),
weighted(ModItems.fallout, 0, 0, 2, 15),
weighted(ModItems.coil_tungsten, 0, 0, 2, 15),
weighted(ModItems.can_empty, 0, 0, 1, 15),
weighted(ModItems.ingot_asbestos, 0, 0, 1, 15),
weighted(ModItems.syringe_metal_empty, 0, 0, 1, 15),
weighted(ModItems.syringe_empty, 0, 0, 1, 15),
weighted(ModItems.pipe_lead, 0, 0, 1, 5),
weighted(ModItems.motor, 0, 0, 1, 5),
weighted(ModItems.canned_conserve, 2, 0, 1, 5),
};
}};
}
}

View File

@ -41,8 +41,8 @@ public class HbmWorld {
private static void registerNTMFeatures() {
CivilianFeatures.registerComponents();
OfficeFeatures.registerComponents();
RuinFeatures.registerComponents();
// RuinFeatures.registerComponents();
BunkerComponents.registerComponents();
MapGenStructureIO.func_143031_a(SiloComponent.class, "NTMSiloComponent");
}
}
}

View File

@ -62,6 +62,17 @@ public class StructureManager {
public static final NBTStructure dish = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/dish.nbt"));
public static final NBTStructure radio_house = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/radio_house.nbt"));
public static final NBTStructure ntmruinsA = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsA.nbt"));
public static final NBTStructure ntmruinsB = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsB.nbt"));
public static final NBTStructure ntmruinsC = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsC.nbt"));
public static final NBTStructure ntmruinsD = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsD.nbt"));
public static final NBTStructure ntmruinsE = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsE.nbt"));
public static final NBTStructure ntmruinsF = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsF.nbt"));
public static final NBTStructure ntmruinsG = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsG.nbt"));
public static final NBTStructure ntmruinsH = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsH.nbt"));
public static final NBTStructure ntmruinsI = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsI.nbt"));
public static final NBTStructure ntmruinsJ = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/ntmruinsJ.nbt"));
public static final NBTStructure spire = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/spire.nbt"));
// public static final NBTStructure test_rot = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/test-rot.nbt"));

View File

@ -29,6 +29,7 @@ public class LootGenerator {
public static final String LOOT_GLYPHID_HIVE = "LOOT_GLYPHID_HIVE";
public static final String LOOT_METEOR = "LOOT_METEOR";
public static final String LOOT_FLAREGUN = "LOOT_FLAREGUN";
public static final String LOOT_SHIT = "LOOT_SHIT";
public static void applyLoot(World world, int x, int y, int z, String name) {
switch(name) {
@ -42,6 +43,7 @@ public class LootGenerator {
case LOOT_GLYPHID_HIVE: lootGlyphidHive(world, x, y, z);
case LOOT_METEOR: lootBookMeteor(world, x, y, z);
case LOOT_FLAREGUN: lootFlareGun(world, x, y, z);
case LOOT_SHIT: lootShit(world, x, y, z);
default: lootBones(world, x, y, z); break;
}
}
@ -233,4 +235,16 @@ public class LootGenerator {
0.25, k * 0.03125, 0.125);
}
}
public static void lootShit(World world, int x, int y, int z) {
TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z);
if(loot != null && loot.items.isEmpty()) {
int limit = world.rand.nextInt(3) + 3;
for(int i = 0; i < limit; i++) {
addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_OF_GARBAGE), world.rand), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5);
}
}
}
}

View File

@ -15,10 +15,10 @@ import com.hbm.world.gen.component.CivilianFeatures.NTMLab2;
import com.hbm.world.gen.component.CivilianFeatures.RuralHouse1;
import com.hbm.world.gen.component.OfficeFeatures.LargeOffice;
import com.hbm.world.gen.component.OfficeFeatures.LargeOfficeCorner;
import com.hbm.world.gen.component.RuinFeatures.NTMRuin1;
import com.hbm.world.gen.component.RuinFeatures.NTMRuin2;
import com.hbm.world.gen.component.RuinFeatures.NTMRuin3;
import com.hbm.world.gen.component.RuinFeatures.NTMRuin4;
//import com.hbm.world.gen.component.RuinFeatures.NTMRuin1;
//import com.hbm.world.gen.component.RuinFeatures.NTMRuin2;
//import com.hbm.world.gen.component.RuinFeatures.NTMRuin3;
//import com.hbm.world.gen.component.RuinFeatures.NTMRuin4;
import com.hbm.world.gen.component.SiloComponent;
import net.minecraft.world.World;
@ -124,26 +124,26 @@ public class MapGenNTMFeatures extends MapGenStructure {
*/
//TODO: Do something about this so it's nice-looking and easily readable. Plus, test compatibility against mods like BoP
if(rand.nextInt(3) == 0) { //Empty Ruin Structures
switch(rand.nextInt(4)) {
case 0:
NTMRuin1 ruin1 = new NTMRuin1(rand, i, j);
this.components.add(ruin1);
break;
case 1:
NTMRuin2 ruin2 = new NTMRuin2(rand, i, j);
this.components.add(ruin2);
break;
case 2:
NTMRuin3 ruin3 = new NTMRuin3(rand, i, j);
this.components.add(ruin3);
break;
case 3:
NTMRuin4 ruin4 = new NTMRuin4(rand, i, j);
this.components.add(ruin4);
}
// if(rand.nextInt(3) == 0) { //Empty Ruin Structures
// switch(rand.nextInt(4)) {
// case 0:
// NTMRuin1 ruin1 = new NTMRuin1(rand, i, j);
// this.components.add(ruin1);
// break;
// case 1:
// NTMRuin2 ruin2 = new NTMRuin2(rand, i, j);
// this.components.add(ruin2);
// break;
// case 2:
// NTMRuin3 ruin3 = new NTMRuin3(rand, i, j);
// this.components.add(ruin3);
// break;
// case 3:
// NTMRuin4 ruin4 = new NTMRuin4(rand, i, j);
// this.components.add(ruin4);
// }
} else if(biome.heightVariation <= 0.25F && rand.nextInt(10) == 0) { //for now our only restriction is kinda-flat biomes. that and chance might change idk
if(biome.heightVariation <= 0.25F && rand.nextInt(10) == 0) { //for now our only restriction is kinda-flat biomes. that and chance might change idk
SiloComponent silo = new SiloComponent(rand, i, j);
this.components.add(silo);
} else if(biome.temperature >= 1.0 && biome.rainfall == 0 && !(biome instanceof BiomeGenMesa)) { //Desert & Savannah

View File

@ -114,6 +114,56 @@ public class NTMWorldGenerator implements IWorldGenerator {
spawnWeight = 1;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin1") {{
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsA", StructureManager.ntmruinsA, -1) {{conformToTerrain = true;}};
spawnWeight = 20;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin2") {{
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsB", StructureManager.ntmruinsB, -1) {{conformToTerrain = true;}};
spawnWeight = 25;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin3") {{
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsC", StructureManager.ntmruinsC, -1) {{conformToTerrain = true;}};
spawnWeight = 25;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin4") {{
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsD", StructureManager.ntmruinsD, -1) {{conformToTerrain = true;}};
spawnWeight = 30;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin5") {{
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsE", StructureManager.ntmruinsE, -1) {{conformToTerrain = true;}};
spawnWeight = 30;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin6") {{
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsF", StructureManager.ntmruinsF, -1) {{conformToTerrain = true;}};
spawnWeight = 50;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin7") {{
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsG", StructureManager.ntmruinsG, -1) {{conformToTerrain = true;}};
spawnWeight = 50;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin8") {{
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsH", StructureManager.ntmruinsH, -1) {{conformToTerrain = true;}};
spawnWeight = 50;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin9") {{
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsI", StructureManager.ntmruinsI, -1) {{conformToTerrain = true;}};
spawnWeight = 50;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruin10") {{
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);

View File

@ -8,42 +8,42 @@ import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraft.world.gen.structure.StructureBoundingBox;
// Idk what i should do with these if you read this bob do whatever since it's not used anywhere
public class RuinFeatures {
public static void registerComponents() {
MapGenStructureIO.func_143031_a(NTMRuin1.class, "NTMRuin1");
MapGenStructureIO.func_143031_a(NTMRuin2.class, "NTMRuin2");
MapGenStructureIO.func_143031_a(NTMRuin3.class, "NTMRuin3");
MapGenStructureIO.func_143031_a(NTMRuin4.class, "NTMRuin4");
}
public static class NTMRuin1 extends Component {
private static ConcreteBricks RandomConcreteBricks = new ConcreteBricks();
public NTMRuin1() {
super();
}
public NTMRuin1(Random rand, int minX, int minZ) {
super(rand, minX, 64, minZ, 8, 6, 10);
}
@Override
public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) {
//System.out.println(this.coordBaseMode);
if(!this.setAverageHeight(world, box, this.boundingBox.minY)) {
return false;
}
//System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 8, 10, -1, box);
int pillarMetaWE = this.getPillarMeta(4);
int pillarMetaNS = this.getPillarMeta(8);
this.fillWithBlocks(world, box, 0, 0, 0, 0, 6, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall
this.fillWithMetadataBlocks(world, box, 1, 3, 0, 3, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false);
this.fillWithBlocks(world, box, 4, 0, 0, 4, 6 - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false);
@ -83,39 +83,39 @@ public class RuinFeatures {
this.fillWithRandomizedBlocks(world, box, 8, 0, 6, 8, 0, 6, false, rand, RandomConcreteBricks);
this.fillWithRandomizedBlocks(world, box, 8, 0, 10 - 2, 8, 1, 10 - 1, false, rand, RandomConcreteBricks);
this.fillWithRandomizedBlocks(world, box, 8, 2, 10 - 1, 8, 2, 10 - 1, false, rand, RandomConcreteBricks);
this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false);
return true;
}
}
public static class NTMRuin2 extends Component {
private static ConcreteBricks RandomConcreteBricks = new ConcreteBricks();
public NTMRuin2() {
super();
}
public NTMRuin2(Random rand, int minX, int minZ) {
super(rand, minX, 64, minZ, 7, 5, 10);
}
@Override
public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) {
//System.out.println(this.coordBaseMode);
if(!this.setAverageHeight(world, box, this.boundingBox.minY)) {
return false;
}
//System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 7, 10, -1, box);
int pillarMetaWE = this.getPillarMeta(4);
int pillarMetaNS = this.getPillarMeta(8);
this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall
this.fillWithMetadataBlocks(world, box, 1, 3, 0, 7 - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false);
this.fillWithBlocks(world, box, 7, 0, 0, 7, 5, 0, ModBlocks.concrete_pillar, Blocks.air, false);
@ -146,40 +146,40 @@ public class RuinFeatures {
this.fillWithRandomizedBlocks(world, box, 7, 0, 6, 7, 0, 10 - 1, false, rand, RandomConcreteBricks);
this.fillWithRandomizedBlocks(world, box, 7, 1, 6, 7, 1, 7, false, rand, RandomConcreteBricks);
this.fillWithRandomizedBlocks(world, box, 7, 1, 10 - 1, 7, 2, 10 - 1, false, rand, RandomConcreteBricks);
this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 7 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false);
return true;
}
}
public static class NTMRuin3 extends Component {
private static ConcreteBricks RandomConcreteBricks = new ConcreteBricks();
public NTMRuin3() {
super();
}
public NTMRuin3(Random rand, int minX, int minZ) {
super(rand, minX, 64, minZ, 8, 3, 10);
}
@Override
public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) {
//System.out.println(this.coordBaseMode);
if(!this.setAverageHeight(world, box, this.boundingBox.minY)) {
return false;
}
//System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, 10, -1, box);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 8, 0, 8, 10, -1, box);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 8, 0, -1, box);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 4, 8, 4, -1, box);
this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall
this.fillWithBlocks(world, box, 8, 0, 0, 8, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false);
this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 8 - 1, 0, 0, false, rand, RandomConcreteBricks);
@ -202,44 +202,44 @@ public class RuinFeatures {
this.fillWithBlocks(world, box, 4, 0, 4, 4, 2, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Center Wall
this.fillWithRandomizedBlocks(world, box, 3, 0, 4, 3, 1, 4, false, rand, RandomConcreteBricks);
this.fillWithRandomizedBlocks(world, box, 5, 0, 4, 8 - 1, 1, 4, false, rand, RandomConcreteBricks);
this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 8 - 1, 0, 3, Blocks.gravel, Blocks.air, false);
this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 5, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false);
return true;
}
}
public static class NTMRuin4 extends Component {
private static ConcreteBricks RandomConcreteBricks = new ConcreteBricks();
public NTMRuin4() {
super();
}
public NTMRuin4(Random rand, int minX, int minZ) {
super(rand, minX, 64, minZ, 10, 2, 11);
}
@Override
public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) {
//System.out.println(this.coordBaseMode);
if(!this.setAverageHeight(world, box, this.boundingBox.minY)) {
return false;
}
//System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, 11, -1, box);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 10, 5, 10, 11, -1, box);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, 5, 4, -1, box);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 11, 10 - 1, 11, -1, box);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 4, 0, -1, box);
placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 5, 10 - 1, 5, -1, box);
this.fillWithBlocks(world, box, 0, 0, 0, 0, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 1
this.fillWithBlocks(world, box, 5, 0, 0, 5, 2, 0, ModBlocks.concrete_pillar, Blocks.air, false);
this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 4, 0, 0, false, rand, RandomConcreteBricks);
@ -263,12 +263,12 @@ public class RuinFeatures {
this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 11 - 1, false, rand, RandomConcreteBricks); //Left Wall
this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 1, 1, false, rand, RandomConcreteBricks);
this.fillWithRandomizedBlocks(world, box, 0, 1, 4, 0, 1, 7, false, rand, RandomConcreteBricks);
this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 4, 0, 5, Blocks.gravel, Blocks.air, false);
this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 6, 10 - 1, 0, 11 - 1, Blocks.gravel, Blocks.air, false);
return true;
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.