diff --git a/src/main/java/biomesoplenty/api/enums/BOPClimates.java b/src/main/java/biomesoplenty/api/enums/BOPClimates.java index ebe74adc5..a61d6ec54 100644 --- a/src/main/java/biomesoplenty/api/enums/BOPClimates.java +++ b/src/main/java/biomesoplenty/api/enums/BOPClimates.java @@ -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(); diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomeCorruptedSands.java b/src/main/java/biomesoplenty/common/biome/nether/BiomeCorruptedSands.java index d3a4ce8ed..c2ec3c46a 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomeCorruptedSands.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomeCorruptedSands.java @@ -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(); diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomeFungiForest.java b/src/main/java/biomesoplenty/common/biome/nether/BiomeFungiForest.java index 216f7ea9d..2c14a2205 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomeFungiForest.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomeFungiForest.java @@ -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 diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomePhantasmagoricInferno.java b/src/main/java/biomesoplenty/common/biome/nether/BiomePhantasmagoricInferno.java index bf8e1e6c7..6fb7e83d5 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomePhantasmagoricInferno.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomePhantasmagoricInferno.java @@ -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(); diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomeUndergarden.java b/src/main/java/biomesoplenty/common/biome/nether/BiomeUndergarden.java index b2ab2ba3d..b6c20bdad 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomeUndergarden.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomeUndergarden.java @@ -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); diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomeVisceralHeap.java b/src/main/java/biomesoplenty/common/biome/nether/BiomeVisceralHeap.java index 03021ae8c..0d8a78f5b 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomeVisceralHeap.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomeVisceralHeap.java @@ -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(); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPFlower.java b/src/main/java/biomesoplenty/common/block/BlockBOPFlower.java index 629c3a3e9..fd4cd3be6 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPFlower.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPFlower.java @@ -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; diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java index b8c3cbcd4..18713d450 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java @@ -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 diff --git a/src/main/java/biomesoplenty/common/entities/EntityPixie.java b/src/main/java/biomesoplenty/common/entities/EntityPixie.java index 594b99b06..09770a3f8 100644 --- a/src/main/java/biomesoplenty/common/entities/EntityPixie.java +++ b/src/main/java/biomesoplenty/common/entities/EntityPixie.java @@ -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() { diff --git a/src/main/java/biomesoplenty/common/init/ModBlockQueries.java b/src/main/java/biomesoplenty/common/init/ModBlockQueries.java index 74c219fb6..a0c6a093c 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlockQueries.java +++ b/src/main/java/biomesoplenty/common/init/ModBlockQueries.java @@ -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(); diff --git a/src/main/resources/assets/biomesoplenty/blockstates/grass.json b/src/main/resources/assets/biomesoplenty/blockstates/grass.json index 7c853744d..b9906dd4d 100644 --- a/src/main/resources/assets/biomesoplenty/blockstates/grass.json +++ b/src/main/resources/assets/biomesoplenty/blockstates/grass.json @@ -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 } ] } } diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index fa9edf827..7556d5232 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -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 diff --git a/src/main/resources/assets/biomesoplenty/models/block/mycelial_netherrack.json b/src/main/resources/assets/biomesoplenty/models/block/mycelial_netherrack.json new file mode 100644 index 000000000..501c13e6c --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/mycelial_netherrack.json @@ -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" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/mycelial_netherrack.json b/src/main/resources/assets/biomesoplenty/models/item/mycelial_netherrack.json new file mode 100644 index 000000000..8733e470b --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/mycelial_netherrack.json @@ -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 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/mycelial_netherrack_side.png b/src/main/resources/assets/biomesoplenty/textures/blocks/mycelial_netherrack_side.png new file mode 100644 index 000000000..25ac7120e Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/mycelial_netherrack_side.png differ