Readded the Phantasmagoric Inferno
This commit is contained in:
parent
43414b7ca3
commit
5d1cb62cfd
10 changed files with 210 additions and 28 deletions
|
@ -16,6 +16,5 @@ public class BiomeGenBloodyHeap extends BOPNetherBiome
|
|||
|
||||
//customBiomeDecorator.gravesPerChunk = 1;
|
||||
this.bopWorldFeatures.setFeature("waspHivesPerChunk", 1);
|
||||
//customBiomeDecorator.generateUndergroundLakes = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
package biomesoplenty.common.biomes.nether;
|
||||
|
||||
import net.minecraft.world.gen.feature.WorldGenFire;
|
||||
import biomesoplenty.api.BOPBlockHelper;
|
||||
import biomesoplenty.common.biomes.BOPNetherBiome;
|
||||
import net.minecraft.world.gen.feature.WorldGenFire;
|
||||
import biomesoplenty.common.world.features.WorldGenBOPFlora;
|
||||
|
||||
public class BiomeGenPhantasmagoricInferno extends BOPNetherBiome
|
||||
{
|
||||
|
@ -15,8 +16,14 @@ public class BiomeGenPhantasmagoricInferno extends BOPNetherBiome
|
|||
this.topBlock = BOPBlockHelper.get("ash");
|
||||
this.fillerBlock = BOPBlockHelper.get("ash");
|
||||
|
||||
this.bopWorldFeatures.setFeature("netherLavaLakesPerChunk", 20);
|
||||
this.bopWorldFeatures.setFeature("smolderingGrassPerChunk", 8);
|
||||
//customBiomeDecorator.gravesPerChunk = 1;
|
||||
this.bopWorldFeatures.setFeature("waspHivesPerChunk", 1);
|
||||
this.bopWorldFeatures.setFeature("generateAsh", true);
|
||||
|
||||
this.bopWorldFeatures.setFeature("bopGrassPerChunk", 8);
|
||||
|
||||
|
||||
this.bopWorldFeatures.weightedGrassGen.put(new WorldGenFire(), 1D);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ public class BOPConfigurationIDs
|
|||
|
||||
public static int netherGardenID;
|
||||
public static int netherDesertID;
|
||||
public static int netherLavaID;
|
||||
public static int netherPhantasmagoricInfernoID;
|
||||
public static int netherBoneID;
|
||||
public static int netherBloodyHeapID;
|
||||
|
||||
|
@ -182,7 +182,7 @@ public class BOPConfigurationIDs
|
|||
|
||||
netherGardenID = config.get("Biome IDs", "Undergarden (Nether) ID", 185).getInt();
|
||||
netherDesertID = config.get("Biome IDs", "Corrupted Sands (Nether) ID", 186).getInt();
|
||||
netherLavaID = config.get("Biome IDs", "Phantasmagoric Inferno (Nether) ID", 187).getInt();
|
||||
netherPhantasmagoricInfernoID = config.get("Biome IDs", "Phantasmagoric Inferno (Nether) ID", 187).getInt();
|
||||
netherBoneID = config.get("Biome IDs", "Boneyard (Nether) ID", 188).getInt();
|
||||
netherBloodyHeapID = config.get("Biome IDs", "Bloody Heap (Nether) ID", 189).getInt();
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import net.minecraftforge.common.BiomeManager;
|
|||
import biomesoplenty.api.BOPBiomeHelper;
|
||||
import biomesoplenty.api.BOPBiomeHelper.TemperatureType;
|
||||
import biomesoplenty.common.biomes.nether.BiomeGenBloodyHeap;
|
||||
import biomesoplenty.common.biomes.nether.BiomeGenPhantasmagoricInferno;
|
||||
import biomesoplenty.common.biomes.overworld.BiomeGenAlps;
|
||||
import biomesoplenty.common.biomes.overworld.BiomeGenArctic;
|
||||
import biomesoplenty.common.biomes.overworld.BiomeGenBambooForest;
|
||||
|
@ -151,6 +152,7 @@ public class BOPBiomes
|
|||
registerBiome(new BiomeEntry(new BiomeGenWoodland(BOPConfigurationIDs.woodlandID).setBiomeName("Woodland"), TemperatureType.WARM, 10));
|
||||
|
||||
registerBiome(new BiomeEntry(new BiomeGenBloodyHeap(BOPConfigurationIDs.netherBloodyHeapID).setBiomeName("Bloody Heap"), 10), -1);
|
||||
registerBiome(new BiomeEntry(new BiomeGenPhantasmagoricInferno(BOPConfigurationIDs.netherPhantasmagoricInfernoID).setBiomeName("Phantasmagoric Inferno"), 10), -1);
|
||||
}
|
||||
|
||||
private static void addSpawnBiomes()
|
||||
|
|
|
@ -12,7 +12,6 @@ import java.util.Random;
|
|||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockFalling;
|
||||
import net.minecraft.block.BlockSand;
|
||||
import net.minecraft.entity.EnumCreatureType;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.IProgressUpdate;
|
||||
|
@ -32,7 +31,6 @@ import net.minecraft.world.gen.feature.WorldGenHellLava;
|
|||
import net.minecraft.world.gen.feature.WorldGenMinable;
|
||||
import net.minecraft.world.gen.structure.MapGenNetherBridge;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.terraingen.ChunkProviderEvent;
|
||||
import net.minecraftforge.event.terraingen.DecorateBiomeEvent;
|
||||
import net.minecraftforge.event.terraingen.PopulateChunkEvent;
|
||||
import net.minecraftforge.event.terraingen.TerrainGen;
|
||||
|
|
|
@ -79,6 +79,8 @@ public class BOPWorldFeatures
|
|||
addFeature("wasteland3PerChunk", 0);
|
||||
addFeature("wasteland4PerChunk", 0);
|
||||
addFeature("wastelandRockPilesPerChunk", 0);
|
||||
addFeature("smolderingGrassPerChunk", 0);
|
||||
addFeature("netherLavaLakesPerChunk", 0);
|
||||
|
||||
//Nether Features
|
||||
addFeature("waspHivesPerChunk", 0);
|
||||
|
|
|
@ -1,23 +1,25 @@
|
|||
package biomesoplenty.common.world.features;
|
||||
|
||||
import biomesoplenty.common.world.decoration.BOPDecorationManager;
|
||||
import biomesoplenty.common.world.generation.WorldGeneratorBOP;
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
|
||||
import java.util.Random;
|
||||
import biomesoplenty.api.BOPBlockHelper;
|
||||
import biomesoplenty.common.world.decoration.BOPDecorationManager;
|
||||
import biomesoplenty.common.world.generation.WorldGeneratorBOP;
|
||||
|
||||
public class WorldGenBOPTallGrass extends WorldGeneratorBOP
|
||||
{
|
||||
private Block tallGrass;
|
||||
private int tallGrassMetadata;
|
||||
|
||||
public WorldGenBOPTallGrass(Block p_i45466_1_, int p_i45466_2_)
|
||||
public WorldGenBOPTallGrass(Block tallGrass, int tallGrassMetadata)
|
||||
{
|
||||
this.tallGrass = p_i45466_1_;
|
||||
this.tallGrassMetadata = p_i45466_2_;
|
||||
this.tallGrass = tallGrass;
|
||||
this.tallGrassMetadata = tallGrassMetadata;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -41,9 +43,19 @@ public class WorldGenBOPTallGrass extends WorldGeneratorBOP
|
|||
int j1 = y + random.nextInt(4) - random.nextInt(4);
|
||||
int k1 = z + random.nextInt(8) - random.nextInt(8);
|
||||
|
||||
if (world.isAirBlock(i1, j1, k1) && this.tallGrass.canReplace(world, i1, j1, k1, 0, new ItemStack(this.tallGrass, 1, this.tallGrassMetadata)))
|
||||
if (this.tallGrass == BOPBlockHelper.get("grass"))
|
||||
{
|
||||
world.setBlock(i1, j1, k1, this.tallGrass, this.tallGrassMetadata, 2);
|
||||
if (world.isAirBlock(i1, j1, k1) && world.getBlock(i1, j1 - 1, k1) == BOPBlockHelper.get("ash") || world.getBlock(i1, j1 - 1, k1) == Blocks.netherrack)
|
||||
{
|
||||
world.setBlock(i1, j1 - 1, k1, this.tallGrass, this.tallGrassMetadata, 2);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (world.isAirBlock(i1, j1, k1) && (this.tallGrass.canReplace(world, i1, j1, k1, 0, new ItemStack(this.tallGrass, 1, this.tallGrassMetadata))))
|
||||
{
|
||||
world.setBlock(i1, j1, k1, this.tallGrass, this.tallGrassMetadata, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,7 +69,7 @@ public class WorldGenBOPTallGrass extends WorldGeneratorBOP
|
|||
{
|
||||
int randX = x + random.nextInt(16) + 8;
|
||||
int randZ = z + random.nextInt(16) + 8;
|
||||
int randY = random.nextInt(world.getHeightValue(randX, randZ) * 2);
|
||||
int randY = this.tallGrass == BOPBlockHelper.get("grass") ? random.nextInt(256) : random.nextInt(world.getHeightValue(randX, randZ) * 2);
|
||||
|
||||
this.generate(world, random, randX, randY, randZ);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public class WorldGenBOPGrassManager extends WorldGeneratorBOP
|
|||
{
|
||||
int randX = x + random.nextInt(16) + 8;
|
||||
int randZ = z + random.nextInt(16) + 8;
|
||||
int randY = random.nextInt(world.getHeightValue(randX, randZ) * 2);
|
||||
int randY = random.nextInt(256);
|
||||
|
||||
this.generate(world, random, randX, randY, randZ);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,141 @@
|
|||
package biomesoplenty.common.world.features.nether;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.EnumSkyBlock;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import biomesoplenty.common.world.decoration.BOPDecorationManager;
|
||||
import biomesoplenty.common.world.generation.WorldGeneratorBOP;
|
||||
|
||||
public class WorldGenLakesNether extends WorldGeneratorBOP
|
||||
{
|
||||
public boolean generate(World world, Random rand, int x, int y, int z)
|
||||
{
|
||||
x -= 8;
|
||||
|
||||
for (z -= 8; y > 5 && world.isAirBlock(x, y, z); --y)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
if (y <= 4)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
y -= 4;
|
||||
boolean[] aboolean = new boolean[2048];
|
||||
int l = rand.nextInt(4) + 4;
|
||||
int i1;
|
||||
|
||||
for (i1 = 0; i1 < l; ++i1)
|
||||
{
|
||||
double d0 = rand.nextDouble() * 6.0D + 3.0D;
|
||||
double d1 = rand.nextDouble() * 4.0D + 2.0D;
|
||||
double d2 = rand.nextDouble() * 6.0D + 3.0D;
|
||||
double d3 = rand.nextDouble() * (16.0D - d0 - 2.0D) + 1.0D + d0 / 2.0D;
|
||||
double d4 = rand.nextDouble() * (8.0D - d1 - 4.0D) + 2.0D + d1 / 2.0D;
|
||||
double d5 = rand.nextDouble() * (16.0D - d2 - 2.0D) + 1.0D + d2 / 2.0D;
|
||||
|
||||
for (int k1 = 1; k1 < 15; ++k1)
|
||||
{
|
||||
for (int l1 = 1; l1 < 15; ++l1)
|
||||
{
|
||||
for (int i2 = 1; i2 < 7; ++i2)
|
||||
{
|
||||
double d6 = ((double)k1 - d3) / (d0 / 2.0D);
|
||||
double d7 = ((double)i2 - d4) / (d1 / 2.0D);
|
||||
double d8 = ((double)l1 - d5) / (d2 / 2.0D);
|
||||
double d9 = d6 * d6 + d7 * d7 + d8 * d8;
|
||||
|
||||
if (d9 < 1.0D)
|
||||
{
|
||||
aboolean[(k1 * 16 + l1) * 8 + i2] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int j1;
|
||||
int j2;
|
||||
boolean flag;
|
||||
|
||||
for (i1 = 0; i1 < 16; ++i1)
|
||||
{
|
||||
for (j2 = 0; j2 < 16; ++j2)
|
||||
{
|
||||
for (j1 = 0; j1 < 8; ++j1)
|
||||
{
|
||||
flag = !aboolean[(i1 * 16 + j2) * 8 + j1] && (i1 < 15 && aboolean[((i1 + 1) * 16 + j2) * 8 + j1] || i1 > 0 && aboolean[((i1 - 1) * 16 + j2) * 8 + j1] || j2 < 15 && aboolean[(i1 * 16 + j2 + 1) * 8 + j1] || j2 > 0 && aboolean[(i1 * 16 + (j2 - 1)) * 8 + j1] || j1 < 7 && aboolean[(i1 * 16 + j2) * 8 + j1 + 1] || j1 > 0 && aboolean[(i1 * 16 + j2) * 8 + (j1 - 1)]);
|
||||
|
||||
if (flag)
|
||||
{
|
||||
Material material = world.getBlock(x + i1, y + j1, z + j2).getMaterial();
|
||||
|
||||
if (j1 >= 4 && material.isLiquid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (j1 < 4 && !material.isSolid() && world.getBlock(x + i1, y + j1, z + j2) != Blocks.lava)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i1 = 0; i1 < 16; ++i1)
|
||||
{
|
||||
for (j2 = 0; j2 < 16; ++j2)
|
||||
{
|
||||
for (j1 = 0; j1 < 8; ++j1)
|
||||
{
|
||||
if (aboolean[(i1 * 16 + j2) * 8 + j1])
|
||||
{
|
||||
world.setBlock(x + i1, y + j1, z + j2, j1 >= 4 ? Blocks.air : Blocks.lava, 0, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i1 = 0; i1 < 16; ++i1)
|
||||
{
|
||||
for (j2 = 0; j2 < 16; ++j2)
|
||||
{
|
||||
for (j1 = 0; j1 < 8; ++j1)
|
||||
{
|
||||
flag = !aboolean[(i1 * 16 + j2) * 8 + j1] && (i1 < 15 && aboolean[((i1 + 1) * 16 + j2) * 8 + j1] || i1 > 0 && aboolean[((i1 - 1) * 16 + j2) * 8 + j1] || j2 < 15 && aboolean[(i1 * 16 + j2 + 1) * 8 + j1] || j2 > 0 && aboolean[(i1 * 16 + (j2 - 1)) * 8 + j1] || j1 < 7 && aboolean[(i1 * 16 + j2) * 8 + j1 + 1] || j1 > 0 && aboolean[(i1 * 16 + j2) * 8 + (j1 - 1)]);
|
||||
|
||||
if (flag && (j1 < 4 || rand.nextInt(2) != 0) && world.getBlock(x + i1, y + j1, z + j2).getMaterial().isSolid())
|
||||
{
|
||||
world.setBlock(x + i1, y + j1, z + j2, Blocks.netherrack, 0, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupGeneration(World world, Random random, BiomeGenBase biome, String featureName, int x, int z)
|
||||
{
|
||||
for (int i = 0; i < (Integer)BOPDecorationManager.getBiomeFeatures(biome.biomeID).getFeature(featureName); i++)
|
||||
{
|
||||
int randX = x + random.nextInt(16) + 8;
|
||||
int randY = random.nextInt(random.nextInt(random.nextInt(112) + 8) + 8);
|
||||
int randZ = z + random.nextInt(16) + 8;
|
||||
|
||||
this.generate(world, random, randX, randY, randZ);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +1,38 @@
|
|||
package biomesoplenty.common.world.generation;
|
||||
|
||||
import biomesoplenty.api.BOPBlockHelper;
|
||||
import biomesoplenty.common.world.features.*;
|
||||
import biomesoplenty.common.world.features.managers.WorldGenBOPFlowerManager;
|
||||
import biomesoplenty.common.world.features.managers.WorldGenBOPGrassManager;
|
||||
import biomesoplenty.common.world.features.nether.WorldGenWaspHive;
|
||||
import biomesoplenty.common.world.forcedgenerators.LakesForcedGenerator;
|
||||
import biomesoplenty.common.world.forcedgenerators.MelonForcedGenerator;
|
||||
import biomesoplenty.common.world.forcedgenerators.PondForcedGenerator;
|
||||
import java.util.HashMap;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.gen.feature.WorldGenLakes;
|
||||
import net.minecraft.world.gen.feature.WorldGenLiquids;
|
||||
import net.minecraft.world.gen.feature.WorldGenMelon;
|
||||
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||
|
||||
import java.util.HashMap;
|
||||
import biomesoplenty.api.BOPBlockHelper;
|
||||
import biomesoplenty.common.world.features.WorldGenBOPBlob;
|
||||
import biomesoplenty.common.world.features.WorldGenBOPCoral;
|
||||
import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora;
|
||||
import biomesoplenty.common.world.features.WorldGenBOPFlora;
|
||||
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
|
||||
import biomesoplenty.common.world.features.WorldGenBOPUndergroundDecoration;
|
||||
import biomesoplenty.common.world.features.WorldGenCobwebNest;
|
||||
import biomesoplenty.common.world.features.WorldGenGrassSplatter;
|
||||
import biomesoplenty.common.world.features.WorldGenLavaSpout;
|
||||
import biomesoplenty.common.world.features.WorldGenLog;
|
||||
import biomesoplenty.common.world.features.WorldGenRiverCane;
|
||||
import biomesoplenty.common.world.features.WorldGenSplotches;
|
||||
import biomesoplenty.common.world.features.WorldGenWasteland;
|
||||
import biomesoplenty.common.world.features.WorldGenWasteland2;
|
||||
import biomesoplenty.common.world.features.WorldGenWasteland3;
|
||||
import biomesoplenty.common.world.features.WorldGenWasteland4;
|
||||
import biomesoplenty.common.world.features.WorldGenWaterReeds;
|
||||
import biomesoplenty.common.world.features.WorldGenWaterside;
|
||||
import biomesoplenty.common.world.features.managers.WorldGenBOPFlowerManager;
|
||||
import biomesoplenty.common.world.features.managers.WorldGenBOPGrassManager;
|
||||
import biomesoplenty.common.world.features.nether.WorldGenLakesNether;
|
||||
import biomesoplenty.common.world.features.nether.WorldGenWaspHive;
|
||||
import biomesoplenty.common.world.forcedgenerators.LakesForcedGenerator;
|
||||
import biomesoplenty.common.world.forcedgenerators.MelonForcedGenerator;
|
||||
import biomesoplenty.common.world.forcedgenerators.PondForcedGenerator;
|
||||
|
||||
public class WorldGenFieldAssociation
|
||||
{
|
||||
|
@ -78,6 +96,8 @@ public class WorldGenFieldAssociation
|
|||
associateFeature("wasteland2PerChunk", new WorldGenWasteland2());
|
||||
associateFeature("wasteland3PerChunk", new WorldGenWasteland3());
|
||||
associateFeature("wasteland4PerChunk", new WorldGenWasteland4());
|
||||
associateFeature("smolderingGrassPerChunk", new WorldGenBOPTallGrass(BOPBlockHelper.get("grass"), 1));
|
||||
associateFeature("netherLavaLakesPerChunk", new WorldGenLakesNether());
|
||||
|
||||
//Nether Features
|
||||
associateFeature("waspHivesPerChunk", new WorldGenWaspHive());
|
||||
|
@ -85,6 +105,7 @@ public class WorldGenFieldAssociation
|
|||
associateFeature("bopFlowersPerChunk", new WorldGenBOPFlowerManager());
|
||||
associateFeature("bopGrassPerChunk", new WorldGenBOPGrassManager());
|
||||
}
|
||||
|
||||
private static void associateFeaturesForced()
|
||||
{
|
||||
associateFeatureForced("waterPoolsPerChunk", new WorldGenLiquids(Blocks.flowing_water), PondForcedGenerator.class);
|
||||
|
|
Loading…
Reference in a new issue