Added Bloody Heap biome to the Nether
|
@ -69,6 +69,7 @@ public class Biomes
|
|||
public static Optional<? extends BiomeGenBase> netherDesert = Optional.absent();
|
||||
public static Optional<? extends BiomeGenBase> netherLava = Optional.absent();
|
||||
public static Optional<? extends BiomeGenBase> netherBone = Optional.absent();
|
||||
public static Optional<? extends BiomeGenBase> netherBlood = Optional.absent();
|
||||
|
||||
public static Optional<? extends BiomeGenBase> oasis = Optional.absent();
|
||||
|
||||
|
|
|
@ -109,6 +109,7 @@ public class BlockReferences {
|
|||
redRock (Blocks.redRock, 0),
|
||||
ash (Blocks.ash, 0),
|
||||
ashStone (Blocks.ashStone, 0),
|
||||
flesh (Blocks.flesh, 0),
|
||||
hardIce (Blocks.hardIce, 0),
|
||||
originGrass (Blocks.originGrass, 0),
|
||||
longGrass (Blocks.longGrass, 0),
|
||||
|
|
|
@ -13,6 +13,7 @@ public class Blocks
|
|||
// Worldgen Blocks
|
||||
public static Optional<? extends Block> ash = Optional.absent();
|
||||
public static Optional<? extends Block> ashStone = Optional.absent();
|
||||
public static Optional<? extends Block> flesh = Optional.absent();
|
||||
public static Optional<? extends Block> cragRock = Optional.absent();
|
||||
public static Optional<? extends Block> driedDirt = Optional.absent();
|
||||
public static Optional<? extends Block> hardDirt = Optional.absent();
|
||||
|
|
32
common/biomesoplenty/biomes/nether/BiomeGenNetherBlood.java
Normal file
|
@ -0,0 +1,32 @@
|
|||
package biomesoplenty.biomes.nether;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.monster.EntityGhast;
|
||||
import net.minecraft.entity.monster.EntityMagmaCube;
|
||||
import net.minecraft.entity.monster.EntityPigZombie;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.biome.SpawnListEntry;
|
||||
import biomesoplenty.api.Blocks;
|
||||
import biomesoplenty.biomes.BiomeDecoratorBOP;
|
||||
|
||||
public class BiomeGenNetherBlood extends BiomeGenBase
|
||||
{
|
||||
private BiomeDecoratorBOP customBiomeDecorator;
|
||||
|
||||
public BiomeGenNetherBlood(int par1)
|
||||
{
|
||||
super(par1);
|
||||
theBiomeDecorator = new BiomeDecoratorBOP(this);
|
||||
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
||||
topBlock = (byte)Blocks.flesh.get().blockID;
|
||||
fillerBlock = (byte)Blocks.flesh.get().blockID;
|
||||
customBiomeDecorator.gravesPerChunk = 1;
|
||||
spawnableMonsterList.clear();
|
||||
spawnableCreatureList.clear();
|
||||
spawnableWaterCreatureList.clear();
|
||||
spawnableCaveCreatureList.clear();
|
||||
spawnableMonsterList.add(new SpawnListEntry(EntityGhast.class, 50, 4, 4));
|
||||
spawnableMonsterList.add(new SpawnListEntry(EntityPigZombie.class, 100, 4, 4));
|
||||
spawnableMonsterList.add(new SpawnListEntry(EntityMagmaCube.class, 1, 4, 4));
|
||||
}
|
||||
}
|
80
common/biomesoplenty/blocks/BlockFlesh.java
Normal file
|
@ -0,0 +1,80 @@
|
|||
package biomesoplenty.blocks;
|
||||
|
||||
import static net.minecraftforge.common.ForgeDirection.UP;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import biomesoplenty.BiomesOPlenty;
|
||||
import biomesoplenty.api.Blocks;
|
||||
import biomesoplenty.api.Items;
|
||||
|
||||
public class BlockFlesh extends Block
|
||||
{
|
||||
public BlockFlesh(int par1)
|
||||
{
|
||||
super(par1, Material.sponge);
|
||||
this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerIcons(IconRegister par1IconRegister)
|
||||
{
|
||||
blockIcon = par1IconRegister.registerIcon("biomesoplenty:flesh");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been
|
||||
* cleared to be reused)
|
||||
*/
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
|
||||
{
|
||||
float var5 = 0.125F;
|
||||
return AxisAlignedBB.getAABBPool().getAABB(par2, par3, par4, par2 + 1, par3 + 1 - var5, par4 + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* A randomly called display update to be able to add particles or other items for display
|
||||
*/
|
||||
@Override
|
||||
public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
|
||||
{
|
||||
super.randomDisplayTick(par1World, par2, par3, par4, par5Random);
|
||||
|
||||
if (par5Random.nextInt(4) == 0)
|
||||
{
|
||||
par1World.spawnParticle("tilecrack_" + String.valueOf(Blocks.flesh.get().blockID) + "_0", par2 + par5Random.nextFloat(), par3 - 0.4F, par4 + par5Random.nextFloat(), 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
|
||||
if (par5Random.nextInt(12) == 0)
|
||||
{
|
||||
par1World.spawnParticle("tilecrack_" + String.valueOf(Blocks.flesh.get().blockID) + "_0", par2 + par5Random.nextFloat(), par3 + 1.0F, par4 + par5Random.nextFloat(), 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity)
|
||||
{
|
||||
if (entity instanceof EntityPlayer)
|
||||
{
|
||||
InventoryPlayer inventory = ((EntityPlayer)entity).inventory;
|
||||
|
||||
if (inventory.armorInventory[0] != null && inventory.armorInventory[0].itemID == Items.wadingBoots.get().itemID)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
entity.motionX *= 0.9D;
|
||||
entity.motionZ *= 0.9D;
|
||||
}
|
||||
}
|
|
@ -104,6 +104,7 @@ import biomesoplenty.biomes.BiomeGenWoodland;
|
|||
import biomesoplenty.biomes.beach.BiomeGenBeachGravel;
|
||||
import biomesoplenty.biomes.beach.BiomeGenBeachOvergrown;
|
||||
import biomesoplenty.biomes.nether.BiomeGenNetherBase;
|
||||
import biomesoplenty.biomes.nether.BiomeGenNetherBlood;
|
||||
import biomesoplenty.biomes.nether.BiomeGenNetherBone;
|
||||
import biomesoplenty.biomes.nether.BiomeGenNetherDesert;
|
||||
import biomesoplenty.biomes.nether.BiomeGenNetherGarden;
|
||||
|
@ -239,6 +240,7 @@ public class BOPBiomes {
|
|||
Biomes.netherDesert = Optional.of((new BiomeGenNetherDesert(BOPConfigurationIDs.netherDesertID)).setColor(16711680).setBiomeName("Corrupted Sands").setDisableRain().setTemperatureRainfall(2.0F, 0.0F));
|
||||
Biomes.netherLava = Optional.of((new BiomeGenNetherLava(BOPConfigurationIDs.netherLavaID)).setColor(16711680).setBiomeName("Phantasmagoric Inferno").setDisableRain().setTemperatureRainfall(2.0F, 0.0F));
|
||||
Biomes.netherBone = Optional.of((new BiomeGenNetherBone(BOPConfigurationIDs.netherBoneID)).setColor(16711680).setBiomeName("Boneyard").setDisableRain().setTemperatureRainfall(2.0F, 0.0F));
|
||||
Biomes.netherBlood = Optional.of((new BiomeGenNetherBlood(BOPConfigurationIDs.netherBloodID)).setColor(16711680).setBiomeName("Bloody Heap").setDisableRain().setTemperatureRainfall(2.0F, 0.0F));
|
||||
|
||||
Biomes.oasis = Optional.of((new BiomeGenOasis(BOPConfigurationIDs.oasisID)).setColor(16421912).setBiomeName("Oasis").setTemperatureRainfall(0.9F, 0.7F).setMinMaxHeight(0.3F, 0.4F));
|
||||
|
||||
|
@ -380,6 +382,7 @@ public class BOPBiomes {
|
|||
BiomeDictionary.registerBiomeType(Biomes.netherDesert.get(), Type.NETHER, Type.DESERT);
|
||||
BiomeDictionary.registerBiomeType(Biomes.netherLava.get(), Type.NETHER);
|
||||
BiomeDictionary.registerBiomeType(Biomes.netherBone.get(), Type.NETHER, Type.WASTELAND);
|
||||
BiomeDictionary.registerBiomeType(Biomes.netherBone.get(), Type.NETHER);
|
||||
|
||||
BiomeDictionary.registerBiomeType(Biomes.oasis.get(), Type.DESERT, Type.JUNGLE);
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@ import biomesoplenty.blocks.BlockBOPStairs.Category;
|
|||
import biomesoplenty.blocks.BlockBamboo;
|
||||
import biomesoplenty.blocks.BlockBones;
|
||||
import biomesoplenty.blocks.BlockCloud;
|
||||
import biomesoplenty.blocks.BlockFlesh;
|
||||
import biomesoplenty.blocks.BlockGrave;
|
||||
import biomesoplenty.blocks.BlockIvy;
|
||||
import biomesoplenty.blocks.BlockLongGrass;
|
||||
|
@ -128,6 +129,7 @@ public class BOPBlocks
|
|||
Blocks.driedDirt = Optional.of(new BlockBOPGeneric(BOPConfigurationIDs.driedDirtID, Material.rock, BlockType.DRIED_DIRT).setUnlocalizedName("bop.generic"));
|
||||
Blocks.redRock = Optional.of((new BlockBOPRedRock(BOPConfigurationIDs.redRockID)).setUnlocalizedName("bop.redRocks"));
|
||||
Blocks.ash = Optional.of((new BlockAsh(BOPConfigurationIDs.ashID)).setHardness(0.4F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("bop.ash"));
|
||||
Blocks.flesh = Optional.of((new BlockFlesh(BOPConfigurationIDs.fleshID)).setHardness(0.4F).setStepSound(Block.soundGravelFootstep).setUnlocalizedName("bop.flesh"));
|
||||
Blocks.plants = Optional.of((new BlockBOPPlant(BOPConfigurationIDs.plantsID)).setUnlocalizedName("bop.plants"));
|
||||
Blocks.flowers = Optional.of((new BlockBOPFlower(BOPConfigurationIDs.flowersID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("bop.flowers"));
|
||||
Blocks.flowers2 = Optional.of((new BlockBOPFlower2(BOPConfigurationIDs.flowers2ID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("bop.flowers2"));
|
||||
|
@ -216,6 +218,7 @@ public class BOPBlocks
|
|||
GameRegistry.registerBlock(Blocks.driedDirt.get(), "bop.driedDirt");
|
||||
GameRegistry.registerBlock(Blocks.redRock.get(), ItemBlockRedRock.class, "bop.redRock");
|
||||
GameRegistry.registerBlock(Blocks.ash.get(), "bop.ash");
|
||||
GameRegistry.registerBlock(Blocks.flesh.get(), "bop.flesh");
|
||||
GameRegistry.registerBlock(Blocks.plants.get(), ItemBlockPlant.class, "bop.plants");
|
||||
GameRegistry.registerBlock(Blocks.flowers.get(), ItemBlockFlower.class, "bop.flowers");
|
||||
GameRegistry.registerBlock(Blocks.flowers2.get(), ItemBlockFlower2.class, "bop.flowers2");
|
||||
|
|
|
@ -106,6 +106,7 @@ public class BOPConfigurationBiomeGen
|
|||
public static boolean corruptedSandsGen;
|
||||
public static boolean phantasmagoricInfernoGen;
|
||||
public static boolean boneyardGen;
|
||||
public static boolean bloodyHeapGen;
|
||||
|
||||
// Beach variations
|
||||
public static boolean gravelBeachGen;
|
||||
|
@ -220,6 +221,7 @@ public class BOPConfigurationBiomeGen
|
|||
corruptedSandsGen = config.get("Nether Biomes To Generate", "CorruptedSands", true).getBoolean(true);
|
||||
phantasmagoricInfernoGen = config.get("Nether Biomes To Generate", "PhantasmagoricInferno", true).getBoolean(true);
|
||||
boneyardGen = config.get("Nether Biomes To Generate", "Boneyard", true).getBoolean(true);
|
||||
bloodyHeapGen = config.get("Nether Biomes To Generate", "BloodyHeap", true).getBoolean(true);
|
||||
|
||||
// Beach variations
|
||||
gravelBeachGen = config.get("Beach Variations To Generate", "Gravel Beach", true).getBoolean(true);
|
||||
|
|
|
@ -19,6 +19,7 @@ public class BOPConfigurationIDs
|
|||
public static int redRockID;
|
||||
public static int ashID;
|
||||
public static int ashStoneID;
|
||||
public static int fleshID;
|
||||
public static int hardIceID;
|
||||
public static int originGrassID;
|
||||
public static int longGrassID;
|
||||
|
@ -216,6 +217,7 @@ public class BOPConfigurationIDs
|
|||
public static int netherDesertID;
|
||||
public static int netherLavaID;
|
||||
public static int netherBoneID;
|
||||
public static int netherBloodID;
|
||||
|
||||
public static int oasisID;
|
||||
|
||||
|
@ -316,6 +318,7 @@ public class BOPConfigurationIDs
|
|||
holyStoneID = config.getTerrainBlock("Terrain Block IDs - MUST BE BELOW 255", "Skystone ID", 171, null).getInt();
|
||||
cragRockID = config.getTerrainBlock("Terrain Block IDs - MUST BE BELOW 255", "Crag Rock ID", 172, null).getInt();
|
||||
longGrassID = config.getTerrainBlock("Terrain Block IDs - MUST BE BELOW 255", "Long Grass ID", 173, null).getInt();
|
||||
fleshID = config.getTerrainBlock("Terrain Block IDs - MUST BE BELOW 255", "Flesh ID", 174, null).getInt();
|
||||
|
||||
// Get Crafted Block ID's
|
||||
plantsID = config.getBlock("Plant ID", 1920, null).getInt();
|
||||
|
@ -472,6 +475,8 @@ public class BOPConfigurationIDs
|
|||
|
||||
//23-79 ExtraBiomesXL
|
||||
|
||||
netherBloodID = config.get("Biome IDs", "Bloody Heap (Nether) ID", 30).getInt();
|
||||
|
||||
lavenderFieldsID = config.get("Biome IDs", "Lavender Fields ID", 31).getInt();
|
||||
tropicsMountainID = config.get("Biome IDs", "Tropics Mountain (Sub-Biome) ID", 32).getInt();
|
||||
autumnHillsID = config.get("Biome IDs", "Autumn Hills ID", 33).getInt();
|
||||
|
|
|
@ -10,7 +10,7 @@ public class WorldProviderBOPhell extends WorldProviderHell
|
|||
@Override
|
||||
public void registerWorldChunkManager()
|
||||
{
|
||||
if (Biomes.netherGarden.isPresent() || Biomes.netherDesert.isPresent() || Biomes.netherLava.isPresent() || Biomes.netherBone.isPresent())
|
||||
if (Biomes.netherGarden.isPresent() || Biomes.netherDesert.isPresent() || Biomes.netherLava.isPresent() || Biomes.netherBone.isPresent() || Biomes.netherBlood.isPresent())
|
||||
{
|
||||
this.worldChunkMgr = new WorldChunkManagerBOPhell(worldObj);
|
||||
}
|
||||
|
|
|
@ -83,6 +83,13 @@ public class BiomeLayerBiomes extends BiomeLayer
|
|||
netherBiomes.add(Biomes.netherBone.get());
|
||||
}
|
||||
}
|
||||
if (Biomes.netherBlood.isPresent())
|
||||
{
|
||||
if (BOPConfigurationBiomeGen.bloodyHeapGen)
|
||||
{
|
||||
netherBiomes.add(Biomes.netherBlood.get());
|
||||
}
|
||||
}
|
||||
if (Biomes.netherBiomes.size() > 0)
|
||||
{
|
||||
netherBiomes.addAll(Biomes.netherBiomes);
|
||||
|
|
|
@ -16,6 +16,7 @@ tile.bop.redRocks.redcobble.name=Red Rock Cobblestone
|
|||
tile.bop.redRocks.redbrick.name=Red Rock Bricks
|
||||
|
||||
tile.bop.ash.name=Ash Block
|
||||
tile.bop.flesh.name=Flesh
|
||||
|
||||
tile.bop.plants.deadgrass.name=Dead Grass
|
||||
tile.bop.plants.desertgrass.name=Desert Grass
|
||||
|
|
BIN
resources/assets/biomesoplenty/textures/blocks/flesh.png
Normal file
After Width: | Height: | Size: 888 B |
Before Width: | Height: | Size: 398 B After Width: | Height: | Size: 414 B |
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 494 B |
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 573 B |
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 830 B |
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 669 B |
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 579 B |