From cc4e8edf51023025ee31f5eba2d205af16d4e779 Mon Sep 17 00:00:00 2001 From: Jika Date: Mon, 8 Dec 2025 20:41:13 +0100 Subject: [PATCH] Port gregitas certus to waffer chain --- .../textures/item/calculation_wafer.png | Bin 0 -> 6075 bytes .../kubejs/textures/item/certus_boule.png | Bin 0 -> 5887 bytes .../kubejs/textures/item/certus_wafer.png | Bin 0 -> 6135 bytes .../textures/item/engineering_wafer.png | Bin 0 -> 6102 bytes .../kubejs/textures/item/logic_wafer.png | Bin 0 -> 6094 bytes kubejs/assets/tfg/lang/en_us.json | 13 +- .../server_scripts/ae2/certus_wafer_chain.js | 112 ++++++++++++++++++ .../startup_scripts/ae2/certus_materials.js | 37 ++++++ kubejs/startup_scripts/ae2/materials.js | 4 +- .../gtceu/material_modification.certus.js | 7 ++ .../gtceu/material_modification.js | 2 +- kubejs/startup_scripts/tfg/element.certus.js | 8 ++ kubejs/startup_scripts/tfg/items.certus.js | 20 ++++ 13 files changed, 199 insertions(+), 4 deletions(-) create mode 100644 kubejs/assets/kubejs/textures/item/calculation_wafer.png create mode 100644 kubejs/assets/kubejs/textures/item/certus_boule.png create mode 100644 kubejs/assets/kubejs/textures/item/certus_wafer.png create mode 100644 kubejs/assets/kubejs/textures/item/engineering_wafer.png create mode 100644 kubejs/assets/kubejs/textures/item/logic_wafer.png create mode 100644 kubejs/server_scripts/ae2/certus_wafer_chain.js create mode 100644 kubejs/startup_scripts/ae2/certus_materials.js create mode 100644 kubejs/startup_scripts/gtceu/material_modification.certus.js create mode 100644 kubejs/startup_scripts/tfg/element.certus.js create mode 100644 kubejs/startup_scripts/tfg/items.certus.js diff --git a/kubejs/assets/kubejs/textures/item/calculation_wafer.png b/kubejs/assets/kubejs/textures/item/calculation_wafer.png new file mode 100644 index 0000000000000000000000000000000000000000..b2192d49600c2fcc9478ae5aa833791ae535fb73 GIT binary patch literal 6075 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 VKlH3UpMwGU`!4c1<{kajzX4-aRR#b6 literal 0 HcmV?d00001 diff --git a/kubejs/assets/kubejs/textures/item/certus_boule.png b/kubejs/assets/kubejs/textures/item/certus_boule.png new file mode 100644 index 0000000000000000000000000000000000000000..1706a26525644cc129b0a694dc4f4fae30c23c1a GIT binary patch literal 5887 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/kubejs/textures/item/engineering_wafer.png b/kubejs/assets/kubejs/textures/item/engineering_wafer.png new file mode 100644 index 0000000000000000000000000000000000000000..2a3b34bf1f30756074b074444917c043100f7c9c GIT binary patch literal 6102 zcmeHKXH-+!7Cx9zEmY|`F^GT~(g=_!paLRl5Cwa^Np2uQib)7X)KRhEFqRp`X9q<^ zo`M64AcLqVih@3MYzP95A~*;Nf&oJE&J9IaZ{B*#HE;fTSqZ0n``deed!GY0F*qn- zxRI?90AP6F48M8sw+Z$!(1YLKwQ3LmbT7w+E|Skfq6reIm@kM#3G!G8N4{b)j@JDxwJQ59CMR8m8v zW;v&R`svo39Tu7C={`kqg{61fa*a1EJX%q8V)Fxw;H|A^N=vHWzdkl`u0Lr#Ev<@G zAqz0g$s%u!Og-<#3EgTlp6~pjfj|$wpBq2^ppQ7UJY?rur#N-x`g8ZtOE(prD~cR( zg{Hp*tvb4K)2&Gfa(ja=a$fL*sZR@55%f}YpQ%dMhp!pon3O`uUwL6x%{H=}v@|~Y>FOQ(^bu$CB-2wW_e15pg$pvQ@Bl#S~&F`1kUHVs=|I>MQ*-Hf%eZ7~*HJ*8! zS@?++ldw@meR$h9z$WTp!roJ5o{!2x!VW}DT|FVsaYE*WmWT5ftUJ%Yus(MERa={g zc%%jQw|jq@bM9=^cZ!uW zKmT**v1Cn7>OS5ji7!p{rr!VkuGSne4Y|)65-jRwq<& zymATx(w9G;zW%UFg;iUe@Z3J{0-v8%&B@5#-(S>+c%G=sK&qB94q%2+Qpp4xqI z()L}FHe!j>{x#$y(j(7x|G1m*!<>TDqeIuAcD{K>Y;K0kDQ;iH_r%rQGBLaKN7vEz zWp#?+#FS|{yPpT}V`C;CPd&N!ohfgc^&{HpyPwcBuCDu%`?Gg-E9bSgnNnA9Jm(Re zZ{Q6>nR^`$XB2Lj@XCoaf?9MqO<_`#-aRZl`_3x6+Jby1^%O_zsAbo5!gkkI%C}{@ zAjza{cb%$*x$?m0r>yFh{^)gN@$R?+$9G5FY?m-XZlk9!XE{HLPv#_DA|4pg$ed=B zw{PWHY6GSCx1^Dp4=(mmoiFl9_RD~CMdmBUqsKSI%h$DA?9ZVepYVC@mS5*2EZrQm zYp71Z4pM4IDCJT15VI|bhq$bS^ogrR@9fx7n4dGzb1CwnNcMYQ zIM{N&c~Ul7UzWUc!I_t1YrEdR!%d0Szp0;HhtsM z-+9-MH2*xU%IalNc?R;KBe>FB`O;mazlQtT_k2_S^&2Zj80^p5esvdUy!JXFqARr2 zBXVhTQ$pobj>oY*%Fo<`l`E#KTRMdM+3+`Z(p zDq8wFy=&dxM%DY9ifola-`HAKo+e9Ul^toK;pXx-!P{LSfVcP}_G}hcEObS9Vh-vW zBb2~f9)QU{F%pCufyxOSG)y4!A~qKk5eWjG7jYqjO<_xX(Qv_xI4K$u7Zl2ki{LVO zL?3UX$uTTQAVlQ|Ax0P}lCfgEh+1A29AnF5B0&q0M|cqzv4aV|Vkt^+b9Hm2ko;o= z3L4Sdh%i~ocF3nwD5$3!kK~Ta#sQ5VWK>WhbQ7ra%Z@ClH9m-4-&%V^GH+*m+r}dYo0X90E#(M0qja7 za$r;#6%V7LFt`+V7zl%lP)TkKlu2TG(oqu4jmhM27<`mVXK1N-T-J24REWTG3WP`) zN|uPiv>TYOrBm zm}UPq8y+YgB1ilXISNTBG&+k)Wl@=-R0@mY#&V-fpwL*o0bq1&F;Bpc{apkyQ}l{7#yBDptNGInG1WjmStA9_sI0tQ?$(5`0Y032NVrol{U-rR>0RRJTw!zPSq`{@SDS-^@c+%QOS`&L#i&r&#rhSh#1Yst=q>%} zTY%FH0i7@eJPftHTLrp-228Ad2^yj2E*uWDDV2R0e95M>Ljw%khXDVs;UH9F57f|m zr@C8ftkP(}gVAHatBJ0l3levCtNRJG5%e~RW)6X4f!mLy_Cf&M{$nbTHn`Zuqs Bh&KQL literal 0 HcmV?d00001 diff --git a/kubejs/assets/kubejs/textures/item/logic_wafer.png b/kubejs/assets/kubejs/textures/item/logic_wafer.png new file mode 100644 index 0000000000000000000000000000000000000000..5222fb8863d5ccd8a1985e31c4b04c2923f763e5 GIT binary patch literal 6094 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index f394094b6..b10eb43a3 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -926,6 +926,11 @@ "item.tfg.flintlock_mechanism": "Flintlock Mechanism", "item.tfg.advanced_clockwork_mechanism": "Advanced Clockwork Mechanism", "item.tfg.certus_mechanism": "Certus Mechanism", + "item.tfg.certus_boule": "Certus Boule", + "item.tfg.certus_wafer": "Certus Wafer", + "item.tfg.engineering_wafer": "Engineering Wafer", + "item.tfg.calculation_wafer": "Calculation Wafer", + "item.tfg.logic_wafer": "Logic Wafer", "item.tfg.small_bullet_casing": "Small Bullet Casing", "item.tfg.large_bullet_casing": "Large Bullet Casing", "item.tfg.shell_bullet_casing": "Shell Bullet Casing", @@ -1158,6 +1163,12 @@ "material.tfg.refined_nuclear_residue": "Refined Nuclear Residue", "material.tfg.mars_air": "Mars Air", "material.tfg.liquid_mars_air": "Liquid Mars Air", + "material.tfg.certus": "Certus", + "material.tfg.trichlorocertane": "Trichlorocertane", + "material.tfg.dichlorocertane": "Dichlorocertane", + "material.tfg.chlorocertane": "Chlorocertane", + "material.tfg.certus_tetrachloride": "Certus Tetrachloride", + "material.tfg.certane": "Certane", "material.tfg.certus_regolith": "Certus Regolith", "material.tfg.goethe_regolith": "Goethe Regolith", "material.tfg.bright_regolith": "Bright Regolith", @@ -4857,4 +4868,4 @@ "quests.tfg_tips.tools_tips.concrete_roads.title": "Concrete Roads", "quests.tfg_tips.tools_tips.concrete_roads.subtitle": "Almost worth all the effort.", "quests.tfg_tips.tools_tips.concrete_roads.desc": "&6Wet concrete mix&r can be applied to base course to create roads which give a &b&l30%%&r&r bonus to movement speed. \n\n&4Be careful&r when creating concrete roads. There are a lot of rules to follow to make sure you don't end up with cracked or ruined surfaces. Consult the &3Field Guide&r for detailed instructions." -} \ No newline at end of file +} diff --git a/kubejs/server_scripts/ae2/certus_wafer_chain.js b/kubejs/server_scripts/ae2/certus_wafer_chain.js new file mode 100644 index 000000000..f877f7a2f --- /dev/null +++ b/kubejs/server_scripts/ae2/certus_wafer_chain.js @@ -0,0 +1,112 @@ +// Certus wafer processing chain extracted from the original AE2 recipes patch. +ServerEvents.recipes(event => { + // Remove legacy processor print recipes (inscriber and forming press variants) + event.remove({ id: 'ae2:inscriber/engineering_processor_print' }) + event.remove({ id: 'ae2:inscriber/calculation_processor_print' }) + event.remove({ id: 'ae2:inscriber/logic_processor_print' }) + event.remove({ id: 'ae2:printed_calculation_processor' }) + event.remove({ id: 'ae2:printed_calculation_processor_moon' }) + event.remove({ id: 'ae2:printed_engineering_processor' }) + event.remove({ id: 'ae2:printed_engineering_processor_moon' }) + event.remove({ id: 'ae2:printed_logic_processor' }) + event.remove({ id: 'ae2:printed_logic_processor_moon' }) + + // Certus chemistry + event.recipes.gtceu.electrolyzer('tfg:certus_quartz_electrolysis') + .itemInputs('ae2:certus_quartz_dust') + .itemOutputs('tfg:certus_dust', 'gtceu:silicon_dioxide_dust') + .duration(20 * 40) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:trichlorocertane') + .itemInputs('tfg:certus_dust') + .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 3000)) + .outputFluids(Fluid.of('tfg:trichlorocertane', 1000), Fluid.of('gtceu:hydrogen', 2000)) + .duration(40) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:dichlorocertane') + .inputFluids(Fluid.of('tfg:trichlorocertane', 2000)) + .outputFluids(Fluid.of('tfg:dichlorocertane', 1000)) + .itemOutputs('ae2:certus_quartz_crystal') + .duration(40) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:chlorocertane') + .inputFluids(Fluid.of('tfg:dichlorocertane', 2000)) + .outputFluids(Fluid.of('tfg:chlorocertane', 1000), Fluid.of('tfg:certus_tetrachloride', 1000)) + .duration(40) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:certane') + .inputFluids(Fluid.of('tfg:chlorocertane', 2000)) + .outputFluids(Fluid.of('tfg:certane', 1000), Fluid.of('tfg:dichlorocertane', 1000)) + .duration(40) + .EUt(GTValues.VA[GTValues.MV]) + + // Boule and wafer fabrication + event.recipes.gtceu.electric_blast_furnace('tfg:certus_boule') + .itemInputs('gtceu:silicon_wafer') + .inputFluids(Fluid.of('tfg:certane', 16000)) + .itemOutputs('tfg:certus_boule') + .blastFurnaceTemp(1800) + .duration(1600) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.cutter('tfg:cut_certus_boule_water') + .itemInputs('tfg:certus_boule') + .itemOutputs('16x tfg:certus_wafer') + .inputFluids(Fluid.of('minecraft:water', 45)) + .duration(600) + .EUt(48) + + event.recipes.gtceu.cutter('tfg:cut_certus_boule_distilled_water') + .itemInputs('tfg:certus_boule') + .itemOutputs('16x tfg:certus_wafer') + .inputFluids(Fluid.of('gtceu:distilled_water', 34)) + .duration(450) + .EUt(48) + + event.recipes.gtceu.cutter('tfg:cut_certus_boule_lubricant') + .itemInputs('tfg:certus_boule') + .itemOutputs('16x tfg:certus_wafer') + .inputFluids(Fluid.of('gtceu:lubricant', 11)) + .duration(300) + .EUt(48) + + event.recipes.gtceu.laser_engraver('tfg:engrave_engineering_certus') + .itemInputs('tfg:certus_wafer') + .notConsumable('ae2:engineering_processor_press') + .itemOutputs('tfg:engineering_wafer') + .duration(900) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.laser_engraver('tfg:engrave_calculation_certus') + .itemInputs('tfg:certus_wafer') + .notConsumable('ae2:calculation_processor_press') + .itemOutputs('tfg:calculation_wafer') + .duration(900) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.laser_engraver('tfg:engrave_logic_certus') + .itemInputs('tfg:certus_wafer') + .notConsumable('ae2:logic_processor_press') + .itemOutputs('tfg:logic_wafer') + .duration(900) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.cutter('tfg:cut_engineering_water') + .itemInputs('tfg:engineering_wafer') + .itemOutputs('8x ae2:printed_engineering_processor') + .inputFluids(Fluid.of('minecraft:water', 338)) + .duration(1800) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.cutter('tfg:cut_engineering_distilled_water') + .itemInputs('tfg:engineering_wafer') + .itemOutputs('8x ae2:printed_engineering_processor') + .inputFluids(Fluid.of('gtceu:distilled_water', 254)) + .duration(1350) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.cutter('tfg:cut_engineering_lubricant') diff --git a/kubejs/startup_scripts/ae2/certus_materials.js b/kubejs/startup_scripts/ae2/certus_materials.js new file mode 100644 index 000000000..7ff6590dc --- /dev/null +++ b/kubejs/startup_scripts/ae2/certus_materials.js @@ -0,0 +1,37 @@ +// priority: 0 +"use strict"; + +// Additional AE2 materials for the certus wafer chain +GTCEuStartupEvents.registry('gtceu:material', event => { + event.create('tfg:certus') + .gem() + .dust() + .iconSet(GTMaterialIconSet.CERTUS) + .color(0xc5e3de) + .element(GTElements.get('certus')) + + event.create('tfg:trichlorocertane') + .liquid() + .color(0xb1d9f0) + .components('1x tfg:certus', '1x hydrogen', '3x chlorine') + + event.create('tfg:dichlorocertane') + .liquid() + .color(0x90cfd1) + .components('1x tfg:certus', '2x hydrogen', '2x chlorine') + + event.create('tfg:chlorocertane') + .liquid() + .color(0xccede3) + .components('1x tfg:certus', '3x hydrogen', '1x chlorine') + + event.create('tfg:certus_tetrachloride') + .liquid() + .color(0xccede3) + .components('1x tfg:certus', '4x chlorine') + + event.create('tfg:certane') + .liquid() + .color(0xccede3) + .components('1x tfg:certus', '4x hydrogen') +}) diff --git a/kubejs/startup_scripts/ae2/materials.js b/kubejs/startup_scripts/ae2/materials.js index d4ab8056d..1d7e47d35 100644 --- a/kubejs/startup_scripts/ae2/materials.js +++ b/kubejs/startup_scripts/ae2/materials.js @@ -11,7 +11,7 @@ const registerAE2Materials = (event) => { GTMaterialFlags.CRYSTALLIZABLE, GTMaterialFlags.DISABLE_DECOMPOSITION ) - .components('1x unknown', '1x nether_quartz', '1x certus_quartz') + .components('1x nether_quartz', '1x certus_quartz') .color(0x8f5ccb) .secondaryColor(0x252f5a) -} \ No newline at end of file +} diff --git a/kubejs/startup_scripts/gtceu/material_modification.certus.js b/kubejs/startup_scripts/gtceu/material_modification.certus.js new file mode 100644 index 000000000..a6df4d860 --- /dev/null +++ b/kubejs/startup_scripts/gtceu/material_modification.certus.js @@ -0,0 +1,7 @@ +// priority: 0 + +// Adjust formulas for certus-based materials +GTCEuStartupEvents.materialModification(event => { + GTMaterials.get('tfg:fluix').setFormula('?(CtSiO2)(SiO2)', true) + GTMaterials.CertusQuartz.setFormula('CtSiO2', true) +}) diff --git a/kubejs/startup_scripts/gtceu/material_modification.js b/kubejs/startup_scripts/gtceu/material_modification.js index f31a4a31c..0f20edf9d 100644 --- a/kubejs/startup_scripts/gtceu/material_modification.js +++ b/kubejs/startup_scripts/gtceu/material_modification.js @@ -439,7 +439,7 @@ const registerGTCEuMaterialModification = (event) => { let zirconium_diboride = TFGHelpers.getMaterial('zirconium_diboride'); zirconium_diboride.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(4500, "high", GTValues.VA[GTValues.EV], 2700, GTValues.VA[GTValues.HV], 12.5*20)); - GTMaterials.CertusQuartz.setComponents('1x unknown', '1x silicon', '2x oxygen') + GTMaterials.CertusQuartz.setComponents('1x certus', '1x silicon', '2x oxygen') GTMaterials.GraniteRed.setComponents([]) GTMaterials.GraniteRed.setFormula("?") } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/element.certus.js b/kubejs/startup_scripts/tfg/element.certus.js new file mode 100644 index 000000000..861d39943 --- /dev/null +++ b/kubejs/startup_scripts/tfg/element.certus.js @@ -0,0 +1,8 @@ +// priority: 0 + +GTCEuStartupEvents.registry('gtceu:element', event => { + event.create('certus') + .protons(14) + .neutrons(18) + .symbol('Ct') +}) diff --git a/kubejs/startup_scripts/tfg/items.certus.js b/kubejs/startup_scripts/tfg/items.certus.js new file mode 100644 index 000000000..8d433101d --- /dev/null +++ b/kubejs/startup_scripts/tfg/items.certus.js @@ -0,0 +1,20 @@ +// priority: 0 +"use strict"; + +// Certus wafer chain items +StartupEvents.registry('item', event => { + event.create('tfg:certus_boule') + .texture('kubejs:item/certus_boule') + + event.create('tfg:certus_wafer') + .texture('kubejs:item/certus_wafer') + + event.create('tfg:engineering_wafer') + .texture('kubejs:item/engineering_wafer') + + event.create('tfg:calculation_wafer') + .texture('kubejs:item/calculation_wafer') + + event.create('tfg:logic_wafer') + .texture('kubejs:item/logic_wafer') +})