From 967017631c5b027dfad67facbd3f4b39fa06826e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emmanuel=20Beno=C3=AEt?= Date: Sat, 9 Jul 2016 22:32:32 +0200 Subject: [PATCH] Bamboo, initial version --- graphics/bamboo-culm.xcf | Bin 0 -> 1128 bytes graphics/bamboo-leaves.xcf | Bin 0 -> 1903 bytes graphics/bamboo-log.xcf | Bin 0 -> 1434 bytes src/java/mmm/materials/MLog.java | 47 ++++++++++++ src/java/mmm/materials/MTree.java | 34 +++++++++ src/java/mmm/materials/MTrees.java | 12 +++ .../mmm/world/trees/A_MTreeGenerator.java | 11 ++- .../mmm/world/trees/WTBambooGenerator.java | 70 ++++++++++++++++++ .../blockstates/materials/leaves/bamboo.json | 8 ++ .../mmm/blockstates/materials/log/bamboo.json | 27 +++++++ .../blockstates/materials/sapling/bamboo.json | 20 +++++ .../models/block/materials/bark/bamboo.json | 21 ++++++ .../models/block/materials/leaves/bamboo.json | 6 ++ .../models/block/materials/log/bamboo.json | 22 ++++++ .../block/materials/sapling/bamboo.json | 6 ++ .../models/item/materials/leaves/bamboo.json | 3 + .../mmm/models/item/materials/log/bamboo.json | 3 + .../models/item/materials/sapling/bamboo.json | 6 ++ .../blocks/materials/leaves/bamboo.png | Bin 0 -> 544 bytes .../blocks/materials/log/end/bamboo.png | Bin 0 -> 376 bytes .../blocks/materials/log/side/bamboo.png | Bin 0 -> 477 bytes .../blocks/materials/sapling/bamboo.png | Bin 0 -> 535 bytes 22 files changed, 295 insertions(+), 1 deletion(-) create mode 100644 graphics/bamboo-culm.xcf create mode 100644 graphics/bamboo-leaves.xcf create mode 100644 graphics/bamboo-log.xcf create mode 100644 src/java/mmm/world/trees/WTBambooGenerator.java create mode 100644 src/resources/assets/mmm/blockstates/materials/leaves/bamboo.json create mode 100644 src/resources/assets/mmm/blockstates/materials/log/bamboo.json create mode 100644 src/resources/assets/mmm/blockstates/materials/sapling/bamboo.json create mode 100644 src/resources/assets/mmm/models/block/materials/bark/bamboo.json create mode 100644 src/resources/assets/mmm/models/block/materials/leaves/bamboo.json create mode 100644 src/resources/assets/mmm/models/block/materials/log/bamboo.json create mode 100644 src/resources/assets/mmm/models/block/materials/sapling/bamboo.json create mode 100644 src/resources/assets/mmm/models/item/materials/leaves/bamboo.json create mode 100644 src/resources/assets/mmm/models/item/materials/log/bamboo.json create mode 100644 src/resources/assets/mmm/models/item/materials/sapling/bamboo.json create mode 100644 src/resources/assets/mmm/textures/blocks/materials/leaves/bamboo.png create mode 100644 src/resources/assets/mmm/textures/blocks/materials/log/end/bamboo.png create mode 100644 src/resources/assets/mmm/textures/blocks/materials/log/side/bamboo.png create mode 100644 src/resources/assets/mmm/textures/blocks/materials/sapling/bamboo.png diff --git a/graphics/bamboo-culm.xcf b/graphics/bamboo-culm.xcf new file mode 100644 index 0000000000000000000000000000000000000000..7f1eadbd741b84ce8947f042f410381d3999134a GIT binary patch literal 1128 zcmZ`%`%hAF6#s&u;v=<(Thq;J57Hbat2PCdVG7GdDrPP<3*mCT#>0RV(J@U$4Fy9) z?TMi^G;M2ZYpow_>t8bGTBCE|(s0q)&OM*cd3`_oelNqC1}TTmKp9vgO~CRwM_d5T zk5S1~23=_5tUqAm%c#R;;s_Otje!oM7?9bt|p4(|T%{wf9r1 z8|qf9T$1cefqeGdWM!l?>=v#o=4+zOTo}?1ob=%F3fv<{_u7L_pXG)0gq>HA+(BY z`F+U0;P-g~9%RAi0e|q#%fPZ5*`#;z)#iuo(Cb*u;aQ7(`TA{VdlmKg)_?4M-;0Ff zdPLVyPhoYV4D}R9<;~4<)RR|HBU9I+p5m(&XG+0mvzIbw~r jtNZ?4WlRn)nnTi}Sws*Of@hM9XgU!_1t~loYH8#Tef|pk literal 0 HcmV?d00001 diff --git a/graphics/bamboo-leaves.xcf b/graphics/bamboo-leaves.xcf new file mode 100644 index 0000000000000000000000000000000000000000..8ea675a4b6db532170de946450263152ad79c67c GIT binary patch literal 1903 zcmeHGOHUI~6#iz$BBDfmu3XF#7B%n}bU{coap6*9N|_Fm^g-GhVda89U}9XjQexE7 zN~n+q!-j>4V4~4TV+oC-(O}{ONlo-QpSlK!aU7-Xp*7KtdsuYGsPCq4HCZ+oPQ+qHJk2>Ic=&YE z2&Iia{fd?D*SmYpo|8zMBeh~7(+HYLt4}zp6||?)Ls3IdC8AbeM@xIe3@4(Aq~7kh zVAAXj>76G#ozVbvd7%!b_BKfMRtX?B!?Q29v8eEx6-;55BD1> z$xlQgDI@)-LCOA`a+&&6IR|ej6M%Z%pV9kwB&QlUZ@EV-cOiFT)0#a@hkZ5pL=A4K z!TW3Qfg0RegAWo*U4QH)ko7d0|2_o#ARE5qVZT{w)l@yF4$J&1@0xaj)p3kZ^9_ul2uvV=N(spFEiX+> zk;c!r_`pC}g4q06eg&)oxrH})v!Dw7dDmd3|`l?4=*S$*Ud#2?9KZW?#vgd+AK`Zu@>i*ada?>O zgpr?$Ejs=cyW$Wc(@+&XA1XAPABdYRp{kp&*sFeJ$#NHSYRN=}YBx!bPFD3#Z}WXbvAcIsBssQL|CQyjkl literal 0 HcmV?d00001 diff --git a/graphics/bamboo-log.xcf b/graphics/bamboo-log.xcf new file mode 100644 index 0000000000000000000000000000000000000000..43d961b911a93c925689c940d519de1ed7761c55 GIT binary patch literal 1434 zcmcgr`)?9U6kaM-uaEc^goT}5);_Mm*!Y8qhFYnXLe*AjmzK6cx-9Ezfp$SlO=z)L zq0~h0O*B4QYam3RbgA`iqBqUWH8HvBAK`yt;$wz_L9M@fl5fs8-#KSycFqnjcm_a_ zbpyB1&tcFu7J>LC2$>8HTOd{&uVEMhw5v_1Wp7nV=oHqdH z7z%D~6gg*rbAcfta2lA*$J$V2VS-x(IZue;joVb0W~yp?C!v zpsj>J{rLick`XT?7ddnoUdGpy@wH`qT^V0r#y3D-S{JRosw`IiZ$KGY#n~nQ?clJc zV)T2h;wqXiT8_7xo6U`8m3{z5{!+FEzO6`%~L)}EDg`JV_KmxR)Ca*=4Fc#jo*I=yQUvIP=Xf-z+I?mWn_MB*G zvvr?5VQ)WbW!jH*I@qpLcB|Dj7#a;ZI&54payj5+y7|e;_#n%4yU)dALmboNip0i6 zma*9{#A4$EJxu4|Xwc(4#n^a}bM!hGrqkKg)ypyMZC$qBK37wdsiT##+TWiSLt`Vu zBV*Su+?))D? zq>p(?ntuezhj~bzN>VOACoMda=F(FB;ge?*fB%)aF>^EZe(NTsTDe`R)@~z-9V$Rq zfoclZ($$0pXjCdds#I!~LP-!B4WZR&DUy;?pLbG~KMtR09VMea>L`k?h2#Sb$u5cl aG)YzKDH5l2)w}dKuBON;x@Hs$fB6cZ;Yn!# literal 0 HcmV?d00001 diff --git a/src/java/mmm/materials/MLog.java b/src/java/mmm/materials/MLog.java index 3638964..9924426 100644 --- a/src/java/mmm/materials/MLog.java +++ b/src/java/mmm/materials/MLog.java @@ -2,11 +2,18 @@ package mmm.materials; import mmm.utils.URegistry; +import net.minecraft.block.Block; import net.minecraft.block.BlockLog; import net.minecraft.block.material.MapColor; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; +import net.minecraft.util.BlockRenderLayer; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; @@ -90,4 +97,44 @@ public class MLog } } + + @Override + public AxisAlignedBB getBoundingBox( final IBlockState state , final IBlockAccess source , final BlockPos pos ) + { + final AxisAlignedBB bb = this.wood.getLogBoundingBox( state.getValue( BlockLog.LOG_AXIS ) ); + if ( bb != null ) { + return bb; + } + return Block.FULL_BLOCK_AABB; + } + + + @Override + public boolean isOpaqueCube( final IBlockState state ) + { + return this.wood != null && !this.wood.hasLogBoundingBox( ); + } + + + @Override + public boolean isFullCube( final IBlockState state ) + { + return !this.wood.hasLogBoundingBox( ); + } + + + @Override + public boolean isFullBlock( final IBlockState state ) + { + return !this.wood.hasLogBoundingBox( ); + } + + + @Override + @SideOnly( Side.CLIENT ) + public BlockRenderLayer getBlockLayer( ) + { + return this.wood.hasLogBoundingBox( ) ? BlockRenderLayer.CUTOUT : BlockRenderLayer.SOLID; + } + } diff --git a/src/java/mmm/materials/MTree.java b/src/java/mmm/materials/MTree.java index adf4730..f00e1a0 100644 --- a/src/java/mmm/materials/MTree.java +++ b/src/java/mmm/materials/MTree.java @@ -7,6 +7,7 @@ import mmm.utils.I_URecipeRegistrar; import mmm.utils.URegistry; import mmm.world.trees.A_MTreeGenerator; import net.minecraft.block.Block; +import net.minecraft.block.BlockLog; import net.minecraft.block.material.MapColor; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; @@ -14,6 +15,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenAbstractTree; @@ -39,6 +41,10 @@ public class MTree private MapColor barkColor = MapColor.WOOD; private MapColor plankColor = MapColor.WOOD; + private AxisAlignedBB logBoundingBoxX = null; + private AxisAlignedBB logBoundingBoxY = null; + private AxisAlignedBB logBoundingBoxZ = null; + private int baseFireEncouragement = 5; private int baseFlammability = 5; @@ -94,6 +100,15 @@ public class MTree } + public MTree setLogBoundingBox( final AxisAlignedBB box ) + { + this.logBoundingBoxY = box; + this.logBoundingBoxX = new AxisAlignedBB( box.minY , box.minX , box.minZ , box.maxY , box.maxX , box.maxZ ); + this.logBoundingBoxZ = new AxisAlignedBB( box.minX , box.minZ , box.minY , box.maxX , box.maxZ , box.maxY ); + return this; + } + + public MTree setSaplingDropChance( final int chance ) { this.saplingDropChance = chance; @@ -222,6 +237,24 @@ public class MTree } + public AxisAlignedBB getLogBoundingBox( final BlockLog.EnumAxis axis ) + { + switch ( axis ) { + case X: + return this.logBoundingBoxX; + case Z: + return this.logBoundingBoxZ; + default: + return this.logBoundingBoxY; + } + } + + public boolean hasLogBoundingBox( ) + { + return this.logBoundingBoxX != null; + } + + public int getSaplingDropChance( ) { return this.saplingDropChance; @@ -474,4 +507,5 @@ public class MTree 'I' , new ItemStack( Items.IRON_INGOT ) ); } + } diff --git a/src/java/mmm/materials/MTrees.java b/src/java/mmm/materials/MTrees.java index 02931e7..e49f11e 100644 --- a/src/java/mmm/materials/MTrees.java +++ b/src/java/mmm/materials/MTrees.java @@ -1,7 +1,9 @@ package mmm.materials; +import mmm.utils.UMaths; import mmm.world.trees.MHeveaGenerator; +import mmm.world.trees.WTBambooGenerator; import net.minecraft.block.material.MapColor; @@ -10,6 +12,7 @@ public class MTrees { public final MTree HEVEA; + public final MTree BAMBOO; MTrees( ) @@ -19,5 +22,14 @@ public class MTrees .setBaseFireInfo( 5 , 8 ) // .setTreeGenerator( new MHeveaGenerator( true ) ) // .register( ); + + BAMBOO = new MTree( "bamboo" ) // + .setBarkColor( MapColor.FOLIAGE ) // + .setLogBoundingBox( UMaths.makeBlockAABB( 4 , 0 , 4 , 12 , 16 , 12 ) ) // + .setGrowthChance( .3f ) // + .setSaplingGrowthStages( 1 ) // + .setTreeGenerator( new WTBambooGenerator( false , true ) ) // + .setBigTreeGenerator( new WTBambooGenerator( true , true ) , .15f ) // + .register( ); } } diff --git a/src/java/mmm/world/trees/A_MTreeGenerator.java b/src/java/mmm/world/trees/A_MTreeGenerator.java index 2b17ff0..c5f4fc5 100644 --- a/src/java/mmm/world/trees/A_MTreeGenerator.java +++ b/src/java/mmm/world/trees/A_MTreeGenerator.java @@ -89,6 +89,12 @@ public abstract class A_MTreeGenerator } + public void setEmptyRequirement( final int i , final int j , final int k , final boolean empty ) + { + this.mustBeEmpty[ this.getOffset( i , j , k ) ] = empty; + } + + public void removeCornerLeaves( final Random rand , final IBlockState leaves , final int startY , final int endY , final float chance ) { @@ -182,7 +188,10 @@ public abstract class A_MTreeGenerator final IBlockState state = rtd.getBlockState( i , j , k ); if ( state != null ) { final BlockPos blockPos = rtd.corner.add( i , j , k ); - this.setBlockAndNotifyAdequately( worldIn , blockPos , state ); + if ( rtd.mustBeEmpty( i , j , k ) + || worldIn.getBlockState( blockPos ).getMaterial( ) == Material.AIR ) { + this.setBlockAndNotifyAdequately( worldIn , blockPos , state ); + } } } } diff --git a/src/java/mmm/world/trees/WTBambooGenerator.java b/src/java/mmm/world/trees/WTBambooGenerator.java new file mode 100644 index 0000000..981c4ae --- /dev/null +++ b/src/java/mmm/world/trees/WTBambooGenerator.java @@ -0,0 +1,70 @@ +package mmm.world.trees; + + +import java.util.Random; + +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.math.BlockPos; + + + +public class WTBambooGenerator + extends A_MTreeGenerator +{ + + private final int minHeight; + private final int randomHeight; + private final int maxRingRadius; + + + public WTBambooGenerator( final boolean big , final boolean notify ) + { + super( notify ); + this.minHeight = big ? 13 : 5; + this.randomHeight = big ? 15 : 8; + this.maxRingRadius = big ? 2 : 1; + } + + + @Override + protected RuntimeData determineTreeSize( final BlockPos position , final Random rand ) + { + return new RuntimeData( position , 2 , this.minHeight + rand.nextInt( this.randomHeight ) ); + } + + + @Override + protected void generateTreeBlocks( final RuntimeData rtd , final Random rand ) + { + // Trunk + for ( int y = 0 ; y < rtd.height ; y++ ) { + rtd.setBlock( 2 , y , 2 , this.getWood( ).LOG , true ); + } + + // Leaves + final IBlockState leaves = this.getWood( ).LEAVES.getDefaultState( ).withProperty( BlockLeaves.CHECK_DECAY , + false ); + int ringY = 1 + rand.nextInt( 3 ); + while ( ringY < rtd.height ) { + final int radius = 1 + rand.nextInt( this.maxRingRadius ); + final int sqRadius = radius * radius; + for ( int x = -2 ; x <= 2 ; x++ ) { + for ( int z = -2 ; z <= 2 ; z++ ) { + if ( ( x != 0 || z != 0 ) && x * x + z * z <= sqRadius + rand.nextInt( 2 ) ) { + rtd.setBlock( x + 2 , ringY , z + 2 , leaves , false ); + } + } + } + ringY += 1 + rand.nextInt( 3 ); + } + + // Don't share the top space + for ( int x = 1 ; x <= 3 ; x++ ) { + for ( int z = 1 ; z <= 3 ; z++ ) { + rtd.setEmptyRequirement( x , rtd.height - 1 , z , true ); + } + } + } + +} diff --git a/src/resources/assets/mmm/blockstates/materials/leaves/bamboo.json b/src/resources/assets/mmm/blockstates/materials/leaves/bamboo.json new file mode 100644 index 0000000..4ea2bfc --- /dev/null +++ b/src/resources/assets/mmm/blockstates/materials/leaves/bamboo.json @@ -0,0 +1,8 @@ +{ + "variants": { + "check_decay=false,decayable=false": { "model": "mmm:materials/leaves/bamboo" } , + "check_decay=false,decayable=true": { "model": "mmm:materials/leaves/bamboo" } , + "check_decay=true,decayable=false": { "model": "mmm:materials/leaves/bamboo" } , + "check_decay=true,decayable=true": { "model": "mmm:materials/leaves/bamboo" } + } +} diff --git a/src/resources/assets/mmm/blockstates/materials/log/bamboo.json b/src/resources/assets/mmm/blockstates/materials/log/bamboo.json new file mode 100644 index 0000000..d08d37c --- /dev/null +++ b/src/resources/assets/mmm/blockstates/materials/log/bamboo.json @@ -0,0 +1,27 @@ +{ + "variants": + { + "axis=y": + { + "model": "mmm:materials/log/bamboo" + }, + + "axis=z": + { + "model": "mmm:materials/log/bamboo", + "x": 90 + }, + + "axis=x": + { + "model": "mmm:materials/log/bamboo", + "x": 90, + "y": 90 + }, + + "axis=none": + { + "model": "mmm:materials/bark/bamboo" + } + } +} \ No newline at end of file diff --git a/src/resources/assets/mmm/blockstates/materials/sapling/bamboo.json b/src/resources/assets/mmm/blockstates/materials/sapling/bamboo.json new file mode 100644 index 0000000..3c0aab0 --- /dev/null +++ b/src/resources/assets/mmm/blockstates/materials/sapling/bamboo.json @@ -0,0 +1,20 @@ +{ + "variants": { + "stage=0": { "model": "mmm:materials/sapling/bamboo" }, + "stage=1": { "model": "mmm:materials/sapling/bamboo" }, + "stage=2": { "model": "mmm:materials/sapling/bamboo" }, + "stage=3": { "model": "mmm:materials/sapling/bamboo" }, + "stage=4": { "model": "mmm:materials/sapling/bamboo" }, + "stage=5": { "model": "mmm:materials/sapling/bamboo" }, + "stage=6": { "model": "mmm:materials/sapling/bamboo" }, + "stage=7": { "model": "mmm:materials/sapling/bamboo" }, + "stage=8": { "model": "mmm:materials/sapling/bamboo" }, + "stage=9": { "model": "mmm:materials/sapling/bamboo" }, + "stage=10": { "model": "mmm:materials/sapling/bamboo" }, + "stage=11": { "model": "mmm:materials/sapling/bamboo" }, + "stage=12": { "model": "mmm:materials/sapling/bamboo" }, + "stage=13": { "model": "mmm:materials/sapling/bamboo" }, + "stage=14": { "model": "mmm:materials/sapling/bamboo" }, + "stage=15": { "model": "mmm:materials/sapling/bamboo" } + } +} \ No newline at end of file diff --git a/src/resources/assets/mmm/models/block/materials/bark/bamboo.json b/src/resources/assets/mmm/models/block/materials/bark/bamboo.json new file mode 100644 index 0000000..7cb9c2d --- /dev/null +++ b/src/resources/assets/mmm/models/block/materials/bark/bamboo.json @@ -0,0 +1,21 @@ +{ + "textures": { + "particle": "mmm:blocks/materials/log/side/bamboo", + "end": "mmm:blocks/materials/log/end/bamboo" + } , + + "elements": [ + { + "from": [ 4 , 4 , 4 ] , + "to": [ 12 , 12 , 12 ] , + "faces": { + "down": { "texture": "#end" }, + "up": { "texture": "#end" }, + "north": { "texture": "#end" } , + "east": { "texture": "#end" } , + "south": { "texture": "#end" } , + "west": { "texture": "#end" } + } + } + ] +} diff --git a/src/resources/assets/mmm/models/block/materials/leaves/bamboo.json b/src/resources/assets/mmm/models/block/materials/leaves/bamboo.json new file mode 100644 index 0000000..4ed9535 --- /dev/null +++ b/src/resources/assets/mmm/models/block/materials/leaves/bamboo.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "mmm:blocks/materials/leaves/bamboo" + } +} \ No newline at end of file diff --git a/src/resources/assets/mmm/models/block/materials/log/bamboo.json b/src/resources/assets/mmm/models/block/materials/log/bamboo.json new file mode 100644 index 0000000..9db653a --- /dev/null +++ b/src/resources/assets/mmm/models/block/materials/log/bamboo.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "mmm:blocks/materials/log/side/bamboo", + "side": "mmm:blocks/materials/log/side/bamboo" , + "end": "mmm:blocks/materials/log/end/bamboo" + } , + + "elements": [ + { + "from": [ 4 , 0 , 4 ] , + "to": [ 12 , 16 , 12 ] , + "faces": { + "down": { "texture": "#end", "cullface": "down" }, + "up": { "texture": "#end", "cullface": "up" }, + "north": { "texture": "#side" } , + "east": { "texture": "#side" } , + "south": { "texture": "#side" } , + "west": { "texture": "#side" } + } + } + ] +} diff --git a/src/resources/assets/mmm/models/block/materials/sapling/bamboo.json b/src/resources/assets/mmm/models/block/materials/sapling/bamboo.json new file mode 100644 index 0000000..2af58e8 --- /dev/null +++ b/src/resources/assets/mmm/models/block/materials/sapling/bamboo.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "mmm:blocks/materials/sapling/bamboo" + } +} diff --git a/src/resources/assets/mmm/models/item/materials/leaves/bamboo.json b/src/resources/assets/mmm/models/item/materials/leaves/bamboo.json new file mode 100644 index 0000000..f88a338 --- /dev/null +++ b/src/resources/assets/mmm/models/item/materials/leaves/bamboo.json @@ -0,0 +1,3 @@ +{ + "parent": "mmm:block/materials/leaves/bamboo" +} \ No newline at end of file diff --git a/src/resources/assets/mmm/models/item/materials/log/bamboo.json b/src/resources/assets/mmm/models/item/materials/log/bamboo.json new file mode 100644 index 0000000..1fe10cc --- /dev/null +++ b/src/resources/assets/mmm/models/item/materials/log/bamboo.json @@ -0,0 +1,3 @@ +{ + "parent": "mmm:block/materials/log/bamboo" +} \ No newline at end of file diff --git a/src/resources/assets/mmm/models/item/materials/sapling/bamboo.json b/src/resources/assets/mmm/models/item/materials/sapling/bamboo.json new file mode 100644 index 0000000..22306e5 --- /dev/null +++ b/src/resources/assets/mmm/models/item/materials/sapling/bamboo.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "mmm:blocks/materials/sapling/bamboo" + } +} \ No newline at end of file diff --git a/src/resources/assets/mmm/textures/blocks/materials/leaves/bamboo.png b/src/resources/assets/mmm/textures/blocks/materials/leaves/bamboo.png new file mode 100644 index 0000000000000000000000000000000000000000..19c1662252c7d412c65ccfc75d791ca7c6a6cba6 GIT binary patch literal 544 zcmV+*0^j|KP)ox03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00D$aL_t(I%XL#p%fdhm z_5a^{@Ki-?U8%K*;>CmD0!oWYD~cP6f*W20J>@gO#2M}PV3=tpd6T@PiNp)#av5-+ zOeVA=s@1BT;}AvB=e|%VXwDd1uh+@;cs%6pe!s(Vxuoyyb_-g-d_IqT{rP;tZnvZR z(P$+0+wJxtC>Dz_olaq~Sdg*NXuy8I7l+ww23($&IwF_LL8Ve5<9Ix#z1eI6I-bvG zab}%3({8s5^7^+xTtB|LTCM1u&1Q)dGv%zvxl}4?1eePNJkR?fO{G$r&G-G^E}c#% z2*Z#%po#QCI-SKupV0L4~GM6Hk+R|4h91_9*<%- z3iu%t8kN^j$*XzN5%Ht4WFz!5b0uJo=`x*(>j3sdLo)AOmDGLn2C?^K)}k^GbkR1_tM%)Wnk1 z6ovB4k_-iRPv3wPy;OFf_#ICd#}Es_w+DT_m>mTgF0NmmUF9aD!ZKxnUQCsk{}WN0 ziN`;%I4Ptg2e4iF`Ffq+_Dd%PKgp$AaQW-=tLZ(~Ixl3*X7M~CN$JX=*PpL_><^f+ z?8M_^mt#YG1g|`(3%$($VOy}5lVj-4om_X;z5j5@aP=iFnYw#|4?6-*r1=;ITRyJZ zdeBGmd1I+~fxOqsM=ht9DP7UMSGgqX!km}wEi(g!{5np0SZ+EpamB>L-_`dQD`hTI znX}>j)Ve#5{_-hb?qD|#3i5JNY?<|T`b9Iot1dxH#SWk0*jiBbhCktHMv4!2$xToI Nc)I$ztaD0e0swo-khA~* literal 0 HcmV?d00001 diff --git a/src/resources/assets/mmm/textures/blocks/materials/log/side/bamboo.png b/src/resources/assets/mmm/textures/blocks/materials/log/side/bamboo.png new file mode 100644 index 0000000000000000000000000000000000000000..6869aeaa2819912821e6b15fdbad08a533143150 GIT binary patch literal 477 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNJExGU?sBu6CO{$C%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6_|fq~J{)5S5wLNNEBb)JZ$2*ZI_@60#L-{!a(;Z$_MaEGL# z`(vdP55EZx5y$4=z4_AJp=s7yuIB#v_nyAoaw|T^C%D*Zt)I7eu;|5_pEdD+lzH;( z-q_yRzhmEROS`haD{toWFU8GbZ8()Nlj2>E@cM*00DbRL_t(I%iYesZqrZz zhT-=dAKT|RIdOhki{h#c>W`3^yR-ufI}&$*#DLfkYsG@75F3J9VCYr!Cc01|fgow= zf120@;y8zu#Z`fgZ~q>>l7F21&w(dftM1wJHTPG*!?%fRFSThc$85gaaDN2c-)gzJ z#xj8j(anHn8uRk~U3YEZXfUNWydb+AbCzA;1s=jLuUGKk>AbrWtx#UV=g}b_2K($C ze?h2-7u)OZO5o9()ZJd`l2}W}vlInnKgS#l2Yk(sDP+j&?R%~g@B)RfCACDMw1+4? z^dvxj59uA9)6Y-YJ^xf)P)^7AN^w@^^rt68(q|!Tvl`5?I87-tkB_7MYQPA~!DvJ; zJHbPem?jMy5m?8JsnHelEEQ=ruzUKAem20L_$<_BnT;*hYNFUceS$HPTmBV5KObVs zfUdboQjckMYIGV6ZnT;twu7>gz{+Z1?-e3ZA#H70OlPQTjR`eIY2-vv{K(mSyd!@9 Z`~vn%bLA1Z!H56=002ovPDHLkV1g{m;%EQ> literal 0 HcmV?d00001