From d2e101fe6c2016cccc30c685a499dfc04d216ff7 Mon Sep 17 00:00:00 2001 From: Oleksandr Hanzha Date: Fri, 24 Jul 2026 21:05:38 +0300 Subject: [PATCH 1/6] Build setup: replace NeoGradle with Fabric Loom 1.17, MC 26.2, Gradle 9.5.1 Co-Authored-By: Claude Fable 5 --- build.gradle | 119 +++++------------------ gradle.properties | 17 ++-- gradle/wrapper/gradle-wrapper.jar | Bin 43583 -> 45633 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 12 +-- gradlew.bat | 3 +- settings.gradle | 7 +- 7 files changed, 44 insertions(+), 116 deletions(-) diff --git a/build.gradle b/build.gradle index a5c3e0e..f52d770 100644 --- a/build.gradle +++ b/build.gradle @@ -1,122 +1,53 @@ -import me.modmuss50.mpp.ReleaseType - plugins { id 'java-library' id 'maven-publish' - id 'net.neoforged.moddev' version '2.0.75' + id 'net.fabricmc.fabric-loom' version '1.17.17' id 'idea' - id "me.modmuss50.mod-publish-plugin" version "0.8.4" } version = mod_version group = mod_group_id -repositories { - mavenLocal() - maven { url = "https://cursemaven.com" } - maven { url = "https://harleyoconnor.com/maven" } -} - base { archivesName = mod_id } -java.toolchain.languageVersion = JavaLanguageVersion.of(21) - -neoForge { - version = project.neo_version +java.toolchain.languageVersion = JavaLanguageVersion.of(25) - parchment { - mappingsVersion = project.parchment_mappings_version - minecraftVersion = project.minecraft_version - } - runs { - client { - client() - systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id - } - - server { - server() - programArgument '--nogui' - systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id - } - - gameTestServer { - type = "gameTestServer" - systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id - } - - data { - data() - programArguments.addAll '--mod', project.mod_id, '--all', - '--output', file('src/generated/resources/').getAbsolutePath(), - '--existing', file('src/main/resources').getAbsolutePath(), - "--existing-mod", "dynamictrees", - "--existing-mod", "biomesoplenty" +repositories { + mavenLocal() + exclusiveContent { + forRepository { + maven { + name = 'Modrinth' + url = 'https://api.modrinth.com/maven' + } } - - // applies to all the run configs above - configureEach { - systemProperty 'forge.logging.markers', 'REGISTRIES' - - logLevel = org.slf4j.event.Level.DEBUG - } - } - mods { - "${mod_id}" { - sourceSet sourceSets.main + filter { + includeGroup 'maven.modrinth' } } + maven { url = 'https://raw.githubusercontent.com/Fuzss/modresources/main/maven/' } } -sourceSets.main.resources { srcDir 'src/generated/resources' } - dependencies { - //DynamicTrees - implementation "com.dtteam.dynamictrees:dynamictrees-neoforge-" + project.minecraft_version + ":" + project.dynamicTreesVersion - implementation "com.dtteam.dynamictreesplus:DynamicTreesPlus:" + project.dynamicTreesPlusVersion - //implementation "curse.maven:dynamictrees-252818:6111832" + minecraft "com.mojang:minecraft:${minecraft_version}" + implementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + implementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" - //DynmaicTrees Tools/Utilities - runtimeOnly "curse.maven:jade-324717:6011258" - runtimeOnly "curse.maven:jei-238222:5846880" - runtimeOnly "curse.maven:cc-tweaked-282001:5714512" - runtimeOnly "curse.maven:suggestion-provider-fix-469647:5598604" + // Dynamic Trees (from mavenLocal) + implementation "com.dtteam.dynamictrees:dynamictrees-fabric-26.2:${dynamicTreesVersion}" - //Biomes O Plenty - implementation "curse.maven:terrablender-940057:6054947" - implementation "curse.maven:biomes-o-plenty-220318:5855568" - implementation "curse.maven:glitchcore-955399:5660740" + // Biomes O' Plenty (compile-only compat) + compileOnly "maven.modrinth:biomes-o-plenty:${bopVersion}" + compileOnly "maven.modrinth:glitchcore:${glitchcoreVersion}" } -def changelogFile = file("build/changelog.txt") +processResources { + inputs.property 'mod_version', mod_version -publishMods { - file = jar.archiveFile - displayName = "${mod_name.replace(' ','')}-NeoForge-${minecraft_version} ${project.version}" - if (changelogFile.exists()) { - changelog.set(changelogFile.getText()) - } - type = ReleaseType.of(versionType.toUpperCase()) - modLoaders.add("neoforge") - - curseforge { - projectId = "289529" - projectSlug = "dtbop" // Required for discord webhook - accessToken = curseApiKey ?: System.getenv("CURSEFORGE_API_KEY") - minecraftVersions.add("1.21.1") - requires("dynamictrees") - requires("biomes-o-plenty") - optional("dynamictreesplus") - } - modrinth { - projectId = "8QHjGuhP" - accessToken = modrinthToken ?: System.getenv("MODRINTH_TOKEN") - minecraftVersions.add("1.21.1") - requires("vdjF5PL5") //dt - requires("HXF82T3G") //bop - optional("qaO9Dqpu") //dt+ + filesMatching('fabric.mod.json') { + expand 'mod_version': mod_version } } diff --git a/gradle.properties b/gradle.properties index c06200a..6567e41 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,19 +1,16 @@ mod_name=DynamicTreesBOP mod_id=dtbop -mod_version=3.4.0 +mod_version=3.5.0-fabric-alpha mod_group_id=therealeststu.dtbop mod_authors=mangoose, Max Hyper -minecraft_version=1.21.1 -parchment_mappings_version=2024.11.17 -neo_version=21.1.97 +minecraft_version=26.2 +fabric_loader_version=0.19.3 +fabric_version=0.155.2+26.2 -dynamicTreesVersion=1.5.0 -dynamicTreesPlusVersion=1.3.0-BETA04 - -versionType=stable -versionRecommended=true -updateCheckerPath=Add-ons/BOP.json +dynamicTreesVersion=1.8.0-BETA03 +bopVersion=26.2.0.0.26 +glitchcoreVersion=26.2.0.0.0 org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9530d66f5e68d973ea569d8e19de379189..f8e1ee3125fe0768e9a76ee977ac089eb657005e 100644 GIT binary patch delta 37538 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 }= z7CiCGo}H-Hru)yRac=@X`j3R1)3vI|tMt2H^0V1JR^vMNok4mq$B!X`r6Wl8@Ux>ZGWHlPfdf|Kdm-ufj`tep^`j&8zJj=bm?l&y{2 zz2#JM@w~Vmy`|R}<0CaG=Da*N-VxTVMHf$uT^Lzsq1rqk~ znr`R0R=Y-4H|%KYq7)TO5o%2ZDMkm-0}{0DwVO+v^)v}hE9^?vxsp2QS{4}6 zb#)H%+eeE=$8~~LHK%@CmrEQwMwK7U$d%ibalNyyFW~g4(``qdEBOGr_@_AAK%C75 zUQt|T%8hQ!En+=0(@ifk4`*FepU735ol zMe{E4XQU?H+oUS&Z@C#!2=j~*ZYahDDj^fAGhdze+Z!2T!I{I325>j^3x>4qy4{{W zzyv@c5#B|`@Ljz0OJND^nicsT-s)X&GmejRfUy#Bn}zBaiM%bUnd7{Ig3MIk7Wm6+ zg#D%_3&?27f{Yrs6M@chIfe}Y$rXo(K*R3Oc_mqpRd>n@<(l|}oNzMxv!Se#MQ<){~gToDn9cjlxTg z^9(3dvfPj(@W)%7J$O2IFctT9Kb?C!UYTkjm!m^WzRpO!|yGYir$V;eV?bkL48qErEe5sGOI)c-XCVMmKMmT3dQs1 zz6r{i|Cq6&W_L25fg7V7`+Nnr2iH2#WDRRxrt7(V1J`*cUim)p5i_Cap8S1NcoV#` z+2Zc^aypdrQ4VVAar1b+zNfjJS$^&$i#8e30=MxQK4r+Va@?R}4W3Xnch>x(wFGj zs>7j4$bZ3{i%>gcE?(u>{>(`2-z{Mk)n5@K8db~W=qZNyxsM`U^==8OkwrI6l)4#K zNer6rR-27jqPwRY+n|j{15g92cj&t2Q}bt2jvjhr$gVqMxhY6u z)71%*vqK01Hq?nqCIz1_zmJ|!zQ}XLkK1cH=7(?FmItU#ld`A`Xm96yefNm~=Y>b~ zp(TKi(Ra&^kmcBXLMWY!@%4?H!z-3u;V!`>#{M4&ulcr)Vx&6#wbCC*4fi62e}wK= zl}Lj9(5@GmgXU5hWD}l;i@&N@nk~||ZX5Xce+L|E6|B#-X*KAaAnr*yzM^M*ZqaH*`WQ2qIIt0ihtfsNJUSZ|+llUZP~s^kp-B;D!*&pABTS&ov0zr-RX~=K z{-YBty;I_|6G0aUAM*LyaI==~FTXHD5k~-tQ_puYZE`kp%KH9NRh5-9Hm}x>9>Ql< z`K}T^V4zDv3SGVnS(wpRP3c$~5?Lg2+5q}$j)5)#c~9I2`HlU;_WCGK$bw+b&9@r{ zM5fOV*f?C)fF{}$N-Idy+izxMvOxBtN05QZ(azEbYI3Xr+Q6nZx6{7fd{{yz&>`u@ zV0|E!E}k0)fz~f1sLy04o*w(sK@7eIox?&M-S}K|+JaFUs-?qbm&q~Kct?bLWAo;e zADnrk*$GkQ|D181^&fU>{}4#!fBSSq3E5a^39S{ZU^i78mstsHLBb3vR{M`1^B9Y0 zcH+ePG0`ovB=ZdWW}#yOkfD^O&SW^R)OEKRxsoT+KWLUcKc0KdMn7ymDFZZ(Q$L`j zPoJ)NPYSv}oMp7UcfmMf%0spX2hX1!6f!<5imy1~X62s#<`qf4D@Z-1k+qRtzzCAX zK(77-2lm#T56DKyE*Htq9AJt`N_BZQV%&b!NpuOl?<-UA&UQ9?1^K$84}B^nsmU5v zones)j#VbWY^N*C*AH6k@~qK64OKsM$BN9G8HHy<$1BicnPbC$&fCkhCmh(Jw zr`_A!Yj>Bt$qX5a(#?#89|iE|T&Z6S381_Zg3qbRr{D+i%fsEp^4`@LO@+tLTn{QhJ)NmN<@qdM&X5JIiLj0)eO%Q`5gmj|93=m9Cr= zyzV(qQtoAI9B=gdR?Y`%2(Ml4nMenDC0*q5(rxZ<@Rx#BX7LGm<%K>J?mFqez|PNr zi*bD`YBz5cmFI3tp=8fjw~b%nL}g0K{^W;gr_-qF%gCDSER}$2=ov9#IU(nHQ`}|? zcq%oT+a~!iXhXuLXs*~V;|yDMERON!ZL7w$={ZBm;`AHHFE?Lavh+}N1TFqaAP(OP+*nhb9_^b6w zbYhnI%E1qNK*m@uUKLVC{C<0ubcdow-7Q?+{&TQVXU0g74J4TH{zm!MWz4SXMS!5~ z0$Hqus3=b87S3j^;-96V?ueU$KZ?R958zLC^{7URZ;o~M;K$vkwGH(DYn%%HDa{R4 ze||~0V)b%p{dxu@cdXL;dPcmHXLC+3WZ$;X@|6f^{Fhm-W1$x#lPp>9)bZm)$HFv> zlb%iSw_@FhQq;fx(l!^o3V#E0B(&=Nn2cA~dJMMC0&ir2Xz7$KW?B6AMD*`Fqo<;a zoL&m?B+mHSZjpCMj)Z1Ga2olTM?jg&|6zkC3PtSqf3sWW|9lK7Nwj#8Z(t>P#no@< zzTYwBL{+4$o<3f{kw*>;k-@2ziSCQ3H%Z-f>MLeap1L*KNamLRjeYaa=FM~78ulku zceC~PIwCRWxa{&|=Z^tjTzot;*4sM#^Jj7TfhEpbh6@EvloPc@RDF-#&a@1fa9>;| zlAn!2kd-%1NCitp)nH#p00@@dwW7~7Q)aS=s}`j3Y{{YWu5>Fnd~-4b!1|FFWa${Q z+l6H|;}^I%XIroet!%84h|`WkNoCPt)*JGj!xb9I{GokjP6wveGz-lX7DZu0as$Om zs?FiT`gE$Ef(`^iG~yfJcn$MCn8r^U%zL_n67@GO&LZW2TAEsqLU0w+CNhJqZT3TL zkOJPvc9=k2eM(nbBt-){`Jy&VtxX;~IadtsAUOcBeRjj6FwZYp|K{>B5{+r?K_qw> zoA=}`H!BST-e2k8PE!?wi5oq=UiH7tjXC;2=YKYAt&waPKNVxRPJ!OT{9eRr0Hjl- zZ-eyy29~}ZMzsU^LU{V@BL=oUcyBQORSVB1_tB7l3I_Xs5El+42UgZ|m}S8hG+$?H z{}5QU`(mb1A>Rv6^(bOO-8{@uIZOdZR#W+ z?;(Bf+%GFkqTH#e0oFdY1GF)e?c$W>T=(I*p@nA)%ICX{&2N|aX-Ql8JNLg1af%m- zVp!#=L_|xcER5|KxpxshBSv*8-WmeN{q&Dh^%123M%A-l<^|%g)g*?$(SUTE@O`E_ zX{36vi>ArTPkP-O*M29R+tQ*E03teke#4Ha6Ld!Xpyfh600T94XpbWkx0St5wZ7cs z{T%!R5ye7o9d;C=oNc*G zU(OvnZ|XT_!gXq+GT?RN!yoUh=X|8R#KVrr3*B_G)2)=_)WpAd7oNKQwwPhL4G*mx zu>-u=pRXo1YyM8yT^9++LxlP-#6w zioQ0&qw!(s^7oG;UXZw=D$H@d5Sjb^FS5oZ@Zr7xB3tl(kyR5H0*~2aiJ(`K#c&RO zBcbsBR|um!_0t?#5J$4BFIP;=t}VgCZY7Snbau1EK4_JV5w~cgBTty}8h$@gehIBvS>va3H!@H|dB)Xr(NNwDb=y&rH zJF>I*tQ7se7M-Ry+s z-ET~_-Yk)|)wP@@ltmERxbD>7yvP__IQN>B)iYGHD$Ax3)L>Crqua1%zD&AGH}4ug z%UuaV3_g`yhFw0Iwae`Hb79{1Srel4#mqZ>dLmtvG@y=_c9JZ7hy%QfGo$S*`$7_B zU$m&23VNC5(&-y>V<7*MjS1ch(y5|Z3D6h>QEg=cd&(;nC*4-BHNz!s4Q}JD{ryx~ z`n~nFqLcoHleo9Er{NXWl1gA@hgl8mHzuo- z1s7QvLK?N$`2q$+c@Qmqp8rRBkPPDKTyDNp!cvs)ZmZkb*@{9OdgobGh~PC0+SM@o zj1C=DZ#I|Ji{k7ACktQylwg)_iVk_eGkGz6JGKfi%E2C?MNF4Tx=EnM ziLAQs$U#X-Er+Xhhss~hu4Xy|9-~i@$@Dh!EDeTZTWR#uzNc0s+D>y{qWZHQMSV$5 zZawh|$Rm&{Ig_&Y&hMo3tf4l2lBwPI{@4;@fMG}CJ-zy;g$?XjhyZOTl<31#fqnp) z2R?W%?{=%|+u0$|&#(-$9Kl6@rGTov!hZT=+AzvuI*UL=qD+P-^yzO;l2SQHkoMUg zJ>=c+6X&rcpi<&brn@iqbNsf}+gCW81$>pKzIK0QQ&&qMJ4?{EQ6a1Sw;}4$F#;Br z{7w)+`vv9u*B!7j5tF+mYM;5(p{54XX<$ma6bWS7-K2e@AR1C2HoxD3)2Kl|2iUtR zi#AEsa9ZTPT0Z@A4UTHXp!MX;G@N=~ix{xZ2p?WV`t!i54(o~S>Jv>4-F`pQhBC-Y ziu=&LsQD?9SW9sAqt#t8DzD2r@`~IhQ-_+Onh{fGl7r*_-bgBy;8^=_5A*lyoJrbi z`uMJ53c4|K`1G>0wFD6oPI+h43X1O9Iv4#1Bm`@XS?$J`%fU#DbU%@O_6WL z+c50{3HrvT7v->HFFQ;~M|yCaDKT2eQcOYRAcvS~DSi{bUZMu|d)CiaM}@`yI2bX0 znZ5gK#11T1Yeyt!XL6%Wew|u=fbysam_h!VO6Ye5+{6P9_HIu9KEn5Y_Pg+7@h=d4C7708D?SvpCZ`3(y%2_Z}{q9RPMSI3y} zPCa>>4M$Lhomb`!@TWsW=rv}9Lj?@`-yQlnO9@Z=Z$EYKe_aN$EC{@+@^2$Y?{jQ2 zdhVBh0Z zg6m{cjD$lkG36DN8lzQq6_<)>rO8%MpqNEet+aILGX#u+TBuN19hL*gjz?9>DcYs?0K;MYRy>%l zEWrUWCeOhM+2EFu-z`V81fQ=)Cwkw&0yy>EdD;x}L$JM4)W7^o5DAWvtK0U6XJB-4 zP*1<0!+erCET>(9kyZ@T+k6vuXzJHFGHU&WAjtsIDs?LuFB79#h(vnqEFG#b%am)V zk*P2a8Id_pZ6etFiel2yuZKd?sS;Vzu~V8M>v(sKJeXiWCFqLUi4NT@UBvEpkYjQl zKQPtRchS)f(z|Y)!Cy275_Ux51P+G6pd12GTg)wNlI@WAmXVQM@1{oJP@Uu;L2nKf z;Eu~VENMW2NCeL^vo?zDpCv4|ND9!BdrL1J6TFOTB$)M%W0^b%u^#R`cyMX>CHG1f z=!bQwAT>a#dof5+J@s2hJ(y)+s)NyFk=7`df7tpT8hRg+AY02FdA4u;Ua+Kj*SaP@zpL1}Q@X6cz36DswXy zyzjWgz?XKen#NBkchP9~ZwD)D zMGO*kIWNZJl+T?i)EpKWrYe(-aI1f*PcwHnPfHsYDIy8Q%iU3yRmZLg&*u{5M!_i6 z(HVeM7Eo5c?nYDVEZxjlmggQJc$xisv+B_OZ%Nx@^H2A~(k+@0z)*04jfmHyw&eQT zz)wu#1F%kIei=ERma+lHd;%?Jo>qA^T!L35*7_D=b!sMV2sS&AcxT#(J&S`r9X=^& zVAq=pv(jP zR~eA#^bX1*>e->PtSBN#S~O;;P2?{z+$Yzii1GeRw!79|`34XtV>Kd#9+`EIL&JVI zP=?QF|LTJGOtg?!VN+U%OhR^_3JOQu9Azad&*4f(yV9t(yHIKmcqo^yE@6aU7<4pJ z11}EKYj|Y;Y(Eh|Jj6}6xf$-jb{WRd=Zc}}Rb*-tomaC#206LO_n?i{^+lM`SZL`> zH3vli1#}xCuUV*J$I5S$Fv^xgBI;%$J}?<+vDrxXS?{Pb+S4Q}Ffrx~tR@#Fe86Yc zjl|0h=oJR*iBblNr7aE&F|3}P`nCdWz_JO{f~smmcijD*#psKG1Na?P&1ML?>Q z5jPSFpfz4|yZi8zWRm}<$&=YmAVlGuQy6~RXyLU#_GOMdl-tu%_Phq&{> z-7~?r5Idt?P-Q$uS*42uHLypC+L<>ZygOTAFHKtA9u~5zo2#?H&N-Fbg z&mSL5vn~v^r%lz_JrfC%iL$QSXfm|8VoZ(W-B(bPOy+1&+`cg02kqH=TVvW5%Y06l zWk-UNp$Yv$e~ige>kBExwfvFhlHaNG&T{c*hek-$i~_KT@`q~G9_`{Qn1}jiYnR;p z5+_QbSAQ)=j;ld5UrMwv!eQm8 z7m=;`OF_`*GHPUtWid$kdpz$wm&yaJz}^4{N%0IheT$89IyG&bA|G*g!fYKaS`E_| zyGa47ryCTZ)Lbbp9!#leiz{uXYE=NlJS zA4G$~(9)GqA-ToA0~q}FLxI)xl8Dl7?}4K1sR0| z!fGP!-r)loxFUlGw&@ec6zh^y*{doT`tWGpWR?vnUW_dJbT zi(q!kGKQubfYFl3xU0_Yr1U(;J=guovwC7mx*kdVemR1wK@rxpN?OGN}u=L zbo&u=zNGw&EGFLks99Cf?&6*Vq)W**?I|v@%j9QPV)Al|d@HY4$7#prL20@_r2Lc; zrH99RSvh8(qm}NrcY2xYlW+*6v%kKDQz5JatYqT7!B>PbhN9-U;6nyF3D@C3;ZSX; z&_U^Ea6a`f9ke&O2g#&mC9~0ab@PT-gM^3UUIW?!c(<=*S}ttm-`?oQ@C8#H%Zr!v%^Tc_zSJSz)4O|MKjACnlVKib_IW`7TyFA4>`;6U ztwUvovKCfy_XYS<_EzVI>4p;P7?Hozw$Y5*W;W7oN*daP%N_2Rn)Ad%3(vcjS%ddd z-s==U=1GP)E20a&2HH^DUWgwJx@lj0N5GQo1X~kqhsMT=fcXo$;wAw0OYyz38M^pl z8Eg0euB5qz`5L5Fn2T>C6mur$v%u)bgr)>3L1ScXIS1H40TpwQu*Ont=7uCpb-y*? zXzLtA{SF&X$s-Q3St-Il;vQ+JcMfa$=eufaS?IsFO_&?%W@$18dqZ>Oc9N*CRuEUg zUngg4@We|CFF8MrUGa5pV2q;1$H*WsH4UtpNAQO6lk0K46%%dj@kNz?cpaW?Wyf6O z4r?)WEN!F>?10$|2H_JO^C2nf!Czh=W&7I%bU(jdE~oUq#Qc)1Z+;d|?Uj5bwZZ#K z{H7>p+^3kG5h<3g`&I@ZxdyjClC9-{dkf_4-|_vy8{!^?OYgxf7_jydV=C~9=<4C0 zBDmXL4aT-I=+|B>pAhR~=Ny)Z9iMs_J#t15&9svlxrWM#pwkU8i;D|z#JlW|+d){3 z7MZz>eIIY8Y5#s|*^Wg)+qEa$2z;^S5%I&gQnqdp|CCdxPqU@!u>zUg(kA2szcH5t zd{*k5gNBtU8y?pEYA@4&A@>vRRCCIR6!YB*o#SZlp zbLnz2SUwk=DY9NfvW<+{(^B^D^KF;*-({DG0V$t!jcB(}y{(}|ly2K9WkP3QCM9Q> z_uuOOkEeHx&g6NYhqJM5CmY+gZQikMZgj`CZ9Cc6wrxAv*xF}5-{1c{Z>G=mnd{A* zo;lrBS5>Jqe_2UUX*s*FJDVpNzGK93T89r zKvdi~P-U+GauI-*mwA5u$Nk*T%)K@AKZ!G(Nub34Yl*asJ_urDb(zg}xoP(}*?gHb z_^~w_+1Gh^=zbWpleQ8LsAyzA$Q#Jmue3fJWE%bYQ}b0 z;=Di@EN%GK2tuZE8&K13y7VHe$E6u{O>W|6F`&f}FP`d_UW<|b6DH6+;Fv7&kBc@( zI@Zd}g~xx$2TEzE^fmPjD7biZZhFmc0&N^_nliiX%hs>|5b@c-s_FD%qrV2h%*=QsC556+bnPBnVyOCn zV)h!IEK5#lROQt>23{^_b!7|v_2<0_h@cz2M0XbaAJ8rAf(5hw55{TyKN#l>zzf7X zP60Z&PFYs#rV@~f1Ue>4#L{Phj}`188%Sr5DTJE@IwOxPtYIdwNl2oCg@kZGY?uXv zEQB_0rxKPXr_v@MFa)dM#x96ZZ-bU_PO5m()0faUnf~34Hq~jtU)ViKGnLqV+4>Hs#6>GR{%z-owlRa#e(N)!rWuCg%y#F4^QCb*>L zueGrv$npj7AfGS(^j=&S>!4XH8ea6WQwKT_7d$~32Zru+UtC$fX#308(CxjL9y-w# ze>C-}{7AftA$Q})kbO3G%gdEHq^qv0=B=_fBd)xudaoCmDt5u1?E zds*39b~8}qs%v}vtwz?YU36v3%v3V?y1mS0C&v7twQQN`aMi!9qa*-vrm787LSJI( z%l6KTY$+3#Jd2-bgA;5?RzO@t>(EBJhzx}+*P%6r@U$e!5^c49HVYc640G0$0Nb(f z^pRj=Sg|Cp(jFTd=-`uh%@Wl!HHw#4f(!){XVd7~8oQ*q4S$Y21x+i$x5)Vo(@JCK z{V9c4DNtiIbfr<7O?f!01R1z9(RvxA=&JbMF>B0hIob5=_Y&<_Y@lk1AlrO(Rh36u zMJg!GvJ!!&LSUKwW~CN^4HmPqNe{!*pMk_@IUc}tBO(=0K1abNqz9Z3ax^ve0u;F4 zrYw9MW#xq=aLE8u_zQeSZt*GUpw{$0HMQNZHsmSFGlwke*=e-xa8WAm|s# z>qAm6rYZ6R?ZCcn%d`t%sG-RYlO5;vL3Mm8M82RWWPdaB7b(Hg(!=%#o1F)^N+^N{ z7hr6RvTc(k0jGx!o(i;Z*Ka_AFP2yZ;O5d^!hht=A5K1=_rzc|eSCW9Ipi?TC1N9Y zB18oE0{E&lSE*fb6v8jgrD#%D6@O7%v;_*#y>>MskDi>zR3vlwV}D{o^i!YJTg-`L=QmH1Gk}^%sLRYw;QcHton>GVo_;A zZCBr&wnop<2Bg2;P)TejA03eU)Sz{(V}X3F(-M64W3uu%RLHUU3PH1MRGvIlF1+?xj!PXk0ZR-Cm?aWXC6O z?V=^Kz&Rj#Vxd)MOLXo+hq&{HA_X~xpILNrymeRL#{H$z?CJRo%R9brfl!I1K`A3i zRzdgK9FpnOt;8APf}Yu<**olo*n%!YE#9dk72oWG$+Bt&73rzg* zHQ=DUjMi&`rqDH2JlYg8259M(B(PVyDlY2w^9yN_8cp14V&p(s83>Fy z2m*PHk#UGz8KQo_A+xs3FMd^x4=C;}6NEdmX?n#k`g?nlYl0mChi{74zhb~|inN4LJ z!Ys7J1PQHzEgDoK$lFjeRd!B23G`EDIDLzrKad!)R92R$Vlf$VJcu9h#1Ap`fxt+? z&q%_$Cr!a(Dvdh-qUJ}K#rXq8i3wD8+`c-s{zsEJiBbm#W=;1Wcp-*=#@ow3T0m~; zBKN5Wu#Y+|%B1?f?Iu^RsYhaQh`Hc^J3-WdbQPbjbg&&WjwY8%irG}vHxO9G`U4d=J z&HQkRekD4ibrwYTp;!eZ8Q2rM8nw0t(ug*z=K0eWzR}A$FH01Y*gQ@9?O`;Att-PS zpw|;V%lL8cf!Xj@qm-N+-DLPBJj)2swWl0A!QJ=wg3{Q58*?kwHnBvr_|p9_<-seI~g zfk8X6a_UUB)I??1q4?Q8iriI{48z{VMbO~FIB4EH7gYa6IC4C-;!csoMjFnHtI9c$ znUnq@Epel9{sOhl4w!n62<__mT|pkdnRpHlshYvam}>(2aUdX+d@R;_Zc8L#nZ~wR zo|HkUUvi%kU10qJgCh{YEMt#(mne9Sn^LzImyZ%LA{Mls(+n6nN4pMsB?ii+9|N!} z^!G0l(3yJ8H>!Ikrt|6}!Aof+><8G$%bE$hX)#PP1&5obfK=yMujU1Y@al^!5+)Wd zIyybddpgrL=p)2tHV)j9`-=TwQ4WI}Pp*K=WgX-04l1j#YEv^@a%%haRE3;snMDx6 zynSA^o*ZU4?v9okxN0@6XhGslws@2s&QA2{9C`b1zFq2M|HO-_XUT*&;r`y=(rVR= zcWDsQ{UXz%z_?w_UGz&kS#wubVM9=733)`ZQl@d=lp7ST^k3QE97*t3ZgmqL559$A zUbtHmYC?Xlt2_Kt`xYmIIXBP%C%utf3m{Czl6wg?gy&+Wt}%wfZ6Y>WH7rFD`3kF=W5W9-7m>pr%Z*WV&rPPQTvVD!#P`40j#Y)x8CDj zn5A9TXnX1kM1#0D&6o3 zh~inUlL&pjM?J1_8<}`Nj(UQ{{g-`|emvcktgN^%_D-vnw1VoBoUePFiA4$)(EB=I zJad4poi>rElTsRSbrAW}BK+sx>GCj2+7hY=H;%HByFwdXnzQd?Qr3Lok#J_Dh?00kH{Y0(2T_4$+4I4xDpQ7yGBT0sTldS~~D49}2+Z4+Jj(Ag8pO zO7|R?Ie}uthod&2)NqfrSElJQLjWwXmR|VRDcQu~tjsz8fqBzTp}**CLTZ&7MGaL) zD^+M>iMmu`!;ydqBkEiwYS76N)|7ZrMiYQXGbIpJf?QH;s8EMT5nL>!DYe3l&TVA) zg>}1&x^?M-wtT&{!KsQdm5weB$e7bJ9JLU2i4LQhgvN~t;R{+v{-_$bI?zPcELCGk zSnNgx`R1p!wL`lAc~?jDHWwUU` zB$wwf@4bSvZo1Urk<>H*Oo@VFMdS{&Wf0gagp88SjAYj>(Jep zgoS?va6xd1gJ6rFX}G-(k=3CA2i<*}Q$o4!bL9ED6iffGzgQG6)+@I^)PMgVe=$fp z9G}@Wyr2iq%o`vklo6K?k9;V4-yLq}4>sslsC6l=et7f%hc3(2uCU;wX)#on@{JSK zBgX(!U3lQ(nlOQVdv`_kNg7jEod?Nd$v($FGQlNcwYwN!Hu}*w!?gck7vS~3A*ZES zxbS^3c{}rY1E)5YG)!%fX2-2Gs(|>dFsc`t_gU4Lex=5YPP7;h~TdKIqfW+ zJO}A}a}met>Jp-O9h`3>xx{Fd^NQu@a~X=xDHHa4ahndev%cd!3|-qdg-wrLi6j(QT@HZFZq=o7jvt+ACHyj^`}|s z+{5`ZJ0oQ952*sfR9GDKu0+z%i)2Fs!S&c(RO{k`e?6uA;Gv|s%w5dwq)~uQ=jfmy zCa_>skbdv$ips+g+32|n){lOFe-+7^79T&k`#xzY#USTT+Y{mj(||+p^sCozO#DxZ zQ6Lk+`RslyrIi3F0o%^tuJ+?nzflB~^!8B-FXS%{6*Z_U@6R6jpsV|d(X*1wY}2q0 zA-F_1?3242{!ph~)aH?&DKG)S$ji;8$Uybxp9@WnAMtG69F!?xn{o3~8aTCYrVR2TrlcRX*XA;P zkg{;|D*oNjgG$Syk?P9gSF@g*gnNVK#hS*sZVj^1WvT^WRO5*Fbq2Z)s5tP8X!Y^X9x-w6fgdC-H{CU}k8=I9@{;2;-fAd-Sj`ZZA&34Iw z3eT3!mYqI@wV3m%b*g2}yUezm5diXu&P<=UWId2RtpB-U&C}#XnvnM-blou>*gfcy z=R2lo-}bRj;GMQe+p-a0OsGRqd}QW-t&8Qz=$@uYw1iu?gj$!DoJIRdiID%$4$D6~ zedcyemZGF^PJ2}9ZHc=ryLir>Da<%0r(uPerrQ3aU|Rz24-0+cY(CQZ zq*cSVqMtXt`sQpY`7?%^i9<2qBLuzvrj*A!_~H-Lx!ebqRfTVS>iSK|@2k4G^=FSW z{15LY{GTtdqauKF=sB9v40Ki3rg`g8bDq_Ne8^D&z#(@21AbmWXBFainQg^vU5Gl0fjDIQ9(uuf2!8`g4N_0|aD_`hQ6J zs1r9Z%iBAPf1`GLp}WIAsMc{5oq*Bh zb%;IAmA37()#@yYWXX8qSpDJnIUWp*F7NAF;fr-GwsN^v*|>4?lJlPNaTeGujehB} z&%oi#IR=f$oOeGxY&;>5KVshGy3u8nQ33>uBzqSWr1w&I@5=+kY&BDDNNs_js?cMa`S8nlGmsvl_>6-*)Av`CqFZ(w2gSZ&wvse;A&B$9O z`f_iE$F*jDm&Lc2POEfjB@hC6 zG~xmyo@-i6hR~}E#&BRdR*%D`^yM{pOsfh;#{!$RG=tre7H+OfB)Yn^9sLa4g+E;MrLIri*ZD2xZF8oT56*g+3ilC9u-b}=y&hb%2-NN2 z%D`6E*^OY1M%5YqVy+!_1CMp$zEz((3BaR@Ri;H{mYQGk@hDeUNNmA#QbmFIzC3!8 zQ6Q43s&vGpsZ{exGAd3ovgq``2~R}dl1m^-(cc=F>G51z z7@W?46f< z0a9lN8$)!63|?e?8XRR=vKC`K>tHwt+ngFHp;f!4jJy-r854}6Z*tbC&o6hHoMRL5 zLc!{onBzyLbIAgEN~e6Ql^c{8azu$sIEn@ua=B7_&!~J?Ec9n=03Sz^PF&H(6Wtpp z4AD+DD>>tDMdEsLBwU5*1LX=3t?s=sn;^Jy-}J*)p- zl=`rHKmC^DZ>e-g!!60Mslg{C(UUri)9zxYIB+4`nhD&?H08=z*dNBj4*`4qxo*3T z;B+CR_8B3=W1%rXI*Je4dKg?N{Mr%RiiF>x%uqR7;ePsq3HfCwLQfraYV_nvcA?|J4>#qmc zyz(P?RY?pMRNO^^u$;Ww2%N^eT$|aLs=yu~-?p=cp>{4C063IQM4!&48MRKPGi3xJ zD{%~S%&BK1j;{!k`%AARY{Y%>Tse_laml(+Vo4dN05SZ%*0k;r!w(b$*N*rV=Lg89 zV`VhG1l9R1LS-Q>3agzT{RTX=>-vz7hHM}~(eznTcdZuHCY*4M`*HX)`*@qlNc1AG zH8@&-{VIGo)AC?}lRt`3qK&3iOWiGrZ9(W-LoI`2T~&ORn^jl*No0n-oHTx!1WW=g z<}q+;zQGn9{YZ{(_8eYkW+sCx#n8r7QkFwNg3AKI?G9r4v9Z)VcfW}q=aL20hFc_9 zHe~5h*;JXUA$ZpWMA;#9K}Sx-D?%D5!^jE305AxZemu~Z)}{aRf}Ep_w^iS-S&xR{ z#>-sdM@jR=%RH^whQ zO3cX{fGLrGWDF?@(&F%+Kv&of9d@H;a}WjlQ;~0A#uTD1YKf4`?(Y(4=e-9!_lT?O zBqAU)^@a6<-H+WcbOfs@#ZcXVWTICR+5`;&OGknCyih$m#}=Z?Z_83sR826D(VSei zo4fex2}EbO$0*&imApe{KrH{VH2Q8d6!J}UCGZ(7Lp;1U6v7*_AhM@%=lnI!T=9BB3%^an;F;BGv@>h(R?KGSuTT6%XKJ!yjxubCoG5uXKVb6 zhmV}MqTOMK%sV#iN~h9h2kqhhuOjp60X|bX+}ne5l()EDW)SKld+{v>ry=bONXJ3vc)#rX9_(%Sf7 zZE=3NaL9=yAK|YuSDcE~&H&GWu}unkeDNH|+ej_cYo)Tr&mBR`mWv1p`|2p~yNj97O_EpRI-_WXe^IzRfyFfhfU!kBY*1y}kYg7-2heT9G|6e=-rxI$Y zx3JmLAX`5;SBm^|KSLg89`|HG_wn)%7(kcf@*^;)DB_xbY?iF`}VXN0LA| zqP{THSv7Gn#G~woQ(mCR{rBBFq#>9KXdDvK=`?REc@UnAh{q_xhW#MI0+%Y_ghsxL z3n9WyG_#m|=Su1lf&kXumb2wrLC0DafitR0%RHBcue`Y%h|$84!9Jb$=B{ajX)Eb< z36Us9L&8E6q4g)B!3Xnlx_P>}6ia2cnq&ldh>`K~J>I zv?e+|o#)NXvVAOSlZCyj3^nBjj*jjx`zz8aBZSQ4lPnZsB}Ovyz9D!~5w^&*FocOX zJ3W(UUtO@9{lq6LSouFQr{=(YIxhU^2cF4oJ{kPJp^4>XI10@?=4H>3DYQ9BS>LDy z%KwgHmEcJ-NeTYSKp0QFQ8zzP5b(A@#Kc0=v-;I!%K$DZ0!(V*7JU5{Y7t2>f&g+I zeNZ@Oa>KNBJ*h%HS}WQYnN7BcMKKwZc6*zSnk0!D@C9Yk=g932tA!@31y(x~PP;`~ z`I|xIZ%z=Yc<|$<v-%=VYudM>VVu~rIv{H0~HTp?YHnPb-6l5x$kaU%~K zo?CnTj|tl^<`V8gD?94idGtrl*p4GjuN;`nk_f7+c7yoCXWHBDj+i4JZdYe(7_(;< zI(e}1$i?tFKnUI%LCYgo;Y&L2CYPlZ7Vhqc?3$RkOZU_K^ELp(DP>*0dRg;tfQ169 zBrj5I_R3;y-UY<+Y4yDFHfEE6wu!Hb!Zix|nAYi3c8M9dT{ZcdL2l?7&zBF6repMP zmAYJ4fJgRMX2rPbb)CL#daZpHpq3S`eoIQ=6`O0N0rk$t@apffQLY{uxn`<3tSCKB8_Y5Rm9HdO#VNu+Fk8i&&+b` ztwkN1z_dktNhO!IZfi#FHcBav1wC5`b*1`uEy3milJ{SOP6Sr4ir`ij(vu99HD(~^sgBM@j#vAe zSB2YM0wk8hJ_KK`dBnZ@@VDZDO=%mc^Iwnt`J+UM6q>BajWG$J27v8_6I*50)a&xn z<4UVZSN1_Qb{9}%@*Mc>b0w&mxS}EpwN;hhp&80g4}gtn`SMNkV+tP7C052{+3#mn zAdzlD^HmpQ)-@s{yppS?n zFpqY1M$!6{&IP3$Jw%ZRotX$4YhBZdKuUC;@pPL!2Q<}5R`xbICU(b9>^xVQxt>-D zWTLutpJi>j3U-bCp3Ho9DIy8?LJ^?v@fMk-1wwLHGun@j{V?x?O%HbnXhdB`aeRKg zdIXO`7r`^Q=+%D+0zO$0G+(+-;jo;jk4_Bhq+fYAl$^<&RmjL$bbj;l214c`5CTi* z46vj4%RKCDBJI|k+H}D)gn)_D0S7e^%fJxC;8l!KbiO1|1TjaP4P%5g6E5c~9T)%T z&&(pY%{}_oj{+a?oYzF`gJ|~B^-!z z7FJt9-(ZAr+=&o*K>+Eg1w;+FyO#t$t)`>f%$%@StjC&|AoayX9CLLHu!(L^jaG*i zWT_gG%=Frxb#n@xrX-W)mz@Z~;>^WGcx_f?)iKJ(UV=*~@5;RSv$pw4{X->hY5VK^ zGW~K?*eDzLfFnt-I6*5tohzl9*dchHI%$+=1|84D12Jt%738ubau)|H8me$;T6reI z@`Mp=(D>oR_7+?Fv?RNORiqU0hhJ1+ws_58vsaTyw*~&AOf|lG` zL`61hJ;{APzS5|f&uPjLUX#FO+lg{s+q@5vV$gY~Z^*)#X5)z+7|?6iRv^mb9V!za={&|dDVOD9(gd*JumUD~;( z)~9BICZ-iX2s`EHG6TfI0>UjcsaamLed?1gPV<*kU9+6@qZ%|YmKK&e zAM(s0Jr4y5s2_U_@|8mzfcycq!~o@lISVAw^|W6?wwBDJD3M-mBX zq7M-J2Pr^ZzV%T=AH&{2$z$ISG#=S48qR-dl{uCL$Uy7^VgSUzfC?sRp0U$U@tX%( zW7Ut_2+ijmglo#!MTj&bEr%ATGl+LgtDdStt<{2|j8IP*)%vB_YZ>@n>-Ol_cu`m~ zPKKyU4?v%%TbVLQeT?D-Q7)#KaWy|rfE3ZI_p?XjtwFoQKtaV5`r*mQh82#f^GK~yy0a7O=%AWUjg_0;p;ret;__cg?olLP8 z#8mJ7$>}(^D1UXtgOlQ2B<;Xydx35)^F%I~5<@3`{8bpv_9Z~ee&=jKs^+) zw_{*ug29#KOclC?3415tr}iXW32+t zbMZ5=a9G&zLqirFfvs3A;e>;&9_f61%jy$I?M#Rv>HJzNZ1Z3oJ=-Cgb|!}Q{Xr^D#o6?Lte@coLV{D zQosCoqWM2RyD;oTHEstt39XNM751wV{&J9S64OgwLcwdy$vB=^J+=t#M7jHtxj9E> z+Rt4q&7n7o)h=$Fxxo(CF1}Zx3LrEEaHL{Jgw+=l{%N!P zV_NB0pQ%^obv?z5A#5bbD9m?rzIb(X(eK2}E{;e=d3e+8)2h6Xs}z#>Tygu&(^5Ee z6B0yr$vL38MyTDCjpyOs4~1rV{ak#!okQ42lZhNd|C3jYBn%6Et6zbMr%%Q~c-JL2 zdZ~12JMdbnMuTG|BR~IB=@~TySako{S;TopM*B+j9#@uFH#c!6f8(-*{A8O)R_EFL z9-bgBNtc!rE=2hblP(p``Wn->^HhIFQaQLdFKS^_{W35yYwU`;0wnNzqnP>y=ZuhC zDz{$#lx{KW%kWI|tB%90jM`%lGNU4xlSll$Cy=HB75RvkmaoF5UQFxw{2(oeNAAY5|0EXL zJ#S=S+a@5e^|(mlFfPIfEH=!`%SixC^?}ki#kwDu-JUN$Tew<43=5AlE`XUOVCiL00l?#-Ud*TyU*b?^S7kA}2$ zQgLubc`IOuUuCWV&|fBYuM4Hfd}55afI#J~-DA5mL^fAi5(BwH;&5oUGI0ZCKFWsC}XnCN$U z896lZ9pbi(hvEH-izo?jfLB_fU4AQ{Q+4`aESZZ34dG3+=at>5TDuEuwXP454?DcE zf|Thr;!v}Hhd0aWy=??-ZU z%;GX@`GnXC|nVl?*5{K}ztYL=&SomWOVZ2s83?f>0*2C;sc`oXv`YWi;;m|Z&| z(7JVccKq)O3=yFH*mC|`^~nC;BMyZiM*^*9aB-GLJ+|#cXxojm^e>D5_No@t44M8U z->qO(amqPTiIT#HSEuT{)9f$$QaVTX8C;PYd_Im97}G2xYS1I z_SMyO#tZjNMs|iE5cmaI52L#GcyuIxo}{0)Lh^>-tJC`Y#J&yNm3la_2IDgbhdXo^ zubYT+XR0a@x=aSVWRmHU+TBUB7qju2T?I-X<-lYVM3U{L$e)$H>JY1`9V&m%bUQowweBF!4Hs3v#DS+ z(<&+o{^$8O5n|mtoCYyf6`xD0nNPdh37Q4Ao|6+0il-^+OGiXC8MgK6V`g{~^4G-| z6!pys7m!!V}ETg*BTl7kg_Us>eM*6mo=SMw~TJ4M+z%o~V5P zbMZsr=Yo5<`+CmOetx+80s~PnjO(8?cOl}x(;6es3|4HoIX%ZGVERp{(f4es_LH2drMscI=6kf!VDw z8O^m7GWJ1dnqC^a`mB}q$X@#|{j?+O6@Gc*R0^WM?fLQFJG-Dx5+M60$FlyPFCQ2a z2u#v`4LVTumy4^JoszSIqnWd-m6?l_k-e#{nKOflt&xk1x*7z?zY-9T7`6X%m5!C? zbwX`wN)|zf`C()K&s7?M-t$M)KN27g+*rTxLc1q0C?Jz7i8BvjAgv9(Ac)TPc@lxuB1%HNy2LL!konB4j-DRq zwCD~lx{~xHqIX~U6ZSH(6(E8+5%(p;<{%q~7(oBYeVwRf9nJ(Vcx2PH=h&*RRmq30 zk#7`k)Wi@Nqyc}r_`q+sNn38nn(@bkw?1b8{{;`Oi+#}X6S-X20=vVy)BTotP>9Ec zF_tU#JbWJ^)U#I+VX)ZxV{oe%D3^ zic#E42|hh^$3T(1?+rit9KmLaUFc3shQv4S=$vPFj-i0)JT@91($D0qRa*e;%SYM8 z94;b`jlz!E_th`A;2FIC*VPTrfSQ4kmF&5A z(vGt}%lJ8g9B`31=V%dD;9H{Su&JP4bHER%)28On&~Z8FttfL8OLpS2A~`K zm6i2&?Wr??*i}keI_MO$JQUn$V1%PN=Jl!5u<*D%$@k0}SQK`R+rO_Mf)JVs_~X;uMXxGiG|}igH@i zJ=;^mf^lJXNMA>s3Fg8&5D9<$=b^ea(bI=Ms4BNODhYpL9G;P2Lt@Xj{XUt0v#%A- zICU-+t|RF1mBC9ej@F?r7KnVDVxiM}oI5Khnp_XZ*x6>|-e7D_6rE1sgLe>y%(p81 zM1Gvshf`e?`aAusn=-y1(kw@~$782YvAea>-aog_Xzzc2#g#+y>db$hKMIilKN*0~ z2$fXdfDiQj7s&O`=WNuXU`{1&0Ta2H#yQ;AU!}nRSU8?C1$?+EFd#nOuCtp^_a?K` zMw;zj_!GWoZfIl(%MU~_*{Q{&tc2e->0dO@Uk7&&^Ow~dBEcVqge@>W9UT+q0^z>^ zZHCs$x+rkuP7-vMDV5bqsw+#T;h&0Zt>vh3phFhz1nF1m#>jT7k%Rj4y78TNYsuDlHSS@T434J^TT zf8^WKrc8aqS+fw7aO;lbL|1^C)`d#hGR>mu4P9qV1-W+R`82<CTK^W_1eJGhzQ4`s6T5m47*#z7q73y`{VT+8$6Z8Cv7j)V<jnKALJSFX;uXg3xJ8=FO1JN8Ldy#%CO|4UhI=II5k86{ z$PG!xBXqhQt$l3^nr%NkL=?D*WaN4+B!1p2G(7i1W5)6{(+_Iwo(MP^JI-B-nHL zfw_99B3if;h`2>_9P+sCaR0)B=43c=F;#x z(A)=|-Ub1aM?cIHDXdhHPLGaeyl?zG-mbl0x`E%_Pgwp4ZPQHd@2(CH<9+_qzskcKdk7Ob7dowIzIo+xCqRQZi|%uyN66DiniHVRKo!-5 z>i`oz`wk`fQkD*h%+e`@P;!D6g_YzKsoAAZ_s};8`q6VAN!1lnV>#SqCwch^>d?^G z^+T)QZjBw&1t861m9_#CN}2}Nbw2nAP&hOfc!*xiL~#6$1)=dTXVW3#giD1ZaEvF@ z!WgNZ`y=>w%~NnlCy{j+@H+=wKwT|y;d|wECWKA5Jgk?)A4nR5iuhES$yC9o;vjH* zrpF|qzj)G6JE2Q$pj<-=T6zkKgn&!v7(3U)xYZc`JfOvG>p#zR*$MoxPJaB7=&}@2 z;<7ijWSCe#keyhZ(nYqcoUY%B@W<&uArKVq_FcE|W5~#UzeJ_e7ByLedova?2)6 z7wR#FHkVY=MN+nXo$O4f-Fcq#&%B@c{oeOI@0>aB?>Y1R`l=~y4Z|&a7=W*5(vkWJ zPJeD<(C=5~`rVCJik>&X8ljp8-3;_*HdZ)FI4?DGD_l36b1+xv>9Vw#RVHcBB`1-C z_U?Z4bg{rKy_Xvx=%BOe2dEukPxuQC?htKsE8g4jylXV5Yp+}8`+IdQYipfMZkPu} zUF}u;0G-a%h%|J*$Fq89WnY!7{}Qoq?Few)n6Qkk>0I1B9G9 zE0Lmt8>xu+iWYt}WU@VR)xE1i7NH~BWYa>;)#i3P5^m*yn%S}D)bSWT*g|9$R#28D z-8B{JwJMMpu8xLhqn&TJH+;IxBSs{gCsybgrK)JO<=_TGkZccF`;A7v-%|RnEtWr@ z=*i=p;hcE*PC0iuRbcR?C}@(AH#T_lWKH{#DJQ=TpGO`ojB*J-MH_zO>fslYKIyed zB+Bqf+y%ep<|GMeo6DZey?cMfSA&PCk=-hbU`{BoHR`OPaJk#EMq|>^! zwBq_;h2Xf*Y5k4N=)PiGm6mG;O#@GLPt{vJ@NDf-r`>i4RB8+%XiFGbY$JliPDR}0 z@Tu9^lR1%`ODPEnXiYSvopj@zIl(+%Q4}8ER$9pvaF=qct5s<=fnD7fJ{=;FTBnwj zuNorsH@%`v@|DwCosN^gl>1hS@6fBozbY9<&yTLTAaJC1i^AiZB;{-NkQo-CCir#| zQ;RW`6hjkMiu^Lvy&BS#U#I5dH*4;*uAPW2c>bKzgYfX>lc)ekcOg(Dj};;M}|3&4}WuPz5x+hi8?HYClyQ8BV=9 zl;oAPh%+Yg;$I(UJGsea&{WgC*L_8x-P`6+SmUFO{@YD8Q~C8P4nOf0hQcYk0)}0T zYYzXRrE8s*(&xW&`8$W}?ee;n?!7Fc{aHNMIBd*PH=2G%4;zXJ{t4;Z+LXpnJKZ9?)#WhQ@vNl>IhZ?sk$w(_!4g~#`Xsv zZDZsv^BOq=ZBfqDeOs8dCqwM6QR5=+WI31xZkR(3i&YN}i_Q9*C+~r4M)s?EY@$bU zyA9eJR^#nzIk)lUZ_0ROBL+>ckBOO`Tjjg%bj~IpddaYSz2pWdW_D|WwsCxvw)otr zoFG5!^5JIIw&!AsTB0zo?l+>ZPU>VeD<5v;j4dGQ{GHEL@wt>c+EAGvY8~8rHswzj z;Zwr`)rSVB%SD#QMB(~uHNMI9&W}^#9g0lFaiw2I4{G^{8N+4)&foWIK zKm+a5Qb6i8@YBIynNK+cSz}-kZU#0&!S9`1*I>X%9ck1v1(vYXhZCg7Mr_cNf&_g7 zG^)(Q5Q4B#lb1+gF)&XDeU+a!&qJyUwdC#_e%Ce^`C3SUrCw=ZQm})TEXBY!6dalv zb>{+8-3DgL95Ws-Bk2bkj2EGqr~Q;NinQc{sc2I>jfTdM`H}p1CfrSDV$21mO9WWv zFYqJCv_wXV=yOm}e8fzElY6%cyrGZm6p&!468L{kWRVpj5V*oJA!-PsW5%Fi0{}c? zDx||QO=AdJi-FYX2w&&}%j9$+$OHp8+99=tnQPCe%^9O>67?8Sg1|-8WsTc^NVxSkEDD>5LE>c}W zg=PPH04hQlknBAJqF*9d_FxnQ>0`hGHUJkR0~}R!Ak&ZU>;&s%5FFUlf5igO5th|2 zAxIAssXPtO|aS!8@$ma;0$k1HjekAj1x#;|N72SK1tBfU^S zkb2rQr1^hE8)U3hAO81-*BxAiu%ppH(D2_jgvPM!QUyUvF)4Or&485o>OVn{_UY;L F{{RkpxF!Gq diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cea7a79..5dd3c01 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6..adff685 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -173,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -206,15 +203,14 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9d21a21..c4bdd3a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/settings.gradle b/settings.gradle index 90ae98f..7a844ca 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,10 +2,15 @@ pluginManagement { repositories { mavenLocal() gradlePluginPortal() - maven { url = 'https://maven.neoforged.net/releases' } + maven { + name = 'Fabric' + url = 'https://maven.fabricmc.net/' + } } } plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '0.9.0' } + +rootProject.name = 'DynamicTrees-BOP' From 6c073fbb4cc8599dc5a5b05939d8d85ccfcfa442 Mon Sep 17 00:00:00 2001 From: Oleksandr Hanzha Date: Fri, 24 Jul 2026 21:09:18 +0300 Subject: [PATCH 2/6] Convert entrypoint to Fabric, strip DT+ mushroom support, migrate resources - DynamicTreesBOP now implements DynamicTreesAddonEntrypoint (dynamictrees entrypoint) - Registry/TypeRegistry events replaced with direct registry calls in DTBOPRegistries.setup(); post-load species linking moved to Species.REGISTRY.runOnNextLock - Deleted DTBOPPlusRegistries, GlowShroomCapProperties, GlowshroomSpecies (DT+ has no 26.x port) - Parked dtplus-typed tree JSONs in _disabled_dtplus/, removed dtplus-gated worldgen entries - Merged src/generated/resources into src/main/resources, deleted datagen output dir - neoforge.mods.toml replaced with fabric.mod.json - ResourceLocation -> Identifier and other 26.2 API renames Co-Authored-By: Claude Fable 5 --- .../cap_properties/glowshroom.json | 0 .../cap_properties/toadstool.json | 0 .../species/glowshroom.json | 0 .../species/mini_brown_mushroom.json | 0 .../species/toadstool.json | 0 .../0069ca169c2de5d53f23a4ff03402b37e7235b5a | 2 - .../0851b20788e592b1bab76813dc345362998d2eca | 2 - .../449f59139f73553807c657f26d096524cc4a39e5 | 38 -- .../59eb3dbb5f86130e09b3c62d89b9525ee01cf52d | 134 ---- .../75df2d9e042f833c17d6f2454c7b4de55a3bcc64 | 5 - .../966c94fbc8a8ffde6970b7e2b557133c95999129 | 9 - .../e0535b00759b7a044714c01332f1f5cc305ccbec | 157 ----- .../com/dtteam/dtbop/DTBOPPlusRegistries.java | 66 -- .../com/dtteam/dtbop/DTBOPRegistries.java | 123 ++-- .../com/dtteam/dtbop/DynamicTreesBOP.java | 57 +- .../dtbop/block/CobwebLeavesProperties.java | 35 +- .../dtbop/block/GlowShroomCapProperties.java | 23 - .../com/dtteam/dtbop/cell/DTBOPCellKits.java | 18 +- .../AlternativeLeavesGenFeature.java | 4 +- .../dtbop/genfeature/DTBOPGenFeatures.java | 6 +- .../ExtraBottomFlareGenFeature.java | 4 +- .../dtbop/growthlogic/CypressLogic.java | 4 +- .../growthlogic/DTBOPGrowthLogicKits.java | 12 +- .../dtbop/growthlogic/MahoganyLogic.java | 4 +- .../dtteam/dtbop/growthlogic/PoplarLogic.java | 4 +- .../dtbop/growthlogic/RedwoodLogic.java | 4 +- .../dtbop/growthlogic/SmallRedwoodLogic.java | 4 +- src/main/java/com/dtteam/dtbop/tree/Bush.java | 16 +- .../com/dtteam/dtbop/tree/CypressSpecies.java | 4 +- .../dtteam/dtbop/tree/GenOnStoneSpecies.java | 4 +- .../dtteam/dtbop/tree/GlowshroomSpecies.java | 34 - .../com/dtteam/dtbop/tree/PoplarSpecies.java | 17 +- .../com/dtteam/dtbop/tree/TwigletSpecies.java | 4 +- .../resources/META-INF/neoforge.mods.toml | 52 -- .../blockstates/acacia_twiglet_leaves.json | 0 .../acacia_undergrowth_leaves.json | 0 .../dtbop/blockstates/aspen_leaves.json | 0 .../dtbop/blockstates/aspen_sapling.json | 0 .../blockstates/cherry_twiglet_leaves.json | 0 .../blockstates/cypress_willow_leaves.json | 0 .../blockstates/dark_oak_twiglet_leaves.json | 0 .../dtbop/blockstates/dark_poplar_leaves.json | 0 .../blockstates/dark_poplar_sapling.json | 0 .../assets/dtbop/blockstates/dead_branch.json | 0 .../dtbop/blockstates/dying_leaves.json | 0 .../dtbop/blockstates/dying_sapling.json | 0 .../assets/dtbop/blockstates/fir_branch.json | 0 .../assets/dtbop/blockstates/fir_leaves.json | 0 .../assets/dtbop/blockstates/fir_sapling.json | 0 .../blockstates/flowering_oak_leaves.json | 0 .../blockstates/flowering_oak_sapling.json | 0 .../flowering_oak_undergrowth_leaves.json | 0 .../dtbop/blockstates/glowshroom_cap.json | 0 .../blockstates/glowshroom_cap_center.json | 0 .../dtbop/blockstates/glowshroom_sapling.json | 0 .../dtbop/blockstates/hellbark_branch.json | 0 .../blockstates/hellbark_bush_leaves.json | 0 .../dtbop/blockstates/hellbark_leaves.json | 0 .../dtbop/blockstates/hellbark_sapling.json | 0 .../dtbop/blockstates/jacaranda_branch.json | 0 .../dtbop/blockstates/jacaranda_leaves.json | 0 .../dtbop/blockstates/jacaranda_sapling.json | 0 .../blockstates/jungle_twiglet_leaves.json | 0 .../dtbop/blockstates/magic_branch.json | 0 .../blockstates/magic_poplar_leaves.json | 0 .../blockstates/magic_poplar_sapling.json | 0 .../dtbop/blockstates/mahogany_branch.json | 0 .../dtbop/blockstates/mahogany_leaves.json | 0 .../dtbop/blockstates/mahogany_sapling.json | 0 .../blockstates/mangrove_twiglet_leaves.json | 0 .../dtbop/blockstates/maple_branch.json | 0 .../blockstates/maple_twiglet_leaves.json | 0 .../blockstates/mega_dark_oak_leaves.json | 0 .../dtbop/blockstates/mega_fir_sapling.json | 0 .../blockstates/mega_umbran_sapling.json | 0 .../dtbop/blockstates/oak_twiglet_leaves.json | 0 .../blockstates/orange_maple_leaves.json | 0 .../blockstates/orange_maple_sapling.json | 0 .../assets/dtbop/blockstates/palm_branch.json | 0 .../assets/dtbop/blockstates/palm_leaves.json | 0 .../dtbop/blockstates/palm_sapling.json | 0 .../assets/dtbop/blockstates/pine_branch.json | 0 .../assets/dtbop/blockstates/pine_leaves.json | 0 .../dtbop/blockstates/pine_sapling.json | 0 .../dtbop/blockstates/poplar_leaves.json | 0 .../dtbop/blockstates/poplar_sapling.json | 0 .../blockstates/rainbow_birch_leaves.json | 0 .../blockstates/rainbow_birch_sapling.json | 0 .../dtbop/blockstates/red_maple_leaves.json | 0 .../dtbop/blockstates/red_maple_sapling.json | 0 .../dtbop/blockstates/redwood_branch.json | 0 .../dtbop/blockstates/redwood_leaves.json | 0 .../dtbop/blockstates/redwood_root.json | 0 .../dtbop/blockstates/redwood_sapling.json | 0 .../dtbop/blockstates/rooty_black_sand.json | 0 .../dtbop/blockstates/rooty_dried_salt.json | 0 .../blockstates/rooty_glowing_moss_block.json | 0 .../blockstates/rooty_mossy_black_sand.json | 0 .../dtbop/blockstates/rooty_orange_sand.json | 0 .../blockstates/rooty_origin_grass_block.json | 0 .../dtbop/blockstates/rooty_white_sand.json | 0 .../blockstates/silk_undergrowth_web.json | 0 .../assets/dtbop/blockstates/silk_web.json | 0 .../dtbop/blockstates/snowblossom_leaves.json | 0 .../blockstates/snowblossom_sapling.json | 0 .../snowblossom_twiglet_leaves.json | 0 .../blockstates/sparse_acacia_leaves.json | 0 .../dtbop/blockstates/sparse_oak_leaves.json | 0 .../blockstates/spruce_poplar_leaves.json | 0 .../blockstates/spruce_poplar_sapling.json | 0 .../blockstates/spruce_twiglet_leaves.json | 0 .../spruce_undergrowth_leaves.json | 0 .../blockstates/stripped_dead_branch.json | 0 .../blockstates/stripped_fir_branch.json | 0 .../blockstates/stripped_hellbark_branch.json | 0 .../stripped_jacaranda_branch.json | 0 .../blockstates/stripped_magic_branch.json | 0 .../blockstates/stripped_mahogany_branch.json | 0 .../blockstates/stripped_maple_branch.json | 0 .../blockstates/stripped_palm_branch.json | 0 .../blockstates/stripped_pine_branch.json | 0 .../blockstates/stripped_redwood_branch.json | 0 .../blockstates/stripped_umbran_branch.json | 0 .../blockstates/stripped_willow_branch.json | 0 .../dtbop/blockstates/toadstool_cap.json | 0 .../blockstates/toadstool_cap_center.json | 0 .../dtbop/blockstates/toadstool_sapling.json | 0 .../dtbop/blockstates/umbran_branch.json | 0 .../dtbop/blockstates/umbran_leaves.json | 0 .../dtbop/blockstates/umbran_sapling.json | 0 .../dtbop/blockstates/willow_branch.json | 0 .../dtbop/blockstates/willow_leaves.json | 0 .../dtbop/blockstates/willow_sapling.json | 0 .../blockstates/yellow_maple_leaves.json | 0 .../blockstates/yellow_maple_sapling.json | 0 .../resources/assets/dtbop/lang/en_us.json | 0 .../dtbop/models/block/dead_branch.json | 0 .../assets/dtbop/models/block/fir_branch.json | 0 .../dtbop/models/block/hellbark_branch.json | 0 .../dtbop/models/block/jacaranda_branch.json | 0 .../dtbop/models/block/magic_branch.json | 0 .../dtbop/models/block/mahogany_branch.json | 0 .../dtbop/models/block/maple_branch.json | 0 .../mushroom/glowshroom_cap_center_age0.json | 0 .../mushroom/toadstool_cap_center_age0.json | 0 .../dtbop/models/block/palm_branch.json | 0 .../block/palm_leaves/palm_core_bottom.json | 0 .../block/palm_leaves/palm_core_top.json | 0 .../models/block/palm_leaves/palm_frond.json | 0 .../dtbop/models/block/pine_branch.json | 0 .../dtbop/models/block/redwood_branch.json | 0 .../dtbop/models/block/redwood_root.json | 0 .../dtbop/models/block/saplings/aspen.json | 0 .../models/block/saplings/dark_poplar.json | 0 .../dtbop/models/block/saplings/dying.json | 0 .../dtbop/models/block/saplings/fir.json | 0 .../models/block/saplings/flowering_oak.json | 0 .../models/block/saplings/glowshroom.json | 0 .../dtbop/models/block/saplings/hellbark.json | 0 .../models/block/saplings/jacaranda.json | 0 .../models/block/saplings/magic_poplar.json | 0 .../dtbop/models/block/saplings/mahogany.json | 0 .../dtbop/models/block/saplings/mega_fir.json | 0 .../models/block/saplings/mega_umbran.json | 0 .../models/block/saplings/orange_maple.json | 0 .../dtbop/models/block/saplings/palm.json | 0 .../dtbop/models/block/saplings/pine.json | 0 .../dtbop/models/block/saplings/poplar.json | 0 .../models/block/saplings/rainbow_birch.json | 0 .../models/block/saplings/red_maple.json | 0 .../dtbop/models/block/saplings/redwood.json | 0 .../models/block/saplings/snowblossom.json | 0 .../models/block/saplings/spruce_poplar.json | 0 .../models/block/saplings/toadstool.json | 0 .../dtbop/models/block/saplings/umbran.json | 0 .../dtbop/models/block/saplings/willow.json | 0 .../models/block/saplings/yellow_maple.json | 0 .../models/block/stripped_dead_branch.json | 0 .../models/block/stripped_fir_branch.json | 0 .../block/stripped_hellbark_branch.json | 0 .../block/stripped_jacaranda_branch.json | 0 .../models/block/stripped_magic_branch.json | 0 .../block/stripped_mahogany_branch.json | 0 .../models/block/stripped_maple_branch.json | 0 .../models/block/stripped_palm_branch.json | 0 .../models/block/stripped_pine_branch.json | 0 .../models/block/stripped_redwood_branch.json | 0 .../models/block/stripped_umbran_branch.json | 0 .../models/block/stripped_willow_branch.json | 0 .../dtbop/models/block/umbran_branch.json | 0 .../dtbop/models/block/willow_branch.json | 0 .../assets/dtbop/models/item/aspen_seed.json | 0 .../dtbop/models/item/dark_poplar_seed.json | 0 .../assets/dtbop/models/item/dead_branch.json | 0 .../assets/dtbop/models/item/dying_seed.json | 0 .../assets/dtbop/models/item/fir_branch.json | 0 .../assets/dtbop/models/item/fir_seed.json | 0 .../dtbop/models/item/flowering_oak_seed.json | 0 .../dtbop/models/item/glowshroom_seed.json | 0 .../dtbop/models/item/hellbark_branch.json | 0 .../dtbop/models/item/hellbark_seed.json | 0 .../dtbop/models/item/jacaranda_branch.json | 0 .../dtbop/models/item/jacaranda_seed.json | 0 .../dtbop/models/item/magic_branch.json | 0 .../dtbop/models/item/magic_poplar_seed.json | 0 .../dtbop/models/item/mahogany_branch.json | 0 .../dtbop/models/item/mahogany_seed.json | 0 .../dtbop/models/item/maple_branch.json | 0 .../dtbop/models/item/mega_fir_seed.json | 0 .../dtbop/models/item/mega_umbran_seed.json | 0 .../dtbop/models/item/orange_maple_seed.json | 0 .../assets/dtbop/models/item/palm_branch.json | 0 .../assets/dtbop/models/item/palm_seed.json | 0 .../assets/dtbop/models/item/pine_branch.json | 0 .../assets/dtbop/models/item/pine_seed.json | 0 .../assets/dtbop/models/item/poplar_seed.json | 0 .../dtbop/models/item/rainbow_birch_seed.json | 0 .../dtbop/models/item/red_maple_seed.json | 0 .../dtbop/models/item/redwood_branch.json | 0 .../dtbop/models/item/redwood_seed.json | 0 .../dtbop/models/item/snowblossom_seed.json | 0 .../dtbop/models/item/spruce_poplar_seed.json | 0 .../dtbop/models/item/toadstool_seed.json | 0 .../dtbop/models/item/umbran_branch.json | 0 .../assets/dtbop/models/item/umbran_seed.json | 0 .../dtbop/models/item/willow_branch.json | 0 .../assets/dtbop/models/item/willow_seed.json | 0 .../dtbop/models/item/yellow_maple_seed.json | 0 .../assets/minecraft/atlases/blocks.json | 0 .../blocks/acacia_twiglet_leaves.json | 0 .../blocks/acacia_undergrowth_leaves.json | 0 .../dtbop/loot_table/blocks/aspen_leaves.json | 0 .../blocks/cherry_twiglet_leaves.json | 0 .../blocks/cypress_willow_leaves.json | 0 .../blocks/dark_oak_twiglet_leaves.json | 0 .../loot_table/blocks/dark_poplar_leaves.json | 0 .../dtbop/loot_table/blocks/dying_leaves.json | 0 .../dtbop/loot_table/blocks/fir_leaves.json | 0 .../blocks/flowering_oak_leaves.json | 0 .../flowering_oak_undergrowth_leaves.json | 0 .../loot_table/blocks/glowshroom_cap.json | 0 .../blocks/hellbark_bush_leaves.json | 0 .../loot_table/blocks/hellbark_leaves.json | 0 .../loot_table/blocks/jacaranda_leaves.json | 0 .../blocks/jungle_twiglet_leaves.json | 0 .../blocks/magic_poplar_leaves.json | 0 .../loot_table/blocks/mahogany_leaves.json | 0 .../blocks/mangrove_twiglet_leaves.json | 0 .../blocks/maple_twiglet_leaves.json | 0 .../blocks/mega_dark_oak_leaves.json | 0 .../loot_table/blocks/oak_twiglet_leaves.json | 0 .../blocks/orange_maple_leaves.json | 0 .../dtbop/loot_table/blocks/palm_leaves.json | 0 .../dtbop/loot_table/blocks/pine_leaves.json | 0 .../loot_table/blocks/poplar_leaves.json | 0 .../blocks/rainbow_birch_leaves.json | 0 .../loot_table/blocks/red_maple_leaves.json | 0 .../loot_table/blocks/redwood_leaves.json | 0 .../blocks/silk_undergrowth_web.json | 0 .../dtbop/loot_table/blocks/silk_web.json | 0 .../loot_table/blocks/snowblossom_leaves.json | 0 .../blocks/snowblossom_twiglet_leaves.json | 0 .../blocks/sparse_acacia_leaves.json | 0 .../loot_table/blocks/sparse_oak_leaves.json | 0 .../blocks/spruce_poplar_leaves.json | 0 .../blocks/spruce_twiglet_leaves.json | 0 .../blocks/spruce_undergrowth_leaves.json | 0 .../loot_table/blocks/toadstool_cap.json | 0 .../loot_table/blocks/umbran_leaves.json | 0 .../loot_table/blocks/willow_leaves.json | 0 .../blocks/yellow_maple_leaves.json | 0 .../dtbop/loot_table/trees/branches/dead.json | 0 .../dtbop/loot_table/trees/branches/fir.json | 0 .../loot_table/trees/branches/hellbark.json | 0 .../loot_table/trees/branches/jacaranda.json | 0 .../loot_table/trees/branches/magic.json | 0 .../loot_table/trees/branches/mahogany.json | 0 .../loot_table/trees/branches/maple.json | 0 .../dtbop/loot_table/trees/branches/palm.json | 0 .../dtbop/loot_table/trees/branches/pine.json | 0 .../loot_table/trees/branches/redwood.json | 0 .../trees/branches/stripped_dead.json | 0 .../trees/branches/stripped_fir.json | 0 .../trees/branches/stripped_hellbark.json | 0 .../trees/branches/stripped_jacaranda.json | 0 .../trees/branches/stripped_magic.json | 0 .../trees/branches/stripped_mahogany.json | 0 .../trees/branches/stripped_maple.json | 0 .../trees/branches/stripped_palm.json | 0 .../trees/branches/stripped_pine.json | 0 .../trees/branches/stripped_redwood.json | 0 .../trees/branches/stripped_umbran.json | 0 .../trees/branches/stripped_willow.json | 0 .../loot_table/trees/branches/umbran.json | 0 .../loot_table/trees/branches/willow.json | 0 .../trees/leaves/acacia_twiglet.json | 0 .../trees/leaves/acacia_undergrowth.json | 0 .../dtbop/loot_table/trees/leaves/aspen.json | 0 .../trees/leaves/cherry_twiglet.json | 0 .../trees/leaves/cypress_willow.json | 0 .../trees/leaves/dark_oak_twiglet.json | 0 .../loot_table/trees/leaves/dark_poplar.json | 0 .../dtbop/loot_table/trees/leaves/dying.json | 0 .../dtbop/loot_table/trees/leaves/fir.json | 0 .../trees/leaves/flowering_oak.json | 0 .../leaves/flowering_oak_undergrowth.json | 0 .../loot_table/trees/leaves/hellbark.json | 0 .../trees/leaves/hellbark_bush.json | 0 .../loot_table/trees/leaves/jacaranda.json | 0 .../trees/leaves/jungle_twiglet.json | 0 .../loot_table/trees/leaves/magic_poplar.json | 0 .../loot_table/trees/leaves/mahogany.json | 0 .../trees/leaves/mangrove_twiglet.json | 0 .../trees/leaves/maple_twiglet.json | 0 .../trees/leaves/mega_dark_oak.json | 0 .../loot_table/trees/leaves/oak_twiglet.json | 0 .../loot_table/trees/leaves/orange_maple.json | 0 .../dtbop/loot_table/trees/leaves/palm.json | 0 .../dtbop/loot_table/trees/leaves/pine.json | 0 .../dtbop/loot_table/trees/leaves/poplar.json | 0 .../trees/leaves/rainbow_birch.json | 0 .../loot_table/trees/leaves/red_maple.json | 0 .../loot_table/trees/leaves/redwood.json | 0 .../dtbop/loot_table/trees/leaves/silk.json | 0 .../trees/leaves/silk_undergrowth.json | 0 .../loot_table/trees/leaves/snowblossom.json | 0 .../trees/leaves/snowblossom_twiglet.json | 0 .../trees/leaves/sparse_acacia.json | 0 .../loot_table/trees/leaves/sparse_oak.json | 0 .../trees/leaves/spruce_poplar.json | 0 .../trees/leaves/spruce_twiglet.json | 0 .../trees/leaves/spruce_undergrowth.json | 0 .../dtbop/loot_table/trees/leaves/umbran.json | 0 .../dtbop/loot_table/trees/leaves/willow.json | 0 .../loot_table/trees/leaves/yellow_maple.json | 0 .../trees/mushroom_caps/glowshroom.json | 0 .../trees/mushroom_caps/toadstool.json | 0 .../loot_table/trees/voluntary/aspen.json | 0 .../trees/voluntary/dark_poplar.json | 0 .../loot_table/trees/voluntary/dying.json | 0 .../dtbop/loot_table/trees/voluntary/fir.json | 0 .../trees/voluntary/flowering_oak.json | 0 .../trees/voluntary/glowshroom.json | 0 .../loot_table/trees/voluntary/hellbark.json | 0 .../loot_table/trees/voluntary/jacaranda.json | 0 .../trees/voluntary/magic_poplar.json | 0 .../loot_table/trees/voluntary/mahogany.json | 0 .../loot_table/trees/voluntary/mega_fir.json | 0 .../trees/voluntary/mega_umbran.json | 0 .../trees/voluntary/orange_maple.json | 0 .../loot_table/trees/voluntary/palm.json | 0 .../loot_table/trees/voluntary/pine.json | 0 .../loot_table/trees/voluntary/poplar.json | 0 .../trees/voluntary/rainbow_birch.json | 0 .../loot_table/trees/voluntary/red_maple.json | 0 .../loot_table/trees/voluntary/redwood.json | 0 .../trees/voluntary/snowblossom.json | 0 .../trees/voluntary/spruce_poplar.json | 0 .../loot_table/trees/voluntary/toadstool.json | 0 .../loot_table/trees/voluntary/umbran.json | 0 .../loot_table/trees/voluntary/willow.json | 0 .../trees/voluntary/yellow_maple.json | 0 .../dynamictrees/tags/block/branches.json | 0 .../tags/block/branches_that_burn.json | 0 .../dynamictrees/tags/block/fungus_caps.json | 0 .../data/dynamictrees/tags/block/leaves.json | 0 .../dynamictrees/tags/block/rooty_soil.json | 0 .../dynamictrees/tags/block/saplings.json | 0 .../tags/block/stripped_branches.json | 0 .../block/stripped_branches_that_burn.json | 0 .../data/dynamictrees/tags/item/branches.json | 0 .../tags/item/branches_that_burn.json | 0 .../dynamictrees/tags/item/fungus_caps.json | 0 .../data/dynamictrees/tags/item/seeds.json | 0 src/main/resources/fabric.mod.json | 28 + .../trees/dtbop/world_gen/default.json | 609 ++++++++++-------- .../dtbop/world_gen/feature_cancellers.json | 41 +- 377 files changed, 520 insertions(+), 1004 deletions(-) rename {src/main/resources/trees/dtbop => _disabled_dtplus}/cap_properties/glowshroom.json (100%) rename {src/main/resources/trees/dtbop => _disabled_dtplus}/cap_properties/toadstool.json (100%) rename {src/main/resources/trees/dtbop => _disabled_dtplus}/species/glowshroom.json (100%) rename {src/main/resources/trees/dtbop => _disabled_dtplus}/species/mini_brown_mushroom.json (100%) rename {src/main/resources/trees/dtbop => _disabled_dtplus}/species/toadstool.json (100%) delete mode 100644 src/generated/resources/.cache/0069ca169c2de5d53f23a4ff03402b37e7235b5a delete mode 100644 src/generated/resources/.cache/0851b20788e592b1bab76813dc345362998d2eca delete mode 100644 src/generated/resources/.cache/449f59139f73553807c657f26d096524cc4a39e5 delete mode 100644 src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d delete mode 100644 src/generated/resources/.cache/75df2d9e042f833c17d6f2454c7b4de55a3bcc64 delete mode 100644 src/generated/resources/.cache/966c94fbc8a8ffde6970b7e2b557133c95999129 delete mode 100644 src/generated/resources/.cache/e0535b00759b7a044714c01332f1f5cc305ccbec delete mode 100644 src/main/java/com/dtteam/dtbop/DTBOPPlusRegistries.java delete mode 100644 src/main/java/com/dtteam/dtbop/block/GlowShroomCapProperties.java delete mode 100644 src/main/java/com/dtteam/dtbop/tree/GlowshroomSpecies.java delete mode 100644 src/main/resources/META-INF/neoforge.mods.toml rename src/{generated => main}/resources/assets/dtbop/blockstates/acacia_twiglet_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/acacia_undergrowth_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/aspen_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/aspen_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/cherry_twiglet_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/cypress_willow_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/dark_oak_twiglet_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/dark_poplar_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/dark_poplar_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/dead_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/dying_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/dying_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/fir_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/fir_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/fir_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/flowering_oak_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/flowering_oak_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/flowering_oak_undergrowth_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/glowshroom_cap.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/glowshroom_cap_center.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/glowshroom_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/hellbark_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/hellbark_bush_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/hellbark_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/hellbark_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/jacaranda_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/jacaranda_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/jacaranda_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/jungle_twiglet_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/magic_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/magic_poplar_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/magic_poplar_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/mahogany_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/mahogany_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/mahogany_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/mangrove_twiglet_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/maple_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/maple_twiglet_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/mega_dark_oak_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/mega_fir_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/mega_umbran_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/oak_twiglet_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/orange_maple_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/orange_maple_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/palm_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/palm_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/palm_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/pine_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/pine_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/pine_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/poplar_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/poplar_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/rainbow_birch_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/rainbow_birch_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/red_maple_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/red_maple_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/redwood_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/redwood_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/redwood_root.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/redwood_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/rooty_black_sand.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/rooty_dried_salt.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/rooty_glowing_moss_block.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/rooty_mossy_black_sand.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/rooty_orange_sand.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/rooty_origin_grass_block.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/rooty_white_sand.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/silk_undergrowth_web.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/silk_web.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/snowblossom_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/snowblossom_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/snowblossom_twiglet_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/sparse_acacia_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/sparse_oak_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/spruce_poplar_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/spruce_poplar_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/spruce_twiglet_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/spruce_undergrowth_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_dead_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_fir_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_hellbark_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_jacaranda_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_magic_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_mahogany_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_maple_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_palm_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_pine_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_redwood_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_umbran_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/stripped_willow_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/toadstool_cap.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/toadstool_cap_center.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/toadstool_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/umbran_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/umbran_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/umbran_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/willow_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/willow_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/willow_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/yellow_maple_leaves.json (100%) rename src/{generated => main}/resources/assets/dtbop/blockstates/yellow_maple_sapling.json (100%) rename src/{generated => main}/resources/assets/dtbop/lang/en_us.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/dead_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/fir_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/hellbark_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/jacaranda_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/magic_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/mahogany_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/maple_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/mushroom/glowshroom_cap_center_age0.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/mushroom/toadstool_cap_center_age0.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/palm_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/palm_leaves/palm_core_bottom.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/palm_leaves/palm_core_top.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/palm_leaves/palm_frond.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/pine_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/redwood_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/redwood_root.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/aspen.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/dark_poplar.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/dying.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/fir.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/flowering_oak.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/glowshroom.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/hellbark.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/jacaranda.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/magic_poplar.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/mahogany.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/mega_fir.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/mega_umbran.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/orange_maple.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/palm.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/pine.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/poplar.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/rainbow_birch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/red_maple.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/redwood.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/snowblossom.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/spruce_poplar.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/toadstool.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/umbran.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/willow.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/saplings/yellow_maple.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_dead_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_fir_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_hellbark_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_jacaranda_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_magic_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_mahogany_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_maple_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_palm_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_pine_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_redwood_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_umbran_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/stripped_willow_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/umbran_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/block/willow_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/aspen_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/dark_poplar_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/dead_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/dying_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/fir_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/fir_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/flowering_oak_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/glowshroom_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/hellbark_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/hellbark_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/jacaranda_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/jacaranda_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/magic_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/magic_poplar_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/mahogany_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/mahogany_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/maple_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/mega_fir_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/mega_umbran_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/orange_maple_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/palm_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/palm_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/pine_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/pine_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/poplar_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/rainbow_birch_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/red_maple_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/redwood_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/redwood_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/snowblossom_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/spruce_poplar_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/toadstool_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/umbran_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/umbran_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/willow_branch.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/willow_seed.json (100%) rename src/{generated => main}/resources/assets/dtbop/models/item/yellow_maple_seed.json (100%) rename src/{generated => main}/resources/assets/minecraft/atlases/blocks.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/acacia_twiglet_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/acacia_undergrowth_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/aspen_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/cherry_twiglet_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/cypress_willow_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/dark_oak_twiglet_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/dark_poplar_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/dying_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/fir_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/flowering_oak_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/glowshroom_cap.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/hellbark_bush_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/hellbark_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/jacaranda_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/jungle_twiglet_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/magic_poplar_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/mahogany_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/mangrove_twiglet_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/maple_twiglet_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/mega_dark_oak_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/oak_twiglet_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/orange_maple_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/palm_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/pine_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/poplar_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/rainbow_birch_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/red_maple_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/redwood_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/silk_undergrowth_web.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/silk_web.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/snowblossom_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/snowblossom_twiglet_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/sparse_acacia_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/sparse_oak_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/spruce_poplar_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/spruce_twiglet_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/spruce_undergrowth_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/toadstool_cap.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/umbran_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/willow_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/blocks/yellow_maple_leaves.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/dead.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/fir.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/hellbark.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/jacaranda.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/magic.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/mahogany.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/maple.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/palm.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/pine.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/redwood.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_dead.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_fir.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_hellbark.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_jacaranda.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_magic.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_mahogany.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_maple.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_palm.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_pine.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_redwood.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_umbran.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/stripped_willow.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/umbran.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/branches/willow.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/acacia_twiglet.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/acacia_undergrowth.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/aspen.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/cherry_twiglet.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/cypress_willow.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/dark_oak_twiglet.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/dark_poplar.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/dying.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/fir.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/flowering_oak.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/flowering_oak_undergrowth.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/hellbark.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/hellbark_bush.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/jacaranda.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/jungle_twiglet.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/magic_poplar.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/mahogany.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/mangrove_twiglet.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/maple_twiglet.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/mega_dark_oak.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/oak_twiglet.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/orange_maple.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/palm.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/pine.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/poplar.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/rainbow_birch.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/red_maple.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/redwood.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/silk.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/silk_undergrowth.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/snowblossom.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/snowblossom_twiglet.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/sparse_acacia.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/sparse_oak.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/spruce_poplar.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/spruce_twiglet.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/spruce_undergrowth.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/umbran.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/willow.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/leaves/yellow_maple.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/mushroom_caps/glowshroom.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/mushroom_caps/toadstool.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/aspen.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/dark_poplar.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/dying.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/fir.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/flowering_oak.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/glowshroom.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/hellbark.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/jacaranda.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/magic_poplar.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/mahogany.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/mega_fir.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/mega_umbran.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/orange_maple.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/palm.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/pine.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/poplar.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/rainbow_birch.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/red_maple.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/redwood.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/snowblossom.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/spruce_poplar.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/toadstool.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/umbran.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/willow.json (100%) rename src/{generated => main}/resources/data/dtbop/loot_table/trees/voluntary/yellow_maple.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/block/branches.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/block/branches_that_burn.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/block/fungus_caps.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/block/leaves.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/block/rooty_soil.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/block/saplings.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/block/stripped_branches.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/block/stripped_branches_that_burn.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/item/branches.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/item/branches_that_burn.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/item/fungus_caps.json (100%) rename src/{generated => main}/resources/data/dynamictrees/tags/item/seeds.json (100%) create mode 100644 src/main/resources/fabric.mod.json diff --git a/src/main/resources/trees/dtbop/cap_properties/glowshroom.json b/_disabled_dtplus/cap_properties/glowshroom.json similarity index 100% rename from src/main/resources/trees/dtbop/cap_properties/glowshroom.json rename to _disabled_dtplus/cap_properties/glowshroom.json diff --git a/src/main/resources/trees/dtbop/cap_properties/toadstool.json b/_disabled_dtplus/cap_properties/toadstool.json similarity index 100% rename from src/main/resources/trees/dtbop/cap_properties/toadstool.json rename to _disabled_dtplus/cap_properties/toadstool.json diff --git a/src/main/resources/trees/dtbop/species/glowshroom.json b/_disabled_dtplus/species/glowshroom.json similarity index 100% rename from src/main/resources/trees/dtbop/species/glowshroom.json rename to _disabled_dtplus/species/glowshroom.json diff --git a/src/main/resources/trees/dtbop/species/mini_brown_mushroom.json b/_disabled_dtplus/species/mini_brown_mushroom.json similarity index 100% rename from src/main/resources/trees/dtbop/species/mini_brown_mushroom.json rename to _disabled_dtplus/species/mini_brown_mushroom.json diff --git a/src/main/resources/trees/dtbop/species/toadstool.json b/_disabled_dtplus/species/toadstool.json similarity index 100% rename from src/main/resources/trees/dtbop/species/toadstool.json rename to _disabled_dtplus/species/toadstool.json diff --git a/src/generated/resources/.cache/0069ca169c2de5d53f23a4ff03402b37e7235b5a b/src/generated/resources/.cache/0069ca169c2de5d53f23a4ff03402b37e7235b5a deleted file mode 100644 index 8c493a2..0000000 --- a/src/generated/resources/.cache/0069ca169c2de5d53f23a4ff03402b37e7235b5a +++ /dev/null @@ -1,2 +0,0 @@ -// 1.21.1 2025-12-01T22:30:37.9435262 Languages: en_us for mod: dtbop -3afad95772e255495ee5bd43c90ca5cb0ce6b45c assets/dtbop/lang/en_us.json diff --git a/src/generated/resources/.cache/0851b20788e592b1bab76813dc345362998d2eca b/src/generated/resources/.cache/0851b20788e592b1bab76813dc345362998d2eca deleted file mode 100644 index 6f2a7cd..0000000 --- a/src/generated/resources/.cache/0851b20788e592b1bab76813dc345362998d2eca +++ /dev/null @@ -1,2 +0,0 @@ -// 1.21.1 2025-12-01T13:19:00.5926539 atlases generator for dtbop -670fea57fa387dae01d6c86b9056d236c2ff6102 assets/minecraft/atlases/blocks.json diff --git a/src/generated/resources/.cache/449f59139f73553807c657f26d096524cc4a39e5 b/src/generated/resources/.cache/449f59139f73553807c657f26d096524cc4a39e5 deleted file mode 100644 index 90020cd..0000000 --- a/src/generated/resources/.cache/449f59139f73553807c657f26d096524cc4a39e5 +++ /dev/null @@ -1,38 +0,0 @@ -// 1.21.1 2025-12-01T22:30:37.941447 Item Models: dtbop -ade5754df509f6d25d52becd0fa3b13557895d00 assets/dtbop/models/item/aspen_seed.json -757a773a2e30ec3a56956b78c1aa466d019a57c2 assets/dtbop/models/item/dark_poplar_seed.json -8387fc1da79a190fe364f0c818e919908add4803 assets/dtbop/models/item/dead_branch.json -dbff7764e5b9b880e2ed4b8d152285181e37bbc4 assets/dtbop/models/item/dying_seed.json -b5ad633a29b28a5a380737ea4c1e5719434c9586 assets/dtbop/models/item/fir_branch.json -a7a29a8d75b2e284f81589b095bf58ac1f3f0934 assets/dtbop/models/item/fir_seed.json -72addc9c5309de0ff993a49c3407919570a78683 assets/dtbop/models/item/flowering_oak_seed.json -50f1b8eabef02b1c9b3688e33f777ec3c732504c assets/dtbop/models/item/glowshroom_seed.json -ff3789715b68536d054f7091d3ece030b29fc2a3 assets/dtbop/models/item/hellbark_branch.json -a3c9ee6b7916fe29c80e0b5884baeba7994fe0b6 assets/dtbop/models/item/hellbark_seed.json -6adba7121ed8a55a2ac29ef4a03a55f07c241363 assets/dtbop/models/item/jacaranda_branch.json -032d730f89094f8ff2f56bf8cdcf0863497ecd67 assets/dtbop/models/item/jacaranda_seed.json -4266fe8ccaadaa1e77915fecae518645544500d2 assets/dtbop/models/item/magic_branch.json -d1ae1da063054c35887b89179fcf4ed6369f8efd assets/dtbop/models/item/magic_poplar_seed.json -bbe6a75648f35767f9cc3f26cc34f262de577c53 assets/dtbop/models/item/mahogany_branch.json -2140ad2fd60535a9489392bf78ad8c220378d1a6 assets/dtbop/models/item/mahogany_seed.json -4229d81021f705a8cfeec2b46cb190f087ea8b89 assets/dtbop/models/item/maple_branch.json -e347bbee2d063d701f4fb27f8bb401aa72ce127a assets/dtbop/models/item/mega_fir_seed.json -65d55ebf0232780956800fba457971031befedfb assets/dtbop/models/item/mega_umbran_seed.json -32da3cff73c6cd04caaa739dfa4a9b367c338fa3 assets/dtbop/models/item/orange_maple_seed.json -a2059bb15b2ccb41208b7995306abe37e7e11e7b assets/dtbop/models/item/palm_branch.json -aee61a71cf7db02c7c47c49aab4717a8bd848c94 assets/dtbop/models/item/palm_seed.json -e949f814f3692f8d95b3488ea36b1244045be09e assets/dtbop/models/item/pine_branch.json -44824f5d1f7429b2e4593c473648fff7b7f362f9 assets/dtbop/models/item/pine_seed.json -450593c24566743045f74edf58d4b31507b708f6 assets/dtbop/models/item/poplar_seed.json -4cb7ea9bcf6f850538b710b97b00e09c2539586c assets/dtbop/models/item/rainbow_birch_seed.json -31226fa39fbf28253dd57f35711dd923adec9760 assets/dtbop/models/item/redwood_branch.json -3056949cf390f772d26a629f2673240a09a6a3bb assets/dtbop/models/item/redwood_seed.json -56a5dd476967e6c88815814a154ce1fa3c32776b assets/dtbop/models/item/red_maple_seed.json -4e0c20b80a0bbe2e61dbdfe2ff14a68c910335f9 assets/dtbop/models/item/snowblossom_seed.json -dedd4155aea04122028381d8015741c8c9b64609 assets/dtbop/models/item/spruce_poplar_seed.json -a7222f070a679d9141020c8761e77ce3ad22bc8d assets/dtbop/models/item/toadstool_seed.json -9d0ff256a7a6e5700ca98041bf78331fc09cb35d assets/dtbop/models/item/umbran_branch.json -d5bed5109869e5263211316c4ff8020b8dafa112 assets/dtbop/models/item/umbran_seed.json -0d373da7df9af82084f2d79104506d804009c206 assets/dtbop/models/item/willow_branch.json -63b895f706373f70a095668ae02f94d48566d0c1 assets/dtbop/models/item/willow_seed.json -ce28805119196121e03d80a6fff3fab1a128da95 assets/dtbop/models/item/yellow_maple_seed.json diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d deleted file mode 100644 index 1a7763d..0000000 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ /dev/null @@ -1,134 +0,0 @@ -// 1.21.1 2025-12-01T22:30:37.941447 Loot Tables -dd2729e31597b4a7591caf6999834584a3153104 data/dtbop/loot_table/blocks/acacia_twiglet_leaves.json -64a8eb8206e1dcabbe5a120653d35e1c856aea03 data/dtbop/loot_table/blocks/acacia_undergrowth_leaves.json -0db1cc794e7724a2dfd9cc63f660fd0d558f54dc data/dtbop/loot_table/blocks/aspen_leaves.json -9c44167b664783eaf935fbf169b03bea0e008266 data/dtbop/loot_table/blocks/cherry_twiglet_leaves.json -2a0c71aee4d695df552c2a7a6e648488e2ec4c19 data/dtbop/loot_table/blocks/cypress_willow_leaves.json -bb6d260de24769a04116625e0a7d418ea4f0c917 data/dtbop/loot_table/blocks/dark_oak_twiglet_leaves.json -3dd3e2314e8f9ae4d0ca4552101519682d328f08 data/dtbop/loot_table/blocks/dark_poplar_leaves.json -93b0671ad39eb69bca332924875fb9f95381997f data/dtbop/loot_table/blocks/dying_leaves.json -cb2cc4858e65c74b1c34fdd008138a9a790fa4ef data/dtbop/loot_table/blocks/fir_leaves.json -189a58697586e7e909a628f72b65d1b00f721c8d data/dtbop/loot_table/blocks/flowering_oak_leaves.json -4df944a14e669d91332bbedef6889c21929a446b data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json -c518387b6a08d0f2dce1b404a48c32d1d9ad6420 data/dtbop/loot_table/blocks/glowshroom_cap.json -a786aa1d339344d5b874a9f73f1328fee8da4a1c data/dtbop/loot_table/blocks/hellbark_bush_leaves.json -5fdb2b0bbd2c9209d0fb499fd1bce18230a6db05 data/dtbop/loot_table/blocks/hellbark_leaves.json -546d8d8159a301c09a9eaeeb615d5efcbbbed0e4 data/dtbop/loot_table/blocks/jacaranda_leaves.json -c8e62fa1bd057f64916c138f88de74aeae0c1086 data/dtbop/loot_table/blocks/jungle_twiglet_leaves.json -c70404de940aefc7288be329310ababa598917b1 data/dtbop/loot_table/blocks/magic_poplar_leaves.json -e39b1f61a2d76cad6e462a59c5db607200541ed2 data/dtbop/loot_table/blocks/mahogany_leaves.json -a03c146db80da42c03a53b506ff9eb1e0f7136e5 data/dtbop/loot_table/blocks/mangrove_twiglet_leaves.json -1f0cf23d9a7c20808c6e359d408ad1cb66ad22a3 data/dtbop/loot_table/blocks/maple_twiglet_leaves.json -3b11fea063bd7b17cce4f2af50d933b3ea0e6c82 data/dtbop/loot_table/blocks/mega_dark_oak_leaves.json -21d25df6869587bf634794b39232a38623c246db data/dtbop/loot_table/blocks/oak_twiglet_leaves.json -bf4f9e12122970ea0ba0a0211f1678e3001ab637 data/dtbop/loot_table/blocks/orange_maple_leaves.json -db3dbc4d68265c8f864c82a70f9502fe8345aafe data/dtbop/loot_table/blocks/palm_leaves.json -d9d96913ca8b1cf5a08fe431c51e847c1d484c88 data/dtbop/loot_table/blocks/pine_leaves.json -7e3a809c729ffd70e32f3d91f13e4961c1028c9c data/dtbop/loot_table/blocks/poplar_leaves.json -42ee6806cefaa38adb0e5fe04cae238a488d81db data/dtbop/loot_table/blocks/rainbow_birch_leaves.json -55433eeeecbb203490bb17f7271ae47fabec9221 data/dtbop/loot_table/blocks/redwood_leaves.json -85f8256e15791c3424145e3289e021cec94cc2c1 data/dtbop/loot_table/blocks/red_maple_leaves.json -0359b220223dc9e64a307d80bcea2242eadc1a3d data/dtbop/loot_table/blocks/silk_undergrowth_web.json -8374d2a9bc94b7abfc505d3c2ae4e1a9b28dd652 data/dtbop/loot_table/blocks/silk_web.json -ee48e451d46584a2572860ad9243d7cabe3550a0 data/dtbop/loot_table/blocks/snowblossom_leaves.json -bc8dd41e1d981f1f61545286956495d9f92cf401 data/dtbop/loot_table/blocks/snowblossom_twiglet_leaves.json -f8cae65b457131d4cd995449646ce8433ea6b4d7 data/dtbop/loot_table/blocks/sparse_acacia_leaves.json -70a0be2cb545b33dd37e68c9ff3c40d2792f0c12 data/dtbop/loot_table/blocks/sparse_oak_leaves.json -6288cdccc294b5ea1dee9c37f3971144409d460b data/dtbop/loot_table/blocks/spruce_poplar_leaves.json -980ae6c23af4e5030944050f215877786430f765 data/dtbop/loot_table/blocks/spruce_twiglet_leaves.json -7eb66ef9f34929a39950d98e2daa9bd384ae34cb data/dtbop/loot_table/blocks/spruce_undergrowth_leaves.json -2bb2d726cab2e5e46eb3950655e47f4ca21e522c data/dtbop/loot_table/blocks/toadstool_cap.json -e326d96ce43eb61ff1996528ab4ab18a415a33c5 data/dtbop/loot_table/blocks/umbran_leaves.json -69ae35ee77dc9622387be4e55d0b5db3514542c4 data/dtbop/loot_table/blocks/willow_leaves.json -65c18feea6dca94ba43dbb9f86e44458fee75e82 data/dtbop/loot_table/blocks/yellow_maple_leaves.json -b962b7a0dfc7828f77a1ff5d9af826484dbec410 data/dtbop/loot_table/trees/branches/dead.json -30ead038c2f18039823af81c5dc33998952b8187 data/dtbop/loot_table/trees/branches/fir.json -56bb5e39c874ce69165cbaaf0fad63e007525e70 data/dtbop/loot_table/trees/branches/hellbark.json -d5dc7a891ac7b7cbc2a280d4e4324dcb6c19211a data/dtbop/loot_table/trees/branches/jacaranda.json -2a9b0d0860b8a562c9ef01ea423b31b115c0ce16 data/dtbop/loot_table/trees/branches/magic.json -aca1a7fb844037c314ef83f086dbbab1025eada1 data/dtbop/loot_table/trees/branches/mahogany.json -b47bf5cc5b3379281d7ae0fec655c501d3f634dc data/dtbop/loot_table/trees/branches/maple.json -3d396427343dfbd5967a48c35a3ad82ca352921d data/dtbop/loot_table/trees/branches/palm.json -f23f964dc3efdda53843444b87bb2f84edf7e948 data/dtbop/loot_table/trees/branches/pine.json -4d979ee35d76676f5835adf5d1400010c20d3972 data/dtbop/loot_table/trees/branches/redwood.json -11e5bfcb1d472b688ecd3211f4a3ad501dd719d6 data/dtbop/loot_table/trees/branches/stripped_dead.json -76b805a22170660e5d8b035bfaa5ceacefa0970a data/dtbop/loot_table/trees/branches/stripped_fir.json -fca20e552061f889fd6494a22f800ea66fc81d76 data/dtbop/loot_table/trees/branches/stripped_hellbark.json -61b273757f0c19bd0653f92c4ac9b4a1c7c64549 data/dtbop/loot_table/trees/branches/stripped_jacaranda.json -298bb69f5509e0996b19f6552c4b5eef650258b1 data/dtbop/loot_table/trees/branches/stripped_magic.json -2155808ad42afd6b5401c54c6095fe9fea42b680 data/dtbop/loot_table/trees/branches/stripped_mahogany.json -10aef2a19a35c87e566a9da084d1f68502877015 data/dtbop/loot_table/trees/branches/stripped_maple.json -10be5a79cbfa725c2be949a32b87fece840de7aa data/dtbop/loot_table/trees/branches/stripped_palm.json -bed21b2ced55821e2a289ff9fe831e07948a2873 data/dtbop/loot_table/trees/branches/stripped_pine.json -2abf586a2fd6f3e1b744c8bbac180ba09201489f data/dtbop/loot_table/trees/branches/stripped_redwood.json -b14a701cd45b555f1606d1261dac90f39f1ae9eb data/dtbop/loot_table/trees/branches/stripped_umbran.json -9657fbf1e35e036b089503e94faffb5fcb507137 data/dtbop/loot_table/trees/branches/stripped_willow.json -713eeaff52face42113187209dc0a8fd824ed5ff data/dtbop/loot_table/trees/branches/umbran.json -d45564691c68d1b0fb683264bed4d86eaabaf97c data/dtbop/loot_table/trees/branches/willow.json -717f7643c28a65c637a02414c7fb6541af1d0163 data/dtbop/loot_table/trees/leaves/acacia_twiglet.json -6d5b89eea27530119380966c94f3c0794503f328 data/dtbop/loot_table/trees/leaves/acacia_undergrowth.json -3e1f4fee87acef4eab8db2ecdea9ff11d8319aff data/dtbop/loot_table/trees/leaves/aspen.json -03f361560d0c7d95fb3f890ec2b5213032ee0b16 data/dtbop/loot_table/trees/leaves/cherry_twiglet.json -3c500b565f2c3f638c586a880c1a50db231430df data/dtbop/loot_table/trees/leaves/cypress_willow.json -2fd577239246de801feaad0074d0840bc1a6eb3b data/dtbop/loot_table/trees/leaves/dark_oak_twiglet.json -f85934369f0160346c7b745273150ceef0003525 data/dtbop/loot_table/trees/leaves/dark_poplar.json -d593a5555385d2d7a3ea06e1622a635344aa8803 data/dtbop/loot_table/trees/leaves/dying.json -689429816210b4ac26e6924f4fff4b5d213371be data/dtbop/loot_table/trees/leaves/fir.json -936d56419a99b137a1ac64476c7d8aec45d00211 data/dtbop/loot_table/trees/leaves/flowering_oak.json -962300be9e97db702e2ebd9eeb6b01cb79479415 data/dtbop/loot_table/trees/leaves/flowering_oak_undergrowth.json -3b28471f177ea9279657d675eeffd6f5d4612150 data/dtbop/loot_table/trees/leaves/hellbark.json -411643174a807258cdd4c6092f3760546c1671a3 data/dtbop/loot_table/trees/leaves/hellbark_bush.json -baa6eb1c6b485de971285bf57a404dfbae03b5c2 data/dtbop/loot_table/trees/leaves/jacaranda.json -f0c56ff07ae1f1289e441b303d7711c6b7e0b5e5 data/dtbop/loot_table/trees/leaves/jungle_twiglet.json -8cb5a1a074407b078070afb0b6c3b6f9cbb744da data/dtbop/loot_table/trees/leaves/magic_poplar.json -ccd95a4994c9f2739b0b12aaeafde4a07c128f09 data/dtbop/loot_table/trees/leaves/mahogany.json -97e97eea91ea52e9aecb53d34bec3ec65af70696 data/dtbop/loot_table/trees/leaves/mangrove_twiglet.json -f8c3fde23539bce4adf7607600f6ae2d42cd34fc data/dtbop/loot_table/trees/leaves/maple_twiglet.json -f1276880db20348077b0bed40dbf6c6b76e7009d data/dtbop/loot_table/trees/leaves/mega_dark_oak.json -f0f1bfd4d7ae074b60914c1b5b294c8d11f7b276 data/dtbop/loot_table/trees/leaves/oak_twiglet.json -0d4a6ec1d54357a438987cec1ec53f77bd90be03 data/dtbop/loot_table/trees/leaves/orange_maple.json -4ac890006e33ef72725ea37d463fcf4aab1a6e8a data/dtbop/loot_table/trees/leaves/palm.json -79a41787a95550f4404c2ff422b6c9a175523bbe data/dtbop/loot_table/trees/leaves/pine.json -026988221906a5f680d9df512e5650357f72fa67 data/dtbop/loot_table/trees/leaves/poplar.json -6299ab9575e4b33ef7682e400e7d44e33e5c315a data/dtbop/loot_table/trees/leaves/rainbow_birch.json -3361a561a3c4278b46dabcf32e8ed8d02c0de968 data/dtbop/loot_table/trees/leaves/redwood.json -c48916fc66cd79c6cea5f2abaef3104da8b6dd1f data/dtbop/loot_table/trees/leaves/red_maple.json -60e85eeb9e9c4977bfd4d7557a97dee43e4da447 data/dtbop/loot_table/trees/leaves/silk.json -4b1ef9b45bf3030916f10e0302cfe02348bed981 data/dtbop/loot_table/trees/leaves/silk_undergrowth.json -0f73f4a3b836d476bc716784302b66b734080d4d data/dtbop/loot_table/trees/leaves/snowblossom.json -15f1b01d020c65138dd3de86803233a8cff5736b data/dtbop/loot_table/trees/leaves/snowblossom_twiglet.json -5d998e37cbc1cd74292f18028fb1a0b77e4a5707 data/dtbop/loot_table/trees/leaves/sparse_acacia.json -7c3a53f0e08d8b04928e88e190ae616ba4fe9f38 data/dtbop/loot_table/trees/leaves/sparse_oak.json -db74b2c1637e74a2d34a28a0ca2ff6976237b4cf data/dtbop/loot_table/trees/leaves/spruce_poplar.json -31adb1029bec8bc60fa25164cb90f766111e350c data/dtbop/loot_table/trees/leaves/spruce_twiglet.json -f6e37ddf10c606e79f8d9319f9b239374356a9c2 data/dtbop/loot_table/trees/leaves/spruce_undergrowth.json -86ef4d1fb68c04ad0a0cb19ad1de861630b445ba data/dtbop/loot_table/trees/leaves/umbran.json -9a71e755f220951b3c7b3896f266b138ed4ea478 data/dtbop/loot_table/trees/leaves/willow.json -1421316563f820d6f8a986d7a1658a0937167bbe data/dtbop/loot_table/trees/leaves/yellow_maple.json -8d339aef87a394f970a7c8d48d8bf1ba5faa4ec1 data/dtbop/loot_table/trees/mushroom_caps/glowshroom.json -faa7d18c06bee6060f227ecd7191881eba737153 data/dtbop/loot_table/trees/mushroom_caps/toadstool.json -c821be76392aced039bbc89073f396ceaaac717a data/dtbop/loot_table/trees/voluntary/aspen.json -376e651d731e339b2e65ec1d5d3c93952c46a17c data/dtbop/loot_table/trees/voluntary/dark_poplar.json -cffeb1fd356442b3607a06c2e27c4ca8301b909c data/dtbop/loot_table/trees/voluntary/dying.json -cdfca46b8b55990cb40be700cb07171feb3a447d data/dtbop/loot_table/trees/voluntary/fir.json -e88dd656cfaba5fd47cc13728a5296cabb719326 data/dtbop/loot_table/trees/voluntary/flowering_oak.json -9a1a0b05a178ff58cc79b8150d9c13fddea60415 data/dtbop/loot_table/trees/voluntary/glowshroom.json -73281e6f099d83c1d1aac1dda5a9b6bc7582c54f data/dtbop/loot_table/trees/voluntary/hellbark.json -95ffb3139149e4733b995b638ede8c33588ec689 data/dtbop/loot_table/trees/voluntary/jacaranda.json -fe48fec854d57285395c472db42849a38fa39178 data/dtbop/loot_table/trees/voluntary/magic_poplar.json -9353413253b0a8c07d21b8fcc8f161057574251e data/dtbop/loot_table/trees/voluntary/mahogany.json -49a4c71de93a227d02d80d83a2a9bd28493e0c3f data/dtbop/loot_table/trees/voluntary/mega_fir.json -12b287e6fe322ae786b6aff74a3eb425e2e27dd4 data/dtbop/loot_table/trees/voluntary/mega_umbran.json -f372dd9bcda27170b318a228e623a20c05877784 data/dtbop/loot_table/trees/voluntary/orange_maple.json -b4001463c65acccf9c8e81e4e142fc163657397d data/dtbop/loot_table/trees/voluntary/palm.json -b903cb1a91ac040b9e5d90ddc83ea755d6cd3ef7 data/dtbop/loot_table/trees/voluntary/pine.json -a5908ab00c7de745ac06b5409048710a72587292 data/dtbop/loot_table/trees/voluntary/poplar.json -221beb844ec3d59dff078b19a65d5fd4559ed42c data/dtbop/loot_table/trees/voluntary/rainbow_birch.json -efed628466285151f84b7aa5e905068f2ee17b64 data/dtbop/loot_table/trees/voluntary/redwood.json -4449c9c433fc08866c88b437fe40de78328aab8f data/dtbop/loot_table/trees/voluntary/red_maple.json -0e3659b65e15baf17e7a91888799711021672838 data/dtbop/loot_table/trees/voluntary/snowblossom.json -2ba0c43d6acbe88489f8893cad313fdfb9aaddb4 data/dtbop/loot_table/trees/voluntary/spruce_poplar.json -5f1d4cc529a886f5e2304e0a7943525f47f195ac data/dtbop/loot_table/trees/voluntary/toadstool.json -3c746b5b2665d1484f5495958283c73c3fe229c9 data/dtbop/loot_table/trees/voluntary/umbran.json -d56cc79017ff3f5f57e63328ccf8dc63f0b2b71a data/dtbop/loot_table/trees/voluntary/willow.json -f707e9357ad0c0792e68c7f1eac1b48bbaa678a0 data/dtbop/loot_table/trees/voluntary/yellow_maple.json diff --git a/src/generated/resources/.cache/75df2d9e042f833c17d6f2454c7b4de55a3bcc64 b/src/generated/resources/.cache/75df2d9e042f833c17d6f2454c7b4de55a3bcc64 deleted file mode 100644 index 2065022..0000000 --- a/src/generated/resources/.cache/75df2d9e042f833c17d6f2454c7b4de55a3bcc64 +++ /dev/null @@ -1,5 +0,0 @@ -// 1.21.1 2025-12-01T22:30:37.9469418 dtbop DT Item Tags -e5a7820bb4d937763dc8386a954f823085f0f5b5 data/dynamictrees/tags/item/branches.json -7e874c987272446ddd4249ed955e160c3abc537c data/dynamictrees/tags/item/branches_that_burn.json -6599bad7fdc6f370fa420e76a54f56df9e8d9dba data/dynamictrees/tags/item/fungus_caps.json -87c403e33de96262eba500bbc74e99c080cb128e data/dynamictrees/tags/item/seeds.json diff --git a/src/generated/resources/.cache/966c94fbc8a8ffde6970b7e2b557133c95999129 b/src/generated/resources/.cache/966c94fbc8a8ffde6970b7e2b557133c95999129 deleted file mode 100644 index 0ee49f5..0000000 --- a/src/generated/resources/.cache/966c94fbc8a8ffde6970b7e2b557133c95999129 +++ /dev/null @@ -1,9 +0,0 @@ -// 1.21.1 2025-12-01T22:30:37.9391942 dtbop DT Block Tags -e5a7820bb4d937763dc8386a954f823085f0f5b5 data/dynamictrees/tags/block/branches.json -7e874c987272446ddd4249ed955e160c3abc537c data/dynamictrees/tags/block/branches_that_burn.json -aaf6eda795a5e0bf63b4c560d2ea36b0adf3d9c5 data/dynamictrees/tags/block/fungus_caps.json -00da5c0899829864ed1ea6061451aca72d7ccc77 data/dynamictrees/tags/block/leaves.json -e4bdd5646c20f5a80de6bb267f3e0984de1c259d data/dynamictrees/tags/block/rooty_soil.json -639fe6d36678d4194b69da25780390c04d0b33a4 data/dynamictrees/tags/block/saplings.json -3710c770a26b1eb4b50177ab12d224e9ebc33c43 data/dynamictrees/tags/block/stripped_branches.json -f2cd407bc0efdbd15acf90de90d57f3cf5b43a4d data/dynamictrees/tags/block/stripped_branches_that_burn.json diff --git a/src/generated/resources/.cache/e0535b00759b7a044714c01332f1f5cc305ccbec b/src/generated/resources/.cache/e0535b00759b7a044714c01332f1f5cc305ccbec deleted file mode 100644 index 1e3dbd6..0000000 --- a/src/generated/resources/.cache/e0535b00759b7a044714c01332f1f5cc305ccbec +++ /dev/null @@ -1,157 +0,0 @@ -// 1.21.1 2025-12-01T22:30:37.9449384 Block States: dtbop -2606791521eac27fa77ebbeeea442b8073802a51 assets/dtbop/blockstates/acacia_twiglet_leaves.json -2606791521eac27fa77ebbeeea442b8073802a51 assets/dtbop/blockstates/acacia_undergrowth_leaves.json -e65d59cb6b08d2f8698af8da787c5cc3b6a8c59b assets/dtbop/blockstates/aspen_leaves.json -f8d84d77f039d38d5a4501f69a66baf9642ef13e assets/dtbop/blockstates/aspen_sapling.json -7c076dbbe8e530a40b96a7c16cf2cd9ca2e76a45 assets/dtbop/blockstates/cherry_twiglet_leaves.json -73e97651b77d61776de74c7e9d2ef24913e4bdf5 assets/dtbop/blockstates/cypress_willow_leaves.json -22189459d4fa383ebe3c902b33ee2c18870d8776 assets/dtbop/blockstates/dark_oak_twiglet_leaves.json -22189459d4fa383ebe3c902b33ee2c18870d8776 assets/dtbop/blockstates/dark_poplar_leaves.json -ad28168fbceefd1782510c0463bff626cc06f28a assets/dtbop/blockstates/dark_poplar_sapling.json -62642f6930f49ccbec5d7452c231dfaca59684c6 assets/dtbop/blockstates/dead_branch.json -2053a6842c185875a1b81e62bd0169e5f70b2982 assets/dtbop/blockstates/dying_leaves.json -eff1c292aac1929d4e902df2ed1a2405c93ae814 assets/dtbop/blockstates/dying_sapling.json -b6aed705ea3e636a846bac6b55a67548e68e07c3 assets/dtbop/blockstates/fir_branch.json -d06545649c71cca4f8c624f0951e3111f489fac5 assets/dtbop/blockstates/fir_leaves.json -237b0d402f8cc4170e52861d0dbd9efb65fada93 assets/dtbop/blockstates/fir_sapling.json -0f53db4fc5fc9f80c1fbe519b49ca967863676e8 assets/dtbop/blockstates/flowering_oak_leaves.json -bea45e90221da9ce4a3769d29932b0bf86ac9d31 assets/dtbop/blockstates/flowering_oak_sapling.json -0f53db4fc5fc9f80c1fbe519b49ca967863676e8 assets/dtbop/blockstates/flowering_oak_undergrowth_leaves.json -94d34da37461e6c6a403725215ca0aee7ce6619a assets/dtbop/blockstates/glowshroom_cap.json -5f4970560740c3e307ae441cb2a07a032a6fb322 assets/dtbop/blockstates/glowshroom_cap_center.json -80b166e536c82c3c986bb81c3fa386db79f2607e assets/dtbop/blockstates/glowshroom_sapling.json -280cf305366acbe35bf80e63dd0b6225bc1a717b assets/dtbop/blockstates/hellbark_branch.json -637a3a278c8a53a39cf6452c61ba2ce4a0a53dd2 assets/dtbop/blockstates/hellbark_bush_leaves.json -637a3a278c8a53a39cf6452c61ba2ce4a0a53dd2 assets/dtbop/blockstates/hellbark_leaves.json -305e88475cee31fbd5d5f1b5c9dbf0e2d1283ab4 assets/dtbop/blockstates/hellbark_sapling.json -257b1a56c5067231a29c86eab487970d254242ec assets/dtbop/blockstates/jacaranda_branch.json -2f13532a6b04464bd5aca74eb59ddc8dc3c8266a assets/dtbop/blockstates/jacaranda_leaves.json -f8cee58b516346d43d1bab653274a37bf13c2e64 assets/dtbop/blockstates/jacaranda_sapling.json -a82f9fc1c2378f77e75442eb41b6eff31ae0c687 assets/dtbop/blockstates/jungle_twiglet_leaves.json -b0318295b24e7edec6f36226488184ea44ccad9c assets/dtbop/blockstates/magic_branch.json -31455f9b2b9d1229a170434246475307d33f9e3e assets/dtbop/blockstates/magic_poplar_leaves.json -481889efcce77f2abec000ea365ef950b33604f1 assets/dtbop/blockstates/magic_poplar_sapling.json -56e430a2116c6db5947450f4e9d586210a11753f assets/dtbop/blockstates/mahogany_branch.json -f4bb5d366073df89300a1d4ff63e3777667adc10 assets/dtbop/blockstates/mahogany_leaves.json -2ae57894b5be66f29ed53a1b4e05bbbad69062d1 assets/dtbop/blockstates/mahogany_sapling.json -e8323999fd52df15a0a4a6644543902710c6192a assets/dtbop/blockstates/mangrove_twiglet_leaves.json -54727d5d650c52c43b70721e4c5dc4ba82533386 assets/dtbop/blockstates/maple_branch.json -bd55aaa7c9268eb8645517953a9e651bac260450 assets/dtbop/blockstates/maple_twiglet_leaves.json -22189459d4fa383ebe3c902b33ee2c18870d8776 assets/dtbop/blockstates/mega_dark_oak_leaves.json -f87c299a4614a3a7e74c0ae4c6f7fd3cea3529df assets/dtbop/blockstates/mega_fir_sapling.json -26bd643e08fd012157bb721c1006da6e99c32c8a assets/dtbop/blockstates/mega_umbran_sapling.json -9b73d2419e07259eb9681640ac018a6aeb7e7e93 assets/dtbop/blockstates/oak_twiglet_leaves.json -510ac5801beb02d924febc4e9e06605647b0bf78 assets/dtbop/blockstates/orange_maple_leaves.json -4dae03e2793e795bb9542ab22869a648619eb56e assets/dtbop/blockstates/orange_maple_sapling.json -be6018f760569c794364897846788a136427ab38 assets/dtbop/blockstates/palm_branch.json -2460d3f46a93c9fb93c86f42f714c8b77e2e0d49 assets/dtbop/blockstates/palm_leaves.json -8ee7a30dde4b23b8e35d5293222ba504896fd228 assets/dtbop/blockstates/palm_sapling.json -17378858bc210bdde3da781db8618301bca6ffff assets/dtbop/blockstates/pine_branch.json -7ce9145b015a8c10885505b0136f44193617d227 assets/dtbop/blockstates/pine_leaves.json -2d5f572e7b46191a1b9d5e265e9b267296d56641 assets/dtbop/blockstates/pine_sapling.json -8ef838697c46c00a32d716cdcf4638eed23d1cc0 assets/dtbop/blockstates/poplar_leaves.json -000679a00cfb3b867c5fe94a3557a844da52bb9e assets/dtbop/blockstates/poplar_sapling.json -a2d11b00ee54bca18fd29d6537a9a79ccead1508 assets/dtbop/blockstates/rainbow_birch_leaves.json -e9d90911906c9476fd0b1aae3a0e728c7629d751 assets/dtbop/blockstates/rainbow_birch_sapling.json -6db34b1912d2a38a3a611f208fff48ad02a4a3a7 assets/dtbop/blockstates/redwood_branch.json -c41ed9f68687aeda5ef8ccadab773cdcf5219b90 assets/dtbop/blockstates/redwood_leaves.json -6d714257eabe725f59417b0e017685a16fde3f4d assets/dtbop/blockstates/redwood_root.json -e3e6a0668af9e3481562af7ead4b2891ffafa6fa assets/dtbop/blockstates/redwood_sapling.json -bd55aaa7c9268eb8645517953a9e651bac260450 assets/dtbop/blockstates/red_maple_leaves.json -b9b1e41b7298c91d36748cca318642f81080c5bb assets/dtbop/blockstates/red_maple_sapling.json -bf15524ff4c692f52a2ebc98e5366c27a27ba5bf assets/dtbop/blockstates/rooty_black_sand.json -fbbed88cb40b46d6a8f22bf82c1727edd6992896 assets/dtbop/blockstates/rooty_dried_salt.json -9c9d902a96af508fe7976eb743fd70616de4c5e3 assets/dtbop/blockstates/rooty_glowing_moss_block.json -1dfcb913df103c0572c4a133c96149cbc9514cd2 assets/dtbop/blockstates/rooty_mossy_black_sand.json -49d32f79d15eea8ab705129f4cb2c7930e47db6f assets/dtbop/blockstates/rooty_orange_sand.json -44f361dbe5e6d9837308697867cefdd6e05563c2 assets/dtbop/blockstates/rooty_origin_grass_block.json -3f974e24dc00734a32a110ebc1920a4b6d761f8d assets/dtbop/blockstates/rooty_white_sand.json -9025fdb602b6a9c1f69e5a77af976c442269f8dd assets/dtbop/blockstates/silk_undergrowth_web.json -9025fdb602b6a9c1f69e5a77af976c442269f8dd assets/dtbop/blockstates/silk_web.json -1c14c3e89a01450f714460407887535765720927 assets/dtbop/blockstates/snowblossom_leaves.json -fc44963f6fa26225f40caa1dea587ce2541a3383 assets/dtbop/blockstates/snowblossom_sapling.json -1c14c3e89a01450f714460407887535765720927 assets/dtbop/blockstates/snowblossom_twiglet_leaves.json -2606791521eac27fa77ebbeeea442b8073802a51 assets/dtbop/blockstates/sparse_acacia_leaves.json -9b73d2419e07259eb9681640ac018a6aeb7e7e93 assets/dtbop/blockstates/sparse_oak_leaves.json -ab47df46795bc4ee1d88b446b0305ee474c1ed9c assets/dtbop/blockstates/spruce_poplar_leaves.json -adfc93eb8d13eb81e6e2e1ca403bbc41349f403b assets/dtbop/blockstates/spruce_poplar_sapling.json -ab47df46795bc4ee1d88b446b0305ee474c1ed9c assets/dtbop/blockstates/spruce_twiglet_leaves.json -ab47df46795bc4ee1d88b446b0305ee474c1ed9c assets/dtbop/blockstates/spruce_undergrowth_leaves.json -8f7a2a72f513232b2fd70e03ee2e1d9398253bab assets/dtbop/blockstates/stripped_dead_branch.json -eeb0d4900508ea60015325403ca662d361e9b8f9 assets/dtbop/blockstates/stripped_fir_branch.json -aab0b551d292123222bdef203e8235460dfade17 assets/dtbop/blockstates/stripped_hellbark_branch.json -990c76830f3f9f2d3881fafcb9341397888e56df assets/dtbop/blockstates/stripped_jacaranda_branch.json -dc7586bfbf3768f398c72d57bdcf9e2a43e88ec4 assets/dtbop/blockstates/stripped_magic_branch.json -cfb21d3aa87c827bc5bd47f99e11a66a7aceb90c assets/dtbop/blockstates/stripped_mahogany_branch.json -1f7753f639dee4879f1a04fdd1e594631bb5c467 assets/dtbop/blockstates/stripped_maple_branch.json -a650eee8ed965a4a2174f92454a308182504384a assets/dtbop/blockstates/stripped_palm_branch.json -85eb12a632f74cc967602f2521dea563ca7bb6bc assets/dtbop/blockstates/stripped_pine_branch.json -417314c66f80d8267235815f68716e68af3c2a20 assets/dtbop/blockstates/stripped_redwood_branch.json -6269613c02392e0c7ecef6539549df249ff285a9 assets/dtbop/blockstates/stripped_umbran_branch.json -0db638cb8a155eb730ed7166938a609a51df258a assets/dtbop/blockstates/stripped_willow_branch.json -733983f875fa8d18a6069de27ce239059453519f assets/dtbop/blockstates/toadstool_cap.json -c93c89c39346b95fb3984a960bc48c4316673b65 assets/dtbop/blockstates/toadstool_cap_center.json -d188ca0b4b1de08c385f44b6136b99e2e2f0e315 assets/dtbop/blockstates/toadstool_sapling.json -37d1c8de530747ed78f41ef854ef085bd0b9dcaf assets/dtbop/blockstates/umbran_branch.json -8cec305f9c723c0cfaaffd7ebfcb57bef0213ab0 assets/dtbop/blockstates/umbran_leaves.json -5ff8333101698cd3f5e4a4b7ee2bafab3448efe2 assets/dtbop/blockstates/umbran_sapling.json -3b9040b7466d4accda72944294e86331930ac525 assets/dtbop/blockstates/willow_branch.json -73e97651b77d61776de74c7e9d2ef24913e4bdf5 assets/dtbop/blockstates/willow_leaves.json -cf41080ef770a588fab25b7782b6360059114420 assets/dtbop/blockstates/willow_sapling.json -e65d59cb6b08d2f8698af8da787c5cc3b6a8c59b assets/dtbop/blockstates/yellow_maple_leaves.json -bfd0b0f3960d3d176895c35079fad1854e9f97bc assets/dtbop/blockstates/yellow_maple_sapling.json -15f6a0a99fb08bd9797fe2fd7049120c30509572 assets/dtbop/models/block/dead_branch.json -b3b7873b463c20d625fe732613092e50ffbb2cd9 assets/dtbop/models/block/fir_branch.json -e15ded55ae1cf62161f1b5c8fe5e9f8eb8e71407 assets/dtbop/models/block/hellbark_branch.json -8973e3ecf4c3ea014a0cae6ff0711c747a4409ca assets/dtbop/models/block/jacaranda_branch.json -f846d129b57ba8b98260be23a42190d88d291571 assets/dtbop/models/block/magic_branch.json -cab3eb1a8fcc8222de6cca98f05b2e6615571fda assets/dtbop/models/block/mahogany_branch.json -b81db0a95717bac6713bc715eaa1a9d1e52812bb assets/dtbop/models/block/maple_branch.json -9ef74da64b30ea00430d5fd70c0f1a110c24fb4d assets/dtbop/models/block/mushroom/glowshroom_cap_center_age0.json -a193ff7167132b5db518759fd28fa4d2a076713a assets/dtbop/models/block/mushroom/toadstool_cap_center_age0.json -674bf83d8b8b53669a0f0978515a9251a57e5e7e assets/dtbop/models/block/palm_branch.json -31a341e5f4b803029fb38c7e6de699df4b346a3a assets/dtbop/models/block/palm_leaves/palm_core_bottom.json -f5bb6b2fbfe559fbe37d60e76933cbe905de2b6e assets/dtbop/models/block/palm_leaves/palm_core_top.json -4afdd4e7a31036723f56bcb4056dad558da0d45f assets/dtbop/models/block/palm_leaves/palm_frond.json -48c0bea6d10eace96996e74a0af0c62c0740074b assets/dtbop/models/block/pine_branch.json -7944d6792719005ebe2b1f4568f6488d541c4880 assets/dtbop/models/block/redwood_branch.json -033db798a08ee510f39b21b5afc685cdb22ab2d0 assets/dtbop/models/block/redwood_root.json -f7d802d69fe0253836c47f573cbdb6a1bfc826ae assets/dtbop/models/block/saplings/aspen.json -4a57237782717c8e918a299847aacd892ca6f5e6 assets/dtbop/models/block/saplings/dark_poplar.json -a87dced36d5152d42f259dfc16d2b25566e307a6 assets/dtbop/models/block/saplings/dying.json -35deccc7a72659e3e1187f3fca42708c5e4bd273 assets/dtbop/models/block/saplings/fir.json -7a849487d3813ef0bcd33e55299ef4e396af2777 assets/dtbop/models/block/saplings/flowering_oak.json -a98c24f39365992c596537e1ca234674e621cc3c assets/dtbop/models/block/saplings/glowshroom.json -bbc66a2b52d1fd74711f37ec758408f732ec5340 assets/dtbop/models/block/saplings/hellbark.json -9849566b6ae0acaea8e715f8178076e18e9f090c assets/dtbop/models/block/saplings/jacaranda.json -3f9149fa598ce1fd4fa7c8cb68264661b0382998 assets/dtbop/models/block/saplings/magic_poplar.json -dbeb468af4d3cb7624cd589f5d30fea88e4ba8d2 assets/dtbop/models/block/saplings/mahogany.json -7468885f3e2114641b8520378d1a3382a097fc93 assets/dtbop/models/block/saplings/mega_fir.json -ac2c2e67987b67d53b2622a2d9c6e954504855a3 assets/dtbop/models/block/saplings/mega_umbran.json -5d00c6ef45d81dacd21f1db2fba9d43194871efb assets/dtbop/models/block/saplings/orange_maple.json -bdde5f537cd72bb72df27b39bd8b292e2b6da6f1 assets/dtbop/models/block/saplings/palm.json -011fb26ee9faee526b7c25b847e7129204f2f3a1 assets/dtbop/models/block/saplings/pine.json -e85b6b5fb75c35a7306993653ed1e0e73cc9d566 assets/dtbop/models/block/saplings/poplar.json -2006a61f699d405da61a56613e2a393383694d6a assets/dtbop/models/block/saplings/rainbow_birch.json -c0f36166b4fabe68721c2f2b485834f293e26d33 assets/dtbop/models/block/saplings/redwood.json -944caf9fc61f69d06beb0054d6ad835a443c3962 assets/dtbop/models/block/saplings/red_maple.json -b8a345dcc6bb85e88253dcf9d8613f345fc9a474 assets/dtbop/models/block/saplings/snowblossom.json -82e19945531fbcaf8d88a55bd21673f281be1f2c assets/dtbop/models/block/saplings/spruce_poplar.json -0ea7a3e7616416b0c5f0311346e0fd89b4d60d81 assets/dtbop/models/block/saplings/toadstool.json -0c0e4e5f1721935b85bdbe2cdbb3c518e7a9188a assets/dtbop/models/block/saplings/umbran.json -135521c27c0242037373c33f36517f6261d01db3 assets/dtbop/models/block/saplings/willow.json -6680a82b60d1166c083e53431c1ee4b88505fcaf assets/dtbop/models/block/saplings/yellow_maple.json -4344900b26ca4e62ba737e66039934fccb4d69c1 assets/dtbop/models/block/stripped_dead_branch.json -a930fb556478aae42180ded516dd0b5ca9f60041 assets/dtbop/models/block/stripped_fir_branch.json -c9eb9a1862139663552af13c2b09df91b61d1c45 assets/dtbop/models/block/stripped_hellbark_branch.json -397cad4390b6a600b9b240e831ea33db21ea2b22 assets/dtbop/models/block/stripped_jacaranda_branch.json -3893b1ac25060d4c49bf96978c1f4608341f9459 assets/dtbop/models/block/stripped_magic_branch.json -43915c4b432f129596143a77e2cb60d131fa2d76 assets/dtbop/models/block/stripped_mahogany_branch.json -d6d6622fbe92889b7684e14f49ae497ce9860fe9 assets/dtbop/models/block/stripped_maple_branch.json -f154101a09d7a0fdbc403e90a5a963062b0544be assets/dtbop/models/block/stripped_palm_branch.json -b198a565981880a6657738f57ab1c9fd6170d219 assets/dtbop/models/block/stripped_pine_branch.json -67a8ea8d253eb5413f5c50aa21364f4e5314752a assets/dtbop/models/block/stripped_redwood_branch.json -791a70eefd73ebc26f3da2f7c2954569e1905d1f assets/dtbop/models/block/stripped_umbran_branch.json -8ec34f06696d4e379d223f1cfab62baccc304061 assets/dtbop/models/block/stripped_willow_branch.json -ff8f0de93e3c76fc31ed5aa7612815d080cde0f0 assets/dtbop/models/block/umbran_branch.json -2f92294ade7aef0ac8aa674faa6ebcbdcbae1e50 assets/dtbop/models/block/willow_branch.json diff --git a/src/main/java/com/dtteam/dtbop/DTBOPPlusRegistries.java b/src/main/java/com/dtteam/dtbop/DTBOPPlusRegistries.java deleted file mode 100644 index ec1608c..0000000 --- a/src/main/java/com/dtteam/dtbop/DTBOPPlusRegistries.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.dtteam.dtbop; - -import biomesoplenty.worldgen.feature.misc.*; - -import com.dtteam.dynamictrees.event.TypeRegistryEvent; -import com.dtteam.dynamictrees.api.worldgen.BiomePropertySelectors; -import com.dtteam.dynamictrees.api.worldgen.FeatureCanceller; -import com.dtteam.dynamictrees.tree.species.Species; -import com.dtteam.dynamictrees.worldgen.featurecancellation.MushroomFeatureCanceller; -import com.dtteam.dynamictreesplus.block.mushroom.CapProperties; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; -import net.minecraft.world.level.levelgen.feature.Feature; -import net.minecraft.world.level.levelgen.feature.configurations.HugeMushroomFeatureConfiguration; -import net.neoforged.bus.api.SubscribeEvent; -import net.minecraft.core.registries.BuiltInRegistries; -import com.dtteam.dtbop.block.GlowShroomCapProperties; -import com.dtteam.dtbop.tree.GlowshroomSpecies; - -public class DTBOPPlusRegistries { - - public static final FeatureCanceller MUSHROOM_CANCELLER = new MushroomFeatureCanceller<>(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID,"mushroom"), HugeMushroomFeatureConfiguration.class){ - @Override - public boolean shouldCancel(final ConfiguredFeature configuredFeature, final BiomePropertySelectors.NormalFeatureCancellation featureCancellations) { - final ResourceLocation featureRegistryName = BuiltInRegistries.FEATURE.getKey(configuredFeature.feature()); - if (featureRegistryName == null) {return false;} - - if (configuredFeature.config() instanceof HugeMushroomFeatureConfiguration) { - return true; - } - - Feature f = configuredFeature.feature(); - - return f instanceof SmallRedMushroomFeature || - f instanceof HugeToadstoolFeature || - f instanceof SmallToadstoolFeature || - f instanceof SmallGlowshroomFeature || - f instanceof MediumGlowshroomFeature || - f instanceof HugeGlowshroomFeature || - f instanceof GiantGlowshroomFeature || - f instanceof SmallBrownMushroomFeature; - } - }; - - @SubscribeEvent - public static void onFeatureCancellerRegistry(final com.dtteam.dynamictrees.event.RegistryEvent event) { - if (event.isEntryOfType(FeatureCanceller.class)){ - event.getRegistry().registerAll(MUSHROOM_CANCELLER); - } - } - - @SubscribeEvent - public static void registerCapPropertiesType(final TypeRegistryEvent event) { - if (event.isEntryOfType(CapProperties.class)){ - event.registerType(DynamicTreesBOP.location("glowshroom"), GlowShroomCapProperties.TYPE); - } - } - - @SubscribeEvent - public static void registerSpeciesType(final TypeRegistryEvent event) { - if (event.isEntryOfType(Species.class)){ - event.registerType(DynamicTreesBOP.location("glowshroom"), GlowshroomSpecies.TYPE); - } - } - -} diff --git a/src/main/java/com/dtteam/dtbop/DTBOPRegistries.java b/src/main/java/com/dtteam/dtbop/DTBOPRegistries.java index 3d5c341..fd71984 100644 --- a/src/main/java/com/dtteam/dtbop/DTBOPRegistries.java +++ b/src/main/java/com/dtteam/dtbop/DTBOPRegistries.java @@ -1,116 +1,93 @@ package com.dtteam.dtbop; -import biomesoplenty.api.biome.BOPBiomes; -import biomesoplenty.worldgen.feature.misc.HugeToadstoolFeature; -import biomesoplenty.worldgen.feature.misc.SmallRedMushroomFeature; -import biomesoplenty.worldgen.feature.misc.SmallToadstoolFeature; +import com.dtteam.dtbop.block.CobwebLeavesProperties; +import com.dtteam.dtbop.cell.DTBOPCellKits; +import com.dtteam.dtbop.genfeature.DTBOPGenFeatures; +import com.dtteam.dtbop.growthlogic.DTBOPGrowthLogicKits; +import com.dtteam.dtbop.tree.Bush; +import com.dtteam.dtbop.tree.CypressSpecies; +import com.dtteam.dtbop.tree.GenOnStoneSpecies; +import com.dtteam.dtbop.tree.PoplarSpecies; +import com.dtteam.dtbop.tree.TwigletSpecies; import com.dtteam.dynamictrees.api.cell.CellKit; -import com.dtteam.dynamictrees.event.TypeRegistryEvent; -import com.dtteam.dynamictrees.api.worldgen.BiomePropertySelectors; -import com.dtteam.dynamictrees.api.worldgen.FeatureCanceller; +import com.dtteam.dynamictrees.block.CommonVoxelShapes; import com.dtteam.dynamictrees.block.leaves.LeavesProperties; -import com.dtteam.dynamictrees.systems.growthlogic.GrowthLogicKit; -import com.dtteam.dynamictrees.systems.genfeature.BeeNestGenFeature; import com.dtteam.dynamictrees.systems.genfeature.GenFeature; +import com.dtteam.dynamictrees.systems.growthlogic.GrowthLogicKit; import com.dtteam.dynamictrees.tree.species.Species; -import com.dtteam.dynamictrees.block.CommonVoxelShapes; -import com.dtteam.dynamictrees.worldgen.featurecancellation.MushroomFeatureCanceller; -import com.dtteam.dynamictrees.event.RegistryEvent; -import net.minecraft.core.Holder; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.BiomeTags; -import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; -import net.minecraft.world.level.levelgen.feature.configurations.HugeMushroomFeatureConfiguration; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.neoforge.registries.RegisterEvent; -import net.neoforged.neoforge.registries.NeoForgeRegistries; -import net.neoforged.neoforge.common.Tags; -import net.neoforged.bus.api.SubscribeEvent; -import com.dtteam.dtbop.block.CobwebLeavesProperties; -import com.dtteam.dtbop.cell.DTBOPCellKits; -import com.dtteam.dtbop.genfeature.DTBOPGenFeatures; -import com.dtteam.dtbop.growthlogic.DTBOPGrowthLogicKits; -import com.dtteam.dtbop.tree.*; - -import java.util.Objects; -@EventBusSubscriber(bus=EventBusSubscriber.Bus.MOD) public class DTBOPRegistries { public static final VoxelShape GLOWSHROOM_AGE0 = Shapes.create(0, 0, 0, 1, 0.75, 1); - public static final VoxelShape TOADSTOOL_AGE0 = Shapes.create(2/16f, 0, 2/16f, 14/16f, 1, 14/16f); + public static final VoxelShape TOADSTOOL_AGE0 = Shapes.create(2 / 16f, 0, 2 / 16f, 14 / 16f, 1, 14 / 16f); public static final VoxelShape MUSHROOM_CAP_SHORT_ROUND = Block.box(5D, 3D, 5D, 11D, 7D, 11D); public static final VoxelShape ROUND_SHORT_MUSHROOM = Shapes.or(CommonVoxelShapes.SAPLING_TRUNK, MUSHROOM_CAP_SHORT_ROUND); public static final VoxelShape TOADSTOOL_CAP = Block.box(5.5D, 3.0D, 5.5D, 10.5D, 10.0D, 10.5D); public static final VoxelShape TOADSTOOL = Shapes.or(CommonVoxelShapes.SAPLING_TRUNK, TOADSTOOL_CAP); public static void setup() { - CommonVoxelShapes.SHAPES.put(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "glowshroom_age0").toString(), GLOWSHROOM_AGE0); - CommonVoxelShapes.SHAPES.put(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "toadstool_age0").toString(), TOADSTOOL_AGE0); - CommonVoxelShapes.SHAPES.put(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "round_short_mushroom").toString(), ROUND_SHORT_MUSHROOM); - CommonVoxelShapes.SHAPES.put(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "toadstool").toString(), TOADSTOOL); + registerVoxelShapes(); + registerGenFeatures(); + registerGrowthLogicKits(); + registerCellKits(); + registerLeavesPropertiesTypes(); + registerSpeciesTypes(); + + // Runs after all tree pack resources have been loaded, replacing the old block-registry-time linking. + Species.REGISTRY.runOnNextLock(DTBOPRegistries::onSpeciesRegistryLock); } - @SubscribeEvent - public static void onGenFeatureRegistry(final RegistryEvent event) { - if (event.isEntryOfType(GenFeature.class)){ - DTBOPGenFeatures.register(event.getRegistry()); - } + private static void registerVoxelShapes() { + CommonVoxelShapes.SHAPES.put(DynamicTreesBOP.location("glowshroom_age0").toString(), GLOWSHROOM_AGE0); + CommonVoxelShapes.SHAPES.put(DynamicTreesBOP.location("toadstool_age0").toString(), TOADSTOOL_AGE0); + CommonVoxelShapes.SHAPES.put(DynamicTreesBOP.location("round_short_mushroom").toString(), ROUND_SHORT_MUSHROOM); + CommonVoxelShapes.SHAPES.put(DynamicTreesBOP.location("toadstool").toString(), TOADSTOOL); } - @SubscribeEvent - public static void onGrowthLogicKitRegistry(final RegistryEvent event) { - if (event.isEntryOfType(GrowthLogicKit.class)){ - DTBOPGrowthLogicKits.register(event.getRegistry()); - } + private static void registerGenFeatures() { + DTBOPGenFeatures.register(GenFeature.REGISTRY); } - @SubscribeEvent - public static void onCellKitRegistry(final RegistryEvent event) { - if (event.isEntryOfType(CellKit.class)){ - DTBOPCellKits.register(event.getRegistry()); - } + private static void registerGrowthLogicKits() { + DTBOPGrowthLogicKits.register(GrowthLogicKit.REGISTRY); } - @SubscribeEvent - public static void registerLeavesPropertiesTypes(TypeRegistryEvent event) { - if (event.isEntryOfType(LeavesProperties.class)){ - event.registerType(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "cobweb"), CobwebLeavesProperties.TYPE); - } + private static void registerCellKits() { + DTBOPCellKits.register(CellKit.REGISTRY); } - @SubscribeEvent - public static void registerSpeciesTypes(final TypeRegistryEvent event) { - if (event.isEntryOfType(Species.class)){ - event.registerType(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "twiglet"), TwigletSpecies.TYPE); - event.registerType(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "poplar"), PoplarSpecies.TYPE); - event.registerType(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "cypress"), CypressSpecies.TYPE); - event.registerType(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "generates_on_stone"), GenOnStoneSpecies.TYPE); - } + private static void registerLeavesPropertiesTypes() { + LeavesProperties.REGISTRY.registerType(DynamicTreesBOP.location("cobweb"), CobwebLeavesProperties.TYPE); } - @SubscribeEvent - public static void onBlocksRegistry(final RegisterEvent event) { + private static void registerSpeciesTypes() { + Species.REGISTRY.registerType(DynamicTreesBOP.location("twiglet"), TwigletSpecies.TYPE); + Species.REGISTRY.registerType(DynamicTreesBOP.location("poplar"), PoplarSpecies.TYPE); + Species.REGISTRY.registerType(DynamicTreesBOP.location("cypress"), CypressSpecies.TYPE); + Species.REGISTRY.registerType(DynamicTreesBOP.location("generates_on_stone"), GenOnStoneSpecies.TYPE); + } + + private static void onSpeciesRegistryLock() { Bush.INSTANCES.forEach(Bush::setup); - final Species floweringOak = Species.REGISTRY.get(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "flowering_oak")); - final Species floweringAppleOak = Species.REGISTRY.get(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "flowering_apple_oak")); - final Species infested = Species.REGISTRY.get(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "infested")); + final Species floweringOak = Species.REGISTRY.get(DynamicTreesBOP.location("flowering_oak")); + final Species floweringAppleOak = Species.REGISTRY.get(DynamicTreesBOP.location("flowering_apple_oak")); + final Species infested = Species.REGISTRY.get(DynamicTreesBOP.location("infested")); - LeavesProperties floweringLeaves = LeavesProperties.REGISTRY.get(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "flowering_oak")); + final LeavesProperties floweringLeaves = LeavesProperties.REGISTRY.get(DynamicTreesBOP.location("flowering_oak")); if (floweringOak.isValid() && floweringLeaves.isValid()) { floweringLeaves.setFamily(floweringOak.getFamily()); floweringOak.addValidLeafBlocks(floweringLeaves); } - if (floweringAppleOak.isValid()) - if (floweringLeaves.isValid()) floweringAppleOak.addValidLeafBlocks(floweringLeaves); + if (floweringAppleOak.isValid() && floweringLeaves.isValid()) { + floweringAppleOak.addValidLeafBlocks(floweringLeaves); + } if (infested.isValid()) { - LeavesProperties silkLeaves = LeavesProperties.REGISTRY.get(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "silk")); + final LeavesProperties silkLeaves = LeavesProperties.REGISTRY.get(DynamicTreesBOP.location("silk")); infested.addValidLeafBlocks(silkLeaves); } } diff --git a/src/main/java/com/dtteam/dtbop/DynamicTreesBOP.java b/src/main/java/com/dtteam/dtbop/DynamicTreesBOP.java index 62d0c9c..e28a2bd 100644 --- a/src/main/java/com/dtteam/dtbop/DynamicTreesBOP.java +++ b/src/main/java/com/dtteam/dtbop/DynamicTreesBOP.java @@ -1,52 +1,27 @@ package com.dtteam.dtbop; -import com.dtteam.dynamictrees.block.leaves.LeavesProperties; -import com.dtteam.dynamictrees.block.soil.SoilProperties; -import com.dtteam.dynamictrees.data.GatherDataHelper; -import com.dtteam.dynamictrees.registry.NeoForgeRegistryHandler; -import com.dtteam.dynamictrees.tree.family.Family; -import com.dtteam.dynamictrees.tree.species.Species; -import com.dtteam.dynamictreesplus.block.mushroom.CapProperties; -import net.minecraft.resources.ResourceLocation; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.fml.ModContainer; -import net.neoforged.fml.ModList; -import net.neoforged.fml.common.Mod; -import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; -import net.neoforged.neoforge.data.event.GatherDataEvent; +import com.dtteam.dynamictrees.api.DynamicTreesAddonEntrypoint; +import net.minecraft.resources.Identifier; + +/** + * Main entrypoint for the Dynamic Trees BOP addon on Fabric. + * + *

Dynamic Trees invokes {@link #onDynamicTreesPreSetup()} from its own {@code ModInitializer}, + * before it registers its own content and loads tree packs, so all addon registration happens + * here.

+ */ +public class DynamicTreesBOP implements DynamicTreesAddonEntrypoint { -// The value here should match an entry in the META-INF/mods.toml file -@Mod(DynamicTreesBOP.MOD_ID) -public class DynamicTreesBOP { public static final String MOD_ID = "dtbop"; - public DynamicTreesBOP(IEventBus eventBus, ModContainer container) { - eventBus.addListener(this::commonSetup); - eventBus.addListener(this::gatherData); - - if (ModList.get().isLoaded("dynamictreesplus")){ - eventBus.register(DTBOPPlusRegistries.class); - } - - NeoForgeRegistryHandler.setup(MOD_ID, eventBus); - } - - private void commonSetup(final FMLCommonSetupEvent event) { + @Override + public void onDynamicTreesPreSetup() { + DynamicTreesAddonEntrypoint.setupAddon(MOD_ID); DTBOPRegistries.setup(); } - private void gatherData(final GatherDataEvent event) { - GatherDataHelper.gatherAllData(MOD_ID, event, - SoilProperties.REGISTRY, - Family.REGISTRY, - Species.REGISTRY, - LeavesProperties.REGISTRY, - CapProperties.REGISTRY - ); - } - - public static ResourceLocation location (String name){ - return ResourceLocation.fromNamespaceAndPath(MOD_ID, name); + public static Identifier location(String name) { + return Identifier.fromNamespaceAndPath(MOD_ID, name); } } diff --git a/src/main/java/com/dtteam/dtbop/block/CobwebLeavesProperties.java b/src/main/java/com/dtteam/dtbop/block/CobwebLeavesProperties.java index c282a2a..0cf713a 100644 --- a/src/main/java/com/dtteam/dtbop/block/CobwebLeavesProperties.java +++ b/src/main/java/com/dtteam/dtbop/block/CobwebLeavesProperties.java @@ -6,28 +6,31 @@ import com.dtteam.dynamictrees.block.leaves.ScruffyLeavesProperties; import com.dtteam.dynamictrees.utility.CoordUtils; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvents; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.InsideBlockEffectApplier; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -import net.neoforged.neoforge.common.util.DeferredSoundType; import org.jetbrains.annotations.NotNull; -import javax.annotation.Nullable; - public class CobwebLeavesProperties extends ScruffyLeavesProperties { + public static final TypedRegistry.EntryType TYPE = TypedRegistry.newType(CobwebLeavesProperties::new); - public CobwebLeavesProperties(ResourceLocation registryName) { + private static final SoundType COBWEB_SOUND_TYPE = new SoundType(1.0F, 1.0F, + SoundEvents.VINE_STEP, SoundEvents.VINE_STEP, SoundEvents.VINE_STEP, + SoundEvents.GRASS_HIT, SoundEvents.VINE_STEP); + + public CobwebLeavesProperties(Identifier registryName) { super(registryName); } + @Override public String getBlockRegistryNameSuffix() { return "_web"; } @@ -35,33 +38,37 @@ public String getBlockRegistryNameSuffix() { private float leafChance = 0.66f; private int maxHydro = 1; - @Override public void setLeafChance (float leafChance){ + @Override + public void setLeafChance(float leafChance) { this.leafChance = leafChance; } - @Override public void setMaxHydro (int maxHydro) { + + @Override + public void setMaxHydro(int maxHydro) { this.maxHydro = maxHydro; } @Override protected @NotNull DynamicLeavesBlock createDynamicLeaves(BlockBehaviour.Properties properties) { - return new DynamicLeavesBlock(this, properties) { + return new DynamicLeavesBlock(getBlockRegistryName(), this, properties) { @Override - public void fallOn(Level level, BlockState blockState, BlockPos pos, Entity entity, float fallDistance) { + public void fallOn(Level level, BlockState blockState, BlockPos pos, Entity entity, double fallDistance) { } @Override - public void entityInside(BlockState state, Level level, BlockPos pos, Entity entity) { + protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean isPrecise) { entity.makeStuckInBlock(state, new Vec3(0.25D, 0.05F, 0.25D)); } @Override - public @NotNull SoundType getSoundType(@NotNull BlockState state, @NotNull LevelReader level, @NotNull BlockPos pos, @Nullable Entity entity) { - return new DeferredSoundType(1.0F, 1.0F, () -> SoundEvents.VINE_STEP, () -> SoundEvents.VINE_STEP, () -> SoundEvents.VINE_STEP, () -> SoundEvents.GRASS_HIT, () -> SoundEvents.VINE_STEP); + protected @NotNull SoundType getSoundType(@NotNull BlockState state) { + return COBWEB_SOUND_TYPE; } + @Override public int getHydrationLevelFromNeighbors(LevelAccessor level, BlockPos pos, LeavesProperties leavesProperties) { int hydro = super.getHydrationLevelFromNeighbors(level, pos, leavesProperties); - if (hydro <= maxHydro){ + if (hydro <= maxHydro) { int hash = CoordUtils.coordHashCode(pos, 2) % 1000; float rand = hash / 1000f; if (rand >= leafChance) return 0; diff --git a/src/main/java/com/dtteam/dtbop/block/GlowShroomCapProperties.java b/src/main/java/com/dtteam/dtbop/block/GlowShroomCapProperties.java deleted file mode 100644 index 733d1b2..0000000 --- a/src/main/java/com/dtteam/dtbop/block/GlowShroomCapProperties.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.dtteam.dtbop.block; - -import com.dtteam.dynamictrees.api.registry.TypedRegistry; -import com.dtteam.dynamictreesplus.block.mushroom.CapProperties; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.MapColor; - -public class GlowShroomCapProperties extends CapProperties { - - public static final TypedRegistry.EntryType TYPE = TypedRegistry.newType(GlowShroomCapProperties::new); - - public GlowShroomCapProperties(ResourceLocation registryName) { - super(registryName); - } - - @Override - public BlockBehaviour.Properties getDefaultBlockProperties() { - return super.getDefaultBlockProperties() - .emissiveRendering((a,b,c)->true) - .hasPostProcess((a,b,c)->true); - } -} diff --git a/src/main/java/com/dtteam/dtbop/cell/DTBOPCellKits.java b/src/main/java/com/dtteam/dtbop/cell/DTBOPCellKits.java index c706f9e..37a238a 100644 --- a/src/main/java/com/dtteam/dtbop/cell/DTBOPCellKits.java +++ b/src/main/java/com/dtteam/dtbop/cell/DTBOPCellKits.java @@ -10,7 +10,7 @@ import com.dtteam.dynamictrees.systems.cell.NormalCell; import com.dtteam.dynamictrees.api.voxmap.SimpleVoxmap; import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import com.dtteam.dtbop.DynamicTreesBOP; public class DTBOPCellKits { @@ -21,7 +21,7 @@ public static class SparseCellKit extends CellKit { protected final CellSolver solver = new CellKits.BasicSolver(new short[]{0x0211}); - public SparseCellKit(ResourceLocation registryName) { + public SparseCellKit(Identifier registryName) { super(registryName); } @@ -51,15 +51,15 @@ public int getDefaultHydration() { } } - public static final CellKit SPARSE = new SparseCellKit(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "sparse")); - public static final CellKit HELLBARK_SPARSE = new SparseCellKit(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "hellbark_sparse")) { + public static final CellKit SPARSE = new SparseCellKit(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "sparse")); + public static final CellKit HELLBARK_SPARSE = new SparseCellKit(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "hellbark_sparse")) { @Override public Cell getCellForBranch(int radius, int meta) { return radius <= 3 ? sparseBranch : CellNull.NULL_CELL; } }; - public static final CellKit POPLAR = new CellKit(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "poplar")) { + public static final CellKit POPLAR = new CellKit(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "poplar")) { private final Cell poplarBranch = new PoplarBranchCell(); private final Cell poplarTopBranch = new PoplarTopBranchCell(); @@ -110,7 +110,7 @@ public int getDefaultHydration() { }; - public static final CellKit MAHOGANY = new CellKit(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "mahogany")) { + public static final CellKit MAHOGANY = new CellKit(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "mahogany")) { private final Cell mahoganyBranch = new MahoganyBranchCell(); @@ -157,7 +157,7 @@ public int getDefaultHydration() { }; - public static final CellKit BRUSH = new CellKit(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "brush")) { + public static final CellKit BRUSH = new CellKit(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "brush")) { private final Cell branch = new Cell() { @Override @@ -216,7 +216,7 @@ public int getDefaultHydration() { }; - public static final CellKit EUCALYPTUS = new CellKit(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "eucalyptus")) { + public static final CellKit EUCALYPTUS = new CellKit(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "eucalyptus")) { private final Cell eucalyptusTopBranch = new EucalyptusTopBranchCell(); private final Cell eucalyptusBranch = new NormalCell(2); @@ -267,7 +267,7 @@ public int getDefaultHydration() { }; - public static final CellKit HELLBARK = new CellKit(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "hellbark")) { + public static final CellKit HELLBARK = new CellKit(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "hellbark")) { private final Cell hellbarkBranch = new Cell() { @Override diff --git a/src/main/java/com/dtteam/dtbop/genfeature/AlternativeLeavesGenFeature.java b/src/main/java/com/dtteam/dtbop/genfeature/AlternativeLeavesGenFeature.java index 85bf7ac..39619da 100644 --- a/src/main/java/com/dtteam/dtbop/genfeature/AlternativeLeavesGenFeature.java +++ b/src/main/java/com/dtteam/dtbop/genfeature/AlternativeLeavesGenFeature.java @@ -12,7 +12,7 @@ import com.dtteam.dynamictrees.tree.species.Species; import com.dtteam.dynamictrees.api.voxmap.BlockPosBounds; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; @@ -28,7 +28,7 @@ public class AlternativeLeavesGenFeature extends GenFeature { public static final ConfigurationProperty ALT_LEAVES = ConfigurationProperty.block("alternative_leaves"); - public AlternativeLeavesGenFeature(ResourceLocation registryName) { + public AlternativeLeavesGenFeature(Identifier registryName) { super(registryName); } diff --git a/src/main/java/com/dtteam/dtbop/genfeature/DTBOPGenFeatures.java b/src/main/java/com/dtteam/dtbop/genfeature/DTBOPGenFeatures.java index 37c55f7..7d42953 100644 --- a/src/main/java/com/dtteam/dtbop/genfeature/DTBOPGenFeatures.java +++ b/src/main/java/com/dtteam/dtbop/genfeature/DTBOPGenFeatures.java @@ -2,13 +2,13 @@ import com.dtteam.dynamictrees.api.registry.Registry; import com.dtteam.dynamictrees.systems.genfeature.GenFeature; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import com.dtteam.dtbop.DynamicTreesBOP; public class DTBOPGenFeatures { - public static final GenFeature ALT_LEAVES = new AlternativeLeavesGenFeature(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "alt_leaves")); - public static final GenFeature EXTRA_FLARE_BOTTOM = new ExtraBottomFlareGenFeature(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "extra_bottom_flare")); + public static final GenFeature ALT_LEAVES = new AlternativeLeavesGenFeature(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "alt_leaves")); + public static final GenFeature EXTRA_FLARE_BOTTOM = new ExtraBottomFlareGenFeature(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "extra_bottom_flare")); public static void register(final Registry registry) { registry.registerAll(EXTRA_FLARE_BOTTOM); diff --git a/src/main/java/com/dtteam/dtbop/genfeature/ExtraBottomFlareGenFeature.java b/src/main/java/com/dtteam/dtbop/genfeature/ExtraBottomFlareGenFeature.java index 4c0f457..b431cf0 100644 --- a/src/main/java/com/dtteam/dtbop/genfeature/ExtraBottomFlareGenFeature.java +++ b/src/main/java/com/dtteam/dtbop/genfeature/ExtraBottomFlareGenFeature.java @@ -9,7 +9,7 @@ import com.dtteam.dynamictrees.tree.species.Species; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.LevelAccessor; public class ExtraBottomFlareGenFeature extends GenFeature { @@ -21,7 +21,7 @@ public class ExtraBottomFlareGenFeature extends GenFeature { public static final ConfigurationProperty SECONDARY_MIN_RADIUS = ConfigurationProperty.integer("secondary_min_radius"); - public ExtraBottomFlareGenFeature(ResourceLocation registryName) { + public ExtraBottomFlareGenFeature(Identifier registryName) { super(registryName); } diff --git a/src/main/java/com/dtteam/dtbop/growthlogic/CypressLogic.java b/src/main/java/com/dtteam/dtbop/growthlogic/CypressLogic.java index 2a6e367..11d3c70 100644 --- a/src/main/java/com/dtteam/dtbop/growthlogic/CypressLogic.java +++ b/src/main/java/com/dtteam/dtbop/growthlogic/CypressLogic.java @@ -10,12 +10,12 @@ import com.dtteam.dynamictrees.utility.CoordUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.Level; public class CypressLogic extends GrowthLogicKit { - public CypressLogic(ResourceLocation registryName) { + public CypressLogic(Identifier registryName) { super(registryName); } diff --git a/src/main/java/com/dtteam/dtbop/growthlogic/DTBOPGrowthLogicKits.java b/src/main/java/com/dtteam/dtbop/growthlogic/DTBOPGrowthLogicKits.java index fae85b9..976258b 100644 --- a/src/main/java/com/dtteam/dtbop/growthlogic/DTBOPGrowthLogicKits.java +++ b/src/main/java/com/dtteam/dtbop/growthlogic/DTBOPGrowthLogicKits.java @@ -2,16 +2,16 @@ import com.dtteam.dynamictrees.api.registry.Registry; import com.dtteam.dynamictrees.systems.growthlogic.GrowthLogicKit; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import com.dtteam.dtbop.DynamicTreesBOP; public class DTBOPGrowthLogicKits { - public static final GrowthLogicKit POPLAR = new PoplarLogic(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "poplar")); - public static final GrowthLogicKit CYPRESS = new CypressLogic(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "cypress")); - public static final GrowthLogicKit REDWOOD = new RedwoodLogic(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "redwood")); - public static final GrowthLogicKit SMALL_REDWOOD = new SmallRedwoodLogic(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "small_redwood")); - public static final GrowthLogicKit MAHOGANY = new MahoganyLogic(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "mahogany")); + public static final GrowthLogicKit POPLAR = new PoplarLogic(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "poplar")); + public static final GrowthLogicKit CYPRESS = new CypressLogic(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "cypress")); + public static final GrowthLogicKit REDWOOD = new RedwoodLogic(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "redwood")); + public static final GrowthLogicKit SMALL_REDWOOD = new SmallRedwoodLogic(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "small_redwood")); + public static final GrowthLogicKit MAHOGANY = new MahoganyLogic(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, "mahogany")); public static void register(final Registry registry) { registry.registerAll(POPLAR, CYPRESS, REDWOOD, SMALL_REDWOOD, MAHOGANY); diff --git a/src/main/java/com/dtteam/dtbop/growthlogic/MahoganyLogic.java b/src/main/java/com/dtteam/dtbop/growthlogic/MahoganyLogic.java index c576b23..5f89d4c 100644 --- a/src/main/java/com/dtteam/dtbop/growthlogic/MahoganyLogic.java +++ b/src/main/java/com/dtteam/dtbop/growthlogic/MahoganyLogic.java @@ -6,11 +6,11 @@ import com.dtteam.dynamictrees.systems.growthlogic.context.DirectionSelectionContext; import com.dtteam.dynamictrees.systems.GrowSignal; import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; public class MahoganyLogic extends GrowthLogicKit { - public MahoganyLogic(ResourceLocation registryName) { super(registryName); } + public MahoganyLogic(Identifier registryName) { super(registryName); } @Override public int[] populateDirectionProbabilityMap(GrowthLogicKitConfiguration configuration, diff --git a/src/main/java/com/dtteam/dtbop/growthlogic/PoplarLogic.java b/src/main/java/com/dtteam/dtbop/growthlogic/PoplarLogic.java index 7768558..9537899 100644 --- a/src/main/java/com/dtteam/dtbop/growthlogic/PoplarLogic.java +++ b/src/main/java/com/dtteam/dtbop/growthlogic/PoplarLogic.java @@ -10,14 +10,14 @@ import com.dtteam.dynamictrees.utility.CoordUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.Level; public class PoplarLogic extends GrowthLogicKit { public static final ConfigurationProperty LARGE = ConfigurationProperty.bool("large"); - public PoplarLogic(ResourceLocation registryName) { + public PoplarLogic(Identifier registryName) { super(registryName); } diff --git a/src/main/java/com/dtteam/dtbop/growthlogic/RedwoodLogic.java b/src/main/java/com/dtteam/dtbop/growthlogic/RedwoodLogic.java index 5ad8563..d3088d1 100644 --- a/src/main/java/com/dtteam/dtbop/growthlogic/RedwoodLogic.java +++ b/src/main/java/com/dtteam/dtbop/growthlogic/RedwoodLogic.java @@ -14,13 +14,13 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; public class RedwoodLogic extends GrowthLogicKit { - public RedwoodLogic(ResourceLocation registryName) { + public RedwoodLogic(Identifier registryName) { super(registryName); } diff --git a/src/main/java/com/dtteam/dtbop/growthlogic/SmallRedwoodLogic.java b/src/main/java/com/dtteam/dtbop/growthlogic/SmallRedwoodLogic.java index a959bea..80daee0 100644 --- a/src/main/java/com/dtteam/dtbop/growthlogic/SmallRedwoodLogic.java +++ b/src/main/java/com/dtteam/dtbop/growthlogic/SmallRedwoodLogic.java @@ -5,12 +5,12 @@ import com.dtteam.dynamictrees.systems.growthlogic.context.PositionalSpeciesContext; import com.dtteam.dynamictrees.utility.CoordUtils; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.Level; public class SmallRedwoodLogic extends ConiferLogic { - public SmallRedwoodLogic(ResourceLocation registryName) { + public SmallRedwoodLogic(Identifier registryName) { super(registryName); } diff --git a/src/main/java/com/dtteam/dtbop/tree/Bush.java b/src/main/java/com/dtteam/dtbop/tree/Bush.java index e0ae03f..2538008 100644 --- a/src/main/java/com/dtteam/dtbop/tree/Bush.java +++ b/src/main/java/com/dtteam/dtbop/tree/Bush.java @@ -3,7 +3,7 @@ import com.dtteam.dynamictrees.systems.genfeature.BushGenFeature; import com.dtteam.dynamictrees.systems.genfeature.GenFeatures; import com.dtteam.dynamictrees.tree.species.Species; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.core.registries.BuiltInRegistries; @@ -16,14 +16,14 @@ public class Bush extends Species { public static List INSTANCES = new LinkedList<>(); - ResourceLocation log, leaves, altLeaves; + Identifier log, leaves, altLeaves; - public Bush(String name, ResourceLocation log, ResourceLocation leaves) { + public Bush(String name, Identifier log, Identifier leaves) { this(name, log, leaves, null); } - public Bush(String name, ResourceLocation log, ResourceLocation leaves, ResourceLocation altLeaves) { - this.setRegistryName(ResourceLocation.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, name)); + public Bush(String name, Identifier log, Identifier leaves, Identifier altLeaves) { + this.setRegistryName(Identifier.fromNamespaceAndPath(DynamicTreesBOP.MOD_ID, name)); this.setUnlocalizedName(this.getRegistryName().toString()); this.setStandardSoils(); this.log = log; @@ -34,11 +34,11 @@ public Bush(String name, ResourceLocation log, ResourceLocation leaves, Resource } public void setup() { - Block logBlock = BuiltInRegistries.BLOCK.get(log); - Block leavesBlock = BuiltInRegistries.BLOCK.get(leaves); + Block logBlock = BuiltInRegistries.BLOCK.get(log).map(holder -> holder.value()).orElse(Blocks.AIR); + Block leavesBlock = BuiltInRegistries.BLOCK.get(leaves).map(holder -> holder.value()).orElse(Blocks.AIR); Block altLeavesBlock = null; if (altLeaves != null) { - Block altLeafBlock = BuiltInRegistries.BLOCK.get(altLeaves); + Block altLeafBlock = BuiltInRegistries.BLOCK.get(altLeaves).map(holder -> holder.value()).orElse(Blocks.AIR); if (altLeafBlock != Blocks.AIR) altLeavesBlock = altLeafBlock; } this.addGenFeature(GenFeatures.BUSH.with(BushGenFeature.LOG, logBlock) diff --git a/src/main/java/com/dtteam/dtbop/tree/CypressSpecies.java b/src/main/java/com/dtteam/dtbop/tree/CypressSpecies.java index 88ad86a..532358c 100644 --- a/src/main/java/com/dtteam/dtbop/tree/CypressSpecies.java +++ b/src/main/java/com/dtteam/dtbop/tree/CypressSpecies.java @@ -9,7 +9,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.state.BlockState; @@ -17,7 +17,7 @@ public class CypressSpecies extends Species { public static final TypedRegistry.EntryType TYPE = createDefaultType(CypressSpecies::new); - public CypressSpecies(ResourceLocation name, Family family, LeavesProperties leavesProperties) { + public CypressSpecies(Identifier name, Family family, LeavesProperties leavesProperties) { super(name, family, leavesProperties); } diff --git a/src/main/java/com/dtteam/dtbop/tree/GenOnStoneSpecies.java b/src/main/java/com/dtteam/dtbop/tree/GenOnStoneSpecies.java index 0c2a9e0..823eb69 100644 --- a/src/main/java/com/dtteam/dtbop/tree/GenOnStoneSpecies.java +++ b/src/main/java/com/dtteam/dtbop/tree/GenOnStoneSpecies.java @@ -6,7 +6,7 @@ import com.dtteam.dynamictrees.tree.family.Family; import com.dtteam.dynamictrees.tree.species.Species; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; @@ -15,7 +15,7 @@ public class GenOnStoneSpecies extends Species { public static final TypedRegistry.EntryType TYPE = createDefaultType(GenOnStoneSpecies::new); - public GenOnStoneSpecies(ResourceLocation name, Family family, LeavesProperties leavesProperties) { + public GenOnStoneSpecies(Identifier name, Family family, LeavesProperties leavesProperties) { super(name, family, leavesProperties); } diff --git a/src/main/java/com/dtteam/dtbop/tree/GlowshroomSpecies.java b/src/main/java/com/dtteam/dtbop/tree/GlowshroomSpecies.java deleted file mode 100644 index 5133a1d..0000000 --- a/src/main/java/com/dtteam/dtbop/tree/GlowshroomSpecies.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.dtteam.dtbop.tree; - -import com.dtteam.dynamictrees.api.registry.RegistryHandler; -import com.dtteam.dynamictrees.api.registry.TypedRegistry; -import com.dtteam.dynamictrees.block.sapling.DynamicSaplingBlock; -import com.dtteam.dynamictrees.tree.family.Family; -import com.dtteam.dynamictrees.tree.species.Species; -import com.dtteam.dynamictreesplus.block.mushroom.CapProperties; -import com.dtteam.dynamictreesplus.tree.HugeMushroomSpecies; -import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.block.state.BlockState; - -public class GlowshroomSpecies extends HugeMushroomSpecies { - - public static final TypedRegistry.EntryType TYPE = createDefaultMushroomType(GlowshroomSpecies::new); - - public GlowshroomSpecies(ResourceLocation name, Family family, CapProperties capProperties) { - super(name, family, capProperties); - } - - public Species generateSapling() { - return !this.shouldGenerateSapling() || this.saplingBlock != null ? this : - this.setSapling(RegistryHandler.addBlock(this.getSaplingRegName(), () -> new DynamicSaplingBlock(this){ - @Override - public int getLightEmission(BlockState state, BlockGetter level, BlockPos pos) { - return 6; - } - - })); - } - -} diff --git a/src/main/java/com/dtteam/dtbop/tree/PoplarSpecies.java b/src/main/java/com/dtteam/dtbop/tree/PoplarSpecies.java index 865212e..cc3feb2 100644 --- a/src/main/java/com/dtteam/dtbop/tree/PoplarSpecies.java +++ b/src/main/java/com/dtteam/dtbop/tree/PoplarSpecies.java @@ -11,7 +11,7 @@ import com.dtteam.dynamictrees.api.voxmap.SimpleVoxmap; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.state.BlockState; import com.dtteam.dtbop.cell.DTBOPLeafClusters; @@ -20,13 +20,13 @@ public class PoplarSpecies extends Species { public static final TypedRegistry.EntryType TYPE = createDefaultType(PoplarSpecies::new); - public PoplarSpecies(ResourceLocation name, Family family, LeavesProperties leavesProperties) { + public PoplarSpecies(Identifier name, Family family, LeavesProperties leavesProperties) { super(name, family, leavesProperties); } @Override - public NodeInspector getNodeInflator(SimpleVoxmap leafMap) { - return new NodeInflatorPoplar(this, leafMap); + public NodeInspector getNodeInflator(SimpleVoxmap leafMap, int maxRadius) { + return new NodeInflatorPoplar(this, leafMap, maxRadius); } public class NodeInflatorPoplar implements NodeInspector { @@ -36,10 +36,12 @@ public class NodeInflatorPoplar implements NodeInspector { Species species; SimpleVoxmap leafMap; + private final int maxRadius; - public NodeInflatorPoplar(Species species, SimpleVoxmap leafMap) { + public NodeInflatorPoplar(Species species, SimpleVoxmap leafMap, int maxRadius) { this.species = species; this.leafMap = leafMap; + this.maxRadius = Math.min(maxRadius, species.getMaxBranchRadius()); last = BlockPos.ZERO; } @@ -98,9 +100,8 @@ public boolean returnRun(BlockState state, LevelAccessor level, BlockPos pos, Di radius = (float) Math.sqrt(areaAccum) + (species.getTapering() * species.getWorldGenTaperingFactor()); //Ensure the branch is never inflated past it's species maximum - int maxRadius = species.getMaxBranchRadius(); - if (radius > maxRadius) { - radius = maxRadius; + if (radius > this.maxRadius) { + radius = this.maxRadius; } // Make sure that non-twig branches are at least radius 2 diff --git a/src/main/java/com/dtteam/dtbop/tree/TwigletSpecies.java b/src/main/java/com/dtteam/dtbop/tree/TwigletSpecies.java index ed6b230..c8d25d9 100644 --- a/src/main/java/com/dtteam/dtbop/tree/TwigletSpecies.java +++ b/src/main/java/com/dtteam/dtbop/tree/TwigletSpecies.java @@ -5,13 +5,13 @@ import com.dtteam.dynamictrees.systems.nodemapper.NetVolumeNode; import com.dtteam.dynamictrees.tree.family.Family; import com.dtteam.dynamictrees.tree.species.Species; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; public class TwigletSpecies extends Species { public static final TypedRegistry.EntryType TYPE = createDefaultType(TwigletSpecies::new); - public TwigletSpecies(ResourceLocation name, Family family, LeavesProperties leavesProperties) { + public TwigletSpecies(Identifier name, Family family, LeavesProperties leavesProperties) { super(name, family, leavesProperties); setBasicGrowingParameters(0.3f, 2.5f, 1, 2, 1.0f); } diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml deleted file mode 100644 index d175fa6..0000000 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ /dev/null @@ -1,52 +0,0 @@ -modLoader="javafml" -loaderVersion="[1,)" -license="MIT" - -[[mods]] #mandatory -modId="dtbop" #mandatory -version="${file.jarVersion}" #mandatory -displayName="Dynamic Trees for Biomes o' Plenty" #mandatory -updateJSONURL="https://github.com/DynamicTreesTeam/DynamicTreesVersionInfo/blob/master/Add-ons/BOP.json?raw=true" #optional -displayURL="https://www.curseforge.com/minecraft/mc-mods/dtbop" #optional -logoFile="" #optional -credits="ferreusveritas, Nyfaria, ISNing, Groupix05" #optional -authors="mangoose, Max Hyper" #optional - -description=''' -Compatibility Mod between Dynamic trees and Biomes o' plenty -''' - -[[dependencies.dtbop]] #optional - modId="neoforge" - type="required" - versionRange="[21.1.0,)" - ordering="NONE" - side="BOTH" - -[[dependencies.dtbop]] - modId="minecraft" - type="required" - versionRange="[1.21.1]" - ordering="NONE" - side="BOTH" - -[[dependencies.dtbop]] - modId="dynamictrees" - type="required" - versionRange="[1.5.0-BETA01,)" - ordering="AFTER" - side="BOTH" - -[[dependencies.dtbop]] - modId="dynamictreesplus" - type="optional" - versionRange="[1.2.0-BETA1,)" - ordering="AFTER" - side="BOTH" - -[[dependencies.dtbop]] - modId="biomesoplenty" - type="required" - versionRange="[21.1.0.7,)" - ordering="AFTER" - side="BOTH" diff --git a/src/generated/resources/assets/dtbop/blockstates/acacia_twiglet_leaves.json b/src/main/resources/assets/dtbop/blockstates/acacia_twiglet_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/acacia_twiglet_leaves.json rename to src/main/resources/assets/dtbop/blockstates/acacia_twiglet_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/acacia_undergrowth_leaves.json b/src/main/resources/assets/dtbop/blockstates/acacia_undergrowth_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/acacia_undergrowth_leaves.json rename to src/main/resources/assets/dtbop/blockstates/acacia_undergrowth_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/aspen_leaves.json b/src/main/resources/assets/dtbop/blockstates/aspen_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/aspen_leaves.json rename to src/main/resources/assets/dtbop/blockstates/aspen_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/aspen_sapling.json b/src/main/resources/assets/dtbop/blockstates/aspen_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/aspen_sapling.json rename to src/main/resources/assets/dtbop/blockstates/aspen_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/cherry_twiglet_leaves.json b/src/main/resources/assets/dtbop/blockstates/cherry_twiglet_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/cherry_twiglet_leaves.json rename to src/main/resources/assets/dtbop/blockstates/cherry_twiglet_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/cypress_willow_leaves.json b/src/main/resources/assets/dtbop/blockstates/cypress_willow_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/cypress_willow_leaves.json rename to src/main/resources/assets/dtbop/blockstates/cypress_willow_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/dark_oak_twiglet_leaves.json b/src/main/resources/assets/dtbop/blockstates/dark_oak_twiglet_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/dark_oak_twiglet_leaves.json rename to src/main/resources/assets/dtbop/blockstates/dark_oak_twiglet_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/dark_poplar_leaves.json b/src/main/resources/assets/dtbop/blockstates/dark_poplar_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/dark_poplar_leaves.json rename to src/main/resources/assets/dtbop/blockstates/dark_poplar_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/dark_poplar_sapling.json b/src/main/resources/assets/dtbop/blockstates/dark_poplar_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/dark_poplar_sapling.json rename to src/main/resources/assets/dtbop/blockstates/dark_poplar_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/dead_branch.json b/src/main/resources/assets/dtbop/blockstates/dead_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/dead_branch.json rename to src/main/resources/assets/dtbop/blockstates/dead_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/dying_leaves.json b/src/main/resources/assets/dtbop/blockstates/dying_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/dying_leaves.json rename to src/main/resources/assets/dtbop/blockstates/dying_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/dying_sapling.json b/src/main/resources/assets/dtbop/blockstates/dying_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/dying_sapling.json rename to src/main/resources/assets/dtbop/blockstates/dying_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/fir_branch.json b/src/main/resources/assets/dtbop/blockstates/fir_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/fir_branch.json rename to src/main/resources/assets/dtbop/blockstates/fir_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/fir_leaves.json b/src/main/resources/assets/dtbop/blockstates/fir_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/fir_leaves.json rename to src/main/resources/assets/dtbop/blockstates/fir_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/fir_sapling.json b/src/main/resources/assets/dtbop/blockstates/fir_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/fir_sapling.json rename to src/main/resources/assets/dtbop/blockstates/fir_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/flowering_oak_leaves.json b/src/main/resources/assets/dtbop/blockstates/flowering_oak_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/flowering_oak_leaves.json rename to src/main/resources/assets/dtbop/blockstates/flowering_oak_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/flowering_oak_sapling.json b/src/main/resources/assets/dtbop/blockstates/flowering_oak_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/flowering_oak_sapling.json rename to src/main/resources/assets/dtbop/blockstates/flowering_oak_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/flowering_oak_undergrowth_leaves.json b/src/main/resources/assets/dtbop/blockstates/flowering_oak_undergrowth_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/flowering_oak_undergrowth_leaves.json rename to src/main/resources/assets/dtbop/blockstates/flowering_oak_undergrowth_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/glowshroom_cap.json b/src/main/resources/assets/dtbop/blockstates/glowshroom_cap.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/glowshroom_cap.json rename to src/main/resources/assets/dtbop/blockstates/glowshroom_cap.json diff --git a/src/generated/resources/assets/dtbop/blockstates/glowshroom_cap_center.json b/src/main/resources/assets/dtbop/blockstates/glowshroom_cap_center.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/glowshroom_cap_center.json rename to src/main/resources/assets/dtbop/blockstates/glowshroom_cap_center.json diff --git a/src/generated/resources/assets/dtbop/blockstates/glowshroom_sapling.json b/src/main/resources/assets/dtbop/blockstates/glowshroom_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/glowshroom_sapling.json rename to src/main/resources/assets/dtbop/blockstates/glowshroom_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/hellbark_branch.json b/src/main/resources/assets/dtbop/blockstates/hellbark_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/hellbark_branch.json rename to src/main/resources/assets/dtbop/blockstates/hellbark_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/hellbark_bush_leaves.json b/src/main/resources/assets/dtbop/blockstates/hellbark_bush_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/hellbark_bush_leaves.json rename to src/main/resources/assets/dtbop/blockstates/hellbark_bush_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/hellbark_leaves.json b/src/main/resources/assets/dtbop/blockstates/hellbark_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/hellbark_leaves.json rename to src/main/resources/assets/dtbop/blockstates/hellbark_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/hellbark_sapling.json b/src/main/resources/assets/dtbop/blockstates/hellbark_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/hellbark_sapling.json rename to src/main/resources/assets/dtbop/blockstates/hellbark_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/jacaranda_branch.json b/src/main/resources/assets/dtbop/blockstates/jacaranda_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/jacaranda_branch.json rename to src/main/resources/assets/dtbop/blockstates/jacaranda_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/jacaranda_leaves.json b/src/main/resources/assets/dtbop/blockstates/jacaranda_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/jacaranda_leaves.json rename to src/main/resources/assets/dtbop/blockstates/jacaranda_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/jacaranda_sapling.json b/src/main/resources/assets/dtbop/blockstates/jacaranda_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/jacaranda_sapling.json rename to src/main/resources/assets/dtbop/blockstates/jacaranda_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/jungle_twiglet_leaves.json b/src/main/resources/assets/dtbop/blockstates/jungle_twiglet_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/jungle_twiglet_leaves.json rename to src/main/resources/assets/dtbop/blockstates/jungle_twiglet_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/magic_branch.json b/src/main/resources/assets/dtbop/blockstates/magic_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/magic_branch.json rename to src/main/resources/assets/dtbop/blockstates/magic_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/magic_poplar_leaves.json b/src/main/resources/assets/dtbop/blockstates/magic_poplar_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/magic_poplar_leaves.json rename to src/main/resources/assets/dtbop/blockstates/magic_poplar_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/magic_poplar_sapling.json b/src/main/resources/assets/dtbop/blockstates/magic_poplar_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/magic_poplar_sapling.json rename to src/main/resources/assets/dtbop/blockstates/magic_poplar_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/mahogany_branch.json b/src/main/resources/assets/dtbop/blockstates/mahogany_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/mahogany_branch.json rename to src/main/resources/assets/dtbop/blockstates/mahogany_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/mahogany_leaves.json b/src/main/resources/assets/dtbop/blockstates/mahogany_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/mahogany_leaves.json rename to src/main/resources/assets/dtbop/blockstates/mahogany_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/mahogany_sapling.json b/src/main/resources/assets/dtbop/blockstates/mahogany_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/mahogany_sapling.json rename to src/main/resources/assets/dtbop/blockstates/mahogany_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/mangrove_twiglet_leaves.json b/src/main/resources/assets/dtbop/blockstates/mangrove_twiglet_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/mangrove_twiglet_leaves.json rename to src/main/resources/assets/dtbop/blockstates/mangrove_twiglet_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/maple_branch.json b/src/main/resources/assets/dtbop/blockstates/maple_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/maple_branch.json rename to src/main/resources/assets/dtbop/blockstates/maple_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/maple_twiglet_leaves.json b/src/main/resources/assets/dtbop/blockstates/maple_twiglet_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/maple_twiglet_leaves.json rename to src/main/resources/assets/dtbop/blockstates/maple_twiglet_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/mega_dark_oak_leaves.json b/src/main/resources/assets/dtbop/blockstates/mega_dark_oak_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/mega_dark_oak_leaves.json rename to src/main/resources/assets/dtbop/blockstates/mega_dark_oak_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/mega_fir_sapling.json b/src/main/resources/assets/dtbop/blockstates/mega_fir_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/mega_fir_sapling.json rename to src/main/resources/assets/dtbop/blockstates/mega_fir_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/mega_umbran_sapling.json b/src/main/resources/assets/dtbop/blockstates/mega_umbran_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/mega_umbran_sapling.json rename to src/main/resources/assets/dtbop/blockstates/mega_umbran_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/oak_twiglet_leaves.json b/src/main/resources/assets/dtbop/blockstates/oak_twiglet_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/oak_twiglet_leaves.json rename to src/main/resources/assets/dtbop/blockstates/oak_twiglet_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/orange_maple_leaves.json b/src/main/resources/assets/dtbop/blockstates/orange_maple_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/orange_maple_leaves.json rename to src/main/resources/assets/dtbop/blockstates/orange_maple_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/orange_maple_sapling.json b/src/main/resources/assets/dtbop/blockstates/orange_maple_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/orange_maple_sapling.json rename to src/main/resources/assets/dtbop/blockstates/orange_maple_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/palm_branch.json b/src/main/resources/assets/dtbop/blockstates/palm_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/palm_branch.json rename to src/main/resources/assets/dtbop/blockstates/palm_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/palm_leaves.json b/src/main/resources/assets/dtbop/blockstates/palm_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/palm_leaves.json rename to src/main/resources/assets/dtbop/blockstates/palm_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/palm_sapling.json b/src/main/resources/assets/dtbop/blockstates/palm_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/palm_sapling.json rename to src/main/resources/assets/dtbop/blockstates/palm_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/pine_branch.json b/src/main/resources/assets/dtbop/blockstates/pine_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/pine_branch.json rename to src/main/resources/assets/dtbop/blockstates/pine_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/pine_leaves.json b/src/main/resources/assets/dtbop/blockstates/pine_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/pine_leaves.json rename to src/main/resources/assets/dtbop/blockstates/pine_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/pine_sapling.json b/src/main/resources/assets/dtbop/blockstates/pine_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/pine_sapling.json rename to src/main/resources/assets/dtbop/blockstates/pine_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/poplar_leaves.json b/src/main/resources/assets/dtbop/blockstates/poplar_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/poplar_leaves.json rename to src/main/resources/assets/dtbop/blockstates/poplar_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/poplar_sapling.json b/src/main/resources/assets/dtbop/blockstates/poplar_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/poplar_sapling.json rename to src/main/resources/assets/dtbop/blockstates/poplar_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/rainbow_birch_leaves.json b/src/main/resources/assets/dtbop/blockstates/rainbow_birch_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/rainbow_birch_leaves.json rename to src/main/resources/assets/dtbop/blockstates/rainbow_birch_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/rainbow_birch_sapling.json b/src/main/resources/assets/dtbop/blockstates/rainbow_birch_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/rainbow_birch_sapling.json rename to src/main/resources/assets/dtbop/blockstates/rainbow_birch_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/red_maple_leaves.json b/src/main/resources/assets/dtbop/blockstates/red_maple_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/red_maple_leaves.json rename to src/main/resources/assets/dtbop/blockstates/red_maple_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/red_maple_sapling.json b/src/main/resources/assets/dtbop/blockstates/red_maple_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/red_maple_sapling.json rename to src/main/resources/assets/dtbop/blockstates/red_maple_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/redwood_branch.json b/src/main/resources/assets/dtbop/blockstates/redwood_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/redwood_branch.json rename to src/main/resources/assets/dtbop/blockstates/redwood_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/redwood_leaves.json b/src/main/resources/assets/dtbop/blockstates/redwood_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/redwood_leaves.json rename to src/main/resources/assets/dtbop/blockstates/redwood_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/redwood_root.json b/src/main/resources/assets/dtbop/blockstates/redwood_root.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/redwood_root.json rename to src/main/resources/assets/dtbop/blockstates/redwood_root.json diff --git a/src/generated/resources/assets/dtbop/blockstates/redwood_sapling.json b/src/main/resources/assets/dtbop/blockstates/redwood_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/redwood_sapling.json rename to src/main/resources/assets/dtbop/blockstates/redwood_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/rooty_black_sand.json b/src/main/resources/assets/dtbop/blockstates/rooty_black_sand.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/rooty_black_sand.json rename to src/main/resources/assets/dtbop/blockstates/rooty_black_sand.json diff --git a/src/generated/resources/assets/dtbop/blockstates/rooty_dried_salt.json b/src/main/resources/assets/dtbop/blockstates/rooty_dried_salt.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/rooty_dried_salt.json rename to src/main/resources/assets/dtbop/blockstates/rooty_dried_salt.json diff --git a/src/generated/resources/assets/dtbop/blockstates/rooty_glowing_moss_block.json b/src/main/resources/assets/dtbop/blockstates/rooty_glowing_moss_block.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/rooty_glowing_moss_block.json rename to src/main/resources/assets/dtbop/blockstates/rooty_glowing_moss_block.json diff --git a/src/generated/resources/assets/dtbop/blockstates/rooty_mossy_black_sand.json b/src/main/resources/assets/dtbop/blockstates/rooty_mossy_black_sand.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/rooty_mossy_black_sand.json rename to src/main/resources/assets/dtbop/blockstates/rooty_mossy_black_sand.json diff --git a/src/generated/resources/assets/dtbop/blockstates/rooty_orange_sand.json b/src/main/resources/assets/dtbop/blockstates/rooty_orange_sand.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/rooty_orange_sand.json rename to src/main/resources/assets/dtbop/blockstates/rooty_orange_sand.json diff --git a/src/generated/resources/assets/dtbop/blockstates/rooty_origin_grass_block.json b/src/main/resources/assets/dtbop/blockstates/rooty_origin_grass_block.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/rooty_origin_grass_block.json rename to src/main/resources/assets/dtbop/blockstates/rooty_origin_grass_block.json diff --git a/src/generated/resources/assets/dtbop/blockstates/rooty_white_sand.json b/src/main/resources/assets/dtbop/blockstates/rooty_white_sand.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/rooty_white_sand.json rename to src/main/resources/assets/dtbop/blockstates/rooty_white_sand.json diff --git a/src/generated/resources/assets/dtbop/blockstates/silk_undergrowth_web.json b/src/main/resources/assets/dtbop/blockstates/silk_undergrowth_web.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/silk_undergrowth_web.json rename to src/main/resources/assets/dtbop/blockstates/silk_undergrowth_web.json diff --git a/src/generated/resources/assets/dtbop/blockstates/silk_web.json b/src/main/resources/assets/dtbop/blockstates/silk_web.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/silk_web.json rename to src/main/resources/assets/dtbop/blockstates/silk_web.json diff --git a/src/generated/resources/assets/dtbop/blockstates/snowblossom_leaves.json b/src/main/resources/assets/dtbop/blockstates/snowblossom_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/snowblossom_leaves.json rename to src/main/resources/assets/dtbop/blockstates/snowblossom_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/snowblossom_sapling.json b/src/main/resources/assets/dtbop/blockstates/snowblossom_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/snowblossom_sapling.json rename to src/main/resources/assets/dtbop/blockstates/snowblossom_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/snowblossom_twiglet_leaves.json b/src/main/resources/assets/dtbop/blockstates/snowblossom_twiglet_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/snowblossom_twiglet_leaves.json rename to src/main/resources/assets/dtbop/blockstates/snowblossom_twiglet_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/sparse_acacia_leaves.json b/src/main/resources/assets/dtbop/blockstates/sparse_acacia_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/sparse_acacia_leaves.json rename to src/main/resources/assets/dtbop/blockstates/sparse_acacia_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/sparse_oak_leaves.json b/src/main/resources/assets/dtbop/blockstates/sparse_oak_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/sparse_oak_leaves.json rename to src/main/resources/assets/dtbop/blockstates/sparse_oak_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/spruce_poplar_leaves.json b/src/main/resources/assets/dtbop/blockstates/spruce_poplar_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/spruce_poplar_leaves.json rename to src/main/resources/assets/dtbop/blockstates/spruce_poplar_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/spruce_poplar_sapling.json b/src/main/resources/assets/dtbop/blockstates/spruce_poplar_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/spruce_poplar_sapling.json rename to src/main/resources/assets/dtbop/blockstates/spruce_poplar_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/spruce_twiglet_leaves.json b/src/main/resources/assets/dtbop/blockstates/spruce_twiglet_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/spruce_twiglet_leaves.json rename to src/main/resources/assets/dtbop/blockstates/spruce_twiglet_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/spruce_undergrowth_leaves.json b/src/main/resources/assets/dtbop/blockstates/spruce_undergrowth_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/spruce_undergrowth_leaves.json rename to src/main/resources/assets/dtbop/blockstates/spruce_undergrowth_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_dead_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_dead_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_dead_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_dead_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_fir_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_fir_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_fir_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_fir_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_hellbark_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_hellbark_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_hellbark_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_hellbark_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_jacaranda_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_jacaranda_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_jacaranda_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_jacaranda_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_magic_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_magic_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_magic_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_magic_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_mahogany_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_mahogany_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_mahogany_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_mahogany_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_maple_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_maple_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_maple_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_maple_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_palm_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_palm_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_palm_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_palm_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_pine_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_pine_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_pine_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_pine_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_redwood_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_redwood_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_redwood_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_redwood_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_umbran_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_umbran_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_umbran_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_umbran_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/stripped_willow_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_willow_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/stripped_willow_branch.json rename to src/main/resources/assets/dtbop/blockstates/stripped_willow_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/toadstool_cap.json b/src/main/resources/assets/dtbop/blockstates/toadstool_cap.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/toadstool_cap.json rename to src/main/resources/assets/dtbop/blockstates/toadstool_cap.json diff --git a/src/generated/resources/assets/dtbop/blockstates/toadstool_cap_center.json b/src/main/resources/assets/dtbop/blockstates/toadstool_cap_center.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/toadstool_cap_center.json rename to src/main/resources/assets/dtbop/blockstates/toadstool_cap_center.json diff --git a/src/generated/resources/assets/dtbop/blockstates/toadstool_sapling.json b/src/main/resources/assets/dtbop/blockstates/toadstool_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/toadstool_sapling.json rename to src/main/resources/assets/dtbop/blockstates/toadstool_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/umbran_branch.json b/src/main/resources/assets/dtbop/blockstates/umbran_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/umbran_branch.json rename to src/main/resources/assets/dtbop/blockstates/umbran_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/umbran_leaves.json b/src/main/resources/assets/dtbop/blockstates/umbran_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/umbran_leaves.json rename to src/main/resources/assets/dtbop/blockstates/umbran_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/umbran_sapling.json b/src/main/resources/assets/dtbop/blockstates/umbran_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/umbran_sapling.json rename to src/main/resources/assets/dtbop/blockstates/umbran_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/willow_branch.json b/src/main/resources/assets/dtbop/blockstates/willow_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/willow_branch.json rename to src/main/resources/assets/dtbop/blockstates/willow_branch.json diff --git a/src/generated/resources/assets/dtbop/blockstates/willow_leaves.json b/src/main/resources/assets/dtbop/blockstates/willow_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/willow_leaves.json rename to src/main/resources/assets/dtbop/blockstates/willow_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/willow_sapling.json b/src/main/resources/assets/dtbop/blockstates/willow_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/willow_sapling.json rename to src/main/resources/assets/dtbop/blockstates/willow_sapling.json diff --git a/src/generated/resources/assets/dtbop/blockstates/yellow_maple_leaves.json b/src/main/resources/assets/dtbop/blockstates/yellow_maple_leaves.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/yellow_maple_leaves.json rename to src/main/resources/assets/dtbop/blockstates/yellow_maple_leaves.json diff --git a/src/generated/resources/assets/dtbop/blockstates/yellow_maple_sapling.json b/src/main/resources/assets/dtbop/blockstates/yellow_maple_sapling.json similarity index 100% rename from src/generated/resources/assets/dtbop/blockstates/yellow_maple_sapling.json rename to src/main/resources/assets/dtbop/blockstates/yellow_maple_sapling.json diff --git a/src/generated/resources/assets/dtbop/lang/en_us.json b/src/main/resources/assets/dtbop/lang/en_us.json similarity index 100% rename from src/generated/resources/assets/dtbop/lang/en_us.json rename to src/main/resources/assets/dtbop/lang/en_us.json diff --git a/src/generated/resources/assets/dtbop/models/block/dead_branch.json b/src/main/resources/assets/dtbop/models/block/dead_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/dead_branch.json rename to src/main/resources/assets/dtbop/models/block/dead_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/fir_branch.json b/src/main/resources/assets/dtbop/models/block/fir_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/fir_branch.json rename to src/main/resources/assets/dtbop/models/block/fir_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/hellbark_branch.json b/src/main/resources/assets/dtbop/models/block/hellbark_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/hellbark_branch.json rename to src/main/resources/assets/dtbop/models/block/hellbark_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/jacaranda_branch.json b/src/main/resources/assets/dtbop/models/block/jacaranda_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/jacaranda_branch.json rename to src/main/resources/assets/dtbop/models/block/jacaranda_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/magic_branch.json b/src/main/resources/assets/dtbop/models/block/magic_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/magic_branch.json rename to src/main/resources/assets/dtbop/models/block/magic_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/mahogany_branch.json b/src/main/resources/assets/dtbop/models/block/mahogany_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/mahogany_branch.json rename to src/main/resources/assets/dtbop/models/block/mahogany_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/maple_branch.json b/src/main/resources/assets/dtbop/models/block/maple_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/maple_branch.json rename to src/main/resources/assets/dtbop/models/block/maple_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/mushroom/glowshroom_cap_center_age0.json b/src/main/resources/assets/dtbop/models/block/mushroom/glowshroom_cap_center_age0.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/mushroom/glowshroom_cap_center_age0.json rename to src/main/resources/assets/dtbop/models/block/mushroom/glowshroom_cap_center_age0.json diff --git a/src/generated/resources/assets/dtbop/models/block/mushroom/toadstool_cap_center_age0.json b/src/main/resources/assets/dtbop/models/block/mushroom/toadstool_cap_center_age0.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/mushroom/toadstool_cap_center_age0.json rename to src/main/resources/assets/dtbop/models/block/mushroom/toadstool_cap_center_age0.json diff --git a/src/generated/resources/assets/dtbop/models/block/palm_branch.json b/src/main/resources/assets/dtbop/models/block/palm_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/palm_branch.json rename to src/main/resources/assets/dtbop/models/block/palm_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/palm_leaves/palm_core_bottom.json b/src/main/resources/assets/dtbop/models/block/palm_leaves/palm_core_bottom.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/palm_leaves/palm_core_bottom.json rename to src/main/resources/assets/dtbop/models/block/palm_leaves/palm_core_bottom.json diff --git a/src/generated/resources/assets/dtbop/models/block/palm_leaves/palm_core_top.json b/src/main/resources/assets/dtbop/models/block/palm_leaves/palm_core_top.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/palm_leaves/palm_core_top.json rename to src/main/resources/assets/dtbop/models/block/palm_leaves/palm_core_top.json diff --git a/src/generated/resources/assets/dtbop/models/block/palm_leaves/palm_frond.json b/src/main/resources/assets/dtbop/models/block/palm_leaves/palm_frond.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/palm_leaves/palm_frond.json rename to src/main/resources/assets/dtbop/models/block/palm_leaves/palm_frond.json diff --git a/src/generated/resources/assets/dtbop/models/block/pine_branch.json b/src/main/resources/assets/dtbop/models/block/pine_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/pine_branch.json rename to src/main/resources/assets/dtbop/models/block/pine_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/redwood_branch.json b/src/main/resources/assets/dtbop/models/block/redwood_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/redwood_branch.json rename to src/main/resources/assets/dtbop/models/block/redwood_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/redwood_root.json b/src/main/resources/assets/dtbop/models/block/redwood_root.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/redwood_root.json rename to src/main/resources/assets/dtbop/models/block/redwood_root.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/aspen.json b/src/main/resources/assets/dtbop/models/block/saplings/aspen.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/aspen.json rename to src/main/resources/assets/dtbop/models/block/saplings/aspen.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/dark_poplar.json b/src/main/resources/assets/dtbop/models/block/saplings/dark_poplar.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/dark_poplar.json rename to src/main/resources/assets/dtbop/models/block/saplings/dark_poplar.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/dying.json b/src/main/resources/assets/dtbop/models/block/saplings/dying.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/dying.json rename to src/main/resources/assets/dtbop/models/block/saplings/dying.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/fir.json b/src/main/resources/assets/dtbop/models/block/saplings/fir.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/fir.json rename to src/main/resources/assets/dtbop/models/block/saplings/fir.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/flowering_oak.json b/src/main/resources/assets/dtbop/models/block/saplings/flowering_oak.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/flowering_oak.json rename to src/main/resources/assets/dtbop/models/block/saplings/flowering_oak.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/glowshroom.json b/src/main/resources/assets/dtbop/models/block/saplings/glowshroom.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/glowshroom.json rename to src/main/resources/assets/dtbop/models/block/saplings/glowshroom.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/hellbark.json b/src/main/resources/assets/dtbop/models/block/saplings/hellbark.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/hellbark.json rename to src/main/resources/assets/dtbop/models/block/saplings/hellbark.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/jacaranda.json b/src/main/resources/assets/dtbop/models/block/saplings/jacaranda.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/jacaranda.json rename to src/main/resources/assets/dtbop/models/block/saplings/jacaranda.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/magic_poplar.json b/src/main/resources/assets/dtbop/models/block/saplings/magic_poplar.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/magic_poplar.json rename to src/main/resources/assets/dtbop/models/block/saplings/magic_poplar.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/mahogany.json b/src/main/resources/assets/dtbop/models/block/saplings/mahogany.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/mahogany.json rename to src/main/resources/assets/dtbop/models/block/saplings/mahogany.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/mega_fir.json b/src/main/resources/assets/dtbop/models/block/saplings/mega_fir.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/mega_fir.json rename to src/main/resources/assets/dtbop/models/block/saplings/mega_fir.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/mega_umbran.json b/src/main/resources/assets/dtbop/models/block/saplings/mega_umbran.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/mega_umbran.json rename to src/main/resources/assets/dtbop/models/block/saplings/mega_umbran.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/orange_maple.json b/src/main/resources/assets/dtbop/models/block/saplings/orange_maple.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/orange_maple.json rename to src/main/resources/assets/dtbop/models/block/saplings/orange_maple.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/palm.json b/src/main/resources/assets/dtbop/models/block/saplings/palm.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/palm.json rename to src/main/resources/assets/dtbop/models/block/saplings/palm.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/pine.json b/src/main/resources/assets/dtbop/models/block/saplings/pine.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/pine.json rename to src/main/resources/assets/dtbop/models/block/saplings/pine.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/poplar.json b/src/main/resources/assets/dtbop/models/block/saplings/poplar.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/poplar.json rename to src/main/resources/assets/dtbop/models/block/saplings/poplar.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/rainbow_birch.json b/src/main/resources/assets/dtbop/models/block/saplings/rainbow_birch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/rainbow_birch.json rename to src/main/resources/assets/dtbop/models/block/saplings/rainbow_birch.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/red_maple.json b/src/main/resources/assets/dtbop/models/block/saplings/red_maple.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/red_maple.json rename to src/main/resources/assets/dtbop/models/block/saplings/red_maple.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/redwood.json b/src/main/resources/assets/dtbop/models/block/saplings/redwood.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/redwood.json rename to src/main/resources/assets/dtbop/models/block/saplings/redwood.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/snowblossom.json b/src/main/resources/assets/dtbop/models/block/saplings/snowblossom.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/snowblossom.json rename to src/main/resources/assets/dtbop/models/block/saplings/snowblossom.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/spruce_poplar.json b/src/main/resources/assets/dtbop/models/block/saplings/spruce_poplar.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/spruce_poplar.json rename to src/main/resources/assets/dtbop/models/block/saplings/spruce_poplar.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/toadstool.json b/src/main/resources/assets/dtbop/models/block/saplings/toadstool.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/toadstool.json rename to src/main/resources/assets/dtbop/models/block/saplings/toadstool.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/umbran.json b/src/main/resources/assets/dtbop/models/block/saplings/umbran.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/umbran.json rename to src/main/resources/assets/dtbop/models/block/saplings/umbran.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/willow.json b/src/main/resources/assets/dtbop/models/block/saplings/willow.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/willow.json rename to src/main/resources/assets/dtbop/models/block/saplings/willow.json diff --git a/src/generated/resources/assets/dtbop/models/block/saplings/yellow_maple.json b/src/main/resources/assets/dtbop/models/block/saplings/yellow_maple.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/saplings/yellow_maple.json rename to src/main/resources/assets/dtbop/models/block/saplings/yellow_maple.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_dead_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_dead_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_dead_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_dead_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_fir_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_fir_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_fir_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_fir_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_hellbark_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_hellbark_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_hellbark_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_hellbark_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_jacaranda_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_jacaranda_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_jacaranda_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_jacaranda_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_magic_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_magic_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_magic_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_magic_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_mahogany_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_mahogany_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_mahogany_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_mahogany_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_maple_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_maple_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_maple_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_maple_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_palm_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_palm_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_palm_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_palm_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_pine_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_pine_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_pine_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_pine_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_redwood_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_redwood_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_redwood_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_redwood_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_umbran_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_umbran_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_umbran_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_umbran_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/stripped_willow_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_willow_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/stripped_willow_branch.json rename to src/main/resources/assets/dtbop/models/block/stripped_willow_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/umbran_branch.json b/src/main/resources/assets/dtbop/models/block/umbran_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/umbran_branch.json rename to src/main/resources/assets/dtbop/models/block/umbran_branch.json diff --git a/src/generated/resources/assets/dtbop/models/block/willow_branch.json b/src/main/resources/assets/dtbop/models/block/willow_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/block/willow_branch.json rename to src/main/resources/assets/dtbop/models/block/willow_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/aspen_seed.json b/src/main/resources/assets/dtbop/models/item/aspen_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/aspen_seed.json rename to src/main/resources/assets/dtbop/models/item/aspen_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/dark_poplar_seed.json b/src/main/resources/assets/dtbop/models/item/dark_poplar_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/dark_poplar_seed.json rename to src/main/resources/assets/dtbop/models/item/dark_poplar_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/dead_branch.json b/src/main/resources/assets/dtbop/models/item/dead_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/dead_branch.json rename to src/main/resources/assets/dtbop/models/item/dead_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/dying_seed.json b/src/main/resources/assets/dtbop/models/item/dying_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/dying_seed.json rename to src/main/resources/assets/dtbop/models/item/dying_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/fir_branch.json b/src/main/resources/assets/dtbop/models/item/fir_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/fir_branch.json rename to src/main/resources/assets/dtbop/models/item/fir_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/fir_seed.json b/src/main/resources/assets/dtbop/models/item/fir_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/fir_seed.json rename to src/main/resources/assets/dtbop/models/item/fir_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/flowering_oak_seed.json b/src/main/resources/assets/dtbop/models/item/flowering_oak_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/flowering_oak_seed.json rename to src/main/resources/assets/dtbop/models/item/flowering_oak_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/glowshroom_seed.json b/src/main/resources/assets/dtbop/models/item/glowshroom_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/glowshroom_seed.json rename to src/main/resources/assets/dtbop/models/item/glowshroom_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/hellbark_branch.json b/src/main/resources/assets/dtbop/models/item/hellbark_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/hellbark_branch.json rename to src/main/resources/assets/dtbop/models/item/hellbark_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/hellbark_seed.json b/src/main/resources/assets/dtbop/models/item/hellbark_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/hellbark_seed.json rename to src/main/resources/assets/dtbop/models/item/hellbark_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/jacaranda_branch.json b/src/main/resources/assets/dtbop/models/item/jacaranda_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/jacaranda_branch.json rename to src/main/resources/assets/dtbop/models/item/jacaranda_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/jacaranda_seed.json b/src/main/resources/assets/dtbop/models/item/jacaranda_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/jacaranda_seed.json rename to src/main/resources/assets/dtbop/models/item/jacaranda_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/magic_branch.json b/src/main/resources/assets/dtbop/models/item/magic_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/magic_branch.json rename to src/main/resources/assets/dtbop/models/item/magic_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/magic_poplar_seed.json b/src/main/resources/assets/dtbop/models/item/magic_poplar_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/magic_poplar_seed.json rename to src/main/resources/assets/dtbop/models/item/magic_poplar_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/mahogany_branch.json b/src/main/resources/assets/dtbop/models/item/mahogany_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/mahogany_branch.json rename to src/main/resources/assets/dtbop/models/item/mahogany_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/mahogany_seed.json b/src/main/resources/assets/dtbop/models/item/mahogany_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/mahogany_seed.json rename to src/main/resources/assets/dtbop/models/item/mahogany_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/maple_branch.json b/src/main/resources/assets/dtbop/models/item/maple_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/maple_branch.json rename to src/main/resources/assets/dtbop/models/item/maple_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/mega_fir_seed.json b/src/main/resources/assets/dtbop/models/item/mega_fir_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/mega_fir_seed.json rename to src/main/resources/assets/dtbop/models/item/mega_fir_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/mega_umbran_seed.json b/src/main/resources/assets/dtbop/models/item/mega_umbran_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/mega_umbran_seed.json rename to src/main/resources/assets/dtbop/models/item/mega_umbran_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/orange_maple_seed.json b/src/main/resources/assets/dtbop/models/item/orange_maple_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/orange_maple_seed.json rename to src/main/resources/assets/dtbop/models/item/orange_maple_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/palm_branch.json b/src/main/resources/assets/dtbop/models/item/palm_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/palm_branch.json rename to src/main/resources/assets/dtbop/models/item/palm_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/palm_seed.json b/src/main/resources/assets/dtbop/models/item/palm_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/palm_seed.json rename to src/main/resources/assets/dtbop/models/item/palm_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/pine_branch.json b/src/main/resources/assets/dtbop/models/item/pine_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/pine_branch.json rename to src/main/resources/assets/dtbop/models/item/pine_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/pine_seed.json b/src/main/resources/assets/dtbop/models/item/pine_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/pine_seed.json rename to src/main/resources/assets/dtbop/models/item/pine_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/poplar_seed.json b/src/main/resources/assets/dtbop/models/item/poplar_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/poplar_seed.json rename to src/main/resources/assets/dtbop/models/item/poplar_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/rainbow_birch_seed.json b/src/main/resources/assets/dtbop/models/item/rainbow_birch_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/rainbow_birch_seed.json rename to src/main/resources/assets/dtbop/models/item/rainbow_birch_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/red_maple_seed.json b/src/main/resources/assets/dtbop/models/item/red_maple_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/red_maple_seed.json rename to src/main/resources/assets/dtbop/models/item/red_maple_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/redwood_branch.json b/src/main/resources/assets/dtbop/models/item/redwood_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/redwood_branch.json rename to src/main/resources/assets/dtbop/models/item/redwood_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/redwood_seed.json b/src/main/resources/assets/dtbop/models/item/redwood_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/redwood_seed.json rename to src/main/resources/assets/dtbop/models/item/redwood_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/snowblossom_seed.json b/src/main/resources/assets/dtbop/models/item/snowblossom_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/snowblossom_seed.json rename to src/main/resources/assets/dtbop/models/item/snowblossom_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/spruce_poplar_seed.json b/src/main/resources/assets/dtbop/models/item/spruce_poplar_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/spruce_poplar_seed.json rename to src/main/resources/assets/dtbop/models/item/spruce_poplar_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/toadstool_seed.json b/src/main/resources/assets/dtbop/models/item/toadstool_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/toadstool_seed.json rename to src/main/resources/assets/dtbop/models/item/toadstool_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/umbran_branch.json b/src/main/resources/assets/dtbop/models/item/umbran_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/umbran_branch.json rename to src/main/resources/assets/dtbop/models/item/umbran_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/umbran_seed.json b/src/main/resources/assets/dtbop/models/item/umbran_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/umbran_seed.json rename to src/main/resources/assets/dtbop/models/item/umbran_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/willow_branch.json b/src/main/resources/assets/dtbop/models/item/willow_branch.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/willow_branch.json rename to src/main/resources/assets/dtbop/models/item/willow_branch.json diff --git a/src/generated/resources/assets/dtbop/models/item/willow_seed.json b/src/main/resources/assets/dtbop/models/item/willow_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/willow_seed.json rename to src/main/resources/assets/dtbop/models/item/willow_seed.json diff --git a/src/generated/resources/assets/dtbop/models/item/yellow_maple_seed.json b/src/main/resources/assets/dtbop/models/item/yellow_maple_seed.json similarity index 100% rename from src/generated/resources/assets/dtbop/models/item/yellow_maple_seed.json rename to src/main/resources/assets/dtbop/models/item/yellow_maple_seed.json diff --git a/src/generated/resources/assets/minecraft/atlases/blocks.json b/src/main/resources/assets/minecraft/atlases/blocks.json similarity index 100% rename from src/generated/resources/assets/minecraft/atlases/blocks.json rename to src/main/resources/assets/minecraft/atlases/blocks.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/acacia_twiglet_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/acacia_twiglet_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/acacia_twiglet_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/acacia_twiglet_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/acacia_undergrowth_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/acacia_undergrowth_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/acacia_undergrowth_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/acacia_undergrowth_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/aspen_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/aspen_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/aspen_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/aspen_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/cherry_twiglet_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/cherry_twiglet_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/cherry_twiglet_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/cherry_twiglet_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/cypress_willow_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/cypress_willow_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/cypress_willow_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/cypress_willow_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/dark_oak_twiglet_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/dark_oak_twiglet_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/dark_oak_twiglet_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/dark_oak_twiglet_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/dark_poplar_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/dark_poplar_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/dark_poplar_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/dark_poplar_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/dying_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/dying_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/dying_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/dying_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/fir_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/fir_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/fir_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/fir_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/flowering_oak_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/flowering_oak_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/flowering_oak_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/flowering_oak_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/glowshroom_cap.json b/src/main/resources/data/dtbop/loot_table/blocks/glowshroom_cap.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/glowshroom_cap.json rename to src/main/resources/data/dtbop/loot_table/blocks/glowshroom_cap.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/hellbark_bush_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/hellbark_bush_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/hellbark_bush_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/hellbark_bush_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/hellbark_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/hellbark_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/hellbark_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/hellbark_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/jacaranda_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/jacaranda_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/jacaranda_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/jacaranda_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/jungle_twiglet_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/jungle_twiglet_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/jungle_twiglet_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/jungle_twiglet_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/magic_poplar_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/magic_poplar_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/magic_poplar_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/magic_poplar_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/mahogany_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/mahogany_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/mahogany_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/mahogany_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/mangrove_twiglet_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/mangrove_twiglet_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/mangrove_twiglet_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/mangrove_twiglet_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/maple_twiglet_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/maple_twiglet_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/maple_twiglet_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/maple_twiglet_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/mega_dark_oak_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/mega_dark_oak_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/mega_dark_oak_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/mega_dark_oak_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/oak_twiglet_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/oak_twiglet_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/oak_twiglet_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/oak_twiglet_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/orange_maple_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/orange_maple_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/orange_maple_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/orange_maple_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/palm_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/palm_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/palm_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/palm_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/pine_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/pine_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/pine_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/pine_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/poplar_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/poplar_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/poplar_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/poplar_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/rainbow_birch_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/rainbow_birch_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/rainbow_birch_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/rainbow_birch_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/red_maple_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/red_maple_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/red_maple_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/red_maple_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/redwood_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/redwood_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/redwood_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/redwood_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/silk_undergrowth_web.json b/src/main/resources/data/dtbop/loot_table/blocks/silk_undergrowth_web.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/silk_undergrowth_web.json rename to src/main/resources/data/dtbop/loot_table/blocks/silk_undergrowth_web.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/silk_web.json b/src/main/resources/data/dtbop/loot_table/blocks/silk_web.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/silk_web.json rename to src/main/resources/data/dtbop/loot_table/blocks/silk_web.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/snowblossom_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/snowblossom_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/snowblossom_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/snowblossom_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/snowblossom_twiglet_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/snowblossom_twiglet_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/snowblossom_twiglet_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/snowblossom_twiglet_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/sparse_acacia_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/sparse_acacia_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/sparse_acacia_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/sparse_acacia_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/sparse_oak_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/sparse_oak_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/sparse_oak_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/sparse_oak_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/spruce_poplar_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/spruce_poplar_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/spruce_poplar_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/spruce_poplar_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/spruce_twiglet_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/spruce_twiglet_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/spruce_twiglet_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/spruce_twiglet_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/spruce_undergrowth_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/spruce_undergrowth_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/spruce_undergrowth_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/spruce_undergrowth_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/toadstool_cap.json b/src/main/resources/data/dtbop/loot_table/blocks/toadstool_cap.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/toadstool_cap.json rename to src/main/resources/data/dtbop/loot_table/blocks/toadstool_cap.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/umbran_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/umbran_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/umbran_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/umbran_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/willow_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/willow_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/willow_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/willow_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/blocks/yellow_maple_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/yellow_maple_leaves.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/blocks/yellow_maple_leaves.json rename to src/main/resources/data/dtbop/loot_table/blocks/yellow_maple_leaves.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/dead.json b/src/main/resources/data/dtbop/loot_table/trees/branches/dead.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/dead.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/dead.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/fir.json b/src/main/resources/data/dtbop/loot_table/trees/branches/fir.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/fir.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/fir.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/hellbark.json b/src/main/resources/data/dtbop/loot_table/trees/branches/hellbark.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/hellbark.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/hellbark.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/jacaranda.json b/src/main/resources/data/dtbop/loot_table/trees/branches/jacaranda.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/jacaranda.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/jacaranda.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/magic.json b/src/main/resources/data/dtbop/loot_table/trees/branches/magic.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/magic.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/magic.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/mahogany.json b/src/main/resources/data/dtbop/loot_table/trees/branches/mahogany.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/mahogany.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/mahogany.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/maple.json b/src/main/resources/data/dtbop/loot_table/trees/branches/maple.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/maple.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/maple.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/palm.json b/src/main/resources/data/dtbop/loot_table/trees/branches/palm.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/palm.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/palm.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/pine.json b/src/main/resources/data/dtbop/loot_table/trees/branches/pine.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/pine.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/pine.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/redwood.json b/src/main/resources/data/dtbop/loot_table/trees/branches/redwood.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/redwood.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/redwood.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_dead.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_dead.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_dead.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_dead.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_fir.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_fir.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_fir.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_fir.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_hellbark.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_hellbark.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_hellbark.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_hellbark.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_jacaranda.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_jacaranda.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_jacaranda.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_jacaranda.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_magic.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_magic.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_magic.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_magic.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_mahogany.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_mahogany.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_mahogany.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_mahogany.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_maple.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_maple.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_maple.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_maple.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_palm.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_palm.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_palm.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_palm.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_pine.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_pine.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_pine.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_pine.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_redwood.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_redwood.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_redwood.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_redwood.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_umbran.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_umbran.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_umbran.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_umbran.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_willow.json b/src/main/resources/data/dtbop/loot_table/trees/branches/stripped_willow.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/stripped_willow.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/stripped_willow.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/umbran.json b/src/main/resources/data/dtbop/loot_table/trees/branches/umbran.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/umbran.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/umbran.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/branches/willow.json b/src/main/resources/data/dtbop/loot_table/trees/branches/willow.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/branches/willow.json rename to src/main/resources/data/dtbop/loot_table/trees/branches/willow.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/acacia_twiglet.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/acacia_twiglet.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/acacia_twiglet.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/acacia_twiglet.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/acacia_undergrowth.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/acacia_undergrowth.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/acacia_undergrowth.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/acacia_undergrowth.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/aspen.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/aspen.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/aspen.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/aspen.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/cherry_twiglet.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/cherry_twiglet.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/cherry_twiglet.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/cherry_twiglet.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/cypress_willow.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/cypress_willow.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/cypress_willow.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/cypress_willow.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/dark_oak_twiglet.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/dark_oak_twiglet.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/dark_oak_twiglet.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/dark_oak_twiglet.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/dark_poplar.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/dark_poplar.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/dark_poplar.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/dark_poplar.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/dying.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/dying.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/dying.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/dying.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/fir.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/fir.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/fir.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/fir.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/flowering_oak.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/flowering_oak.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/flowering_oak.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/flowering_oak.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/flowering_oak_undergrowth.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/flowering_oak_undergrowth.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/flowering_oak_undergrowth.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/flowering_oak_undergrowth.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/hellbark.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/hellbark.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/hellbark.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/hellbark.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/hellbark_bush.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/hellbark_bush.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/hellbark_bush.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/hellbark_bush.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/jacaranda.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/jacaranda.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/jacaranda.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/jacaranda.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/jungle_twiglet.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/jungle_twiglet.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/jungle_twiglet.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/jungle_twiglet.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/magic_poplar.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/magic_poplar.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/magic_poplar.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/magic_poplar.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/mahogany.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/mahogany.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/mahogany.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/mahogany.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/mangrove_twiglet.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/mangrove_twiglet.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/mangrove_twiglet.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/mangrove_twiglet.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/maple_twiglet.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/maple_twiglet.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/maple_twiglet.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/maple_twiglet.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/mega_dark_oak.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/mega_dark_oak.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/mega_dark_oak.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/mega_dark_oak.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/oak_twiglet.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/oak_twiglet.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/oak_twiglet.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/oak_twiglet.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/orange_maple.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/orange_maple.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/orange_maple.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/orange_maple.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/palm.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/palm.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/palm.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/palm.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/pine.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/pine.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/pine.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/pine.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/poplar.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/poplar.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/poplar.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/poplar.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/rainbow_birch.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/rainbow_birch.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/rainbow_birch.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/rainbow_birch.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/red_maple.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/red_maple.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/red_maple.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/red_maple.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/redwood.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/redwood.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/redwood.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/redwood.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/silk.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/silk.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/silk.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/silk.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/silk_undergrowth.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/silk_undergrowth.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/silk_undergrowth.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/silk_undergrowth.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/snowblossom.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/snowblossom.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/snowblossom.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/snowblossom.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/snowblossom_twiglet.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/snowblossom_twiglet.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/snowblossom_twiglet.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/snowblossom_twiglet.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/sparse_acacia.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/sparse_acacia.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/sparse_acacia.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/sparse_acacia.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/sparse_oak.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/sparse_oak.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/sparse_oak.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/sparse_oak.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/spruce_poplar.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/spruce_poplar.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/spruce_poplar.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/spruce_poplar.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/spruce_twiglet.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/spruce_twiglet.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/spruce_twiglet.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/spruce_twiglet.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/spruce_undergrowth.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/spruce_undergrowth.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/spruce_undergrowth.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/spruce_undergrowth.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/umbran.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/umbran.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/umbran.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/umbran.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/willow.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/willow.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/willow.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/willow.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/leaves/yellow_maple.json b/src/main/resources/data/dtbop/loot_table/trees/leaves/yellow_maple.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/leaves/yellow_maple.json rename to src/main/resources/data/dtbop/loot_table/trees/leaves/yellow_maple.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/mushroom_caps/glowshroom.json b/src/main/resources/data/dtbop/loot_table/trees/mushroom_caps/glowshroom.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/mushroom_caps/glowshroom.json rename to src/main/resources/data/dtbop/loot_table/trees/mushroom_caps/glowshroom.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/mushroom_caps/toadstool.json b/src/main/resources/data/dtbop/loot_table/trees/mushroom_caps/toadstool.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/mushroom_caps/toadstool.json rename to src/main/resources/data/dtbop/loot_table/trees/mushroom_caps/toadstool.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/aspen.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/aspen.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/aspen.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/aspen.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/dark_poplar.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/dark_poplar.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/dark_poplar.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/dark_poplar.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/dying.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/dying.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/dying.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/dying.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/fir.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/fir.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/fir.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/fir.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/flowering_oak.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/flowering_oak.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/flowering_oak.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/flowering_oak.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/glowshroom.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/glowshroom.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/glowshroom.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/glowshroom.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/hellbark.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/hellbark.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/hellbark.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/hellbark.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/jacaranda.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/jacaranda.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/jacaranda.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/jacaranda.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/magic_poplar.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/magic_poplar.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/magic_poplar.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/magic_poplar.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/mahogany.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/mahogany.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/mahogany.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/mahogany.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/mega_fir.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/mega_fir.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/mega_fir.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/mega_fir.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/mega_umbran.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/mega_umbran.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/mega_umbran.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/mega_umbran.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/orange_maple.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/orange_maple.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/orange_maple.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/orange_maple.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/palm.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/palm.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/palm.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/palm.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/pine.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/pine.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/pine.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/pine.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/poplar.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/poplar.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/poplar.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/poplar.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/rainbow_birch.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/rainbow_birch.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/rainbow_birch.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/rainbow_birch.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/red_maple.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/red_maple.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/red_maple.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/red_maple.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/redwood.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/redwood.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/redwood.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/redwood.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/snowblossom.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/snowblossom.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/snowblossom.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/snowblossom.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/spruce_poplar.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/spruce_poplar.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/spruce_poplar.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/spruce_poplar.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/toadstool.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/toadstool.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/toadstool.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/toadstool.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/umbran.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/umbran.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/umbran.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/umbran.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/willow.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/willow.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/willow.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/willow.json diff --git a/src/generated/resources/data/dtbop/loot_table/trees/voluntary/yellow_maple.json b/src/main/resources/data/dtbop/loot_table/trees/voluntary/yellow_maple.json similarity index 100% rename from src/generated/resources/data/dtbop/loot_table/trees/voluntary/yellow_maple.json rename to src/main/resources/data/dtbop/loot_table/trees/voluntary/yellow_maple.json diff --git a/src/generated/resources/data/dynamictrees/tags/block/branches.json b/src/main/resources/data/dynamictrees/tags/block/branches.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/block/branches.json rename to src/main/resources/data/dynamictrees/tags/block/branches.json diff --git a/src/generated/resources/data/dynamictrees/tags/block/branches_that_burn.json b/src/main/resources/data/dynamictrees/tags/block/branches_that_burn.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/block/branches_that_burn.json rename to src/main/resources/data/dynamictrees/tags/block/branches_that_burn.json diff --git a/src/generated/resources/data/dynamictrees/tags/block/fungus_caps.json b/src/main/resources/data/dynamictrees/tags/block/fungus_caps.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/block/fungus_caps.json rename to src/main/resources/data/dynamictrees/tags/block/fungus_caps.json diff --git a/src/generated/resources/data/dynamictrees/tags/block/leaves.json b/src/main/resources/data/dynamictrees/tags/block/leaves.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/block/leaves.json rename to src/main/resources/data/dynamictrees/tags/block/leaves.json diff --git a/src/generated/resources/data/dynamictrees/tags/block/rooty_soil.json b/src/main/resources/data/dynamictrees/tags/block/rooty_soil.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/block/rooty_soil.json rename to src/main/resources/data/dynamictrees/tags/block/rooty_soil.json diff --git a/src/generated/resources/data/dynamictrees/tags/block/saplings.json b/src/main/resources/data/dynamictrees/tags/block/saplings.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/block/saplings.json rename to src/main/resources/data/dynamictrees/tags/block/saplings.json diff --git a/src/generated/resources/data/dynamictrees/tags/block/stripped_branches.json b/src/main/resources/data/dynamictrees/tags/block/stripped_branches.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/block/stripped_branches.json rename to src/main/resources/data/dynamictrees/tags/block/stripped_branches.json diff --git a/src/generated/resources/data/dynamictrees/tags/block/stripped_branches_that_burn.json b/src/main/resources/data/dynamictrees/tags/block/stripped_branches_that_burn.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/block/stripped_branches_that_burn.json rename to src/main/resources/data/dynamictrees/tags/block/stripped_branches_that_burn.json diff --git a/src/generated/resources/data/dynamictrees/tags/item/branches.json b/src/main/resources/data/dynamictrees/tags/item/branches.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/item/branches.json rename to src/main/resources/data/dynamictrees/tags/item/branches.json diff --git a/src/generated/resources/data/dynamictrees/tags/item/branches_that_burn.json b/src/main/resources/data/dynamictrees/tags/item/branches_that_burn.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/item/branches_that_burn.json rename to src/main/resources/data/dynamictrees/tags/item/branches_that_burn.json diff --git a/src/generated/resources/data/dynamictrees/tags/item/fungus_caps.json b/src/main/resources/data/dynamictrees/tags/item/fungus_caps.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/item/fungus_caps.json rename to src/main/resources/data/dynamictrees/tags/item/fungus_caps.json diff --git a/src/generated/resources/data/dynamictrees/tags/item/seeds.json b/src/main/resources/data/dynamictrees/tags/item/seeds.json similarity index 100% rename from src/generated/resources/data/dynamictrees/tags/item/seeds.json rename to src/main/resources/data/dynamictrees/tags/item/seeds.json diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..ac9034b --- /dev/null +++ b/src/main/resources/fabric.mod.json @@ -0,0 +1,28 @@ +{ + "schemaVersion": 1, + "id": "dtbop", + "version": "${mod_version}", + "name": "Dynamic Trees for Biomes o' Plenty", + "description": "Compatibility Mod between Dynamic Trees and Biomes o' Plenty", + "authors": [ + "mangoose", + "Max Hyper" + ], + "contact": { + "homepage": "https://www.curseforge.com/minecraft/mc-mods/dtbop", + "sources": "https://github.com/DynamicTreesTeam/DynamicTreesBOP" + }, + "license": "MIT", + "environment": "*", + "entrypoints": { + "dynamictrees": [ + "com.dtteam.dtbop.DynamicTreesBOP" + ] + }, + "depends": { + "fabricloader": ">=0.19.3", + "minecraft": "26.2", + "dynamictrees": "*", + "biomesoplenty": "*" + } +} diff --git a/src/main/resources/trees/dtbop/world_gen/default.json b/src/main/resources/trees/dtbop/world_gen/default.json index dccfc9a..0279f9b 100644 --- a/src/main/resources/trees/dtbop/world_gen/default.json +++ b/src/main/resources/trees/dtbop/world_gen/default.json @@ -1,57 +1,67 @@ [ { - "select": { "name": "biomesoplenty:tropics" }, + "select": { + "name": "biomesoplenty:tropics" + }, "apply": { - "species" : { - "random" : { - "dtbop:palm" : 6, - "dtbop:flowering_oak_undergrowth" : 2, - "dtbop:jungle_twiglet" : 2, - "cocoa" : 1 + "species": { + "random": { + "dtbop:palm": 6, + "dtbop:flowering_oak_undergrowth": 2, + "dtbop:jungle_twiglet": 2, + "cocoa": 1 } }, - "density": [ 5.0 ], + "density": [ + 5.0 + ], "chance": 1.0, - "forestness" : 0.5 + "forestness": 0.5 } }, { - "select": { "name": "biomesoplenty:rainforest" }, + "select": { + "name": "biomesoplenty:rainforest" + }, "apply": { - "species" : { - "random" : { - "dtbop:mahogany" : 9, - "dtbop:short_jungle" : 2, - "cocoa" : 1 + "species": { + "random": { + "dtbop:mahogany": 9, + "dtbop:short_jungle": 2, + "cocoa": 1 } }, "density": 1.0, "chance": 1.0, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:rocky_rainforest" }, + "select": { + "name": "biomesoplenty:rocky_rainforest" + }, "apply": { - "species" : { - "random" : { - "dtbop:mahogany" : 1, - "dtbop:jungle_twiglet" : 6, - "oak_undergrowth" : 2 + "species": { + "random": { + "dtbop:mahogany": 1, + "dtbop:jungle_twiglet": 6, + "oak_undergrowth": 2 } }, "density": 1.0, "chance": 1.0, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:floodplain" }, + "select": { + "name": "biomesoplenty:floodplain" + }, "apply": { - "species" : { - "random" : { - "dtbop:sparse_oak" : 1, - "oak_undergrowth" : 1 + "species": { + "random": { + "dtbop:sparse_oak": 1, + "oak_undergrowth": 1 } }, "density": 0.5, @@ -59,27 +69,31 @@ } }, { - "select": { "name": "biomesoplenty:auroral_garden" }, + "select": { + "name": "biomesoplenty:auroral_garden" + }, "apply": { - "species" : { - "random" : { - "dtbop:rainbow_birch" : 6, - "dtbop:fir" : 3, - "oak_undergrowth" : 1 + "species": { + "random": { + "dtbop:rainbow_birch": 6, + "dtbop:fir": 3, + "oak_undergrowth": 1 } }, "density": 0.5, "chance": 0.8, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:jade_cliffs" }, + "select": { + "name": "biomesoplenty:jade_cliffs" + }, "apply": { - "species" : { - "random" : { - "dtbop:spruce_undergrowth" : 15, - "spruce" : 1 + "species": { + "random": { + "dtbop:spruce_undergrowth": 15, + "spruce": 1 } }, "density": 1.0, @@ -87,28 +101,34 @@ } }, { - "select": { "name": "biomesoplenty:.*woodland" }, + "select": { + "name": "biomesoplenty:.*woodland" + }, "apply": { - "species" : "oak", + "species": "oak", "density": 0.5, "chance": 0.8, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:old_growth_woodland" }, + "select": { + "name": "biomesoplenty:old_growth_woodland" + }, "apply": { "density": 1.5, "chance": 1.0 } }, { - "select": { "name": "biomesoplenty:prairie" }, + "select": { + "name": "biomesoplenty:prairie" + }, "apply": { - "species" : { - "random" : { - "dtbop:sparse_oak" : 7, - "oak" : 1 + "species": { + "random": { + "dtbop:sparse_oak": 7, + "oak": 1 } }, "density": 0.2, @@ -116,12 +136,14 @@ } }, { - "select": { "name": "biomesoplenty:lavender_field" }, + "select": { + "name": "biomesoplenty:lavender_field" + }, "apply": { - "species" : { - "random" : { - "dtbop:jacaranda" : 7, - "dtbop:flowering_oak" : 1 + "species": { + "random": { + "dtbop:jacaranda": 7, + "dtbop:flowering_oak": 1 } }, "density": 0.1, @@ -129,23 +151,27 @@ } }, { - "select": { "name": "biomesoplenty:jacaranda_glade" }, + "select": { + "name": "biomesoplenty:jacaranda_glade" + }, "apply": { - "species" : { - "random" : { - "dtbop:jacaranda" : 7, - "dtbop:flowering_oak" : 1, - "dtbop:snowblossom_twiglet" : 1, - "dtbop:cherry_twiglet" : 1 + "species": { + "random": { + "dtbop:jacaranda": 7, + "dtbop:flowering_oak": 1, + "dtbop:snowblossom_twiglet": 1, + "dtbop:cherry_twiglet": 1 } }, "density": 1.0, "chance": 0.75, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:snowblossom_grove" }, + "select": { + "name": "biomesoplenty:snowblossom_grove" + }, "apply": { "species": "dtbop:snowblossom", "density": [ @@ -155,13 +181,15 @@ } }, { - "select": { "name": "biomesoplenty:grove_clearing" }, + "select": { + "name": "biomesoplenty:grove_clearing" + }, "apply": { - "species" : { - "random" : { - "dtbop:sparse_oak" : 1, - "oak_undergrowth" : 3, - "dtbop:flowering_oak_undergrowth" : 3 + "species": { + "random": { + "dtbop:sparse_oak": 1, + "oak_undergrowth": 3, + "dtbop:flowering_oak_undergrowth": 3 } }, "density": 0.5, @@ -169,29 +197,33 @@ } }, { - "select": { "name": "biomesoplenty:mediterranean_forest" }, + "select": { + "name": "biomesoplenty:mediterranean_forest" + }, "apply": { - "species" : { - "random" : { - "dtbop:dark_poplar" : 3, - "dtbop:spruce_poplar" : 3, - "oak_undergrowth" : 1, - "dtbop:flowering_oak_undergrowth" : 1, - "dtbop:sparse_oak" : 3 + "species": { + "random": { + "dtbop:dark_poplar": 3, + "dtbop:spruce_poplar": 3, + "oak_undergrowth": 1, + "dtbop:flowering_oak_undergrowth": 1, + "dtbop:sparse_oak": 3 } }, "density": 0.4, "chance": 0.5, - "forestness" : 0.5 + "forestness": 0.5 } }, { - "select": { "name": "biomesoplenty:scrubland" }, + "select": { + "name": "biomesoplenty:scrubland" + }, "apply": { - "species" : { - "random" : { - "dtbop:oak_twiglet" : 1, - "dtbop:spruce_twiglet" : 1 + "species": { + "random": { + "dtbop:oak_twiglet": 1, + "dtbop:spruce_twiglet": 1 } }, "density": 0.2, @@ -199,21 +231,25 @@ } }, { - "select": { "name": "biomesoplenty:tundra" }, + "select": { + "name": "biomesoplenty:tundra" + }, "apply": { - "species" : "dtbop:maple_twiglet", + "species": "dtbop:maple_twiglet", "density": 0.1, "chance": 0.4 } }, { - "select": { "name": "biomesoplenty:bog" }, + "select": { + "name": "biomesoplenty:bog" + }, "apply": { - "species" : { - "random" : { - "dtbop:maple_twiglet" : 1, - "dtbop:mangrove_twiglet" : 1, - "dtbop:spruce_twiglet" : 1 + "species": { + "random": { + "dtbop:maple_twiglet": 1, + "dtbop:mangrove_twiglet": 1, + "dtbop:spruce_twiglet": 1 } }, "density": 0.9, @@ -221,12 +257,14 @@ } }, { - "select": { "name": "biomesoplenty:.*wasteland" }, + "select": { + "name": "biomesoplenty:.*wasteland" + }, "apply": { - "species" : { - "random" : { - "dtbop:dead" : 1, - "dtbop:dying" : 1 + "species": { + "random": { + "dtbop:dead": 1, + "dtbop:dying": 1 } }, "density": 0.1, @@ -234,26 +272,32 @@ } }, { - "select": { "name": "biomesoplenty:wooded_wasteland" }, + "select": { + "name": "biomesoplenty:wooded_wasteland" + }, "apply": { "chance": 0.5 } }, { - "select": { "name": "biomesoplenty:volcanic_plains" }, + "select": { + "name": "biomesoplenty:volcanic_plains" + }, "apply": { - "species" : "dtbop:dark_oak_twiglet", + "species": "dtbop:dark_oak_twiglet", "density": 0.1, "chance": 0.6 } }, { - "select": { "name": "biomesoplenty:lush_desert" }, + "select": { + "name": "biomesoplenty:lush_desert" + }, "apply": { - "species" : { - "random" : { - "dtbop:acacia_undergrowth" : 4, - "dtbop:sparse_acacia" : 1 + "species": { + "random": { + "dtbop:acacia_undergrowth": 4, + "dtbop:sparse_acacia": 1 } }, "density": 0.4, @@ -261,13 +305,15 @@ } }, { - "select": { "name": "biomesoplenty:dryland" }, + "select": { + "name": "biomesoplenty:dryland" + }, "apply": { - "species" : { - "random" : { - "dtbop:sparse_oak" : 1, - "dtbop:oak_twiglet" : 4, - "dtbop:acacia_twiglet" : 2 + "species": { + "random": { + "dtbop:sparse_oak": 1, + "dtbop:oak_twiglet": 4, + "dtbop:acacia_twiglet": 2 } }, "density": 0.8, @@ -275,28 +321,34 @@ } }, { - "select": { "name": "biomesoplenty:shrubland" }, + "select": { + "name": "biomesoplenty:shrubland" + }, "apply": { - "species" : "oak_undergrowth", + "species": "oak_undergrowth", "density": 0.01, "chance": 0.5 } }, { - "select": { "name": "biomesoplenty:rocky_shrubland" }, + "select": { + "name": "biomesoplenty:rocky_shrubland" + }, "apply": { - "species" : "oak_undergrowth", + "species": "oak_undergrowth", "density": 0.01, "chance": 0.1 } }, { - "select": { "name": "biomesoplenty:orchard" }, + "select": { + "name": "biomesoplenty:orchard" + }, "apply": { - "species" : { - "random" : { - "dtbop:flowering_oak" : 1, - "dtbop:flowering_apple_oak" : 5 + "species": { + "random": { + "dtbop:flowering_oak": 1, + "dtbop:flowering_apple_oak": 5 } }, "density": 0.2, @@ -304,96 +356,114 @@ } }, { - "select": { "name": "biomesoplenty:redwood_forest" }, + "select": { + "name": "biomesoplenty:redwood_forest" + }, "apply": { - "species" : { - "random" : { - "dtbop:redwood" : 5, - "dtbop:small_redwood" : 3, - "oak_undergrowth" : 1 + "species": { + "random": { + "dtbop:redwood": 5, + "dtbop:small_redwood": 3, + "oak_undergrowth": 1 } }, "density": 1.0, "chance": 1.0, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:.*fir_clearing" }, + "select": { + "name": "biomesoplenty:.*fir_clearing" + }, "apply": { - "species" : "dtbop:fir", + "species": "dtbop:fir", "density": 2, "chance": 0.1, - "forestness" : 0.25 + "forestness": 0.25 } }, { - "select": { "name": "biomesoplenty:coniferous_forest" }, + "select": { + "name": "biomesoplenty:coniferous_forest" + }, "apply": { - "species" : { - "random" : { - "dtbop:mega_fir" : 5, - "dtbop:fir" : 1 + "species": { + "random": { + "dtbop:mega_fir": 5, + "dtbop:fir": 1 } }, - "density": [0.8], + "density": [ + 0.8 + ], "chance": 1.0, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:snowy_coniferous_forest" }, + "select": { + "name": "biomesoplenty:snowy_coniferous_forest" + }, "apply": { - "species" : { - "random" : { - "dtbop:mega_fir" : 6, - "dtbop:fir" : 4 + "species": { + "random": { + "dtbop:mega_fir": 6, + "dtbop:fir": 4 } }, - "density": [0.6], + "density": [ + 0.6 + ], "chance": 0.9, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:.*maple_woods" }, + "select": { + "name": "biomesoplenty:.*maple_woods" + }, "apply": { - "species" : { - "random" : { - "dtbop:red_maple" : 9, - "spruce" : 1 + "species": { + "random": { + "dtbop:red_maple": 9, + "spruce": 1 } }, "density": 0.8, "chance": 0.9, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:seasonal_forest" }, + "select": { + "name": "biomesoplenty:seasonal_forest" + }, "apply": { - "species" : { - "random" : { - "dtbop:red_maple" : 32, - "dtbop:orange_maple" : 32, - "dtbop:yellow_maple" : 32, - "oak" : 15, - "apple_oak" : 1 + "species": { + "random": { + "dtbop:red_maple": 32, + "dtbop:orange_maple": 32, + "dtbop:yellow_maple": 32, + "oak": 15, + "apple_oak": 1 } }, "density": 0.9, "chance": 0.8, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:pumpkin_patch" }, + "select": { + "name": "biomesoplenty:pumpkin_patch" + }, "apply": { - "species" : { - "random" : { - "dtbop:orange_maple" : 1, - "oak_undergrowth" : 4, - "dtbop:oak_twiglet" : 6 + "species": { + "random": { + "dtbop:orange_maple": 1, + "oak_undergrowth": 4, + "dtbop:oak_twiglet": 6 } }, "density": 0.5, @@ -401,28 +471,32 @@ } }, { - "select": { "name": "biomesoplenty:ominous_woods" }, + "select": { + "name": "biomesoplenty:ominous_woods" + }, "apply": { - "species" : { - "random" : { - "dtbop:mega_umbran" : 3, - "dtbop:umbran" : 2, - "dtbop:dead" : 1, - "dtbop:dying" : 2 + "species": { + "random": { + "dtbop:mega_umbran": 3, + "dtbop:umbran": 2, + "dtbop:dead": 1, + "dtbop:dying": 2 } }, "density": 1.0, "chance": 1.0, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:field" }, + "select": { + "name": "biomesoplenty:field" + }, "apply": { - "species" : { - "random" : { - "oak_undergrowth" : 25, - "spruce" : 1 + "species": { + "random": { + "oak_undergrowth": 25, + "spruce": 1 } }, "density": 0.8, @@ -430,190 +504,163 @@ } }, { - "select": { "name": "biomesoplenty:forested_field" }, + "select": { + "name": "biomesoplenty:forested_field" + }, "apply": { - "species" : { - "random" : { - "oak_undergrowth" : 1, - "spruce" : 3 + "species": { + "random": { + "oak_undergrowth": 1, + "spruce": 3 } }, "density": 1.0, "chance": 1.0, - "forestness" : 1.0 + "forestness": 1.0 } }, { - "select": { "name": "biomesoplenty:bayou" }, + "select": { + "name": "biomesoplenty:bayou" + }, "apply": { - "species" : "dtbop:cypress_willow", + "species": "dtbop:cypress_willow", "density": 0.6, "chance": 0.4 } }, { - "select": { "name": "biomesoplenty:dead_forest" }, + "select": { + "name": "biomesoplenty:dead_forest" + }, "apply": { - "species" : { - "random" : { - "dtbop:dead" : 1, - "dtbop:dying" : 2, - "oak" : 2, - "spruce" : 2 + "species": { + "random": { + "dtbop:dead": 1, + "dtbop:dying": 2, + "oak": 2, + "spruce": 2 } }, "density": 0.7, "chance": 0.3, - "forestness" : 0.25 + "forestness": 0.25 } }, { - "select": { "name": "biomesoplenty:old_growth_dead_forest" }, + "select": { + "name": "biomesoplenty:old_growth_dead_forest" + }, "apply": { - "species" : { - "random" : { - "dtbop:tall_dead" : 2, - "dtbop:tall_dying" : 4, - "dtbop:dying" : 1 + "species": { + "random": { + "dtbop:tall_dead": 2, + "dtbop:tall_dying": 4, + "dtbop:dying": 1 } }, "density": 1.0, "chance": 0.3, - "forestness" : 0.25 + "forestness": 0.25 } }, { - "select": { "name": "biomesoplenty:wetland" }, + "select": { + "name": "biomesoplenty:wetland" + }, "apply": { - "species" : "dtbop:willow", + "species": "dtbop:willow", "density": 0.5, "chance": 0.75, - "forestness" : 0.75 + "forestness": 0.75 } }, { - "select": { "name": "biomesoplenty:mystic_grove" }, + "select": { + "name": "biomesoplenty:mystic_grove" + }, "apply": { - "species" : { - "random" : { - "dtbop:large_magic_poplar" : 3, - "dtbop:magic_poplar" : 5, - "dtbop:flowering_oak" : 4, - "dtbop:mega_dark_oak" : 2 + "species": { + "random": { + "dtbop:large_magic_poplar": 3, + "dtbop:magic_poplar": 5, + "dtbop:flowering_oak": 4, + "dtbop:mega_dark_oak": 2 } }, "density": 1.0, "chance": 1.0 } }, - - { - "select": { "name": "biomesoplenty:muskeg" }, + "select": { + "name": "biomesoplenty:muskeg" + }, "apply": { - "species" : "dtbop:dead", + "species": "dtbop:dead", "density": 0.1, "chance": 0.6 } }, { - "only_if_loaded": "dynamictreesplus", - "select": { "name": "biomesoplenty:muskeg" }, - "apply": { - "species": { - "method": "splice_before", - "random": { - "...": 7, - "dtbop:mini_brown_mushroom": 1 - } - } - } - }, - { - "only_if_loaded": "dynamictreesplus", - "select": { "name": "biomesoplenty:mystic_grove" }, + "select": { + "name": "biomesoplenty:fungal_jungle" + }, "apply": { "species": { - "method": "splice_before", "random": { - "...": 6, - "dynamictreesplus:red_mushroom": 1 - } - } - } - }, - { - "select": { "name": "biomesoplenty:fungal_jungle" }, - "apply": { - "species" : { - "random" : { - "oak_undergrowth" : 9, - "oak" : 1 + "oak_undergrowth": 9, + "oak": 1 } }, - "density":[1.5], + "density": [ + 1.5 + ], "chance": 0.5 } }, { - "select": { "name": "biomesoplenty:aspen_glade" }, + "select": { + "name": "biomesoplenty:aspen_glade" + }, "apply": { - "species" : { - "random" : { - "dtbop:aspen" : 3 + "species": { + "random": { + "dtbop:aspen": 3 } }, "density": 0.5, "chance": 0.75, - "forestness" : 0.75 + "forestness": 0.75 } }, { - "select": { "name": "biomesoplenty:hot_springs" }, + "select": { + "name": "biomesoplenty:hot_springs" + }, "apply": { - "species" : { - "random" : { - "dtbop:pine" : 3 + "species": { + "random": { + "dtbop:pine": 3 } }, "density": 0.4, "chance": 0.5, - "forestness" : 0.5 + "forestness": 0.5 } }, { - "select": { "name": "biomesoplenty:undergrowth" }, - "apply": { - "species" : { - "random" : { - "dtbop:hellbark" : 1, - "dtbop:hellbark_bush" : 7 - } - }, - "density": 0.6, - "chance": 0.8 - } - }, - { - "only_if_loaded": "dynamictreesplus", - "select": { "name": "biomesoplenty:fungal_jungle" }, + "select": { + "name": "biomesoplenty:undergrowth" + }, "apply": { "species": { - "method": "splice_before", "random": { - "...": 2, - "dtbop:toadstool": 1 + "dtbop:hellbark": 1, + "dtbop:hellbark_bush": 7 } }, - "chance": 0.75 - } - }, - { - "only_if_loaded": "dynamictreesplus", - "select": { "name": "biomesoplenty:glowing_grotto" }, - "apply": { - "species" : "dtbop:glowshroom", - "density": [ 2 ], + "density": 0.6, "chance": 0.8 } } diff --git a/src/main/resources/trees/dtbop/world_gen/feature_cancellers.json b/src/main/resources/trees/dtbop/world_gen/feature_cancellers.json index f830fa2..413e8f3 100644 --- a/src/main/resources/trees/dtbop/world_gen/feature_cancellers.json +++ b/src/main/resources/trees/dtbop/world_gen/feature_cancellers.json @@ -2,33 +2,36 @@ { "__comment": "Cancel standard tree features from the BoP overworld.", "__comment2": "For now, the Empyreal tree is too complex to be dynamic.", - "select": { "names": [ "biomesoplenty:.*", "!biomesoplenty:origin_valley", "!biomesoplenty:end_wilds" ], "category": [ "!nether" ] }, + "select": { + "names": [ + "biomesoplenty:.*", + "!biomesoplenty:origin_valley", + "!biomesoplenty:end_wilds" + ], + "category": [ + "!nether" + ] + }, "cancellers": { "type": "tree", - "namespaces": ["biomesoplenty", "minecraft"] + "namespaces": [ + "biomesoplenty", + "minecraft" + ] } }, { "__comment": "Cancel standard tree features from the BoP nether.", - "select": { "name": "biomesoplenty:undergrowth" }, + "select": { + "name": "biomesoplenty:undergrowth" + }, "cancellers": { "type": "tree", - "namespaces": ["biomesoplenty", "minecraft"], + "namespaces": [ + "biomesoplenty", + "minecraft" + ], "stage": "underground_decoration" } - }, - { - "_comment": "Cancel mushrooms if DT+ is installed", - "only_if_loaded": "dynamictreesplus", - "select": {"OR": [ - { "name": "biomesoplenty:mystic_grove" }, - { "name": "biomesoplenty:fungal_jungle" }, - { "name": "biomesoplenty:glowing_grotto" }, - { "name": "biomesoplenty:muskeg" } - ]}, - "cancellers": { - "types": ["tree", "mushroom", "dtbop:mushroom"], - "namespaces": ["biomesoplenty", "minecraft"] - } } -] \ No newline at end of file +] From 0b76f33d8147a2ba554658fcf15ae29fc677a223 Mon Sep 17 00:00:00 2001 From: Oleksandr Hanzha Date: Fri, 24 Jul 2026 21:11:50 +0300 Subject: [PATCH 3/6] Fix 26.2 API drift, park DT+ mushroom loot tables, fix tag folder naming - Direction#getNormal -> getUnitVec3i, DynamicLeavesBlock properties accessor, fallOn double, entityInside InsideBlockEffectApplier, vanilla SoundType for cobweb leaves - NodeInflatorPoplar respects maxRadius param from new getNodeInflator signature - Parked glowshroom/toadstool cap+seed loot tables (blocks/items stripped with DT+) - data/dynamictrees/tags/blocks -> tags/block (1.21+ singular convention) Co-Authored-By: Claude Fable 5 --- .../loot_table/blocks/glowshroom_cap.json | 0 .../loot_table/blocks/toadstool_cap.json | 0 .../loot_table/trees/mushroom_caps/glowshroom.json | 0 .../loot_table/trees/mushroom_caps/toadstool.json | 0 .../loot_table/trees/voluntary/glowshroom.json | 0 .../loot_table/trees/voluntary/toadstool.json | 0 .../dtteam/dtbop/genfeature/AlternativeLeavesGenFeature.java | 4 ++-- src/main/java/com/dtteam/dtbop/growthlogic/CypressLogic.java | 2 +- src/main/java/com/dtteam/dtbop/growthlogic/RedwoodLogic.java | 2 +- src/main/java/com/dtteam/dtbop/tree/PoplarSpecies.java | 2 +- .../data/dynamictrees/tags/{blocks => block}/foliage.json | 0 11 files changed, 5 insertions(+), 5 deletions(-) rename {src/main/resources/data/dtbop => _disabled_dtplus}/loot_table/blocks/glowshroom_cap.json (100%) rename {src/main/resources/data/dtbop => _disabled_dtplus}/loot_table/blocks/toadstool_cap.json (100%) rename {src/main/resources/data/dtbop => _disabled_dtplus}/loot_table/trees/mushroom_caps/glowshroom.json (100%) rename {src/main/resources/data/dtbop => _disabled_dtplus}/loot_table/trees/mushroom_caps/toadstool.json (100%) rename {src/main/resources/data/dtbop => _disabled_dtplus}/loot_table/trees/voluntary/glowshroom.json (100%) rename {src/main/resources/data/dtbop => _disabled_dtplus}/loot_table/trees/voluntary/toadstool.json (100%) rename src/main/resources/data/dynamictrees/tags/{blocks => block}/foliage.json (100%) diff --git a/src/main/resources/data/dtbop/loot_table/blocks/glowshroom_cap.json b/_disabled_dtplus/loot_table/blocks/glowshroom_cap.json similarity index 100% rename from src/main/resources/data/dtbop/loot_table/blocks/glowshroom_cap.json rename to _disabled_dtplus/loot_table/blocks/glowshroom_cap.json diff --git a/src/main/resources/data/dtbop/loot_table/blocks/toadstool_cap.json b/_disabled_dtplus/loot_table/blocks/toadstool_cap.json similarity index 100% rename from src/main/resources/data/dtbop/loot_table/blocks/toadstool_cap.json rename to _disabled_dtplus/loot_table/blocks/toadstool_cap.json diff --git a/src/main/resources/data/dtbop/loot_table/trees/mushroom_caps/glowshroom.json b/_disabled_dtplus/loot_table/trees/mushroom_caps/glowshroom.json similarity index 100% rename from src/main/resources/data/dtbop/loot_table/trees/mushroom_caps/glowshroom.json rename to _disabled_dtplus/loot_table/trees/mushroom_caps/glowshroom.json diff --git a/src/main/resources/data/dtbop/loot_table/trees/mushroom_caps/toadstool.json b/_disabled_dtplus/loot_table/trees/mushroom_caps/toadstool.json similarity index 100% rename from src/main/resources/data/dtbop/loot_table/trees/mushroom_caps/toadstool.json rename to _disabled_dtplus/loot_table/trees/mushroom_caps/toadstool.json diff --git a/src/main/resources/data/dtbop/loot_table/trees/voluntary/glowshroom.json b/_disabled_dtplus/loot_table/trees/voluntary/glowshroom.json similarity index 100% rename from src/main/resources/data/dtbop/loot_table/trees/voluntary/glowshroom.json rename to _disabled_dtplus/loot_table/trees/voluntary/glowshroom.json diff --git a/src/main/resources/data/dtbop/loot_table/trees/voluntary/toadstool.json b/_disabled_dtplus/loot_table/trees/voluntary/toadstool.json similarity index 100% rename from src/main/resources/data/dtbop/loot_table/trees/voluntary/toadstool.json rename to _disabled_dtplus/loot_table/trees/voluntary/toadstool.json diff --git a/src/main/java/com/dtteam/dtbop/genfeature/AlternativeLeavesGenFeature.java b/src/main/java/com/dtteam/dtbop/genfeature/AlternativeLeavesGenFeature.java index 39619da..3375247 100644 --- a/src/main/java/com/dtteam/dtbop/genfeature/AlternativeLeavesGenFeature.java +++ b/src/main/java/com/dtteam/dtbop/genfeature/AlternativeLeavesGenFeature.java @@ -116,11 +116,11 @@ private BlockState getSwapBlockState(GenFeatureConfiguration configuration, Leve if (originalLeaves != null && altLeaves != null) { if (worldgen || level.getRandom().nextFloat() < configuration.get(PLACE_CHANCE)) { if (state.getBlock() == originalLeaves) { - return altLeaves.properties.getDynamicLeavesState(state.getValue(LeavesBlock.DISTANCE)); + return altLeaves.getLeavesProperties().getDynamicLeavesState(state.getValue(LeavesBlock.DISTANCE)); } } else { if (state.getBlock() == altLeaves) { - return originalLeaves.properties.getDynamicLeavesState(state.getValue(LeavesBlock.DISTANCE)); + return originalLeaves.getLeavesProperties().getDynamicLeavesState(state.getValue(LeavesBlock.DISTANCE)); } } } diff --git a/src/main/java/com/dtteam/dtbop/growthlogic/CypressLogic.java b/src/main/java/com/dtteam/dtbop/growthlogic/CypressLogic.java index 11d3c70..48cbdd3 100644 --- a/src/main/java/com/dtteam/dtbop/growthlogic/CypressLogic.java +++ b/src/main/java/com/dtteam/dtbop/growthlogic/CypressLogic.java @@ -31,7 +31,7 @@ public int[] populateDirectionProbabilityMap(GrowthLogicKitConfiguration configu if (signal.energy >= 6) { if (signal.numSteps % 3 == 0) { for (Direction dir : CoordUtils.HORIZONTALS) { - if (TreeHelper.isBranch(context.level().getBlockState(context.pos().offset(dir.getNormal())))) { + if (TreeHelper.isBranch(context.level().getBlockState(context.pos().offset(dir.getUnitVec3i())))) { sideProb = 0; branchSide = dir; } diff --git a/src/main/java/com/dtteam/dtbop/growthlogic/RedwoodLogic.java b/src/main/java/com/dtteam/dtbop/growthlogic/RedwoodLogic.java index d3088d1..4c73816 100644 --- a/src/main/java/com/dtteam/dtbop/growthlogic/RedwoodLogic.java +++ b/src/main/java/com/dtteam/dtbop/growthlogic/RedwoodLogic.java @@ -66,7 +66,7 @@ public Direction selectNewDirection(GrowthLogicKitConfiguration configuration, D // Create probability map for direction change for (Direction dir : Direction.values()) { if (!dir.equals(originDir)) { - BlockPos deltaPos = pos.offset(dir.getNormal()); + BlockPos deltaPos = pos.offset(dir.getUnitVec3i()); // Check probability for surrounding blocks // Typically Air:1, Leaves:2, Branches: 2+r if (signalY >= configuration.getLowestBranchHeight(context)) { diff --git a/src/main/java/com/dtteam/dtbop/tree/PoplarSpecies.java b/src/main/java/com/dtteam/dtbop/tree/PoplarSpecies.java index cc3feb2..f250579 100644 --- a/src/main/java/com/dtteam/dtbop/tree/PoplarSpecies.java +++ b/src/main/java/com/dtteam/dtbop/tree/PoplarSpecies.java @@ -68,7 +68,7 @@ public boolean returnRun(BlockState state, LevelAccessor level, BlockPos pos, Di for (Direction dir : Direction.values()) { if (!dir.equals(fromDir)) { // Don't count where the signal originated from - BlockPos dPos = pos.offset(dir.getNormal()); + BlockPos dPos = pos.offset(dir.getUnitVec3i()); if (dPos.equals(last)) { // or the branch we just came back from isTwig = false; // on the return journey if the block we just came from is a branch we are obviously not the endpoint(twig) diff --git a/src/main/resources/data/dynamictrees/tags/blocks/foliage.json b/src/main/resources/data/dynamictrees/tags/block/foliage.json similarity index 100% rename from src/main/resources/data/dynamictrees/tags/blocks/foliage.json rename to src/main/resources/data/dynamictrees/tags/block/foliage.json From 3b21a67565fbdc58e91cc9f5bcf4489b3b52713d Mon Sep 17 00:00:00 2001 From: Oleksandr Hanzha Date: Sat, 25 Jul 2026 02:23:09 +0300 Subject: [PATCH 4/6] Convert branch and surface root assets to the 26.2 custom blockstate model format The 1.21-era datagen output (vanilla blockstates pointing at 'loader'-style model JSONs) no longer parses on 26.2: the models bake empty with 'Missing texture references ... particle' warnings and the branches render broken. Inline the model type and textures into the blockstates using DT core's 26.2 codec format ('type' for NeoForge, 'fabric:type' for Fabric, plus 'family' so thick trunks bake), and drop the obsolete loader model JSONs. 24 branches (incl. stripped) and the redwood surface root converted; the palm frond loader model is left as-is since core has no 26.2 loader for palm fronds yet. Co-Authored-By: Claude Fable 5 --- .../assets/dtbop/blockstates/dead_branch.json | 10 ++++++++-- .../resources/assets/dtbop/blockstates/fir_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/hellbark_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/jacaranda_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/magic_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/mahogany_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/maple_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/palm_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/pine_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/redwood_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/redwood_root.json | 8 ++++++-- .../assets/dtbop/blockstates/stripped_dead_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/stripped_fir_branch.json | 10 ++++++++-- .../dtbop/blockstates/stripped_hellbark_branch.json | 10 ++++++++-- .../dtbop/blockstates/stripped_jacaranda_branch.json | 10 ++++++++-- .../dtbop/blockstates/stripped_magic_branch.json | 10 ++++++++-- .../dtbop/blockstates/stripped_mahogany_branch.json | 10 ++++++++-- .../dtbop/blockstates/stripped_maple_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/stripped_palm_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/stripped_pine_branch.json | 10 ++++++++-- .../dtbop/blockstates/stripped_redwood_branch.json | 10 ++++++++-- .../dtbop/blockstates/stripped_umbran_branch.json | 10 ++++++++-- .../dtbop/blockstates/stripped_willow_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/umbran_branch.json | 10 ++++++++-- .../assets/dtbop/blockstates/willow_branch.json | 10 ++++++++-- .../assets/dtbop/models/block/dead_branch.json | 7 ------- .../assets/dtbop/models/block/fir_branch.json | 7 ------- .../assets/dtbop/models/block/hellbark_branch.json | 7 ------- .../assets/dtbop/models/block/jacaranda_branch.json | 7 ------- .../assets/dtbop/models/block/magic_branch.json | 7 ------- .../assets/dtbop/models/block/mahogany_branch.json | 7 ------- .../assets/dtbop/models/block/maple_branch.json | 7 ------- .../assets/dtbop/models/block/palm_branch.json | 7 ------- .../assets/dtbop/models/block/pine_branch.json | 7 ------- .../assets/dtbop/models/block/redwood_branch.json | 7 ------- .../assets/dtbop/models/block/redwood_root.json | 6 ------ .../dtbop/models/block/stripped_dead_branch.json | 7 ------- .../assets/dtbop/models/block/stripped_fir_branch.json | 7 ------- .../dtbop/models/block/stripped_hellbark_branch.json | 7 ------- .../dtbop/models/block/stripped_jacaranda_branch.json | 7 ------- .../dtbop/models/block/stripped_magic_branch.json | 7 ------- .../dtbop/models/block/stripped_mahogany_branch.json | 7 ------- .../dtbop/models/block/stripped_maple_branch.json | 7 ------- .../dtbop/models/block/stripped_palm_branch.json | 7 ------- .../dtbop/models/block/stripped_pine_branch.json | 7 ------- .../dtbop/models/block/stripped_redwood_branch.json | 7 ------- .../dtbop/models/block/stripped_umbran_branch.json | 7 ------- .../dtbop/models/block/stripped_willow_branch.json | 7 ------- .../assets/dtbop/models/block/umbran_branch.json | 7 ------- .../assets/dtbop/models/block/willow_branch.json | 7 ------- 50 files changed, 198 insertions(+), 224 deletions(-) delete mode 100644 src/main/resources/assets/dtbop/models/block/dead_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/fir_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/hellbark_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/jacaranda_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/magic_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/mahogany_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/maple_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/palm_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/pine_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/redwood_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/redwood_root.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_dead_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_fir_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_hellbark_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_jacaranda_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_magic_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_mahogany_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_maple_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_palm_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_pine_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_redwood_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_umbran_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/stripped_willow_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/umbran_branch.json delete mode 100644 src/main/resources/assets/dtbop/models/block/willow_branch.json diff --git a/src/main/resources/assets/dtbop/blockstates/dead_branch.json b/src/main/resources/assets/dtbop/blockstates/dead_branch.json index 25f56b4..a378eb8 100644 --- a/src/main/resources/assets/dtbop/blockstates/dead_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/dead_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/dead_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:dead", + "textures": { + "bark": "biomesoplenty:block/dead_log", + "rings": "biomesoplenty:block/dead_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/fir_branch.json b/src/main/resources/assets/dtbop/blockstates/fir_branch.json index e626494..181936c 100644 --- a/src/main/resources/assets/dtbop/blockstates/fir_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/fir_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/fir_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:fir", + "textures": { + "bark": "biomesoplenty:block/fir_log", + "rings": "biomesoplenty:block/fir_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/hellbark_branch.json b/src/main/resources/assets/dtbop/blockstates/hellbark_branch.json index 2eb463f..c302355 100644 --- a/src/main/resources/assets/dtbop/blockstates/hellbark_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/hellbark_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/hellbark_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:hellbark", + "textures": { + "bark": "biomesoplenty:block/hellbark_log", + "rings": "biomesoplenty:block/hellbark_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/jacaranda_branch.json b/src/main/resources/assets/dtbop/blockstates/jacaranda_branch.json index 6e013f1..c863d6f 100644 --- a/src/main/resources/assets/dtbop/blockstates/jacaranda_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/jacaranda_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/jacaranda_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:jacaranda", + "textures": { + "bark": "biomesoplenty:block/jacaranda_log", + "rings": "biomesoplenty:block/jacaranda_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/magic_branch.json b/src/main/resources/assets/dtbop/blockstates/magic_branch.json index 1649aba..00aa600 100644 --- a/src/main/resources/assets/dtbop/blockstates/magic_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/magic_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/magic_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:magic", + "textures": { + "bark": "biomesoplenty:block/magic_log", + "rings": "biomesoplenty:block/magic_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/mahogany_branch.json b/src/main/resources/assets/dtbop/blockstates/mahogany_branch.json index 49a669e..072afef 100644 --- a/src/main/resources/assets/dtbop/blockstates/mahogany_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/mahogany_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/mahogany_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:mahogany", + "textures": { + "bark": "biomesoplenty:block/mahogany_log", + "rings": "biomesoplenty:block/mahogany_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/maple_branch.json b/src/main/resources/assets/dtbop/blockstates/maple_branch.json index 4f70ebe..906ea13 100644 --- a/src/main/resources/assets/dtbop/blockstates/maple_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/maple_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/maple_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:maple", + "textures": { + "bark": "biomesoplenty:block/maple_log", + "rings": "biomesoplenty:block/maple_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/palm_branch.json b/src/main/resources/assets/dtbop/blockstates/palm_branch.json index d478df6..0fdcde0 100644 --- a/src/main/resources/assets/dtbop/blockstates/palm_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/palm_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/palm_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:palm", + "textures": { + "bark": "biomesoplenty:block/palm_log", + "rings": "biomesoplenty:block/palm_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/pine_branch.json b/src/main/resources/assets/dtbop/blockstates/pine_branch.json index 325fb4c..d7cd1d5 100644 --- a/src/main/resources/assets/dtbop/blockstates/pine_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/pine_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/pine_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:pine", + "textures": { + "bark": "biomesoplenty:block/pine_log", + "rings": "biomesoplenty:block/pine_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/redwood_branch.json b/src/main/resources/assets/dtbop/blockstates/redwood_branch.json index a02d3cb..5a663a5 100644 --- a/src/main/resources/assets/dtbop/blockstates/redwood_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/redwood_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/redwood_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:redwood", + "textures": { + "bark": "biomesoplenty:block/redwood_log", + "rings": "biomesoplenty:block/redwood_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/redwood_root.json b/src/main/resources/assets/dtbop/blockstates/redwood_root.json index bf05a25..6006046 100644 --- a/src/main/resources/assets/dtbop/blockstates/redwood_root.json +++ b/src/main/resources/assets/dtbop/blockstates/redwood_root.json @@ -1,7 +1,11 @@ { "variants": { "": { - "model": "dtbop:block/redwood_root" + "type": "dynamictrees:surface_root", + "fabric:type": "dynamictrees:surface_root", + "textures": { + "bark": "biomesoplenty:block/redwood_log" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_dead_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_dead_branch.json index f3b56c3..2312e1c 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_dead_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_dead_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_dead_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:dead", + "textures": { + "bark": "biomesoplenty:block/stripped_dead_log", + "rings": "biomesoplenty:block/stripped_dead_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_fir_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_fir_branch.json index 429d4ad..a72fe98 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_fir_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_fir_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_fir_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:fir", + "textures": { + "bark": "biomesoplenty:block/stripped_fir_log", + "rings": "biomesoplenty:block/stripped_fir_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_hellbark_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_hellbark_branch.json index c7ab5d7..50ba789 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_hellbark_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_hellbark_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_hellbark_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:hellbark", + "textures": { + "bark": "biomesoplenty:block/stripped_hellbark_log", + "rings": "biomesoplenty:block/stripped_hellbark_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_jacaranda_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_jacaranda_branch.json index b1a6a58..b2a6c0a 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_jacaranda_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_jacaranda_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_jacaranda_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:jacaranda", + "textures": { + "bark": "biomesoplenty:block/stripped_jacaranda_log", + "rings": "biomesoplenty:block/stripped_jacaranda_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_magic_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_magic_branch.json index 071c464..36455e7 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_magic_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_magic_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_magic_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:magic", + "textures": { + "bark": "biomesoplenty:block/stripped_magic_log", + "rings": "biomesoplenty:block/stripped_magic_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_mahogany_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_mahogany_branch.json index 20fa248..6d3905e 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_mahogany_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_mahogany_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_mahogany_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:mahogany", + "textures": { + "bark": "biomesoplenty:block/stripped_mahogany_log", + "rings": "biomesoplenty:block/stripped_mahogany_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_maple_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_maple_branch.json index d9d9a47..9d2a5d8 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_maple_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_maple_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_maple_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:maple", + "textures": { + "bark": "biomesoplenty:block/stripped_maple_log", + "rings": "biomesoplenty:block/stripped_maple_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_palm_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_palm_branch.json index f197830..6e33671 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_palm_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_palm_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_palm_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:palm", + "textures": { + "bark": "biomesoplenty:block/stripped_palm_log", + "rings": "biomesoplenty:block/stripped_palm_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_pine_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_pine_branch.json index 551705f..6e7f387 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_pine_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_pine_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_pine_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:pine", + "textures": { + "bark": "biomesoplenty:block/stripped_pine_log", + "rings": "biomesoplenty:block/stripped_pine_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_redwood_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_redwood_branch.json index 119648d..abd93af 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_redwood_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_redwood_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_redwood_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:redwood", + "textures": { + "bark": "biomesoplenty:block/stripped_redwood_log", + "rings": "biomesoplenty:block/stripped_redwood_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_umbran_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_umbran_branch.json index d946be4..ef2d17c 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_umbran_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_umbran_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_umbran_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:umbran", + "textures": { + "bark": "biomesoplenty:block/stripped_umbran_log", + "rings": "biomesoplenty:block/stripped_umbran_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/stripped_willow_branch.json b/src/main/resources/assets/dtbop/blockstates/stripped_willow_branch.json index c86b28b..19ae6f6 100644 --- a/src/main/resources/assets/dtbop/blockstates/stripped_willow_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/stripped_willow_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/stripped_willow_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:willow", + "textures": { + "bark": "biomesoplenty:block/stripped_willow_log", + "rings": "biomesoplenty:block/stripped_willow_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/umbran_branch.json b/src/main/resources/assets/dtbop/blockstates/umbran_branch.json index a2e42bc..1213fd9 100644 --- a/src/main/resources/assets/dtbop/blockstates/umbran_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/umbran_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/umbran_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:umbran", + "textures": { + "bark": "biomesoplenty:block/umbran_log", + "rings": "biomesoplenty:block/umbran_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/blockstates/willow_branch.json b/src/main/resources/assets/dtbop/blockstates/willow_branch.json index c51f177..ee9ccd6 100644 --- a/src/main/resources/assets/dtbop/blockstates/willow_branch.json +++ b/src/main/resources/assets/dtbop/blockstates/willow_branch.json @@ -1,7 +1,13 @@ { "variants": { "": { - "model": "dtbop:block/willow_branch" + "type": "dynamictrees:branch", + "fabric:type": "dynamictrees:branch", + "family": "dtbop:willow", + "textures": { + "bark": "biomesoplenty:block/willow_log", + "rings": "biomesoplenty:block/willow_log_top" + } } } -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dtbop/models/block/dead_branch.json b/src/main/resources/assets/dtbop/models/block/dead_branch.json deleted file mode 100644 index 7523828..0000000 --- a/src/main/resources/assets/dtbop/models/block/dead_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/dead_log", - "rings": "biomesoplenty:block/dead_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/fir_branch.json b/src/main/resources/assets/dtbop/models/block/fir_branch.json deleted file mode 100644 index c6e65ce..0000000 --- a/src/main/resources/assets/dtbop/models/block/fir_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/fir_log", - "rings": "biomesoplenty:block/fir_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/hellbark_branch.json b/src/main/resources/assets/dtbop/models/block/hellbark_branch.json deleted file mode 100644 index 0035dd8..0000000 --- a/src/main/resources/assets/dtbop/models/block/hellbark_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/hellbark_log", - "rings": "biomesoplenty:block/hellbark_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/jacaranda_branch.json b/src/main/resources/assets/dtbop/models/block/jacaranda_branch.json deleted file mode 100644 index d0aa88a..0000000 --- a/src/main/resources/assets/dtbop/models/block/jacaranda_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/jacaranda_log", - "rings": "biomesoplenty:block/jacaranda_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/magic_branch.json b/src/main/resources/assets/dtbop/models/block/magic_branch.json deleted file mode 100644 index 9b1bb26..0000000 --- a/src/main/resources/assets/dtbop/models/block/magic_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/magic_log", - "rings": "biomesoplenty:block/magic_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/mahogany_branch.json b/src/main/resources/assets/dtbop/models/block/mahogany_branch.json deleted file mode 100644 index 97bdaf6..0000000 --- a/src/main/resources/assets/dtbop/models/block/mahogany_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/mahogany_log", - "rings": "biomesoplenty:block/mahogany_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/maple_branch.json b/src/main/resources/assets/dtbop/models/block/maple_branch.json deleted file mode 100644 index eeb1c39..0000000 --- a/src/main/resources/assets/dtbop/models/block/maple_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/maple_log", - "rings": "biomesoplenty:block/maple_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/palm_branch.json b/src/main/resources/assets/dtbop/models/block/palm_branch.json deleted file mode 100644 index 8516075..0000000 --- a/src/main/resources/assets/dtbop/models/block/palm_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/palm_log", - "rings": "biomesoplenty:block/palm_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/pine_branch.json b/src/main/resources/assets/dtbop/models/block/pine_branch.json deleted file mode 100644 index 331b918..0000000 --- a/src/main/resources/assets/dtbop/models/block/pine_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/pine_log", - "rings": "biomesoplenty:block/pine_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/redwood_branch.json b/src/main/resources/assets/dtbop/models/block/redwood_branch.json deleted file mode 100644 index db4604d..0000000 --- a/src/main/resources/assets/dtbop/models/block/redwood_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/redwood_log", - "rings": "biomesoplenty:block/redwood_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/redwood_root.json b/src/main/resources/assets/dtbop/models/block/redwood_root.json deleted file mode 100644 index d27e3c6..0000000 --- a/src/main/resources/assets/dtbop/models/block/redwood_root.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "loader": "dynamictrees:surface_root", - "textures": { - "bark": "biomesoplenty:block/redwood_log" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_dead_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_dead_branch.json deleted file mode 100644 index 467ebe5..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_dead_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_dead_log", - "rings": "biomesoplenty:block/stripped_dead_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_fir_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_fir_branch.json deleted file mode 100644 index 57d9b78..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_fir_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_fir_log", - "rings": "biomesoplenty:block/stripped_fir_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_hellbark_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_hellbark_branch.json deleted file mode 100644 index 5edaa86..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_hellbark_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_hellbark_log", - "rings": "biomesoplenty:block/stripped_hellbark_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_jacaranda_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_jacaranda_branch.json deleted file mode 100644 index 42f2089..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_jacaranda_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_jacaranda_log", - "rings": "biomesoplenty:block/stripped_jacaranda_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_magic_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_magic_branch.json deleted file mode 100644 index 5651c6c..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_magic_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_magic_log", - "rings": "biomesoplenty:block/stripped_magic_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_mahogany_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_mahogany_branch.json deleted file mode 100644 index b128b7d..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_mahogany_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_mahogany_log", - "rings": "biomesoplenty:block/stripped_mahogany_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_maple_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_maple_branch.json deleted file mode 100644 index e9d201f..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_maple_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_maple_log", - "rings": "biomesoplenty:block/stripped_maple_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_palm_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_palm_branch.json deleted file mode 100644 index 984ff56..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_palm_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_palm_log", - "rings": "biomesoplenty:block/stripped_palm_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_pine_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_pine_branch.json deleted file mode 100644 index 04b0f55..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_pine_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_pine_log", - "rings": "biomesoplenty:block/stripped_pine_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_redwood_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_redwood_branch.json deleted file mode 100644 index 934b411..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_redwood_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_redwood_log", - "rings": "biomesoplenty:block/stripped_redwood_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_umbran_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_umbran_branch.json deleted file mode 100644 index 55d9180..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_umbran_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_umbran_log", - "rings": "biomesoplenty:block/stripped_umbran_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/stripped_willow_branch.json b/src/main/resources/assets/dtbop/models/block/stripped_willow_branch.json deleted file mode 100644 index e8c6b77..0000000 --- a/src/main/resources/assets/dtbop/models/block/stripped_willow_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/stripped_willow_log", - "rings": "biomesoplenty:block/stripped_willow_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/umbran_branch.json b/src/main/resources/assets/dtbop/models/block/umbran_branch.json deleted file mode 100644 index 52857ec..0000000 --- a/src/main/resources/assets/dtbop/models/block/umbran_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/umbran_log", - "rings": "biomesoplenty:block/umbran_log_top" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/willow_branch.json b/src/main/resources/assets/dtbop/models/block/willow_branch.json deleted file mode 100644 index b645f5f..0000000 --- a/src/main/resources/assets/dtbop/models/block/willow_branch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "loader": "dynamictrees:branch", - "textures": { - "bark": "biomesoplenty:block/willow_log", - "rings": "biomesoplenty:block/willow_log_top" - } -} \ No newline at end of file From 05bdefc9751ef036c13f9b46afa4b87dcdbd08c0 Mon Sep 17 00:00:00 2001 From: Oleksandr Hanzha Date: Sat, 25 Jul 2026 02:23:53 +0300 Subject: [PATCH 5/6] Use plain palm leaves as placeholder for palm fronds on 26.2 The 'dynamictrees:large_palm_fronds' loader does not exist on 26.2 yet (commented out in DT core on both loaders), so the frond model baked empty with a missing-particle warning. Parent it to BOP's palm leaves as a clean-parsing placeholder until core reintroduces the frond loader. Co-Authored-By: Claude Fable 5 --- .../assets/dtbop/models/block/palm_leaves/palm_frond.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/resources/assets/dtbop/models/block/palm_leaves/palm_frond.json b/src/main/resources/assets/dtbop/models/block/palm_leaves/palm_frond.json index 8e9f6d9..ee3bd8a 100644 --- a/src/main/resources/assets/dtbop/models/block/palm_leaves/palm_frond.json +++ b/src/main/resources/assets/dtbop/models/block/palm_leaves/palm_frond.json @@ -1,6 +1,4 @@ { - "loader": "dynamictrees:large_palm_fronds", - "textures": { - "frond": "dtbop:block/palm_frond" - } -} \ No newline at end of file + "__comment": "TODO 26.2 port: DT core has no 26.2 loader for 'dynamictrees:large_palm_fronds' yet; render regular palm leaves as a placeholder so the model parses cleanly.", + "parent": "biomesoplenty:block/palm_leaves" +} From 5c56aa285b8268798634d07df0231abf4401ecca Mon Sep 17 00:00:00 2001 From: Oleksandr Hanzha Date: Sat, 25 Jul 2026 04:50:14 +0300 Subject: [PATCH 6/6] Fix content that BOP 26.2 and the 26.2 loot codec no longer accept MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BOP 26.2 dropped rainbow birch and aspen entirely. dtbop still named biomesoplenty:rainbow_birch_leaves and the two saplings, which cost us the dtbop:aspen species outright — DT's SeedSaplingRecipeDeserializer tries Block, then Item, then JsonObject, so a primitive_sapling naming a missing block fails with the misleading "Json element was not a json object". - Repoint rainbow birch at vanilla birch leaves (leaves properties, blockstate, sapling model, block loot table); aspen already used yellow_maple_leaves, which still exists. - Drop the aspen and rainbow birch primitive_sapling recipes: there is no longer a BOP sapling to convert to or from. Both species keep their own generated DT sapling. - Restore the stick drop in flowering_oak_undergrowth_leaves. It was regenerated as minecraft:air upstream, and 26.2's loot codec rejects air outright, discarding the whole table so the block dropped nothing at all. - Migrate environment_factors to preferred_climate across 41 species. DT 26.2 parses environment_factors only to warn that it is gone. The old maps are mostly penalties, and "suffers in heat" is what temperate already means, so a non-temperate climate is assigned only where a factor is explicitly above 1.0 — reading penalties as preferences would have moved most of the pack to cold. - Pad large_water_roots from 68x48 to a power-of-two 128x64, anchored top left with every source texel unchanged, and declare the new texture_size so the UVs still address the same texels. A single non-power-of-two sprite was dragging the whole block atlas from mip level 4 down to 2. Co-Authored-By: Claude Opus 5 --- .../blockstates/rainbow_birch_leaves.json | 2 +- .../dtbop/models/block/large_roots_water.json | 2 +- .../models/block/saplings/rainbow_birch.json | 2 +- .../textures/block/large_water_roots.png | Bin 1527 -> 1445 bytes .../flowering_oak_undergrowth_leaves.json | 2 +- .../blocks/rainbow_birch_leaves.json | 2 +- .../leaves_properties/rainbow_birch.json | 2 +- .../trees/dtbop/species/acacia_twiglet.json | 5 +---- .../trees/dtbop/species/alps_spruce.json | 6 +----- .../resources/trees/dtbop/species/aspen.json | 7 +------ .../trees/dtbop/species/cherry_twiglet.json | 6 +----- .../trees/dtbop/species/cypress_willow.json | 5 +---- .../trees/dtbop/species/dark_oak_twiglet.json | 6 +----- .../resources/trees/dtbop/species/dying.json | 6 +----- .../resources/trees/dtbop/species/fir.json | 6 +----- .../dtbop/species/flowering_apple_oak.json | 6 +----- .../trees/dtbop/species/flowering_oak.json | 7 +------ .../trees/dtbop/species/hellbark.json | 5 +---- .../trees/dtbop/species/hellbark_bush.json | 5 +---- .../trees/dtbop/species/infested.json | 6 +----- .../trees/dtbop/species/jacaranda.json | 5 +---- .../trees/dtbop/species/jungle_twiglet.json | 6 +----- .../trees/dtbop/species/mahogany.json | 7 +------ .../trees/dtbop/species/mangrove_twiglet.json | 6 +----- .../trees/dtbop/species/maple_twiglet.json | 6 +----- .../trees/dtbop/species/mega_dark_oak.json | 7 +------ .../trees/dtbop/species/mega_fir.json | 6 +----- .../trees/dtbop/species/mega_umbran.json | 10 +--------- .../trees/dtbop/species/oak_twiglet.json | 5 +---- .../trees/dtbop/species/orange_maple.json | 6 +----- .../resources/trees/dtbop/species/palm.json | 6 +----- .../resources/trees/dtbop/species/pine.json | 5 +---- .../trees/dtbop/species/rainbow_birch.json | 7 +------ .../trees/dtbop/species/red_maple.json | 6 +----- .../trees/dtbop/species/redwood.json | 6 +----- .../trees/dtbop/species/short_jungle.json | 7 +------ .../resources/trees/dtbop/species/silk.json | 6 +----- .../trees/dtbop/species/small_redwood.json | 6 +----- .../trees/dtbop/species/snowblossom.json | 7 +------ .../dtbop/species/snowblossom_twiglet.json | 6 +----- .../trees/dtbop/species/sparse_acacia.json | 6 +----- .../trees/dtbop/species/sparse_oak.json | 5 +---- .../trees/dtbop/species/spruce_twiglet.json | 6 +----- .../trees/dtbop/species/tall_dying.json | 6 +----- .../resources/trees/dtbop/species/umbran.json | 6 +----- .../resources/trees/dtbop/species/willow.json | 5 +---- .../trees/dtbop/species/yellow_maple.json | 6 +----- .../trees/dynamictrees/species/dark_oak.json | 7 +------ 48 files changed, 47 insertions(+), 214 deletions(-) diff --git a/src/main/resources/assets/dtbop/blockstates/rainbow_birch_leaves.json b/src/main/resources/assets/dtbop/blockstates/rainbow_birch_leaves.json index 0c266b2..45a5921 100644 --- a/src/main/resources/assets/dtbop/blockstates/rainbow_birch_leaves.json +++ b/src/main/resources/assets/dtbop/blockstates/rainbow_birch_leaves.json @@ -1,7 +1,7 @@ { "variants": { "": { - "model": "biomesoplenty:block/rainbow_birch_leaves" + "model": "minecraft:block/birch_leaves" } } } \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/models/block/large_roots_water.json b/src/main/resources/assets/dtbop/models/block/large_roots_water.json index 97c3261..862e4ab 100644 --- a/src/main/resources/assets/dtbop/models/block/large_roots_water.json +++ b/src/main/resources/assets/dtbop/models/block/large_roots_water.json @@ -1,7 +1,7 @@ { "credit": "Made with Blockbench", "parent": "block/tinted_cross", - "texture_size": [68, 48], + "texture_size": [128, 64], "textures": { "1": "dtbop:block/large_water_roots" }, diff --git a/src/main/resources/assets/dtbop/models/block/saplings/rainbow_birch.json b/src/main/resources/assets/dtbop/models/block/saplings/rainbow_birch.json index dc38841..4e1fd52 100644 --- a/src/main/resources/assets/dtbop/models/block/saplings/rainbow_birch.json +++ b/src/main/resources/assets/dtbop/models/block/saplings/rainbow_birch.json @@ -2,7 +2,7 @@ "parent": "dynamictrees:block/smartmodel/sapling", "render_type": "minecraft:cutout_mipped", "textures": { - "leaves": "biomesoplenty:block/rainbow_birch_leaves", + "leaves": "minecraft:block/birch_leaves", "log": "minecraft:block/birch_log" } } \ No newline at end of file diff --git a/src/main/resources/assets/dtbop/textures/block/large_water_roots.png b/src/main/resources/assets/dtbop/textures/block/large_water_roots.png index f1e7cc9196fac04c35762ceab6bd13fa1b3a79b2..52ac27d3f2cb2dbae7bd8ad4b33af9996557f939 100644 GIT binary patch literal 1445 zcmai!dop&61S9nXxh-mKm2tZ-T; z6q_}pZ6}>ZW>A#3q#=)CZB!FR9wUZX_P_mW?>YB-&%Nh!@BQoEEH4jtRb`Sg0H_{0 z?0S47GB%uw!*1xSH_6EW3YU(!I-Q6OoGwXFyf!QkML_$u{J(crI3UG>OhDLwMo;5qbLMx*_z(71{0xUyHHGYRvlj`VCVU zC$!2c9+{COH_z7MCj-*DYa7s@R@lh1 zNKXjty}pUV`TePKI@};Jr`y!zbU%~Gi<$U!=>^RY>4n~Rvhaq4YioKX8Cwxn!j|eeok{w%w+IJnd{e|4O-Wp#A4D=&x|>Q7 z0ab6ObiY`9Zh1j>8zAsgT$nz>idvk1-!4g=b?2KwqG#`0?_|UB&EW*1^Te=SkzrbJ zB=dk8ddCwKnJGXoatHT*?2cYOouk2+*C$&{pGuC?z!;zq)1>OAU>sv|3*yDE<5Lo+ zX{vd>^>#U>+)w7nvNG4a1L^7e3poZjmyj165X6+nv>AlLfP*F@?8L=_jM+nOMv{0f zyvuc{518PZaNWn;#56w1(b`9R3px;Mz31dudzEw;7W>$TNt3SR4IW&yGs29r9h3xQ znUo`Z7gEgDbH270_fD(U`IN|e6^AnXHj3Xncr>AR30$#_6`^l%VE@v4S=lv-SSvlP zAefr)LttF5-vlWv)O@ey(3}ZgtJBg+S!~^!zL9EiNpJyXl?}_?tv9ocBKdM&Wl^UDp^Ej> z2*_9x7uzf(Au!@s{}q`=@ft!=Kg8_N?jyz%8uW*Xf|@vR4GBWXHh}df9+*X#eKu>W z*PqwwC91plO1L#evFe8v8Ix4%R)`;&SEVo+^Vo>tXq2EQhxkM>Xr(}Mp^BNA%aMA( z>u#Nrm8y}|f&8kO-7I@|ap#gxjItwwBeTMIiZ>E<@x~9^AJ1Z03#AB|t~SsYReDjx zrco{LrR^-D-}xHaxT7R|ImQfRC8#_gIuUBl%v2{22K6gJi7f(P9w$1ztPVOdB~(Te z((|2jMO-;om9af{x~l|^eWST%AR^#diH8UTPzexQ0Cv1|rhhF)EL@Kekt%IsTgs-h zv3AB*-pJ!Gs8lf3QV1!H7>%FxW+POUs~C_r+Vf)XZ7{!QPr9Y_C)DH_byd`%gvV{A z$M43FFrRYP1BN!PJCvlC0Um4h^7H;yoKEd@V#h?dnXLVRgZr0ZHtpF=+yB@KU+C!j XqO|q(cBlIr?-!1^dAPEjgPH#Tzpa;s literal 1527 zcmV(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ>eMv+?RCwC#Tf1@VIuPCExCAE%6*)o&E<2W)7~yyPH-=vbegXLfq-Q++ghhDob0NcN zn!aT%_}!xFy^qd0003B)MZ9L3Cj4IlA}|3s7~?ozKcD9rthE3Du&%2J%JFz?ns>k7 ze-9wX<58X5dmqU_GExIW14VMB7Erzvkhixt@$J1^HpHv zBi$!@?>}Yqj|scIV7$M-b7oXQ`O$!Q?_XKqa>2z*uYXue%H}BZLq` z2+v9<3>kv040Nu$0JPBgwr%(i7gUSE|<&AtJ`IAFf?`$D8!O{q4(w_ zO4KPPXXo>|2+G|W(yA8;1muQ0=R{CSj2OpJWRk!Fr1cqNikgz!qqP~TfJms8*ui)2 z5u!`(qU9hxgRum2IpA(HC=0ow*lJh;DFQ$djCEbBqMEZrDGnn5#M0)Jm>>m^5<^gm z~G9PxXeD zXqCW9!iv^fENO#u-_rG5FE^R$vMg5>E{PG*t%0(een_v5R7AW8V9gfE-a!)65<4{C zOId0jaXwxBa_yi>_MWObcN+#qytlZEkK92%PNx${-8Iq?zCpcUc<*a&Q)Gz94knP% zd#}dunyyG9nT(DtIf-*_Glw=OwHdXXLu(NXEh#!f7b|(gRctlox7Lc{c~2&q=4h>C zH!P7r85&|Z=3p$#((T6-C0dfPQnVqKw1P2B6R{keb1EoQC=OaRE9DYDajfgAcJ{5c zn|h4&gagBwGDu*gi%?3&YKa+l8_j@60HJM`R`u?7JJ{`Z;JpXu9CBbbc}PYh^AqD_I=Nu-)G55c8)PTv)YTD85 zV#3+&=6fm!?wyZE9Id56_m>!Q;}(a*0ZKqf?5GH8?9Egq7t|6&t$#vH;cFy2Q?Bwa zASF%EPT}|>S^pHZbiF4l)$}4|mNz9tqCZN)S_36>9X;&QF$1we(hFjRF$O~jytf&9 zTxA?bEQMu$4G)cd z-+Z#`sYA>*5r}SLjDZls=D`?Eh*O6w0syl2008jk&!5fp{7517Lwa%<%-krJ8edPX z9WgSVf3F!#dO)RmIwpuj;Q~M#p*@{WQtp8qe2Q|pyK*3D152O)eDa|?9 zK7gJM;I#*%F7HX?i4%z?a<`!0a^v^=z4+)B&BygCk1SOUxd#lsh)k4Yr768B9BIM1 z#^jGS(BBCRAdTRF(PI%kJ>f2faCG^Nv#^VrkLDmsc>re|XHO+x%ID@rH9ZwgYs24v d54j!x3;-X6f2LVwl;r>b002ovPDHLkV1mlGsagO4 diff --git a/src/main/resources/data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json index fdcc317..d13ad61 100644 --- a/src/main/resources/data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json +++ b/src/main/resources/data/dtbop/loot_table/blocks/flowering_oak_undergrowth_leaves.json @@ -128,7 +128,7 @@ "function": "minecraft:explosion_decay" } ], - "name": "minecraft:air" + "name": "minecraft:stick" } ], "rolls": 1.0 diff --git a/src/main/resources/data/dtbop/loot_table/blocks/rainbow_birch_leaves.json b/src/main/resources/data/dtbop/loot_table/blocks/rainbow_birch_leaves.json index b144a3f..660e491 100644 --- a/src/main/resources/data/dtbop/loot_table/blocks/rainbow_birch_leaves.json +++ b/src/main/resources/data/dtbop/loot_table/blocks/rainbow_birch_leaves.json @@ -37,7 +37,7 @@ ] } ], - "name": "biomesoplenty:rainbow_birch_leaves" + "name": "minecraft:birch_leaves" }, { "type": "dynamictrees:seed_item", diff --git a/src/main/resources/trees/dtbop/leaves_properties/rainbow_birch.json b/src/main/resources/trees/dtbop/leaves_properties/rainbow_birch.json index a1997dc..5cca365 100644 --- a/src/main/resources/trees/dtbop/leaves_properties/rainbow_birch.json +++ b/src/main/resources/trees/dtbop/leaves_properties/rainbow_birch.json @@ -1,3 +1,3 @@ { - "primitive_leaves": "biomesoplenty:rainbow_birch_leaves" + "primitive_leaves": "minecraft:birch_leaves" } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/acacia_twiglet.json b/src/main/resources/trees/dtbop/species/acacia_twiglet.json index 51380b2..3aa3fb9 100644 --- a/src/main/resources/trees/dtbop/species/acacia_twiglet.json +++ b/src/main/resources/trees/dtbop/species/acacia_twiglet.json @@ -2,10 +2,7 @@ "type": "dtbop:twiglet", "family": "acacia", "leaves_properties": "dtbop:acacia_twiglet", - "environment_factors" : { - "cold": 0.5, - "dry": 1.05 - }, + "preferred_climate": "arid", "perfect_biomes": { "name": "biomesoplenty:.*scrublands.*" }, "acceptable_soils": ["dirt_like", "sand_like"] } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/alps_spruce.json b/src/main/resources/trees/dtbop/species/alps_spruce.json index 5bc89de..6fc9d29 100644 --- a/src/main/resources/trees/dtbop/species/alps_spruce.json +++ b/src/main/resources/trees/dtbop/species/alps_spruce.json @@ -8,11 +8,7 @@ "growth_rate": 0.9, "growth_logic_kit": "conifer", "leaves_properties": "spruce", - "environment_factors" : { - "hot": 0.50, - "dry": 0.25, - "wet": 0.75 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "coniferous" }, "mega_species": "mega_spruce", "acceptable_soils": ["dirt_like", "gravel_like"], diff --git a/src/main/resources/trees/dtbop/species/aspen.json b/src/main/resources/trees/dtbop/species/aspen.json index 346e588..cdad72a 100644 --- a/src/main/resources/trees/dtbop/species/aspen.json +++ b/src/main/resources/trees/dtbop/species/aspen.json @@ -9,13 +9,8 @@ "growth_rate": 1.5, "growth_logic_kit": "conifer", "leaves_properties":"dtbop:aspen", - "environment_factors": { - "#forge:is_hot": 0.50, - "#forge:is_dry": 0.25, - "#forge:is_wet": 0.75 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "biomesoplenty:aspen_glade" }, - "primitive_sapling":"biomesoplenty:aspen_sapling", "lang_overrides": { "seed": "Aspen Catkin" } diff --git a/src/main/resources/trees/dtbop/species/cherry_twiglet.json b/src/main/resources/trees/dtbop/species/cherry_twiglet.json index 6fd0cdc..8fe8a8f 100644 --- a/src/main/resources/trees/dtbop/species/cherry_twiglet.json +++ b/src/main/resources/trees/dtbop/species/cherry_twiglet.json @@ -2,10 +2,6 @@ "type": "dtbop:twiglet", "family": "cherry", "leaves_properties": "dtbop:cherry_twiglet", - "environment_factors" : { - "hot": 0.5, - "dry": 0.5, - "cold": 1.05 - }, + "preferred_climate": "cold", "perfect_biomes": { "type": "biomesoplenty:jacaranda_glade" } } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/cypress_willow.json b/src/main/resources/trees/dtbop/species/cypress_willow.json index b5ccd74..052155f 100644 --- a/src/main/resources/trees/dtbop/species/cypress_willow.json +++ b/src/main/resources/trees/dtbop/species/cypress_willow.json @@ -10,10 +10,7 @@ "max_branch_radius": 16, "growth_logic_kit": "dtbop:cypress", "leaves_properties": "dtbop:cypress_willow", - "environment_factors" : { - "hot": 0.7, - "dry": 0.5 - }, + "preferred_climate": "temperate", "perfect_biomes": { "types": [ "swamp", "overworld" ] }, "acceptable_soils": [ "water_like", "dirt_like", "mud_like" ], "features": [ diff --git a/src/main/resources/trees/dtbop/species/dark_oak_twiglet.json b/src/main/resources/trees/dtbop/species/dark_oak_twiglet.json index 1dbc1dd..453355a 100644 --- a/src/main/resources/trees/dtbop/species/dark_oak_twiglet.json +++ b/src/main/resources/trees/dtbop/species/dark_oak_twiglet.json @@ -2,11 +2,7 @@ "type": "dtbop:twiglet", "family": "dark_oak", "leaves_properties": "dtbop:dark_oak_twiglet", - "environment_factors" : { - "dry": 0.5, - "cold": 0.7, - "wet": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "types": ["dead", "swamp"] }, "acceptable_soils": ["dirt_like", "sand_like"] } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/dying.json b/src/main/resources/trees/dtbop/species/dying.json index f80898e..d9dc970 100644 --- a/src/main/resources/trees/dtbop/species/dying.json +++ b/src/main/resources/trees/dtbop/species/dying.json @@ -6,11 +6,7 @@ "signal_energy": 12.0, "growth_rate": 0.5, "leaves_properties": "dtbop:dying", - "environment_factors" : { - "lush": 0.75, - "spooky": 1.05, - "dead": 1.05 - }, + "preferred_climate": "temperate", "always_show_on_waila": true, "primitive_sapling": "biomesoplenty:dead_sapling", "acceptable_soils": ["dirt_like", "sand_like"], diff --git a/src/main/resources/trees/dtbop/species/fir.json b/src/main/resources/trees/dtbop/species/fir.json index 91d47b9..ba0bc5a 100644 --- a/src/main/resources/trees/dtbop/species/fir.json +++ b/src/main/resources/trees/dtbop/species/fir.json @@ -9,11 +9,7 @@ "growth_rate": 0.9, "growth_logic_kit": "dtbop:small_conifer", "leaves_properties": "dtbop:fir", - "environment_factors" : { - "hot": 0.50, - "dry": 0.25, - "wet": 0.75 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "coniferous" }, "primitive_sapling": "biomesoplenty:fir_sapling", "mega_species": "dtbop:mega_fir", diff --git a/src/main/resources/trees/dtbop/species/flowering_apple_oak.json b/src/main/resources/trees/dtbop/species/flowering_apple_oak.json index 169de9c..b52dc04 100644 --- a/src/main/resources/trees/dtbop/species/flowering_apple_oak.json +++ b/src/main/resources/trees/dtbop/species/flowering_apple_oak.json @@ -6,11 +6,7 @@ "lowest_branch_height": 4, "growth_rate": 0.7, "leaves_properties": "oak", - "environment_factors" : { - "cold": 0.75, - "hot": 0.75, - "dry": 0.25 - }, + "preferred_climate": "temperate", "use_seed_of_other_species": "dynamictrees:apple_oak", "perfect_biomes": { "name": "biomesoplenty:orchard" }, "fruits": [ diff --git a/src/main/resources/trees/dtbop/species/flowering_oak.json b/src/main/resources/trees/dtbop/species/flowering_oak.json index 5cac2f9..d5e2520 100644 --- a/src/main/resources/trees/dtbop/species/flowering_oak.json +++ b/src/main/resources/trees/dtbop/species/flowering_oak.json @@ -6,12 +6,7 @@ "signal_energy": 12.0, "growth_rate": 0.8, "leaves_properties": "oak", - "environment_factors" : { - "cold": 0.75, - "hot": 0.5, - "dry": 0.5, - "forest": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "types": [ "forest", "overworld" ] }, "primitive_sapling": "biomesoplenty:flowering_oak_sapling", "features" : [ diff --git a/src/main/resources/trees/dtbop/species/hellbark.json b/src/main/resources/trees/dtbop/species/hellbark.json index 8522ab4..13d83b9 100644 --- a/src/main/resources/trees/dtbop/species/hellbark.json +++ b/src/main/resources/trees/dtbop/species/hellbark.json @@ -8,10 +8,7 @@ "lowest_branch_height": 2, "soil_longevity": 1, "leaves_properties": "dtbop:hellbark", - "environment_factors" : { - "cold": 0.5, - "nether": 1.05 - }, + "preferred_climate": "none", "always_show_on_waila": false, "perfect_biomes": { "type": "nether" }, "acceptable_soils": [ "nether_like", "dirt_like" ], diff --git a/src/main/resources/trees/dtbop/species/hellbark_bush.json b/src/main/resources/trees/dtbop/species/hellbark_bush.json index 420b547..81d2ba6 100644 --- a/src/main/resources/trees/dtbop/species/hellbark_bush.json +++ b/src/main/resources/trees/dtbop/species/hellbark_bush.json @@ -7,10 +7,7 @@ "lowest_branch_height": 1, "growth_rate": 1.0, "leaves_properties": "dtbop:hellbark_bush", - "environment_factors" : { - "cold": 0.5, - "nether": 1.05 - }, + "preferred_climate": "none", "always_show_on_waila": true, "generate_seed": false, "generate_sapling": false, diff --git a/src/main/resources/trees/dtbop/species/infested.json b/src/main/resources/trees/dtbop/species/infested.json index 8e128b3..1f607f0 100644 --- a/src/main/resources/trees/dtbop/species/infested.json +++ b/src/main/resources/trees/dtbop/species/infested.json @@ -4,11 +4,7 @@ "signal_energy": 12.0, "growth_rate": 0.5, "leaves_properties": "dtbop:dying", - "environment_factors" : { - "lush": 0.75, - "spooky": 1.05, - "dead": 1.05 - }, + "preferred_climate": "temperate", "primitive_sapling": "biomesoplenty:dead_sapling", "perfect_biomes": { "name": "biomesoplenty:silkglade" }, "features" : [ diff --git a/src/main/resources/trees/dtbop/species/jacaranda.json b/src/main/resources/trees/dtbop/species/jacaranda.json index cc15523..89d69cb 100644 --- a/src/main/resources/trees/dtbop/species/jacaranda.json +++ b/src/main/resources/trees/dtbop/species/jacaranda.json @@ -6,10 +6,7 @@ "signal_energy": 12.0, "growth_rate": 0.9, "leaves_properties": "dtbop:jacaranda", - "environment_factors" : { - "hot": 0.5, - "dry": 0.5 - }, + "preferred_climate": "temperate", "perfect_biomes": { "types": [ "lush", "overworld" ] }, "primitive_sapling": "biomesoplenty:jacaranda_sapling", "features" : [ diff --git a/src/main/resources/trees/dtbop/species/jungle_twiglet.json b/src/main/resources/trees/dtbop/species/jungle_twiglet.json index db38a03..f73673e 100644 --- a/src/main/resources/trees/dtbop/species/jungle_twiglet.json +++ b/src/main/resources/trees/dtbop/species/jungle_twiglet.json @@ -2,10 +2,6 @@ "type": "dtbop:twiglet", "family": "jungle", "leaves_properties": "dtbop:jungle_twiglet", - "environment_factors" : { - "snowy": 0.25, - "hot": 1.05, - "dry": 0.75 - }, + "preferred_climate": "temperate", "perfect_biomes": { "name": "biomesoplenty:tropics" } } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/mahogany.json b/src/main/resources/trees/dtbop/species/mahogany.json index 1222412..662539c 100644 --- a/src/main/resources/trees/dtbop/species/mahogany.json +++ b/src/main/resources/trees/dtbop/species/mahogany.json @@ -9,12 +9,7 @@ "growth_rate": 0.9, "growth_logic_kit": "dtbop:mahogany", "leaves_properties": "dtbop:mahogany", - "environment_factors" : { - "cold": 0.15, - "dry": 0.20, - "hot": 1.1, - "wet": 1.1 - }, + "preferred_climate": "tropical", "perfect_biomes": { "types": [ "jungle", "overworld" ] }, "primitive_sapling": "biomesoplenty:mahogany_sapling", "lang_overrides": { diff --git a/src/main/resources/trees/dtbop/species/mangrove_twiglet.json b/src/main/resources/trees/dtbop/species/mangrove_twiglet.json index 9563846..ad1c17a 100644 --- a/src/main/resources/trees/dtbop/species/mangrove_twiglet.json +++ b/src/main/resources/trees/dtbop/species/mangrove_twiglet.json @@ -2,10 +2,6 @@ "type": "dtbop:twiglet", "family": "mangrove", "leaves_properties": "dtbop:mangrove_twiglet", - "environment_factors" : { - "hot": 0.5, - "dry": 0.5, - "cold": 1.05 - }, + "preferred_climate": "cold", "perfect_biomes": { "type": "biomesoplenty:bog" } } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/maple_twiglet.json b/src/main/resources/trees/dtbop/species/maple_twiglet.json index 278c7a1..5c44c19 100644 --- a/src/main/resources/trees/dtbop/species/maple_twiglet.json +++ b/src/main/resources/trees/dtbop/species/maple_twiglet.json @@ -2,10 +2,6 @@ "type": "dtbop:twiglet", "family": "dtbop:maple", "leaves_properties": "dtbop:maple_twiglet", - "environment_factors" : { - "hot": 0.5, - "dry": 0.5, - "cold": 1.05 - }, + "preferred_climate": "cold", "perfect_biomes": { "type": "biomesoplenty:tundra.*" } } diff --git a/src/main/resources/trees/dtbop/species/mega_dark_oak.json b/src/main/resources/trees/dtbop/species/mega_dark_oak.json index 6bb87ab..3622ff1 100644 --- a/src/main/resources/trees/dtbop/species/mega_dark_oak.json +++ b/src/main/resources/trees/dtbop/species/mega_dark_oak.json @@ -8,12 +8,7 @@ "max_branch_radius": 24, "soil_longevity": 45, "leaves_properties": "dtbop:mega_dark_oak", - "environment_factors" : { - "hot": 0.8, - "dry": 0.8, - "magic": 1.1, - "forest": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "biomesoplenty:mystic.*" }, "features" : [ { diff --git a/src/main/resources/trees/dtbop/species/mega_fir.json b/src/main/resources/trees/dtbop/species/mega_fir.json index 7da6c90..f3ac63f 100644 --- a/src/main/resources/trees/dtbop/species/mega_fir.json +++ b/src/main/resources/trees/dtbop/species/mega_fir.json @@ -9,11 +9,7 @@ "max_branch_radius": 24, "growth_logic_kit": "dtbop:fir", "leaves_properties": "dtbop:fir", - "environment_factors" : { - "hot": 0.50, - "dry": 0.25, - "wet": 0.75 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "coniferous" }, "common_override": { "name": "biomesoplenty:coniferous_forest" }, "features" : [ diff --git a/src/main/resources/trees/dtbop/species/mega_umbran.json b/src/main/resources/trees/dtbop/species/mega_umbran.json index d00518d..e38fb71 100644 --- a/src/main/resources/trees/dtbop/species/mega_umbran.json +++ b/src/main/resources/trees/dtbop/species/mega_umbran.json @@ -9,15 +9,7 @@ "max_branch_radius": 24, "growth_logic_kit": "dtbop:fir", "leaves_properties": "dtbop:umbran", - "environment_factors" : { - "cold": 0.75, - "hot": 0.50, - "dry": 0.50, - "forest": 1.05, - "spooky": 1.1, - "dead": 1.1, - "magical": 1.1 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "coniferous" }, "common_override": { "name": "biomesoplenty:ominous_woods" }, "features" : [ diff --git a/src/main/resources/trees/dtbop/species/oak_twiglet.json b/src/main/resources/trees/dtbop/species/oak_twiglet.json index 8e32de4..12091cf 100644 --- a/src/main/resources/trees/dtbop/species/oak_twiglet.json +++ b/src/main/resources/trees/dtbop/species/oak_twiglet.json @@ -2,9 +2,6 @@ "type": "dtbop:twiglet", "family": "oak", "leaves_properties": "dtbop:oak_twiglet", - "environment_factors" : { - "hot": 0.7, - "dry": 0.7 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "biomesoplenty:seasonal.*" } } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/orange_maple.json b/src/main/resources/trees/dtbop/species/orange_maple.json index bc537b9..01eb22d 100644 --- a/src/main/resources/trees/dtbop/species/orange_maple.json +++ b/src/main/resources/trees/dtbop/species/orange_maple.json @@ -8,11 +8,7 @@ "up_probability": 4, "growth_rate": 1.05, "leaves_properties": "dtbop:orange_maple", - "environment_factors" : { - "hot": 0.5, - "dry": 0.5, - "forest": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "biomesoplenty:seasonal.*" }, "primitive_sapling": "biomesoplenty:orange_maple_sapling", "lang_overrides": { diff --git a/src/main/resources/trees/dtbop/species/palm.json b/src/main/resources/trees/dtbop/species/palm.json index f0e2fde..e092dc6 100644 --- a/src/main/resources/trees/dtbop/species/palm.json +++ b/src/main/resources/trees/dtbop/species/palm.json @@ -7,11 +7,7 @@ "signal_energy": 7.0, "growth_rate": 0.9, "leaves_properties": "dtbop:palm", - "environment_factors" : { - "cold": 0.75, - "hot": 1.1, - "dry": 1.1 - }, + "preferred_climate": "arid", "transformable": false, "perfect_biomes": { "name": "biomesoplenty:tropics" }, "primitive_sapling": "biomesoplenty:palm_sapling", diff --git a/src/main/resources/trees/dtbop/species/pine.json b/src/main/resources/trees/dtbop/species/pine.json index b1db8c7..32fe094 100644 --- a/src/main/resources/trees/dtbop/species/pine.json +++ b/src/main/resources/trees/dtbop/species/pine.json @@ -6,10 +6,7 @@ "signal_energy": 12.0, "growth_rate": 0.8, "leaves_properties": "dtbop:pine", - "environment_factors" : { - "wet": 0.75, - "plains": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "biomesoplenty:hot_springs" }, "primitive_sapling": "biomesoplenty:pine_sapling", "lang_overrides": { diff --git a/src/main/resources/trees/dtbop/species/rainbow_birch.json b/src/main/resources/trees/dtbop/species/rainbow_birch.json index 9f29369..ea34b8e 100644 --- a/src/main/resources/trees/dtbop/species/rainbow_birch.json +++ b/src/main/resources/trees/dtbop/species/rainbow_birch.json @@ -6,13 +6,8 @@ "signal_energy": 12.0, "growth_rate": 0.8, "leaves_properties": "dtbop:rainbow_birch", - "environment_factors" : { - "hot": 0.7, - "dry": 0.7, - "forest": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "types": [ "lush", "magical", "overworld" ] }, - "primitive_sapling": "biomesoplenty:rainbow_birch_sapling", "features" : [ "bee_nest" ], diff --git a/src/main/resources/trees/dtbop/species/red_maple.json b/src/main/resources/trees/dtbop/species/red_maple.json index ba7d546..da1845b 100644 --- a/src/main/resources/trees/dtbop/species/red_maple.json +++ b/src/main/resources/trees/dtbop/species/red_maple.json @@ -8,11 +8,7 @@ "up_probability": 4, "growth_rate": 1.05, "leaves_properties": "dtbop:red_maple", - "environment_factors" : { - "hot": 0.5, - "dry": 0.5, - "forest": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "biomesoplenty:seasonal.*" }, "primitive_sapling": "biomesoplenty:red_maple_sapling", "lang_overrides": { diff --git a/src/main/resources/trees/dtbop/species/redwood.json b/src/main/resources/trees/dtbop/species/redwood.json index f28838d..d8229de 100644 --- a/src/main/resources/trees/dtbop/species/redwood.json +++ b/src/main/resources/trees/dtbop/species/redwood.json @@ -11,11 +11,7 @@ "max_branch_radius": 24, "growth_logic_kit": "dtbop:redwood", "leaves_properties": "dtbop:redwood", - "environment_factors" : { - "hot": 0.50, - "dry": 0.25, - "forest": 1.05 - }, + "preferred_climate": "temperate", "always_show_on_waila": false, "world_gen_leaf_map_height": 60, "perfect_biomes": { "name": ".*redwood.*" }, diff --git a/src/main/resources/trees/dtbop/species/short_jungle.json b/src/main/resources/trees/dtbop/species/short_jungle.json index c339b66..5806ee1 100644 --- a/src/main/resources/trees/dtbop/species/short_jungle.json +++ b/src/main/resources/trees/dtbop/species/short_jungle.json @@ -7,12 +7,7 @@ "growth_rate": 0.8, "growth_logic_kit": "dtbop:mahogany", "leaves_properties": "jungle", - "environment_factors" : { - "cold": 0.15, - "dry": 0.2, - "hot": 1.1, - "wet": 1.1 - }, + "preferred_climate": "tropical", "perfect_biomes": { "type": "jungle" }, "mega_species": "mega_jungle", "features" : [ diff --git a/src/main/resources/trees/dtbop/species/silk.json b/src/main/resources/trees/dtbop/species/silk.json index 8733470..408fb63 100644 --- a/src/main/resources/trees/dtbop/species/silk.json +++ b/src/main/resources/trees/dtbop/species/silk.json @@ -4,11 +4,7 @@ "signal_energy": 12.0, "growth_rate": 0.5, "leaves_properties": "dtbop:silk", - "environment_factors" : { - "lush": 0.75, - "spooky": 1.05, - "dead": 1.05 - }, + "preferred_climate": "temperate", "primitive_sapling": "biomesoplenty:dead_sapling", "perfect_biomes": { "name": "biomesoplenty:silkglade" } } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/small_redwood.json b/src/main/resources/trees/dtbop/species/small_redwood.json index 8ce6b7b..18c2609 100644 --- a/src/main/resources/trees/dtbop/species/small_redwood.json +++ b/src/main/resources/trees/dtbop/species/small_redwood.json @@ -8,11 +8,7 @@ "soil_longevity": 2, "growth_logic_kit": "dtbop:small_redwood", "leaves_properties": "dtbop:redwood", - "environment_factors" : { - "hot": 0.50, - "dry": 0.25, - "wet": 0.75 - }, + "preferred_climate": "temperate", "generate_seed": false, "generate_sapling": false, "perfect_biomes": { "name": ".*redwood.*" }, diff --git a/src/main/resources/trees/dtbop/species/snowblossom.json b/src/main/resources/trees/dtbop/species/snowblossom.json index 3d1a1f1..5a9e0f4 100644 --- a/src/main/resources/trees/dtbop/species/snowblossom.json +++ b/src/main/resources/trees/dtbop/species/snowblossom.json @@ -6,12 +6,7 @@ "signal_energy": 12.0, "growth_rate": 0.8, "leaves_properties": "dtbop:snowblossom", - "environment_factors" : { - "cold": 0.75, - "hot": 0.5, - "dry": 0.5, - "forest": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "types": [ "lush", "overworld" ], "name": ".*blossom.*" }, "primitive_sapling": "biomesoplenty:snowblossom_sapling", "features" : [ diff --git a/src/main/resources/trees/dtbop/species/snowblossom_twiglet.json b/src/main/resources/trees/dtbop/species/snowblossom_twiglet.json index c9587b7..749119a 100644 --- a/src/main/resources/trees/dtbop/species/snowblossom_twiglet.json +++ b/src/main/resources/trees/dtbop/species/snowblossom_twiglet.json @@ -2,10 +2,6 @@ "type": "dtbop:twiglet", "family": "cherry", "leaves_properties": "dtbop:snowblossom_twiglet", - "environment_factors" : { - "hot": 0.5, - "dry": 0.5, - "cold": 1.05 - }, + "preferred_climate": "cold", "perfect_biomes": { "type": "biomesoplenty:jacaranda_glade" } } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/sparse_acacia.json b/src/main/resources/trees/dtbop/species/sparse_acacia.json index 270379d..c07f7a6 100644 --- a/src/main/resources/trees/dtbop/species/sparse_acacia.json +++ b/src/main/resources/trees/dtbop/species/sparse_acacia.json @@ -4,11 +4,7 @@ "signal_energy": 12.0, "growth_rate": 0.8, "leaves_properties": "dtbop:sparse_acacia", - "environment_factors" : { - "cold": 0.75, - "snowy": 0.5, - "dry": 1.05 - }, + "preferred_climate": "arid", "perfect_biomes": { "types": [ "desert", "overworld" ] }, "acceptable_soils": ["dirt_like", "sand_like"] } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/sparse_oak.json b/src/main/resources/trees/dtbop/species/sparse_oak.json index be2c828..01974d6 100644 --- a/src/main/resources/trees/dtbop/species/sparse_oak.json +++ b/src/main/resources/trees/dtbop/species/sparse_oak.json @@ -4,10 +4,7 @@ "signal_energy": 12.0, "growth_rate": 0.8, "leaves_properties": "dtbop:sparse_oak", - "environment_factors" : { - "wet": 0.75, - "plains": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "types": [ "plains", "overworld" ] }, "features" : [ { diff --git a/src/main/resources/trees/dtbop/species/spruce_twiglet.json b/src/main/resources/trees/dtbop/species/spruce_twiglet.json index 7e7f99f..149387c 100644 --- a/src/main/resources/trees/dtbop/species/spruce_twiglet.json +++ b/src/main/resources/trees/dtbop/species/spruce_twiglet.json @@ -2,10 +2,6 @@ "type": "dtbop:twiglet", "family": "spruce", "leaves_properties": "dtbop:spruce_twiglet", - "environment_factors" : { - "hot": 0.5, - "dry": 0.5, - "cold": 1.05 - }, + "preferred_climate": "cold", "perfect_biomes": { "type": "biomesoplenty:tundra.*" } } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/tall_dying.json b/src/main/resources/trees/dtbop/species/tall_dying.json index 3ef5aad..b937f42 100644 --- a/src/main/resources/trees/dtbop/species/tall_dying.json +++ b/src/main/resources/trees/dtbop/species/tall_dying.json @@ -4,10 +4,6 @@ "signal_energy": 24.0, "growth_rate": 0.5, "leaves_properties": "dtbop:dying", - "environment_factors" : { - "lush": 0.75, - "spooky": 1.05, - "dead": 1.05 - }, + "preferred_climate": "temperate", "primitive_sapling": "biomesoplenty:dead_sapling" } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/umbran.json b/src/main/resources/trees/dtbop/species/umbran.json index 9f4c084..2303c34 100644 --- a/src/main/resources/trees/dtbop/species/umbran.json +++ b/src/main/resources/trees/dtbop/species/umbran.json @@ -9,11 +9,7 @@ "growth_rate": 0.9, "growth_logic_kit": "dtbop:small_conifer", "leaves_properties": "dtbop:umbran", - "environment_factors" : { - "hot": 0.50, - "dry": 0.25, - "wet": 0.75 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "coniferous" }, "primitive_sapling": "biomesoplenty:umbran_sapling", "mega_species": "dtbop:mega_umbran", diff --git a/src/main/resources/trees/dtbop/species/willow.json b/src/main/resources/trees/dtbop/species/willow.json index 2ffc1f5..3581386 100644 --- a/src/main/resources/trees/dtbop/species/willow.json +++ b/src/main/resources/trees/dtbop/species/willow.json @@ -6,10 +6,7 @@ "signal_energy": 12.0, "growth_rate": 0.8, "leaves_properties": "dtbop:willow", - "environment_factors" : { - "hot": 0.7, - "dry": 0.5 - }, + "preferred_climate": "temperate", "perfect_biomes": { "types": [ "swamp", "overworld" ] }, "primitive_sapling": "biomesoplenty:willow_sapling", "features" : [ diff --git a/src/main/resources/trees/dtbop/species/yellow_maple.json b/src/main/resources/trees/dtbop/species/yellow_maple.json index 17398a2..9b615f6 100644 --- a/src/main/resources/trees/dtbop/species/yellow_maple.json +++ b/src/main/resources/trees/dtbop/species/yellow_maple.json @@ -8,11 +8,7 @@ "up_probability": 4, "growth_rate": 1.05, "leaves_properties": "dtbop:yellow_maple", - "environment_factors" : { - "hot": 0.5, - "dry": 0.5, - "forest": 1.05 - }, + "preferred_climate": "temperate", "perfect_biomes": { "type": "biomesoplenty:seasonal.*" }, "primitive_sapling": "biomesoplenty:yellow_maple_sapling", "lang_overrides": { diff --git a/src/main/resources/trees/dynamictrees/species/dark_oak.json b/src/main/resources/trees/dynamictrees/species/dark_oak.json index 3057638..19f0574 100644 --- a/src/main/resources/trees/dynamictrees/species/dark_oak.json +++ b/src/main/resources/trees/dynamictrees/species/dark_oak.json @@ -9,12 +9,7 @@ "max_branch_radius": 24, "growth_logic_kit": "dark_oak", "leaves_properties": "dark_oak", - "environment_factors" : { - "#forge:is_cold": 0.75, - "#forge:is_hot": 0.5, - "#forge:is_dry": 0.25, - "mushroom": 1.25 - }, + "preferred_climate": "temperate", "perfect_biomes": { "tag": "#forge:is_spooky", "name": "minecraft:.*" }, "primitive_sapling": "dark_oak_sapling", "features" : [