From 61538c18d375cf336b62b4c0b80412b8133b60be Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 26 Nov 2020 23:11:02 +0300 Subject: [PATCH] Bulb vine (WIP) --- .../java/ru/betterend/registry/EndBlocks.java | 1 + .../ru/betterend/registry/EndFeatures.java | 1 + .../world/biome/BlossomingSpires.java | 1 + .../betterend/world/features/VineFeature.java | 12 ++- .../betterend/blockstates/bulb_vine.json | 10 ++ .../materialmaps/block/bulb_vine.json | 14 +++ .../models/block/bulb_vine_bottom.json | 98 ++++++++++++++++++ .../models/block/bulb_vine_middle_1.json | 6 ++ .../models/block/bulb_vine_middle_2.json | 6 ++ .../betterend/models/block/bulb_vine_top.json | 76 ++++++++++++++ .../betterend/textures/block/bulb_vine.png | Bin 0 -> 2270 bytes .../textures/block/bulb_vine_fur.png | Bin 0 -> 2188 bytes .../textures/block/bulb_vine_middle.png | Bin 0 -> 1883 bytes .../textures/block/bulb_vine_roots.png | Bin 0 -> 2127 bytes .../textures/block/twisted_vine_roots.png | Bin 401 -> 1702 bytes 15 files changed, 220 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/assets/betterend/blockstates/bulb_vine.json create mode 100644 src/main/resources/assets/betterend/materialmaps/block/bulb_vine.json create mode 100644 src/main/resources/assets/betterend/models/block/bulb_vine_bottom.json create mode 100644 src/main/resources/assets/betterend/models/block/bulb_vine_middle_1.json create mode 100644 src/main/resources/assets/betterend/models/block/bulb_vine_middle_2.json create mode 100644 src/main/resources/assets/betterend/models/block/bulb_vine_top.json create mode 100644 src/main/resources/assets/betterend/textures/block/bulb_vine.png create mode 100644 src/main/resources/assets/betterend/textures/block/bulb_vine_fur.png create mode 100644 src/main/resources/assets/betterend/textures/block/bulb_vine_middle.png create mode 100644 src/main/resources/assets/betterend/textures/block/bulb_vine_roots.png diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index f96b546f..35261613 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -164,6 +164,7 @@ public class EndBlocks { // Vines // public static final Block DENSE_VINE = registerBlock("dense_vine", new BlockVine(15, true)); public static final Block TWISTED_VINE = registerBlock("twisted_vine", new BlockVine()); + public static final Block BULB_VINE = registerBlock("bulb_vine", new BlockVine(15, true)); // Ores // public static final Block ENDER_ORE = registerBlock("ender_ore", new BlockOre(EndItems.ENDER_DUST, 1, 3, 5)); diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index 5532afc7..40ccd126 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -62,6 +62,7 @@ public class EndFeatures { // Vines // public static final EndFeature DENSE_VINE = new EndFeature("dense_vine", new VineFeature(EndBlocks.DENSE_VINE, 24), 3); public static final EndFeature TWISTED_VINE = new EndFeature("twisted_vine", new VineFeature(EndBlocks.TWISTED_VINE, 24), 3); + public static final EndFeature BULB_VINE = new EndFeature("bulb_vine", new VineFeature(EndBlocks.BULB_VINE, 24), 5); // Wall Plants // public static final EndFeature PURPLE_POLYPORE = new EndFeature("purple_polypore", new WallPlantOnLogFeature(EndBlocks.PURPLE_POLYPORE, 3), 5); diff --git a/src/main/java/ru/betterend/world/biome/BlossomingSpires.java b/src/main/java/ru/betterend/world/biome/BlossomingSpires.java index c15c7451..1fc74dcc 100644 --- a/src/main/java/ru/betterend/world/biome/BlossomingSpires.java +++ b/src/main/java/ru/betterend/world/biome/BlossomingSpires.java @@ -15,6 +15,7 @@ public class BlossomingSpires extends EndBiome { .addFeature(EndFeatures.FLOATING_SPIRE) .addFeature(EndFeatures.TENANEA) .addFeature(EndFeatures.TENANEA_BUSH) + .addFeature(EndFeatures.BULB_VINE) .addFeature(EndFeatures.TWISTED_MOSS) .addFeature(EndFeatures.TWISTED_MOSS_WOOD) .addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)); diff --git a/src/main/java/ru/betterend/world/features/VineFeature.java b/src/main/java/ru/betterend/world/features/VineFeature.java index 5ffb6e92..362a31b2 100644 --- a/src/main/java/ru/betterend/world/features/VineFeature.java +++ b/src/main/java/ru/betterend/world/features/VineFeature.java @@ -26,11 +26,13 @@ public class VineFeature extends InvertedScatterFeature { @Override public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { - int h = BlocksHelper.downRay(world, blockPos, random.nextInt(maxLength)); - BlocksHelper.setWithoutUpdate(world, blockPos, vineBlock.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.TOP)); - for (int i = 1; i < h; i++) { - BlocksHelper.setWithoutUpdate(world, blockPos.down(i), vineBlock.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.MIDDLE)); + int h = BlocksHelper.downRay(world, blockPos, random.nextInt(maxLength)) - 1; + if (h > 2) { + BlocksHelper.setWithoutUpdate(world, blockPos, vineBlock.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.TOP)); + for (int i = 1; i < h; i++) { + BlocksHelper.setWithoutUpdate(world, blockPos.down(i), vineBlock.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.MIDDLE)); + } + BlocksHelper.setWithoutUpdate(world, blockPos.down(h), vineBlock.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.BOTTOM)); } - BlocksHelper.setWithoutUpdate(world, blockPos.down(h), vineBlock.getDefaultState().with(BlockProperties.TRIPLE_SHAPE, TripleShape.BOTTOM)); } } diff --git a/src/main/resources/assets/betterend/blockstates/bulb_vine.json b/src/main/resources/assets/betterend/blockstates/bulb_vine.json new file mode 100644 index 00000000..e434ca56 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/bulb_vine.json @@ -0,0 +1,10 @@ +{ + "variants": { + "shape=top": { "model": "betterend:block/bulb_vine_top" }, + "shape=middle": [ + { "model": "betterend:block/bulb_vine_middle_1" }, + { "model": "betterend:block/bulb_vine_middle_2" } + ], + "shape=bottom": { "model": "betterend:block/bulb_vine_bottom" } + } +} diff --git a/src/main/resources/assets/betterend/materialmaps/block/bulb_vine.json b/src/main/resources/assets/betterend/materialmaps/block/bulb_vine.json new file mode 100644 index 00000000..5f0f0cee --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/bulb_vine.json @@ -0,0 +1,14 @@ +{ + "defaultMap": { + "spriteMap": [ + { + "sprite": "betterend:block/bulb_vine", + "material": "betterend:glow_inc" + }, + { + "sprite": "betterend:block/bulb_vine_middle", + "material": "betterend:waving" + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/bulb_vine_bottom.json b/src/main/resources/assets/betterend/models/block/bulb_vine_bottom.json new file mode 100644 index 00000000..ed4ff52f --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/bulb_vine_bottom.json @@ -0,0 +1,98 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/bulb_vine", + "texture": "betterend:block/bulb_vine", + "fur": "betterend:block/bulb_vine_fur", + "stem": "betterend:block/bulb_vine_middle" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 4, 4, 4 ], + "to": [ 12, 12, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 8, 8, 16 ], "texture": "#texture" }, + "up": { "uv": [ 8, 0, 16, 8 ], "texture": "#texture" }, + "north": { "uv": [ 0, 0, 8, 8 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 8, 8 ], "texture": "#texture" }, + "west": { "uv": [ 0, 0, 8, 8 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 8, 8 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 5, 12, 5 ], + "to": [ 11, 14, 11 ], + "faces": { + "up": { "uv": [ 9, 1, 15, 7 ], "texture": "#texture" }, + "north": { "uv": [ 9, 6, 15, 8 ], "texture": "#texture" }, + "south": { "uv": [ 9, 6, 15, 8 ], "texture": "#texture" }, + "west": { "uv": [ 9, 6, 15, 8 ], "texture": "#texture" }, + "east": { "uv": [ 9, 6, 15, 8 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 6, 14, 6 ], + "to": [ 10, 15, 10 ], + "faces": { + "down": { "uv": [ 6, 6, 10, 10 ], "texture": "#texture" }, + "up": { "uv": [ 10, 2, 14, 6 ], "texture": "#texture" }, + "north": { "uv": [ 10, 5, 14, 6 ], "texture": "#texture" }, + "south": { "uv": [ 10, 5, 14, 6 ], "texture": "#texture" }, + "west": { "uv": [ 10, 5, 14, 6 ], "texture": "#texture" }, + "east": { "uv": [ 10, 5, 14, 6 ], "texture": "#texture" } + } + }, + { + "__comment": "Box4", + "from": [ 3, 7, 3 ], + "to": [ 13, 13, 13 ], + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 10, 10 ], "texture": "#fur" }, + "north": { "uv": [ 0, 10, 10, 16 ], "texture": "#fur" }, + "south": { "uv": [ 0, 10, 10, 16 ], "texture": "#fur" }, + "west": { "uv": [ 0, 10, 10, 16 ], "texture": "#fur" }, + "east": { "uv": [ 0, 10, 10, 16 ], "texture": "#fur" } + } + }, + { + "__comment": "Box4", + "from": [ 13, 13, 13 ], + "to": [ 3, 7, 3 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 0, 10, 10 ], "texture": "#fur" }, + "north": { "uv": [ 0, 16, 10, 10 ], "texture": "#fur" }, + "south": { "uv": [ 0, 16, 10, 10 ], "texture": "#fur" }, + "west": { "uv": [ 0, 16, 10, 10 ], "texture": "#fur" }, + "east": { "uv": [ 0, 16, 10, 10 ], "texture": "#fur" } + } + }, + { + "__comment": "PlaneX9", + "from": [ 7.25, 15, 7.25 ], + "to": [ 7.251, 16, 9.25 ], + "rotation": { "origin": [ 7.25, 15, 7.25 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 7, 0, 9, 1 ], "texture": "#stem" }, + "east": { "uv": [ 7, 0, 9, 1 ], "texture": "#stem" } + } + }, + { + "__comment": "PlaneX9", + "from": [ 8.625, 15, 7.375 ], + "to": [ 8.626, 16, 9.375 ], + "rotation": { "origin": [ 8.625, 15, 7.375 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 7, 0, 9, 1 ], "texture": "#stem" }, + "east": { "uv": [ 7, 0, 9, 1 ], "texture": "#stem" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/bulb_vine_middle_1.json b/src/main/resources/assets/betterend/models/block/bulb_vine_middle_1.json new file mode 100644 index 00000000..31de90ec --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/bulb_vine_middle_1.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_no_distortion", + "textures": { + "texture": "betterend:block/bulb_vine_middle" + } +} diff --git a/src/main/resources/assets/betterend/models/block/bulb_vine_middle_2.json b/src/main/resources/assets/betterend/models/block/bulb_vine_middle_2.json new file mode 100644 index 00000000..8a3062e6 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/bulb_vine_middle_2.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_no_distortion_inverted", + "textures": { + "texture": "betterend:block/bulb_vine_middle" + } +} diff --git a/src/main/resources/assets/betterend/models/block/bulb_vine_top.json b/src/main/resources/assets/betterend/models/block/bulb_vine_top.json new file mode 100644 index 00000000..3f42ff42 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/bulb_vine_top.json @@ -0,0 +1,76 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/bulb_vine_middle", + "texture": "betterend:block/bulb_vine_middle", + "roots": "betterend:block/bulb_vine_roots" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 2.375, 0, 2.25 ], + "to": [ 2.376, 16, 18.25 ], + "rotation": { "origin": [ 2.375, 0, 2.25 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 13.75, 0, 2.25 ], + "to": [ 13.751, 16, 18.25 ], + "rotation": { "origin": [ 13.75, 0, 2.25 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 5, 0, 0.5 ], + "to": [ 5.001, 16, 16.5 ], + "rotation": { "origin": [ 5, 0, 0.5 ], "axis": "y", "angle": 22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 16, 16, 0 ], "texture": "#roots" }, + "east": { "uv": [ 0, 16, 16, 0 ], "texture": "#roots" } + } + }, + { + "__comment": "PlaneZ5", + "from": [ 0.5, 0, 11 ], + "to": [ 16.5, 16, 11.001 ], + "rotation": { "origin": [ 0.5, 0, 11 ], "axis": "y", "angle": 22.5 }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 16, 16, 0 ], "texture": "#roots" }, + "south": { "uv": [ 0, 16, 16, 0 ], "texture": "#roots" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 11, 0, 0.5 ], + "to": [ 11.001, 16, 16.5 ], + "rotation": { "origin": [ 11, 0, 0.5 ], "axis": "y", "angle": -22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 16, 16, 0 ], "texture": "#roots" }, + "east": { "uv": [ 0, 16, 16, 0 ], "texture": "#roots" } + } + }, + { + "__comment": "PlaneZ5", + "from": [ 0.5, 0, 5 ], + "to": [ 16.5, 16, 5.001 ], + "rotation": { "origin": [ 0.5, 0, 5 ], "axis": "y", "angle": -22.5 }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 16, 16, 0 ], "texture": "#roots" }, + "south": { "uv": [ 0, 16, 16, 0 ], "texture": "#roots" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/textures/block/bulb_vine.png b/src/main/resources/assets/betterend/textures/block/bulb_vine.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9f8ee8e5ad6256bb4e18244768b0ca61bfb03c GIT binary patch literal 2270 zcmb_ee@qis952i>z$5DJJa0`UjeyLW9v+beg6EexHK z5p`Hm+@dogPUd3bhQG4t;v7+2oQs;& zRoo_LS-DbfEo3;+tzmi51~h)R7ot_FIhlSh%T)sfu>rf&V^R+u=~5$3-lSfrv*K2- z891DI^%7W6UsT4`S93J4&dfmO_!&sx1`3P#-7b&J_)Y2%F9XNHX-tiTAWF4KofUM5 zlv_&>vnT;Xr_rMvp(POmts(R{O={mjNSrWWxB(+56ek#5&rmcH{;8oii5Hks%bQ_e z@X4fhD2kWCFrUw-@lhI4vSS2I(-=--B#A-77X*VUX0M-!IVNko{QqVwUR63oaZp$0&d_@WQZlASXd>i zH3}b**6og>WhG}Bj3}Jjh-kU2&I_X;evs1u>h0jWHrK7CJq==#ys#9ffUxg;jt_P2wbu5(G->%Se(Tbqqz$ z!YKyFhoM#|1)f#dk-$0wLp}-?d8bhKpHQA-1W|Icuux7nYX_LuV-I<=TA6&0tgs#q z)BG&cnJkcgGX3-@|R*{EQrh*a< zNr}mG%CKK`;YG0k)PzSaClXQ*!*W4^o77yevw&BJr=25I=IJsUru8`hBz;1=hhefP zC_YvKS$0^(r%@F4xcFsu*^{H^S%DWQ!iMSuEr|-GmP2X1jz?{RpyTyATx%4xk?co| z-pJs(h*+O7`fzbM2kWr|xMyPOXV2&9bo%&iJhGnt*L<+xZaFM9?B6O3z5B<`3fmc) zg4=a)7(FN8L-eEp9#|>~o+Cp^Z*{9wF~8?qvdWBsrc#r5e(t#CvyWWAb@$!Y0wrzK z%IFuJ&E{ za{17SJ@?L>8{D6>HdS8v_VpuoE7Ej&P z|J|ngKp^AfjNB!g?{2;}YiF@z@#@3(y5~+?lXm~Ysv848miNSTfxj+2NOhg3yOPDp z$19sBKWF>kX7|#*ZzJ5161?Ws*Q<%p6!@7sbIdn^@}#<5S6&&r};fA zzACH-(vsL8u5^y-4K%dvJSEA-Tfb#y9q7r^FKON)R+C>h^<7&>PDoF-#LQ&gFCM?w zQoHEjm?2f`C$|A&IhIkS@6FgUI=!*!s68$_VRG}>d1N#5LPMtvUDwlAlv#>CCQb{2LjI3d;Zh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/bulb_vine_fur.png b/src/main/resources/assets/betterend/textures/block/bulb_vine_fur.png new file mode 100644 index 0000000000000000000000000000000000000000..c1e4194a3694359bac05a2fd49fcac5be7fa89b3 GIT binary patch literal 2188 zcmb_ee{9rL9539MW4J*!H4K+fipmb`^~d#k*UEu&2W;Stv0c~(G16<_-8H*wOWW=4 zhKVwwnG*ze&|o(BU*ttK<`5(`2pox+2GIyIb9O=##3o>(K@gS|FE(`OQw)_QFIMmJlYXrN zMC8g=9n`f}2gKGUk(035v(T9d9umZWDWHj1R5AF37fbQ-ux$+!7@C5ZO!gR6%|%uJZM?HtVn9yuv>=GbAV4Uffu7mn#3szr`Z5a^DdY>&kWMZljJbe z4@*H3OyS>Ph@p9g`UhB*yz?e3fFDf+B({pBIBt z9kML(Zh>PMiIs4Uq-dO_8Gw7-E&*p~N^}P)60pFNneS7@W-E!-{NZ|*R1tDyL&vi& zk^~`=!l{tp!9^Ej3x+}*PO=5zvMgYFF5LS2SSN{HUcYN?VSqsThl0t1{l$B`T! zWEln*JS1zW3P~;+a16&_=-+lL)TpZaRSCx2X%%#;u=q;ZfZ0o?mq;C0o^C~DG*wHy zAX??_#Y8L5K*G|)@(6KyFh#?(@d$vV_euUR%uqvST+l&z7{>HL>WjFSenV)vzj`2q z7)}%=oDIS#hA4)_J&X%>olb!wJq%6LAmjar>YY5zW~%Wa)u)3iMg%1c;0{V)5AV-| zRqeg9ao6hlU;QDhy>qzKh`XyW_3e&*7N#>b1UGN1nLRaNCwuMy1%^t8r^+Zb?-+uN z>a6mW2Rz5Nc70v_dCg;Q+$7bu4zHL#ZE|r=Inp&@bYssHf8CD<3(wy;F?5}JrIae| zJU8u;s=WT?>z*h%wb8}+ZRfAr6783|%qiU^%%PPx26HwZ&#j$5al^_5w@2?D;wEff z-22hx4#WE4L0X{<<}5kxec04)+t{zNLdF79mqNe%OA= ex9QQ}Y{xEsvijYU)4yB)3srNfeY;***7g^Op5561 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/bulb_vine_middle.png b/src/main/resources/assets/betterend/textures/block/bulb_vine_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..a7cae3bedbc4cb88091fd1df73a590d92acb0e48 GIT binary patch literal 1883 zcmbVN3v3f*9KQh(Hr_JAMkE{uQyy*awO4QJU~9`-pa@+D!w}(m_pLqG-gS4^_2G;Y z5P8JtjB&gcfho};kAy|s00EikB!Glr00|Q(j>2#lq8ksvyRL1F0fSuf-S>U>{l4G- z{lB#f<`)l78J_|{&~U58WLM@<>KO8j@}7A6A+1cwKFbmbf`*P!M-sGYOBw_X>f#(_ za+z%&#Ry&<%?eJS3wnJD8iMj?27NSB0c6+-TpVvedJY^$V2(8)i?eK)&1VE|&Jq?u zNqD}430E+B7MWQ9=Lac;zzbv=4thPjLSq*zqY$~mfE20%;WFC-*eHkq z&eCOT89bAKbM!hq8`Be+8koTF92CnzaZ-!n6qZeqdN}qViZqcer|hQLFoC=%D3E0mIGu2M9L+4e}ZPhHIMtPqfOdic{n(lG!)IKd2K)#HK2e+VxPIE_Dnx*zzr1A z$3?jxBMIelfEGcaOL5_oWD%+;kE#{eZwLBs6QgJUsMa`KX#wgo(R-9lqI&^eX<4Gu zo0?aCUk5=0##>E=j@%Re5<^Am!qh`TmCH4baX6>AN0(SE^ruJDlBcgJo0?o$vcz)a z_{$okP;)W})j@($viZ(cdM zIndGEwdK`fjEr14RlUvlP5AtSCi97^4?H==@66OBr>|Q2Svc+P@#fyzmU|<_LuDBq zy^(`i^KMq<oi=hewY97%k=SYu5TGR8iG4( zhq*O*)`l6Kb9x$fl1+JauHdSg*0SVrKk(g^>20NZ8s)%*Ncn|~GkJNbr=d3L?#dGZ zeb-g4t9awV?Zsmc469n&a(MJ<=v>9foVNVsmA4L<>sn@W+rAjGq-ce2)SyOai(&fN zUaY3_UbvU+`MlJ8ZNFx{qqut6w7PWRo zT$f%KYcB8JHFWQtp68ByBvZQ_n4*(tsil@GJVFd zn@!?Q_t{+!ZnU2bq;-6~wwb*0aQXcoXa6O-vLBo}d@CiRJM@|}EC1oZ)Rp+Q%8TSy P_4j8r&o}KZTE60M9nr2m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/bulb_vine_roots.png b/src/main/resources/assets/betterend/textures/block/bulb_vine_roots.png new file mode 100644 index 0000000000000000000000000000000000000000..1100b0a41a8b0b6a67795ff79965f677cc019dfa GIT binary patch literal 2127 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 delta 375 zcmV--0f_#l4Uq$oBYy!{NklyDoFX_5YhGB@ks>Yd^ zuf=`EeMYSBd%3PF*h?v*{9p+}F@;#$ws9stj$?5PkZGENjDJ<#8HEHWs7lP4Y@TN$ z@%?@Wv&W0a4R&&afC7RkpCU&N+3qh7&@j{hi0=ldXqGAf#E{R5O7_H@Ac#;2km7)q zJL0TOyJZuj(9dxlKNt3Hs58ZhRDfs-Y^=%babl>W@V