Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify GT crafting component definitions. #1301

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
198 changes: 96 additions & 102 deletions kubejs/startup_scripts/gregtech_crafting_components.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,17 @@

/**
* Unlike how screret showcases the functionality of this event in his discord messge:
* https://discord.com/channels/914926812948234260/1229854271613436066/1279802878822711407
* there is no "Map.of()" to create map objects out of varargs.
*
* Worse still, I could not find an analog to that function.
* Therefore we declare empty maps and then populate them afterwards.
*/
const Map = Java.loadClass("java.util.Map");

GTCEuStartupEvents.craftingComponents(event => {

//Make LuV+ electrolyzer wires not osmium for funsies :)
let wireElectricMap = {};
wireElectricMap[GTValues.LuV] = UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.VanadiumGallium);
wireElectricMap[GTValues.ZPM] = UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.NaquadahAlloy);
wireElectricMap[GTValues.UV] = UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.get('sculk_superconductor'));
wireElectricMap[GTValues.UHV] = UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.get('activated_netherite'));
wireElectricMap[GTValues.UEV] = UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.Holmium);
wireElectricMap[GTValues.UIV] = UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.get('monium'));
event.modify(CraftingComponent.WIRE_ELECTRIC, wireElectricMap)
event.modify(CraftingComponent.WIRE_ELECTRIC, Map.of(
GTValues.LuV, UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.VanadiumGallium),
GTValues.ZPM, UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.NaquadahAlloy),
GTValues.UV, UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.get('sculk_superconductor')),
GTValues.UHV, UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.get('activated_netherite')),
GTValues.UEV, UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.Holmium),
GTValues.UIV, UnificationEntry(TagPrefix.wireGtSingle, GTMaterials.get('monium')),
));

//Omnium & Holmium for wires/cables
let wireCableComponentPrefixes = [
Expand All @@ -33,11 +26,11 @@ GTCEuStartupEvents.craftingComponents(event => {
]

wireCableComponentPrefixes.forEach(prefixComponentPair => {
let wireMap = {};
wireMap[GTValues.UEV] = UnificationEntry(prefixComponentPair[0], GTMaterials.get('omnium'));
wireMap[GTValues.UIV] = UnificationEntry(prefixComponentPair[1], GTMaterials.Holmium);
event.modify(prefixComponentPair[2], wireMap)
})
event.modify(prefixComponentPair[2], Map.of(
GTValues.UEV, UnificationEntry(prefixComponentPair[0], GTMaterials.get('omnium')),
GTValues.UIV, UnificationEntry(prefixComponentPair[1], GTMaterials.Holmium),
));
});

//Netherite, Holmium, and Monium for tier up wires/cables
//Currently useless because GT only autogenerates transformer recipes up to UV.
Expand All @@ -50,12 +43,12 @@ GTCEuStartupEvents.craftingComponents(event => {
]

wireCableTierUpComponentPrefixes.forEach(prefixComponentPair => {
let wireTierUpMap = {};
wireTierUpMap[GTValues.UHV] = UnificationEntry(prefixComponentPair[0], GTMaterials.get('activated_netherite'));
wireTierUpMap[GTValues.UEV] = UnificationEntry(prefixComponentPair[0], GTMaterials.Holmium);
wireTierUpMap[GTValues.UIV] = UnificationEntry(prefixComponentPair[0], GTMaterials.get('monium'));
event.modify(prefixComponentPair[1], wireTierUpMap)
})
event.modify(prefixComponentPair[1], Map.of(
GTValues.UHV, UnificationEntry(prefixComponentPair[0], GTMaterials.get('activated_netherite')),
GTValues.UEV, UnificationEntry(prefixComponentPair[0], GTMaterials.Holmium),
GTValues.UIV, UnificationEntry(prefixComponentPair[0], GTMaterials.get('monium')),
));
});

// Pipes
let pipeComponentPrefixes = [
Expand All @@ -65,40 +58,40 @@ GTCEuStartupEvents.craftingComponents(event => {
]

pipeComponentPrefixes.forEach(prefixComponentPair => {
let pipeMap = {};
pipeMap[GTValues.UHV] = UnificationEntry(prefixComponentPair[0], GTMaterials.Neutronium);
pipeMap[GTValues.UEV] = UnificationEntry(prefixComponentPair[0], GTMaterials.get('activated_netherite'));
pipeMap[GTValues.UIV] = UnificationEntry(prefixComponentPair[0], GTMaterials.Holmium);
event.modify(prefixComponentPair[1], pipeMap)
})
event.modify(prefixComponentPair[1], Map.of(
GTValues.UHV, UnificationEntry(prefixComponentPair[0], GTMaterials.Neutronium),
GTValues.UEV, UnificationEntry(prefixComponentPair[0], GTMaterials.get('activated_netherite')),
GTValues.UIV, UnificationEntry(prefixComponentPair[0], GTMaterials.Holmium),
));
});

