From 5f107dc8b8faabf24cf2cc3c3ad9773687b874d3 Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Wed, 1 Apr 2015 02:39:49 +0100 Subject: [PATCH] Add overgrown netherrack --- .../common/block/BlockBOPGrass.java | 58 +++++++++++------- .../biomesoplenty/blockstates/grass.json | 4 +- .../models/block/overgrown_netherrack.json | 9 +++ .../models/item/overgrown_netherrack.json | 10 +++ .../blocks/overgrown_netherrack_bottom.png | Bin 0 -> 759 bytes .../blocks/overgrown_netherrack_side.png | Bin 0 -> 791 bytes .../blocks/overgrown_netherrack_top.png | Bin 0 -> 610 bytes 7 files changed, 59 insertions(+), 22 deletions(-) create mode 100644 src/main/resources/assets/biomesoplenty/models/block/overgrown_netherrack.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/overgrown_netherrack.json create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_bottom.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_side.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/overgrown_netherrack_top.png 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 0000000000000000000000000000000000000000..78927cec5853e431a0f72c1de8b77486b276293d GIT binary patch literal 759 zcmVN2bPDNB8 zb~7$DE-^7j^FlWO00MJKL_t(IPc2g4Pf}qRK3C_L;29pxVZdks9@hdpLphy6pn;hh z$S;FDka~(EBW6hrR%#PAvNl(_xi&AfwQ9<0wk}#1ZEf7uZCBm2b1)jg=bn2>kl5})-_Ok5S=qLySCezK~VLwf8 zCK5z793FGIdKm_x4~kL>1YYO!hs#;fY@T#D0KI6nqT1JT`6fVeBmxZIH>^>`S_L-KdMzCJO5F}AOV zq20~0=eoKGvxIvfq>rWvec}P0Pr2QD=`^}R z$CvH)d7tk*O@pj23WpFyy)>B!G=o}@f5vfG5yst}pTwfSluGwxIW7oSTrN*f56iOX z@Xwpa1Qw_7{t3s;p{T_I^cY3`Yc(5@$oF~yTGN8?YjqWMU9n=6q?cK+~6S6I&?RegU36FH2rO92?W3}$;sC^N|?>? zAZW6T(h;ZgG{YeKprb>V(BF#qS*tasrc_b<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00NUqL_t(IPbHGeZ&E=R#b;5tcP4BoMJ*JP1}e9-JTH$6C16pK zHjoyjRVZ(I%d;&lx2;&HH8qWmiAH1GxUkU}H73TyKcP!EF5J2BZ}BuuCd18q-#ODimy3><4plr%ca=0JZYI#nd%&nJalU6HQHyiF+X%@*^ zjw?8wC&Mr-a;rk6Fmoxuk7zK+621~sQ;@+JyLWsXNay)HEb5^U zV&fKzp0SzHQSyM}%03^QZda66UJ^z8FK}tJ zDv`+hViB@wtrjzVzO)1Z+Auu=7+9i!$HERlBOFFFrfj4X)%zTGl1#$lMLG(1@~hu} zno6yEy>Bv^p+@tqP{8Sx?43^cv(>`fkp_$5{JaMVO}`(;H!1y6tCiGh3=Q)}`W3^E zUaraWZ?oC6g$38x*d-Epun-b6n~Uaa=)=$|ix)-h1SNCp71_Pc_GMO$EN2bPDNB8 zb~7$DE-^7j^FlWO00G`fL_t(IPc72xPFg_}1>kv^Mo_s5a)~zf4f;b{6t93H3JPA1 zB2X=+Ms1Teed2y6r^%d?nb~Wvz1H3nF3$>oe|@^>6*`9*>%5ykXfF0TxoA`#_KV$i z_V_5%ZDnWo)y>Zz&W>|ocwQ8~zb=pZ#p{ce!`&tSqrD|*kK^j}u7V3AjLg$cHay&} z%G=*rY#%IRI%#G4-Mppp-BtP9xH_NKLASS3xL%*vLt|^91KQ52FgVSlmptedRA}ul z<8n_YZmNXB_-0iAjsN#aZ9c0jV)OII$HwLYR=B504b*+?0p-zZT+$ik>gKXU zh7AxR(HMP_qccdo9hRn1g>FiO$)krQIj{3I)ksw*(H49H(WpeFoW1SzB&t9QCw7&E z(Z-~2K`H_4KR(ou3B#%R^0em0QCVHlT$71SV{-fUyv~qj^8?2#Zc3oBQZHW}$bep| zG&Y=-62|xEeWUp`r9M}nO#k;lE)5=q3A%E`YJ&DQYVJ1D=oz3#KZ1TIsvNYK42qkL zw4=R0oRO=qAY=eFfAhvCmOLbn$3O`aqFIYbil51>9=|0qij&fYYC52j4bI}8@1*aF w1OiMK0o^8`OGyIjzuz{D1)4D