From 15912f9607846345c87f189d85f06e059f7fddd6 Mon Sep 17 00:00:00 2001 From: TretinV3 Date: Sat, 4 Jul 2026 20:09:55 +0200 Subject: [PATCH 1/2] Unification n Worldgen fixes --- index.toml | 10 + kubejs/README.txt | 15 ++ kubejs/assets/kubejs/textures/block/cloud.png | Bin 0 -> 1044 bytes .../kubejs/textures/block/example_block.png | Bin 0 -> 247 bytes .../kubejs/textures/item/example_item.png | Bin 0 -> 372 bytes .../assets/tfmg/models/block/oil_deposit.json | 7 + .../tfmg/textures/block/oil_deposit.png | Bin 0 -> 1139 bytes kubejs/client_scripts/main.js | 10 + kubejs/config/client.json | 8 + kubejs/config/common.json | 16 ++ kubejs/config/web_server.json | 6 + .../worldgen/configured_feature/lead_ore.json | 4 + .../neoforge/biome_modifier/clouds.json | 6 + .../worldgen/configured_feature/cloud.json | 17 ++ .../kubejs/worldgen/placed_feature/cloud.json | 11 + .../configured_feature/oil_deposit.json | 27 +++ kubejs/server_scripts/main.js | 210 ++++++++++++++++++ kubejs/startup_scripts/main.js | 30 +++ mods/kubejs.pw.toml | 13 ++ mods/rhino.pw.toml | 13 ++ pack.toml | 2 +- 21 files changed, 404 insertions(+), 1 deletion(-) create mode 100644 kubejs/README.txt create mode 100644 kubejs/assets/kubejs/textures/block/cloud.png create mode 100644 kubejs/assets/kubejs/textures/block/example_block.png create mode 100644 kubejs/assets/kubejs/textures/item/example_item.png create mode 100644 kubejs/assets/tfmg/models/block/oil_deposit.json create mode 100644 kubejs/assets/tfmg/textures/block/oil_deposit.png create mode 100644 kubejs/client_scripts/main.js create mode 100644 kubejs/config/client.json create mode 100644 kubejs/config/common.json create mode 100644 kubejs/config/web_server.json create mode 100644 kubejs/data/createnuclear/worldgen/configured_feature/lead_ore.json create mode 100644 kubejs/data/kubejs/neoforge/biome_modifier/clouds.json create mode 100644 kubejs/data/kubejs/worldgen/configured_feature/cloud.json create mode 100644 kubejs/data/kubejs/worldgen/placed_feature/cloud.json create mode 100644 kubejs/data/tfmg/worldgen/configured_feature/oil_deposit.json create mode 100644 kubejs/server_scripts/main.js create mode 100644 kubejs/startup_scripts/main.js create mode 100644 mods/kubejs.pw.toml create mode 100644 mods/rhino.pw.toml diff --git a/index.toml b/index.toml index 7964c83..feb71f0 100644 --- a/index.toml +++ b/index.toml @@ -1471,6 +1471,11 @@ file = "mods/kotlinforforge-5.11.0-all.pw.toml" hash = "451f3c8a632a8c76e827ee7239244417a9e2e78ef3e480286b9eacd6aeeadd1f" metafile = true +[[files]] +file = "mods/kubejs.pw.toml" +hash = "99bea71046529d65463fc12acb505ab363c91133ebbcc1d976e49a5d33150702" +metafile = true + [[files]] file = "mods/lambdynamiclights-4.8.10+1.21.1.pw.toml" hash = "2dff78f3d2f29501486cfd20516ed9e8c3aa6b6fade70580b8139656078ee369" @@ -1581,6 +1586,11 @@ file = "mods/reconnectible-chains.pw.toml" hash = "070e834d2b8eb749a0f547b29bbbeba9aa3b83041cef9b399e8e2e6c5c24e225" metafile = true +[[files]] +file = "mods/rhino.pw.toml" +hash = "e55ca32b338a0e0540f4fec5170675d860566255ae0f45692a00cb4ebf2eb535" +metafile = true + [[files]] file = "mods/ritchiesprojectilelib-2.1.2+mc.1.21.1-neoforge.pw.toml" hash = "9107f7f41ea3847118f35001ec3ae60d0de7bcddfe0d4d7513277ddd43090536" diff --git a/kubejs/README.txt b/kubejs/README.txt new file mode 100644 index 0000000..5cf0fdf --- /dev/null +++ b/kubejs/README.txt @@ -0,0 +1,15 @@ +Find out more info on the website: https://kubejs.com/ + +Directory information: + +assets - Acts as a resource pack, you can put any client resources in here, like textures, models, etc. Example: assets/kubejs/textures/item/test_item.png +data - Acts as a datapack, you can put any server resources in here, like loot tables, functions, etc. Example: data/kubejs/loot_tables/blocks/test_block.json + +startup_scripts - Scripts that get loaded once during game startup - Used for adding items and other things that can only happen while the game is loading (Can be reloaded with /kubejs reload_startup_scripts, but it may not work!) +server_scripts - Scripts that get loaded every time server resources reload - Used for modifying recipes, tags, loot tables, and handling server events (Can be reloaded with /reload) +client_scripts - Scripts that get loaded every time client resources reload - Used for JEI events, tooltips and other client side things (Can be reloaded with F3+T) + +config - KubeJS config storage. This is also the only directory that scripts can access other than world directory +exported - Data dumps like texture atlases end up here + +You can find type-specific logs in logs/kubejs/ directory \ No newline at end of file diff --git a/kubejs/assets/kubejs/textures/block/cloud.png b/kubejs/assets/kubejs/textures/block/cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd48a0a6223d468e2e9749b472380455694f325 GIT binary patch literal 1044 zcmV+v1nc{WP)z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2kHj|3?3#)ADTq~00US_L_t(I%Po=3P8(MMM$ZgfV}^ec*|^wra4NehR!KxL zk(z*5L}F3N)hLqHH(=M7=$aSkst;fjmsZLGsE`P>9$86+LB&-0DI;uB4;XB&jW1@p zDBlBoM>)d0dvOH1*5K0o;E*|ROr^X8|f zrmh{wnXzpfU_>dUccs(m??y&OKHJ>fyk}X~9Ple}3!DNi(=gwu6v)R1f z+S+<$S(bN4jwq!Lg%BO3)I*@Uv9aNcMx&nq4S-lI_92_iUg)mtMpsr=UN0>z-FlvP zTdh`;?RL9Q2r;OXy7%$p$A}Q(Y)zhpGeDc1oIG7yTMHP5@ldyI`~A$!%$V!C z_Z-I=Q%e1LaB$EirSu6QbY0gK&@PwDZ`$qld3SfW&vo4&lu{ij<%6ztIvva9a_+#u zz|h*-S}2)JR+`P`jpuo1)oQgfF)>leX0xA$!{O@Q-rl&+=lkOA+qXBNP{=b)^IezU z?|%%)!^6Ys;^Ja!dwaXq>2!L=$Hy;B)ATBpN_%K%NC445AaH(kbW{rlgWB=&@w?O0 zQ@?&^|2|;ka=C8Tbwiq_RU(ndEzr8Wyz~PS_#3Dt5{VDMtGnDc-FN8*fy-1X)da3B z%NhadN~zCdv6xmWmF@!pV5?Xx)_`H)AD~}PrBV*yrc$Yvl=8|j46@m5SGin%Duk#5 zx5Z-71AZ$Oi&6*?xdVO)OzVY0AsP$@`+(Nm++0{n*#oq9cX$5+R6d_SF-`OLMx)UH zhLuuZ@&9gsyq3vi=A@L548!mWg+c{*u)Mt71V)7r>7AXOpMa1M;#w(XhQr}L;9tja z1kj~rGMRbL^PX#(7QA~d04<=;FbtoRvN1b5>j95!+pYm^AOV~Kzx)Rp3zErF+}2Was#uPtD~YqP(p%HAtO^dE1TQ(gyiJQ0*ngECLX3DM+*2n zy^Bp54G&G364c0}mTsE5SVfqXg;}pPfaf}&u|OW{ogj{c1O|q02Spw8^?QARW;1xY L`njxgN@xNAFqk>d literal 0 HcmV?d00001 diff --git a/kubejs/assets/kubejs/textures/item/example_item.png b/kubejs/assets/kubejs/textures/item/example_item.png new file mode 100644 index 0000000000000000000000000000000000000000..bbb5bf701ab3f12feca2c8cbbd32a3e681532528 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1en1E;5pV~B-+@}K|z?U_{@I9(!6cl=>b+`u8E z;3o5iNx(hQWrkx*H}{$bfr`&>r4QdV&zJ18t31r{-D%>~hxN939gM%@_A_37alkW# z#V7vPuil04Z&bPoNWWn%VF=<`+J&-1Q_JF6XXQW?5h(#m6Xt79Ppq2P=H>Sj1T`c z0|nLwUIth88SE@8XT1s#V?Mly+g#F7;*{&e=9dSh*s|sA7=BBhVr8Bnp)+eD;gas;_&#pEf8flV?q6dZaiYz@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2kHj|3?Bk)2T#=i00Xy4L_t(I%Pq{$Pg(~62k`Hspzw-K734<%3&pU5-DsdH z@dq0903H+{$+pPFi&w+Jcr)29I~qu)iCJQn7)?faF(^uAolQpk!FyrTL|lAgG5i?S zfR%PyvWI=U?DGeF2%4t9CQ0&#zP>(4rBWuJ&o{6v`;4L}a$sNpo12?&cXoEF8ja@f za=Bb-YHDiHYPAn6%U(z%k}(m0Cr+mmb#-+oYinyS3aT^$!fgyw+;9HzELEvMigTD2gkUO0x6wa|S>I01H77Bme^d8GwS@?Y;m2 zj^qC6=;+WDi^WMX0QueBoi>q3beYZOve9V#7eI3+leyw|*>h|A@&j;85ME|)6_g3uNW1`lhsno6NibWBZ6o$);XZGV4%+GH{{7z~CJ z0GlS0$+WStAtp)k&7+>4o?s{xx|pAz*A|OKwb5wgJswYHW@g5{y1J^BN~IUW!^0f} zL40(%T$a<*)4IXI!9N*>k=57NO9+~#g-9eaKRP;U^m@JT0Nenu93LMuv$L~9kx1lI zZ*TAE+}zxGE|>GQw6r)&rP9wzrSkX2#>OsDBog@`2*RD$>pcRH2A~B{wpy({f*>T_ zZufaG7;NHszSZmX{+i8Z4+DWfZ#J8Kw!OXmi5MRrPv73&ZYdNB^YZfYFn}KcsIITC zE7fZCbD>c9gCt3Z)oOhOAO(OFHj--~W?nZ*OlyE|<3w1kps(^dSJMTCFx$ zDwS_E8qJWy;jme)Rsz6#0PO&VIy*bh0K@>49xW{`eV0zBYnPXoL_8ipQmIt;QmOPt zr_&YGYBiC`WK2${vm6SA+QZ>+0RYCv z#-4X~ck>d7B(=Z4uMPwPPedZovCU>H>Gk@jdcFROd_MmbfP@&pXPHc<0g$!Z?JohG zuq?{~cubOH1;CS)l@$PxM59r2KA(RP2n5mq9{c@%{0G=0r}4Cqn(zPs002ovPDHLk FV1hPA`U(I5 literal 0 HcmV?d00001 diff --git a/kubejs/client_scripts/main.js b/kubejs/client_scripts/main.js new file mode 100644 index 0000000..54eeb1c --- /dev/null +++ b/kubejs/client_scripts/main.js @@ -0,0 +1,10 @@ +// Visit the wiki for more info - https://kubejs.com/ +console.info('Hello, World! (Loaded client example script)') + +RecipeViewerEvents.removeEntries('item', event => { + event.remove('#kubejs:removed') +}) + +RecipeViewerEvents.removeEntries('fluid', event => { + event.remove('#kubejs:removed') +}) \ No newline at end of file diff --git a/kubejs/config/client.json b/kubejs/config/client.json new file mode 100644 index 0000000..500f234 --- /dev/null +++ b/kubejs/config/client.json @@ -0,0 +1,8 @@ +{ + "window_title": "", + "disable_recipe_book": false, + "export_atlases": false, + "blur_scaled_pack_icon": true, + "custom_stack_size_text": true, + "shrink_stack_size_text": true +} \ No newline at end of file diff --git a/kubejs/config/common.json b/kubejs/config/common.json new file mode 100644 index 0000000..fd69fc0 --- /dev/null +++ b/kubejs/config/common.json @@ -0,0 +1,16 @@ +{ + "hide_server_script_errors": false, + "server_only": false, + "announce_reload": true, + "packmode": "", + "save_dev_properties_in_config": false, + "allow_async_streams": true, + "match_json_recipes": true, + "ignore_custom_unique_recipe_ids": false, + "startup_error_gui": true, + "startup_error_report_url": "", + "remove_slot_limit": false, + "default_max_stack_size": 0, + "creative_mode_tab_icon": {}, + "creative_mode_tab_name": null +} \ No newline at end of file diff --git a/kubejs/config/web_server.json b/kubejs/config/web_server.json new file mode 100644 index 0000000..f0c99bf --- /dev/null +++ b/kubejs/config/web_server.json @@ -0,0 +1,6 @@ +{ + "enabled": true, + "port": 61423, + "public_address": "", + "auth": "1WWU-67eIhvy7nyggMwX6SClPYma3Y0KEDDGFgCpf1j8" +} \ No newline at end of file diff --git a/kubejs/data/createnuclear/worldgen/configured_feature/lead_ore.json b/kubejs/data/createnuclear/worldgen/configured_feature/lead_ore.json new file mode 100644 index 0000000..e0fa296 --- /dev/null +++ b/kubejs/data/createnuclear/worldgen/configured_feature/lead_ore.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:no_op", + "config": {} +} \ No newline at end of file diff --git a/kubejs/data/kubejs/neoforge/biome_modifier/clouds.json b/kubejs/data/kubejs/neoforge/biome_modifier/clouds.json new file mode 100644 index 0000000..4d862ae --- /dev/null +++ b/kubejs/data/kubejs/neoforge/biome_modifier/clouds.json @@ -0,0 +1,6 @@ +{ + "type": "neoforge:add_features", + "biomes": "#minecraft:is_overworld", + "features": "kubejs:cloud", + "step": "underground_ores" +} \ No newline at end of file diff --git a/kubejs/data/kubejs/worldgen/configured_feature/cloud.json b/kubejs/data/kubejs/worldgen/configured_feature/cloud.json new file mode 100644 index 0000000..05fec8c --- /dev/null +++ b/kubejs/data/kubejs/worldgen/configured_feature/cloud.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:ore", + "config": { + "targets": [ + { + "target": { + "predicate_type": "minecraft:always_true" + }, + "state": { + "Name": "kubejs:cloud" + } + } + ], + "size": 64, + "discard_chance_on_air_exposure": 0 + } +} \ No newline at end of file diff --git a/kubejs/data/kubejs/worldgen/placed_feature/cloud.json b/kubejs/data/kubejs/worldgen/placed_feature/cloud.json new file mode 100644 index 0000000..ad427e1 --- /dev/null +++ b/kubejs/data/kubejs/worldgen/placed_feature/cloud.json @@ -0,0 +1,11 @@ +{ + "feature": "kubejs:cloud", + "placement": [ + { + "type": "minecraft:height_range", + "height": { + "below_top": 0 + } + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfmg/worldgen/configured_feature/oil_deposit.json b/kubejs/data/tfmg/worldgen/configured_feature/oil_deposit.json new file mode 100644 index 0000000..06e4888 --- /dev/null +++ b/kubejs/data/tfmg/worldgen/configured_feature/oil_deposit.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "targets": [ + { + "target": { + "predicate_type": "minecraft:random_block_match", + "block": "minecraft:air", + "probability": 0.05 + }, + "state": { + "Name": "tfmg:oil_deposit" + } + }, + { + "target": { + "predicate_type": "minecraft:always_true" + }, + "state": { + "Name": "kubejs:cloud" + } + } + ], + "size": 64, + "discard_chance_on_air_exposure": 0 + } +} \ No newline at end of file diff --git a/kubejs/server_scripts/main.js b/kubejs/server_scripts/main.js new file mode 100644 index 0000000..13811a5 --- /dev/null +++ b/kubejs/server_scripts/main.js @@ -0,0 +1,210 @@ +// Visit the wiki for more info - https://kubejs.com/ +console.info('Hello, World! (Loaded server example script)') + +// Listen to the block tag event +ServerEvents.tags('block', event => { + + event.remove('minecraft:infiniburn_overworld', 'tfmg:oil_deposit') + event.remove('minecraft:dragon_immune', 'tfmg:oil_deposit') + event.remove('minecraft:infiniburn_end', 'tfmg:oil_deposit') + event.remove('minecraft:infiniburn_nether', 'tfmg:oil_deposit') + event.remove('minecraft:lava_pool_stone_cannot_replace', 'tfmg:oil_deposit') + event.remove('minecraft:mineable/pickaxe', 'tfmg:oil_deposit') + event.remove('nova_structures:explosion_resistand', 'tfmg:oil_deposit') + event.remove('minecraft:wither_immune', 'tfmg:oil_deposit') + event.remove('minecraft:features_cannot_replace', 'tfmg:oil_deposit') + + //event.add('simulated:non_movable', 'tfmg:oil_deposit') + event.add('create:non_movable', 'tfmg:oil_deposit') + + //event.add('simulated:non_movable', 'kubejs:cloud') + event.add('create:non_movable', 'kubejs:cloud') +}) + +ServerEvents.tags('fluid', event => { + + event.removeAllTagsFrom('createbigcannons:molten_steel') + event.add('kubejs:removed', 'createbigcannons:molten_steel') + +}) + +ServerEvents.tags('item', event => { + + + // ------------------------- UNIFICATION ------------------------- + // Steel + + const other_steel = [ + 'createnuclear:steel_ingot', 'createbigcannons:steel_ingot', // ingots + 'createnuclear:steel_nugget', 'createbigcannons:steel_scrap', // nuggets + 'createnuclear:steel_block', 'createbigcannons:steel_block', // blocks + 'createbigcannons:molten_steel_bucket' + ] + + other_steel.forEach(i => { + event.removeAllTagsFrom(i) + event.add('kubejs:removed', i) + }) + + event.add('kubejs:steel_block', 'createnuclear:steel_block') + event.add('kubejs:steel_block', 'createbigcannons:steel_block') + event.add('kubejs:steel_block', 'tfmg:steel_block') + + + // Molten cast iron + + const other_cast = [ + 'createbigcannons:cast_iron_ingot', + 'createbigcannons:cast_iron_nugget', + 'createbigcannons:cast_iron_block' + ] + + other_cast.forEach(i => { + event.removeAllTagsFrom(i) + event.add('kubejs:removed', i) + }) + + event.add('kubejs:cast_iron_block', 'createbigcannons:cast_iron_block') + event.add('kubejs:cast_iron_block', 'tfmg:cast_iron_block') + + // Lead + + const other_lead = [ + 'createnuclear:lead_ingot', + 'createnuclear:raw_lead', + 'createnuclear:lead_ore', + 'createnuclear:deepslate_lead_ore', + 'createnuclear:lead_block', + 'createnuclear:lead_nugget' + ] + + other_lead.forEach(i => { + event.removeAllTagsFrom(i) + event.add('kubejs:removed', i) + }) + + event.add('kubejs:lead_block', 'createnuclear:lead_block') + event.add('kubejs:lead_block', 'tfmg:lead_block') + + + // Other + + event.removeAllTagsFrom('tfmg:copper_wire') + event.add('kubejs:removed', 'tfmg:copper_wire') +}) + +// Listen for the "recipes" server event. +ServerEvents.recipes(event => { + // ------------------------- UNIFICATION ------------------------- + // Steel + + + const steel_to_remove = [ + 'createbigcannons:mixing/alloy_steel', + 'createbigcannons:compacting/forge_steel_ingot', + 'createbigcannons:compacting/forge_steel_block', + 'createbigcannons:compacting/forge_steel_nugget', + 'createbigcannons:steel_ingot_from_block', + 'createbigcannons:steel_scrap', + + 'createnuclear:mixing/steel', + 'createnuclear:crafting/crafting/steel_ingot_from_decompacting', + 'createnuclear:crafting/steel_ingot_from_decompacting', + 'createnuclear:crafting/crafting/steel_nuget_from_decompacting', + 'createnuclear:crafting/steel_nuget_from_decompacting', + + ] + + steel_to_remove.forEach(r => { + event.remove({ id: r }) + }) + + event.remove([{ output: 'createbigcannons:molten_steel' }, { input: 'createbigcannons:molten_steel' }]) + + + event.stonecutting('createnuclear:steel_block', '#kubejs:steel_block') + event.stonecutting('createbigcannons:steel_block', '#kubejs:steel_block') + event.stonecutting('tfmg:steel_block', '#kubejs:steel_block') + + // Molten cast iron + + const iron_cast_to_remove = [ + + 'createbigcannons:compacting/forge_cast_iron_ingot', + 'createbigcannons:compacting/forge_cast_iron_block', + 'createbigcannons:compacting/forge_cast_iron_nugget', + + 'createbigcannons:compacting/iron_to_cast_iron_ingot', + + 'createbigcannons:cast_iron_ingot_from_block', + 'createbigcannons:cast_iron_nugget', + ] + + iron_cast_to_remove.forEach(r => { + event.remove({ id: r }) + }) + + event.stonecutting('createbigcannons:cast_iron_block', '#kubejs:cast_iron_block') + event.stonecutting('tfmg:cast_iron_block', '#kubejs:cast_iron_block') + + + // Lead + + const lead_to_remove = [ + + ] + + lead_to_remove.forEach(r => { + event.remove({ id: r }) + }) + + event.stonecutting('createnuclear:lead_block', '#kubejs:lead_block') + event.stonecutting('tfmg:lead_block', '#kubejs:lead_block') + + // Other + + event.remove({ id: 'tfmg:copper_wire_from_ingots_copper_stonecutting' }) + + + // ------------------------- CONFLICTS ------------------------- + + // Wire copper simple radio + event.remove({ id: 'simpleradio:copper_wire' }) + event.shapeless( + Item.of('simpleradio:copper_wire', 1), + [ + '2x #c:wires/copper' + ] + ) + + + // Additions + + event.custom({ + "type": "tfmg:vat_machine_recipe", + "allowed_vat_types": [ + "tfmg:cast_iron_vat", + "tfmg:steel_vat", + "tfmg:firebrick_lined_vat" + ], + "heat_level": 2, + "ingredients": [ + { + "type": "neoforge:single", + "amount": 500, + "fluid": "tfmg:carbon_dioxide" + } + ], + "machines": [ + "tfmg:mixing" + ], + "min_size": 1, + "results": [ + { + "amount": 1, + "id": "kubejs:cloud" + } + ] + }) + +}) \ No newline at end of file diff --git a/kubejs/startup_scripts/main.js b/kubejs/startup_scripts/main.js new file mode 100644 index 0000000..8919035 --- /dev/null +++ b/kubejs/startup_scripts/main.js @@ -0,0 +1,30 @@ +// Visit the wiki for more info - https://kubejs.com/ +console.info('Hello, World! (Loaded startup example script)') + +StartupEvents.registry('block', event => { + event.create('cloud') // Create a new block + .displayName('Cloud') // Set a custom name + .soundType('wool') // Set a material (affects the sounds and some properties) + .hardness(0) // Set hardness (affects mining time) + .resistance(0) // Set resistance (to explosions, etc) + .opaque(false) + .renderType('translucent') + //.textureAll('kubejs:block/cloud') + .noCollision() + .notSolid() + .noDrops() + .slipperiness(0.5) + .noValidSpawns(true) + .viewBlocking(false) + .transparent(true) +}) + + +BlockEvents.modification(event => { + event.modify('tfmg:oil_deposit', block => { + block.hasCollision = false; + block.destroySpeed = 0 + block.explosionResistance = 0 + //block.requiredTool = false; + }) +}) \ No newline at end of file diff --git a/mods/kubejs.pw.toml b/mods/kubejs.pw.toml new file mode 100644 index 0000000..97f9c44 --- /dev/null +++ b/mods/kubejs.pw.toml @@ -0,0 +1,13 @@ +name = "KubeJS" +filename = "kubejs-neoforge-2101.7.2-build.368.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/umyGl7zF/versions/F2nzeC19/kubejs-neoforge-2101.7.2-build.368.jar" +hash-format = "sha512" +hash = "5e2f1bd1460d8f443ce4bd44ed367d27f9170e50dff2ce9430954206e89651f8969dfbe842c3100b0244f8d58f843fc5fb9c46b5c576430a07f1e5b6dd4b9f7b" + +[update] +[update.modrinth] +mod-id = "umyGl7zF" +version = "F2nzeC19" diff --git a/mods/rhino.pw.toml b/mods/rhino.pw.toml new file mode 100644 index 0000000..420b15b --- /dev/null +++ b/mods/rhino.pw.toml @@ -0,0 +1,13 @@ +name = "Rhino" +filename = "rhino-2101.2.7-build.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/sk9knFPE/versions/cQ4POTah/rhino-2101.2.7-build.85.jar" +hash-format = "sha512" +hash = "0a6c7f4410281aeb03b815ec03487a8e80a4d3dae013d81282e447bf9c08144ef57318af614ea6d40b7d9a8c25031c557890ec792a5895a82467c1643116f693" + +[update] +[update.modrinth] +mod-id = "sk9knFPE" +version = "cQ4POTah" diff --git a/pack.toml b/pack.toml index 794a3f1..0b4103a 100644 --- a/pack.toml +++ b/pack.toml @@ -5,7 +5,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "0ac64f7c753b6d3482090ec9ffe67e7a725c5d059bcea44d64b9c300371e1827" +hash = "4c1fb2f77bec68084a394604773f8e9d09841d019ef67175619a868910593946" [versions] minecraft = "1.21.1" From 54dcd974789f1d5c6ef768f9c04d2bc8739b6031 Mon Sep 17 00:00:00 2001 From: TretinV3 Date: Sun, 5 Jul 2026 16:25:10 +0200 Subject: [PATCH 2/2] fix world gen --- .../kubejs/textures/block/example_block.png | Bin 247 -> 0 bytes .../kubejs/textures/item/example_item.png | Bin 372 -> 0 bytes .../neoforge/biome_modifier/clouds.json | 6 -- .../worldgen/configured_feature/cloud.json | 17 ----- .../kubejs/worldgen/placed_feature/cloud.json | 11 --- .../configured_feature/oil_deposit.json | 2 +- .../worldgen/place_feature/oil_deposit.json | 27 +++++++ kubejs/server_scripts/main.js | 6 ++ kubejs/startup_scripts/main.js | 69 +++++++++++++++++- 9 files changed, 102 insertions(+), 36 deletions(-) delete mode 100644 kubejs/assets/kubejs/textures/block/example_block.png delete mode 100644 kubejs/assets/kubejs/textures/item/example_item.png delete mode 100644 kubejs/data/kubejs/neoforge/biome_modifier/clouds.json delete mode 100644 kubejs/data/kubejs/worldgen/configured_feature/cloud.json delete mode 100644 kubejs/data/kubejs/worldgen/placed_feature/cloud.json create mode 100644 kubejs/data/tfmg/worldgen/place_feature/oil_deposit.json diff --git a/kubejs/assets/kubejs/textures/block/example_block.png b/kubejs/assets/kubejs/textures/block/example_block.png deleted file mode 100644 index 58a8d4bd1daf23fa8ba1832ee489413df847fb43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFErF+}2Was#uPtD~YqP(p%HAtO^dE1TQ(gyiJQ0*ngECLX3DM+*2n zy^Bp54G&G364c0}mTsE5SVfqXg;}pPfaf}&u|OW{ogj{c1O|q02Spw8^?QARW;1xY L`njxgN@xNAFqk>d diff --git a/kubejs/assets/kubejs/textures/item/example_item.png b/kubejs/assets/kubejs/textures/item/example_item.png deleted file mode 100644 index bbb5bf701ab3f12feca2c8cbbd32a3e681532528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1en1E;5pV~B-+@}K|z?U_{@I9(!6cl=>b+`u8E z;3o5iNx(hQWrkx*H}{$bfr`&>r4QdV&zJ18t31r{-D%>~hxN939gM%@_A_37alkW# z#V7vPuil04Z&bPoNWWn%VF=<`+J&-1Q_JF6XXQW?5h(#m6Xt79Ppq2P=H>Sj1T`c z0|nLwUIth88SE@8XT1s#V?Mly+g#F7;*{&e=9dSh*s|sA7=BBhVr8Bnp)+eD;gas;_&#pEf8flV?q6dZaiY { //event.add('simulated:non_movable', 'kubejs:cloud') event.add('create:non_movable', 'kubejs:cloud') + + + event.add('kubejs:oil_replaced', 'tfmg:fossilstone') + event.add('kubejs:oil_replaced', 'tfmg:crude_oil') }) ServerEvents.tags('fluid', event => { @@ -26,6 +30,8 @@ ServerEvents.tags('fluid', event => { event.removeAllTagsFrom('createbigcannons:molten_steel') event.add('kubejs:removed', 'createbigcannons:molten_steel') + event.add('kubejs:oil_replaced', 'tfmg:crude_oil') + }) ServerEvents.tags('item', event => { diff --git a/kubejs/startup_scripts/main.js b/kubejs/startup_scripts/main.js index 8919035..6475165 100644 --- a/kubejs/startup_scripts/main.js +++ b/kubejs/startup_scripts/main.js @@ -19,6 +19,16 @@ StartupEvents.registry('block', event => { .transparent(true) }) +const $TagKey = Java.loadClass("net.minecraft.tags.TagKey"); +const $Registries = Java.loadClass("net.minecraft.core.registries.Registries"); +const $ResourceLocation = Java.loadClass("net.minecraft.resources.ResourceLocation"); + +const $BuiltInRegistries = Java.loadClass("net.minecraft.core.registries.BuiltInRegistries"); + +function convertBlockPos(pos) { + return pos.x + ',' + pos.y + ',' + pos.z +} + BlockEvents.modification(event => { event.modify('tfmg:oil_deposit', block => { @@ -26,5 +36,62 @@ BlockEvents.modification(event => { block.destroySpeed = 0 block.explosionResistance = 0 //block.requiredTool = false; + + let tag = $TagKey.create($Registries.BLOCK, $ResourceLocation.fromNamespaceAndPath("kubejs", "oil_replaced")); + block.randomTickCallback = (tick) => { + // console.log("Ticking: " + tick.block) + let level = tick.getLevel() + let server = tick.getServer() + let up = new BlockPos(tick.block.pos.x, tick.block.pos.y + 1, tick.block.pos.z); + let to_check = [convertBlockPos(up)]; + let where_changed = false; + + let visited = [] + // console.log(tag) + + while (to_check.length > 0) { + let poss = to_check.shift(); + let posa = poss.split(',').map(Number) + let pos = new BlockPos(posa[0], posa[1], posa[2]) + + // console.log("include " + poss) + // console.log(posa) + // console.log(pos) + // console.log(to_check.join(' | ')) + + if (visited.includes(poss)) continue; + + let block = level.getBlockState(pos) + let fluid = level.getFluidState(pos) + // console.log(block + " " + fluid) + + // if (block.toString().includes("tfmg:crude_oil") || fluid.is(tag)) { + if (block.is(tag) || fluid.is(tag)) { + where_changed = true; + // level.setBlock(up, Block.id("minecraft:emerald_block"), 1) + level.setBlockAndUpdate(pos, Block.id("kubejs:cloud")); + + // console.log("detected !") + to_check.push(pos.x + ',' + (pos.y + 1) + ',' + pos.z) + to_check.push(pos.x + ',' + (pos.y - 1) + ',' + pos.z) + to_check.push((pos.x + 1) + ',' + pos.y + ',' + pos.z) + to_check.push((pos.x - 1) + ',' + pos.y + ',' + pos.z) + to_check.push(pos.x + ',' + pos.y + ',' + (pos.z + 1)) + to_check.push(pos.x + ',' + pos.y + ',' + (pos.z - 1)) + } + visited.push(poss); + }; + + if (where_changed) { + // let placedFeature = $BuiltInRegistries.FEATURE.get($ResourceLocation.fromNamespaceAndPath("tfmg", "oil_deposit")); + + // // Place the feature at the given position + // if (placedFeature != null) { + // placedFeature.place(level, level.getChunkSource().getGenerator(), level.getRandom(), tick.block.pos); + // } + // console.log("done") + } + + } }) -}) \ No newline at end of file +})