// Glass
let glassMap = {};
glassMap[GTValues.UHV] = Item.of('gtceu:fusion_glass');
glassMap[GTValues.UEV] = Item.of('gtceu:fusion_glass');
glassMap[GTValues.UIV] = Item.of('gtceu:fusion_glass');
event.modify(CraftingComponent.GLASS, glassMap)
event.modify(CraftingComponent.GLASS, Map.of(
GTValues.UHV, Item.of('gtceu:fusion_glass'),
GTValues.UEV, Item.of('gtceu:fusion_glass'),
GTValues.UIV, Item.of('gtceu:fusion_glass'),
));

// Plates
let plateMap = {};
plateMap[GTValues.UEV] = UnificationEntry(TagPrefix.plate, GTMaterials.get('omnium'))
plateMap[GTValues.UIV] = UnificationEntry(TagPrefix.plate, GTMaterials.get('infinity'))
plateMap[GTValues.MAX] = UnificationEntry(TagPrefix.plate, GTMaterials.get('holmium'))
event.modifyUnificationEntry(CraftingComponent.PLATE, plateMap)
event.modifyUnificationEntry(CraftingComponent.PLATE, Map.of(
GTValues.UEV, UnificationEntry(TagPrefix.plate, GTMaterials.get('omnium')),
GTValues.UIV, UnificationEntry(TagPrefix.plate, GTMaterials.get('infinity')),
GTValues.MAX, UnificationEntry(TagPrefix.plate, GTMaterials.get('holmium')),
));

// Hull plates
let hullPlateMap = {};
plateMap[GTValues.UEV] = UnificationEntry(TagPrefix.plate, GTMaterials.get('polyethyl_cyanoacrylate'))
plateMap[GTValues.UIV] = UnificationEntry(TagPrefix.plate, GTMaterials.get('polyethyl_cyanoacrylate'))
plateMap[GTValues.MAX] = UnificationEntry(TagPrefix.plate, GTMaterials.get('polyethyl_cyanoacrylate'))
event.modifyUnificationEntry(CraftingComponent.HULL_PLATE, hullPlateMap)
event.modifyUnificationEntry(CraftingComponent.HULL_PLATE, Map.of(
GTValues.UEV, UnificationEntry(TagPrefix.plate, GTMaterials.get('polyethyl_cyanoacrylate')),
GTValues.UIV, UnificationEntry(TagPrefix.plate, GTMaterials.get('polyethyl_cyanoacrylate')),
GTValues.MAX, UnificationEntry(TagPrefix.plate, GTMaterials.get('polyethyl_cyanoacrylate')),
));

// Rotors
let rotorMap = {};
rotorMap[GTValues.UHV] = UnificationEntry(TagPrefix.rotor, GTMaterials.Neutronium)
rotorMap[GTValues.UEV] = UnificationEntry(TagPrefix.rotor, GTMaterials.get('activated_netherite'))
rotorMap[GTValues.UIV] = UnificationEntry(TagPrefix.rotor, GTMaterials.Holmium)
event.modifyUnificationEntry(CraftingComponent.ROTOR, rotorMap)
event.modifyUnificationEntry(CraftingComponent.ROTOR, Map.of(
GTValues.UHV, UnificationEntry(TagPrefix.rotor, GTMaterials.Neutronium),
GTValues.UEV, UnificationEntry(TagPrefix.rotor, GTMaterials.get('activated_netherite')),
GTValues.UIV, UnificationEntry(TagPrefix.rotor, GTMaterials.Holmium),
));

// TODO: Sawblades (May require making tools for the material)

