From 5c0842dcffe92ce8ca5cc4401f8f23ef176c3d73 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 15 Dec 2025 00:38:12 +0000 Subject: [PATCH] added new illager invisible structures and small camps --- CHANGELOG.md | 1 + ...ns_illages.json => avoid_water_large.json} | 0 ...rate_house.json => avoid_water_small.json} | 4 +- .../tfg/loot_tables/chests/illager_camps.json | 379 ++++++++++++++++++ .../structures/illager_generic/gatherers.nbt | Bin 0 -> 369 bytes .../illager_generic/huntmaster_camp.nbt | Bin 0 -> 1642 bytes .../illager_generic/mobs/huntmaster.nbt | Bin 0 -> 1035 bytes .../illager_generic/small_camp_1.nbt | Bin 0 -> 1106 bytes .../illager_generic/small_camp_2.nbt | Bin 0 -> 1117 bytes .../worldgen/structure/illagers/camps.json | 25 ++ .../structure/illagers/forest_roaming.json | 25 ++ .../illagers/norse_village_living.json | 2 +- .../illagers/norse_village_ruined.json | 2 +- .../structure_set/illagers/illager_camps.json | 19 + .../illagers/illager_forest_roaming.json | 19 + .../illagers/camp_start_pool.json | 33 ++ .../illagers/forest_roaming_start_pool.json | 15 + .../template_pool/illagers/mob_gatherer.json | 24 ++ .../illagers/mob_huntmaster.json | 15 + .../tfg/worldgen/tags.overworld.js | 27 ++ 20 files changed, 587 insertions(+), 3 deletions(-) rename kubejs/data/tfg/lithostitched/worldgen_modifier/{contains_illages.json => avoid_water_large.json} (100%) rename kubejs/data/tfg/lithostitched/worldgen_modifier/{contains_temperate_house.json => avoid_water_small.json} (75%) create mode 100644 kubejs/data/tfg/loot_tables/chests/illager_camps.json create mode 100644 kubejs/data/tfg/structures/illager_generic/gatherers.nbt create mode 100644 kubejs/data/tfg/structures/illager_generic/huntmaster_camp.nbt create mode 100644 kubejs/data/tfg/structures/illager_generic/mobs/huntmaster.nbt create mode 100644 kubejs/data/tfg/structures/illager_generic/small_camp_1.nbt create mode 100644 kubejs/data/tfg/structures/illager_generic/small_camp_2.nbt create mode 100644 kubejs/data/tfg/worldgen/structure/illagers/camps.json create mode 100644 kubejs/data/tfg/worldgen/structure/illagers/forest_roaming.json create mode 100644 kubejs/data/tfg/worldgen/structure_set/illagers/illager_camps.json create mode 100644 kubejs/data/tfg/worldgen/structure_set/illagers/illager_forest_roaming.json create mode 100644 kubejs/data/tfg/worldgen/template_pool/illagers/camp_start_pool.json create mode 100644 kubejs/data/tfg/worldgen/template_pool/illagers/forest_roaming_start_pool.json create mode 100644 kubejs/data/tfg/worldgen/template_pool/illagers/mob_gatherer.json create mode 100644 kubejs/data/tfg/worldgen/template_pool/illagers/mob_huntmaster.json diff --git a/CHANGELOG.md b/CHANGELOG.md index a549036da..c820029fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - The medical condition effect that previously instantly killed you (which did not spawn a corpse) now gives you Wither III instead. @Pyritie #### Other - Added two more early game mechanical belts, and rubber+ belts are also now more expensive. @Pyritie +- Primitive illagers will no longer endlessly respawn. Instead, now they only spawn as "structures", so once you kill them they will never return. @Pyritie - Doubled the durability of all space suits @Pyritie - Added a way to convert between vinegar and acetic acid (#2386) @Epicificator - Added a renderer to the electric greenhouse, so now you can visually see your crops grow! @RubenVerg diff --git a/kubejs/data/tfg/lithostitched/worldgen_modifier/contains_illages.json b/kubejs/data/tfg/lithostitched/worldgen_modifier/avoid_water_large.json similarity index 100% rename from kubejs/data/tfg/lithostitched/worldgen_modifier/contains_illages.json rename to kubejs/data/tfg/lithostitched/worldgen_modifier/avoid_water_large.json diff --git a/kubejs/data/tfg/lithostitched/worldgen_modifier/contains_temperate_house.json b/kubejs/data/tfg/lithostitched/worldgen_modifier/avoid_water_small.json similarity index 75% rename from kubejs/data/tfg/lithostitched/worldgen_modifier/contains_temperate_house.json rename to kubejs/data/tfg/lithostitched/worldgen_modifier/avoid_water_small.json index 620e0a23a..5e692b623 100644 --- a/kubejs/data/tfg/lithostitched/worldgen_modifier/contains_temperate_house.json +++ b/kubejs/data/tfg/lithostitched/worldgen_modifier/avoid_water_small.json @@ -1,7 +1,9 @@ { "type": "lithostitched:set_structure_spawn_condition", "structures": [ - "tfg:temperate/plains_temperate_house_0" + "tfg:temperate/plains_temperate_house_0", + "tfg:illagers/camps", + "tfg:illagers/forest_roaming" ], "spawn_condition": { "type": "lithostitched:grid", diff --git a/kubejs/data/tfg/loot_tables/chests/illager_camps.json b/kubejs/data/tfg/loot_tables/chests/illager_camps.json new file mode 100644 index 000000000..70b923fb9 --- /dev/null +++ b/kubejs/data/tfg/loot_tables/chests/illager_camps.json @@ -0,0 +1,379 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "tfc:wool", + "weight": 80, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3, + "min": 1 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfc:wool_yarn", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9, + "min": 5 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:leather", + "weight": 50, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2, + "min": 1 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfc:ceramic/gray_glazed_vessel", + "weight": 50 + }, + { + "type": "minecraft:item", + "name": "tfc:ceramic/light_gray_glazed_vessel", + "weight": 50 + }, + { + "type": "minecraft:item", + "name": "minecraft:sentry_armor_trim_smithing_template", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:vex_armor_trim_smithing_template", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:wild_armor_trim_smithing_template", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:coast_armor_trim_smithing_template", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "tfc:powder/salt", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8, + "min": 4 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfc:powder/saltpeter", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6, + "min": 3 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfc:powder/sulfur", + "weight": 50, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6, + "min": 3 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfc:candle", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4, + "min": 2 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfc:candle/gray", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4, + "min": 2 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfc:candle/light_gray", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4, + "min": 2 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 50, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4, + "min": 2 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 20, + "min": 12 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "firmalife:jar/compost", + "weight": 80 + }, + { + "type": "minecraft:item", + "name": "firmalife:jar/guano", + "weight": 80 + }, + { + "type": "minecraft:item", + "name": "firmalife:jar/honey", + "weight": 80 + }, + { + "type": "minecraft:item", + "name": "minecraft:paper", + "weight": 50, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2, + "min": 1 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfc:groundcover/pumice", + "weight": 50, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4, + "min": 2 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfg:conifer_rosin", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3, + "min": 1 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "firmalife:beeswax", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3, + "min": 1 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:flint", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6, + "min": 3 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "gtceu:tricalcium_phosphate_dust", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5, + "min": 2 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:charcoal", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5, + "min": 2 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "tfc:glue", + "weight": 100, + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5, + "min": 2 + }, + "function": "minecraft:set_count" + } + ] + }, + { + "type": "minecraft:item", + "name": "chalk:gray_chalk", + "weight": 70 + }, + { + "type": "minecraft:item", + "name": "chalk:light_gray_chalk", + "weight": 70 + }, + { + "type": "minecraft:item", + "name": "species:music_disc_lapidarian", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8, + "min": 6 + } + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/structures/illager_generic/gatherers.nbt b/kubejs/data/tfg/structures/illager_generic/gatherers.nbt new file mode 100644 index 0000000000000000000000000000000000000000..5f000a202845afbeaab59c4ef65a591b26861dc5 GIT binary patch literal 369 zcmb2|=3oGW|93-9`yDnAh*7UqSt-!r{ZMzkOt_o|8nBo7(rc5{YZy zHa?hrqxY`FM`pJ#7X)of666=1_P=o0e|q1Gh0ODd&6l0_pWbJ&O!-#&+bE`mr!1NT z7i)GTMtQpKJji-pYwpsWVRaWB{t0r#Cxn{YZcd4}Qb3e~S*MfTtD^~qfZTt~u9lkvxxer4iS@5byr(@Z|8nBuRI@!_{FJxr+GhN} b=kspD$CGzwxgWYIy@xrvGwGWJ8v_FXm!z*k literal 0 HcmV?d00001 diff --git a/kubejs/data/tfg/structures/illager_generic/huntmaster_camp.nbt b/kubejs/data/tfg/structures/illager_generic/huntmaster_camp.nbt new file mode 100644 index 0000000000000000000000000000000000000000..c3dcea4f5f373fe94f663f2544e4fd162b91fc27 GIT binary patch literal 1642 zcmb2|=3oGW|4(O~?YnIz(6G{e{afE%w?$l=pWX1z*Sm20-YgMDt}U(&Ym%>2vVM!3RYA-iz3K_|Ph;*0}_wLe6F z(3cbZMibeck2dp&@;~e7VwcpKcOrT14dwGE0zN7@?^Kt|R&>7l@JO;;%8Dr0wl2w; zj(p7@ZMd5{k3Zwo|L$5~=WlY3MedA3`$r4m$}=G2+piz6-FauZ_`8o5!W9Nntc@mu zZEe5aGDBUanE$xsDOt%=vNId24bBC;Ti70M@=UbXcuM$_hoY57dd@tk^gTAS@%q)L zanJT7@vpyem|JpH*u;f*g!?NdZQR;acr1PGk>-WxT24mHdtBJ|$*Jv>vC);v4xUmu zCFi;ACjzS7IsR;CIv?=vM8RH#lq?>}S38xRZOc>G-d#RzJh|At?KSHhYoi$b2X`iV z+U(g8cVMUT;jc{RKu(feCth$~R&rf@!Mob`55e?_0^8PN_qL*b+dC5mI0ak*y4M@hj$Af+@1Ka3MR16t)lI9;hgIKM~!3p zAK&?1>;E0(*mcJX-)($wH~HXh<-=bs&e?t}a0e-am?wO2x3cq2e;Xu&%Tsp9l|QWe z_Is1Xwe}AQO#EtJ5?0*5Ke5wx#*yZQcbNGhenKX{UpNd7lvA>j?`&-$0rc)~0fcdC zuYG+b)Pvx_S$Jn67=c{myi*yJaKHfr3Y+(#MNqadraf%$HlH?LSbM%$Z&6kzbK%z2 z;STE-?d&k#c{Nz@w)5H}o3~Dk-ulY!#=h+RXZtrZebU~emiN|b_wDSxQB$nqGdK_Y z>AkqsXj{P9kUM(4Yc~1r(&{;tvrtTaV|E3Vy2 z$x?lm^et+3%-%_*%FC2=!XEupSoKb6tLsV!75%UKR(yJxJU3pB`|Wz$xpr#;Liks0 zx+Np`U#9cN_D6>eYft)z<=#I3ExCOEm1|S|#LrJ}7D;ynb+x8S?%Y;@7C>>{PXv^j*$7*K>hO{JnmTi5&!w`>A8@%Z|&{s{> z{mh^H-}Jmb-MslP!}81RO+O;De~0ZlI{$WQ-Sx1b%^IhIo}F4UVd5^y&c~mH+Gg(l z_I``3am3e?KUOKOv)U;1Z1bbl``ETu%}m?Xbw74<_+74b_TO$&7613R&v6F- zU|TJj6&G@fs}f86%>uUCNj9&U^5H{Lc3Ht!SKd8m8nZ7w`*-2iybG7vj!RFx`qh=` zqmOO8%&ISOOP5v!EalkOd@%Ln3(r#aOTX)8o#w4GODy;Dlj1n>_FUl3V6ENm^|SsY zHP2;V?aQbewJlvu=0aw)#|F;j1=|bGe4MiXUtrWv>p3iZBL4qH{xeOATpN5qoq+)W DUvWaJ literal 0 HcmV?d00001 diff --git a/kubejs/data/tfg/structures/illager_generic/mobs/huntmaster.nbt b/kubejs/data/tfg/structures/illager_generic/mobs/huntmaster.nbt new file mode 100644 index 0000000000000000000000000000000000000000..66352151f5965d37dfd8ca6856620f86de8e68f3 GIT binary patch literal 1035 zcmb2|=3w~fWS`0Kzc%E2zO<`IUH1CBcYU4i25D>w?YzQ0HDKYRG|rg+2RxUkZ1oA6 z;IQV{?&RuQcW0)iT|4IZhf$QhZ;qzZE5<;+sSn(aOq71qbc9tvNSrTbN2pf5%|F3e z9Nw$Ho~zEk_kG{@ec}v19%z+0bTcH#rT_c3@Q$}ji974FB^;_tJD2^CSMHh_@R?x- z>&*54KWo~&d@S>Q=07HlPxHPlSkoyJz`H#7Sf+|+e0b)pm!0fOZ#Nb4&J*!;s^a{5 z;B1SB--no&#(tA7EQ^Vr#W`8xh^N=XKc7rQ_ZkSv*l(S{_#?NGVU|kp1INar0g=1z zr7^o6TXrs3(sRYND;Gizc$c4D`rnuJ^W$W37J-r_CsthP(Q46FSuAtV=%8Z9(HZSt zPpUFLRb(U_)7@~V^76Y9zl@frTXXud_ph(1`g-wr!0+3)vg>7HYJSd@uiGkP{lJ{_ z{`sVoDy=QifbJv{Xear{V-oExdlq_Yfy5dT;*NHO?YnH!Qn0sl# zx~(aDW1>6W?RoJv^&<1Bl_?juhV*1~eQnWNY@*kETcPV(T~+C?=nbVmD-z_b^^Pr6 zsc}e8G>_Y|^yh>39W%a4PMx;MXo~KhTkiM&M0}M~as805bah&6Nd#kgef{dx4R-&h zSEsJu<@xU4=Dk(tYkz-|IdoG`O!rdh)QN`i?>XmbM?A2;ZvHuN?zdDSJ{8G_)p2JI zH{UngXZ8Kzp`T5qVYAX6PS|uXpk1YJ=0PLwNR9)IS9R@93G3YSG3Q!zWkSnGhCNf3 zrMXOb`Qzo;m{-S+eBpj>eRfURG-v4pOAQ|?KAbpnoeQ`eF_rtgT7^*7 zA3jNb@ixmIr8$;2#SR#Eb{MXF(EX~gg+od!P;X{H=rQ*Ufug49C6=~DX$#NKZRk|F zIYDHhQEhv9#H0m0>BX(Jw(C7h0z!r5E?U@3IzMw`>9U#1)2>{o>DFwUB3W6|dNuIm zi%lON#NCVwTj{-IL+he!K0&t7WAFC0t+o2~f7ITK(R`HDDsqWj66Zlj%k^SWft-tRc-n{gE{+{a6f4Si|T75Q&EYEW} z?6K(1MwZa0DJPPG7`C5Psr@7IH7{t(WX{LTPs(|xyRfq-*xwd&QjR$9Gw-gjsz!d$ zq!)>Q|CM|!N$Y<8q4ZxjQqF!1q-*|*%dAJ?ZT!DmtHIMKiz2d zc;dt-7B{`m|IOX|W@o+H)Hf&k-kv<;&E3l8r1SIg<>kx2v#B{ZFmf!n*JNqjaPYAdXZA2h!O>H8okTNp8Wb4I#E<3koU z>l%xL?ZPz`x8wW`7BxE_itBu7WxefZf_3qO$#btg^sGB~Yo=cM#b-TleZuP)g3f<8 zjwR$=OS)UZGnRBeIH6*pd{C0}oJWCM)8>p~yZrQD zzgC}*6qv($P_nH4_so5AN93L#`SMlan}u(!wDmx+QCi{V@Y=`fDpOo zn!kPLHe|_Bvuiij&s}P>C+>yY)Ub1Zt{(E~x@400qW7%g?~Ibiirbg1d%7gdvSX>C z>7H+!UwO6f^olg^>z=cH*~%h`vn9%}lU5gOnP_T1;X!p|n(uW?*YR(|T(O^cIu|9^@f zdU|P#-+%w?ngc!F1x3CL4}1H$N{)Y{iCm(A=N~g3FZ2HS zMiM?-zaG4@^X-o!XE`_L6V9e@r^!z_w&L$p!GE!dY+bLZ?sjph{EinV$E+Bt_*6>|GsM}kD6lk?)UrNZrqY~*JkO;C&_2u zi$C4Pu}X2z&RHv$h2-tw+n#yt=);V>HNm%cE}7$^&YU{`{qV6HcMI~rtuS%=JN5Hj@%E`(X4|ctoa~!iTG7+qGL!Ao)lD~|-dtOr ze){94fPm|(R$T2})mS^7`P#3G2cN7hJCOHqe&!tZ-ou+JzkPaJ%BR4;*~*Cj{N{`O amrmbz@^%x@``56a@z#nN8y|}^FaQARi8fRK literal 0 HcmV?d00001 diff --git a/kubejs/data/tfg/structures/illager_generic/small_camp_2.nbt b/kubejs/data/tfg/structures/illager_generic/small_camp_2.nbt new file mode 100644 index 0000000000000000000000000000000000000000..6119022e5e2df415f006bceef29551d8302552cd GIT binary patch literal 1117 zcmb2|=3oGW|9fXR=HE6GX_)V!HSukkCL7PuZMQeaDVKRF{%$YflytWoloc=kM#b0u>Ye=hF#o9k&WtT?03_-(p|lHc)}bFZJD zd7gFIW8v?{&US(G{Y&DK(=Ai}o|$0$^7GCE8yM5OJ}l&ze?Wl6c#8A2=gz-p_MH#4 zzx;9MyY#kK>)UHH%H&V`JCXPnF@0_;e_U) znM!kD#8*pokR{F*#x2Iq7S5l`=SaSGw0a~nW24*><#U3EESn0SAL#k|U`BCEff`48 z6P)NOSjLeKCDJ(3+X^5=?YWPYXEz5w=k{qyXtT>^ZBv?|_?+XR%nZfn2YPDlWQzL) z&api7K@fuHL>~G;37&^%1kQnpHRmfY{r}6f%wct_?}JlCu^im`*Eb2xeCA!fJFMFz zc&c>NQsIvK+L4hSTeQ6QX}B`230u{o|8~=ksd?)JZk_q7v~}aopj#>i(WknmzYKg- zDLuMPJ`~x7?s|^_)}Lanc?QCuHKboT!eJ*!Mc6>eheXR+;i=hfZc` zYi)1+d-=M^4gF7tlhYo_uZ@uZS9<7A&B`_YXFooSzmZzDJ6LP}^i?y`wG(r;ZWKJS z{_3(#|7;F7y+{_H&>!ni$bDy_(dpIJT;cX>{$43GpS=C4+cW#`s&|*ayXkZ?DD3EZ zqus^@E9Rf~%6qeW()-qLo9m2z{a$acdFM*h9;<_zdp`W||MTyvTX_4+`|@&fNi%jn zx#m>7`{JUrueaWJS*z1}Qt88SgDJD8){7oinSRSEIJxifZ04K2ZiRR)%)`5q_7=blp_Hb?YJX2gc%W0v5F^nP)G3 zqZOO~sbnF)yUe|RyLdxRC8b_=`dmA!Fm`t>`wMOP#TVAGe)7p}o%g)y`8<<#H=6(o%Pdfigo{K++g`tW^p0z$CL+7wwjXR({HY- ze7q*W@A9fGCFVPY14Lu;UwxTyF|Be(tY7%frd`6Bn%fq&yx7f>p*epJ^Zw~iNo o7dw8}SD|q8CFB0^OK*6$|1rNFEZ6e9{($|Y6Nh5Yh%+z%0OaX28UO$Q literal 0 HcmV?d00001 diff --git a/kubejs/data/tfg/worldgen/structure/illagers/camps.json b/kubejs/data/tfg/worldgen/structure/illagers/camps.json new file mode 100644 index 000000000..1c97dd910 --- /dev/null +++ b/kubejs/data/tfg/worldgen/structure/illagers/camps.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:jigsaw", + "start_pool": "tfg:illagers/camp_start_pool", + "size": 3, + "max_distance_from_center": 50, + "biomes": "#tfg:has_structure/illager_camp", + "step": "surface_structures", + "terrain_adaptation": "beard_thin", + "start_height": { + "absolute": 0 + }, + "project_start_to_heightmap": "MOTION_BLOCKING", + "use_expansion_hack": false, + "adapt_noise": true, + "spawn_overrides": { + "creature": { + "bounding_box": "full", + "spawns": [] + }, + "monster": { + "bounding_box": "full", + "spawns": [] + } + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/structure/illagers/forest_roaming.json b/kubejs/data/tfg/worldgen/structure/illagers/forest_roaming.json new file mode 100644 index 000000000..d4ebf1721 --- /dev/null +++ b/kubejs/data/tfg/worldgen/structure/illagers/forest_roaming.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:jigsaw", + "start_pool": "tfg:illagers/forest_roaming_start_pool", + "size": 3, + "max_distance_from_center": 12, + "biomes": "#tfg:has_structure/illager_roaming", + "step": "surface_structures", + "terrain_adaptation": "beard_thin", + "start_height": { + "absolute": 0 + }, + "project_start_to_heightmap": "MOTION_BLOCKING", + "use_expansion_hack": false, + "adapt_noise": true, + "spawn_overrides": { + "creature": { + "bounding_box": "full", + "spawns": [] + }, + "monster": { + "bounding_box": "full", + "spawns": [] + } + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/structure/illagers/norse_village_living.json b/kubejs/data/tfg/worldgen/structure/illagers/norse_village_living.json index 6f79900ef..a61dd11c0 100644 --- a/kubejs/data/tfg/worldgen/structure/illagers/norse_village_living.json +++ b/kubejs/data/tfg/worldgen/structure/illagers/norse_village_living.json @@ -1,7 +1,7 @@ { "type": "minecraft:jigsaw", "start_pool": "tfg:illagers/norse_village_living_start_pool", - "size": 4, + "size": 5, "max_distance_from_center": 116, "biomes": "#tfg:has_structure/illages", "step": "surface_structures", diff --git a/kubejs/data/tfg/worldgen/structure/illagers/norse_village_ruined.json b/kubejs/data/tfg/worldgen/structure/illagers/norse_village_ruined.json index 85e8d895a..249966a32 100644 --- a/kubejs/data/tfg/worldgen/structure/illagers/norse_village_ruined.json +++ b/kubejs/data/tfg/worldgen/structure/illagers/norse_village_ruined.json @@ -1,7 +1,7 @@ { "type": "minecraft:jigsaw", "start_pool": "tfg:illagers/norse_village_ruined_start_pool", - "size": 4, + "size": 5, "max_distance_from_center": 116, "biomes": "#tfg:has_structure/illages", "step": "surface_structures", diff --git a/kubejs/data/tfg/worldgen/structure_set/illagers/illager_camps.json b/kubejs/data/tfg/worldgen/structure_set/illagers/illager_camps.json new file mode 100644 index 000000000..4096f4a32 --- /dev/null +++ b/kubejs/data/tfg/worldgen/structure_set/illagers/illager_camps.json @@ -0,0 +1,19 @@ +{ + "structures": [ + { + "structure": "tfg:illagers/camps", + "weight": 100 + } + ], + "placement": { + "type": "tfc:climate", + "salt": 96263635, + "spacing": 40, + "separation": 30, + "climate": { + "min_temperature": -12, + "max_temperature": 25, + "max_forest": "edge" + } + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/structure_set/illagers/illager_forest_roaming.json b/kubejs/data/tfg/worldgen/structure_set/illagers/illager_forest_roaming.json new file mode 100644 index 000000000..7f55a757a --- /dev/null +++ b/kubejs/data/tfg/worldgen/structure_set/illagers/illager_forest_roaming.json @@ -0,0 +1,19 @@ +{ + "structures": [ + { + "structure": "tfg:illagers/forest_roaming", + "weight": 100 + } + ], + "placement": { + "type": "tfc:climate", + "salt": 74256242524, + "spacing": 35, + "separation": 25, + "climate": { + "min_temperature": -12, + "max_temperature": 25, + "min_forest": "edge" + } + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/template_pool/illagers/camp_start_pool.json b/kubejs/data/tfg/worldgen/template_pool/illagers/camp_start_pool.json new file mode 100644 index 000000000..520cebad0 --- /dev/null +++ b/kubejs/data/tfg/worldgen/template_pool/illagers/camp_start_pool.json @@ -0,0 +1,33 @@ +{ + "name": "tfg:illagers/camp_start_pool", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 100, + "element": { + "location": "tfg:illager_generic/small_camp_1", + "processors": "minecraft:empty", + "projection": "terrain_matching", + "element_type": "minecraft:single_pool_element" + } + }, + { + "weight": 100, + "element": { + "location": "tfg:illager_generic/small_camp_2", + "processors": "minecraft:empty", + "projection": "terrain_matching", + "element_type": "minecraft:single_pool_element" + } + }, + { + "weight": 100, + "element": { + "location": "tfg:illager_generic/huntmaster_camp", + "processors": "minecraft:empty", + "projection": "terrain_matching", + "element_type": "minecraft:single_pool_element" + } + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/template_pool/illagers/forest_roaming_start_pool.json b/kubejs/data/tfg/worldgen/template_pool/illagers/forest_roaming_start_pool.json new file mode 100644 index 000000000..003ed5a50 --- /dev/null +++ b/kubejs/data/tfg/worldgen/template_pool/illagers/forest_roaming_start_pool.json @@ -0,0 +1,15 @@ +{ + "name": "tfg:illagers/forest_roaming_start_pool", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 100, + "element": { + "location": "tfg:illager_generic/gatherers", + "processors": "minecraft:empty", + "projection": "terrain_matching", + "element_type": "minecraft:single_pool_element" + } + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/template_pool/illagers/mob_gatherer.json b/kubejs/data/tfg/worldgen/template_pool/illagers/mob_gatherer.json new file mode 100644 index 000000000..8c6aab2f1 --- /dev/null +++ b/kubejs/data/tfg/worldgen/template_pool/illagers/mob_gatherer.json @@ -0,0 +1,24 @@ +{ + "name": "tfg:illagers/mob_gatherer", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 100, + "element": { + "location": "tfg:illager_generic/mobs/forager", + "processors": "minecraft:empty", + "projection": "rigid", + "element_type": "minecraft:single_pool_element" + } + }, + { + "weight": 70, + "element": { + "location": "tfg:illager_generic/mobs/herbalist", + "processors": "minecraft:empty", + "projection": "rigid", + "element_type": "minecraft:single_pool_element" + } + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/template_pool/illagers/mob_huntmaster.json b/kubejs/data/tfg/worldgen/template_pool/illagers/mob_huntmaster.json new file mode 100644 index 000000000..fed392c0b --- /dev/null +++ b/kubejs/data/tfg/worldgen/template_pool/illagers/mob_huntmaster.json @@ -0,0 +1,15 @@ +{ + "name": "tfg:illagers/mob_huntmaster", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 100, + "element": { + "location": "tfg:illager_generic/mobs/huntmaster", + "processors": "minecraft:empty", + "projection": "rigid", + "element_type": "minecraft:single_pool_element" + } + } + ] +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/worldgen/tags.overworld.js b/kubejs/server_scripts/tfg/worldgen/tags.overworld.js index 7bd81d8d9..594d832ca 100644 --- a/kubejs/server_scripts/tfg/worldgen/tags.overworld.js +++ b/kubejs/server_scripts/tfg/worldgen/tags.overworld.js @@ -22,6 +22,33 @@ function registerTFGOverworldBiomeTags(event) { event.add('tfg:has_structure/illages', 'tfc:plateau') event.add('tfg:has_structure/illages', 'tfc:old_mountains') + event.add('tfg:has_structure/illager_camp', 'tfc:badlands') + event.add('tfg:has_structure/illager_camp', 'tfc:canyons') + event.add('tfg:has_structure/illager_camp', 'tfc:highlands') + event.add('tfg:has_structure/illager_camp', 'tfc:hills') + event.add('tfg:has_structure/illager_camp', 'tfc:inverted_badlands') + event.add('tfg:has_structure/illager_camp', 'tfc:low_canyons') + event.add('tfg:has_structure/illager_camp', 'tfc:lowlands') + event.add('tfg:has_structure/illager_camp', 'tfc:mountains') + event.add('tfg:has_structure/illager_camp', 'tfc:oceanic_mountains') + event.add('tfg:has_structure/illager_camp', 'tfc:old_mountains') + event.add('tfg:has_structure/illager_camp', 'tfc:plains') + event.add('tfg:has_structure/illager_camp', 'tfc:plateau') + event.add('tfg:has_structure/illager_camp', 'tfc:rolling_hills') + event.add('tfg:has_structure/illager_camp', 'tfc:salt_marsh') + event.add('tfg:has_structure/illager_camp', 'tfc:shore') + event.add('tfg:has_structure/illager_camp', 'tfc:tidal_flats') + event.add('tfg:has_structure/illager_camp', 'tfc:volcanic_mountains') + event.add('tfg:has_structure/illager_camp', 'tfc:volcanic_oceanic_mountains') + + event.add('tfg:has_structure/illager_roaming', 'tfc:highlands') + event.add('tfg:has_structure/illager_roaming', 'tfc:hills') + event.add('tfg:has_structure/illager_roaming', 'tfc:lowlands') + event.add('tfg:has_structure/illager_roaming', 'tfc:plains') + event.add('tfg:has_structure/illager_roaming', 'tfc:plateau') + event.add('tfg:has_structure/illager_roaming', 'tfc:rolling_hills') + event.add('tfg:has_structure/illager_roaming', 'tfc:salt_marsh') + event.add('tfg:never_has_structure/illages', '#tfc:is_lake') event.add('tfg:never_has_structure/illages', '#tfc:is_ocean') event.add('tfg:never_has_structure/illages', '#tfc:is_river')