From 05fc6e2f2e9894dfcb1915976a5f05ce243f65d9 Mon Sep 17 00:00:00 2001 From: Matt Caughey Date: Sat, 26 Oct 2013 12:32:03 -0400 Subject: [PATCH] Added Bloody Heap biome to the Nether --- common/biomesoplenty/api/Biomes.java | 1 + common/biomesoplenty/api/BlockReferences.java | 1 + common/biomesoplenty/api/Blocks.java | 1 + .../biomes/nether/BiomeGenNetherBlood.java | 32 +++++++ common/biomesoplenty/blocks/BlockFlesh.java | 80 ++++++++++++++++++ .../configuration/BOPBiomes.java | 3 + .../configuration/BOPBlocks.java | 3 + .../configfile/BOPConfigurationBiomeGen.java | 2 + .../configfile/BOPConfigurationIDs.java | 5 ++ .../world/WorldProviderBOPhell.java | 2 +- .../world/layer/BiomeLayerBiomes.java | 7 ++ .../assets/biomesoplenty/lang/en_US.lang | 1 + .../biomesoplenty/textures/blocks/flesh.png | Bin 0 -> 888 bytes .../textures/blocks/item_moss.png | Bin 398 -> 414 bytes .../textures/blocks/log_cherry_heart.png | Bin 544 -> 494 bytes .../textures/blocks/log_cherry_side.png | Bin 586 -> 573 bytes .../textures/blocks/log_dark_heart.png | Bin 544 -> 830 bytes .../textures/blocks/log_dead_heart.png | Bin 544 -> 669 bytes .../textures/blocks/plank_cherry.png | Bin 609 -> 579 bytes 19 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 common/biomesoplenty/biomes/nether/BiomeGenNetherBlood.java create mode 100644 common/biomesoplenty/blocks/BlockFlesh.java create mode 100644 resources/assets/biomesoplenty/textures/blocks/flesh.png diff --git a/common/biomesoplenty/api/Biomes.java b/common/biomesoplenty/api/Biomes.java index f0a7259d9..90dcf5a29 100644 --- a/common/biomesoplenty/api/Biomes.java +++ b/common/biomesoplenty/api/Biomes.java @@ -69,6 +69,7 @@ public class Biomes public static Optional netherDesert = Optional.absent(); public static Optional netherLava = Optional.absent(); public static Optional netherBone = Optional.absent(); + public static Optional netherBlood = Optional.absent(); public static Optional oasis = Optional.absent(); diff --git a/common/biomesoplenty/api/BlockReferences.java b/common/biomesoplenty/api/BlockReferences.java index f3bce590c..6b0398e18 100644 --- a/common/biomesoplenty/api/BlockReferences.java +++ b/common/biomesoplenty/api/BlockReferences.java @@ -109,6 +109,7 @@ public class BlockReferences { redRock (Blocks.redRock, 0), ash (Blocks.ash, 0), ashStone (Blocks.ashStone, 0), + flesh (Blocks.flesh, 0), hardIce (Blocks.hardIce, 0), originGrass (Blocks.originGrass, 0), longGrass (Blocks.longGrass, 0), diff --git a/common/biomesoplenty/api/Blocks.java b/common/biomesoplenty/api/Blocks.java index b4e8c5a76..705f8d3a8 100644 --- a/common/biomesoplenty/api/Blocks.java +++ b/common/biomesoplenty/api/Blocks.java @@ -13,6 +13,7 @@ public class Blocks // Worldgen Blocks public static Optional ash = Optional.absent(); public static Optional ashStone = Optional.absent(); + public static Optional flesh = Optional.absent(); public static Optional cragRock = Optional.absent(); public static Optional driedDirt = Optional.absent(); public static Optional hardDirt = Optional.absent(); diff --git a/common/biomesoplenty/biomes/nether/BiomeGenNetherBlood.java b/common/biomesoplenty/biomes/nether/BiomeGenNetherBlood.java new file mode 100644 index 000000000..609c4a62f --- /dev/null +++ b/common/biomesoplenty/biomes/nether/BiomeGenNetherBlood.java @@ -0,0 +1,32 @@ +package biomesoplenty.biomes.nether; + +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntityGhast; +import net.minecraft.entity.monster.EntityMagmaCube; +import net.minecraft.entity.monster.EntityPigZombie; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import biomesoplenty.api.Blocks; +import biomesoplenty.biomes.BiomeDecoratorBOP; + +public class BiomeGenNetherBlood extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenNetherBlood(int par1) + { + super(par1); + theBiomeDecorator = new BiomeDecoratorBOP(this); + customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + topBlock = (byte)Blocks.flesh.get().blockID; + fillerBlock = (byte)Blocks.flesh.get().blockID; + customBiomeDecorator.gravesPerChunk = 1; + spawnableMonsterList.clear(); + spawnableCreatureList.clear(); + spawnableWaterCreatureList.clear(); + spawnableCaveCreatureList.clear(); + spawnableMonsterList.add(new SpawnListEntry(EntityGhast.class, 50, 4, 4)); + spawnableMonsterList.add(new SpawnListEntry(EntityPigZombie.class, 100, 4, 4)); + spawnableMonsterList.add(new SpawnListEntry(EntityMagmaCube.class, 1, 4, 4)); + } +} diff --git a/common/biomesoplenty/blocks/BlockFlesh.java b/common/biomesoplenty/blocks/BlockFlesh.java new file mode 100644 index 000000000..be0105b52 --- /dev/null +++ b/common/biomesoplenty/blocks/BlockFlesh.java @@ -0,0 +1,80 @@ +package biomesoplenty.blocks; + +import static net.minecraftforge.common.ForgeDirection.UP; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; +import biomesoplenty.BiomesOPlenty; +import biomesoplenty.api.Blocks; +import biomesoplenty.api.Items; + +public class BlockFlesh extends Block +{ + public BlockFlesh(int par1) + { + super(par1, Material.sponge); + this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); + } + + @Override + public void registerIcons(IconRegister par1IconRegister) + { + blockIcon = par1IconRegister.registerIcon("biomesoplenty:flesh"); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + float var5 = 0.125F; + return AxisAlignedBB.getAABBPool().getAABB(par2, par3, par4, par2 + 1, par3 + 1 - var5, par4 + 1); + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + @Override + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + super.randomDisplayTick(par1World, par2, par3, par4, par5Random); + + if (par5Random.nextInt(4) == 0) + { + par1World.spawnParticle("tilecrack_" + String.valueOf(Blocks.flesh.get().blockID) + "_0", par2 + par5Random.nextFloat(), par3 - 0.4F, par4 + par5Random.nextFloat(), 0.0D, 0.0D, 0.0D); + } + + if (par5Random.nextInt(12) == 0) + { + par1World.spawnParticle("tilecrack_" + String.valueOf(Blocks.flesh.get().blockID) + "_0", par2 + par5Random.nextFloat(), par3 + 1.0F, par4 + par5Random.nextFloat(), 0.0D, 0.0D, 0.0D); + } + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) + { + if (entity instanceof EntityPlayer) + { + InventoryPlayer inventory = ((EntityPlayer)entity).inventory; + + if (inventory.armorInventory[0] != null && inventory.armorInventory[0].itemID == Items.wadingBoots.get().itemID) + { + return; + } + } + + entity.motionX *= 0.9D; + entity.motionZ *= 0.9D; + } +} diff --git a/common/biomesoplenty/configuration/BOPBiomes.java b/common/biomesoplenty/configuration/BOPBiomes.java index 56da119ba..bfc067663 100644 --- a/common/biomesoplenty/configuration/BOPBiomes.java +++ b/common/biomesoplenty/configuration/BOPBiomes.java @@ -104,6 +104,7 @@ import biomesoplenty.biomes.BiomeGenWoodland; import biomesoplenty.biomes.beach.BiomeGenBeachGravel; import biomesoplenty.biomes.beach.BiomeGenBeachOvergrown; import biomesoplenty.biomes.nether.BiomeGenNetherBase; +import biomesoplenty.biomes.nether.BiomeGenNetherBlood; import biomesoplenty.biomes.nether.BiomeGenNetherBone; import biomesoplenty.biomes.nether.BiomeGenNetherDesert; import biomesoplenty.biomes.nether.BiomeGenNetherGarden; @@ -239,6 +240,7 @@ public class BOPBiomes { Biomes.netherDesert = Optional.of((new BiomeGenNetherDesert(BOPConfigurationIDs.netherDesertID)).setColor(16711680).setBiomeName("Corrupted Sands").setDisableRain().setTemperatureRainfall(2.0F, 0.0F)); Biomes.netherLava = Optional.of((new BiomeGenNetherLava(BOPConfigurationIDs.netherLavaID)).setColor(16711680).setBiomeName("Phantasmagoric Inferno").setDisableRain().setTemperatureRainfall(2.0F, 0.0F)); Biomes.netherBone = Optional.of((new BiomeGenNetherBone(BOPConfigurationIDs.netherBoneID)).setColor(16711680).setBiomeName("Boneyard").setDisableRain().setTemperatureRainfall(2.0F, 0.0F)); + Biomes.netherBlood = Optional.of((new BiomeGenNetherBlood(BOPConfigurationIDs.netherBloodID)).setColor(16711680).setBiomeName("Bloody Heap").setDisableRain().setTemperatureRainfall(2.0F, 0.0F)); Biomes.oasis = Optional.of((new BiomeGenOasis(BOPConfigurationIDs.oasisID)).setColor(16421912).setBiomeName("Oasis").setTemperatureRainfall(0.9F, 0.7F).setMinMaxHeight(0.3F, 0.4F)); @@ -380,6 +382,7 @@ public class BOPBiomes { BiomeDictionary.registerBiomeType(Biomes.netherDesert.get(), Type.NETHER, Type.DESERT); BiomeDictionary.registerBiomeType(Biomes.netherLava.get(), Type.NETHER); BiomeDictionary.registerBiomeType(Biomes.netherBone.get(), Type.NETHER, Type.WASTELAND); + BiomeDictionary.registerBiomeType(Biomes.netherBone.get(), Type.NETHER); BiomeDictionary.registerBiomeType(Biomes.oasis.get(), Type.DESERT, Type.JUNGLE); diff --git a/common/biomesoplenty/configuration/BOPBlocks.java b/common/biomesoplenty/configuration/BOPBlocks.java index 2cfa5dd74..f9c29cd9e 100644 --- a/common/biomesoplenty/configuration/BOPBlocks.java +++ b/common/biomesoplenty/configuration/BOPBlocks.java @@ -38,6 +38,7 @@ import biomesoplenty.blocks.BlockBOPStairs.Category; import biomesoplenty.blocks.BlockBamboo; import biomesoplenty.blocks.BlockBones; import biomesoplenty.blocks.BlockCloud; +import biomesoplenty.blocks.BlockFlesh; import biomesoplenty.blocks.BlockGrave; import biomesoplenty.blocks.BlockIvy; import biomesoplenty.blocks.BlockLongGrass; @@ -128,6 +129,7 @@ public class BOPBlocks Blocks.driedDirt = Optional.of(new BlockBOPGeneric(BOPConfigurationIDs.driedDirtID, Material.rock, BlockType.DRIED_DIRT).setUnlocalizedName("bop.generic")); Blocks.redRock = Optional.of((new BlockBOPRedRock(BOPConfigurationIDs.redRockID)).setUnlocalizedName("bop.redRocks")); Blocks.ash = Optional.of((new BlockAsh(BOPConfigurationIDs.ashID)).setHardness(0.4F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("bop.ash")); + Blocks.flesh = Optional.of((new BlockFlesh(BOPConfigurationIDs.fleshID)).setHardness(0.4F).setStepSound(Block.soundGravelFootstep).setUnlocalizedName("bop.flesh")); Blocks.plants = Optional.of((new BlockBOPPlant(BOPConfigurationIDs.plantsID)).setUnlocalizedName("bop.plants")); Blocks.flowers = Optional.of((new BlockBOPFlower(BOPConfigurationIDs.flowersID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("bop.flowers")); Blocks.flowers2 = Optional.of((new BlockBOPFlower2(BOPConfigurationIDs.flowers2ID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("bop.flowers2")); @@ -216,6 +218,7 @@ public class BOPBlocks GameRegistry.registerBlock(Blocks.driedDirt.get(), "bop.driedDirt"); GameRegistry.registerBlock(Blocks.redRock.get(), ItemBlockRedRock.class, "bop.redRock"); GameRegistry.registerBlock(Blocks.ash.get(), "bop.ash"); + GameRegistry.registerBlock(Blocks.flesh.get(), "bop.flesh"); GameRegistry.registerBlock(Blocks.plants.get(), ItemBlockPlant.class, "bop.plants"); GameRegistry.registerBlock(Blocks.flowers.get(), ItemBlockFlower.class, "bop.flowers"); GameRegistry.registerBlock(Blocks.flowers2.get(), ItemBlockFlower2.class, "bop.flowers2"); diff --git a/common/biomesoplenty/configuration/configfile/BOPConfigurationBiomeGen.java b/common/biomesoplenty/configuration/configfile/BOPConfigurationBiomeGen.java index 5633e37de..dc51b41df 100644 --- a/common/biomesoplenty/configuration/configfile/BOPConfigurationBiomeGen.java +++ b/common/biomesoplenty/configuration/configfile/BOPConfigurationBiomeGen.java @@ -106,6 +106,7 @@ public class BOPConfigurationBiomeGen public static boolean corruptedSandsGen; public static boolean phantasmagoricInfernoGen; public static boolean boneyardGen; + public static boolean bloodyHeapGen; // Beach variations public static boolean gravelBeachGen; @@ -220,6 +221,7 @@ public class BOPConfigurationBiomeGen corruptedSandsGen = config.get("Nether Biomes To Generate", "CorruptedSands", true).getBoolean(true); phantasmagoricInfernoGen = config.get("Nether Biomes To Generate", "PhantasmagoricInferno", true).getBoolean(true); boneyardGen = config.get("Nether Biomes To Generate", "Boneyard", true).getBoolean(true); + bloodyHeapGen = config.get("Nether Biomes To Generate", "BloodyHeap", true).getBoolean(true); // Beach variations gravelBeachGen = config.get("Beach Variations To Generate", "Gravel Beach", true).getBoolean(true); diff --git a/common/biomesoplenty/configuration/configfile/BOPConfigurationIDs.java b/common/biomesoplenty/configuration/configfile/BOPConfigurationIDs.java index 42dd36d2f..09ce1b638 100644 --- a/common/biomesoplenty/configuration/configfile/BOPConfigurationIDs.java +++ b/common/biomesoplenty/configuration/configfile/BOPConfigurationIDs.java @@ -19,6 +19,7 @@ public class BOPConfigurationIDs public static int redRockID; public static int ashID; public static int ashStoneID; + public static int fleshID; public static int hardIceID; public static int originGrassID; public static int longGrassID; @@ -216,6 +217,7 @@ public class BOPConfigurationIDs public static int netherDesertID; public static int netherLavaID; public static int netherBoneID; + public static int netherBloodID; public static int oasisID; @@ -316,6 +318,7 @@ public class BOPConfigurationIDs holyStoneID = config.getTerrainBlock("Terrain Block IDs - MUST BE BELOW 255", "Skystone ID", 171, null).getInt(); cragRockID = config.getTerrainBlock("Terrain Block IDs - MUST BE BELOW 255", "Crag Rock ID", 172, null).getInt(); longGrassID = config.getTerrainBlock("Terrain Block IDs - MUST BE BELOW 255", "Long Grass ID", 173, null).getInt(); + fleshID = config.getTerrainBlock("Terrain Block IDs - MUST BE BELOW 255", "Flesh ID", 174, null).getInt(); // Get Crafted Block ID's plantsID = config.getBlock("Plant ID", 1920, null).getInt(); @@ -472,6 +475,8 @@ public class BOPConfigurationIDs //23-79 ExtraBiomesXL + netherBloodID = config.get("Biome IDs", "Bloody Heap (Nether) ID", 30).getInt(); + lavenderFieldsID = config.get("Biome IDs", "Lavender Fields ID", 31).getInt(); tropicsMountainID = config.get("Biome IDs", "Tropics Mountain (Sub-Biome) ID", 32).getInt(); autumnHillsID = config.get("Biome IDs", "Autumn Hills ID", 33).getInt(); diff --git a/common/biomesoplenty/world/WorldProviderBOPhell.java b/common/biomesoplenty/world/WorldProviderBOPhell.java index 8ded65c7d..fbea88e6f 100644 --- a/common/biomesoplenty/world/WorldProviderBOPhell.java +++ b/common/biomesoplenty/world/WorldProviderBOPhell.java @@ -10,7 +10,7 @@ public class WorldProviderBOPhell extends WorldProviderHell @Override public void registerWorldChunkManager() { - if (Biomes.netherGarden.isPresent() || Biomes.netherDesert.isPresent() || Biomes.netherLava.isPresent() || Biomes.netherBone.isPresent()) + if (Biomes.netherGarden.isPresent() || Biomes.netherDesert.isPresent() || Biomes.netherLava.isPresent() || Biomes.netherBone.isPresent() || Biomes.netherBlood.isPresent()) { this.worldChunkMgr = new WorldChunkManagerBOPhell(worldObj); } diff --git a/common/biomesoplenty/world/layer/BiomeLayerBiomes.java b/common/biomesoplenty/world/layer/BiomeLayerBiomes.java index d6765efa4..3a966b89a 100644 --- a/common/biomesoplenty/world/layer/BiomeLayerBiomes.java +++ b/common/biomesoplenty/world/layer/BiomeLayerBiomes.java @@ -83,6 +83,13 @@ public class BiomeLayerBiomes extends BiomeLayer netherBiomes.add(Biomes.netherBone.get()); } } + if (Biomes.netherBlood.isPresent()) + { + if (BOPConfigurationBiomeGen.bloodyHeapGen) + { + netherBiomes.add(Biomes.netherBlood.get()); + } + } if (Biomes.netherBiomes.size() > 0) { netherBiomes.addAll(Biomes.netherBiomes); diff --git a/resources/assets/biomesoplenty/lang/en_US.lang b/resources/assets/biomesoplenty/lang/en_US.lang index a79bb4354..711fddc96 100644 --- a/resources/assets/biomesoplenty/lang/en_US.lang +++ b/resources/assets/biomesoplenty/lang/en_US.lang @@ -16,6 +16,7 @@ tile.bop.redRocks.redcobble.name=Red Rock Cobblestone tile.bop.redRocks.redbrick.name=Red Rock Bricks tile.bop.ash.name=Ash Block +tile.bop.flesh.name=Flesh tile.bop.plants.deadgrass.name=Dead Grass tile.bop.plants.desertgrass.name=Desert Grass diff --git a/resources/assets/biomesoplenty/textures/blocks/flesh.png b/resources/assets/biomesoplenty/textures/blocks/flesh.png new file mode 100644 index 0000000000000000000000000000000000000000..1e73f9cd1ec72fcbfbef7176953e70ab7dc056a5 GIT binary patch literal 888 zcmV-;1Bd*HP)N2bPDNB8 zb~7$DE-^7j^FlWO00Q($L_t(IPYuvpPuo@iz;S<*siG?w=Qzjr%keq3-cWScEbc$~H)o9rg7W1V!7y-Co%qfzxZ+%(YF3FLF! z*_G5Pq`yjMb{ul-x@{FkuGiN2&{6^-Js?^)lc6FF^|Pra2flZbhqCnBWH!>&gUjxB zZu%}0Yb!X=#E?h}0&K?lrXo=RQvROG^{`o$#n)c%B-0^Te&US5l;Mxz6){^y|li>U#5+Vt;OKR|NL$$Jgt_><%*aY`wq=eJAzb^{as)P)i_oXqkJ4d1N{B zka->ki*q0TRVb8L?w5(wx}+8*(4YJCJaJ6qhgOp6=;}#|>^YV%izl9&7wJEWg_6V^ z^3sYXwlm(Yp_Cwh_R;Ku0ydCDMW)^%O6NUy$55*m!D%{E6NS@+`6xwN7T++9BhP!{ zC2P92ZL0S8lys61`Sziit$AT_*g2kTWr|4&@%`9FNR18xIA z5_ucK{|8UD`5)Bi_}{C>^1oxT!GHG>^Z!9Dj{hBs_5b_U+We25>x$nHpE8^Oc3B4h zed}%he|uM0{|}mE{og!6>!bAFr_KDob&4L?HI_*_|MjEg z{~JXs|F_H5`ybF@gWV92pmDr1SW?qn;lIAG>VNHEx&LaeGGH+cH@W{V_4@zy{Zw!p z0F!{RZ8CIF#I!vWuxkbZWC>(V=;FwHq5!%98&Kw;0SpWPbViss90nO^00000NkvXX Hu0mjf8akX~ delta 293 zcmV+=0owka1C9fbJPNx201mqW$N1DXkwz&23XyOXe?gP1|0DB3G+qEw6w>Gd))Y{0 z_usj|_`hGBEtqeTs0ud>D*#D)l$wJzg->??8{}DS@!zk{{J(pp8CVRb0U(LMW{3a5 zlWqP7H9G$HsbV#hhqKzzO^?0U5btI8xq{;^xrPa;J(V=;FwHq5!%9Q0AZk3=9AcpqJs?3iiPO3jhEBNkvXXu0mjfYgCtv diff --git a/resources/assets/biomesoplenty/textures/blocks/log_cherry_heart.png b/resources/assets/biomesoplenty/textures/blocks/log_cherry_heart.png index e926b0a691e8d5dff04056803f0f40e746f4995a..44ba635228640ac6f4b58ee9cb400244f55f41c7 100644 GIT binary patch delta 418 zcmV;T0bTx}1nvWnB#|)~3c>&Y4#EKyC`y2lQz3sbNAp5A0004MNkl{tjDe)g;kF|`4s8Jlgw#-}GUfb?89TH5F;4-L! zt8jne)SG7=`tDuSgcKN=+H(?+J+Ck_^=T`7Z%1XkWGAHmNMkfyBfGO@s*~6!Juy{h z6-dDZ zxe04y(x}SQ zcqWAC+zR;9DlJd}A9;D&-e;W@$Xzn=inLFzA^dH^1I1DUIm2000UA M07*qoM6N<$g58k1ga7~l delta 466 zcmV;@0WJRS1E2(uBnkm@Qb$4nuFf3kks%uj!vFvd!vV){sAQ2wA%8G1^m3s900ECl zL_t(IPhFBnPXbXCh3AL3b}1^xlBhdlLuo^Rv0woeqq1>n?1~s0HU#V?E-Z)LFt17&gDS?wrb1^vDfxPUED$Vj*nJ`^k;4pnHd`!(ZcIml|q z^`fp0U$!Ez+g*^TyMIU{!Q*=S-gNW+jO$>wB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKR zr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT)i4!^Np)5MDOg1&0juucd)Q^#_N;baD;&rLKy1fRL6B*rCLg_wdqZ!tfJfOrD=2fM8U{!()W60?^I z%uN8oDnLL8-{3KilMio+CFPyR9^5zvd5yW-p4_sSiapS3KQ~&?~07*qo IM6N<$f^VVB3;+NC diff --git a/resources/assets/biomesoplenty/textures/blocks/log_cherry_side.png b/resources/assets/biomesoplenty/textures/blocks/log_cherry_side.png index 5ea0304713e64a7cb32f730f033071154f5c1aec..2f65b45c77d2eb15f584abe6246b1e72b0d298de 100644 GIT binary patch delta 497 zcmV&Y4#EKyC`y2lQz3sbNAp5A0005GNklF=wi4W^{vJ#SJcMt!x);g(I zoII(`o;BzG?5;K@N6%Yx-}|l3eG+V;%TFY z8G)%chcBI%H(O0mH{7jixZZ5=VNMPPEhFfF@yVxSI8m$L(%1uycZ7~!~XGAsbq%O$>YHuCizVC`nlo zKAFHd>K-dYOp=KnqquLeZn!jlwj2=Drc`OOZ^lJ delta 490 zcmV!eO;>|1T-xKX*?U2l&TPMVcp-Q{e2_{+=kVeR?Xh3Si|?$Qc&x4V&+ zi-QOA<+IjYz0hla^M5W2^xy4Oe4KwfYu%}F1S_r77<%%lTK+uu49+v$Qn5f7vo$gh z4vz${iQPu2xL=)G85?rzhkzM`*sv02bz;P8`d*){L z9fee%euNfJ8$HYkOuadrx95MpT>^E(-KvJ`H*G%5$-$uI1RXFw`E(2?YV}(j?9+Hh z=$K|s&{KaTA#i?oS0phOAvNRv!>f3bc5QMrA6#^R9kh8XfTY#n5&pmLs4Ds)8(L}( z_j~59vSk07*qoM6N<$g1E-wE&u=k diff --git a/resources/assets/biomesoplenty/textures/blocks/log_dark_heart.png b/resources/assets/biomesoplenty/textures/blocks/log_dark_heart.png index e926b0a691e8d5dff04056803f0f40e746f4995a..237d04480af577df5c9e8c67f41d38eba60d4e47 100644 GIT binary patch delta 756 zcmV&Y4#EKyC`y2lQz3sbNAp5A0008INklnj(RW4D5 zIiqq{-Ib7h;Ne_1|pK z9$w$d;u_;GBu$s!k6P^6ah@nuax(|s>-_KdI%Js7xdN||HZ?bmaujprmqNJY-et8 zueGxnC2ac(E2LhK!C{8NzX!>a+F6-SilRHsT=%?yYZ8ELEPZ$@c2X3~Ja3|_-)-%t zDLq=|L=(rnwvUo+IQ*e@QV05Klc;~@@=Mzp^UT@@Yk+6iPkV50#?LNV>fRiAUp^`Rab7(D3im&lO$k55VoPHH0000n?1~s0HU#V?E-Z)LFt17&gDS?wrb1^vDfxPUED$Vj*nJ`^k;4pnHd`!(ZcIml|q z^`fp0U$!Ez+g*^TyMIU{!Q*=S-gNW+jO$>wB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKR zr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT)i4!^Np)5MDOg1&0juucd)Q^#_N;baD;&rLKy1fRL6B*rCLg_wdqZ!tfJfOrD=2fM8U{!()W60?^I z%uN8oDnLL8-{3KilMio+CFPyR9^5zvd5yW-p4_sSiapS3KQ~&?~07*qo IM6N<$f*rKW-v9sr diff --git a/resources/assets/biomesoplenty/textures/blocks/log_dead_heart.png b/resources/assets/biomesoplenty/textures/blocks/log_dead_heart.png index e926b0a691e8d5dff04056803f0f40e746f4995a..7c1280f742ffeb79a150149bf28cb4d0e5c50cf4 100644 GIT binary patch delta 594 zcmV-Y0&Y4#EKyC`y2lQz3sbNAp5A0006RNklu@W}^AZNYMihpG{xP~-rGLf}9-+&N;^CicRmrFaFQ1=^ym)p)Je%d8sxm!1s1-mt_dCdHZOPMu|NG_r25pTta z3NwEj`#jqEaPS!azrE|NPY=J3n-{Nl0GarbSajOI9@PdUU|KbEM>2sGm2`n5*uRKj%F;fqOJ!QE?V>s!QXO+VdtTQHsn9iLwv-BI;{IYPm`w!YK{sDW gb<8MNt#Qr$7vYdm()6}=U;qFB07*qoM6N<$f}orknE(I) delta 466 zcmV;@0WJQW1)v0wBnkm@Qb$4nuFf3kks%uj!vFvd!vV){sAQ2wA%8G1^m3s900ECl zL_t(IPhFBnPXbXCh3AL3b}1^xlBhdlLuo^Rv0woeqq1>n?1~s0HU#V?E-Z)LFt17&gDS?wrb1^vDfxPUED$Vj*nJ`^k;4pnHd`!(ZcIml|q z^`fp0U$!Ez+g*^TyMIU{!Q*=S-gNW+jO$>wB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKR zr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT)i4!^Np)5MDOg1&0juucd)Q^#_N;baD;&rLKy1fRL6B*rCLg_wdqZ!tfJfOrD=2fM8U{!()W60?^I z%uN8oDnLL8-{3KilMio+CFPyR9^5zvd5yW-p4_sSiapS3KQ~&?~07*qo IM6N<$g5Sc+y#N3J diff --git a/resources/assets/biomesoplenty/textures/blocks/plank_cherry.png b/resources/assets/biomesoplenty/textures/blocks/plank_cherry.png index ed16e24925bc796d7862fbef1dd4cdf41994e00e..f30eb728aaf575ad2b9cc567456a26cb232dcbf8 100644 GIT binary patch delta 503 zcmV&Y4#EKyC`y2lQz3sbNAp5A0005MNkl&`W^+h>$=R6;t7o)R!^rg)< zO>uu(9K0J2E~?CCGp*gZoK%Tw>m)z8UQ8&QRl{XdD00oo)vR6Cxu`}A3NF!-v$3?i znl+!wM{kGe=X&JCe$|$0em$NkOO|D(aRm6TpK@$D2L05aaB0+yJED^amoEe4_+_%tlrRAW<@qxCtiG;tO z%)b?Z$38$?W=}+P4L40Uy~cK08=4C~i>XiCdJ`m@_yv5#@k^MxBG0S^lfYkW z);ma9-V!6@+q<%>$8M}4YOfBDuDUoxOf5nOEtdX+@*_G|YQ%q@E*RlrRpkL17QQ#> t0GwBUJ$P{Y@Np8|&a=CBM5*Jn_ZPOz$bu&StXBX4002ovPDHLkV1jg1?$`hT delta 531 zcmV+u0_^?61mOgbBnkm@Qb$4nuFf3kks%uj!vFvd!vV){sAQ2wA%8G1^m3s900GcR zL_t(IPd(DtPE>Ia2JrJNUYS@D5aG&Q>;i6K8{2m&3)oQLN*@GcZ_x`Y9eaH-e15Qh(m^*zqVxf)5&Sjfcwu zBnBlQKd*NzLxk>sqTx!*ksj+Kn$HP^zgK#1o2edtD%!JqAgngJVd`{^gF(&GH292* zr42Y(JRAdD12;uD_*AsNP~GVjSuYh$2W26MvUn7)kB@|UDUpz#iUtRP2Be{Z!h}BS zN8|g|mQT9P25<;A@eBBf^-I{gB4;)NNy0cgvnBFmaZ9WWZ+Au43~N=y8n2F?xTzq; z&{EMpL{a)L6dzVxsTKdZ*+&G6?QS6zO%{E3#>a?r_1oFeIDBk^KXv#JE47*#{tJ`v VMHJ@rGTZ