diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java index c569729ec..af6ae067d 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java @@ -44,7 +44,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock { // add properties (note we also inherit the SNOWY property from BlockGrass) - public static enum BOPGrassType implements IStringSerializable {SPECTRAL_MOSS, SMOLDERING, LOAMY, SANDY, SILTY, ORIGIN; public String getName() {return this.name().toLowerCase();}}; + public static enum BOPGrassType implements IStringSerializable {SPECTRAL_MOSS, SMOLDERING, LOAMY, SANDY, SILTY, ORIGIN, OVERGROWN_NETHERRACK; public String getName() {return this.name().toLowerCase();}}; public static final PropertyEnum VARIANT = PropertyEnum.create("variant", BOPGrassType.class); @Override protected BlockState createBlockState() {return new BlockState(this, new IProperty[] { VARIANT, SNOWY });} @@ -72,6 +72,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock this.namedStates.put("sandy_grass_block", this.blockState.getBaseState().withProperty(SNOWY, Boolean.valueOf(false)).withProperty(VARIANT, BOPGrassType.SANDY) ); this.namedStates.put("silty_grass_block", this.blockState.getBaseState().withProperty(SNOWY, Boolean.valueOf(false)).withProperty(VARIANT, BOPGrassType.SILTY) ); this.namedStates.put("origin_grass_block", this.blockState.getBaseState().withProperty(SNOWY, Boolean.valueOf(false)).withProperty(VARIANT, BOPGrassType.ORIGIN) ); + this.namedStates.put("overgrown_netherrack", this.blockState.getBaseState().withProperty(SNOWY, Boolean.valueOf(false)).withProperty(VARIANT, BOPGrassType.OVERGROWN_NETHERRACK) ); this.setDefaultState(this.namedStates.get("loamy_grass_block")); @@ -107,26 +108,32 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock // origin grass supports all plants (including crop type - no need for hoe) case ORIGIN: return true; + + // overgrown_netherrack supports Nether plants in addition to the defaults + case OVERGROWN_NETHERRACK: + if (plantType == net.minecraftforge.common.EnumPlantType.Nether) {return true;} + break; + default: break; + } + + switch (plantType) + { + // support desert and plains plants + case Desert: case Plains: return true; + // support cave plants + case Cave: return isSideSolid(world, pos, EnumFacing.UP); + // support beach plants if there's water alongside + case Beach: + return ( + world.getBlockState(pos.east()).getBlock().getMaterial() == Material.water || + world.getBlockState(pos.west()).getBlock().getMaterial() == Material.water || + world.getBlockState(pos.north()).getBlock().getMaterial() == Material.water || + world.getBlockState(pos.south()).getBlock().getMaterial() == Material.water + ); + // don't support nether plants, water plants, or crops (require farmland), or anything else by default default: - switch (plantType) - { - // support desert and plains plants - case Desert: case Plains: return true; - // support cave plants - case Cave: return isSideSolid(world, pos, EnumFacing.UP); - // support beach plants if there's water alongside - case Beach: - return ( - world.getBlockState(pos.east()).getBlock().getMaterial() == Material.water || - world.getBlockState(pos.west()).getBlock().getMaterial() == Material.water || - world.getBlockState(pos.north()).getBlock().getMaterial() == Material.water || - world.getBlockState(pos.south()).getBlock().getMaterial() == Material.water - ); - // don't support nether plants, water plants, or crops (require farmland), or anything else by default - default: - return false; - } + return false; } } @@ -274,7 +281,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock public boolean canGrow(World worldIn, BlockPos pos, IBlockState state, boolean isClient) { switch ((BOPGrassType) state.getValue(VARIANT)) { - case SPECTRAL_MOSS: case SMOLDERING: + case SPECTRAL_MOSS: case SMOLDERING: case OVERGROWN_NETHERRACK: return false; default: return true; @@ -285,7 +292,7 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock public boolean canUseBonemeal(World worldIn, Random rand, BlockPos pos, IBlockState state) { switch ((BOPGrassType) state.getValue(VARIANT)) { - case SPECTRAL_MOSS: case SMOLDERING: + case SPECTRAL_MOSS: case SMOLDERING: case OVERGROWN_NETHERRACK: return false; default: return true; @@ -403,6 +410,8 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock return BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.SANDY); case SILTY: return BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.SILTY); + case OVERGROWN_NETHERRACK: + return Blocks.netherrack.getDefaultState(); case SMOLDERING: case ORIGIN: default: return Blocks.dirt.getStateFromMeta(BlockDirt.DirtType.DIRT.getMetadata()); } @@ -433,6 +442,13 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock return BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.SPECTRAL_MOSS); } break; + + case OVERGROWN_NETHERRACK: + if (target.getBlock()==Blocks.netherrack) + { + return BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK); + } + break; // loamy/sandy/silty grasses spread to any kind of dirt case LOAMY: case SANDY: case SILTY: diff --git a/src/main/resources/assets/biomesoplenty/blockstates/grass.json b/src/main/resources/assets/biomesoplenty/blockstates/grass.json index 5312dff3d..7bcd5100e 100644 --- a/src/main/resources/assets/biomesoplenty/blockstates/grass.json +++ b/src/main/resources/assets/biomesoplenty/blockstates/grass.json @@ -11,6 +11,8 @@ "snowy=false,variant=silty": { "model": "biomesoplenty:silty_grass_block" }, "snowy=true,variant=silty": { "model": "biomesoplenty:silty_grass_block_snowed" }, "snowy=false,variant=origin": { "model": "biomesoplenty:origin_grass_block" }, - "snowy=true,variant=origin": { "model": "biomesoplenty:origin_grass_block_snowed" } + "snowy=true,variant=origin": { "model": "biomesoplenty:origin_grass_block_snowed" }, + "snowy=false,variant=overgrown_netherrack": { "model": "biomesoplenty:overgrown_netherrack" }, + "snowy=true,variant=overgrown_netherrack": { "model": "biomesoplenty:overgrown_netherrack" } } } diff --git a/src/main/resources/assets/biomesoplenty/models/block/overgrown_netherrack.json b/src/main/resources/assets/biomesoplenty/models/block/overgrown_netherrack.json new file mode 100644 index 000000000..e90ec12bc --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/overgrown_netherrack.json @@ -0,0 +1,9 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "particle": "biomesoplenty:blocks/overgrown_netherrack_bottom", + "bottom": "biomesoplenty:blocks/overgrown_netherrack_bottom", + "top": "biomesoplenty:blocks/overgrown_netherrack_top", + "side": "biomesoplenty:blocks/overgrown_netherrack_side" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/overgrown_netherrack.json b/src/main/resources/assets/biomesoplenty/models/item/overgrown_netherrack.json new file mode 100644 index 000000000..a5e908d64 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/overgrown_netherrack.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/overgrown_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/overgrown_netherrack_bottom.png b/src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_bottom.png new file mode 100644 index 000000000..78927cec5 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_bottom.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_side.png b/src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_side.png new file mode 100644 index 000000000..8debf60d4 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_side.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_top.png b/src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_top.png new file mode 100644 index 000000000..4d0291eb8 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_top.png differ