Expand All @@ -109,69 +102,70 @@ GTCEuStartupEvents.craftingComponents(event => {
]

heatingCoilComponentPrefixes.forEach(prefixComponentPair => {
let heaterMap = {};
heaterMap[GTValues.UHV] = UnificationEntry(prefixComponentPair[0], GTMaterials.get('omnium'));
heaterMap[GTValues.UEV] = UnificationEntry(prefixComponentPair[0], GTMaterials.get('omnium'));
heaterMap[GTValues.UIV] = UnificationEntry(prefixComponentPair[0], GTMaterials.get('omnium'));
event.modify(prefixComponentPair[1], heaterMap)
})
event.modify(prefixComponentPair[1], Map.of(
GTValues.UHV, UnificationEntry(prefixComponentPair[0], GTMaterials.get('omnium')),
GTValues.UEV, UnificationEntry(prefixComponentPair[0], GTMaterials.get('omnium')),
GTValues.UIV, UnificationEntry(prefixComponentPair[0], GTMaterials.get('omnium')),
));
});

// Electric Coils
let electricCoilMap = {};
electricCoilMap[GTValues.UHV] = UnificationEntry(TagPrefix.wireGtHex, GTMaterials.get('sculk_superconductor'))
electricCoilMap[GTValues.UEV] = UnificationEntry(TagPrefix.wireGtHex, GTMaterials.get('activated_netherite'))
electricCoilMap[GTValues.UIV] = UnificationEntry(TagPrefix.wireGtHex, GTMaterials.get('holmium'))
event.modifyUnificationEntry(CraftingComponent.COIL_ELECTRIC, electricCoilMap)
event.modifyUnificationEntry(CraftingComponent.COIL_ELECTRIC, Map.of(
GTValues.UHV, UnificationEntry(TagPrefix.wireGtHex, GTMaterials.get('sculk_superconductor')),
GTValues.UEV, UnificationEntry(TagPrefix.wireGtHex, GTMaterials.get('activated_netherite')),
GTValues.UIV, UnificationEntry(TagPrefix.wireGtHex, GTMaterials.get('holmium')),
));

// Magnetic Rods
let magneticRodMap = {};
magneticRodMap[GTValues.UV] = UnificationEntry(TagPrefix.rodLong, GTMaterials.SamariumMagnetic)
magneticRodMap[GTValues.UHV] = UnificationEntry(TagPrefix.rodLong, GTMaterials.get('magnetic_terbium'))
magneticRodMap[GTValues.UEV] = UnificationEntry(TagPrefix.rodLong, GTMaterials.get('magnetic_terbium'))
magneticRodMap[GTValues.UIV] = UnificationEntry(TagPrefix.rodLong, GTMaterials.get('magnetic_terbium'))
event.modifyUnificationEntry(CraftingComponent.STICK_MAGNETIC, magneticRodMap)
event.modifyUnificationEntry(CraftingComponent.STICK_MAGNETIC, Map.of(
GTValues.UV, UnificationEntry(TagPrefix.rodLong, GTMaterials.SamariumMagnetic),
GTValues.UHV, UnificationEntry(TagPrefix.rodLong, GTMaterials.get('magnetic_terbium')),
GTValues.UEV, UnificationEntry(TagPrefix.rodLong, GTMaterials.get('magnetic_terbium')),
GTValues.UIV, UnificationEntry(TagPrefix.rodLong, GTMaterials.get('magnetic_terbium')),
));

// Distillation Rods
let distillationRodMap = {};
distillationRodMap[GTValues.UHV] = UnificationEntry(TagPrefix.spring, GTMaterials.Actinium)
distillationRodMap[GTValues.UEV] = UnificationEntry(TagPrefix.spring, GTMaterials.get('sculk_bioalloy'))
distillationRodMap[GTValues.UIV] = UnificationEntry(TagPrefix.spring, GTMaterials.get('eltz'))
event.modifyUnificationEntry(CraftingComponent.STICK_DISTILLATION, distillationRodMap)
event.modifyUnificationEntry(CraftingComponent.STICK_DISTILLATION, Map.of(
GTValues.UHV, UnificationEntry(TagPrefix.spring, GTMaterials.Actinium),
GTValues.UEV, UnificationEntry(TagPrefix.spring, GTMaterials.get('sculk_bioalloy')),
GTValues.UIV, UnificationEntry(TagPrefix.spring, GTMaterials.get('eltz')),
));

