From 9e0dc810a43a383d76fa1351e21b7f52cabe6834 Mon Sep 17 00:00:00 2001 From: Forstride Date: Tue, 16 May 2017 15:36:25 -0400 Subject: [PATCH] Added mycelium particles to Mycelial Netherrack, added hot spring pools to the Polar Chasm --- .../client/particle/EntityPixieTrailFX.java | 21 +++++++++++++++++++ .../common/biome/nether/BiomePolarChasm.java | 11 ++++++---- .../common/block/BlockBOPGrass.java | 16 +++++++++++++- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/main/java/biomesoplenty/client/particle/EntityPixieTrailFX.java b/src/main/java/biomesoplenty/client/particle/EntityPixieTrailFX.java index 938ea9452..f8c914306 100644 --- a/src/main/java/biomesoplenty/client/particle/EntityPixieTrailFX.java +++ b/src/main/java/biomesoplenty/client/particle/EntityPixieTrailFX.java @@ -45,6 +45,9 @@ public class EntityPixieTrailFX extends Particle this.particleMaxAge = (int)((float)this.particleMaxAge * par14); this.particleAge = (particleMaxAge / 2) + (int)((particleMaxAge / 2) * world.rand.nextInt(7)); this.particleAlpha = 1.0F; + this.particleRed = 1.0F; + this.particleGreen = 1.0F; + this.particleBlue = 1.0F; } @Override @@ -75,6 +78,24 @@ public class EntityPixieTrailFX extends Particle } + @Override + public int getBrightnessForRender(float p_189214_1_) + { + float f = ((float)this.particleAge + p_189214_1_) / (float)this.particleMaxAge; + f = MathHelper.clamp(f, 0.0F, 1.0F); + int i = super.getBrightnessForRender(p_189214_1_); + int j = i & 255; + int k = i >> 16 & 255; + j = j + (int)(f * 15.0F * 16.0F); + + if (j > 240) + { + j = 240; + } + + return j | k << 16; + } + @Override public void onUpdate() { diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomePolarChasm.java b/src/main/java/biomesoplenty/common/biome/nether/BiomePolarChasm.java index a3a10b463..a069d3979 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomePolarChasm.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomePolarChasm.java @@ -40,16 +40,19 @@ public class BiomePolarChasm extends BOPHellBiome this.wallBlock = BOPBlocks.hard_ice.getDefaultState(); // ice pools - this.addGenerator("ice_pools", GeneratorStage.SAND, (new GeneratorLakes.Builder()).amountPerChunk(5.0F).liquid(Blocks.ICE.getDefaultState()).frozenLiquid((IBlockState)null).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); + this.addGenerator("ice_pools", GeneratorStage.SAND, (new GeneratorLakes.Builder()).amountPerChunk(5.0F).waterLakeForBiome(this).liquid(Blocks.ICE.getDefaultState()).frozenLiquid((IBlockState)null).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); + + // hot springs + this.addGenerator("hot_springs", GeneratorStage.SAND, (new GeneratorLakes.Builder()).amountPerChunk(8.0F).liquid(BOPBlocks.hot_spring_water).frozenLiquid((IBlockState)null).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); //ice crystals IBlockPosQuery emptyHardIce = BlockQuery.buildAnd().withAltitudeBetween(60, 120).withAirBelow().states(BOPBlocks.hard_ice.getDefaultState()).create(); - this.addGenerator("ice_crystals", GeneratorStage.ORE_PRE, (new GeneratorCrystals.Builder()).amountPerChunk(25.0F).placeOn(emptyHardIce).with(Blocks.ICE.getDefaultState()).create()); - this.addGenerator("glowstone_crystals", GeneratorStage.ORE_PRE, (new GeneratorCrystals.Builder()).amountPerChunk(10.0F).placeOn(emptyHardIce).with(Blocks.GLOWSTONE.getDefaultState()).create()); + this.addGenerator("ice_crystals", GeneratorStage.ORE_PRE, (new GeneratorCrystals.Builder()).amountPerChunk(50.0F).placeOn(emptyHardIce).with(Blocks.ICE.getDefaultState()).create()); + this.addGenerator("glowstone_crystals", GeneratorStage.ORE_PRE, (new GeneratorCrystals.Builder()).amountPerChunk(20.0F).placeOn(emptyHardIce).with(Blocks.GLOWSTONE.getDefaultState()).create()); // splatter top blocks IBlockPosQuery emptySurface = BlockQuery.buildAnd().withAirAbove().states(this.topBlock).create(); - this.addGenerator("snow_splatter", GeneratorStage.SAND, (new GeneratorSplatter.Builder()).amountPerChunk(5.0F).generationAttempts(128).scatterYMethod(ScatterYMethod.NETHER_SURFACE).replace(emptySurface).with(Blocks.SNOW.getDefaultState()).create()); + this.addGenerator("snow_splatter", GeneratorStage.SAND, (new GeneratorSplatter.Builder()).amountPerChunk(7.0F).generationAttempts(128).scatterYMethod(ScatterYMethod.NETHER_SURFACE).replace(emptySurface).with(Blocks.SNOW.getDefaultState()).create()); } @Override diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java index 18713d450..1c12abbac 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java @@ -456,7 +456,21 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla return getDirtBlockMeta(state); } } - + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand) + { + super.randomDisplayTick(state, world, pos, rand); + + if (state.getValue(VARIANT) == BOPGrassType.MYCELIAL_NETHERRACK) + { + if (rand.nextInt(10) == 0) + { + world.spawnParticle(EnumParticleTypes.TOWN_AURA, (double)((float)pos.getX() + rand.nextFloat()), (double)((float)pos.getY() + 1.1F), (double)((float)pos.getZ() + rand.nextFloat()), 0.0D, 0.0D, 0.0D, new int[0]); + } + } + } // get the blockstate which corresponds to the type of dirt which this grass variant grows on // this is used to determine what drops when you break the grass block, and the type of dirt it reverts to when covered