From 38eb2d70e525a48c5a15c9361de2eeab762c423a Mon Sep 17 00:00:00 2001 From: GameStar <56610486+BlueBoat29@users.noreply.github.com> Date: Thu, 2 Oct 2025 12:32:04 -0500 Subject: [PATCH] Fission Insulations (#1943) * stuff * eh --- kubejs/assets/tfg/lang/en_us.json | 2 + .../models/block/aes_insulation_frame.json | 6 +++ .../tfg/models/block/glacian_wool_frame.json | 6 +++ .../textures/block/aes_insulation_frame.png | Bin 0 -> 4857 bytes .../tfg/textures/block/glacian_wool_frame.png | Bin 0 -> 4919 bytes kubejs/server_scripts/tfg/events.js | 47 ++++++++++++++++++ kubejs/startup_scripts/tfg/blocks.js | 13 +++++ 7 files changed, 74 insertions(+) create mode 100644 kubejs/assets/tfg/models/block/aes_insulation_frame.json create mode 100644 kubejs/assets/tfg/models/block/glacian_wool_frame.json create mode 100644 kubejs/assets/tfg/textures/block/aes_insulation_frame.png create mode 100644 kubejs/assets/tfg/textures/block/glacian_wool_frame.png diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index 1a713896b..8e8846be7 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -631,6 +631,8 @@ "block.tfg.titanium_concrete_bricks": "Titanium-Rebar Concrete Bricks", "block.tfg.titanium_concrete_bricks_small": "Small Titanium-Rebar Concrete Bricks", "block.tfg.titanium_concrete_bricks_square": "Square Titanium-Rebar Concrete Bricks", + "block.tfg.glacian_wool_frame": "Framed Glacian Wool", + "block.tfg.aes_insulation_frame": "Framed AES Insulation", "block.tfg.nuclear_turbine": "Nuclear Steam Turbine", "block.tfg.evaporation_tower": "Evaporation Tower", "block.tfg.growth_monitor": "Growth Monitor", diff --git a/kubejs/assets/tfg/models/block/aes_insulation_frame.json b/kubejs/assets/tfg/models/block/aes_insulation_frame.json new file mode 100644 index 000000000..9f6311f21 --- /dev/null +++ b/kubejs/assets/tfg/models/block/aes_insulation_frame.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfg:block/aes_insulation_frame" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/glacian_wool_frame.json b/kubejs/assets/tfg/models/block/glacian_wool_frame.json new file mode 100644 index 000000000..5049b2fcf --- /dev/null +++ b/kubejs/assets/tfg/models/block/glacian_wool_frame.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfg:block/glacian_wool_frame" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/aes_insulation_frame.png b/kubejs/assets/tfg/textures/block/aes_insulation_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..36dcc891f9c81cb10f4fff9b0dbc47aac03ec724 GIT binary patch literal 4857 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 Oa8*RKvTA%v{(k^g9vx-? literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/glacian_wool_frame.png b/kubejs/assets/tfg/textures/block/glacian_wool_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c7f980e69dd51672113bc12e5d462b9063823b GIT binary patch literal 4919 zcmeHKX;2f{77i$)EGno7h#KP-aI!BXF=0zsq6Q)c#BH>bbV3hgF=r~`;Tc{c$SYNqOyRd4>8s!n&``@f`Zya{Ckabju)~mf1Se@y_Ap{NUGw?H5Z-Z9rV#W8kF4(+Yd0+{a+7)**bpSjgvp3NJ#in51YHGYke~#Y{x5?O?e~MLnVp!|L+zPVf zm&jvF4>C4P+xC5cJ5Ej)2Rgb)kH_pY)!az9Q04oqyYA_hD-kwRFIztoPhls$^zCj~ zQcCAF&sgv5*PE$I&Kk02*`9{uFWP1G>H^FMW#gRIo>sz&w%j+0g_)DA`1O?+;}+(2 zrPNNuzS=i;!_$zY#Q{Y_%L{ILk4wo}f<4{Rd03xaXNwI!yZD^d$dPN(sc^}v@>P3I zX?pLVJzYbBr|Y)TCf!^I5-%PB2^J-q$B}7NL`bfY!bGD=3o;Lb;rbf2kSqp9u~Jxx zsCl^dGZi>2BIn^2GDKvNmJdfGA&EM8L1L&xmKY;r%W=Lwc3dL|5U5}j!WvbvYCXru z!&!Ja;MqJ(!eK2CG=_(Z5{a>VjSj}riF6{F5NJf=sW=}yELSI2aKZ&a{S@Ghhl@s0 zEr&!h7z{)Mji}KnNfb7lO(IiCR4M@=2>Jvy3KG(2~JIk@%B^Spp@Z(ps#5*n^NL zqWCPR>Z_>*@XEfozSmg9QcPH^r7Sp*tSGiv^e61capW(OK?+e=3op400O??VCD0LQ1rpSv6&ByWRi1kg-jSA8IIH+EXmw4K1RzW z{Yek51u&q+0K2|1(7He;Bzdm> zzRLAQ3VadxYj*wLd3&;SDN}Y+eByh|cCY>8BupGEBZ~14E!P5wB$Ra%k zWA9|Xtdix+bHJc2Dij6U{%&V&O|*fpyE$So)=z{2e+jELFjti35ixdsg`xPL#kU&v zDKE(rZ)FQ(C;r6rO0!QM&9GYLnL66Ee)yCh_U~-Gc4(N>`K_t=Bhu>iLmkxC>Hqdh zORcq!=~Z5D|BK74ebjVKXnkmfiKJ(7l!9F2*$C^QNY?ri7nVVQl7% zJwWE-`94DJu8gp^KXDdmQoGxFUGcDRabcZDmj4{$&o@lpTz={<)Gu|A|0fN1t>!YV zrOH(B=>3KV9d?*avbfZYmv;*c#?~I2^2Kh=WhSnzAG+7+@$|`IMLzfUNJ^YGh%i4K z3_V&_#y>@y=CHH7Hn?Nq_K*idW=UcM>3@`z=EshH(oMYH@Uvf2)UFBMngz4J-Fxm> zO`UH(KRYj^Yh%cj#Sz)}tT?rA-xV%dy{MvkwQFv}gpRA5Tg#I=6EGKwTUR*TKTD~f z{NZZJZxz98>Bd95lW((bryS0_+t%K7GwiWndJ4rjHzKbvtsO;F?}MCUQZuyAUd7-a z2j)#R+QXPFQFSjI%Hmt>D@W(A9zJ&8E~mSXKWv+JCsy5tX}puYCodo`+?3$&921nA zv(DjEz<6S-6xaNuIw%kX&qq_xB z^~Uv`-xfSMzm6rsD|W2Un|j)Qocdw8=oIZ~L+4EV!kWY}NeS(C%PWqr8Dq@bS)2c^ z$@$>j$a@cZY)`r08^ufLIJDBsr?kPRxrI7|RMX?MoVRMni4%3t+dI>4rHxAJH8oaS zzwXF-i=AOK=DfuQ&D*PT@bU>Q6FhM1Xs|D^I$BX*cs6-^eDTHG+kIy~dON-(a+r(; zy|P}IF234=clz}O@%360ev|8{pyN$0m@w`n=lxEcE2bBY+RfWM54ff6nUv6*H6n6* z$eH*m4=-wu|Es*;u-TPQ?z+@DXo}_>tFIy)@T_}rWctJ{gjVvem-Yy1PMqYaDqS=1 b=cB8VTVm!{m9mBxo6AEO7%Dgtup;%pt4&4# literal 0 HcmV?d00001 diff --git a/kubejs/server_scripts/tfg/events.js b/kubejs/server_scripts/tfg/events.js index c6242903e..1873ff235 100644 --- a/kubejs/server_scripts/tfg/events.js +++ b/kubejs/server_scripts/tfg/events.js @@ -561,6 +561,45 @@ function transformBlockWithTool(event, inputBlock, outputBlock, toolId, damageTo server.runCommandSilent(`execute in ${dim} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`); }; +/** + * Function for replacing a block with another block by crouch-right-clicking with a tool and receiving an item. + * + * If input and output is null recipe will just return. + * + * @param {*} event + * @param {string} inputBlock -Block ID to be replaced. Accepts a Tag, but not recommended. + * @param {string} outputBlock -Block ID of the replacement. + * @param {string} outputItem -Item ID of item to receive + * @param {number} outputCount -Number of items to be returned + * @param {string} toolId -Item ID of the tool. + * @param {boolean} damageTool -Sets wether the tool should be damaged on use. + * @param {string} soundId -Sound ID to be used as the flair sound effect. Can be null. + * @param {string} particleId -SimpleParticleType ID to be used as the flair particle. Can be null. + * @param {boolean} copyBlockstate - Sets wether the blockstate should be copied from the input block to the output block. + */ +function transformBlockWithToolReturn(event, inputBlock, outputBlock, outputItem, outputCount, toolId, damageTool, soundId, particleId, copyBlockstate) { + const { server, item, player, block } = event; + + if (!inputBlock || !outputBlock) return; + + if (inputBlock.startsWith('#')) { + if (!block.hasTag(inputBlock.substring(1))) return; + } else { + if (block.id.toString() !== inputBlock) return; + } + + if (toolId.startsWith('#')) { + if (item.isEmpty() || !player.mainHandItem.hasTag(toolId.substring(1))) return; + } else { + if (item.isEmpty() || player.mainHandItem.id !== toolId) return; + } + + transformBlockWithTool(event, inputBlock, outputBlock, toolId, damageTool, soundId, particleId, copyBlockstate) + + const dim = block.level.name.getString(); + server.runCommandSilent(`execute in ${dim} run summon item ${player.x} ${player.y} ${player.z} {Item:{id:'${outputItem}', Count:${outputCount}b}}`); + +} /** * Function for replacing a block with another block by crouch-right-clicking with an item. * @@ -697,6 +736,14 @@ BlockEvents.rightClicked(event => { transformBlockWithTool(event, c.mossy_wall, c.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); transformBlockWithItem(event, c.mossy_wall, c.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); } + + //Misc Events + transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool_frame', 'tfg:glacian_wool', true, 2, 'block.wool.place', 'minecraft:happy_villager', true); + transformBlockWithToolReturn(event, 'tfg:glacian_wool_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:glacian_wool', 2,'#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); + + transformBlockWithItem(event, 'gtceu:incoloy_ma_956_frame', 'tfg:aes_insulation_frame', 'tfg:aes_insulation_roll', true, 1, 'block.wool.place', 'minecraft:happy_villager', true); + transformBlockWithToolReturn(event, 'tfg:aes_insulation_frame', 'gtceu:incoloy_ma_956_frame', 'tfg:aes_insulation_roll', 1, '#forge:tools/wire_cutters', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); + }); // Makes scythes, hoes, and knives take damage when cutting grass diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index bbc2c6aff..d99058588 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -210,6 +210,19 @@ const registerTFGBlocks = (event) => { .tagBlock('minecraft:mineable/pickaxe') .tagBoth('tfg:titanium_concrete') + // #region insulation + event.create('tfg:glacian_wool_frame') + .soundType('copper') + .hardness(4) + .resistance(6) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('minecraft:mineable/wrench') + event.create('tfg:aes_insulation_frame') + .soundType('copper') + .hardness(5) + .resistance(6) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('minecraft:mineable/wrench') // #region Decorative vases global.MINECRAFT_DYE_NAMES.forEach(color => {