From 776d68ac319d627071f4d3b7e9f8ec30eba4ae77 Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 12 Jun 2023 00:36:51 +0200 Subject: [PATCH] Updated End Villag assets --- .../betterx/betterend/registry/EndItems.java | 31 +++++++++++ .../betterend/registry/EndStructures.java | 2 +- .../structures/village/VillagePools.java | 51 +++++++++--------- .../assets/betterend/lang/de_de.json | 1 + .../assets/betterend/lang/en_us.json | 1 + .../village/decoration/fountain_01.nbt | Bin 0 -> 1304 bytes .../structures/village/decoration/pond_01.nbt | Bin 0 -> 1918 bytes .../village/decoration/respawn_01.nbt | Bin 0 -> 2777 bytes .../village/decoration/respawn_02.nbt | Bin 0 -> 2576 bytes .../village/decoration/stable_01.nbt | Bin 0 -> 4559 bytes .../village/houses/small_house_07.nbt | Bin 2544 -> 2563 bytes .../village/houses/small_house_17.nbt | Bin 0 -> 9812 bytes .../structures/village/streets/curve_02.nbt | Bin 0 -> 604 bytes .../structures/village/streets/street_03.nbt | Bin 0 -> 764 bytes .../structures/village/streets/street_04.nbt | Bin 0 -> 585 bytes .../village/streets/t_crossing_01.nbt | Bin 463 -> 646 bytes .../village/streets/t_crossing_02.nbt | Bin 751 -> 818 bytes 17 files changed, 61 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/data/betterend/structures/village/decoration/fountain_01.nbt create mode 100644 src/main/resources/data/betterend/structures/village/decoration/pond_01.nbt create mode 100644 src/main/resources/data/betterend/structures/village/decoration/respawn_01.nbt create mode 100644 src/main/resources/data/betterend/structures/village/decoration/respawn_02.nbt create mode 100644 src/main/resources/data/betterend/structures/village/decoration/stable_01.nbt create mode 100644 src/main/resources/data/betterend/structures/village/houses/small_house_17.nbt create mode 100644 src/main/resources/data/betterend/structures/village/streets/curve_02.nbt create mode 100644 src/main/resources/data/betterend/structures/village/streets/street_03.nbt create mode 100644 src/main/resources/data/betterend/structures/village/streets/street_04.nbt diff --git a/src/main/java/org/betterx/betterend/registry/EndItems.java b/src/main/java/org/betterx/betterend/registry/EndItems.java index 9187160f..010cdf46 100644 --- a/src/main/java/org/betterx/betterend/registry/EndItems.java +++ b/src/main/java/org/betterx/betterend/registry/EndItems.java @@ -458,6 +458,37 @@ public class EndItems { return InteractionResult.SUCCESS; } return InteractionResult.FAIL; + }, false, BuiltInRegistries.ITEM.getKey(Items.WATER_BUCKET)) + + ); + + registerEndItem( + "debug/fill_air", + new DebugDataItem((player, entity, useOnContext) -> { + if (entity instanceof StructureBlockEntity e) { + final var level = useOnContext.getLevel(); + final var offset = e.getStructurePos(); + var size = e.getStructureSize(); + var pos = useOnContext.getClickedPos().offset(offset); + + for (int x = 0; x < size.getX(); x++) { + for (int y = 0; y < size.getY(); y++) { + for (int z = 0; z < size.getZ(); z++) { + var blockPos = pos.offset(x, y, z); + var state = level.getBlockState(blockPos); + if (state.isAir()) { + level.setBlock( + blockPos, + Blocks.STRUCTURE_VOID.defaultBlockState(), + BlocksHelper.SET_SILENT + ); + } + } + } + } + return InteractionResult.SUCCESS; + } + return InteractionResult.FAIL; }, false, BuiltInRegistries.ITEM.getKey(Items.BUCKET)) ); diff --git a/src/main/java/org/betterx/betterend/registry/EndStructures.java b/src/main/java/org/betterx/betterend/registry/EndStructures.java index a18d40f5..286918a3 100644 --- a/src/main/java/org/betterx/betterend/registry/EndStructures.java +++ b/src/main/java/org/betterx/betterend/registry/EndStructures.java @@ -77,7 +77,7 @@ public class EndStructures { .adjustment(TerrainAdjustment.BEARD_THIN) .projectStartToHeightmap(Heightmap.Types.WORLD_SURFACE_WG) .maxDepth(6) - .startHeight(ConstantHeight.of(VerticalAnchor.absolute(20))) + .startHeight(ConstantHeight.of(VerticalAnchor.absolute(5))) .step(Decoration.SURFACE_STRUCTURES) .randomPlacement(34, 8) .build(); diff --git a/src/main/java/org/betterx/betterend/world/structures/village/VillagePools.java b/src/main/java/org/betterx/betterend/world/structures/village/VillagePools.java index 001956dc..30c4e7e4 100644 --- a/src/main/java/org/betterx/betterend/world/structures/village/VillagePools.java +++ b/src/main/java/org/betterx/betterend/world/structures/village/VillagePools.java @@ -56,6 +56,7 @@ public class VillagePools { Holder.Reference mossifyProcessor = processorGetter.getOrThrow(EndProcessors.WEATHERED_10_PERCENT); Holder.Reference crack = processorGetter.getOrThrow(EndProcessors.CRACK_20_PERCENT); + Holder.Reference crackAndWeather = processorGetter.getOrThrow(EndProcessors.CRACK_AND_WEATHER); Holder.Reference endStreetProcessor = processorGetter.getOrThrow(EndProcessors.END_STREET); final Holder.Reference emptyProcessor = processorGetter.getOrThrow(ProcessorLists.EMPTY); @@ -77,26 +78,30 @@ public class VillagePools { terminatorPool, ImmutableList.of( Pair.of(StructurePoolElement.empty(), 5), - single("village/houses/small_house_01", emptyProcessor, 2), - single("village/houses/small_house_02", emptyProcessor, 2), + single("village/houses/small_house_01", emptyProcessor, 4), + single("village/houses/small_house_02", emptyProcessor, 4), single("village/houses/small_house_03", emptyProcessor, 2), - single("village/houses/small_house_04", emptyProcessor, 2), - single("village/houses/small_house_05", emptyProcessor, 2), - single("village/houses/small_house_06", emptyProcessor, 2), - single("village/houses/small_house_07", emptyProcessor, 2), - single("village/houses/small_house_08", emptyProcessor, 2), - single("village/houses/small_house_09", emptyProcessor, 2), + single("village/houses/small_house_04", emptyProcessor, 4), + single("village/houses/small_house_05", emptyProcessor, 4), + single("village/houses/small_house_06", emptyProcessor, 4), + single("village/houses/small_house_07", emptyProcessor, 4), + single("village/houses/small_house_08", emptyProcessor, 4), + single("village/houses/small_house_09", emptyProcessor, 4), single("village/houses/small_house_10", emptyProcessor, 2), - single("village/houses/small_house_11", emptyProcessor, 2), - single("village/houses/small_house_12", emptyProcessor, 2), - single("village/houses/small_house_13", emptyProcessor, 2), - single("village/houses/small_house_14", emptyProcessor, 2), - single("village/houses/small_house_15", emptyProcessor, 2), + single("village/houses/small_house_11", emptyProcessor, 1), + single("village/houses/small_house_12", emptyProcessor, 4), + single("village/houses/small_house_13", emptyProcessor, 4), + single("village/houses/small_house_14", emptyProcessor, 4), + single("village/houses/small_house_15", emptyProcessor, 4), single("village/houses/small_house_16", emptyProcessor, 2), - single("village/houses/small_house_17", emptyProcessor, 2), - single("village/houses/animal_pen_01", emptyProcessor, 1), - single("village/decoration/stable_01", crack, 1), - single("village/decoration/pond_01", mossifyProcessor, 3) + single("village/houses/small_house_17", crackAndWeather, 4), + single("village/houses/animal_pen_01", emptyProcessor, 3), + single("village/decoration/stable_01", crack, 2), + single("village/decoration/pond_01", mossifyProcessor, 1), + single("village/decoration/respawn_01", endStreetProcessor, 1), + single("village/decoration/respawn_02", endStreetProcessor, 1), + single("village/decoration/fountain_01", endStreetProcessor, 1) + ), StructureTemplatePool.Projection.RIGID )); @@ -106,20 +111,18 @@ public class VillagePools { single("village/streets/street_01", endStreetProcessor, 6), single("village/streets/street_02", endStreetProcessor, 5), single("village/streets/street_03", endStreetProcessor, 7), - single("village/streets/curve_01", endStreetProcessor, 10), - single("village/streets/curve_02", endStreetProcessor, 12), + single("village/streets/street_04", endStreetProcessor, 6), + single("village/streets/curve_01", endStreetProcessor, 8), + single("village/streets/curve_02", endStreetProcessor, 8), single("village/streets/t_crossing_01", endStreetProcessor, 4), - single("village/streets/t_crossing_02", endStreetProcessor, 5), - single("village/streets/respawn_crossing_01", endStreetProcessor, 5), - single("village/streets/respawn_crossing_02", endStreetProcessor, 5), - single("village/decoration/fountain_01", endStreetProcessor, 4) + single("village/streets/t_crossing_02", endStreetProcessor, 4) ), StructureTemplatePool.Projection.TERRAIN_MATCHING )); ctx.register(VillagePools.STREET_DECO_KEY, new StructureTemplatePool( terminatorPool, ImmutableList.of( - Pair.of(StructurePoolElement.empty(), 5), + Pair.of(StructurePoolElement.empty(), 6), single("village/street_decoration/lamp_02", emptyProcessor, 2), single("village/street_decoration/lamp_05", emptyProcessor, 1) ), diff --git a/src/main/resources/assets/betterend/lang/de_de.json b/src/main/resources/assets/betterend/lang/de_de.json index 0cb6be19..75bce647 100644 --- a/src/main/resources/assets/betterend/lang/de_de.json +++ b/src/main/resources/assets/betterend/lang/de_de.json @@ -792,6 +792,7 @@ "item.betterend.crystalite_helmet": "Kristallithelm", "item.betterend.crystalite_leggings": "Kristallitbeinschutz", "item.betterend.crystalline_sulphur": "Schwefel", + "item.betterend.debug.fill_air": "Luft in Structure-Block-Volumen ersetzen [dev]", "item.betterend.debug.fill_base_void": "Endstein in Structure-Block-Volumen ersetzen [dev]", "item.betterend.debug.jigsaw_big_deco": "Große Deko [dev]", "item.betterend.debug.jigsaw_deco": "Kleine Deko [dev]", diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 1a0be8f1..2b16287f 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -793,6 +793,7 @@ "item.betterend.crystalite_leggings": "Crystalite Leggings", "item.betterend.crystalline_sulphur": "Sulfur", "item.betterend.debug.fill_base_void": "Replace EndStone in Structure Block Bounds [dev]", + "item.betterend.debug.fill_air": "Replace Air in Structure Block Bounds [dev]", "item.betterend.debug.jigsaw_big_deco": "Large Decoration [dev]", "item.betterend.debug.jigsaw_deco": "Small Decoration [dev]", "item.betterend.debug.jigsaw_entrance": "Entrance [dev]", diff --git a/src/main/resources/data/betterend/structures/village/decoration/fountain_01.nbt b/src/main/resources/data/betterend/structures/village/decoration/fountain_01.nbt new file mode 100644 index 0000000000000000000000000000000000000000..406e848ad9cc985cae22dce6e6c595e6e4b3345b GIT binary patch literal 1304 zcmV+z1?T!7iwFP!00000|Gk;dZsRr(#%YP9WT)HR{>`=pdh5MCwb*mdMNhp7v`stQ zl_^7_6YRb~U#t&SD%L1mg&a-1!5R>P*gwsD-^`Gr;T2;`#yj&t=ZvxbTKP-*Yq?~l zw$3=CJJ!FJOs?x@^RDZO|CTI2HXYmquPkSxbIR%Aju?{@7#=W-1S60*i-B1LOqO6W z0+SOMPGAIqkqDC!d;x>`0tWL145k?vislmO7xWeL1q|j37)&!T1)_%&^l(BhV6gfC zL(zlPP!Kc&gVhiiY&L+wW*!)f_Gpr@4#T*fx)~3gLwxAn+;&F`T&E~ zr-=AUF`U3)doM7Oz+k?B!F-hjU%+6#fWdqLgZTmm^R*=8S`uUHm2yq}Ew!VPD))yzl;ZKM&x3AvU2=Oimapb_TfZ+)S>!~E?(_Eb3ixYftf-g?+B?!I*K{GJe90G&QAuyPCU@-5%VBX>Uyg;%8dSd;W z(<2CV7Li=BUhqkrZxRegm~qYs%v`^wxnlj|lln|^ae^Km(G%;}R8Op5b9w}!&LWa4 zRzop~Gd-)1v5+$@kHq;l!Gv+X^G}uBu3gE*+s0VO3RRoE)!UMBs}7p|wARk)R@?2H z^~uy*WA~M|u2puUJ#%cDn!P+2t2eFMxi|W7bni=cwKG=L)j7-ShmSkgo;L2(>gu*J zK1XJ@?A61^Z_U0_cO{cfwR`Q@4w#4vj_4l4Bj;ikU_rEG$d%1u0mVON6 z+N~GaSY54Kvw7DsV6Go*`|FHsPn{cq*AIZxR#~m8W38+Yv0|&g+vcd-{>M#UiaRf- zt(*N`ZyERgec8&b@hW>8i{DGO@@(hd@ZQb6Vq7b{&fb)1AC=$< zc}qV`>T@TJn-#Wc-OcBAD>^Ucf~=y}x4LGFU&mX6rGGDBdPixxYF9T+3!@)VItKeC z)Y1CL#`%SLs@IiYS^gbct!qEG&s&NM8xT#y-Fu&9kTS;nIl13dU9HxsBL6`y@_Be; z1s>iT`VIe`Esvt_w7+}OitER9*y(;NxiIzEh;#1Y!)HhhfiJZE@lN>csWID^rH1MF zjXoWpyhmNQTYUPH;J!{zUz$y8{8LUj(^$Xcd-2ujIL3K&-tZ@gt3Q=f|MU+?e+zr@ OFZ&;%66p!MBme-?Y=-*) literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/village/decoration/pond_01.nbt b/src/main/resources/data/betterend/structures/village/decoration/pond_01.nbt new file mode 100644 index 0000000000000000000000000000000000000000..89f1e4acab530fa8a68a5094789d03ff02fa2fe7 GIT binary patch literal 1918 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/village/decoration/respawn_02.nbt b/src/main/resources/data/betterend/structures/village/decoration/respawn_02.nbt new file mode 100644 index 0000000000000000000000000000000000000000..23f8ae1a40ed61009bab299a1b7039a9c9544099 GIT binary patch literal 2576 zcmZux3sh3s8t%@@%(0XnsV`+7vXegFQU zz-&5kTf08=ND;p_$^Fm{UxPLa*F{eaxpv1T<1wB~)s1Jyl3$1IOAWeo*x#ItmtbMnySA}y`afE=|J$8QYs1?`%!#+f$XHXp#f!g60g8mP^Xq5 z%Zwvx2xMdkrk7K7Yhj5}CygkAqj#i*wm>B|v8{x93 zqWXHwIC4Oqk1ls2RMBqJ$Y*HAAZgT|l?Af8g{HaIWc3Yux-8dCz0*dw(95IFcW;c$ z0;4;^NiN*lqmT4>&wH?pHkP=RgVr46QHxs%PX+hQELIl04Eu>%+=uoG?bPQv;5$X5 zKX18r3NJ|Ai6PTu8|<7VzMQ*JD|1)1wqHoiI9J&C50s?LE0G$`w&mj`?Y+lzD=^PH zE=TLu+R^cKH@wKh=q9z1vA41}%Y-%%MlsEGnFHur@UqTwQROKYORDP^*Zz9~OeR>o z=?8&f`%En`tyPmxOeAV!4aXf_o>1S`o}6C_P`g{$jFLRPr}6%N(?S-w9PQ9mN?^tl_w-ONQ_gON4 zJq2=>y0UFhjXpDfCs8&a3$*o_DM2n%wlsBwC?#X34LJtSOGWsq+3BO``H6fo3b2bA zibTO-bFc(1mH;g@p8_a?`XSeeyV%t`fI)Bse=P-fXCJ(D7?yb^<{8pU9_>mlMz@sr z|2GCeP0Yh&f(SgdmIbnM>VKSd1G{E$kN7tjvg-r*-Vh!XVwEV-V`WGsYd2rM=ZKJ~!Y>~7VBg_IRNEak5 z#UhB+K=q9duAoNz@JOY}r)Mr^5fnZW4yWq-rSoX&TmM|Q&F0H>Rr7VhIOegj?ks@R zzCn2W;V}TkqVQ3q&_BIT$QU+2?j0Bl$iwRMAOLS1-*JO#DDlY{f~sO&bH}1?kuXPfKC) zduwF!JNAy{Z5%R;CG7^*XUAb4iuPd;XF10WP9h7 zshF~r6p|>v-_q{lbdHjPDc~cUjgB@hquv6$IxlwhOu9gU2w#GBE4>~8u|P&o5i$TA z@-{&S&r1d=)DJcj!@DsEH~6iHjD_kRL(NZR&Zf{TfF77I+8yLht~u{Xh~q-;L5_gC z_VBl?gU;)qr{j8IG||a*%djab?P+rJVcY6otT( z@HqTXJWED{?~|K_9g8wZE`WXidA|N7^yyKk^k&f6x(I~X-Y9cu5dk#y3y2fhpJ1V! zu3qb5Z?}A|9L(}2at?%6E4A_Rd)=N=o{%v!X)oHsS=Jjzci)lNC38Mj?eJ@rgSKpN zvh=X?B)#&MvWPC{FuFnxB-5VLy~n$Pd;9|!i5|>=o*_xX_Hp&Y<4)hiKpOC_MA^!Em!=j=ny^-FvL{7pg^@g}}&N`{j zR!iT_T%$K}$E#u{kSO+@=A62Opj_$@!60o*YfBjCugBUkp`E1D8s6(Eup7= zW_>C4$nya?(=WY)CG0Yy^{Q@0w$XU=z8L*_!d!P;Nyo}4H)dUeYbm$+qbb(7Tg)Q zUOIBdLwx#umgS~^{)*BX2NvDKKcPwGh$3~_KTv-B-__EA1g2TERGzc-#4j2RqhWp1 z!|1D&!Qm#Q&e+^w>N^xPFs$aU)4#i@C*;>YQWxrL<2{6xmv`H>my7eMQ&jm<({=5d R*=@5Xek8%jdg_7&{|825^ELng literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/village/decoration/stable_01.nbt b/src/main/resources/data/betterend/structures/village/decoration/stable_01.nbt new file mode 100644 index 0000000000000000000000000000000000000000..e25b0a5c4e978a6c0fb47df2c7fea68a30d9660d GIT binary patch literal 4559 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/village/houses/small_house_07.nbt b/src/main/resources/data/betterend/structures/village/houses/small_house_07.nbt index 885b633f605430bd10283b28fb46ec481ceb3664..2926216bfea67de8df6ddea93f8ebe31a36c6008 100644 GIT binary patch literal 2563 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 M;PO=F7S5gX{{(?NN&o-= literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/village/streets/curve_02.nbt b/src/main/resources/data/betterend/structures/village/streets/curve_02.nbt new file mode 100644 index 0000000000000000000000000000000000000000..d37acd1854a3eccb05a88920749403b0dff22996 GIT binary patch literal 604 zcmV-i0;ByOiwFP!00000|J|28Z`&{shR>F4efT5ZnzU>8?w&grow^E?b#a)=q(D*$ z&_B?>U8)vq*@-WQq#bGl91J~od>={>sT?4K*vcOm0YEpd{FwW(${H zG8igP+%q!J$Ab}=k`y8 z_N|{em~@AV;ma&~N$BRZY2gn`MyL%2v+Jj3ce=Is_ryL7?o=!5N~-Oj6we$SP95V5 zbDZ{$!;NBcVUB6=BJU6L_=Y~4 zR#=oq`VTJ%%wWUtV~+arAue5nfeS+ep_z}!L3n#vzv0Vi$e!?&AvYVhE4*&qe!6z30 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/village/streets/street_03.nbt b/src/main/resources/data/betterend/structures/village/streets/street_03.nbt new file mode 100644 index 0000000000000000000000000000000000000000..45cf60e035589b71912705aefb999ef91d5b4563 GIT binary patch literal 764 zcmV{G{YU^}2rBhM`T)=z@7$5P<0OVimR4CMD`-A3 zj24An-d2hGlE>h$b%jCr@q8FoR#@3a^f57mNeE`pGJ_5?*uzk@28>!>%S1#ik5S9( zskNKu(VxK#h+4={Yk^F}U??wSs2L)YGMF*p9`wv-HxDw@e2}5$gABFq$WZe^hH^({ z%wQ%&Kf|8+>|?0^4l*8tq0S#4W7Il3pceH%oip;x56Cn5gGsal;Tdp`-QYt8d>I-3vI2w%PMQ6bP>T?>jFM)f4^5QbR|D; zfGn3wZG=_2tRhISR4IyVQ}_H%m2zpsmA!Oqy|lHF*}YbI1fI%aw*C1=tt#;l!N>}; zk``vW-R!w%=$`-HkvZbEFF9gI+z*2{;5eonLs6(zDRWf3*d}dTm!&nLTuPKYe=2#c z>q`DRv5y_GS{1n}SC3uvyk}^h|GWFY|D5A&*Adk&_O0K4S+q^+JwovzLa%Jmg4VJ7 zfEygCWA|b>JTk}e8*n^*1Lx|zb?n{%j$ZR7I`2I(V+hxxXd;^@?$Gu7wGsKSt>Y59 z-gGImg;C4f3Xths_}#HV^18BaNXa*&*U~g^*PWj>$_@GVg&x9sojphgVU{OGba)e+ u)$6|uk4kOq^$X%FUB4tgl;XMeeMr9uE51upH4!lR3BLe9ln{2u7ytl=wQ!^W literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/village/streets/street_04.nbt b/src/main/resources/data/betterend/structures/village/streets/street_04.nbt new file mode 100644 index 0000000000000000000000000000000000000000..2ba3546e2d1c9dad74a770c9f853d4560912c558 GIT binary patch literal 585 zcmV-P0=E4hiwFP!00000|K*p@Z<{a_$6o>oKa#XbGimL1-F>HBdfvI(X;);zD|JU~ zWSdsnKd^s$W+@G$hP?T=3pc%{@$(c|I4L>p%Cp~9sZ4QNJ3XvPDYv4b<}(NH+vfW~up^=XE@ zJcn1e=SJfXaC}0~K7lhK^gJPWO&y$Wu7EIyfrHc4gal4V;6wyY3{CjMnjy}Nz?mJv z8Ok*$c+Cl3^CP^5?&k%8vmkIz96k4GhP+N3UR}*8VSY{tUP}UJN#LvqYq}zMtq5Lc z1g|rK*P6gtJ2^3UA~hjQZY386LM4lWr3HrI3${ggo1!tOP-K^>G)8U{Z4{!d@JlHR z_^`iz$8BkjA9sQz!;MtTa4B>MvuiF`k?efWw_M;xv1@Z_wbjN{3X?m@vk=BSgXRA6 zEzdQ(4`FJU%F)2G+fC1VxIGW!ZpMHWJQtWX5nIsTvt9IM`zwKVXvZc$>ICu*1-j@$ z6Z^+QF|olW+4<9CH?q?B=YqX&tyIN}jEnrS3&#dB>O3g^E6W%=)^YO6GS2>kbzD7X z9slJQ%=#fvdsmoRO;EC;uB>m|!1jAp2YI*mu|V6K6quxn+m9G%G_4K8j-4c{w6T*E ze^IhTReu55d{S{c$-g!T2&yus25Vbq&`4)sC^G+ XpP6A_QR%t@7C+!8VT&EIYYqSa2c;2# literal 0 HcmV?d00001 diff --git a/src/main/resources/data/betterend/structures/village/streets/t_crossing_01.nbt b/src/main/resources/data/betterend/structures/village/streets/t_crossing_01.nbt index e93116cb1401f22cea831d9fa4ccc4f7383b04d0..167655ccce2454862a75f80c44fc96eea275b6fa 100644 GIT binary patch literal 646 zcmV;10(t!(iwFP!00000|J|2MkJB&|g>Un8(-yj82Da?k&kl(-V#PLc8c)YVYDcy+ zBk>3L+c?u)8v3}kW1ci$(ZLV@R#zP7D>tnE8mAoM09NGZ~nKxEC^%9%QlrCPdFGf{Bi3 zKE+V|i30RQ0eZ04G2tBlLat&0K)>9SpY+2 zkped8JVRxH43z~kaR5VQfee)eGE@(dnFcTg@%$h|Wr0jc7Sy`P0`fwJ$_p8)&&W`F zCNf39JXC*>q56YNNPk`vOdilfWGL^*%mWxoGcwfvj11+A4GeXDA+rczC_TvhuBU)l zRgOV=ucdOpjBXlUHG)B+_(s5+N;oHsQ1wlvozt7rIwORyNLsBMc)z>;AbsgteAohI zEmqoaC$+K+X17xDrrh55Y9p0c8Gh?-Jlm~YXGHm+Wz8UxH7s|R@8#O^M+TYWW-S~n z_tl&@$H)6abk^g+tpBDt3~;m&eK8B2LbET<&{BYuBgp`zxVsr#@k5ekq1hTxKIf>4iOo+2C=! zRc06FkqsWlM^FAgKbY)DXt`(dmN$K6|H;d|-p_l-njh9_CCa+9{%{z8w>u#oD7Qpq zr2lsIO)9<^-3rrxS9^cjNZ;hA(*W|WEg!{bq60@~%LRXad4KD&YoA%pls4|}1@%^U gFR9Oa>vVYxvrpXdufo{A0v12uC*g-zMgS2203H1^=l}o! literal 463 zcmV;=0Wkg_iwFP!00000|J9W}Z`&{shR^z>9R$dhwpqJ(&)m7_)K#FYi_BE!3FIjT z@&od_OVwtq*fLAB=nw%M1U~QG`<_0y0$4(3)ib65Fs|aT#1aH*R;nPb+)RffD~JPXgudIZ$>8H2ro9$CSP7M&)=kmCo1<#O&o1xL%XUq(%Pz*ym6CUeK*vj84pP}1TxAU znZG|nD2Kj6IjM9OJ1pO!`+ z(?8I^T{-cB8=PeW?F^-v@gd`9-`!VQNwzb_QWjeILj;Vm<~s4$*kA8bmI&pflfts* zm$GP9>G`$I{GW@I1xsxq2!3(EM%HmB+K4_TAuv;f8MI79V6b|C!Ri5KkHG8`mEi<`fugPJzh@%$QIQHt)b-^9~F)@4#R^4-94A z4++c>!rZSz0)zDrFhgXVfe8pYSdRfSA~0Bw0fY4zFxb8UOiExf0)zE4Fk=FP^)oP7 zKLdmHDlk~D0)zD`FqB?BCNL)m6Sm9%=~ZB`{SX+epMePpxv)M22J1s$QbI1Q4}r-E zI#?e9gU!XLr{--8R&zwqiFVMz)?iG~i3vJMkIv>eCj_08;5{YeN(s3#LawYQ*Cvw_ zbaH~un4q(_1B2z-Zy9V2?h|rN2s#sj&Xk}tCFmTq47UFq5ON(7bdFjEJC~0LI>!VZ z*nhg`#n5+Wpk^*%qbn_yV~NpK#b=dBSg81oVAGj!P8gxe^O<%|-}oC#tt zF$?k8IwOQDN-@`lJE@gTSbiZDuZnfT(;KP8-0%x`?%8_oY9oqUEz5)rWyz)wx3A>F z^1FmZj+=#WkIUHda?owq;H{X8dS*9#Yv#I-Rih`(z28(V))ro;N7#0{kLb~+$Cy`g zp+pH5KXycGS(Q>P3Zb0gYA(R$>0_Ihy0+raS;MO6`G7Il*r?(+>oWN-Tuyg!*;xj^ zug0@&tMRWa!L@YHo6zcz=om`=WkX?WsQWsRK4s`^Q}lIr;iUDL?&9$^Pug*7sC$xU zo{5*dY9gC=h1}QswK4MHA&(dIwP_`anUV8r%Yf;egZ^40Wo_L(&>3xe$xD4#EDX1{ zSaNsiQ)l0dUJBEE==Ou4jr23IIviP2FAJrOr$FkFZ!|vk@q%|M*)6EkB0sF%;Jel>D0h+kQMetg`FJRTmf{0n#dyD+wiV0%B=FFUN9?-3aQ0BDMj>i_@% literal 751 zcmVYiUU2{;>x7f5h;2;5U?v1JSTPZUq3S_~st1_^2Gg&3u!DI+ z=nT<3p@YnTp)+JKA%ht)>Y?TW8EP(&$r;R;Q4cj=$Q&}5BL+kDDl(jTKV~o|1oNoA>lB%k!DI|(%wVVhsyC3y89G$|AVbZ?XiLqz7^>!op%XE5;%6|_ z9-eH`*&M@!p_4LnQie{(7@urQu1zLq=;REYF+&H>68*hpxPv(&7~B&E3}(b&at3qE zU`_}I*Ul-yM2vc{H_}H;20=Y_35>3_svRUoSCyDnGJ&ubw-P2(>6|pOF3+dhIeqIN zG+I~idHvu{`Ix!Qo+3lYy!hJK>KN5^K&BdZp^IDeZ?Nd** zRaL3#dEr0YjHqW4ZJs@~d8Jz`|DH9fiY*^`U61x(?9tx3O#Ta(ljpeXEraD^Lu(&) zt;T<{1eelV-a?BFv}Y)O&4$92q5g3*dCi8#D?|Nvce-~A3tb*Qa+yNhh^iCmPNkWz z{A=g#<2t3+_GRi?7E_~UHx`h2zs~LNB~rH5JpjGp?3F0>eK9w}+M*He$`5b$&FDs& z?(aZ99@;2h_~P{lN!t{)Hl9MMCqqES$39+)UM0^9@6ub{zC8WCw618Im!@A>|AY8N h?JtjyyP>1Q1IRCg6W^t=T?8Ebg5Nqbyx;g0007}1Yr6md