From 91e6c69737a3fdc30e877e18560445d2b7cb98c7 Mon Sep 17 00:00:00 2001 From: Matt Caughey Date: Sun, 16 Mar 2014 21:49:18 -0400 Subject: [PATCH] Replaced sunflowers and high grass with different blocks --- .../client/render/blocks/FoliageRenderer.java | 23 ++++++++++++-- .../common/blocks/BlockBOPFlower.java | 17 +++++----- .../common/blocks/BlockBOPFoliage.java | 29 +++++++++++------- .../common/itemblocks/ItemBlockFlower.java | 8 ++--- .../common/itemblocks/ItemBlockFoliage.java | 12 ++++---- .../assets/biomesoplenty/lang/en_US.lang | 8 ++--- .../textures/blocks/eyebulbbottom.png | Bin 0 -> 630 bytes .../textures/blocks/eyebulbtop.png | Bin 0 -> 653 bytes .../textures/blocks/hedge_trunk.png | Bin 0 -> 584 bytes .../textures/blocks/hedgebottom.png | Bin 0 -> 442 bytes .../textures/blocks/hedgetop.png | Bin 0 -> 457 bytes .../textures/blocks/highgrassbottom.png | Bin 463 -> 0 bytes .../textures/blocks/highgrasstop.png | Bin 368 -> 0 bytes .../textures/blocks/item_highgrass.png | Bin 361 -> 0 bytes .../textures/blocks/item_sunflower.png | Bin 702 -> 0 bytes .../textures/blocks/sunflowerbottom.png | Bin 580 -> 0 bytes .../textures/blocks/sunflowertop.png | Bin 804 -> 0 bytes 17 files changed, 63 insertions(+), 34 deletions(-) create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/eyebulbbottom.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/eyebulbtop.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/hedge_trunk.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/hedgebottom.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/hedgetop.png delete mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/highgrassbottom.png delete mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/highgrasstop.png delete mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/item_highgrass.png delete mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/item_sunflower.png delete mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/sunflowerbottom.png delete mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/sunflowertop.png diff --git a/src/main/java/biomesoplenty/client/render/blocks/FoliageRenderer.java b/src/main/java/biomesoplenty/client/render/blocks/FoliageRenderer.java index 65ea8009d..992754530 100644 --- a/src/main/java/biomesoplenty/client/render/blocks/FoliageRenderer.java +++ b/src/main/java/biomesoplenty/client/render/blocks/FoliageRenderer.java @@ -13,7 +13,7 @@ import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; public class FoliageRenderer implements ISimpleBlockRenderingHandler { - private final int GRASSTOP = 6; + private final int HEDGETOP = 6; @Override public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) @@ -344,7 +344,7 @@ public class FoliageRenderer implements ISimpleBlockRenderingHandler if (par1Block == BOPBlockHelper.get("foliage")) { long i1; - if (world.getBlockMetadata(par2, par3, par4) == GRASSTOP) { + if (world.getBlockMetadata(par2, par3, par4) == HEDGETOP) { i1 = par2 * 3129871 ^ par4 * 116129781L ^ par3 - 1; } else { i1 = par2 * 3129871 ^ par4 * 116129781L ^ par3; @@ -362,6 +362,10 @@ public class FoliageRenderer implements ISimpleBlockRenderingHandler //TODO: drawCrossedSquares() getIcon() renderer.drawCrossedSquares(par1Block.getIcon(0, world.getBlockMetadata(par2, par3, par4)), d0, d1 - 1, d2, 1.0F); } + else if (world.getBlockMetadata(par2, par3, par4) == 3 && world.getBlock(par2, par3, par4) == BOPBlockHelper.get("foliage")) + { + renderHedge(d0, d1, d2, 1.0F, f1, f2, f3, renderer); + } //TODO: getBlock() else if (world.getBlockMetadata(par2, par3, par4) == 8 && world.getBlock(par2, par3, par4) == BOPBlockHelper.get("foliage")) { @@ -410,4 +414,19 @@ public class FoliageRenderer implements ISimpleBlockRenderingHandler //TODO: drawCrossedSquares() renderer.drawCrossedSquares(shrubBranch, par1, par2, par3, par4); } + + private static void renderHedge(double par1, double par2, double par3, float par4, float par5, float par6, float par7, RenderBlocks renderer) + { + Tessellator tessellator = Tessellator.instance; + //TODO: getBlockIconFromSideAndMetadata() + IIcon hedgeLeaf = renderer.getBlockIconFromSideAndMetadata(BOPBlockHelper.get("foliage"), 0, 3); + IIcon hedgeTrunk = ((BlockBOPFoliage)BOPBlockHelper.get("foliage")).hedgeTrunk; + + tessellator.setColorOpaque_F(par4 * par5, par4 * par6, par4 * par7); + //TODO: drawCrossedSquares() + renderer.drawCrossedSquares(hedgeLeaf, par1, par2, par3, par4); + tessellator.setColorOpaque_F(par4, par4, par4); + //TODO: drawCrossedSquares() + renderer.drawCrossedSquares(hedgeTrunk, par1, par2, par3, par4); + } } diff --git a/src/main/java/biomesoplenty/common/blocks/BlockBOPFlower.java b/src/main/java/biomesoplenty/common/blocks/BlockBOPFlower.java index 85a7c6759..8c92b1168 100644 --- a/src/main/java/biomesoplenty/common/blocks/BlockBOPFlower.java +++ b/src/main/java/biomesoplenty/common/blocks/BlockBOPFlower.java @@ -29,11 +29,11 @@ import cpw.mods.fml.relauncher.SideOnly; public class BlockBOPFlower extends BOPBlockWorldDecor { - private static final String[] plants = new String[] {"clover", "swampflower", "deadbloom", "glowflower", "hydrangea", "cosmos", "daffodil", "wildflower", "violet", "anemone", "lilyflower", "rainbowflower", "bromeliad", "sunflowerbottom", "sunflowertop", "dandelion"}; + private static final String[] plants = new String[] {"clover", "swampflower", "deadbloom", "glowflower", "hydrangea", "cosmos", "daffodil", "wildflower", "violet", "anemone", "lilyflower", "rainbowflower", "bromeliad", "eyebulbbottom", "eyebulbtop", "dandelion"}; private IIcon[] textures; - private static final int SUNFLOWERTOP = 14; - private static final int SUNFLOWERBOTTOM = 13; + private static final int EYEBULBTOP = 14; + private static final int EYEBULBBOTTOM = 13; public BlockBOPFlower() { @@ -227,8 +227,11 @@ public class BlockBOPFlower extends BOPBlockWorldDecor case 12: // Bromeliad return block == BOPBlockHelper.get("hardDirt") || block == Blocks.hardened_clay || block == Blocks.sand; + + case 13: // Eyebulb Bottom + return block == Blocks.netherrack || block == BOPBlockHelper.get("overgrownNetherrack") || block == BOPBlockHelper.get("flesh"); - case 14: // Sunflower Top + case 14: // Eyebulb Top return block == this; default: @@ -243,13 +246,13 @@ public class BlockBOPFlower extends BOPBlockWorldDecor super.onNeighborBlockChange(world, x, y, z, neighborBlock); //TODO: getBlock() - if (world.getBlockMetadata(x, y, z) == SUNFLOWERTOP && world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y - 1, z) != SUNFLOWERBOTTOM) + if (world.getBlockMetadata(x, y, z) == EYEBULBTOP && world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y - 1, z) != EYEBULBBOTTOM) { //TODO: setBlockToAir() world.setBlockToAir(x, y, z); } //TODO: getBlock() - if (world.getBlockMetadata(x, y, z) == SUNFLOWERBOTTOM && world.getBlock(x, y + 1, z) != this) + if (world.getBlockMetadata(x, y, z) == EYEBULBBOTTOM && world.getBlock(x, y + 1, z) != this) { //TODO: setBlockToAir() world.setBlockToAir(x, y, z); @@ -261,7 +264,7 @@ public class BlockBOPFlower extends BOPBlockWorldDecor public int getDamageValue(World world, int x, int y, int z) { int meta = world.getBlockMetadata(x, y, z); - if (meta == SUNFLOWERTOP) { + if (meta == EYEBULBTOP) { meta = 13; } return meta; diff --git a/src/main/java/biomesoplenty/common/blocks/BlockBOPFoliage.java b/src/main/java/biomesoplenty/common/blocks/BlockBOPFoliage.java index 81b33eaaf..f04c97c7e 100644 --- a/src/main/java/biomesoplenty/common/blocks/BlockBOPFoliage.java +++ b/src/main/java/biomesoplenty/common/blocks/BlockBOPFoliage.java @@ -39,15 +39,16 @@ import cpw.mods.fml.relauncher.SideOnly; public class BlockBOPFoliage extends BlockTallGrass implements IShearable { - private static final String[] foliageTypes = new String[] {"algae", "shortgrass", "mediumgrass", "highgrassbottom", "bush", "sprout", "highgrasstop", "poisonivy", "berrybush", "shrub", "wheatgrass", "dampgrass", "koru", "cloverpatch", "leafpile", "deadleafpile"}; + private static final String[] foliageTypes = new String[] {"algae", "shortgrass", "mediumgrass", "hedgebottom", "bush", "sprout", "hedgetop", "poisonivy", "berrybush", "shrub", "wheatgrass", "dampgrass", "koru", "cloverpatch", "leafpile", "deadleafpile"}; private IIcon[] textures; + public IIcon hedgeTrunk; public IIcon shrubBranch; public IIcon berryBushBerry; - private static final int GRASSTOP = 6; + private static final int HEDGETOP = 6; private static final int ALGAE = 0; - private static final int GRASSBOTTOM = 3; + private static final int HEDGEBOTTOM = 3; public BlockBOPFoliage() { @@ -76,6 +77,7 @@ public class BlockBOPFoliage extends BlockTallGrass implements IShearable textures[i] = iconRegister.registerIcon("biomesoplenty:"+foliageTypes[i]); } + hedgeTrunk = iconRegister.registerIcon("biomesoplenty:" + "hedge_trunk"); shrubBranch = iconRegister.registerIcon("biomesoplenty:" + "shrub_branch"); berryBushBerry = iconRegister.registerIcon("biomesoplenty:" + "berrybush_berry"); } @@ -97,7 +99,7 @@ public class BlockBOPFoliage extends BlockTallGrass implements IShearable { for (int i = 0; i < foliageTypes.length; ++i) { - if (i != GRASSTOP) + if (i != HEDGETOP) { list.add(new ItemStack(block, 1, i)); } @@ -159,17 +161,22 @@ public class BlockBOPFoliage extends BlockTallGrass implements IShearable { //TODO: getBlock() Block block = world.getBlock(x, y - 1, z); - boolean solid = block.isOpaqueCube(); if (block == Blocks.air) return false; switch (metadata) { - case GRASSTOP: + case HEDGETOP: return block == this; case ALGAE: // Algae return block == Blocks.water; + + case 14: // Leaf Pile + return block == Blocks.grass || block == Blocks.dirt || block == Blocks.farmland || block == Blocks.stone || block == Blocks.sand || block == Blocks.gravel || block == BOPBlockHelper.get("longGrass") || block == BOPBlockHelper.get("overgrownNetherrack"); + + case 15: // Dead Leaf Pile + return block == Blocks.grass || block == Blocks.dirt || block == Blocks.farmland || block == Blocks.stone || block == Blocks.sand || block == Blocks.gravel || block == BOPBlockHelper.get("longGrass") || block == BOPBlockHelper.get("overgrownNetherrack"); default: return block == Blocks.grass || block == Blocks.dirt || block == Blocks.farmland || block == BOPBlockHelper.get("longGrass") || block == BOPBlockHelper.get("overgrownNetherrack"); @@ -240,7 +247,7 @@ public class BlockBOPFoliage extends BlockTallGrass implements IShearable int metadata = world.getBlockMetadata(x, y, z); - if (world.getBlockMetadata(x, y, z) == GRASSBOTTOM) + if (world.getBlockMetadata(x, y, z) == HEDGEBOTTOM) { //TODO: getBlock() if (world.getBlock(x, y + 1, z) != this) @@ -316,7 +323,7 @@ public class BlockBOPFoliage extends BlockTallGrass implements IShearable @Override public int colorMultiplier(IBlockAccess world, int x, int y, int z) { - if (world.getBlockMetadata(x, y, z) == 9 || world.getBlockMetadata(x, y, z) == 14) + if (world.getBlockMetadata(x, y, z) == 3 || world.getBlockMetadata(x, y, z) == 6 || world.getBlockMetadata(x, y, z) == 9 || world.getBlockMetadata(x, y, z) == 14) { return world.getBiomeGenForCoords(x, z).getBiomeFoliageColor(x, y, z); } @@ -334,8 +341,8 @@ public class BlockBOPFoliage extends BlockTallGrass implements IShearable public int getDamageValue(World world, int x, int y, int z) { int meta = world.getBlockMetadata(x, y, z); - if (meta == GRASSTOP) { - meta = GRASSBOTTOM; + if (meta == HEDGETOP) { + meta = HEDGEBOTTOM; } return meta; } @@ -467,7 +474,7 @@ public class BlockBOPFoliage extends BlockTallGrass implements IShearable { ArrayList ret = new ArrayList(); - if (world.getBlockMetadata(x, y, z) == GRASSTOP) + if (world.getBlockMetadata(x, y, z) == HEDGETOP) { ret.add(new ItemStack(Blocks.tallgrass, 1, 1)); } diff --git a/src/main/java/biomesoplenty/common/itemblocks/ItemBlockFlower.java b/src/main/java/biomesoplenty/common/itemblocks/ItemBlockFlower.java index e12453190..2db4129f1 100644 --- a/src/main/java/biomesoplenty/common/itemblocks/ItemBlockFlower.java +++ b/src/main/java/biomesoplenty/common/itemblocks/ItemBlockFlower.java @@ -19,10 +19,10 @@ import cpw.mods.fml.relauncher.SideOnly; public class ItemBlockFlower extends ItemBlock { - private static final String[] plants = new String[] {"clover", "swampflower", "deadbloom", "glowflower", "hydrangea", "cosmos", "daffodil", "wildflower", "violet", "anemone", "lilyflower", "rainbowflower", "bromeliad", "sunflowerbottom", "sunflowertop", "dandelion"}; + private static final String[] plants = new String[] {"clover", "swampflower", "deadbloom", "glowflower", "hydrangea", "cosmos", "daffodil", "wildflower", "violet", "anemone", "lilyflower", "rainbowflower", "bromeliad", "eyebulbbottom", "eyebulbtop", "dandelion"}; @SideOnly(Side.CLIENT) private IIcon[] textures; - private static final int SUNFLOWERTOP = 14; + private static final int EYEBULBTOP = 14; public ItemBlockFlower(Block block) { @@ -44,7 +44,7 @@ public class ItemBlockFlower extends ItemBlock { textures = new IIcon[2]; - textures[0] = iconRegister.registerIcon("biomesoplenty:item_sunflower"); + textures[0] = iconRegister.registerIcon("biomesoplenty:eyebulbtop"); textures[1] = iconRegister.registerIcon("biomesoplenty:item_rainbowflower"); } @@ -136,7 +136,7 @@ public class ItemBlockFlower extends ItemBlock { if (metadata == 13) { - if (!placeBlockAt(stack, player, world, x, y + 1, z, side, hitX, hitY + 1, hitZ, SUNFLOWERTOP)) return false; + if (!placeBlockAt(stack, player, world, x, y + 1, z, side, hitX, hitY + 1, hitZ, EYEBULBTOP)) return false; } return super.placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, metadata); diff --git a/src/main/java/biomesoplenty/common/itemblocks/ItemBlockFoliage.java b/src/main/java/biomesoplenty/common/itemblocks/ItemBlockFoliage.java index e9e6066ec..e55c3b52d 100644 --- a/src/main/java/biomesoplenty/common/itemblocks/ItemBlockFoliage.java +++ b/src/main/java/biomesoplenty/common/itemblocks/ItemBlockFoliage.java @@ -17,10 +17,10 @@ import cpw.mods.fml.relauncher.SideOnly; public class ItemBlockFoliage extends ItemColored { - private static final String[] foliageTypes = new String[] {"algae", "shortgrass", "mediumgrass", "highgrassbottom", "bush", "sprout", "highgrasstop", "poisonivy", "berrybush", "shrub", "wheatgrass", "dampgrass", "koru", "cloverpatch", "leafpile", "deadleafpile"}; + private static final String[] foliageTypes = new String[] {"algae", "shortgrass", "mediumgrass", "hedgebottom", "bush", "sprout", "hedgetop", "poisonivy", "berrybush", "shrub", "wheatgrass", "dampgrass", "koru", "cloverpatch", "leafpile", "deadleafpile"}; @SideOnly(Side.CLIENT) private IIcon[] textures; - private static final int GRASSTOP = 6; + private static final int HEDGETOP = 6; public ItemBlockFoliage(Block block) { @@ -40,7 +40,7 @@ public class ItemBlockFoliage extends ItemColored textures[i] = iconRegister.registerIcon("biomesoplenty:" + foliageTypes[i]); } - textures[3] = iconRegister.registerIcon("biomesoplenty:item_highgrass"); + textures[3] = iconRegister.registerIcon("biomesoplenty:hedgetop"); textures[8] = iconRegister.registerIcon("biomesoplenty:item_berrybush"); textures[9] = iconRegister.registerIcon("biomesoplenty:item_shrub"); textures[15] = iconRegister.registerIcon("biomesoplenty:deadleafpile"); @@ -50,7 +50,7 @@ public class ItemBlockFoliage extends ItemColored @SideOnly(Side.CLIENT) public int getColorFromItemStack(ItemStack itemStack, int par2) { - if (itemStack.getItemDamage() == 3 || itemStack.getItemDamage() == 8 || itemStack.getItemDamage() == 9 || itemStack.getItemDamage() == 15) + if (itemStack.getItemDamage() == 8 || itemStack.getItemDamage() == 9 || itemStack.getItemDamage() == 15) return 16777215; else //TODO: getRenderColor() @@ -77,7 +77,7 @@ public class ItemBlockFoliage extends ItemColored @Override public IIcon getIconFromDamage(int meta) { - if (meta == GRASSTOP) { + if (meta == HEDGETOP) { meta = 3; } @@ -130,7 +130,7 @@ public class ItemBlockFoliage extends ItemColored { if (metadata == 3) { - if (!placeBlockAt(stack, player, world, x, y + 1, z, side, hitX, hitY + 1, hitZ, GRASSTOP)) return false; + if (!placeBlockAt(stack, player, world, x, y + 1, z, side, hitX, hitY + 1, hitZ, HEDGETOP)) return false; } return super.placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, metadata); diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index 91167ed05..f189a9f25 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -47,8 +47,8 @@ tile.flowers.anemone.name=White Anemone tile.flowers.lilyflower.name=Waterlily tile.flowers.rainbowflower.name=Chromaflora tile.flowers.bromeliad.name=Bromeliad -tile.flowers.sunflowerbottom.name=Sunflower -tile.flowers.sunflowertop.name=Sunflower +tile.flowers.eyebulbbottom.name=Eyebulb +tile.flowers.eyebulbtop.name=Eyebulb tile.flowers.dandelion.name=Dandelion Puff tile.flowers2.hibiscus.name=Pink Hibiscus @@ -67,10 +67,10 @@ tile.stoneFormations.stalactite.name=Stalactite tile.foliage.algae.name=Algae tile.foliage.shortgrass.name=Short Grass tile.foliage.mediumgrass.name=Medium Grass -tile.foliage.highgrassbottom.name=High Grass +tile.foliage.hedgebottom.name=Hedge tile.foliage.bush.name=Bush tile.foliage.sprout.name=Sprout -tile.foliage.highgrasstop.name=High Grass +tile.foliage.hedgetop.name=Hedge tile.foliage.poisonivy.name=Poison Ivy tile.foliage.berrybush.name=Berry Bush tile.foliage.shrub.name=Shrub diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/eyebulbbottom.png b/src/main/resources/assets/biomesoplenty/textures/blocks/eyebulbbottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c4255b79f9817fc7b25401d71e35754cb7a763c3 GIT binary patch literal 630 zcmV-+0*U>JP)N2bPDNB8 zb~7$DE-^7j^FlWO00HtzL_t(IPi>RQPE=74hVN6bVV;LTNEj1_ChXj(AUMG@kdTf> zLxQa&$`Ia!c?T>&hMoE>o$mBJ{ob#x)wYR?|DJQI{+jCsl}aTjm&<`9!?)Sl@KCVY z)uor+-P#%*)#u4cz3uPU>)u|KN+sjH8yqyAJ!-XDP_0&jhx2nK;&I)dor!lYmkYj3 zO=)dlK!rlVg2BHzI@0#$rhZ;sMNu6;E-wX$0=CD-^ro**o?)?AG$#anytvT!lat8M zJ*U%YJ0W14n3&LVdwVGQ8w74XpRe20J-X6~$Ucpa3(yDGJ13jX+T9vRy`%?uKNi#b zp&{!5(UD=`XpD}nT}VA1c9}bopS85;NmG+vbad$B$cV`u-Ve{l9>1=yb(lz4Q=CZW zU-k6pU}3?=h+`(<**ec2x5vl2J3TeyM&<6@oc8AD&C&DLR_#nr>%;J{@jx<}j57Ei zh;+EPD5kOgXK4WC5d=M1)eTr0#>V1sLijo}W5(R!__@^979NpZ-2toWjiGr&rm-uX zokk`aI<|CcV?*@Kn&`XDnaO0V%c)e#-i(mi(UT1su)Y8pun)6!0r04t{8UVYH}!ia z0NFo=j0pqo)Jgp;Q{y`O9*_+g+e-S38%M~mOfN8|jHk`bp*YgPj~prZ4I5RT-97L_ Q4FCWD07*qoM6N<$g3!Gu@&Et; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/eyebulbtop.png b/src/main/resources/assets/biomesoplenty/textures/blocks/eyebulbtop.png new file mode 100644 index 0000000000000000000000000000000000000000..feb121fe58bcae535f3b102c23180935bc058fd5 GIT binary patch literal 653 zcmV;80&@L{P)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00Id~L_t(IPgRpSPgG$PhQA*{0VM28!M+m+A<$T;i70N3h4v(b zWTK7&N;HJv?;un_*b*`gjB#shjQ?ZyedhH(XYyT{;@t17?^&;t)Ihab%~dKDS1OfE zj*gD%)7+fUd!I}u<8ry2`7{LbqTHUEQX-LX@5aXTxVt-0%XIi;vsqUt6kNGnHVOee zksZU%?5ys$whI2&<)t>)*A+iL7WPysWxnZj`aggV+M1jUM7bwDJ@%4~z^^AKCVQfq zu!Vd+@Aj9L4E<4Or#?(iYo)zilwGY>-R8uE_7)daEEYomPxkp6k839q(f6~nK$Lsf z(V=I3eOCU*nHjBiby@#!hKJ4W2MnNP$MNRqNLL33qGXJ_3k!NbKCY*|y$19<7Sr~| zhJKu%s{sJ!HnAQ8$ohGHK3w0o(^JI`4@E*`4`K|xdjROg;9&5`%4Y_=Z%0N9@XPYD z**uU<83rP==gG_s_!)RT#E|{E?J&H7YF-Zw1#DermCyV8Lz!xRUR-E58r7fcYtvi# z7zn)E+-xi4bh(K;O-*4i6+y{l(s2_2830)+g>nJ%^I(lHga3fO(fgr!FwfhE9vKS3 z7@5nf;6K0?85po?;2}RJe^j>r=-QgNcaMBK!@ZW4;HmQv_s<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00G2FL_t(IPj!;nFGE2T#&7rDwl8f$B=*>sQoC4c-zufLP)aPR z2hoLuq=W}gLh&L*;vbOsBR|fGGr1Lh$?ciW%=ykYXGSxd%^G2~S~Z`~$78$Q&e3MG zaWrDFSbj$T;PH4kIvfrbbvm8=(OBk7Fqupxkv2+Ya!2#Ju5)FnE_>Oj96@Xo#<5hC zWS7gukq{wPI2fgXcm7hmiob z=9-|I_5=T?A6cLmCtRn4c)!`gSu%k2sd{dvIFyDf$09)X=qUO19^B@ZP|VFDHd=wV z>jXEFH+}QliRSfsOWs2!=Euc$FYYqae1vqk4fH0cnY`&6quUaW*E*3)1n^Q=!RJ$& zukrOVii5BpyP!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P^!c=q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL{`R{j-xf0|TR( zr;B5Vh5ytE{@qOhB1iuo(>3xoTrAeqHNoZ8u_G=_nSw4#H=J6`YF8Q;zkhPZ=Gnz$ zKACs5=kNdhe8uDXYf%x|;|JfC9sd0DNYcgwb^DLMEO81AJ+X-=H8M$pE$#KLXD2*m zjxX48`>jM-thn#xgv~b~2y*qq-f zIXBbzR@1xN+fwJf)7<29`APq_+{Lf0B-$E(*7O~I*zo!1ndiU%p7Xzzw|&ljFVkK% z*T9yqRcFt8Ok(Lj-n?9Yx_923Wt#a8XJ2H7xc_%qJl~Z)s@`bkf$y~}jt4H=FAYq- z)m0RG-7;$0SL46ik11_>UU}b=SF$+jf9wCN9Dk2Dr8JzvjSo~i|7O^BAn4J<4b8Q{ PaAxpy^>bP0l+XkKP1DJn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/hedgetop.png b/src/main/resources/assets/biomesoplenty/textures/blocks/hedgetop.png new file mode 100644 index 0000000000000000000000000000000000000000..873f75f7443f57ab11fe36f51743cf84aa1e3358 GIT binary patch literal 457 zcmV;)0XF`LP)N2bPDNB8 zb~7$DE-^7j^FlWO00BiwL_t(IPn}ZHs)A4u^o#Sw2r{fRB9JtxR4R(fpeOpH^yoza>7>!1l z&*z_aLAT{{DFXkU*@+O|q1){WX}{l#`)aiU!(>N7_ykP8R;x*X+wB&4o`ZtE@0W`V zheK$ZhTU!l!!YD3+=t8MQeGT}p^zBjdc77$X25C0aV-B9i^Y2(y3*bAJedZcX0wS# zqamVq+H2J7bqodrDK3fvbmKlSeU6d2aJ3(uK7nEJ`+U>Tq%-N5}V+ql59QpoOCSFGh6h-+1y9yIoA93@y00000NkvXXu0mjfBl*Si literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/highgrassbottom.png b/src/main/resources/assets/biomesoplenty/textures/blocks/highgrassbottom.png deleted file mode 100644 index 5011d13731dd754326956596944f8afeba2fe051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0003#NklF(C@;M2=XSPBQl!<`v*TIY9EM?Vhwm@TGRGm;iK56j?xlkZ(F!Ge7s(_n3S-a= zz_9p!zkd{TUAN<8ZUl)sA;zF>TVLSCzd5)wfY1o!7=SY4o*Yf6vqwVr+wEpp6oof9 zpU)OQ9uG5_P17BZUIyfJ=w}0&38b*9 zDibo!IF4>v78`+=83$7{;CpXbX8-Z(rmpLsJ6ysUL)0>rmu2a-j0o@l!t?q3FnBl4 z^V~)gXP*o>^E?|~E*C?7E4Xdjj%N>kehFW%ms{7>1ZsVnCfkJ!=m2C7r_<@rB#vX3 zB#B+JVZ{_5k4OJ^h=tNv2RLCu3?kr!oDMm~+z-Rxz5t|n<(meo!Jz;E002ovPDHLk FV1k`!yp;d| diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/highgrasstop.png b/src/main/resources/assets/biomesoplenty/textures/blocks/highgrasstop.png deleted file mode 100644 index 9dcc838a326b18d8e44dc884b1f2e25d1b9fc5be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3 zQ$0figD*u3fvWC%x;Tbd_|Ki-$k%MZ!}2@y9)pm$LxIC1=RN&dJd>qn#Yt)2`dYP@ zZ% zJ!$yUl_+se^`_1F;)MI(U9)eS{n(bv9w%NFTi!Nxd5p}Gm28{VK4X0R<4cdJt}^4N z=*hl6L$mU>w96Gs8J*h8)|v5CSY|>qo9%yBx4nfTe;u#H9OgYWKTST4OV4KZ4mOFh z&yhA4^L37OKWEq?;OLU=W65ylV8P$S1sfWtZO?G~y>9kn-k`23!ylqtbAVoD@O1Ta JS?83{1OUv^j3NL4 diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/item_highgrass.png b/src/main/resources/assets/biomesoplenty/textures/blocks/item_highgrass.png deleted file mode 100644 index 4511d9386bf7e17bb08cd2a47d311f7b682525fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3dtTpz6=aistgPb%?u1b{{!il z3=E|P3=FRl7#OT(FffScPl`Y422{&g;1OBOz`%D9gc)~C%zg_LlqzwJC<)F_D=AMb zN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGsOqGri(`m|fA55YT!#zey29lk~z-YlCtbM6t}#Q#w(CRX+DAMdd_^J)A34J@4{->$EZ zXbWX-JZqG&`Pa8kD^tRb{E+yhR{xs0ZT9CqdSW>tXIFi+Wa04$ZSfGgkzLT&qUo?< zuFI^|Y)u{OVlI?5~i_yj;t&2i)s+l8aOlKBN^?VBS6oaR$pUXO@geCxm Cf{En- diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/item_sunflower.png b/src/main/resources/assets/biomesoplenty/textures/blocks/item_sunflower.png deleted file mode 100644 index 8e2b6d2ca48d50a03d5f74cab4f2d4b89d586343..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)N2bPDNB8 zb~7$DE-^7j^FlWO00KHmL_t(IPgPP&Y))Yi9jYFU(56a-r9>p6ln51mK?ETh3n8hH zC~Z}|7qlc;5W=n^v5{1$1x;9BX@#gqB+{0jO@9gb-}&F~2zAc;jqT6DHIBtlUy$66=X6Q*S|lGWHKqm&!>@m+vTL3 z^Y0fyY^hX|d_J!@#u`|HR`_%Z@E;NkpGV~7W;KlV07I>k|9H}YxHxMp*=$ysIKD^p ztry`Jo6x;`HI8gwj5O4`BXyZB2OGvj=@0KD2FI4FAIw zE{XpV*wFA2iA1DWEUG9Nxd43G3;%!*UAtD{{+S&(+uDqC`+RuUw-orgAH$xAtkll2SZspuTF8J}&~yBm2L;hrTQD}b6~p~4T0Ey? z3No*EIuQ4|iA2IB;21i-^TWM1bXMc{v-PNJpM*cpH{i#kW+e!6X9 zuW|m(Dp0JNUV$@>a|Efo>Ux?HvAG6jwguYU>w?*r1+`ZMOYYSp9*=9@itX9!hdS5+ zuR|h=s09Cn3xz@x)@RN1GrpLfz-Tlo^Nvl!qC2zDcw;j7cvxiXHuJVXGXfKl_ipT- kt`CU+EH->F7<4@3FC4kKYJ{xCIRF3v07*qoM6N<$f;b>NEdT%j diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/sunflowerbottom.png b/src/main/resources/assets/biomesoplenty/textures/blocks/sunflowerbottom.png deleted file mode 100644 index 12ad15c744b02e83438500c99e7398ef16e79a18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)N2bPDNB8 zb~7$DE-^7j^FlWO00F>BL_t(IPhFE)OI$$^h0A4d#&M#~xQj#y{;C8GghWvhA4Cwv zEyOJnl9&9<+4rryUtO!2>%-|=U0r?p)N(~t6KFP@2JHM#(fs#u?f3h(?{qr$^*xZ` zaF{r()oS5z?f0ZEA52B2%F5HYeZeT9wA*ciA7Zy!EwdMXiLM-`b?#Oaf3MdIaUPp+ zq|ZgG)v5rLef*oz`8(0f7twOLoQQSUf)tna;aYU#Pb@ooDLVHJcN|R2U@!hpwJVNY^8`m)0o?*MQG*bEPy*gBmLZR8vxpH`DyDwPr>PCyZDkltEZsZ^|Ei7t=} zj2t@a?2RbIbb#D_G9e}%2>d}?=y6mup>^!R(nB-@k^F_d$>4k6LJ%e@8dq~nUx-zk z0fLY*#?N%}XA+A7l#{w$;zCqqb5i-4-S|@ON|ZhJr?Y~t9%Z!fW5V_^R9*o|3ysM! SXDo~W0000N2bPDNB8 zb~7$DE-^7j^FlWO00N*%L_t(IPeoH{NK|1I{e(6X3n3DM$`&xh5}Rt=D#bK2Lqtps zvoaAg!lg)QqDZg;p+)*vP?3}^R+JG|&>tHON)uBQEG;WqCK_$VaW+ry+~K``-1lww zo^$SZzNaQ9C)M=yv;v^~e!q+owsY`xW~uSrjNR*_n#>9&ZpgUJoc)F_uh(TiMoBeuws^RZF41d=S3|x!G?vzz%J6#M* zK?3%qM&aATBmtoUo6V+lAVFeJa%sIg@#(G^hjQZ3V#!5i)*3X|W}`08jIzvFjJ3wY z^C}be=gB}{L7)ZNL%Z0o{aHG?E=40haXF6Un9$z1ALVJ0Xg!&a>bxWjHft*0_~Y?r^jtO}FFpb_*|E4%xfKOTE6{h<%y)sGZOQohAQ8Mf)*62D zR=?a&00Gdy3)ZG6lxD=BaN|l0w`h_zW}f|elA@(U?3Wh!Av;@Gct)xDB}x+A9os~5 z|Mhr`++HuN!9@z+A8nGL1L6V!7*rB|HVC74Hi*pMPg6lfWDF@*vPY{ISA~Mo=?Wb& z03t5V71Yo7;xJRYU>46R)SkY^K5w5w=-vQ3bC;Z-BO}{302q3IVf9=>5rDFXZp2{e zgor3E$s0000