shMonifactory/kubejs/startup_scripts/gregtech_material_registry/endgame.js
2025-09-14 20:52:18 +03:00

139 lines
6.3 KiB
JavaScript

/**
* Endgame Material Registry.
* Used for registering Gregtech Materials
* that are related post-tank content.
*/
// ? Keep in sync with
// ? https://github.com/Nomi-CEu/Nomi-Labs/blob/main/src/main/java/com/nomiceu/nomilabs/gregtech/material/registry/register/LabsEndgame.java
/*
Note: Some GTCEuM recipes handlers calculate duration based on mass.
This led to the infamous recipe bug where Infinity Screws in the Lathe had integer limit duration,
because the Infinity material had infinite mass.
*/
GTCEuStartupEvents.registry("gtceu:element", event => {
event.create("omnium")
.protons(130)
.neutrons(234)
.symbol("Nm");
event.create("infinity")
.protons(168)
.neutrons(316)
.symbol("∞");
event.create("monium")
.protons(169)
.neutrons(317)
.symbol("Mu");
event.create("crystal_matrix")
.protons(6)
.neutrons(6)
.symbol("C*");
event.create("eltz")
.protons(15)
.neutrons(15)
.symbol("Ez")
})
// Omnium, Infinity, and Monium have animations and thus custom material icon sets.
GTCEuStartupEvents.registry("gtceu:material_icon_set", event => {
event.create("omnium").parent(GTMaterialIconSet.SHINY)
event.create("sculk_alloy").parent(GTMaterialIconSet.DULL)
event.create("infinity").parent(GTMaterialIconSet.SHINY)
event.create("eltz").parent(GTMaterialIconSet.SHINY)
event.create("monium").parent(GTMaterialIconSet.SHINY)
event.create("dilithium").parent(GTMaterialIconSet.DULL)
event.create("mana").parent(GTMaterialIconSet.SHINY)
})
GTCEuStartupEvents.registry("gtceu:material", event => {
event.create("crystal_matrix")
.ingot().fluid()
.element(GTElements.get("crystal_matrix"))
.color(0x66ffff)
.blastTemp(6800, "highest")
.iconSet("shiny")
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_FOIL, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_DENSE);
event.create("omnium")
.ingot()
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).customStill())
.element(GTElements.get("omnium"))
.color(0xffffff).iconSet("omnium")
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_SMALL_GEAR)
.cableProperties(GTValues.V[GTValues.UEV], 64, 8, false)
event.create("omnic_acid")
.dust()
.color(0xff00ff)
.iconSet("shiny")
.components("5x carbon", "4x hydrogen", "3x oxygen", "4x omnium")
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
event.create("sculk_superconductor")
.ingot().fluid()
.element(GTElements.get("sculk_superconductor"))
.color(0xffffff)
.iconSet("shiny")
.flags(GTMaterialFlags.NO_SMELTING, GTMaterialFlags.NO_SMASHING)
.cableProperties(GTValues.V[GTValues.UHV], 8, 0, true)
event.create("netherite_scrap")
.dust().ingot().ore(1, 3)
.color(0x6D473E)
.iconSet("dull")
.addOreByproducts(GTMaterials.Obsidian, GTMaterials.Obsidian, GTMaterials.RarestMetalMixture)
.ignoredTagPrefixes([TagPrefix.nugget, TagPrefix.block, TagPrefix.dustTiny, TagPrefix.rawOre, TagPrefix.rawOreBlock])
event.create("activated_netherite")
.ingot()
.element(GTElements.get("activated_netherite"))
.color(0x4C484C)
.iconSet("dull")
.cableProperties(GTValues.V[GTValues.UEV], 16, 0, true)
.fluidPipeProperties(11000, 8500, true, false, true, true)
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_FINE_WIRE, GTMaterialFlags.GENERATE_ROTOR, GTMaterialFlags.GENERATE_SPRING)
event.create("sculk_bioalloy")
.ingot()
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).customStill())
.color(0xffffff)
.iconSet("sculk_alloy")
.flags(GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_RECIPES, GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_RING, GTMaterialFlags.GENERATE_ROUND, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_SMALL_GEAR, GTMaterialFlags.GENERATE_SPRING, GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.NO_SMELTING, GTMaterialFlags.NO_WORKING)
event.create("infinity")
.ingot()
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).customStill())
.element(GTElements.get("infinity"))
.color(0xffffff)
.iconSet("infinity")
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_SMALL_GEAR)
event.create("eltz")
.ingot()
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).customStill())
.element(GTElements.get("eltz"))
.color(0xffffff)
.iconSet("eltz")
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_LONG_ROD, GTMaterialFlags.GENERATE_RING, GTMaterialFlags.GENERATE_ROUND, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_SMALL_GEAR, GTMaterialFlags.GENERATE_SPRING, GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.PHOSPHORESCENT)
event.create("eltic_actinate")
.gem()
.color(0xbb9966).secondaryColor(0x881105)
.iconSet("dilithium")
.components("4x eltz", "1x actinium", "3x oxygen")
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION, GTMaterialFlags.NO_SMASHING)
event.create("actinium_iron_oxide")
.dust()
.color(0xC3D1FF) // Old actinium color for fun
.components("1x actinium", "4x iron", "3x oxygen")
event.create("monium")
.ingot()
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).customStill())
.element(GTElements.get("monium"))
.color(0xffffff)
.iconSet("monium")
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_SPRING)
.cableProperties(GTValues.V[GTValues.MAX], 134217727, 0, true)
})