// Electromagnetic Rods
let electromagneticRodMap = {};
electromagneticRodMap[GTValues.IV] = UnificationEntry(TagPrefix.rod, GTMaterials.Neodymium)
electromagneticRodMap[GTValues.LuV] = UnificationEntry(TagPrefix.rod, GTMaterials.Samarium)
electromagneticRodMap[GTValues.ZPM] = UnificationEntry(TagPrefix.rod, GTMaterials.Samarium)
electromagneticRodMap[GTValues.UV] = UnificationEntry(TagPrefix.rod, GTMaterials.Samarium)
electromagneticRodMap[GTValues.UHV] = UnificationEntry(TagPrefix.rod, GTMaterials.Terbium)
electromagneticRodMap[GTValues.UEV] = UnificationEntry(TagPrefix.rod, GTMaterials.Terbium)
electromagneticRodMap[GTValues.UIV] = UnificationEntry(TagPrefix.rod, GTMaterials.Terbium)
event.modifyUnificationEntry(CraftingComponent.STICK_ELECTROMAGNETIC, electromagneticRodMap)
event.modifyUnificationEntry(CraftingComponent.STICK_ELECTROMAGNETIC, Map.of(
GTValues.IV, UnificationEntry(TagPrefix.rod, GTMaterials.Neodymium),
GTValues.LuV, UnificationEntry(TagPrefix.rod, GTMaterials.Samarium),
GTValues.ZPM, UnificationEntry(TagPrefix.rod, GTMaterials.Samarium),
GTValues.UV, UnificationEntry(TagPrefix.rod, GTMaterials.Samarium),
GTValues.UHV, UnificationEntry(TagPrefix.rod, GTMaterials.Terbium),
GTValues.UEV, UnificationEntry(TagPrefix.rod, GTMaterials.Terbium),
GTValues.UIV, UnificationEntry(TagPrefix.rod, GTMaterials.Terbium),
));

// Chem reactor pipe ingredient
let reactorPipeMap = {};
reactorPipeMap[GTValues.UHV] = UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polybenzimidazole)
reactorPipeMap[GTValues.UEV] = UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polybenzimidazole)
reactorPipeMap[GTValues.UIV] = UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polybenzimidazole)
event.modifyUnificationEntry(CraftingComponent.PIPE_REACTOR, reactorPipeMap)
event.modifyUnificationEntry(CraftingComponent.PIPE_REACTOR, Map.of(
GTValues.UHV, UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.Polybenzimidazole),
GTValues.UEV, UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polybenzimidazole),
GTValues.UIV, UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.Polybenzimidazole),
));

// PIC ingredient
let powerComponentMap = {};
powerComponentMap[GTValues.UEV] = Item.of('kubejs:uxpic_chip')
powerComponentMap[GTValues.UIV] = Item.of('kubejs:uxpic_chip')
event.modifyItem(CraftingComponent.POWER_COMPONENT, powerComponentMap)
event.modifyItem(CraftingComponent.POWER_COMPONENT, Map.of(
GTValues.UEV, Item.of('kubejs:uxpic_chip'),
GTValues.UIV, Item.of('kubejs:uxpic_chip'),
));

// Spring
let springMap = {};
springMap[GTValues.UEV] = UnificationEntry(TagPrefix.spring, GTMaterials.get('activated_netherite'))
springMap[GTValues.UIV] = UnificationEntry(TagPrefix.spring, GTMaterials.get('holmium'))
event.modifyUnificationEntry(CraftingComponent.SPRING, springMap)
event.modifyUnificationEntry(CraftingComponent.SPRING, Map.of(
GTValues.UEV, UnificationEntry(TagPrefix.spring, GTMaterials.get('activated_netherite')),
GTValues.UIV, UnificationEntry(TagPrefix.spring, GTMaterials.get('holmium')),
));

// Frame
let frameMap = {};
frameMap[GTValues.UHV] = UnificationEntry(TagPrefix.frameGt, GTMaterials.Neutronium)
frameMap[GTValues.UEV] = UnificationEntry(TagPrefix.frameGt, GTMaterials.get('omnium'))
frameMap[GTValues.UIV] = UnificationEntry(TagPrefix.frameGt, GTMaterials.get('infinity'))
event.modifyUnificationEntry(CraftingComponent.FRAME, frameMap)
})
event.modifyUnificationEntry(CraftingComponent.FRAME, Map.of(
GTValues.UHV, UnificationEntry(TagPrefix.frameGt, GTMaterials.Neutronium),
GTValues.UEV, UnificationEntry(TagPrefix.frameGt, GTMaterials.get('omnium')),
GTValues.UIV, UnificationEntry(TagPrefix.frameGt, GTMaterials.get('infinity')),
));
});