Added Mycelial Netherrack to the Fungi Forest, tweaked Nether biome weights

This commit is contained in:
Forstride 2017-05-13 17:17:33 -04:00
parent e5f94ae1a6
commit 6f975cd2c2
15 changed files with 106 additions and 32 deletions

View file

@ -85,7 +85,7 @@ public enum BOPClimates {
BOPClimates.SAVANNA.addBiome(20, Biomes.SAVANNA);
BOPClimates.HOT_DESERT.addBiome(30, Biomes.DESERT).addBiome(10, Biomes.MESA_CLEAR_ROCK);
BOPClimates.WASTELAND.addBiome(1, Biomes.DESERT);
BOPClimates.HELL.addBiome(40, Biomes.HELL);
BOPClimates.HELL.addBiome(150, Biomes.HELL);
}
private static BOPClimates[] values = BOPClimates.values();

View file

@ -33,7 +33,7 @@ public class BiomeCorruptedSands extends BOPHellBiome
{
super("corrupted_sands", new PropsBuilder("Corrupted Sands").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 20);
this.addWeight(BOPClimates.HELL, 75);
this.topBlock = Blocks.SOUL_SAND.getDefaultState();
this.fillerBlock = Blocks.SOUL_SAND.getDefaultState();

View file

@ -19,6 +19,7 @@ import biomesoplenty.api.enums.BOPFlowers;
import biomesoplenty.api.enums.BOPPlants;
import biomesoplenty.api.enums.BOPTrees;
import biomesoplenty.api.generation.GeneratorStage;
import biomesoplenty.common.block.BlockBOPDirt;
import biomesoplenty.common.block.BlockBOPGrass;
import biomesoplenty.common.block.BlockBOPLeaves;
import biomesoplenty.common.block.BlockBOPMushroom;
@ -28,6 +29,7 @@ import biomesoplenty.common.world.generator.GeneratorBigMushroom;
import biomesoplenty.common.world.generator.GeneratorDoubleFlora;
import biomesoplenty.common.world.generator.GeneratorFlora;
import biomesoplenty.common.world.generator.GeneratorGrass;
import biomesoplenty.common.world.generator.GeneratorSplotches;
import biomesoplenty.common.world.generator.GeneratorWeighted;
import biomesoplenty.common.world.generator.tree.GeneratorTwigletTree;
import net.minecraft.block.BlockDirt;
@ -43,22 +45,43 @@ import net.minecraft.world.chunk.ChunkPrimer;
public class BiomeFungiForest extends BOPHellBiome
{
public IBlockState usualTopBlock;
public IBlockState alternateTopBlock;
public BiomeFungiForest()
{
super("fungi_forest", new PropsBuilder("Fungi Forest").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 15);
this.addWeight(BOPClimates.HELL, 75);
this.usualTopBlock = this.topBlock;
this.alternateTopBlock = BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.MYCELIAL_NETHERRACK);
// shrooms
IBlockPosQuery surfaceBlocks = BlockQuery.buildOr().states(this.topBlock).create();
this.addGenerator("glowshroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.25F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.GLOWSHROOM).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("flat_mushroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.FLAT_MUSHROOM).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("toadstools", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.TOADSTOOL).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("red_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(5.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(Blocks.RED_MUSHROOM.getDefaultState()).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("brown_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(2.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(Blocks.BROWN_MUSHROOM.getDefaultState()).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("glowshroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.25F).with(BlockBOPMushroom.MushroomType.GLOWSHROOM).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("flat_mushroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.0F).with(BlockBOPMushroom.MushroomType.FLAT_MUSHROOM).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("toadstools", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.0F).with(BlockBOPMushroom.MushroomType.TOADSTOOL).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("red_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(5.0F).with(Blocks.RED_MUSHROOM.getDefaultState()).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("brown_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(2.0F).with(Blocks.BROWN_MUSHROOM.getDefaultState()).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
this.addGenerator("big_brown_mushroom", GeneratorStage.BIG_SHROOM,(new GeneratorBigMushroom.Builder()).amountPerChunk(2.0F).mushroomType(GeneratorBigMushroom.BigMushroomType.BROWN).scatterYMethod(ScatterYMethod.NETHER_SURFACE).placeOn(surfaceBlocks).create());
this.addGenerator("big_red_mushroom", GeneratorStage.BIG_SHROOM,(new GeneratorBigMushroom.Builder()).amountPerChunk(15.0F).mushroomType(GeneratorBigMushroom.BigMushroomType.RED).scatterYMethod(ScatterYMethod.NETHER_SURFACE).minHeight(5).maxHeight(15).placeOn(surfaceBlocks).create());
this.addGenerator("big_red_mushroom", GeneratorStage.BIG_SHROOM,(new GeneratorBigMushroom.Builder()).amountPerChunk(25.0F).mushroomType(GeneratorBigMushroom.BigMushroomType.RED).scatterYMethod(ScatterYMethod.NETHER_SURFACE).minHeight(5).maxHeight(25).placeOn(surfaceBlocks).create());
}
@Override
public void configure(IConfigObj conf)
{
super.configure(conf);
this.usualTopBlock = this.topBlock;
this.alternateTopBlock = conf.getBlockState("alternateTopBlock", this.alternateTopBlock);
}
@Override
public void genTerrainBlocks(World world, Random rand, ChunkPrimer primer, int x, int z, double noise)
{
this.topBlock = (noise + rand.nextDouble() * 1.0D > 1.8D) ? this.alternateTopBlock : this.usualTopBlock;
super.genTerrainBlocks(world, rand, primer, x, z, noise);
}
@Override

View file

@ -29,7 +29,7 @@ public class BiomePhantasmagoricInferno extends BOPHellBiome
{
super("phantasmagoric_inferno", new PropsBuilder("Phantasmagoric Inferno").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 20);
this.addWeight(BOPClimates.HELL, 75);
this.topBlock = BOPBlocks.ash_block.getDefaultState();
this.fillerBlock = BOPBlocks.ash_block.getDefaultState();

View file

@ -40,7 +40,7 @@ public class BiomeUndergarden extends BOPHellBiome
{
super("undergarden", new PropsBuilder("Undergarden").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 15);
this.addWeight(BOPClimates.HELL, 75);
this.topBlock = BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK);

View file

@ -51,7 +51,7 @@ public class BiomeVisceralHeap extends BOPHellBiome
{
super("visceral_heap", new PropsBuilder("Visceral Heap").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 20);
this.addWeight(BOPClimates.HELL, 75);
this.topBlock = BOPBlocks.flesh.getDefaultState();
this.fillerBlock = BOPBlocks.flesh.getDefaultState();

View file

@ -265,6 +265,9 @@ public class BlockBOPFlower extends BlockBOPDecoration implements IShearable, IH
onFertile = true;
onNetherrack = true;
break;
case MYCELIAL_NETHERRACK:
onNetherrack = true;
break;
case LOAMY: case SANDY: case SILTY: case ORIGIN: default:
onFertile = true;
break;

View file

@ -52,7 +52,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
// add properties (note we also inherit the SNOWY property from BlockGrass)
public static enum BOPGrassType implements IStringSerializable
{
SPECTRAL_MOSS, OVERGROWN_STONE, LOAMY, SANDY, SILTY, ORIGIN, OVERGROWN_NETHERRACK, DAISY;
SPECTRAL_MOSS, OVERGROWN_STONE, LOAMY, SANDY, SILTY, ORIGIN, OVERGROWN_NETHERRACK, DAISY, MYCELIAL_NETHERRACK;
@Override
public String getName()
{
@ -81,7 +81,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
BOPGrassType grassType = (BOPGrassType)state.getValue(VARIANT);
switch (grassType)
{
case SPECTRAL_MOSS: case OVERGROWN_NETHERRACK: case OVERGROWN_STONE:
case SPECTRAL_MOSS: case OVERGROWN_NETHERRACK: case OVERGROWN_STONE: case MYCELIAL_NETHERRACK:
return grassType.getName();
default:
return grassType.getName() + "_grass_block";
@ -124,12 +124,9 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
{
// overgrown_netherrack supports Nether plants in addition to the defaults
case OVERGROWN_NETHERRACK:
return SoundType.STONE;
case OVERGROWN_STONE:
return SoundType.STONE;
case SPECTRAL_MOSS:
case MYCELIAL_NETHERRACK:
return SoundType.STONE;
default:
@ -144,12 +141,9 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
{
// overgrown_netherrack supports Nether plants in addition to the defaults
case OVERGROWN_NETHERRACK:
return Material.ROCK;
case OVERGROWN_STONE:
return Material.ROCK;
case SPECTRAL_MOSS:
case MYCELIAL_NETHERRACK:
return Material.ROCK;
default:
@ -169,13 +163,10 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
switch ((BOPGrassType) state.getValue(VARIANT))
{
// overgrown_netherrack supports Nether plants in addition to the defaults
case OVERGROWN_NETHERRACK:
return "pickaxe";
case OVERGROWN_NETHERRACK:
case OVERGROWN_STONE:
return "pickaxe";
case SPECTRAL_MOSS:
case MYCELIAL_NETHERRACK:
return "pickaxe";
default:
@ -190,6 +181,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
{
// overgrown_netherrack supports Nether plants in addition to the defaults
case OVERGROWN_NETHERRACK:
case MYCELIAL_NETHERRACK:
return 0.4F;
case OVERGROWN_STONE:
@ -212,6 +204,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
{
// overgrown_netherrack supports Nether plants in addition to the defaults
case OVERGROWN_NETHERRACK:
case MYCELIAL_NETHERRACK:
return 0.1F;
case OVERGROWN_STONE:
@ -235,6 +228,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
{
// overgrown_netherrack supports Nether plants in addition to the defaults
case OVERGROWN_NETHERRACK:
case MYCELIAL_NETHERRACK:
if (plantType == net.minecraftforge.common.EnumPlantType.Nether) {return true;}
break;
@ -338,8 +332,10 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
public boolean canGrow(World worldIn, BlockPos pos, IBlockState state, boolean isClient) {
switch ((BOPGrassType) state.getValue(VARIANT))
{
case SPECTRAL_MOSS: case OVERGROWN_STONE: case OVERGROWN_NETHERRACK:
case SPECTRAL_MOSS:
case MYCELIAL_NETHERRACK:
return false;
default:
return true;
}
@ -349,8 +345,10 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
public boolean canUseBonemeal(World worldIn, Random rand, BlockPos pos, IBlockState state) {
switch ((BOPGrassType) state.getValue(VARIANT))
{
case SPECTRAL_MOSS: case OVERGROWN_STONE: case OVERGROWN_NETHERRACK:
case SPECTRAL_MOSS:
case MYCELIAL_NETHERRACK:
return false;
default:
return true;
}
@ -475,6 +473,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
case SILTY:
return BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.SILTY);
case OVERGROWN_NETHERRACK:
case MYCELIAL_NETHERRACK:
return Blocks.NETHERRACK.getDefaultState();
case OVERGROWN_STONE:
return Blocks.STONE.getDefaultState();
@ -501,7 +500,10 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
switch ((BOPGrassType) source.getValue(VARIANT))
{
case SPECTRAL_MOSS: case OVERGROWN_NETHERRACK: case OVERGROWN_STONE:
case SPECTRAL_MOSS:
case OVERGROWN_NETHERRACK:
case OVERGROWN_STONE:
case MYCELIAL_NETHERRACK:
break;
// loamy/sandy/silty grasses spread to any kind of dirt

View file

@ -15,6 +15,7 @@ import java.util.Random;
import biomesoplenty.api.item.BOPItems;
import biomesoplenty.api.particle.BOPParticleTypes;
import biomesoplenty.api.sound.BOPSounds;
import biomesoplenty.core.BiomesOPlenty;
import net.minecraft.entity.EntityFlying;
import net.minecraft.entity.ai.EntityAIBase;
@ -22,6 +23,7 @@ import net.minecraft.entity.ai.EntityMoveHelper;
import net.minecraft.entity.monster.IMob;
import net.minecraft.item.Item;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
@ -45,6 +47,18 @@ public class EntityPixie extends EntityFlying implements IMob {
// TODO: get right value here this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(10.0D);
}
@Override
protected SoundEvent getAmbientSound()
{
return BOPSounds.pixie_ambient;
}
@Override
protected SoundEvent getHurtSound()
{
return BOPSounds.pixie_hurt;
}
@Override
protected Item getDropItem()
{

View file

@ -144,11 +144,11 @@ public class ModBlockQueries
groundBlocks = new BlockQueryMaterial(Material.BARRIER, Material.CLAY, Material.GRASS, Material.GROUND, Material.PACKED_ICE, Material.ROCK, Material.SAND);
fertile = BlockQuery.buildAnd().sustainsPlant(EnumPlantType.Plains).create();
fertileOrNetherrack = BlockQuery.buildOr().sustainsPlant(EnumPlantType.Plains).blocks(Blocks.NETHERRACK).states(BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK)).create();
fertileOrNetherrack = BlockQuery.buildOr().sustainsPlant(EnumPlantType.Plains).blocks(Blocks.NETHERRACK).states(BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK), BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.MYCELIAL_NETHERRACK)).create();
sustainsCave = BlockQuery.buildAnd().sustainsPlant(EnumPlantType.Cave).create();
sustainsNether = BlockQuery.buildAnd().sustainsPlant(EnumPlantType.Nether).create();
endish = BlockQuery.buildOr().blocks(Blocks.END_STONE).states(BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.SPECTRAL_MOSS)).create();
hellish = BlockQuery.buildOr().blocks(Blocks.NETHERRACK, BOPBlocks.flesh).states(BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK)).create();
hellish = BlockQuery.buildOr().blocks(Blocks.NETHERRACK, BOPBlocks.flesh).states(BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK), BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.MYCELIAL_NETHERRACK)).create();
litBeach = BlockQuery.buildAnd().sustainsPlant(EnumPlantType.Beach).withLightAboveAtLeast(8).create();
litFertileWaterside = BlockQuery.buildAnd().sustainsPlant(EnumPlantType.Plains).byWater().create();
litFertile = BlockQuery.buildAnd().sustainsPlant(EnumPlantType.Plains).withLightAboveAtLeast(8).create();

View file

@ -96,6 +96,18 @@
{ "model": "biomesoplenty:daisy_grass_block_snowed", "y": 90 },
{ "model": "biomesoplenty:daisy_grass_block_snowed", "y": 180 },
{ "model": "biomesoplenty:daisy_grass_block_snowed", "y": 270 }
],
"snowy=false,variant=mycelial_netherrack": [
{ "model": "biomesoplenty:mycelial_netherrack" },
{ "model": "biomesoplenty:mycelial_netherrack", "y": 90 },
{ "model": "biomesoplenty:mycelial_netherrack", "y": 180 },
{ "model": "biomesoplenty:mycelial_netherrack", "y": 270 }
],
"snowy=true,variant=mycelial_netherrack": [
{ "model": "biomesoplenty:mycelial_netherrack" },
{ "model": "biomesoplenty:mycelial_netherrack", "y": 90 },
{ "model": "biomesoplenty:mycelial_netherrack", "y": 180 },
{ "model": "biomesoplenty:mycelial_netherrack", "y": 270 }
]
}
}

View file

@ -262,6 +262,7 @@ tile.grass.sandy_grass_block.name=Sandy Grass Block
tile.grass.silty_grass_block.name=Silty Grass Block
tile.grass.origin_grass_block.name=Origin Grass Block
tile.grass.overgrown_netherrack.name=Overgrown Netherrack
tile.grass.mycelial_netherrack.name=Mycelial Netherrack
tile.grass_path.grass_loamy_path.name=Loamy Grass Path
tile.grass_path.grass_sandy_path.name=Sandy Grass Path
tile.grass_path.grass_silty_path.name=Silty Grass Path

View file

@ -0,0 +1,9 @@
{
"parent": "block/cube_bottom_top",
"textures": {
"particle": "blocks/netherrack",
"bottom": "blocks/netherrack",
"top": "blocks/mycelium_top",
"side": "biomesoplenty:blocks/mycelial_netherrack_side"
}
}

View file

@ -0,0 +1,10 @@
{
"parent": "biomesoplenty:block/mycelial_netherrack",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 B