From a2b62496714ecd5bff6a9256397d20956ecfb264 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Tue, 13 Oct 2020 14:22:12 +0300 Subject: [PATCH 1/3] Flavolite textures, leaves --- .../blocks/BlockMossyPythadendronSapling.java | 16 ++++++++++++++++ .../ru/betterend/blocks/basis/BlockLeaves.java | 12 ++++++++++++ .../ru/betterend/registry/BlockRegistry.java | 5 +++++ .../blockstates/pythadendron_leaves.json | 5 +++++ .../models/block/pythadendron_leaves.json | 6 ++++++ .../models/item/pythadendron_leaves.json | 3 +++ .../textures/block/flavolite_bricks.png | Bin 0 -> 2342 bytes .../textures/block/flavolite_pillar_side.png | Bin 0 -> 2128 bytes .../textures/block/flavolite_pillar_top.png | Bin 0 -> 2345 bytes .../textures/block/flavolite_small_tiles.png | Bin 0 -> 2128 bytes .../betterend/textures/block/flavolite_tile.png | Bin 0 -> 2112 bytes 11 files changed, 47 insertions(+) create mode 100644 src/main/java/ru/betterend/blocks/BlockMossyPythadendronSapling.java create mode 100644 src/main/java/ru/betterend/blocks/basis/BlockLeaves.java create mode 100644 src/main/resources/assets/betterend/blockstates/pythadendron_leaves.json create mode 100644 src/main/resources/assets/betterend/models/block/pythadendron_leaves.json create mode 100644 src/main/resources/assets/betterend/models/item/pythadendron_leaves.json create mode 100644 src/main/resources/assets/betterend/textures/block/flavolite_bricks.png create mode 100644 src/main/resources/assets/betterend/textures/block/flavolite_pillar_side.png create mode 100644 src/main/resources/assets/betterend/textures/block/flavolite_pillar_top.png create mode 100644 src/main/resources/assets/betterend/textures/block/flavolite_small_tiles.png create mode 100644 src/main/resources/assets/betterend/textures/block/flavolite_tile.png diff --git a/src/main/java/ru/betterend/blocks/BlockMossyPythadendronSapling.java b/src/main/java/ru/betterend/blocks/BlockMossyPythadendronSapling.java new file mode 100644 index 00000000..db868905 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockMossyPythadendronSapling.java @@ -0,0 +1,16 @@ +package ru.betterend.blocks; + +import net.minecraft.world.gen.feature.Feature; +import ru.betterend.blocks.basis.BlockFeatureSapling; +import ru.betterend.registry.FeatureRegistry; + +public class BlockMossyPythadendronSapling extends BlockFeatureSapling { + public BlockMossyPythadendronSapling() { + super(); + } + + @Override + protected Feature getFeature() { + return FeatureRegistry.PYTHADENDRON_TREE.getFeature(); + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockLeaves.java b/src/main/java/ru/betterend/blocks/basis/BlockLeaves.java new file mode 100644 index 00000000..06e4473f --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockLeaves.java @@ -0,0 +1,12 @@ +package ru.betterend.blocks.basis; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Blocks; +import net.minecraft.block.LeavesBlock; +import net.minecraft.block.MaterialColor; + +public class BlockLeaves extends LeavesBlock { + public BlockLeaves(MaterialColor color) { + super(FabricBlockSettings.copyOf(Blocks.OAK_LEAVES).materialColor(color)); + } +} diff --git a/src/main/java/ru/betterend/registry/BlockRegistry.java b/src/main/java/ru/betterend/registry/BlockRegistry.java index b2eec064..3b932f7e 100644 --- a/src/main/java/ru/betterend/registry/BlockRegistry.java +++ b/src/main/java/ru/betterend/registry/BlockRegistry.java @@ -20,6 +20,7 @@ import ru.betterend.blocks.BlockGlowingMoss; import ru.betterend.blocks.BlockMossyGlowshroomCap; import ru.betterend.blocks.BlockMossyGlowshroomHymenophore; import ru.betterend.blocks.BlockMossyGlowshroomSapling; +import ru.betterend.blocks.BlockMossyPythadendronSapling; import ru.betterend.blocks.BlockOre; import ru.betterend.blocks.BlockPath; import ru.betterend.blocks.BlockStone; @@ -30,6 +31,7 @@ import ru.betterend.blocks.EndStoneSmelter; import ru.betterend.blocks.EnderBlock; import ru.betterend.blocks.TerminiteBlock; import ru.betterend.blocks.basis.BlockGlowingFur; +import ru.betterend.blocks.basis.BlockLeaves; import ru.betterend.blocks.basis.BlockSlab; import ru.betterend.blocks.basis.BlockVine; import ru.betterend.blocks.complex.StoneMaterial; @@ -59,6 +61,9 @@ public class BlockRegistry { public static final Block MOSSY_GLOWSHROOM_HYMENOPHORE = registerBlock("mossy_glowshroom_hymenophore", new BlockMossyGlowshroomHymenophore()); public static final Block MOSSY_GLOWSHROOM_FUR = registerBlock("mossy_glowshroom_fur", new BlockGlowingFur(MOSSY_GLOWSHROOM_SAPLING, 16)); public static final WoodenMaterial MOSSY_GLOWSHROOM = new WoodenMaterial("mossy_glowshroom", MaterialColor.GRAY, MaterialColor.WOOD); + + public static final Block PYTHADENDRON_SAPLING = registerBlock("pythadendron_sapling", new BlockMossyPythadendronSapling()); + public static final Block PYTHADENDRON_LEAVES = registerBlock("pythadendron_leaves", new BlockLeaves(MaterialColor.MAGENTA)); public static final WoodenMaterial PYTHADENDRON = new WoodenMaterial("pythadendron", MaterialColor.MAGENTA, MaterialColor.PURPLE); // Small Plants // diff --git a/src/main/resources/assets/betterend/blockstates/pythadendron_leaves.json b/src/main/resources/assets/betterend/blockstates/pythadendron_leaves.json new file mode 100644 index 00000000..43e97299 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/pythadendron_leaves.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "betterend:block/pythadendron_leaves" }, + } +} diff --git a/src/main/resources/assets/betterend/models/block/pythadendron_leaves.json b/src/main/resources/assets/betterend/models/block/pythadendron_leaves.json new file mode 100644 index 00000000..39d3bc88 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/pythadendron_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "betterend:block/pythadendron_leaves" + } +} diff --git a/src/main/resources/assets/betterend/models/item/pythadendron_leaves.json b/src/main/resources/assets/betterend/models/item/pythadendron_leaves.json new file mode 100644 index 00000000..ae059c45 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/pythadendron_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "betterend:block/pythadendron_leaves" +} diff --git a/src/main/resources/assets/betterend/textures/block/flavolite_bricks.png b/src/main/resources/assets/betterend/textures/block/flavolite_bricks.png new file mode 100644 index 0000000000000000000000000000000000000000..5c1603b68392be7d26875d3fb743a276b626d776 GIT binary patch literal 2342 zcmb_e32@X@7+w)nDAh6+aAeRBWGvEbl1(rv!^@#l`#}0g&18ys(Kwzm&98aMWO`LxrPa%>Nf*P^+0pTA3$i6DXD)b0K{UbV;)!}D-Qhf);b)MB?q2sby2QBD)h?f zq8B^xWFsJ!=gPuT z)gZ*IW{wbP)`Ho1GtE)Fg-ygP6m26Z8%Z++MGF)sFgzCd;3!&9DiqvlgCeoel>_(c zdO#q_va&LB8Dmz1MI_DhJV{wdi-kZ4LK~~-AVery&lZL>sEI*2pv$U)8H~WAmg){1 zDQ!-{ABfT_TBJ;Rv2o%)} zb*YkEIQ9W3%?dPvQujfTYb2n9M}j3$C{%-ffO3}opa_xyr3lBOl@wA{pBhAgkvb-< z!sQa2ilzfagw8Yvj?y;EvLsM|@j%XMAvhbb5xkwX5FRUF2^R7U4OmVBtgU5!nktqW z%{AsX`&?2*#PLs5D`f>Xh7}2pV_AYn{wC~&5=%f2pcx=?tZ22iuw@2i^r`{hy{v{R z2{Bpfj^)e8I$wjDkkK-@$Vfr;N<`L?7 zi`7bTB4L+oJOLqVCwP&e2@hZxt3^Z&0G^iYA5d@jkrk|biyxm*eWW;|7bry#t)L|S ziRwMuI!tk?u)>+if@GZ1>8^h?Xfi9x^4pdO7f@oKn zK*Vh~ncDPmrX}YjG+5nxg57$=or>MF+ugMN^r<;@4Y{YLt2_4%UuM6Wyumj#f8Dk= zG1Vj9`uXX;+x8wfeu!u{3dR}(Ui;|zF4?! z5;ey?@kcGg-(zb1xVEn^9yROx%9(HW*+lm4v^%ee3=OMu9@LfvKhdt%Fa=9XYggSo zar%!9)t(FGE7liGOuX~%XSWMhD~<89xgE8;>eSDtW_6#tW>M346R6)DI@T{SM(KK@ zfnQSd?fI_!Hb5hFWZ`t$V2Zfw)W7p}EoURh?I^{jd}qnE=8F~<|Y5udqTpenv#W^L_dVe5wtL#`fK>FvJg{72Pf*O)Wcul$uU zuk)67ZhMnQT&@4~M912Ex!ZnqZQ}~-w4Igb<{kbnFg?31*mC#Ar7I1NsyiF6+&W;c ni^+ffvMF!!$|1W-lJ2%!Tvc*rq5Fnv{F8AG%t)(EDX91xF;+nI literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/flavolite_pillar_side.png b/src/main/resources/assets/betterend/textures/block/flavolite_pillar_side.png new file mode 100644 index 0000000000000000000000000000000000000000..95410b2b94636bca5f82a2002327def7b9b81e6b GIT binary patch literal 2128 zcmbVNeM}Q)9B#`%z+qI7!RE(#Ooiz6zDhq%Dv=gO2}Q(C&|&8F?n=+LceQuWf`6D9 z%ycS|%|OOjoZB25PBN!51$8<`#jI@ z2K;VpbnC$>!C$yYQmIBKD~DRu(we4H#s0)Q zD&z`#F~x{JEzOEfP8;(10a~TX$qo5w#>2^wldIwdGd$S+Ee!Fj87|MZV|KrVbMu9D z0d7HEiG!*0FeVnxode~BC_v!jWEu+jyn;l9%y5{O0@uo86o$eO*<*(1DuPgjy%e&D z0S?O6>JbLl5s<;8#r2qp(9MDf3^$;d0mVrK!zoNpktQhefq`0pbx~#3f`}HlGsA9K z_ERVt3j%md!A5 zIvj$}AEgzfNSZ*x&=BoMaV@5V6b7gK}QZ#|g3ouy_>fcZ;$pxy7eY zM_)fA08(qWM>U@4#pjDkNOFD+2qTh^C!!@st)D~7I7zGyFkF5Ou$iGm4QHig&I}V6fgw2fk`4@`vh@^B&csLx!-k=D zk>y>rk3n%Ag&QeS_Yf3x4NJ@Pe}Y+ta)|*S4PxefbQOpCg(?_|W|FdqUNHcKfjctn z!fvN*f+W)d!`ZB67=*3md6psxPS4PU6UioY7(!w?5}|S0i5NH&V>E$VQ#L!Y-YPQH zN^zC-!+p+*4B+@z)yc3JVIp0KONZeI?bMkNqlq;k2A#oZa_TsPi*$~#%?t2gtI^&E zSru0-U}Oy##&HCRkQ~7vtV`ix^aO$%oY{Jk1^a~7D-9j)5vq`vK=o=PTVw&ZJaXmb zp>SJJG^4b;8D^9^b0D7K$NUrW@m$K0^+7iWNS{&sVHrtu$w4~6&8-5td!GJ6pXOhp zYo6`?`Kmc=>oNC__T&F_A4v}5riCgFOi&b7;z5;JGh7<<(W-^tJusI>;9%G(m(eK; zZlZIV699DpOyLA_-v*URGtFk5>&X0ZTG{sv$#}}H&CQ+NC)cHoAu|fxOM5pDrMGSz zyCz0D>Q}E#-ZtGfV}Gbk(|BfJ&yt(%*USgb9yopOx1P3dg6Nxn-nn$_R?p2-J1_oq zYv^8g#|om-e81~nNRqnu?m4jX{^i31lVS(g8m~C&4|$f9_Z`-u{av4?>^@P%7ff$< zZa=kn+)Kn~tc0vBonHag(6(N?RekMNj2?X z`*P#6@|W+$U~1x+-in&@Tk2liBD56Eyzczt;KG^(Wpe*D3*2yRD^}9kF?CXN>j(R# z)jO_UNr_48JBL;Tgh|2N^vdyv#-3i;WSe!Yw_;r0)%HbAi^}UJP8prDZ1sejmNiB3 z%evKR4o^!*`}$2qw)33>zZ>)FHxX@LZg@SuFsquNYLH_uknw zzP%^s?NMc4wYuD@{O-r1O};>50)qeZQ=KO|T6RNcsmJz|V8 f985bxiVZ8(rGt#HbHy#6@}F-b@qPBEA2Jz^+UeLPPGskWT6cQBBSdKUx9gn>dGA7xWT}Z%sPm5Z{ z+g8Qeq9{}AG2fljyS}j<$7LRdk9Y@qbYumRWq*~EBPBYo;+uiSd|M&m@ zx9??f=A`j`qhg~p8cpByG)p!(N2^EA2=KdnMWG&?dU@0GWsRnHKlSLQS-&Ahqj|N` zY0FdctP>eta%)*Z;zVu0?FDF!CLt-{W%(JR0&$|l=`q2#4%WetQ!v4~IxA-Nn#DqA zTB%RWDV=2FOK0%304F6v2>}KWxJ8A90&bT_W&$QS$jgASdK-nIAVisAf|J#NP@Xjt zGD|)Y(rNVwk5dF>ptZOjqX}v(L}0i9#SAD;A{fqKdWNK-&<6(5e1e_Hwu}qK0#_!u zP*J=Liu(P2t)J9NJ_m}^G>u{eN)QM@AaaREVFQRq9?{8Q5oO-z^eRrt1F4KGClx6s z7%1&X!R-yxdgM@qT)brlu4G3VaynE%Ld7!37=_U7}m`C^Ep}VXU`MQY5)h zdIoj)@e=_+X|2|9j4rjf-Qf_jl3EPX2o9Xkiu61QQs6AvpMwHVk8QdIl%o#z+Rk zI-pibaN0|rg5nfI;EWD`0t#FsunPO1V1Z}slF!Y8oSkmgA);Q71BSwtWXzIF@`1oW z9T`+%wKC}*Sz$fAm~Jt_AZ@MFDKMg7Bm|bg5uC=1h`>@JLhC6WVFilT>p7g)5r)qB z7KtxXo2$<6@VOxIfa9O29Iw;ScAP-;ddh&XJVgQ`BaN_jLL^zv2|9l>iuN18JaH(vEPPK|n}~G9oN)pb?{<Wfc9J6vh)ySR2+dIhsGyNU1e`SR97_;JobJs2DfPgQIL(l{PCve+`cQHB zLe}FD!3v7PFQ3ngxwAuPSNS~ge*Lfcpz7M$VKwyME(|_k{(8sH+l z?}#2yDj(QYtiO3yYBUkrbW5@=?$oI47T*~xdd>EaN3|^O7neRECvATJKmVGKUiz>{ zK$GF@XWxHZv*k$ouU~D?yLxU#!#mAulzTUS+TyvRKP8_mX{oWEIUF_owOPBStv(&p5bzbggi^we8+R z-39sL{j*|C!|s7~BVSp)ZsdZj>Jg_8e6u5d&3C+Y%H#p#nP!xaioe@>EFyI?cB=QQ zDI=41)g06BNP?;nAz-mz5cI zm-VTyw8h?EE)$=%XDoB<%6va^V@71tX7?C;&UEvjEh%TIz{OQQ!{kv(u$H#BFZagmK^=^kEhV_9XX_*aLbg|XOO?{)5ahA9%#{h vdk1O^BxsjJXxrxXUGT-{gL`khesu0_bJp;JfnV=e|IDPPPO|JwnZDp}e6Bad literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/flavolite_small_tiles.png b/src/main/resources/assets/betterend/textures/block/flavolite_small_tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f2ae755eab6794d235dfc37fc9e4eae698a1fc GIT binary patch literal 2128 zcmbVN2~ZPP7!HTlvqE(gkG5-6ik8jpCLv^3qCf(MYAgmEDdM!7-IrrvvoX6sf=3-x zs8<#0Q5BDB73(-uVX7iph7lbU?KN8KF%@kQ4=7egJ1W|~4I%Ze(@Zw|cK3VV_x;EI zS(G|?Lf>9PddXz6z9~k78J@$Wqen3OT~T7!z*A3`@dH67>)l^Ef@JH;B4n~|KRVJg z#0=9Uis3m0&GHtY@Nh1OmdWDAdt5Y=4MfBOY!0VR-dI#ZC%kgR`klG~(fMoC4+1$$h*OTuZkxIpTwe**bZGB#2~~QV~7x z21txTgEE9#iNul$LW7e^bu^;HiC7Ge#RwIO6BMqYR3zg6$f25>wNhq7vR?~c>Ew1% zbWs?VpP#SDS1EY64I@aB#Be31RH6`p3SOs3dr+q^qKm-*1jg-fi4NY0NQ|_F&lPoY z=(IBg&K00_3jQ>~gkc`qg%Ju|3dsj#nE=j}>(23svkV4u00*3+0I@^>>$3AAFWC7P zPzN4AAplcrG6giA>xJV25`vhN2gC3u;O|K3^F9*dAb@MWB-_aV3rt@T*G4aVkbb5vq4_6@}xS zP!rEOtlnp!gql*~u*Oe7Vb`#I_)9|F+{f`FJH||NeYCfTS-eey6&?Tg80Z4H9fHcdyc4 z*o*uNbl%I|zgjgrZ9U`u>3;m5?)}MO?6lJc-~`3wQaqS6YdTAVJzX{5v&ZIA7aR^d zX&IQZ@FFm$ffG`@;S?UQXG)|@7Cb7&kdPi#GRoZOULPM8ns>J@*xb7Rjkinnf83i_ zcDwx;x@vvL;x_Zn)?Z4wk#&`=Ax1{nyxLk`Q*JZYJ}d!ewVxiw7li$!K2rX5`|;%; zmX6%>b8vWKeFWKZ@^D{o`}&ia#tnqhv|(ib@Y?Eee;?4!IXI*FNa8gx=wSppJ*HsEJA|k6Rwza<#0{8dA|tl`U&KfG^EjCA(DIcwy{> ztg2&QU1#63?h9RWh`Y2gd};TR6F1eS&1<}CCoz5Anh{o2=WY6OWnoZu-$7G)q-G94 zWF2Eq4Nd-ioh|IfEn{=9%E9N(G;fI-b1JlbL3-jqd!K>*ir36IbTVRo*2T8ZRwk^z z{OIESyTP+>YU+2N=Muh;&{ytw?UAc??vmV^>X3~^<(uYQ3@Id{E=O;x=e!*~7j13g zl%C&)<^5HqzVgHLi95}Ok=xJTzjwdm%)a(bu^(egw#XVQ=9Y{(Q$23_!^j<-l;RjS@v>e`Ad6F{bFkH;CG7Rk2fE?5nP~XIapJ{WTC&# zi64;IP?_l>vEIY`pD5X(JW9=K8Wt@CZPpI4oc;4b+G-P5RZKUSA9!ZXtS*cVUED2s sCBLtv>CWl3MEB76-D5K*T)5Y7SGR>J^Os$lCjIB9BuzF{Bz{!*4=(ce6#xJL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/flavolite_tile.png b/src/main/resources/assets/betterend/textures/block/flavolite_tile.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4e05a74383ba1a9617f69c41ac650e05ef442b GIT binary patch literal 2112 zcmbVN3rrJt9Iiz+-(gb|B5KY$ro>(EuGiNcR)^H_&@u*9(9P(*N-OPMxjSru37Jt) zlmL#n!I*Os6lY}Frp666qc~?o=X{JgA+l(+aiYYD8KB1f4@#%=F|(%E``_L7|Gw|{ zxL-G2;~@|2EP@RP9r#t^d>HmRI1VAm1CHyrZ!Tg3P0_# zXUdtjg(M?*v=l4QoYwF00<=msd#>M0G1;69(Oi~`w`jVX4r(A5YtdvFY^co}&pBO* z`68E|pJHe7vl)Wb%$)ww97Zt`HIg_11wR^~CbAAP&H6@A3tU+= zPFePn2;%ekv_4!bh*=0m5Cnqi5SuE zxWflr*lc7HFUb_oa7k8+286A3xmZ$9(+-@*O|Zeh(J(>lbudkvX_&=u6GKxvof#vB z_FDxeS1GQtf3VM4fdL%kTxD>Ip_^=z$&~6I~LhUS9AO zN#}BcE4K?8XbX~Jly+68O0w|mjs9GqeLz)3*_#3 z`U`oQe~DW4Z1>Ms%|Tm_x&L=R{!jP8XPcbzutQ_z362_&9$7)i>V*)Z4(N^ zZ57GaQa4fTryove?wP(jdP;1dbnV+cC&3cW5btT?r1*R(mQVd z^0PT!ZB@1RlL%eX$vd}t)=%m?UtgTDC15*NSlFxHnwDSd*tG}SvCclrSzUYkbZ4DC zx%&5uvrbGNz2WBBz!#tGzAmmCGoh}%I}rF_hIP_{xCHC{cjpN0#TmWB_O_`jr?f5I YRaC5|O*449UHOksnxA5AoVQ}l-^}&;AOHXW literal 0 HcmV?d00001 From d8ed4fcea2e690aa840c2793181b5b373632ef39 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Tue, 13 Oct 2020 14:38:58 +0300 Subject: [PATCH 2/3] Fixes --- src/main/java/ru/betterend/blocks/basis/BlockLeaves.java | 4 ++++ src/main/java/ru/betterend/registry/BlockRegistry.java | 2 +- .../assets/betterend/blockstates/pythadendron_leaves.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/basis/BlockLeaves.java b/src/main/java/ru/betterend/blocks/basis/BlockLeaves.java index 06e4473f..ce5af3b4 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockLeaves.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockLeaves.java @@ -9,4 +9,8 @@ public class BlockLeaves extends LeavesBlock { public BlockLeaves(MaterialColor color) { super(FabricBlockSettings.copyOf(Blocks.OAK_LEAVES).materialColor(color)); } + + public BlockLeaves(MaterialColor color, int light) { + super(FabricBlockSettings.copyOf(Blocks.OAK_LEAVES).materialColor(color).lightLevel(light)); + } } diff --git a/src/main/java/ru/betterend/registry/BlockRegistry.java b/src/main/java/ru/betterend/registry/BlockRegistry.java index 3b932f7e..3f8a57ff 100644 --- a/src/main/java/ru/betterend/registry/BlockRegistry.java +++ b/src/main/java/ru/betterend/registry/BlockRegistry.java @@ -63,7 +63,7 @@ public class BlockRegistry { public static final WoodenMaterial MOSSY_GLOWSHROOM = new WoodenMaterial("mossy_glowshroom", MaterialColor.GRAY, MaterialColor.WOOD); public static final Block PYTHADENDRON_SAPLING = registerBlock("pythadendron_sapling", new BlockMossyPythadendronSapling()); - public static final Block PYTHADENDRON_LEAVES = registerBlock("pythadendron_leaves", new BlockLeaves(MaterialColor.MAGENTA)); + public static final Block PYTHADENDRON_LEAVES = registerBlock("pythadendron_leaves", new BlockLeaves(MaterialColor.MAGENTA, 8)); public static final WoodenMaterial PYTHADENDRON = new WoodenMaterial("pythadendron", MaterialColor.MAGENTA, MaterialColor.PURPLE); // Small Plants // diff --git a/src/main/resources/assets/betterend/blockstates/pythadendron_leaves.json b/src/main/resources/assets/betterend/blockstates/pythadendron_leaves.json index 43e97299..a7e0829a 100644 --- a/src/main/resources/assets/betterend/blockstates/pythadendron_leaves.json +++ b/src/main/resources/assets/betterend/blockstates/pythadendron_leaves.json @@ -1,5 +1,5 @@ { "variants": { - "": { "model": "betterend:block/pythadendron_leaves" }, + "": { "model": "betterend:block/pythadendron_leaves" } } } From 6f99cdf3a744c9b240df582aea24587aef380378 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Tue, 13 Oct 2020 15:13:49 +0300 Subject: [PATCH 3/3] Leaves --- .../ru/betterend/registry/BlockRegistry.java | 2 +- .../features/PythadendronTreeFeature.java | 41 +++++++++++++----- .../textures/block/pythadendron_log_side.png | Bin 0 -> 1639 bytes 3 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 src/main/resources/assets/betterend/textures/block/pythadendron_log_side.png diff --git a/src/main/java/ru/betterend/registry/BlockRegistry.java b/src/main/java/ru/betterend/registry/BlockRegistry.java index 3f8a57ff..3b932f7e 100644 --- a/src/main/java/ru/betterend/registry/BlockRegistry.java +++ b/src/main/java/ru/betterend/registry/BlockRegistry.java @@ -63,7 +63,7 @@ public class BlockRegistry { public static final WoodenMaterial MOSSY_GLOWSHROOM = new WoodenMaterial("mossy_glowshroom", MaterialColor.GRAY, MaterialColor.WOOD); public static final Block PYTHADENDRON_SAPLING = registerBlock("pythadendron_sapling", new BlockMossyPythadendronSapling()); - public static final Block PYTHADENDRON_LEAVES = registerBlock("pythadendron_leaves", new BlockLeaves(MaterialColor.MAGENTA, 8)); + public static final Block PYTHADENDRON_LEAVES = registerBlock("pythadendron_leaves", new BlockLeaves(MaterialColor.MAGENTA)); public static final WoodenMaterial PYTHADENDRON = new WoodenMaterial("pythadendron", MaterialColor.MAGENTA, MaterialColor.PURPLE); // Small Plants // diff --git a/src/main/java/ru/betterend/world/features/PythadendronTreeFeature.java b/src/main/java/ru/betterend/world/features/PythadendronTreeFeature.java index 3a824d56..78577afc 100644 --- a/src/main/java/ru/betterend/world/features/PythadendronTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/PythadendronTreeFeature.java @@ -13,13 +13,17 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.BlockRegistry; import ru.betterend.registry.BlockTagRegistry; import ru.betterend.util.MHelper; import ru.betterend.util.SplineHelper; import ru.betterend.util.sdf.SDF; +import ru.betterend.util.sdf.operator.SDFDisplacement; import ru.betterend.util.sdf.operator.SDFScale; +import ru.betterend.util.sdf.operator.SDFTranslate; import ru.betterend.util.sdf.operator.SDFUnion; +import ru.betterend.util.sdf.primitive.SDFSphere; public class PythadendronTreeFeature extends DefaultFeature { private static final Function REPLACE; @@ -28,12 +32,13 @@ public class PythadendronTreeFeature extends DefaultFeature { public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, DefaultFeatureConfig config) { if (world.getBlockState(pos.down()).getBlock() != BlockRegistry.CHORUS_NYLIUM) return false; - float size = MHelper.randRange(10, 20, random); + float size = MHelper.randRange(10, 13, random); List> splines = Lists.newArrayList(); List spline = SplineHelper.makeSpline(0, 0, 0, 0, size, 0, 4); SplineHelper.offsetParts(spline, random, 0.7F, 0, 0.7F); Vector3f last = spline.get(spline.size() - 1); - branch(splines, last.getX(), last.getY(), last.getZ(), size * 0.6F, MHelper.randRange(0, MHelper.PI2, random), random, MHelper.floor(Math.log(size) * 1.5F)); + List ends = Lists.newArrayList(); + branch(splines, ends, last.getX(), last.getY(), last.getZ(), size * 0.6F, MHelper.randRange(0, MHelper.PI2, random), random, MHelper.floor(Math.log(size) * 1.5F)); SDF function = SplineHelper.buildSDF(spline, 1.4F, 0.8F, (bpos) -> { return BlockRegistry.PYTHADENDRON.bark.getDefaultState(); @@ -41,21 +46,28 @@ public class PythadendronTreeFeature extends DefaultFeature { for (List sp: splines) { float width = 0.8F - (sp.get(0).getY() - size) / 40; - if (size > 0F) { - SDF funcSp = SplineHelper.buildSDF(sp, width, width, (bpos) -> { - return BlockRegistry.PYTHADENDRON.bark.getDefaultState(); - }); - function = new SDFUnion().setSourceA(function).setSourceB(funcSp); - } + SDF funcSp = SplineHelper.buildSDF(sp, width, width, (bpos) -> { + return BlockRegistry.PYTHADENDRON.bark.getDefaultState(); + }); + function = new SDFUnion().setSourceA(function).setSourceB(funcSp); } - function = new SDFScale().setScale(MHelper.randRange(1F, 2F, random)).setSource(function); + + OpenSimplexNoise noise = new OpenSimplexNoise(random.nextInt()); + for (Vector3f v: ends) { + SDF sphere = new SDFSphere().setRadius(MHelper.randRange(2.5F, 3.5F, random)).setBlock(BlockRegistry.PYTHADENDRON_LEAVES); + sphere = new SDFTranslate().setTranslate(v.getX(), v.getY(), v.getZ()).setSource(sphere); + sphere = new SDFDisplacement().setFunction((vec) -> { return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2); }).setSource(sphere); + function = new SDFUnion().setSourceA(function).setSourceB(sphere); + } + + function = new SDFScale().setScale(MHelper.randRange(1.6F, 2.0F, random)).setSource(function); function.setReplaceFunction(REPLACE); function.fillRecursive(world, pos); return true; } - private void branch(List> splines, float x, float y, float z, float size, float angle, Random random, int depth) { + private void branch(List> splines, List ends, float x, float y, float z, float size, float angle, Random random, int depth) { if (depth == 0) return; float dx = (float) Math.cos(angle) * size * 0.3F; @@ -78,8 +90,13 @@ public class PythadendronTreeFeature extends DefaultFeature { splines.add(spline); Vector3f pos2 = spline.get(spline.size() - 1); - branch(splines, pos1.getX(), pos1.getY(), pos1.getZ(), size * 0.8F, angle + (float) Math.PI * 0.5F, random, depth - 1); - branch(splines, pos2.getX(), pos2.getY(), pos2.getZ(), size * 0.8F, angle + (float) Math.PI * 0.5F, random, depth - 1); + if (depth == 1) { + ends.add(pos1); + ends.add(pos2); + } + + branch(splines, ends, pos1.getX(), pos1.getY(), pos1.getZ(), size * 0.8F, angle + (float) Math.PI * 0.5F, random, depth - 1); + branch(splines, ends, pos2.getX(), pos2.getY(), pos2.getZ(), size * 0.8F, angle + (float) Math.PI * 0.5F, random, depth - 1); } static { diff --git a/src/main/resources/assets/betterend/textures/block/pythadendron_log_side.png b/src/main/resources/assets/betterend/textures/block/pythadendron_log_side.png new file mode 100644 index 0000000000000000000000000000000000000000..cf0f76a958de5556962dc78e7d21e738274fef00 GIT binary patch literal 1639 zcmbVNZEO=|9KYcLWwJUH$()j0ZbR|qdT(9ZJ1JwdWv%hX+$t2J(d*sQ_E_(p z_x%2^&;N#cy1N=1S{g76Ym7z1y{K<;Ue_}8ePKA`L)}Uvy3@k28*g#mI_%I$GltbK zsquuJ5FZp|sCgs>CV{7*83>JG8#@YyB=-XwPlB|n2ZkLFqLeK<=qev0-}3`f$8K>Gxa$19CM(o7{K^oF-qWT9D*$k?_a zP*gsj_vASbG}9Er^E^ef6w8tbL0U!KmI|b9wN@Fzz>-bXuvMtz4x^NWIXg%oP0J=| zMvYdtDsDm!qY9EiF&^46sRUHy8qUa>*^+QYra%^GK({S~WolUDB~h%wuS%2{c`XiYOHn$(F7S z3>7t1{7*^(}USU5-^RXwVz2!21ur&6p!DuJX# z252u&@(SZ81AaEi`@M{u=v3t3zl~t7Je&<;z5M%C#V`!mzrQ zShzF3VOZ-u>^@GfdE`Wsof_P|7^T}>^=BaYarzYECXS^4t$B*1|{*H6g)(A353>XmH=$ zH~sX~{M3;M*l8{<4}mv)yONE^hTnPZr?qvNb-Y@ EPs!vZZ2$lO literal 0 HcmV?d00001