init
This commit is contained in:
commit
d8d0e9d536
2567 changed files with 167778 additions and 0 deletions
15
kubejs/startup_scripts/Custom_Conduits.js
Normal file
15
kubejs/startup_scripts/Custom_Conduits.js
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
/**
|
||||
* Define custom EnderIO conduit tiers and their flow rate
|
||||
* using KubeJS-EnderIO.
|
||||
*/
|
||||
EnderIOEvents.conduits(event => {
|
||||
event.registerEnergyConduit("conductive_conduit", "Conductive Iron Energy Conduit", 512)
|
||||
event.registerEnergyConduit("energetic_conduit", "Energetic Alloy Energy Conduit", 2048)
|
||||
event.registerEnergyConduit("vibrant_conduit", "Vibrant Alloy Energy Conduit", 8192)
|
||||
event.registerEnergyConduit("endsteel_conduit", "End Steel Energy Conduit", 32768)
|
||||
event.registerEnergyConduit("lumium_conduit", "Lumium Energy Conduit", 131072)
|
||||
event.registerEnergyConduit("signalum_conduit", "Signalum Energy Conduit", 524288)
|
||||
event.registerEnergyConduit("enderium_conduit", "Enderium Energy Conduit", 2097152)
|
||||
event.registerEnergyConduit("cryolobus_conduit", "Cryolobus Energy Conduit", 8388608)
|
||||
event.registerEnergyConduit("sculk_superconductor_conduit", "Sculk Superconductor Energy Conduit", 134217728)
|
||||
})
|
||||
25
kubejs/startup_scripts/_initial.js
Normal file
25
kubejs/startup_scripts/_initial.js
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// priority: 999
|
||||
// ! This script loads first before the other startup scripts
|
||||
/**
|
||||
* This script loads first before the other startup scripts.
|
||||
* Put your utility functions or global vars here so that you can access them in other scripts
|
||||
*/
|
||||
|
||||
// Spoof our custom items' mod name
|
||||
Platform.mods.kubejs.name = "Moni Labs"
|
||||
|
||||
/**
|
||||
* Capitalizes the first char of the string
|
||||
* @param {string} word
|
||||
* @returns {string}
|
||||
*/
|
||||
const capitalize = (word) => (word[0].toUpperCase() + word.substring(1));
|
||||
|
||||
/**
|
||||
* Creates a placeholder item
|
||||
* @param {Registry.Item} registry
|
||||
* @param {ResourceLocation_ | string} name - item (id)
|
||||
*/
|
||||
const placeHolder = (registry, name) => {
|
||||
registry.create(name).texture("kubejs:item/barrier").displayName(`§eT. B. I. §r- §d${name.split("_").map(v => capitalize(v))}`);
|
||||
}
|
||||
144
kubejs/startup_scripts/_packmode.js
Normal file
144
kubejs/startup_scripts/_packmode.js
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
// priority: 1000
|
||||
/**
|
||||
* Pack mode management.
|
||||
* Handles the interpretation of packmode.json to determine the global pack mode.
|
||||
* This determines the values of global booleans like doHNN, doHarderProcessing, and doMonicoins.
|
||||
* These are used in other scripts to define pack mode-specific behavior.
|
||||
*/
|
||||
|
||||
// Packmode config path & name
|
||||
const configName = "config/packmode.json";
|
||||
|
||||
|
||||
// Default mode.json
|
||||
const defaultConfig = {
|
||||
mode: "Normal",
|
||||
message: "This tells KubeJS what mode the pack is currently in, packmode is changed in pack-mode-switcher"
|
||||
};
|
||||
|
||||
|
||||
// Handle the possibility that there may not be a mode.json
|
||||
let config = JsonIO.read(configName);
|
||||
if (!config || !config.mode) {
|
||||
JsonIO.write(configName, defaultConfig);
|
||||
console.log(`Created new ${configName}`);
|
||||
config = defaultConfig;
|
||||
}
|
||||
|
||||
let invalidConfig = function (configMode) {
|
||||
JsonIO.write(configName, defaultConfig);
|
||||
config.mode = defaultConfig.mode;
|
||||
console.error(`Overwrote ${configName}, because the mode ${configMode} was found. Valid modes are 'Normal', 'Hard' and 'Expert'.`);
|
||||
}
|
||||
|
||||
let packMode = config.mode;
|
||||
switch (packMode) {
|
||||
case "Normal": case "Hard": case "Expert": break;
|
||||
default: invalidConfig(); packMode = config.mode;
|
||||
}
|
||||
|
||||
|
||||
// String representation of the current packmode
|
||||
global.packmode = packMode;
|
||||
|
||||
// [DEPRECATED] Global mode booleans. Note that isHardMode is also true if the pack is in Expert
|
||||
/**
|
||||
* True if the modpack is in Normal Mode.
|
||||
* @deprecated as of 3/7/2025, Monifactory version 0.12.0.
|
||||
* Create or or use a feature-specific boolean instead.
|
||||
* See KubeJS/startup_scripts/_packmode.js for examples.
|
||||
*/
|
||||
global.isNormalMode = packMode == "Normal";
|
||||
|
||||
/**
|
||||
* True if the modpack is in Hard or Expert Mode.
|
||||
* @deprecated as of 3/7/2025, Monifactory version 0.12.0.
|
||||
* Create or or use a feature-specific boolean instead.
|
||||
* See KubeJS/startup_scripts/_packmode.js for examples.
|
||||
*/
|
||||
global.isExpertMode = packMode == "Expert";
|
||||
|
||||
/**
|
||||
* True if the modpack is in Hard Mode.
|
||||
* @deprecated as of 3/7/2025, Monifactory version 0.12.0.
|
||||
* Create or or use a feature-specific boolean instead.
|
||||
* See KubeJS/startup_scripts/_packmode.js for examples.
|
||||
*/
|
||||
global.isHardMode = (packMode == "Hard") || global.isExpertMode;
|
||||
|
||||
|
||||
/**
|
||||
* True if the modpack is in Normal Mode.
|
||||
* @deprecated as of 3/7/2025, Monifactory version 0.12.0.
|
||||
* Create or or use a feature-specific boolean instead.
|
||||
* See KubeJS/startup_scripts/_packmode.js for examples.
|
||||
*/
|
||||
const isNormalMode = !!global.isNormalMode;
|
||||
|
||||
/**
|
||||
* True if the modpack is in Hard or Expert Mode.
|
||||
* @deprecated as of 3/7/2025, Monifactory version 0.12.0.
|
||||
* Create or or use a feature-specific boolean instead.
|
||||
* See KubeJS/startup_scripts/_packmode.js for examples.
|
||||
*/
|
||||
const isExpertMode = !!global.isExpertMode;
|
||||
|
||||
/**
|
||||
* True if the modpack is in Hard Mode.
|
||||
* @deprecated as of 3/7/2025, Monifactory version 0.12.0.
|
||||
* Create or or use a feature-specific boolean instead.
|
||||
* See KubeJS/startup_scripts/_packmode.js for examples.
|
||||
*/
|
||||
const isHardMode = !!global.isHardMode;
|
||||
|
||||
/*
|
||||
Global feature toggle booleans. Shared across client and server.
|
||||
If you want to alter some mode-specific features on your instance, do so here.
|
||||
However, be warned that if you do so then no support will be provided for any issues you may encounter.
|
||||
On the flipside, if you create your own fix for an issue you encounter, then any Pull Requests with such a fix are welcome.
|
||||
*/
|
||||
global.doAssemblyLineOrderingWarning = packMode == "Hard" || packMode == "Expert";
|
||||
global.doBoilers = packMode == "Normal" || packMode == "Hard";
|
||||
global.doCompacting = packMode == "Normal" || packMode == "Hard";
|
||||
global.doConduits = packMode == "Normal" || packMode == "Hard";
|
||||
global.doConverters = packMode == "Normal" || packMode == "Hard";
|
||||
global.doHarderNaqFuel = packMode == "Hard" || packMode == "Expert";
|
||||
global.doHarderPrintedSilicon = packMode == "Expert";
|
||||
global.doHarderProcessing = packMode == "Hard" || packMode == "Expert";
|
||||
global.doHarderRecipes = packMode == "Hard" || packMode == "Expert";
|
||||
global.doHardGlassRecipesWarning == packMode == "Hard" || packMode == "Expert";
|
||||
global.doHatchRevert = packMode == "Normal" || packMode == "Hard";
|
||||
global.doHNN = packMode == "Normal";
|
||||
global.doLaserIO = packMode == "Normal" || packMode == "Hard";
|
||||
global.doMeowniPlush = packMode == "Hard" || packMode == "Expert";
|
||||
global.doMonicoins = packMode == "Normal";
|
||||
global.doSnad = packMode == "Normal" || packMode == "Hard";
|
||||
global.doSteamAge = packMode == "Hard" || packMode == "Expert";
|
||||
global.doStoneline = packMode == "Hard" || packMode == "Expert";
|
||||
global.doFluxbore = packMode == "Normal" || packMode == "Hard";
|
||||
global.doHarderFluxBore = packMode == "Normal" || packMode == "Hard";
|
||||
global.doQuantumCoolant = packMode == "Hard" || packMode == "Expert";
|
||||
|
||||
|
||||
// The !! is to cast the types into boolean since they got transformed into Java Objects from being globals
|
||||
const doAssemblyLineOrderingWarning = !!global.doAssemblyLineOrderingWarning;
|
||||
const doBoilers = !!global.doBoilers;
|
||||
const doCompacting = !!global.doCompacting;
|
||||
const doConduits = !!global.doConduits;
|
||||
const doConverters = !!global.doConverters;
|
||||
const doHarderPrintedSilicon = !!global.doHarderPrintedSilicon;
|
||||
const doHarderProcessing = !!global.doHarderProcessing;
|
||||
const doHarderRecipes = !!global.doHarderRecipes;
|
||||
const doHarderNaqFuel = !!global.doHarderNaqFuel;
|
||||
const doHardGlassRecipesWarning = !!global.doHardGlassRecipesWarning;
|
||||
const doHatchRevert = !!global.doHatchRevert;
|
||||
const doHNN = !!global.doHNN;
|
||||
const doLaserIO = !!global.doLaserIO;
|
||||
const doMeowniPlush = !!global.doMeowniPlush;
|
||||
const doMonicoins = !!global.doMonicoins;
|
||||
const doSnad = !!global.doSnad;
|
||||
const doSteamAge = !!global.doSteamAge;
|
||||
const doStoneline = !!global.doStoneline;
|
||||
const doFluxbore = !!global.doFluxbore;
|
||||
const doHarderFluxBore = !!global.doHarderFluxBore;
|
||||
const doQuantumCoolant = !!global.doQuantumCoolant;
|
||||
23
kubejs/startup_scripts/active_transformer.js
Normal file
23
kubejs/startup_scripts/active_transformer.js
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
/**
|
||||
* Lowers the tiering of Active Transformers from LuV to IV - script 1 of 2.
|
||||
* - Replaces the Superconducting coil in the core of the Active Transformer with High Power casing
|
||||
*/
|
||||
let ActiveTransformerMachine = Java.loadClass("com.gregtechceu.gtceu.common.machine.multiblock.electric.ActiveTransformerMachine")
|
||||
let SupplierMemoizer = Java.loadClass("com.gregtechceu.gtceu.utils.SupplierMemoizer")
|
||||
|
||||
// Function<MultiblockMachineDefinition, BlockPattern>
|
||||
let active_transformer_pattern = (definition) => FactoryBlockPattern.start()
|
||||
.aisle("XXX", "XXX", "XXX")
|
||||
.aisle("XXX", "XCX", "XXX")
|
||||
.aisle("XXX", "XSX", "XXX")
|
||||
.where("S", Predicates.controller(Predicates.blocks(GTMultiMachines.ACTIVE_TRANSFORMER.get())))
|
||||
.where("X", Predicates.blocks(GTBlocks.HIGH_POWER_CASING.get()).setMinGlobalLimited(12)
|
||||
.or(ActiveTransformerMachine.getHatchPredicates()))
|
||||
.where("C", Predicates.blocks(GTBlocks.HIGH_POWER_CASING.get())
|
||||
.or(Predicates.blocks(GTBlocks.SUPERCONDUCTING_COIL.get())))
|
||||
.build()
|
||||
|
||||
// Set the pattern for Active Transformer
|
||||
StartupEvents.postInit(event => {
|
||||
GTMultiMachines.ACTIVE_TRANSFORMER.setPatternFactory(SupplierMemoizer.memoize(() => active_transformer_pattern.apply(GTMultiMachines.ACTIVE_TRANSFORMER)))
|
||||
})
|
||||
70
kubejs/startup_scripts/deprecation_pipeline.js
Normal file
70
kubejs/startup_scripts/deprecation_pipeline.js
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
// priority: 10
|
||||
/**
|
||||
* This file offers utility functions to deprecate old items & fluids or change IDs
|
||||
* in such a way that they can be replaced without players' items or fluids getting voided.
|
||||
*
|
||||
* To use this:
|
||||
* 1. Remove references to the item or fluid in every way possible, including
|
||||
* tags, recipes, tooltip, definition, lang, or other extra functionality.
|
||||
* 2. Use either of the utility functions below to specify the old and new IDs.
|
||||
* If the item or fluid is created through KJS, delete the regular definition.
|
||||
* The functions below create a replacement that is automatically substituted for the old one
|
||||
* if you provide the correct ID.
|
||||
* 3. When fully removing the deprecated item or fluid, delete the call to the utility function to fully remove the old item.
|
||||
*
|
||||
* TODO: add functionality for blocks
|
||||
*/
|
||||
|
||||
/**
|
||||
* @type {Dictionary<ResourceLocation, ResourceLocation>}
|
||||
* Dictionary of deprecated items and their replacements.
|
||||
* Used for tooltip & recipe generation for the deprecation pipeline.
|
||||
*/
|
||||
global.deprecatedItems = {};
|
||||
|
||||
/**
|
||||
* @type {Dictionary<ResourceLocation, ResourceLocation>}
|
||||
* Dictionary of deprecated fluids and their replacements.
|
||||
* Used for tooltip & recipe generation for the deprecation pipeline.
|
||||
*/
|
||||
global.deprecatedFluids = {};
|
||||
|
||||
/**
|
||||
* For a given item ID:
|
||||
* Creates an item with that ID if none exists
|
||||
* Creates a recipe to convert the old item to the new item
|
||||
* Applies a tooltip to the old item indicating that it's deprecated
|
||||
*
|
||||
* This allows the player to load their world and the generated item will replace the deprecated item,
|
||||
* which can then be converted to the new, replacement item.
|
||||
* @param {ResourceLocation} oldItemID
|
||||
* @param {ResourceLocation} replacementItemID
|
||||
* @param {String} oldItemName
|
||||
*/
|
||||
function deprecateItem(oldItemID, replacementItemID, oldItemName) {
|
||||
StartupEvents.registry("item", event => {
|
||||
if(!Item.exists(oldItemID))
|
||||
event.create(oldItemID).displayName(`${oldItemName} §c[DEPRECATED]`);
|
||||
})
|
||||
global.deprecatedItems[oldItemID] = replacementItemID
|
||||
}
|
||||
|
||||
/**
|
||||
* For a given fluid ID:
|
||||
* Creates an fluid with that ID if none exists
|
||||
* Creates a recipe to convert the old fluid to the new fluid
|
||||
* Applies a tooltip to the old fluid indicating that it's deprecated
|
||||
*
|
||||
* This allows the player to load their world and the generated fluid will replace the deprecated fluid,
|
||||
* which can then be converted to the new, replacement fluid.
|
||||
* @param {ResourceLocation} oldFluidID
|
||||
* @param {ResourceLocation} replacementFluidID
|
||||
* @param {String} oldFluidName
|
||||
*/
|
||||
function deprecateFluid(oldFluidID, replacementFluidID, oldFluidName) {
|
||||
StartupEvents.registry("fluid", event => {
|
||||
if(!Fluid.exists(oldFluidID))
|
||||
event.create(oldFluidID).displayName(`${oldFluidName} §c[DEPRECATED]`);
|
||||
})
|
||||
global.deprecatedFluids[oldFluidID] = replacementFluidID
|
||||
}
|
||||
30
kubejs/startup_scripts/deprecations.js
Normal file
30
kubejs/startup_scripts/deprecations.js
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
/**
|
||||
* All deprecated items and fluids.
|
||||
* See deprecation_pipeline.js in this folder to see how the process works.
|
||||
*/
|
||||
|
||||
// Exoskeleton Legs
|
||||
deprecateItem("kubejs:lv_exoskeleton_legs", "gtexolegs:lv_exoskeleton_legs", "LV Exoskeleton Legs")
|
||||
deprecateItem("kubejs:mv_exoskeleton_legs", "gtexolegs:mv_exoskeleton_legs", "MV Exoskeleton Legs")
|
||||
deprecateItem("kubejs:hv_exoskeleton_legs", "gtexolegs:hv_exoskeleton_legs", "HV Exoskeleton Legs")
|
||||
deprecateItem("kubejs:ev_exoskeleton_legs", "gtexolegs:ev_exoskeleton_legs", "EV Exoskeleton Legs")
|
||||
deprecateItem("kubejs:iv_exoskeleton_legs", "gtexolegs:iv_exoskeleton_legs", "IV Exoskeleton Legs")
|
||||
|
||||
// Traveller's Boots
|
||||
deprecateItem("travellersbootsreloaded:travellers_boots_tier1", "gtexolegs:lv_exoskeleton_legs", "Traveller's Boots Tier 1")
|
||||
deprecateItem("travellersbootsreloaded:travellers_boots_tier2", "gtexolegs:mv_exoskeleton_legs", "Traveller's Boots Tier 2")
|
||||
deprecateItem("travellersbootsreloaded:travellers_boots_tier3", "gtexolegs:hv_exoskeleton_legs", "Traveller's Boots Tier 3")
|
||||
deprecateItem("travellersbootsreloaded:travellers_boots_tier4", "gtexolegs:ev_exoskeleton_legs", "Traveller's Boots Tier 4")
|
||||
deprecateItem("travellersbootsreloaded:travellers_boots_tier5", "gtexolegs:iv_exoskeleton_legs", "Traveller's Boots Tier 5")
|
||||
|
||||
// Primal Mana
|
||||
deprecateFluid("kubejs:molten_primal_mana", "gtceu:mana", "Primal Mana")
|
||||
|
||||
// Dilithium
|
||||
deprecateItem("kubejs:dilithium_crystal", "gtceu:dilithium_gem", "Dilithium")
|
||||
|
||||
// Ancient Debris
|
||||
deprecateItem("kubejs:crushed_ancient_debris", "gtceu:crushed_netherite_scrap_ore", "Crushed Ancient Debris")
|
||||
|
||||
// Saline Antiseptic (rename after typo)
|
||||
deprecateFluid("gtceu:saline_antisceptic", "gtceu:saline_antiseptic", "Saline Antiseptic")
|
||||
71
kubejs/startup_scripts/excrafting_schema.js
Normal file
71
kubejs/startup_scripts/excrafting_schema.js
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
/**
|
||||
* KubeJS recipe schema for use in defining custom ExtendedCrafting recipes.
|
||||
* Applications of these can be seen in server_scripts/extendedcrafting.js
|
||||
*/
|
||||
const $RecipeSchema = Java.loadClass("dev.latvian.mods.kubejs.recipe.schema.RecipeSchema");
|
||||
const $ShapedRecipeSchema = Java.loadClass("dev.latvian.mods.kubejs.recipe.schema.minecraft.ShapedRecipeSchema");
|
||||
const $ShapelessRecipeSchema = Java.loadClass("dev.latvian.mods.kubejs.recipe.schema.minecraft.ShapelessRecipeSchema");
|
||||
const $ItemComponents = Java.loadClass("dev.latvian.mods.kubejs.recipe.component.ItemComponents");
|
||||
const $NumberComponent = Java.loadClass("dev.latvian.mods.kubejs.recipe.component.NumberComponent");
|
||||
|
||||
StartupEvents.recipeSchemaRegistry(event => {
|
||||
// Extended Crafting
|
||||
event.register("extendedcrafting:shaped_ender_crafter", new $RecipeSchema(
|
||||
$ShapedRecipeSchema.RESULT,
|
||||
$ShapedRecipeSchema.PATTERN,
|
||||
$ShapedRecipeSchema.KEY,
|
||||
$NumberComponent.INT.key("craftingTime").defaultOptional().preferred("craftingTime")
|
||||
)
|
||||
);
|
||||
event.register("extendedcrafting:shapeless_ender_crafter", new $RecipeSchema(
|
||||
$ShapelessRecipeSchema.RESULT,
|
||||
$ShapelessRecipeSchema.INGREDIENTS,
|
||||
$NumberComponent.INT.key("craftingTime").defaultOptional().preferred("craftingTime")
|
||||
)
|
||||
);
|
||||
event.register("extendedcrafting:combination", new $RecipeSchema(
|
||||
$ItemComponents.OUTPUT.key("result"),
|
||||
$ItemComponents.INPUT.key("input"),
|
||||
$ItemComponents.UNWRAPPED_INPUT_ARRAY.key("ingredients"),
|
||||
$NumberComponent.INT.key("powerCost").optional(500000).preferred("powerCost"),
|
||||
$NumberComponent.INT.key("powerRate").defaultOptional().preferred("powerRate")
|
||||
)
|
||||
);
|
||||
event.register("extendedcrafting:compressor", new $RecipeSchema(
|
||||
$ItemComponents.OUTPUT.key("result"),
|
||||
$ItemComponents.INPUT.key("catalyst"),
|
||||
$ItemComponents.INPUT.key("ingredient"),
|
||||
$NumberComponent.INT.key("inputCount"),
|
||||
$NumberComponent.INT.key("powerCost").optional(5000000).preferred("powerCost"),
|
||||
$NumberComponent.INT.key("powerRate").defaultOptional().preferred("powerRate")
|
||||
)
|
||||
);
|
||||
event.register("extendedcrafting:shaped_flux_crafter", new $RecipeSchema(
|
||||
$ShapedRecipeSchema.RESULT,
|
||||
$ShapedRecipeSchema.PATTERN,
|
||||
$ShapedRecipeSchema.KEY,
|
||||
$NumberComponent.INT.key("powerRequired").optional(100000).preferred("powerRequired"),
|
||||
$NumberComponent.INT.key("powerRate").defaultOptional().preferred("powerRate")
|
||||
)
|
||||
);
|
||||
event.register("extendedcrafting:shapeless_flux_crafter", new $RecipeSchema(
|
||||
$ShapelessRecipeSchema.RESULT,
|
||||
$ShapelessRecipeSchema.INGREDIENTS,
|
||||
$NumberComponent.INT.key("powerRequired").optional(100000).preferred("powerRequired"),
|
||||
$NumberComponent.INT.key("powerRate").defaultOptional().preferred("powerRate")
|
||||
)
|
||||
);
|
||||
event.register("extendedcrafting:shaped_table", new $RecipeSchema(
|
||||
$ShapedRecipeSchema.RESULT,
|
||||
$ShapedRecipeSchema.PATTERN,
|
||||
$ShapedRecipeSchema.KEY,
|
||||
$NumberComponent.INT.key("tier").defaultOptional().preferred("tier")
|
||||
)
|
||||
);
|
||||
event.register("extendedcrafting:shapeless_table", new $RecipeSchema(
|
||||
$ShapelessRecipeSchema.RESULT,
|
||||
$ShapelessRecipeSchema.INGREDIENTS,
|
||||
$NumberComponent.INT.key("tier").defaultOptional().preferred("tier")
|
||||
)
|
||||
);
|
||||
});
|
||||
180
kubejs/startup_scripts/gregtech_crafting_components.js
Normal file
180
kubejs/startup_scripts/gregtech_crafting_components.js
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
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)
|
||||
|
||||
// Omnium & Holmium for wires/cables
|
||||
let wireCableComponentPrefixes = [
|
||||
[TagPrefix.wireGtQuadruple, TagPrefix.wireGtQuadruple, CraftingComponent.WIRE_QUAD],
|
||||
[TagPrefix.wireGtOctal, TagPrefix.wireGtOctal, CraftingComponent.WIRE_OCT],
|
||||
[TagPrefix.wireGtHex, TagPrefix.wireGtHex, CraftingComponent.WIRE_HEX],
|
||||
[TagPrefix.cableGtSingle, TagPrefix.wireGtSingle, CraftingComponent.CABLE],
|
||||
[TagPrefix.cableGtDouble, TagPrefix.wireGtDouble, CraftingComponent.CABLE_DOUBLE],
|
||||
[TagPrefix.cableGtQuadruple, TagPrefix.wireGtQuadruple, CraftingComponent.CABLE_QUAD],
|
||||
[TagPrefix.cableGtOctal, TagPrefix.wireGtOctal, CraftingComponent.CABLE_OCT],
|
||||
// [TagPrefix.cableGtHex, TagPrefix.wireGtHex, CraftingComponent.CABLE_HEX] // Seems borked? Causes crashes when uncommented
|
||||
]
|
||||
|
||||
wireCableComponentPrefixes.forEach(prefixComponentPair => {
|
||||
let wireMap = {};
|
||||
wireMap[GTValues.UEV] = UnificationEntry(prefixComponentPair[0], GTMaterials.get("omnium"));
|
||||
wireMap[GTValues.UIV] = UnificationEntry(prefixComponentPair[1], GTMaterials.Holmium);
|
||||
wireMap[GTValues.MAX] = UnificationEntry(prefixComponentPair[1], GTMaterials.get("monium"));
|
||||
event.modify(prefixComponentPair[2], wireMap)
|
||||
})
|
||||
|
||||
// Netherite, Holmium, and Monium for tier up wires/cables
|
||||
// Currently useless because GT only autogenerates transformer recipes up to UV.
|
||||
let wireCableTierUpComponentPrefixes = [
|
||||
[TagPrefix.wireGtSingle, CraftingComponent.CABLE_TIER_UP],
|
||||
[TagPrefix.wireGtDouble, CraftingComponent.CABLE_TIER_UP_DOUBLE],
|
||||
[TagPrefix.wireGtQuadruple, CraftingComponent.CABLE_TIER_UP_QUAD],
|
||||
// [TagPrefix.wireGtOctal, CraftingComponent.CABLE_TIER_UP_OCT], // Seems borked. Same here as above.
|
||||
[TagPrefix.wireGtHex, CraftingComponent.CABLE_TIER_UP_HEX]
|
||||
]
|
||||
|
||||
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)
|
||||
})
|
||||
|
||||
// Pipes
|
||||
let pipeComponentPrefixes = [
|
||||
[TagPrefix.pipeNormalFluid, CraftingComponent.PIPE_NORMAL],
|
||||
[TagPrefix.pipeLargeFluid, CraftingComponent.PIPE_LARGE],
|
||||
[TagPrefix.pipeNonupleFluid, CraftingComponent.PIPE_NONUPLE]
|
||||
]
|
||||
|
||||
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)
|
||||
})
|
||||
|
||||
// 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)
|
||||
|
||||
// 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("monium"))
|
||||
event.modifyUnificationEntry(CraftingComponent.PLATE, plateMap)
|
||||
|
||||
// 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)
|
||||
|
||||
// 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)
|
||||
|
||||
// TODO: Sawblades (May require making tools for the material)
|
||||
|
||||
// Resistive heating wires (typically, these match the EBF coil for that tier)
|
||||
let heatingCoilComponentPrefixes = [
|
||||
[TagPrefix.wireGtDouble, CraftingComponent.COIL_HEATING],
|
||||
[TagPrefix.wireGtQuadruple, CraftingComponent.COIL_HEATING_DOUBLE],
|
||||
]
|
||||
|
||||
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)
|
||||
})
|
||||
|
||||
// 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)
|
||||
|
||||
// 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)
|
||||
|
||||
// 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)
|
||||
|
||||
// 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)
|
||||
|
||||
// Chem reactor pipe ingredient
|
||||
let reactorPipeMap = {};
|
||||
reactorPipeMap[GTValues.UHV] = UnificationEntry(TagPrefix.pipeNormalFluid, GTMaterials.get("polyethyl_cyanoacrylate"))
|
||||
reactorPipeMap[GTValues.UEV] = UnificationEntry(TagPrefix.pipeLargeFluid, GTMaterials.get("polyethyl_cyanoacrylate"))
|
||||
reactorPipeMap[GTValues.UIV] = UnificationEntry(TagPrefix.pipeHugeFluid, GTMaterials.get("polyethyl_cyanoacrylate"))
|
||||
event.modifyUnificationEntry(CraftingComponent.PIPE_REACTOR, reactorPipeMap)
|
||||
|
||||
// PIC ingredient
|
||||
let powerComponentMap = {};
|
||||
powerComponentMap[GTValues.UEV] = Item.of("kubejs:uxpic_chip")
|
||||
powerComponentMap[GTValues.UIV] = Item.of("kubejs:uxpic_chip")
|
||||
powerComponentMap[GTValues.MAX] = Item.of("kubejs:uxpic_chip")
|
||||
event.modifyItem(CraftingComponent.POWER_COMPONENT, powerComponentMap)
|
||||
|
||||
// Spring
|
||||
let springMap = {};
|
||||
springMap[GTValues.UEV] = UnificationEntry(TagPrefix.spring, GTMaterials.get("activated_netherite"))
|
||||
springMap[GTValues.UIV] = UnificationEntry(TagPrefix.spring, GTMaterials.get("holmium"))
|
||||
springMap[GTValues.MAX] = UnificationEntry(TagPrefix.spring, GTMaterials.get("monium"))
|
||||
event.modifyUnificationEntry(CraftingComponent.SPRING, springMap)
|
||||
|
||||
// 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"))
|
||||
frameMap[GTValues.MAX] = UnificationEntry(TagPrefix.frameGt, GTMaterials.get("monium"))
|
||||
event.modifyUnificationEntry(CraftingComponent.FRAME, frameMap)
|
||||
})
|
||||
201
kubejs/startup_scripts/gregtech_material_registry/chemicals.js
Normal file
201
kubejs/startup_scripts/gregtech_material_registry/chemicals.js
Normal file
|
|
@ -0,0 +1,201 @@
|
|||
// priority: 3
|
||||
/**
|
||||
* Gregtech Chemical Materials Registry.
|
||||
* This file is for custom fluids (And some solids!)
|
||||
* used in custom chemlines like JEAN and Polyethyl Cyanoacrylate.
|
||||
*/
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("butanol")
|
||||
.fluid()
|
||||
.color(0xc7af2e)
|
||||
.components("4x carbon", "10x hydrogen", "1x oxygen")
|
||||
.formula("C4H9OH")
|
||||
|
||||
event.create("phosphorus_trichloride")
|
||||
.fluid()
|
||||
.color(0xe8c474)
|
||||
.components("1x phosphorus", "3x chlorine")
|
||||
|
||||
event.create("phosphoryl_chloride")
|
||||
.fluid()
|
||||
.color(0xe8bb5b)
|
||||
.components("1x phosphorus", "1x oxygen", "3x chlorine")
|
||||
|
||||
event.create("tributyl_phosphate")
|
||||
.fluid()
|
||||
.color(0xe8c474)
|
||||
.components("12x carbon", "27x hydrogen", "4x oxygen", "1x phosphorus")
|
||||
.formula("(C4H9O)3PO")
|
||||
|
||||
|
||||
// Scaleline (Breaks Ender Dragon Scales down into useful materials)
|
||||
event.create("hydrochloric_dragon_scale_solution")
|
||||
.fluid()
|
||||
.color(0x697898)
|
||||
.components("2x hydrogen", "2x chlorine", "2x manganese", "1x tantalum", "4x carbon")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.formula("(HCl)2Mn2TaC?")
|
||||
|
||||
event.create("hydrochloric_manganese_solution")
|
||||
.fluid()
|
||||
.color(0x697898)
|
||||
.components("2x hydrogen", "2x chlorine", "2x manganese")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.formula("(HCl)2Mn2")
|
||||
|
||||
event.create("graphitic_tantalum")
|
||||
.dust()
|
||||
.color(0x747499).secondaryColor(0x999974)
|
||||
.components("1x tantalum", "4x carbon")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.formula("TaC")
|
||||
|
||||
event.create("hydrofluoric_graphitic_tantalum_solution")
|
||||
.fluid()
|
||||
.color(0x424272)
|
||||
.components("2x hydrogen", "2x fluorine", "1x tantalum", "4x carbon")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.formula("(HF)2TaC")
|
||||
|
||||
event.create("hydrofluoric_tantalum_solution")
|
||||
.fluid()
|
||||
.color(0x626299)
|
||||
.components("2x hydrogen", "2x fluorine", "1x tantalum")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.formula("(HF)2Ta")
|
||||
|
||||
|
||||
// Guardian Scaleline (Breaks Guardian Scales down into useful materials)
|
||||
event.create("guardian_scale_slurry")
|
||||
.fluid()
|
||||
.color(0x8bbeaf)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
|
||||
// JEAN gasoline ingredients
|
||||
event.create("chlorine_triflouride")
|
||||
.gas()
|
||||
.color(0xCBC4EF)
|
||||
.components("1x chlorine", "3x fluorine")
|
||||
|
||||
event.create("chloroethane")
|
||||
.gas()
|
||||
.color(0xDEEDE6)
|
||||
.components("2x carbon", "5x hydrogen", "1x chlorine")
|
||||
.formula("C2H5Cl")
|
||||
|
||||
event.create("tetraethyllead")
|
||||
.fluid()
|
||||
.color(0x6E6F9E)
|
||||
.components("1x lead", "8x carbon", "20x hydrogen")
|
||||
.formula("Pb(CH3CH2)4")
|
||||
|
||||
event.create("sodium_lead_alloy")
|
||||
.ingot()
|
||||
.color(0x58649B)
|
||||
.components("1x lead", "1x sodium")
|
||||
|
||||
// Crystal Matrix Line
|
||||
event.create("acetylene")
|
||||
.gas()
|
||||
.color(0xFF4F4F)
|
||||
.components("2x carbon", "2x hydrogen")
|
||||
|
||||
event.create("calcium_carbide")
|
||||
.dust()
|
||||
.color(0xCFC870)
|
||||
.components("1x calcium", "2x carbon")
|
||||
|
||||
// Ingredients to create Polyethyl Cyanoacrylate, (PECA) a post-tank polymer
|
||||
event.create("sodium_cyanide")
|
||||
.dust()
|
||||
.color(0x7FB4C7)
|
||||
.components("1x sodium", "1x carbon", "1x nitrogen")
|
||||
|
||||
event.create("chloroacetic_mixture")
|
||||
.fluid()
|
||||
.color(0x2D80B5)
|
||||
|
||||
event.create("chloroacetate")
|
||||
.dust()
|
||||
.color(0x2D8BAE)
|
||||
.components("1x chlorine", "2x carbon", "3x hydrogen", "2x oxygen")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.formula("ClCH2CO2H")
|
||||
|
||||
event.create("dichloroacetate")
|
||||
.fluid()
|
||||
.color(0x2D8BBE)
|
||||
.components("1x chlorine", "1x chloroacetate")
|
||||
.formula("Cl2CH2CO2H")
|
||||
|
||||
event.create("trichloroacetate")
|
||||
.fluid()
|
||||
.color(0x2D8BCE)
|
||||
.components("1x chlorine", "1x dichloroacetate")
|
||||
.formula("Cl3CH2CO2H")
|
||||
|
||||
event.create("cyanoacetic_acid")
|
||||
.dust()
|
||||
.color(0x5B8988)
|
||||
.components("1x nitrogen", "3x carbon", "3x hydrogen", "2x oxygen")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.formula("C3H3NO2")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("ethyl_cyanoacetate")
|
||||
.liquid()
|
||||
.color(0x488176)
|
||||
.components("1x nitrogen", "5x carbon", "7x hydrogen", "2x oxygen")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.formula("C5H7NO2")
|
||||
|
||||
event.create("uncracked_ethyl_cyanoacrylate")
|
||||
.liquid()
|
||||
.color(0x616863)
|
||||
.components("1x nitrogen", "6x carbon", "7x hydrogen", "2x oxygen")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("ethyl_cyanoacrylate")
|
||||
.liquid()
|
||||
.color(0x516863)
|
||||
.components("1x nitrogen", "6x carbon", "7x hydrogen", "2x oxygen")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.formula("C6H7NO2")
|
||||
|
||||
event.create("polyethyl_cyanoacrylate")
|
||||
.polymer()
|
||||
.color(0x708787)
|
||||
.components("1x nitrogen", "6x carbon", "7x hydrogen", "2x oxygen")
|
||||
.fluidPipeProperties(3000, 12000, true, true, true, false)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION, GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_FOIL, GTMaterialFlags.STICKY)
|
||||
.formula("C6H7NO2");
|
||||
|
||||
// Dimethyl sulfoxide sub-chain (PECA catalyst)
|
||||
event.create("dimethyl_sulfoxide")
|
||||
.liquid()
|
||||
.color(0xBFB178)
|
||||
.components("2x carbon", "6x hydrogen", "1x sulfur", "1x oxygen")
|
||||
|
||||
event.create("dimethyl_sulfide")
|
||||
.liquid()
|
||||
.color(0xACB279)
|
||||
.components("2x carbon", "6x hydrogen", "1x sulfur")
|
||||
|
||||
// Uranic Solution (Actinium line)
|
||||
event.create("uranic_solution")
|
||||
.liquid()
|
||||
.color(0xD3B53B)
|
||||
|
||||
// Lead Chloride (Actinium byproduct)
|
||||
event.create("lead_chloride")
|
||||
.dust()
|
||||
.color(0x776E82).iconSet("rough")
|
||||
.components("lead", "2x chlorine")
|
||||
|
||||
// Saturated water (Eltz line midproduct)
|
||||
event.create("saturated_water")
|
||||
.liquid()
|
||||
.color(0x857049)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
})
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
// priority: 2
|
||||
/**
|
||||
* Registration of custom chemical elements
|
||||
*/
|
||||
|
||||
// Elements
|
||||
GTCEuStartupEvents.registry("gtceu:element", event => {
|
||||
event.create("cryolobus")
|
||||
.protons(149)
|
||||
.neutrons(234)
|
||||
.symbol("Cy")
|
||||
event.create("cryococcus")
|
||||
.protons(149)
|
||||
.neutrons(264)
|
||||
.symbol("Cy*")
|
||||
event.create("mana")
|
||||
.symbol("ᛗ")
|
||||
})
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("cryolobus")
|
||||
.ingot().fluid()
|
||||
.element(GTElements.get("cryolobus"))
|
||||
.color(0x022C34).iconSet("metallic")
|
||||
.blastTemp(6800, "higher")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_FRAME)
|
||||
.cableProperties(524288, 4, 0, true);
|
||||
|
||||
event.create("cryococcus")
|
||||
.ingot().fluid()
|
||||
.element(GTElements.get("cryococcus"))
|
||||
.color(0x088286).secondaryColor(0x022C34).iconSet("metallic")
|
||||
.flags(GTMaterialFlags.NO_SMELTING, GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_RING, GTMaterialFlags.GENERATE_DENSE)
|
||||
|
||||
event.create("mana")
|
||||
.liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).customStill())
|
||||
.element(GTElements.get("mana"))
|
||||
.iconSet("mana")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
})
|
||||
75
kubejs/startup_scripts/gregtech_material_registry/enderio.js
Normal file
75
kubejs/startup_scripts/gregtech_material_registry/enderio.js
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
/**
|
||||
? Keep in sync with
|
||||
? https://github.com/Nomi-CEu/Nomi-Labs/blob/main/src/main/java/com/nomiceu/nomilabs/gregtech/material/registry/register/LabsEIO.java
|
||||
*/
|
||||
|
||||
// EnderIO Materials
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("dark_steel")
|
||||
.ingot().fluid()
|
||||
.color(0x414751).iconSet("dull")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("iron", "obsidian")
|
||||
|
||||
// Conductive Iron
|
||||
event.create("conductive_alloy")
|
||||
.ingot().fluid()
|
||||
.color(0xf7b29b).iconSet("metallic")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR)
|
||||
.components("iron", "redstone")
|
||||
.cableProperties(32, 1, 0, true)
|
||||
|
||||
event.create("energetic_alloy")
|
||||
.ingot().fluid()
|
||||
.color(0xffb545).iconSet("shiny")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR)
|
||||
.blastTemp(1250, "low", 120, 400)
|
||||
.components("2x gold", "redstone", "glowstone")
|
||||
.cableProperties(128, 1, 0, true)
|
||||
.formula("Au2(Si(FeS2)5(CrAl2O3)Hg3)(AuCa3(PO4)2)");
|
||||
|
||||
event.create("vibrant_alloy")
|
||||
.ingot().fluid()
|
||||
.color(0xa4ff70).iconSet("shiny")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_BOLT_SCREW)
|
||||
.blastTemp(1350, "low", 120, 400)
|
||||
.components("energetic_alloy", "ender_pearl")
|
||||
.cableProperties(512, 1, 0, true)
|
||||
.formula("Au2(Si(FeS2)5(CrAl2O3)Hg3)(AuCa3(PO4)2)(BeK4N5)");
|
||||
|
||||
// Pulsating Iron
|
||||
event.create("pulsating_alloy")
|
||||
.ingot().fluid()
|
||||
.color(0x2AB38F).iconSet("shiny")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR)
|
||||
.components("iron")
|
||||
.cableProperties(8, 1, 0, true)
|
||||
|
||||
event.create("electrical_steel")
|
||||
.ingot().fluid()
|
||||
.color(0xb2c0c1).iconSet("metallic")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR)
|
||||
.components("steel", "silicon")
|
||||
|
||||
event.create("soularium")
|
||||
.ingot().fluid()
|
||||
.color(0x7c674d).iconSet("metallic")
|
||||
.components("gold")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE)
|
||||
|
||||
event.create("end_steel")
|
||||
.ingot().fluid()
|
||||
.color(0xd6d980).iconSet("metallic")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR)
|
||||
.blastTemp(2700, "mid", 480, 900)
|
||||
.toolStats(new ToolProperty(4.0, 3.5, 1024, 3, []))
|
||||
.cableProperties(2048, 1, 0, true)
|
||||
.components("dark_steel", "endstone", "vibrant_alloy")
|
||||
.formula("Fe(SiO2)(Au2(Si(FeS2)5(CrAl2O3)Hg3)(AuCa3(PO4)2)(BeK4N5))");
|
||||
|
||||
event.create("dark_soularium")
|
||||
.ingot()
|
||||
.color(0x7c674d).iconSet("metallic")
|
||||
.components("soularium", "dark_steel", "tritium")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
})
|
||||
139
kubejs/startup_scripts/gregtech_material_registry/endgame.js
Normal file
139
kubejs/startup_scripts/gregtech_material_registry/endgame.js
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
/**
|
||||
* 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)
|
||||
})
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
/**
|
||||
* Microverse Material Registry.
|
||||
* Used for registering Gregtech Materials
|
||||
* that are related Microverse projectors, Microminers, or Microminer missions.
|
||||
*/
|
||||
// ? Keep in sync with
|
||||
// ? https://github.com/Nomi-CEu/Nomi-Labs/blob/main/src/main/java/com/nomiceu/nomilabs/gregtech/material/registry/register/LabsMicroverse.java
|
||||
|
||||
// Microverse Materials
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("microversium")
|
||||
.ingot().liquid()
|
||||
.color(0x9b61b8).iconSet("dull")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("2x steel", "glowstone", "redstone", "deuterium")
|
||||
.blastTemp(1700, "mid", 120, 600)
|
||||
.cableProperties(128, 4, 2, false)
|
||||
.formula("Fe2(Si(FeS2)5(CrAl2O3)Hg3)(AuCa3(PO4)2)D");
|
||||
|
||||
event.create("osmiridiumyes")
|
||||
.dust().ore()
|
||||
.iconSet("dull")
|
||||
.components("8x osmium", "2x iridium")
|
||||
.addOreByproducts("osmium", "iridium", "ruthenium")
|
||||
|
||||
event.create("iridosmineyes")
|
||||
.dust().ore()
|
||||
.iconSet("dull")
|
||||
.components("8x iridium", "2x osmium")
|
||||
.addOreByproducts("iridium", "osmium", "rhodium")
|
||||
|
||||
event.create("kaemanite")
|
||||
.dust().ore()
|
||||
.color(0xe7413c).iconSet("bright")
|
||||
.components("trinium", "tantalum", "4x oxygen")
|
||||
.addOreByproducts("niobium", "trinium_sulfide", "trinium")
|
||||
|
||||
event.create("laurite")
|
||||
.dust().ore()
|
||||
.color(0x6f2c23).iconSet("diamond")
|
||||
.components("ruthenium", "2x sulfur")
|
||||
.addOreByproducts("pyrite", "ruthenium", "rhodium")
|
||||
|
||||
event.create("cuprorhodsite")
|
||||
.dust().ore()
|
||||
.color(0xc1aa82).iconSet("bright")
|
||||
.components("copper", "iron", "4x rhodium", "8x sulfur")
|
||||
.addOreByproducts("chalcocite", "platinum", "ruthenium")
|
||||
})
|
||||
358
kubejs/startup_scripts/gregtech_material_registry/misc.js
Normal file
358
kubejs/startup_scripts/gregtech_material_registry/misc.js
Normal file
|
|
@ -0,0 +1,358 @@
|
|||
/**
|
||||
? Misc modern materials we have to add
|
||||
? Place non-nomifactory materials here
|
||||
*/
|
||||
|
||||
// AE2 Materials
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:element", event => {
|
||||
event.create("dilithium")
|
||||
.protons(119)
|
||||
.neutrons(229)
|
||||
.symbol("Dl")
|
||||
})
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("charged_certus_quartz")
|
||||
.gem()
|
||||
.dust()
|
||||
.color(0x9fd5e8)
|
||||
.iconSet(GTMaterialIconSet.CERTUS)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("certus_quartz")
|
||||
|
||||
event.create("fluix")
|
||||
.gem()
|
||||
.dust()
|
||||
.color(0x7f5bb3)
|
||||
.iconSet(GTMaterialIconSet.CERTUS)
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE)
|
||||
.components("charged_certus_quartz", "redstone", "nether_quartz")
|
||||
})
|
||||
|
||||
|
||||
// Space Materials
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("dilithium")
|
||||
.dust()
|
||||
.gem()
|
||||
.ore(2, 1)
|
||||
.element(GTElements.get("dilithium"))
|
||||
.color(0xfdd2df).secondaryColor(0xfa52b5)
|
||||
.iconSet("dilithium")
|
||||
.addOreByproducts("lithium", "cobalt", "platinum")
|
||||
|
||||
event.create("calcium_perchlorate")
|
||||
.dust()
|
||||
.color(0xf9fbda)
|
||||
.components("1x calcium", "2x chlorine", "8x oxygen")
|
||||
|
||||
event.create("extraterrestrial_metal_mixture")
|
||||
.dust()
|
||||
.color(0x734120).secondaryColor(0x555B60).iconSet(GTMaterialIconSet.METALLIC)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("fluorite")
|
||||
.gem()
|
||||
.ore()
|
||||
.color(0x0c9949)
|
||||
.iconSet("diamond")
|
||||
.components("1x calcium", "2x fluorine")
|
||||
.addOreByproducts("calcite", "barite")
|
||||
})
|
||||
|
||||
|
||||
// Actually Additions Crystals
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("restonia")
|
||||
.gem()
|
||||
.color(0xA60000)
|
||||
.iconSet(GTMaterialIconSet.RUBY)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.plate,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("enori")
|
||||
.gem()
|
||||
.color(0xEDE6FF)
|
||||
.iconSet(GTMaterialIconSet.GEM_VERTICAL)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.plate,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("void")
|
||||
.gem()
|
||||
.color(0x0F0F0F)
|
||||
.iconSet(GTMaterialIconSet.ROUGH)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.plate,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("palis")
|
||||
.gem()
|
||||
.color(0x1C1C89)
|
||||
.iconSet(GTMaterialIconSet.LAPIS)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.plate,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("diamatine")
|
||||
.gem()
|
||||
.color(0x8B8DF3)
|
||||
.iconSet(GTMaterialIconSet.FINE)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.plate,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("emeradic")
|
||||
.gem()
|
||||
.color(0x09E103)
|
||||
.iconSet(GTMaterialIconSet.GEM_HORIZONTAL)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.plate,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("black_quartz")
|
||||
.gem()
|
||||
.color(0x0F0F0F)
|
||||
.iconSet(GTMaterialIconSet.QUARTZ)
|
||||
})
|
||||
|
||||
|
||||
// Actually Additions empowered crystals
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("restonia_empowered")
|
||||
.gem().fluid()
|
||||
.color(0xA60000)
|
||||
.iconSet(GTMaterialIconSet.RUBY)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("enori_empowered")
|
||||
.gem().fluid()
|
||||
.color(0xEDE6FF)
|
||||
.iconSet(GTMaterialIconSet.GEM_VERTICAL)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("void_empowered")
|
||||
.gem().fluid()
|
||||
.color(0x0F0F0F)
|
||||
.iconSet(GTMaterialIconSet.ROUGH)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("palis_empowered")
|
||||
.gem().fluid()
|
||||
.color(0x1C1C89)
|
||||
.iconSet(GTMaterialIconSet.LAPIS)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("diamatine_empowered")
|
||||
.gem().fluid()
|
||||
.color(0x8B8DF3)
|
||||
.iconSet(GTMaterialIconSet.FINE)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
|
||||
event.create("emeradic_empowered")
|
||||
.gem().fluid()
|
||||
.color(0x09E103)
|
||||
.iconSet(GTMaterialIconSet.GEM_HORIZONTAL)
|
||||
.flags(GTMaterialFlags.GENERATE_GEAR)
|
||||
.ignoredTagPrefixes([
|
||||
TagPrefix.dust,
|
||||
TagPrefix.dustSmall,
|
||||
TagPrefix.dustTiny,
|
||||
TagPrefix.gemExquisite,
|
||||
TagPrefix.gemFlawless,
|
||||
TagPrefix.rod,
|
||||
])
|
||||
})
|
||||
|
||||
|
||||
// Sunnarium
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("sunnarium")
|
||||
.dust()
|
||||
.color(0xDDD692)
|
||||
.flags(GTMaterialFlags.PHOSPHORESCENT, GTMaterialFlags.GENERATE_PLATE)
|
||||
|
||||
event.create("enriched_sunnarium")
|
||||
.dust()
|
||||
.color(0xACFFC2)
|
||||
.flags(GTMaterialFlags.PHOSPHORESCENT, GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE)
|
||||
})
|
||||
|
||||
// Terbium
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("ammonium_oxalate")
|
||||
.dust()
|
||||
.color(0x2596be)
|
||||
.components("2x ammonia", "2x carbon", "4x oxygen")
|
||||
|
||||
event.create("ammonium_nitrate")
|
||||
.dust()
|
||||
.color(0xF5F5F5)
|
||||
.components("1x ammonia", "1x nitric_acid")
|
||||
|
||||
event.create("thorium_hydroxide")
|
||||
.dust()
|
||||
.color(0x243e1c)
|
||||
.components("1x thorium", "4x oxygen", "4x hydrogen")
|
||||
.formula("Th(OH)4")
|
||||
|
||||
event.create("terbium_salt")
|
||||
.dust()
|
||||
.color(0x7f7367)
|
||||
.components("1x terbium", "3x chlorine")
|
||||
.flags(GTMaterialFlags.NO_SMASHING, GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("magnetic_terbium")
|
||||
.ingot()
|
||||
.components("1x terbium")
|
||||
.color(0x8C8F7A)
|
||||
.iconSet(GTMaterialIconSet.MAGNETIC)
|
||||
.ingotSmeltInto(GTMaterials.get("terbium"))
|
||||
.arcSmeltInto(GTMaterials.get("terbium"))
|
||||
.macerateInto(GTMaterials.get("terbium"))
|
||||
.flags(GTMaterialFlags.GENERATE_LONG_ROD, GTMaterialFlags.IS_MAGNETIC)
|
||||
})
|
||||
// Misc
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("elemental_reduction_fluid")
|
||||
.fluid()
|
||||
.color(0xbbddbd)
|
||||
.iconSet("elemental_reduction_fluid")
|
||||
|
||||
event.create("dragon_breath")
|
||||
.fluid()
|
||||
.color(0xFF6AB9)
|
||||
|
||||
event.create("jean_gasoline")
|
||||
.fluid()
|
||||
.color(0xF16AA5)
|
||||
|
||||
event.create("holmium_oxide")
|
||||
.dust()
|
||||
.color(0xD29092)
|
||||
.components("2x holmium", "3x oxygen")
|
||||
|
||||
event.create("waste_gas_mixture")
|
||||
.fluid()
|
||||
.color(0x666677)
|
||||
.components("10x carbon_monoxide", "5x chloroethane", "7x ammonium_formate", "9x dinitrogen_tetroxide", "2x neon", "1x tritium")
|
||||
.flags(GTMaterialFlags.DECOMPOSITION_BY_CENTRIFUGING)
|
||||
|
||||
event.create("trinaquadalloy")
|
||||
.fluid()
|
||||
.ingot()
|
||||
.color(0x281832)
|
||||
.iconSet("bright")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE)
|
||||
.components("6x trinium", "2x naquadah", "1x carbon")
|
||||
.blastTemp(8747, "higher", 131072, 1200)
|
||||
|
||||
event.create("rotten_meat")
|
||||
.dust(1)
|
||||
.color(0xe8543a).secondaryColor(0x684a09).iconSet(GTMaterialIconSet.SAND)
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("saline_antiseptic")
|
||||
.fluid()
|
||||
.color(0x99dce5)
|
||||
|
||||
event.create("rotten_sludge")
|
||||
.fluid()
|
||||
.color(0x997700)
|
||||
})
|
||||
|
||||
GTCEuStartupEvents.materialModification(event => {
|
||||
GTMaterials.RhodiumPlatedPalladium.setComponents("3x palladium", "1x rhodium", "2x lumium")
|
||||
GTMaterials.RhodiumPlatedPalladium.setFormula("Pd3Rh(SnFe)4(CuAg4)2", true)
|
||||
|
||||
GTMaterials.Glowstone.setComponents("1x tricalcium_phosphate", "1x gold")
|
||||
GTMaterials.Glowstone.setFormula("AuCa3(PO4)2", true)
|
||||
|
||||
// We keep Ingots in the material definition so we can replace it in the Ore Processing Diagram with vanilla Netherite Scrap, then remove it here.
|
||||
TagPrefix.ingot.setIgnored(GTMaterials.get("netherite_scrap"), Ingredient.of("minecraft:netherite_scrap"))
|
||||
})
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
/**
|
||||
* Missing Material Forms.
|
||||
* Some GT materials need a fluid, plate, wire, gear, plasma,
|
||||
* or other variant of that material.
|
||||
* This file adds them.
|
||||
*/
|
||||
const $PropertyKey = Java.loadClass("com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey")
|
||||
const $IngotProperty = Java.loadClass("com.gregtechceu.gtceu.api.data.chemical.material.properties.IngotProperty")
|
||||
const $FluidProperty = Java.loadClass("com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidProperty")
|
||||
const $FluidStorageKeys = Java.loadClass("com.gregtechceu.gtceu.api.fluids.store.FluidStorageKeys")
|
||||
const $FluidPipeProperty = Java.loadClass("com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidPipeProperties")
|
||||
const $WireProperty = Java.loadClass("com.gregtechceu.gtceu.api.data.chemical.material.properties.WireProperties")
|
||||
const $BlastProperty = Java.loadClass("com.gregtechceu.gtceu.api.data.chemical.material.properties.BlastProperty")
|
||||
const $FluidBuilder = Java.loadClass("com.gregtechceu.gtceu.api.fluids.FluidBuilder");
|
||||
|
||||
let addFluid = (mat, key, temp) => {
|
||||
let prop = new $FluidProperty()
|
||||
prop.getStorage().enqueueRegistration(key, new $FluidBuilder().temperature(temp))
|
||||
mat.setProperty(PropertyKey.FLUID, prop)
|
||||
}
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
// Existing materials that get an item form
|
||||
GTMaterials.Lutetium.setProperty($PropertyKey.INGOT, new $IngotProperty())
|
||||
|
||||
GTMaterials.Actinium.setProperty($PropertyKey.INGOT, new $IngotProperty())
|
||||
GTMaterials.Actinium.setMaterialARGB(0xaa3399)
|
||||
GTMaterials.Actinium.addFlags(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)
|
||||
|
||||
GTMaterials.Terbium.setProperty($PropertyKey.INGOT, new $IngotProperty())
|
||||
GTMaterials.Terbium.setMaterialARGB(0x8C8F7A)
|
||||
GTMaterials.Terbium.setProperty($PropertyKey.BLAST, new $BlastProperty(7200, "higher", 524288, 900, -1, -1));
|
||||
GTMaterials.Terbium.addFlags(GTMaterialFlags.GENERATE_LONG_ROD)
|
||||
|
||||
GTMaterials.Holmium.setProperty($PropertyKey.INGOT, new $IngotProperty())
|
||||
GTMaterials.Holmium.setMaterialARGB(0xe59274)
|
||||
GTMaterials.Holmium.setMaterialSecondaryARGB(0x715774)
|
||||
GTMaterials.Holmium.setProperty($PropertyKey.WIRE, new $WireProperty(33554432, 64, 0, true))
|
||||
GTMaterials.Holmium.setProperty($PropertyKey.FLUID_PIPE, new $FluidPipeProperty(10000, 18000, true, false, true, true))
|
||||
GTMaterials.Holmium.setProperty($PropertyKey.BLAST, new $BlastProperty(12200, "highest", 1000000, 1000, -1, -1));
|
||||
GTMaterials.Holmium.addFlags(GTMaterialFlags.GENERATE_FINE_WIRE, GTMaterialFlags.GENERATE_ROTOR, GTMaterialFlags.GENERATE_SPRING)
|
||||
|
||||
// Existing materials that get new material forms
|
||||
GTMaterials.Neutronium.addFlags(GTMaterialFlags.GENERATE_FOIL, GTMaterialFlags.GENERATE_ROTOR)
|
||||
GTMaterials.Iridium.addFlags(GTMaterialFlags.GENERATE_ROTOR, GTMaterialFlags.GENERATE_DENSE)
|
||||
GTMaterials.NaquadahEnriched.addFlags(GTMaterialFlags.GENERATE_BOLT_SCREW)
|
||||
GTMaterials.Graphite.addFlags(GTMaterialFlags.GENERATE_PLATE)
|
||||
GTMaterials.MagnesiumDiboride.addFlags(GTMaterialFlags.GENERATE_FINE_WIRE)
|
||||
GTMaterials.RutheniumTriniumAmericiumNeutronate.addFlags(GTMaterialFlags.GENERATE_FINE_WIRE)
|
||||
GTMaterials.Zeron100.addFlags(GTMaterialFlags.GENERATE_DENSE)
|
||||
GTMaterials.BlueAlloy.addFlags(GTMaterialFlags.GENERATE_DENSE)
|
||||
GTMaterials.Neutronium.addFlags(GTMaterialFlags.GENERATE_LONG_ROD, GTMaterialFlags.GENERATE_RING, GTMaterialFlags.GENERATE_ROUND, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_SMALL_GEAR, GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.GENERATE_DENSE)
|
||||
GTMaterials.RedAlloy.addFlags(GTMaterialFlags.GENERATE_SPRING_SMALL) // For ULV Power Transformer
|
||||
|
||||
// Gears for Thermal Expansion
|
||||
GTMaterials.Nickel.addFlags(GTMaterialFlags.GENERATE_GEAR)
|
||||
GTMaterials.Copper.addFlags(GTMaterialFlags.GENERATE_GEAR)
|
||||
GTMaterials.Silver.addFlags(GTMaterialFlags.GENERATE_GEAR)
|
||||
GTMaterials.Lead.addFlags(GTMaterialFlags.GENERATE_GEAR)
|
||||
|
||||
// Radioactive materials that get liquid forms and/or a new color
|
||||
addFluid(GTMaterials.Einsteinium, $FluidStorageKeys.LIQUID, 1133);
|
||||
GTMaterials.Americium.getProperty($PropertyKey.FLUID).storage.enqueueRegistration($FluidStorageKeys.PLASMA, new GTFluidBuilder())
|
||||
addFluid(GTMaterials.Berkelium, $FluidStorageKeys.LIQUID, 1259);
|
||||
GTMaterials.Berkelium.setMaterialARGB(0xa33f20);
|
||||
addFluid(GTMaterials.Californium, $FluidStorageKeys.LIQUID, 1173);
|
||||
GTMaterials.Californium.setMaterialARGB(0x7d0222)
|
||||
addFluid(GTMaterials.Neptunium, $FluidStorageKeys.LIQUID, 913);
|
||||
GTMaterials.Neptunium.setMaterialARGB(0x486d7b)
|
||||
addFluid(GTMaterials.Curium, $FluidStorageKeys.LIQUID, 1618);
|
||||
GTMaterials.Curium.setMaterialARGB(0x58307f)
|
||||
addFluid(GTMaterials.NetherStar, $FluidStorageKeys.LIQUID, 1337);
|
||||
GTMaterials.Thorium.setMaterialARGB(0x273420)
|
||||
addFluid(GTMaterials.Actinium, $FluidStorageKeys.LIQUID, 1324);
|
||||
})
|
||||
62
kubejs/startup_scripts/gregtech_material_registry/thermal.js
Normal file
62
kubejs/startup_scripts/gregtech_material_registry/thermal.js
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
/**
|
||||
* Thermal Material Registry.
|
||||
* Used for registering Gregtech Materials
|
||||
* that are related to Thermal or its 1.12 version.
|
||||
*/
|
||||
// ? Keep in sync with
|
||||
// ? https://github.com/Nomi-CEu/Nomi-Labs/blob/main/src/main/java/com/nomiceu/nomilabs/gregtech/material/registry/register/LabsThermal.java
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
event.create("ardite")
|
||||
.ingot().fluid()
|
||||
.color(0xad2f05).iconSet("dull")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE)
|
||||
.components("3x red_steel", "blaze")
|
||||
|
||||
event.create("manyullyn")
|
||||
.ingot().fluid()
|
||||
.color(0x9949cc).iconSet("metallic")
|
||||
.blastTemp(4800, "high")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE)
|
||||
.components("4x ardite", "4x cobalt", "mana")
|
||||
|
||||
event.create("signalum")
|
||||
.ingot().fluid()
|
||||
.color(0xff7f0f).iconSet("shiny")
|
||||
.blastTemp(4000, "mid", 7680, 1400)
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_GEAR)
|
||||
.components("4x annealed_copper", "2x ardite", "2x red_alloy", "mana")
|
||||
.cableProperties(32768, 1, 0, true)
|
||||
|
||||
event.create("lumium")
|
||||
.ingot().fluid()
|
||||
.color(0xf6ff99).iconSet("bright")
|
||||
.blastTemp(4500, "mid", 4800, 1000)
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_FINE_WIRE)
|
||||
.components("4x tin_alloy", "2x sterling_silver", "mana")
|
||||
.cableProperties(8192, 1, 0, true)
|
||||
.fluidPipeProperties(4500, 256, true, true, true, false)
|
||||
|
||||
event.create("enderium")
|
||||
.ingot().fluid()
|
||||
.color(0x1f6b62).iconSet("shiny")
|
||||
.blastTemp(6400, "highest", 30720, 1600)
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_FINE_WIRE)
|
||||
.components("4x lead", "2x platinum", "blue_steel", "osmium", "tantalum", "mana")
|
||||
.cableProperties(131072, 1, 0, true)
|
||||
|
||||
event.create("electrum_flux")
|
||||
.ingot().fluid()
|
||||
.color(0xf7be20).iconSet("bright")
|
||||
.blastTemp(1100, "low")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR)
|
||||
.components("6x electrum", "lumium", "signalum");
|
||||
|
||||
// Mythril
|
||||
event.create("mythril")
|
||||
.ingot().liquid()
|
||||
.color(0x428fdb).iconSet("dull")
|
||||
.blastTemp(2141, null)
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR)
|
||||
.components("titanium", "mana");
|
||||
})
|
||||
286
kubejs/startup_scripts/hardmode/material_registry/chemicals.js
Normal file
286
kubejs/startup_scripts/hardmode/material_registry/chemicals.js
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
// ! Hardcore mode chemicals
|
||||
/**
|
||||
* Gregtech Chemical Materials Registry: Hardmode+
|
||||
* This file is for custom fluids (And some solids!)
|
||||
* used in custom chemlines specific to Hardmode like expert Titanium and Graphite.
|
||||
*/
|
||||
|
||||
// Custom Naquadah Fuel Iconset
|
||||
GTCEuStartupEvents.registry("gtceu:material_icon_set", event => {
|
||||
if (doHarderNaqFuel) {
|
||||
event.create("naquadah_superfuel").parent(GTMaterialIconSet.RADIOACTIVE)
|
||||
}
|
||||
})
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
if (doHarderProcessing) {
|
||||
event.create("tungsten_trioxide")
|
||||
.dust()
|
||||
.color(0xC7D300).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("tungsten", "3x oxygen")
|
||||
|
||||
event.create("beryllium_oxide")
|
||||
.ingot()
|
||||
.color(0x54C757).iconSet("dull")
|
||||
.flags(GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_RING)
|
||||
.components("beryllium", "oxygen")
|
||||
|
||||
event.create("niobium_pentoxide")
|
||||
.dust()
|
||||
.color(0xBAB0C3).iconSet("rough")
|
||||
.components("2x niobium", "5x oxygen")
|
||||
|
||||
event.create("tantalum_pentoxide")
|
||||
.dust()
|
||||
.color(0x72728A).iconSet("rough")
|
||||
.components("2x tantalum", "5x oxygen")
|
||||
|
||||
event.create("manganese_difluoride")
|
||||
.dust()
|
||||
.color(0xEF4B3D).iconSet("rough")
|
||||
.components("manganese", "2x fluorine")
|
||||
|
||||
event.create("molybdenum_trioxide")
|
||||
.dust()
|
||||
.color(0xCBCFDA).iconSet("rough")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("molybdenum", "3x oxygen")
|
||||
|
||||
event.create("wollastonite")
|
||||
.dust()
|
||||
.color(0xF7F7E7).iconSet("bright")
|
||||
.components("calcium", "silicon", "3x oxygen")
|
||||
|
||||
event.create("sodium_metavanadate")
|
||||
.dust()
|
||||
.color(0xe6bb22).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("sodium", "vanadium", "3x oxygen")
|
||||
|
||||
event.create("vanadium_pentoxide")
|
||||
.dust()
|
||||
.color(0xffcf33).iconSet("rough")
|
||||
.components("2x vanadium", "5x oxygen")
|
||||
|
||||
event.create("ammonium_metavanadate")
|
||||
.dust()
|
||||
.color(0xf7e37e).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("nitrogen", "4x hydrogen", "vanadium", "3x oxygen")
|
||||
|
||||
event.create("phthalic_anhydride")
|
||||
.dust()
|
||||
.color(0xeeaaee).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("8x carbon", "4x hydrogen", "3x oxygen")
|
||||
.formula("C6H4(CO)2O");
|
||||
|
||||
event.create("ethylanthraquinone")
|
||||
.dust()
|
||||
.color(0xf1e181)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("16x carbon", "12x hydrogen", "2x oxygen")
|
||||
.formula("C6H4(CO)2C6H3(CH2CH3)");
|
||||
|
||||
event.create("hydrazine") // is this a reference to the book 'Ignition! An Informal History of Liquid Rocket Propellants.' no way
|
||||
.fluid()
|
||||
.color(0xb50707)
|
||||
.components("2x nitrogen", "4x hydrogen")
|
||||
|
||||
event.create("acetone_azine")
|
||||
.fluid()
|
||||
.color(0xa1e1e1)
|
||||
.components("6x carbon", "12x hydrogen", "2x nitrogen")
|
||||
.formula("((CH3)2(CN))2");
|
||||
|
||||
event.create("graphene_oxide")
|
||||
.dust()
|
||||
.color(0x777777).iconSet("rough")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("graphene", "oxygen")
|
||||
|
||||
// Harder Fluorantimonic Acid
|
||||
event.create("antimony_pentafluoride")
|
||||
.fluid()
|
||||
.color(0xe3f1f1)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("antimony", "5x fluorine")
|
||||
|
||||
event.create("lead_metasilicate")
|
||||
.dust()
|
||||
.color(0xF7F7E7).iconSet("dull")
|
||||
.components("lead", "silicon", "3x oxygen")
|
||||
}
|
||||
|
||||
if (doHarderRecipes) {
|
||||
// Kapton K
|
||||
event.create("durene")
|
||||
.dust()
|
||||
.fluid()
|
||||
.color(0x336040).iconSet("fine")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("10x carbon", "14x hydrogen")
|
||||
.formula("C6H2(CH3)4");
|
||||
|
||||
event.create("pyromellitic_dianhydride")
|
||||
.dust()
|
||||
.fluid()
|
||||
.color(0xB48C63)
|
||||
.components("10x carbon", "2x hydrogen", "6x oxygen")
|
||||
.formula("C6H2(C2O3)2");
|
||||
|
||||
event.create("dimethylformamide")
|
||||
.fluid()
|
||||
.color(0x42bdff)
|
||||
.components("3x carbon", "7x hydrogen", "nitrogen", "oxygen")
|
||||
|
||||
event.create("oxydianiline")
|
||||
.dust()
|
||||
.fluid()
|
||||
.color(0xf0e130).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("12x carbon", "12x hydrogen", "2x nitrogen", "oxygen")
|
||||
.formula("O(C6H4NH2)2");
|
||||
|
||||
event.create("oxydianiline_sludge")
|
||||
.fluid()
|
||||
.color(0xD9CCBF)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("1x oxydianiline", "1x dimethylformamide")
|
||||
|
||||
event.create("kapton_k")
|
||||
.polymer()
|
||||
.fluid()
|
||||
.color(0x915A23)
|
||||
.components("1x pyromellitic_dianhydride", "1x oxydianiline")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION, GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.STICKY)
|
||||
}
|
||||
|
||||
if(doHarderNaqFuel) {
|
||||
// Liquid Naquadah Fuels and their ingredients (HM+ Only)
|
||||
event.create("naq_fuel_t1")
|
||||
.liquid()
|
||||
.color(0xB9E364)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("naq_fuel_t1_depleted")
|
||||
.liquid()
|
||||
.color(0x323D1C)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("naq_fuel_t2")
|
||||
.liquid()
|
||||
.color(0x56F075)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("naq_fuel_t2_depleted")
|
||||
.liquid()
|
||||
.color(0x123619)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("naquadah_superfuel")
|
||||
.color(0xFFFFFF).iconSet("naquadah_superfuel")
|
||||
.liquid(new GTFluidBuilder().state(GTFluidState.PLASMA).customStill())
|
||||
|
||||
event.create("naquadah_superfuel_depleted")
|
||||
.color(0x00002F)
|
||||
.liquid()
|
||||
.flags()
|
||||
|
||||
event.create("raw_naquadah_solution")
|
||||
.liquid()
|
||||
.color(0x5E7855)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("piranha_solution")
|
||||
.liquid()
|
||||
.color(0xFFF382)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("hot_piranha_solution")
|
||||
.liquid()
|
||||
.color(0xFFC582)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("tritium_radon_difluoride")
|
||||
.gas()
|
||||
.color(0xFF5462)
|
||||
.components("1x tritium", "1x radon", "2x fluorine")
|
||||
|
||||
event.create("inert_naquadah_blend")
|
||||
.liquid()
|
||||
.color(0x80D463)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("active_naquadah_blend")
|
||||
.liquid()
|
||||
.color(0xBBFF00)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("light_naquadah_isotope_fraction")
|
||||
.liquid()
|
||||
.color(0xDCFF7a)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("medium_naquadah_isotope_fraction")
|
||||
.liquid()
|
||||
.color(0xB0D93F)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("heavy_naquadah_isotope_fraction")
|
||||
.liquid()
|
||||
.color(0x698A11)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("naquadah_isotope_sludge")
|
||||
.liquid()
|
||||
.color(0x253005)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("cracked_light_naquadah_isotope_fraction")
|
||||
.liquid()
|
||||
.color(0xFFFF7A)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("cracked_medium_naquadah_isotope_fraction")
|
||||
.liquid()
|
||||
.color(0xD9D93F)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("cracked_heavy_naquadah_isotope_fraction")
|
||||
.liquid()
|
||||
.color(0x888811)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("cracked_naquadah_isotope_sludge")
|
||||
.liquid()
|
||||
.color(0x253003)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("heavy_atomic_residue")
|
||||
.liquid()
|
||||
.color(0xb4441F)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("superheavy_atomic_residue")
|
||||
.liquid()
|
||||
.color(0x990000)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("purified_heavy_residue")
|
||||
.liquid()
|
||||
.color(0xDE643B)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("purified_superheavy_residue")
|
||||
.liquid()
|
||||
.color(0xE60000)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("exotic_particle_solution")
|
||||
.liquid()
|
||||
.color(0xF8EBBE)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
}
|
||||
})
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
/**
|
||||
* Registration of hardmore-only chemical elements
|
||||
*/
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:element", event => {
|
||||
if (doStoneline) {
|
||||
event.create("taranium")
|
||||
.protons(149)
|
||||
.neutrons(264)
|
||||
.symbol("Tn");
|
||||
}
|
||||
if (doHarderNaqFuel) {
|
||||
event.create("quadium")
|
||||
.protons(1)
|
||||
.neutrons(3)
|
||||
.symbol("Qd")
|
||||
.isIsotope(true);
|
||||
event.create("hyperdegenerate_matter")
|
||||
.protons(250)
|
||||
.neutrons(1000)
|
||||
.symbol("Ω");
|
||||
}
|
||||
})
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material_icon_set", event => {
|
||||
if (doHarderNaqFuel) {
|
||||
event.create("hyperdegenerate_matter").parent(GTMaterialIconSet.RADIOACTIVE)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
if (doStoneline) {
|
||||
event.create("taranium")
|
||||
.ingot().fluid()
|
||||
.element(GTElements.get("taranium"))
|
||||
.color(0xff00ff).iconSet("bright")
|
||||
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE)
|
||||
.blastTemp(10800, "highest")
|
||||
}
|
||||
if (doHarderNaqFuel) {
|
||||
event.create("quadium")
|
||||
.gas()
|
||||
.element(GTElements.get("quadium"))
|
||||
.color(0x7c5bff)
|
||||
|
||||
event.create("hyperdegenerate_matter")
|
||||
.element(GTElements.get("hyperdegenerate_matter"))
|
||||
.color(0xffffff).iconSet("hyperdegenerate_matter")
|
||||
.liquid(new GTFluidBuilder().state(GTFluidState.PLASMA).customStill())
|
||||
|
||||
}
|
||||
})
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
/**
|
||||
* Kapton K disabled in favor of GCYr's chain - keep this file in the case that it gets removed from the mod.
|
||||
* Draconic Superconductor -> Sculk Superconductor is not Hardmode-specific
|
||||
Crystal Matrix is not Hardmode-specific
|
||||
*/
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
/**
|
||||
* Registration of hardmode-only materials
|
||||
*/
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
// if (doCreativeTank) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
event.create("darmstadtite") // Hardmode only
|
||||
.dust().ore(2, 1)
|
||||
.iconSet("dull")
|
||||
.color(0x99AA87)
|
||||
.components("2x darmstadtium", "3x sulfur")
|
||||
.addOreByproducts("rare_earth", "rhodium_sulfate", "darmstadtium")
|
||||
|
||||
event.create("dulysite") // Hardmode only
|
||||
.gem().ore(2, 1)
|
||||
.iconSet(GTMaterialIconSet.DIAMOND)
|
||||
.color(0xF5EFC0)
|
||||
.components("duranium", "3x chlorine")
|
||||
.addOreByproducts("sphalerite", "duranium", "europium")
|
||||
|
||||
// Snowchestite is in naqline.js
|
||||
})
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
/**
|
||||
* Missing Material Forms: Hardmode+
|
||||
* Some GT materials need a fluid, plate, wire, gear, plasma,
|
||||
* or other variant of that material for Hardmode-specific content.
|
||||
* This file adds them.
|
||||
*/
|
||||
const $DustProperty = Java.loadClass("com.gregtechceu.gtceu.api.data.chemical.material.properties.DustProperty");
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
if (doHarderProcessing) {
|
||||
GTMaterials.Berkelium.setProperty(PropertyKey.INGOT, new $IngotProperty());
|
||||
GTMaterials.Berkelium.addFlags(GTMaterialFlags.GENERATE_FRAME)
|
||||
addFluid(GTMaterials.Oganesson, $FluidStorageKeys.GAS, 7777);
|
||||
GTMaterials.Oganesson.setMaterialARGB(0x443936)
|
||||
GTMaterials.RhodiumSulfate.setProperty($PropertyKey.DUST, new $DustProperty());
|
||||
}
|
||||
})
|
||||
73
kubejs/startup_scripts/hardmode/material_registry/naqline.js
Normal file
73
kubejs/startup_scripts/hardmode/material_registry/naqline.js
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
/**
|
||||
! Hardcore mode naquadah line
|
||||
? Keep in sync with
|
||||
? https://github.com/Nomi-CEu/Nomi-Labs/blob/main/src/main/java/com/nomiceu/nomilabs/gregtech/material/registry/register/LabsNaqLine.java
|
||||
*/
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
if (doHarderProcessing) {
|
||||
event.create("naquadah_oxide")
|
||||
.dust()
|
||||
.color(0x17ddd3).iconSet("rough")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("2x naquadah", "3x oxygen")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("pyromorphite")
|
||||
.dust()
|
||||
.color(0xd3ed28).iconSet("rough")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("5x lead", "3x phosphate", "chlorine")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("naquadah_hydroxide")
|
||||
.dust()
|
||||
.color(0x1941a6).iconSet("dull")
|
||||
.components("naquadah", "3x hydrogen", "3x oxygen")
|
||||
.formula("Nq(OH)3")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("caesium_hydroxide")
|
||||
.dust()
|
||||
.color(0xbd8340).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("caesium", "oxygen", "hydrogen")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("neocryolite")
|
||||
.liquid()
|
||||
.color(0x3fd1aa)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("3x caesium", "naquadah", "6x fluorine")
|
||||
|
||||
event.create("naquadah_oxide_petro_solution")
|
||||
.liquid()
|
||||
.color(0x595c70)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("naquadah_oxide_aero_solution")
|
||||
.liquid()
|
||||
.color(0x6f7059)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("hot_naquadah_oxide_neocryolite_solution")
|
||||
.liquid()
|
||||
.color(0x658280)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("snowchestite") // Hardmode only
|
||||
.dust().ore()
|
||||
.color(0x274c9f).iconSet("shiny")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("3x naquadah_oxide", "pyromorphite")
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
GTCEuStartupEvents.materialModification(() => {
|
||||
if (doHarderProcessing) {
|
||||
// Use `.setOreByProducts` here instead of `.addOreByproducts` because of https://github.com/GregTechCEu/GregTech-Modern/issues/2633
|
||||
GTMaterials.get("snowchestite").getProperty(PropertyKey.ORE)
|
||||
.setOreByProducts("chalcopyrite", "vanadium_magnetite", "naquadah_hydroxide");
|
||||
}
|
||||
})
|
||||
175
kubejs/startup_scripts/hardmode/material_registry/platline.js
Normal file
175
kubejs/startup_scripts/hardmode/material_registry/platline.js
Normal file
|
|
@ -0,0 +1,175 @@
|
|||
/**
|
||||
! Hardcore mode platinum line
|
||||
? Keep in sync with
|
||||
? https://github.com/Nomi-CEu/Nomi-Labs/blob/main/src/main/java/com/nomiceu/nomilabs/gregtech/material/registry/register/LabsPlatLine.java
|
||||
*/
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
if (doHarderProcessing) {
|
||||
event.create("iridium_dioxide_residue")
|
||||
.dust()
|
||||
.color(0x17182e).iconSet("rough")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("iridium", "2x oxygen", "rare_earth")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("chloroplatinic_acid")
|
||||
.fluid()
|
||||
.color(0xfef0c2)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("2x hydrogen", "platinum", "6x chlorine")
|
||||
|
||||
event.create("palladium_rich_ammonia")
|
||||
.fluid()
|
||||
.color(0x808080)
|
||||
.components("2x ammonia", "palladium", "chlorine")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("rhodium_sulfate_solution")
|
||||
.fluid()
|
||||
.color(0xffbb66)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("rhodium_sulfate", "water");
|
||||
|
||||
event.create("acidic_iridium_dioxide_solution")
|
||||
.fluid()
|
||||
.color(0x27284e)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("iridium_dioxide_residue", "4x hydrochloric_acid")
|
||||
|
||||
event.create("platinum_palladium_leachate")
|
||||
.fluid()
|
||||
.color(0xffffc5)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("platinum", "palladium", "aqua_regia")
|
||||
|
||||
event.create("methyl_formate")
|
||||
.fluid()
|
||||
.color(0xffaaaa)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("2x carbon", "4x hydrogen", "2x oxygen")
|
||||
|
||||
event.create("platinum_metallic")
|
||||
.dust()
|
||||
.color(0xfffbc5).iconSet("metallic")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("platinum", "rare_earth")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("palladium_metallic")
|
||||
.dust()
|
||||
.color(0x808080).iconSet("metallic")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("palladium", "rare_earth")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall])
|
||||
|
||||
event.create("ammonium_hexachloroplatinate")
|
||||
.dust()
|
||||
.color(0xfef0c2).iconSet("metallic")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("2x nitrogen", "8x hydrogen", "platinum", "6x chlorine")
|
||||
.formula("(NH4)2PtCl6")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("potassium_bisulfate")
|
||||
.dust()
|
||||
.color(0xfdbd68)
|
||||
.components("potassium", "hydrogen", "sulfur", "4x oxygen")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("potassium_pyrosulfate")
|
||||
.dust()
|
||||
.color(0xfbbb66)
|
||||
.components("2x potassium", "2x sulfur", "7x oxygen")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("zinc_sulfate")
|
||||
.dust()
|
||||
.color(0x846649).iconSet("fine")
|
||||
.components("zinc", "sulfur", "4x oxygen")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("sodium_nitrate")
|
||||
.dust()
|
||||
.color(0x846684).iconSet("rough")
|
||||
.components("sodium", "nitrogen", "3x oxygen")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("rhodium_nitrate")
|
||||
.dust()
|
||||
.color(0x776649).iconSet("fine")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("rhodium", "3x nitrogen", "9x oxygen")
|
||||
.formula("Rh(NO3)3")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("sodium_ruthenate")
|
||||
.dust()
|
||||
.color(0x3a40cb).iconSet("shiny")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("2x sodium", "ruthenium", "4x oxygen")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("sodium_peroxide")
|
||||
.dust()
|
||||
.color(0xecff80).iconSet("rough")
|
||||
.components("2x sodium", "2x oxygen")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("ammonium_hexachloroiridiate")
|
||||
.dust()
|
||||
.color(0x644629).iconSet("rough")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("2x nitrogen", "2x hydrogen", "iridium", "6x chlorine")
|
||||
.formula("(NH4)2IrCl6");
|
||||
|
||||
event.create("platinum_group_residue")
|
||||
.dust()
|
||||
.color(0x64632e).iconSet("rough")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("iridium", "osmium", "rhodium", "ruthenium", "rare_earth");
|
||||
|
||||
event.create("crude_platinum_residue")
|
||||
.dust()
|
||||
.color(0xfffbc5).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("platinum_raw")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("crude_palladium_residue")
|
||||
.dust()
|
||||
.color(0x909090).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("palladium_raw")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("iridium_group_sludge")
|
||||
.dust()
|
||||
.color(0x644629).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("iridium", "osmium", "ruthenium", "rare_earth")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("crude_rhodium_residue")
|
||||
.dust()
|
||||
.color(0x666666).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("2x rhodium", "water")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
|
||||
event.create("rhodium_salt")
|
||||
.dust()
|
||||
.color(0x848484).iconSet("shiny")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("2x salt", "2x rhodium", "6x chlorine")
|
||||
.formula("(NaCl)2(RhCl3)2")
|
||||
.ignoredTagPrefixes([TagPrefix.dustTiny, TagPrefix.dustSmall]);
|
||||
|
||||
event.create("sodium_methoxide")
|
||||
.dust()
|
||||
.color(0xd0d0f0).iconSet("dull")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("carbon", "3x hydrogen", "oxygen", "sodium");
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
/**
|
||||
! Hardcore Mode mode taranium line
|
||||
? Keep in sync with
|
||||
? https://github.com/Nomi-CEu/Nomi-Labs/blob/main/src/main/java/com/nomiceu/nomilabs/gregtech/material/registry/register/LabsTaraniumLine.java
|
||||
*/
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:material", event => {
|
||||
if (doStoneline) {
|
||||
event.create("hydrogen_peroxide")
|
||||
.liquid()
|
||||
.color(0xd2ffff)
|
||||
.components("2x hydrogen", "2x oxygen")
|
||||
|
||||
event.create("hexafluorosilicic_acid")
|
||||
.fluid()
|
||||
.color(0xd00010)
|
||||
.components("2x hydrogen", "silicon", "6x fluorine")
|
||||
|
||||
event.create("dirty_hexafluorosilicic_acid")
|
||||
.fluid()
|
||||
.color(0xe00030)
|
||||
.components("2x hydrogen", "silicon", "6x fluorine", "rare_earth")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("ultraacidic_residue")
|
||||
.fluid()
|
||||
.color(0xb0babf)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("xenic_acid")
|
||||
.fluid()
|
||||
.color(0xa567db)
|
||||
.components("xenon", "water", "3x oxygen")
|
||||
.formula("H2XeO4");
|
||||
|
||||
event.create("dusty_helium")
|
||||
.gas()
|
||||
.color(0xa040af)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("helium_3", "rare_earth")
|
||||
|
||||
event.create("taranium_enriched_helium")
|
||||
.gas().plasma()
|
||||
.color(0x10c050)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("taranium_depleted_helium")
|
||||
.gas()
|
||||
.color(0x006010)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("tritium_hydride")
|
||||
.gas()
|
||||
.color(0xd01010)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("tritium", "hydrogen")
|
||||
|
||||
event.create("helium_hydride")
|
||||
.gas()
|
||||
.color(0xe6d62e)
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
.components("helium_3", "hydrogen")
|
||||
|
||||
event.create("dioxygen_difluoride")
|
||||
.fluid() // 80
|
||||
.colorAverage()
|
||||
.components("2x oxygen", "2x fluorine")
|
||||
|
||||
event.create("stone_residue")
|
||||
.dust()
|
||||
.color(0x4d4d4d).iconSet("rough")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("uncommon_residue")
|
||||
.dust()
|
||||
.color(0x4d4ded).iconSet("fine")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("oxidised_residue")
|
||||
.dust()
|
||||
.color(0xad4d4d).iconSet("fine")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
|
||||
event.create("refined_residue")
|
||||
.dust()
|
||||
.color(0x2a8a21).iconSet("shiny")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION);
|
||||
|
||||
event.create("clean_inert_residue")
|
||||
.dust()
|
||||
.color(0x3bbd2f).iconSet("shiny")
|
||||
.flags(GTMaterialFlags.DISABLE_DECOMPOSITION)
|
||||
}
|
||||
})
|
||||
9
kubejs/startup_scripts/modify_blocks.js
Normal file
9
kubejs/startup_scripts/modify_blocks.js
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
/**
|
||||
* Block modification.
|
||||
* Only used for one thing at the moment.
|
||||
*/
|
||||
BlockEvents.modification(event => {
|
||||
event.modify("watercollector:watercollector", block => {
|
||||
block.destroySpeed = 0.3
|
||||
})
|
||||
})
|
||||
79
kubejs/startup_scripts/modify_items.js
Normal file
79
kubejs/startup_scripts/modify_items.js
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
/**
|
||||
* Item modification.
|
||||
* Used to modify items not added by KJS
|
||||
* except for the Infinity/Ultimate crafting tools.
|
||||
*/
|
||||
const $ItemBuilder = Java.loadClass("dev.latvian.mods.kubejs.item.custom.BasicItemJS$Builder")
|
||||
|
||||
const $Rarity = Java.loadClass("net.minecraft.world.item.Rarity")
|
||||
const $UnaryOperator = Java.loadClass("java.util.function.UnaryOperator")
|
||||
const $UtilsJS = Java.loadClass("dev.latvian.mods.kubejs.util.UtilsJS")
|
||||
const $Style = Java.loadClass("net.minecraft.network.chat.Style")
|
||||
|
||||
// All Items that need to have a different rarity
|
||||
let itemRarityMap = Utils.newMap()
|
||||
itemRarityMap.put("functionalstorage:copper_upgrade", createRarity("bronze", 0xa47b47))
|
||||
itemRarityMap.put("functionalstorage:gold_upgrade", createRarity("steel", 0x69696b))
|
||||
itemRarityMap.put("functionalstorage:diamond_upgrade", createRarity("aluminum", 0x4e748b))
|
||||
itemRarityMap.put("functionalstorage:netherite_upgrade", createRarity("stainless_steel", 0x9695a3))
|
||||
|
||||
ItemEvents.modification(event => {
|
||||
|
||||
// Make it so Sugar Cane can be used as fuel in the Furnace
|
||||
event.modify("minecraft:sugar_cane", item => { item.burnTime = 300 })
|
||||
|
||||
|
||||
// Make some items glint like enchanted items
|
||||
const itemsToModify = [
|
||||
"gtceu:dark_soularium_nugget",
|
||||
"gtceu:dark_soularium_dust",
|
||||
"gtceu:tiny_dark_soularium_dust",
|
||||
"gtceu:dark_soularium_block",
|
||||
"gtceu:dark_soularium_ingot",
|
||||
"gtceu:small_dark_soularium_dust",
|
||||
"hostilenetworks:prediction",
|
||||
/empowered/,
|
||||
/activated_netherite/
|
||||
]
|
||||
|
||||
|
||||
// Change rarities
|
||||
itemRarityMap.forEach((item, rarity) => {
|
||||
event.modify(item, i => i.rarity = rarity)
|
||||
})
|
||||
|
||||
itemsToModify.forEach(itemName => {
|
||||
event.modify(itemName, item => {
|
||||
const builder = new $ItemBuilder(itemName).glow(true)
|
||||
item.setItemBuilder(builder)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
// Increase the maximum stack size of Ender Pearls up to 64
|
||||
event.modify("minecraft:ender_pearl", item => {
|
||||
item.maxStackSize = 64
|
||||
})
|
||||
|
||||
|
||||
// Make Infinity and Ultimate tools work as unbreakable crafting tools
|
||||
const toolTypes = [
|
||||
"file",
|
||||
"hammer",
|
||||
"screwdriver",
|
||||
"wrench",
|
||||
"wire_cutter"
|
||||
]
|
||||
toolTypes.forEach(type => {
|
||||
event.modify(`kubejs:infinity_${type}`, item => { item.craftingRemainder = Item.of(`kubejs:infinity_${type}`).item })
|
||||
event.modify(`kubejs:ultimate_${type}`, item => { item.craftingRemainder = Item.of(`kubejs:ultimate_${type}`).item })
|
||||
})
|
||||
})
|
||||
|
||||
const withColorMethod = $Style.EMPTY.class.declaredMethods.filter((method) => method.name.includes("m_131148_"))[0]
|
||||
function createRarity (/** @type {string} */ name, /** @type {number} */ colorCode) {
|
||||
let color = $UtilsJS.makeFunctionProxy("startup", $UnaryOperator, (style) => {
|
||||
return withColorMethod.invoke(style, Color.of(colorCode).createTextColorJS())
|
||||
})
|
||||
return $Rarity["create(java.lang.String,java.util.function.UnaryOperator)"](name, color)
|
||||
}
|
||||
85
kubejs/startup_scripts/nukeLists/fluid.js
Normal file
85
kubejs/startup_scripts/nukeLists/fluid.js
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
// priority: 900
|
||||
/*
|
||||
The fluidNukeList is used to list all IDs of fluids that should be removed from the game, or "nuked".
|
||||
While this makes it far more difficult to access the fluids and effectively obliterates them in most cases,
|
||||
it doesn't remove them entirely and does not guarantee that they are unobtainable, unusable, or hidden in JEI/EMI.
|
||||
|
||||
If you seek to hide a fluid but not remove it, use KubeJS/client_scripts/JEI.js.
|
||||
If you seek to remove a recipe but not hide any fluids, use the relevant file in KubeJS/server_scripts.
|
||||
*/
|
||||
global.fluidNukeList = [
|
||||
// Ad Astra
|
||||
"ad_astra:oxygen",
|
||||
"ad_astra:hydrogen",
|
||||
"ad_astra:oil",
|
||||
"ad_astra:fuel",
|
||||
"ad_astra:cryo_fuel",
|
||||
|
||||
// Ender IO
|
||||
"enderio:cloud_seed_concentrated",
|
||||
"enderio:cloud_seed",
|
||||
"enderio:fire_water",
|
||||
"enderio:hootch",
|
||||
"enderio:liquid_sunshine",
|
||||
"enderio:nutrient_distillation",
|
||||
"enderio:rocket_fuel",
|
||||
"enderio:vapor_of_levity",
|
||||
|
||||
// GregTech Modern
|
||||
"gtceu:molten_kanthal",
|
||||
|
||||
// Thermal Series
|
||||
"cofh_core:experience",
|
||||
"thermal:creosote",
|
||||
"thermal:glowstone",
|
||||
"thermal:redstone",
|
||||
"thermal:crude_oil",
|
||||
"thermal:heavy_oil",
|
||||
"thermal:light_oil",
|
||||
|
||||
// Sophisticated Core
|
||||
"sophisticatedcore:xp_still",
|
||||
|
||||
// Systeams
|
||||
"systeams:steamier",
|
||||
"systeams:steamiest",
|
||||
"systeams:steamiester",
|
||||
"systeams:steamiestest",
|
||||
|
||||
]
|
||||
|
||||
StartupEvents.postInit(event => {
|
||||
/**
|
||||
* NuclearCraft is most easily dealt with by removing *everything* but a select few fluids
|
||||
*/
|
||||
// Get all of the NuclearCraft fluids
|
||||
let NCFluids = Fluid.getTypes().filter(id => id.includes("nuclearcraft"))
|
||||
|
||||
// NuclearCraft fluids to not nuke
|
||||
let NCFluidsToKeep = [
|
||||
"nuclearcraft:hydrated_gelatin",
|
||||
"nuclearcraft:gelatin",
|
||||
"nuclearcraft:sugar",
|
||||
"nuclearcraft:marshmallow",
|
||||
"nuclearcraft:cocoa_butter",
|
||||
"nuclearcraft:pasteurized_milk",
|
||||
"nuclearcraft:chocolate_liquor",
|
||||
"nuclearcraft:unsweetened_chocolate",
|
||||
"nuclearcraft:dark_chocolate",
|
||||
"nuclearcraft:milk_chocolate",
|
||||
"nuclearcraft:technical_water",
|
||||
"nuclearcraft:high_pressure_steam",
|
||||
]
|
||||
|
||||
// Add depleted fuels, or else fission reactors won't run
|
||||
NCFluidsToKeep = NCFluidsToKeep.concat(NCFluids.filter(id => id.includes("depleted_fuel")))
|
||||
|
||||
// Add flowing fluid variants to the list of fluids to keep
|
||||
NCFluidsToKeep.forEach(fluid => { NCFluidsToKeep.push(`${fluid}_flowing`) })
|
||||
|
||||
// Remove used fluids from the full list of NC fluids
|
||||
let NCFluidsToRemove = NCFluids.filter((el) => !NCFluidsToKeep.includes(el))
|
||||
|
||||
// Add all the unwanted NuclearCraft fluids to the nukeList
|
||||
global.fluidNukeList = global.fluidNukeList.concat(NCFluidsToRemove)
|
||||
})
|
||||
320
kubejs/startup_scripts/nukeLists/item.js
Normal file
320
kubejs/startup_scripts/nukeLists/item.js
Normal file
|
|
@ -0,0 +1,320 @@
|
|||
// priority: 900
|
||||
/*
|
||||
The itemNukeList is used to list all IDs and regexes matching IDs of items that should be removed from the game, or "nuked".
|
||||
While this makes it far more difficult to access the items and effectively obliterates them in most cases,
|
||||
it doesn't remove them entirely and does not guarantee that they are unobtainable, unusable, or hidden in EMI/JEI.
|
||||
|
||||
Examples of such cases are:
|
||||
- Items that may drop from a loot table (not unobtainable)
|
||||
- Items that provide right-click functionality (not unusable)
|
||||
- ExtendedCrafting Singularities, which have a special recipe page which cannot be hidden by normal means (not hidden in EMI/JEI)
|
||||
|
||||
If you seek to hide an item but not remove it, use KubeJS/client_scripts/JEI.js.
|
||||
If you seek to remove a recipe but not hide any items, use the relevant file in KubeJS/server_scripts.
|
||||
*/
|
||||
global.itemNukeList = [
|
||||
// Ad Astra
|
||||
"ad_astra:cable_duct",
|
||||
"ad_astra:coal_generator",
|
||||
"ad_astra:compressor",
|
||||
"ad_astra:cryo_freezer",
|
||||
"ad_astra:desh_cable",
|
||||
"ad_astra:desh_fluid_pipe",
|
||||
"ad_astra:energizer",
|
||||
"ad_astra:energizer",
|
||||
"ad_astra:engine_frame",
|
||||
"ad_astra:etrionic_blast_furnace",
|
||||
"ad_astra:etrionic_capacitor",
|
||||
"ad_astra:etrionic_core",
|
||||
"ad_astra:fan",
|
||||
"ad_astra:fluid_pipe_duct",
|
||||
"ad_astra:fuel_refinery",
|
||||
"ad_astra:ostrum_fluid_pipe",
|
||||
"ad_astra:photovoltaic_etrium_cell",
|
||||
"ad_astra:photovoltaic_vesnium_cell",
|
||||
"ad_astra:solar_panel",
|
||||
"ad_astra:steel_cable",
|
||||
"ad_astra:water_pump",
|
||||
/^ad_astra:.*_bucket$/,
|
||||
|
||||
// Applied Energistics 2
|
||||
"ae2:certus_quartz_crystal",
|
||||
"ae2:charged_certus_quartz_crystal",
|
||||
"ae2:fluix_block",
|
||||
"ae2:fluix_crystal",
|
||||
"ae2:fluix_dust",
|
||||
"ae2:vibration_chamber",
|
||||
|
||||
// Better Angel Ring
|
||||
"better_angel_ring:ring",
|
||||
|
||||
// Chisels & Bits
|
||||
"chiselsandbits:block_bit",
|
||||
|
||||
// EnderIO
|
||||
"enderio:alloy_smelter",
|
||||
"enderio:clayed_glowstone",
|
||||
"enderio:cloud_seed_bucket",
|
||||
"enderio:cloud_seed_concentrated_bucket",
|
||||
"enderio:conductive_alloy_grinding_ball",
|
||||
"enderio:conduit",
|
||||
"enderio:confusing_powder",
|
||||
"enderio:copper_alloy_grinding_ball",
|
||||
"enderio:dark_steel_grinding_ball",
|
||||
"enderio:end_steel_grinding_ball",
|
||||
"enderio:energetic_alloy_grinding_ball",
|
||||
"enderio:energy_conduit",
|
||||
"enderio:fire_water_bucket",
|
||||
"enderio:flour",
|
||||
"enderio:hootch_bucket",
|
||||
"enderio:industrial_insulation_block",
|
||||
"enderio:liquid_sunshine_bucket",
|
||||
"enderio:nethercotta",
|
||||
"enderio:nutrient_distillation_bucket",
|
||||
"enderio:organic_black_dye",
|
||||
"enderio:organic_brown_dye",
|
||||
"enderio:organic_green_dye",
|
||||
"enderio:plant_matter_brown",
|
||||
"enderio:plant_matter_green",
|
||||
"enderio:primitive_alloy_smelter",
|
||||
"enderio:pulsating_alloy_grinding_ball",
|
||||
"enderio:redstone_alloy_grinding_ball",
|
||||
"enderio:rocket_fuel_bucket",
|
||||
"enderio:sag_mill",
|
||||
"enderio:silicon",
|
||||
"enderio:soul_powder",
|
||||
"enderio:soularium_grinding_ball",
|
||||
"enderio:stirling_generator",
|
||||
"enderio:vapor_of_levity_bucket",
|
||||
"enderio:vibrant_alloy_grinding_ball",
|
||||
"enderio:withering_powder",
|
||||
/^enderio:painted_/,
|
||||
/^enderio:powdered_/,
|
||||
|
||||
// Ender Storage
|
||||
// TODO: Need to add greggy recipes for these
|
||||
"endertanks:ender_bucket",
|
||||
"enderchests:ender_bag",
|
||||
|
||||
// ExtendedAE
|
||||
"expatternprovider:silicon_block",
|
||||
"expatternprovider:circuit_cutter",
|
||||
/expatternprovider.*cutter/,
|
||||
|
||||
// Extended Crafting
|
||||
"extendedcrafting:auto_ender_crafter",
|
||||
"extendedcrafting:black_iron_slate",
|
||||
"extendedcrafting:compressor",
|
||||
"extendedcrafting:ender_alternator",
|
||||
"extendedcrafting:ender_catalyst",
|
||||
"extendedcrafting:ender_component",
|
||||
"extendedcrafting:ender_crafter",
|
||||
"extendedcrafting:ender_star",
|
||||
"extendedcrafting:enhanced_ender_catalyst",
|
||||
"extendedcrafting:enhanced_ender_component",
|
||||
"extendedcrafting:enhanced_redstone_catalyst",
|
||||
"extendedcrafting:enhanced_redstone_component",
|
||||
"extendedcrafting:flux_crafter",
|
||||
"extendedcrafting:flux_star",
|
||||
"extendedcrafting:frame",
|
||||
"extendedcrafting:recipe_maker",
|
||||
"extendedcrafting:singularity",
|
||||
|
||||
// GTCEu: Modern
|
||||
"gtceu:ender_fluid_link_cover", // Not Yet Implemented. Remove when GTM makes it work.
|
||||
"gtceu:hot_kanthal_ingot",
|
||||
"gtceu:hot_silicon_ingot",
|
||||
"gtceu:milk",
|
||||
"gtceu:steel_machine_casing",
|
||||
/^gtceu:uxv/,
|
||||
/^gtceu:opv/,
|
||||
/^gtmutils:uxv/,
|
||||
/^gtmutils:opv/,
|
||||
|
||||
// Hammerlib
|
||||
/^hammerlib:/,
|
||||
|
||||
// HNN
|
||||
"hostilenetworks:deep_learner",
|
||||
"hostilenetworks:twilight_prediction",
|
||||
|
||||
// Iron Furnaces
|
||||
"ironfurnaces:augment_blasting",
|
||||
"ironfurnaces:augment_generator",
|
||||
"ironfurnaces:augment_smoking",
|
||||
"ironfurnaces:heater",
|
||||
"ironfurnaces:item_heater",
|
||||
"ironfurnaces:item_spooky",
|
||||
"ironfurnaces:item_xmas",
|
||||
"ironfurnaces:rainbow_coal",
|
||||
"ironfurnaces:rainbow_core",
|
||||
"ironfurnaces:rainbow_plating",
|
||||
"ironfurnaces:allthemodium_furnace",
|
||||
"ironfurnaces:vibranium_furnace",
|
||||
"ironfurnaces:unobtainium_furnace",
|
||||
"ironfurnaces:million_furnace",
|
||||
"ironfurnaces:upgrade_allthemodium",
|
||||
"ironfurnaces:upgrade_vibranium",
|
||||
"ironfurnaces:upgrade_unobtainium",
|
||||
|
||||
// TODO renable this again. why in the fuck did we disable this?
|
||||
// No upgrade consumables to go from diamond to obsidian or iron to silver without re-enabling more furnaces
|
||||
"ironfurnaces:upgrade_iron",
|
||||
"ironfurnaces:upgrade_gold",
|
||||
"ironfurnaces:upgrade_diamond",
|
||||
"ironfurnaces:upgrade_emerald",
|
||||
"ironfurnaces:upgrade_obsidian",
|
||||
"ironfurnaces:upgrade_crystal",
|
||||
"ironfurnaces:upgrade_netherite",
|
||||
"ironfurnaces:upgrade_copper",
|
||||
"ironfurnaces:upgrade_obsidian2",
|
||||
"ironfurnaces:upgrade_silver",
|
||||
"ironfurnaces:upgrade_obsidian2",
|
||||
"ironfurnaces:upgrade_iron2",
|
||||
"ironfurnaces:upgrade_gold2",
|
||||
"ironfurnaces:upgrade_silver2",
|
||||
"ironfurnaces:crystal_furnace",
|
||||
"ironfurnaces:emerald_furnace",
|
||||
"ironfurnaces:item_linker",
|
||||
|
||||
// Iron Jetpacks
|
||||
"ironjetpacks:advanced_coil",
|
||||
"ironjetpacks:basic_coil",
|
||||
"ironjetpacks:capacitor",
|
||||
"ironjetpacks:cell",
|
||||
"ironjetpacks:elite_coil",
|
||||
"ironjetpacks:thruster",
|
||||
"ironjetpacks:ultimate_coil",
|
||||
|
||||
// Just Another Void Dimension (JAVD)
|
||||
"javd:portal_block",
|
||||
|
||||
// KubeJS
|
||||
"kubejs:debug_ctm_block",
|
||||
|
||||
// LaserIO
|
||||
"laserio:logic_chip",
|
||||
"laserio:logic_chip_raw",
|
||||
|
||||
// Megacells
|
||||
"megacells:mega_crafting_accelerator",
|
||||
"megacells:bulk_storage_component",
|
||||
/^megacells:.*mega_interface$/,
|
||||
/^megacells:.*mega_pattern_provider$/,
|
||||
/^megacells:sky_steel/,
|
||||
|
||||
// PackagedExCrafting
|
||||
"packagedexcrafting:basic_crafter",
|
||||
"packagedexcrafting:ender_crafter",
|
||||
"packagedexcrafting:flux_crafter",
|
||||
|
||||
// Solar Flux
|
||||
/^solarflux:.*_upgrade$/,
|
||||
/^solarflux:.*_glass$/,
|
||||
"solarflux:blazing_coating",
|
||||
|
||||
// Looking for removed Sophisticated Storage items?
|
||||
// Look in configs/sophisticatedcore-common.toml.
|
||||
// SophStorage offers a way to remove items from the registry with config.
|
||||
|
||||
// Systeams
|
||||
"systeams:compression_boiler",
|
||||
"systeams:disenchantment_boiler",
|
||||
"systeams:gourmand_boiler",
|
||||
"systeams:lapidary_boiler",
|
||||
"systeams:magmatic_boiler",
|
||||
"systeams:numismatic_boiler",
|
||||
"systeams:steamier_bucket",
|
||||
"systeams:steamiest_bucket",
|
||||
"systeams:steamiester_bucket",
|
||||
"systeams:steamiestest_ball",
|
||||
|
||||
// Telepastries
|
||||
"telepastries:custom_cake2",
|
||||
"telepastries:custom_cake3",
|
||||
"telepastries:twilight_cake",
|
||||
|
||||
// Thermal Series
|
||||
"thermal:apatite",
|
||||
"thermal:bitumen",
|
||||
"thermal:cinnabar",
|
||||
"thermal:coal_coke_block",
|
||||
"thermal:coal_coke",
|
||||
"thermal:constantan_coin",
|
||||
"thermal:creosote_bucket",
|
||||
"thermal:crude_oil_bucket",
|
||||
"thermal:cured_rubber",
|
||||
"thermal:drill_head",
|
||||
"thermal:dynamo_disenchantment",
|
||||
"thermal:dynamo_lapidary",
|
||||
"thermal:dynamo_stirling",
|
||||
"thermal:glowstone_bucket",
|
||||
"thermal:heavy_oil_bucket",
|
||||
"thermal:light_oil_bucket",
|
||||
"thermal:niter",
|
||||
"thermal:oil_red_sand",
|
||||
"thermal:oil_sand",
|
||||
"thermal:raw_rubber",
|
||||
"thermal:redstone_bucket",
|
||||
"thermal:rubber",
|
||||
"thermal:ruby",
|
||||
"thermal:sapphire",
|
||||
"thermal:saw_blade",
|
||||
"thermal:sawdust",
|
||||
"thermal:sulfur",
|
||||
"thermal:tar",
|
||||
/^thermal:.*_cast$/,
|
||||
|
||||
// Thermal Series Machines
|
||||
"thermal:machine_furnace",
|
||||
"thermal:machine_sawmill",
|
||||
"thermal:machine_pulverizer",
|
||||
"thermal:machine_smelter",
|
||||
"thermal:machine_centrifuge",
|
||||
"thermal:machine_crucible",
|
||||
"thermal:machine_chiller",
|
||||
"thermal:machine_refinery",
|
||||
"thermal:machine_pyrolyzer",
|
||||
"thermal:machine_bottler",
|
||||
"thermal:machine_brewer",
|
||||
"thermal:machine_crystallizer",
|
||||
"thermal:device_xp_condenser",
|
||||
|
||||
// Wireless Chargers
|
||||
"wirelesschargers:basic_wireless_block_charger",
|
||||
"wirelesschargers:advanced_wireless_block_charger",
|
||||
|
||||
// NuclearCraft
|
||||
/^nuclearcraft:.*_cooler$/,
|
||||
"nuclearcraft:synthrotron_controller",
|
||||
"nuclearcraft:accelerator_beam_port",
|
||||
"nuclearcraft:accelerator_casing",
|
||||
"nuclearcraft:accelerator_ion_source_port",
|
||||
"nuclearcraft:accelerator_port",
|
||||
"nuclearcraft:accelerator_casing_glass",
|
||||
"nuclearcraft:linear_accelerator_controller",
|
||||
"nuclearcraft:accelerator_beam",
|
||||
"nuclearcraft:xenorium298",
|
||||
"nuclearcraft:quantite",
|
||||
"nuclearcraft:portal",
|
||||
"nuclearcraft:wasteland_earth",
|
||||
"nuclearcraft:feral_ghoul_spawn_egg"
|
||||
];
|
||||
|
||||
// Create Compat
|
||||
// Removes machines related to processing
|
||||
if (Platform.isLoaded("create")) {
|
||||
global.itemNukeList.push(
|
||||
"create:millstone",
|
||||
"create:crushing_wheel",
|
||||
"create:mechanical_plough",
|
||||
"create:mechanical_crafter",
|
||||
"create:mechanical_mixer",
|
||||
"create:mechanical_saw",
|
||||
"create:mechanical_drill",
|
||||
"create:mechanical_harvester",
|
||||
"create:mechanical_press",
|
||||
"create:mechanical_roller",
|
||||
"create:encased_fan"
|
||||
);
|
||||
}
|
||||
109
kubejs/startup_scripts/nukeLists/unificationPatterns.js
Normal file
109
kubejs/startup_scripts/nukeLists/unificationPatterns.js
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
// priority: 900
|
||||
/**
|
||||
* This file defines RegEx patterns that match with large quantities of certain items.
|
||||
*
|
||||
* These items are "removed" in KubeJS/client_scripts/nukelists.js and KubeJS/server_scripts/nukelists.js
|
||||
* in a fashion similar to itemNukeList.
|
||||
*/
|
||||
|
||||
/**
|
||||
* All gears, blocks, ingots, nuggets, etc. we don't want to remove
|
||||
*/
|
||||
global.unificationExcludedItems = [
|
||||
"enderio:dark_bimetal_gear",
|
||||
"enderio:energized_gear",
|
||||
"enderio:iron_gear",
|
||||
"enderio:reinforced_obsidian_block",
|
||||
"enderio:stone_gear",
|
||||
"enderio:vibrant_gear",
|
||||
"enderio:wood_gear",
|
||||
"extendedcrafting:crystaltine_block",
|
||||
"extendedcrafting:crystaltine_ingot",
|
||||
"extendedcrafting:crystaltine_nugget",
|
||||
"extendedcrafting:luminessence_block",
|
||||
"nuclearcraft:beryllium_block",
|
||||
"nuclearcraft:ferroboron_ingot",
|
||||
"nuclearcraft:graphite_block",
|
||||
"nuclearcraft:hard_carbon_ingot",
|
||||
"nuclearcraft:tough_alloy_ingot",
|
||||
"thermal:apple_block",
|
||||
"thermal:beetroot_block",
|
||||
"thermal:carrot_block",
|
||||
"thermal:potato_block",
|
||||
"thermal:sugar_cane_block",
|
||||
];
|
||||
|
||||
/**
|
||||
* A RegEx pattern that matches with all gears, blocks, ingots, nuggets, and other often-unified items
|
||||
* from NuclearCraft, Thermal Series, EnderIO, Ad Astra, and ExtendedCrafting.
|
||||
*/
|
||||
global.unificationPattern = new RegExp(`^(?!(${global.unificationExcludedItems.join("|")})).*(nuclearcraft|thermal|enderio|ad_astra|extendedcrafting):((powdered_|raw_).*|.*(_block|_plate|_ingot|_nugget|_gear|_dust|_rod|_gem|_ore))`, "i")
|
||||
|
||||
|
||||
/**
|
||||
* All NuclearCraft fuels we don't want to remove
|
||||
*/
|
||||
global.nuclearCraftFuelsToKeep = [
|
||||
"nuclearcraft:depleted_fuel_americium_hea_242",
|
||||
"nuclearcraft:depleted_fuel_americium_lea_242",
|
||||
"nuclearcraft:depleted_fuel_berkelium_heb_248",
|
||||
"nuclearcraft:depleted_fuel_berkelium_leb_248",
|
||||
"nuclearcraft:depleted_fuel_californium_hecf_249",
|
||||
"nuclearcraft:depleted_fuel_californium_hecf_251",
|
||||
"nuclearcraft:depleted_fuel_californium_lecf_249",
|
||||
"nuclearcraft:depleted_fuel_californium_lecf_251",
|
||||
"nuclearcraft:depleted_fuel_curium_hecm_243",
|
||||
"nuclearcraft:depleted_fuel_curium_hecm_245",
|
||||
"nuclearcraft:depleted_fuel_curium_hecm_247",
|
||||
"nuclearcraft:depleted_fuel_curium_lecm_243",
|
||||
"nuclearcraft:depleted_fuel_curium_lecm_245",
|
||||
"nuclearcraft:depleted_fuel_curium_lecm_247",
|
||||
"nuclearcraft:depleted_fuel_neptunium_hen_236",
|
||||
"nuclearcraft:depleted_fuel_neptunium_len_236",
|
||||
"nuclearcraft:depleted_fuel_plutonium_hep_239",
|
||||
"nuclearcraft:depleted_fuel_plutonium_hep_241",
|
||||
"nuclearcraft:depleted_fuel_plutonium_lep_239",
|
||||
"nuclearcraft:depleted_fuel_plutonium_lep_241",
|
||||
"nuclearcraft:depleted_fuel_thorium_tbu",
|
||||
"nuclearcraft:depleted_fuel_uranium_heu_233",
|
||||
"nuclearcraft:depleted_fuel_uranium_heu_235",
|
||||
"nuclearcraft:depleted_fuel_uranium_leu_233",
|
||||
"nuclearcraft:depleted_fuel_uranium_leu_235",
|
||||
"nuclearcraft:fuel_americium_hea_242",
|
||||
"nuclearcraft:fuel_americium_lea_242",
|
||||
"nuclearcraft:fuel_berkelium_heb_248",
|
||||
"nuclearcraft:fuel_berkelium_leb_248",
|
||||
"nuclearcraft:fuel_californium_hecf_249",
|
||||
"nuclearcraft:fuel_californium_hecf_251",
|
||||
"nuclearcraft:fuel_californium_lecf_249",
|
||||
"nuclearcraft:fuel_californium_lecf_251",
|
||||
"nuclearcraft:fuel_curium_hecm_243",
|
||||
"nuclearcraft:fuel_curium_hecm_245",
|
||||
"nuclearcraft:fuel_curium_hecm_247",
|
||||
"nuclearcraft:fuel_curium_lecm_243",
|
||||
"nuclearcraft:fuel_curium_lecm_245",
|
||||
"nuclearcraft:fuel_curium_lecm_247",
|
||||
"nuclearcraft:fuel_neptunium_hen_236",
|
||||
"nuclearcraft:fuel_neptunium_len_236",
|
||||
"nuclearcraft:fuel_plutonium_hep_239",
|
||||
"nuclearcraft:fuel_plutonium_hep_239",
|
||||
"nuclearcraft:fuel_plutonium_hep_241",
|
||||
"nuclearcraft:fuel_plutonium_lep_239",
|
||||
"nuclearcraft:fuel_plutonium_lep_241",
|
||||
"nuclearcraft:fuel_thorium_tbu",
|
||||
"nuclearcraft:fuel_uranium_heu_233",
|
||||
"nuclearcraft:fuel_uranium_heu_235",
|
||||
"nuclearcraft:fuel_uranium_leu_233",
|
||||
"nuclearcraft:fuel_uranium_leu_235",
|
||||
]
|
||||
|
||||
/**
|
||||
* A RegEx pattern that matches with NuclearCraft fuels and depleted fuels except the ones in the above list.
|
||||
*/
|
||||
global.nuclearcraftFuelPattern = new RegExp(`^(?!(?:${global.nuclearCraftFuelsToKeep.join("|")})$).*nuclearcraft:(fuel|depleted_fuel).*`, "i")
|
||||
|
||||
|
||||
/**
|
||||
* A RegEx pattern that matches with all NuclearCraft isotopes.
|
||||
*/
|
||||
global.nuclearcraftIsotopePattern = /^nuclearcraft:.*(_ni|_za|_ox)$/
|
||||
73
kubejs/startup_scripts/oreVeins.js
Normal file
73
kubejs/startup_scripts/oreVeins.js
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
/**
|
||||
* Defines ore generation on Ad Astra planets.
|
||||
*/
|
||||
|
||||
const BlockTags = Java.loadClass("net.minecraft.tags.BlockTags")
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:world_gen_layer", event => {
|
||||
event.create("moon")
|
||||
.targets("#ad_astra:moon_stone_replaceables")
|
||||
.dimensions("ad_astra:moon")
|
||||
|
||||
event.create("mars")
|
||||
.targets("#ad_astra:mars_stone_replaceables")
|
||||
.dimensions("ad_astra:mars")
|
||||
|
||||
event.create("mercury")
|
||||
.targets("#ad_astra:mercury_stone_replaceables")
|
||||
.dimensions("ad_astra:mercury")
|
||||
|
||||
event.create("venus")
|
||||
.targets("#ad_astra:venus_stone_replaceables")
|
||||
.dimensions("ad_astra:venus")
|
||||
|
||||
event.create("glacio")
|
||||
.targets("#ad_astra:glacio_stone_replaceables")
|
||||
.dimensions("ad_astra:glacio")
|
||||
|
||||
event.create("glacio_deepslate")
|
||||
.targets("#minecraft:deepslate_ore_replaceables")
|
||||
.dimensions("ad_astra:glacio")
|
||||
})
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:tag_prefix", event => {
|
||||
event.create("moon", "ore")
|
||||
.stateSupplier(() => Block.getBlock("ad_astra:moon_stone").defaultBlockState())
|
||||
.baseModelLocation("ad_astra:block/moon_stone")
|
||||
.unificationEnabled(true)
|
||||
.materialIconType(GTMaterialIconType.ore)
|
||||
.generationCondition(ItemGenerationCondition.hasOreProperty)
|
||||
.miningToolTag("forge:mineable/pickaxe")
|
||||
|
||||
event.create("mars", "ore")
|
||||
.stateSupplier(() => Block.getBlock("ad_astra:mars_stone").defaultBlockState())
|
||||
.baseModelLocation("ad_astra:block/mars_stone")
|
||||
.unificationEnabled(true)
|
||||
.materialIconType(GTMaterialIconType.ore)
|
||||
.generationCondition(ItemGenerationCondition.hasOreProperty)
|
||||
.miningToolTag("forge:mineable/pickaxe")
|
||||
|
||||
event.create("mercury", "ore")
|
||||
.stateSupplier(() => Block.getBlock("ad_astra:mercury_stone").defaultBlockState())
|
||||
.baseModelLocation("ad_astra:block/mercury_stone")
|
||||
.unificationEnabled(true)
|
||||
.materialIconType(GTMaterialIconType.ore)
|
||||
.generationCondition(ItemGenerationCondition.hasOreProperty)
|
||||
.miningToolTag("forge:mineable/pickaxe")
|
||||
|
||||
event.create("venus", "ore")
|
||||
.stateSupplier(() => Block.getBlock("ad_astra:venus_stone").defaultBlockState())
|
||||
.baseModelLocation("ad_astra:block/venus_stone")
|
||||
.unificationEnabled(true)
|
||||
.materialIconType(GTMaterialIconType.ore)
|
||||
.generationCondition(ItemGenerationCondition.hasOreProperty)
|
||||
.miningToolTag("forge:mineable/pickaxe")
|
||||
|
||||
event.create("glacio", "ore")
|
||||
.stateSupplier(() => Block.getBlock("ad_astra:glacio_stone").defaultBlockState())
|
||||
.baseModelLocation("ad_astra:block/glacio_stone")
|
||||
.unificationEnabled(true)
|
||||
.materialIconType(GTMaterialIconType.ore)
|
||||
.generationCondition(ItemGenerationCondition.hasOreProperty)
|
||||
.miningToolTag("forge:mineable/pickaxe")
|
||||
})
|
||||
87
kubejs/startup_scripts/oreVeinsRemoval.js
Normal file
87
kubejs/startup_scripts/oreVeinsRemoval.js
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
/**
|
||||
* Remove Ore generation from Nuclearcraft: Neoteric and Ad Astra
|
||||
* Ad Astra is weird and generates it on multiple steps, so it requires the additional events
|
||||
* Thanks Ghosti for figuring this one out
|
||||
*/
|
||||
WorldgenEvents.remove(event => {
|
||||
event.removeFeatureById("underground_ores", [
|
||||
"nuclearcraft:boron_placed",
|
||||
"nuclearcraft:cobalt_placed",
|
||||
"nuclearcraft:lead_placed",
|
||||
"nuclearcraft:lithium_placed",
|
||||
"nuclearcraft:magnesium_placed",
|
||||
"nuclearcraft:platinum_placed",
|
||||
"nuclearcraft:silver_placed",
|
||||
"nuclearcraft:thorium_placed",
|
||||
"nuclearcraft:tin_placed",
|
||||
"nuclearcraft:uranium_placed",
|
||||
"nuclearcraft:zinc_placed",
|
||||
"ad_astra:moon_iron_ore",
|
||||
"ad_astra:deepslate_desh_ore",
|
||||
"ad_astra:moon_desh_ore",
|
||||
"ad_astra:moon_cheese_ore",
|
||||
"ad_astra:moon_ice_shard_ore",
|
||||
"ad_astra:mars_diamond_ore",
|
||||
"ad_astra:mars_ice_shard_ore",
|
||||
"ad_astra:mars_iron_ore",
|
||||
"ad_astra:mars_ostrum_ore",
|
||||
"ad_astra:mercury_iron_ore",
|
||||
"ad_astra:glacio_ice_shard_ore",
|
||||
"ad_astra:glacio_coal_ore",
|
||||
"ad_astra:glacio_copper_ore",
|
||||
"ad_astra:glacio_iron_ore",
|
||||
"ad_astra:glacio_lapis_ore",
|
||||
"ad_astra:venus_coal_ore",
|
||||
"ad_astra:venus_gold_ore",
|
||||
"ad_astra:venus_diamond_ore",
|
||||
"ad_astra:venus_calorite_ore"
|
||||
])
|
||||
})
|
||||
|
||||
WorldgenEvents.remove(event => {
|
||||
event.removeOres(props => {
|
||||
props.blocks = [
|
||||
"ad_astra:mars_diamond_ore",
|
||||
"ad_astra:mars_ice_shard_ore",
|
||||
"ad_astra:mars_iron_ore",
|
||||
"ad_astra:mars_ostrum_ore",
|
||||
"ad_astra:mercury_iron_ore",
|
||||
"ad_astra:glacio_ice_shard_ore",
|
||||
"ad_astra:glacio_coal_ore",
|
||||
"ad_astra:glacio_copper_ore",
|
||||
"ad_astra:glacio_iron_ore",
|
||||
"ad_astra:glacio_lapis_ore",
|
||||
"ad_astra:venus_coal_ore",
|
||||
"ad_astra:venus_gold_ore",
|
||||
"ad_astra:venus_diamond_ore",
|
||||
"ad_astra:venus_calorite_ore"
|
||||
]
|
||||
})
|
||||
})
|
||||
|
||||
WorldgenEvents.remove(event => {
|
||||
event.removeOres(props => {
|
||||
props.blocks = [
|
||||
"ad_astra:moon_iron_ore",
|
||||
"ad_astra:deepslate_desh_ore",
|
||||
"ad_astra:moon_desh_ore",
|
||||
"ad_astra:moon_cheese_ore",
|
||||
"ad_astra:moon_ice_shard_ore",
|
||||
"ad_astra:mars_diamond_ore",
|
||||
"ad_astra:mars_ice_shard_ore",
|
||||
"ad_astra:mars_iron_ore",
|
||||
"ad_astra:mars_ostrum_ore",
|
||||
"ad_astra:mars_ostrum_ore",
|
||||
"ad_astra:mercury_iron_ore",
|
||||
"ad_astra:glacio_ice_shard_ore",
|
||||
"ad_astra:glacio_coal_ore",
|
||||
"ad_astra:glacio_copper_ore",
|
||||
"ad_astra:glacio_iron_ore",
|
||||
"ad_astra:glacio_lapis_ore",
|
||||
"ad_astra:venus_coal_ore",
|
||||
"ad_astra:venus_gold_ore",
|
||||
"ad_astra:venus_diamond_ore",
|
||||
"ad_astra:venus_calorite_ore"
|
||||
]
|
||||
})
|
||||
})
|
||||
29
kubejs/startup_scripts/pterb_retier.js
Normal file
29
kubejs/startup_scripts/pterb_retier.js
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/**
|
||||
* Re-tiers the PTERB to late LuV - script 1 of 2.
|
||||
* - Replaces the neutronium frames with europium frames.
|
||||
*/
|
||||
|
||||
let PTERBMachine = Java.loadClass("net.neganote.gtutilities.common.machine.multiblock.PTERBMachine")
|
||||
let SupplierMemoizer = Java.loadClass("com.gregtechceu.gtceu.utils.SupplierMemoizer")
|
||||
|
||||
StartupEvents.postInit(event => {
|
||||
let UtilMachines = Java.loadClass("net.neganote.gtutilities.common.machine.UtilMachines");
|
||||
let pterb_pattern = (definition) => FactoryBlockPattern.start()
|
||||
.aisle("###XXX###", "####F####", "#########", "####H####", "####H####", "####H####", "####H####", "####H####")
|
||||
.aisle("#XXXXXXX#", "###FHF###", "####H####", "####H####", "####H####", "####F####", "#########", "#########")
|
||||
.aisle("#XXHHHXX#", "#########", "#########", "#########", "####F####", "####F####", "#########", "#########")
|
||||
.aisle("XXHHHHHXX", "#F#####F#", "#########", "####S####", "###SSS###", "###SSS###", "###S#S###", "#########")
|
||||
.aisle("XXHHHHHXX", "FH##H##HF", "#H##C##H#", "HH#SSS#HH", "HHFSSSFHH", "HFFSSSFFH", "H#######H", "H#######H")
|
||||
.aisle("XXHHHHHXX", "#F#####F#", "#########", "####S####", "###SSS###", "###SSS###", "###S#S###", "#########")
|
||||
.aisle("#XXHHHXX#", "#########", "#########", "#########", "####F####", "####F####", "#########", "#########")
|
||||
.aisle("#XXXXXXX#", "###FHF###", "####H####", "####H####", "####H####", "####F####", "#########", "#########")
|
||||
.aisle("###XXX###", "####F####", "#########", "####H####", "####H####", "####H####", "####H####", "####H####")
|
||||
.where("#", Predicates.any())
|
||||
.where("X", Predicates.blocks("gtceu:palladium_substation").setMinGlobalLimited(30).or(PTERBMachine.getHatchPredicates()))
|
||||
.where("S", Predicates.blocks("gtceu:superconducting_coil"))
|
||||
.where("H", Predicates.blocks("gtceu:high_power_casing"))
|
||||
.where("C", Predicates.controller(Predicates.blocks(UtilMachines.PTERB_MACHINE.getBlock())))
|
||||
.where("F", Predicates.frames(GTMaterials.Europium))
|
||||
.build()
|
||||
UtilMachines.PTERB_MACHINE.setPatternFactory(SupplierMemoizer.memoize(() => pterb_pattern.apply(UtilMachines.PTERB_MACHINE)));
|
||||
})
|
||||
257
kubejs/startup_scripts/registry/block_registry.js
Normal file
257
kubejs/startup_scripts/registry/block_registry.js
Normal file
|
|
@ -0,0 +1,257 @@
|
|||
/**
|
||||
* Block Registry - defines ID, name,
|
||||
* block properties, and block tags of custom blocks.
|
||||
*/
|
||||
StartupEvents.registry("block", event => {
|
||||
|
||||
// Compressed Blocks
|
||||
event.create("compressed_sand")
|
||||
.displayName("Compressed Sand")
|
||||
.soundType("sand")
|
||||
.resistance(1).hardness(1)
|
||||
.tagBlock("mineable/shovel").requiresTool(true)
|
||||
.property(BlockProperties.FALLING);
|
||||
|
||||
event.create("double_compressed_sand")
|
||||
.displayName("Double Compressed Sand")
|
||||
.soundType("sand")
|
||||
.resistance(2).hardness(2)
|
||||
.tagBlock("mineable/shovel").requiresTool(true)
|
||||
.property(BlockProperties.FALLING);
|
||||
|
||||
event.create("compressed_red_sand")
|
||||
.displayName("Compressed Red Sand")
|
||||
.soundType("sand")
|
||||
.resistance(1).hardness(1)
|
||||
.tagBlock("mineable/shovel").requiresTool(true)
|
||||
.property(BlockProperties.FALLING);
|
||||
|
||||
event.create("double_compressed_red_sand")
|
||||
.displayName("Double Compressed Red Sand")
|
||||
.soundType("sand")
|
||||
.resistance(2).hardness(2)
|
||||
.tagBlock("mineable/shovel").requiresTool(true)
|
||||
.property(BlockProperties.FALLING);
|
||||
|
||||
event.create("infinity_dust_block", "falling")
|
||||
.displayName("Infinity Dust Block")
|
||||
.soundType("sand")
|
||||
.resistance(0.6).hardness(0.5)
|
||||
.tagBlock("mineable/shovel").requiresTool(true);
|
||||
|
||||
event.create("compressed_infinity_dust_block", "falling")
|
||||
.displayName("Compressed Infinity Dust Block")
|
||||
.soundType("sand")
|
||||
.resistance(1).hardness(1)
|
||||
.tagBlock("mineable/shovel").requiresTool(true);
|
||||
|
||||
event.create("double_compressed_infinity_dust_block", "falling")
|
||||
.displayName("Double Compressed Infinity Dust Block")
|
||||
.soundType("sand")
|
||||
.resistance(2).hardness(2)
|
||||
.tagBlock("mineable/shovel").requiresTool(true);
|
||||
|
||||
|
||||
// Micro Miner Cores/Frames
|
||||
event.create("electrum_micro_miner_core")
|
||||
.displayName("Electrum Micro Miner Engine Core")
|
||||
.soundType("metal")
|
||||
.resistance(3)
|
||||
.hardness(3)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true)
|
||||
.defaultCutout();
|
||||
|
||||
event.create("signalum_micro_miner_core")
|
||||
.displayName("Signalum Micro Miner Engine Core")
|
||||
.soundType("metal")
|
||||
.resistance(4)
|
||||
.hardness(4)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true)
|
||||
.defaultCutout();
|
||||
|
||||
event.create("enderium_micro_miner_core")
|
||||
.displayName("Enderium Micro Miner Engine Core")
|
||||
.soundType("metal")
|
||||
.resistance(5)
|
||||
.hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true)
|
||||
.defaultCutout();
|
||||
|
||||
event.create("electrum_micro_miner_frame")
|
||||
.displayName("Electrum Micro Miner Engine Frame")
|
||||
.soundType("metal")
|
||||
.resistance(3)
|
||||
.hardness(3)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true)
|
||||
.defaultCutout();
|
||||
|
||||
event.create("signalum_micro_miner_frame")
|
||||
.displayName("Signalum Micro Miner Engine Frame")
|
||||
.soundType("metal")
|
||||
.resistance(4)
|
||||
.hardness(4)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true)
|
||||
.defaultCutout();
|
||||
|
||||
event.create("enderium_micro_miner_frame")
|
||||
.displayName("Enderium Micro Miner Engine Frame")
|
||||
.soundType("metal")
|
||||
.resistance(5)
|
||||
.hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true)
|
||||
.defaultCutout();
|
||||
|
||||
event.create("warp_core")
|
||||
.displayName("Warp Core")
|
||||
.soundType("metal")
|
||||
.resistance(6).hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true);
|
||||
|
||||
event.create("warp_controller")
|
||||
.displayName("Warp Controller")
|
||||
.soundType("metal")
|
||||
.resistance(6).hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true);
|
||||
|
||||
event.create("universal_warp_core")
|
||||
.displayName("Universal Warp Core")
|
||||
.soundType("metal")
|
||||
.resistance(6).hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true);
|
||||
|
||||
event.create("universal_warp_controller")
|
||||
.displayName("Universal Warp Controller")
|
||||
.soundType("metal")
|
||||
.resistance(6).hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true);
|
||||
|
||||
|
||||
// Dense Ores
|
||||
const ores = [
|
||||
"redstone",
|
||||
"diamond",
|
||||
"emerald",
|
||||
"gold",
|
||||
"lapis",
|
||||
"iron",
|
||||
"coal",
|
||||
"copper",
|
||||
"nether_quartz",
|
||||
"oilsands"
|
||||
]
|
||||
|
||||
ores.forEach(ore => {
|
||||
event.create(`dense_${ore}_ore`)
|
||||
.soundType("stone")
|
||||
.resistance(6)
|
||||
.hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBoth("forge:ores/dense")
|
||||
.tagBoth(`forge:ores/dense/${ore}`)
|
||||
.requiresTool(true);
|
||||
});
|
||||
|
||||
event.create("dense_magma_block")
|
||||
.soundType("stone")
|
||||
.resistance(6)
|
||||
.hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBoth("forge:ores/dense")
|
||||
.tagBoth("forge:ores/dense/magma")
|
||||
.requiresTool(true)
|
||||
.lightLevel(1.0);
|
||||
|
||||
|
||||
// Machine Casings
|
||||
const casings = [
|
||||
"microverse",
|
||||
"dark_soularium",
|
||||
"omnic_matrix_machine",
|
||||
"dimensional_stabilization_netherite",
|
||||
"cryolobus",
|
||||
"bioalloy",
|
||||
"bioalloy_fusion",
|
||||
]
|
||||
|
||||
casings.forEach(casing => {
|
||||
event.create(`${casing}_casing`)
|
||||
.soundType("metal")
|
||||
.resistance(6).hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true);
|
||||
});
|
||||
|
||||
|
||||
// Misc
|
||||
event.create("starry_diamond_block")
|
||||
.displayName("Starry Diamatine Block")
|
||||
.soundType("metal")
|
||||
.resistance(6).hardness(5)
|
||||
.tagBlock("mineable/pickaxe").requiresTool(true)
|
||||
.textureAll("kubejs:block/microverse/starry_diamond_block");
|
||||
|
||||
event.create("dust", "falling")
|
||||
.soundType("sand")
|
||||
.resistance(0.4).hardness(0.4)
|
||||
.tag("mineable/shovel").displayName("Dust Block")
|
||||
.property(BlockProperties.FALLING);
|
||||
|
||||
event.create("dark_steel_machine_hull")
|
||||
.displayName("Dark Steel Machine Hull")
|
||||
.soundType("metal")
|
||||
.resistance(6).hardness(5)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true);
|
||||
|
||||
event.create("excitationcoil", "cardinal")
|
||||
.displayName("Excitation Coil")
|
||||
.soundType("metal")
|
||||
.renderType("cutout")
|
||||
.box(3, 0, 3, 13, 1, 13)
|
||||
.box(4, 1, 4, 12, 9, 12)
|
||||
.tag("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.requiresTool(true);
|
||||
|
||||
event.create("omnic_matrix_coil_block", "gtceu:coil")
|
||||
.temperature(12600)
|
||||
.level(16)
|
||||
.energyDiscount(16)
|
||||
.tier(8)
|
||||
.coilMaterial(() => GTMaterials.get("omnium"))
|
||||
.hardness(5)
|
||||
.requiresTool(true)
|
||||
.tagBlock("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.soundType("metal")
|
||||
|
||||
event.create("meowni_plush", "cardinal")
|
||||
.displayName("Meowni Plush")
|
||||
.soundType("wool")
|
||||
.renderType("cutout")
|
||||
.tag("mineable/pickaxe")
|
||||
.tagBlock("forge:mineable/wrench")
|
||||
.defaultCutout();
|
||||
});
|
||||
30
kubejs/startup_scripts/registry/fluid_registry.js
Normal file
30
kubejs/startup_scripts/registry/fluid_registry.js
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
/**
|
||||
* Fluid Registry - defines ID, name,
|
||||
* color, and temperature of custom fluids.
|
||||
*/
|
||||
StartupEvents.registry("fluid", event => {
|
||||
|
||||
// Thermal Expansion Fluids
|
||||
event.create("molten_pyrotheum")
|
||||
.bucketColor(Color.rgba(247, 219, 58, 255))
|
||||
.displayName("§6Blazing Pyrotheum") // orange
|
||||
.temperature(8190)
|
||||
.stillTexture("kubejs:block/pyrotheum_still")
|
||||
.flowingTexture("kubejs:block/pyrotheum_flow");
|
||||
event.create("molten_cryotheum")
|
||||
.bucketColor(Color.rgba(67, 244, 247, 255))
|
||||
.displayName("§bGelid Cryotheum") // aqua
|
||||
.temperature(5)
|
||||
.stillTexture("kubejs:block/cryotheum_still")
|
||||
.flowingTexture("kubejs:block/cryotheum_flow");
|
||||
event.create("molten_petrotheum")
|
||||
.bucketColor(Color.rgba(26, 19, 16, 255))
|
||||
.displayName("§8Tectonic Petrotheum") // darkGray
|
||||
.stillTexture("kubejs:block/petrotheum_still")
|
||||
.flowingTexture("kubejs:block/petrotheum_flow");
|
||||
event.create("molten_aerotheum")
|
||||
.bucketColor(Color.rgba(200, 218, 148, 255))
|
||||
.displayName("§7Zephyrean Aerotheum") // gray
|
||||
.stillTexture("kubejs:block/aerotheum_still")
|
||||
.flowingTexture("kubejs:block/aerotheum_flow");
|
||||
})
|
||||
531
kubejs/startup_scripts/registry/item_registry.js
Normal file
531
kubejs/startup_scripts/registry/item_registry.js
Normal file
|
|
@ -0,0 +1,531 @@
|
|||
/**
|
||||
* Item Registry - defines ID, name, texture
|
||||
* and certain other properties of custom items.
|
||||
*/
|
||||
StartupEvents.registry("item", event => {
|
||||
const miners = [
|
||||
"1",
|
||||
"2",
|
||||
"2half",
|
||||
"2half_damaged",
|
||||
"3",
|
||||
"4",
|
||||
"4half",
|
||||
"4half_damaged",
|
||||
"5",
|
||||
"6",
|
||||
"6_damaged",
|
||||
"7",
|
||||
"7_damaged",
|
||||
"8",
|
||||
"8_damaged",
|
||||
"8half",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12"
|
||||
]
|
||||
|
||||
const stabilized_miners = [
|
||||
"2half",
|
||||
"4half",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
]
|
||||
|
||||
|
||||
// Regular Microminers
|
||||
for (const tier of miners) {
|
||||
event.create(`microminer_t${tier}`).maxStackSize(16).texture(`kubejs:item/microverse/microminer_t${tier}`)
|
||||
}
|
||||
|
||||
// Stabilized Miners
|
||||
for (const tier of stabilized_miners) {
|
||||
event.create(`stabilized_microminer_t${tier}`)
|
||||
.maxStackSize(16)
|
||||
.texture(`kubejs:item/microverse/microminer_t${tier}`)
|
||||
.glow(true);
|
||||
}
|
||||
|
||||
// Microminer Components
|
||||
event.create("basic_mining_laser").displayName("§eBasic Mining Laser")
|
||||
event.create("reinforced_mining_laser").displayName("§bReinforced Mining Laser")
|
||||
event.create("supercharged_laser_array").displayName("§eSupercharged Laser Array")
|
||||
event.create("basic_micro_miner_guidance_system").displayName("§eBasic Micro Miner Guidance System")
|
||||
event.create("advanced_micro_miner_guidance_system").displayName("§eAdvanced Micro Miner Guidance System")
|
||||
event.create("warp_engine").displayName("§dWarp Engine")
|
||||
event.create("hadal_warp_engine").displayName("§dHadal Warp Engine")
|
||||
event.create("universal_navigator").displayName("§dUniversal Navigator")
|
||||
event.create("extradimensional_navigator").displayName("§dExtradimensional Navigator")
|
||||
|
||||
// Quantum Flux
|
||||
event.create("quantum_flux").displayName("§dQuantum Flux")
|
||||
|
||||
// Miner kits
|
||||
event.create("gem_sensor").maxStackSize(16).displayName("Gemstone Sensor")
|
||||
event.create("basic_drilling_kit").maxStackSize(16).texture("kubejs:item/miner_kits/basic_drilling_kit")
|
||||
event.create("advanced_drilling_kit").maxStackSize(16).texture("kubejs:item/miner_kits/advanced_drilling_kit")
|
||||
event.create("elite_drilling_kit").maxStackSize(16).texture("kubejs:item/miner_kits/elite_drilling_kit")
|
||||
event.create("blasting_kit").maxStackSize(16).texture("kubejs:item/miner_kits/blasting_kit")
|
||||
event.create("microversal_alchemy_kit").maxStackSize(16).texture("kubejs:item/miner_kits/microversal_alchemy_kit")
|
||||
|
||||
// T9+ Devices
|
||||
event.create("gravitational_amplifier").maxStackSize(16)
|
||||
event.create("universal_collapse_device").maxStackSize(16)
|
||||
|
||||
// Heavy platings
|
||||
event.create("quantum_fluxed_eternium_heavy_plating")
|
||||
.displayName("§dQuantum Fluxed Eternium Heavy Plating")
|
||||
.texture("kubejs:item/microverse/eternium_heavy_plating")
|
||||
event.create("universe_resistant_neutronium_heavy_plating")
|
||||
.displayName("§dUniverse Resistant Neutronium Heavy Plating")
|
||||
.texture("kubejs:item/microverse/neutronium_heavy_plating")
|
||||
event.create("elementally_infused_omnic_matrix_heavy_plating")
|
||||
.displayName("§dElementally Infused Omnic Matrix Heavy Plating")
|
||||
.texture("kubejs:item/microverse/omnic_matrix_heavy_plating")
|
||||
event.create("dimensionally_stabilized_infinity_heavy_plating")
|
||||
.displayName("§dDimensionally Stabilized Infinity Heavy Plating")
|
||||
.texture("kubejs:item/microverse/infinity_heavy_plating")
|
||||
event.create("timeless_monic_heavy_plating")
|
||||
.displayName("§dTimeless Monic Heavy Plating")
|
||||
.texture("kubejs:item/microverse/dormant_monic_heavy_plating")
|
||||
event.create("causality_exempt_monic_heavy_plating")
|
||||
.displayName("§1Causality Exempt Monic Heavy Plating")
|
||||
.texture("kubejs:item/microverse/monic_heavy_plating")
|
||||
|
||||
|
||||
// Monicoins
|
||||
if (doMonicoins) {
|
||||
event.create("moni_penny")
|
||||
}
|
||||
event.create("moni_nickel")
|
||||
event.create("moni_quarter")
|
||||
event.create("moni_dollar").glow(true)
|
||||
|
||||
|
||||
// Widgets
|
||||
event.create("wooden_widget").displayName("Wooden Widget")
|
||||
event.create("wooden_widget_left").displayName("Wooden Widget Left Part")
|
||||
event.create("wooden_widget_right").displayName("Wooden Widget Right Part")
|
||||
event.create("stone_widget").displayName("Stone Widget")
|
||||
event.create("stone_widget_up").displayName("Stone Widget Up Side")
|
||||
event.create("stone_widget_down").displayName("Stone Widget Down Side")
|
||||
event.create("alloy_widget").displayName("Alloy Widget")
|
||||
event.create("ender_widget").displayName("Ender Widget")
|
||||
|
||||
|
||||
// Magnetron
|
||||
if (doHarderProcessing) {
|
||||
event.create("magnetron")
|
||||
}
|
||||
|
||||
|
||||
// Spacefaring Items
|
||||
event.create("radiation_layer")
|
||||
event.create("pressure_layer")
|
||||
event.create("thermal_cloth")
|
||||
event.create("unprepared_space_helmet")
|
||||
event.create("unprepared_space_suit")
|
||||
event.create("unprepared_space_pants")
|
||||
event.create("unprepared_space_boots")
|
||||
|
||||
|
||||
// Data
|
||||
event.create("impossible_realm_data").displayName("§bImpossible Realm Data")
|
||||
event.create("dragon_lair_data").displayName("§dDragon Lair Data")
|
||||
event.create("wither_realm_data").displayName("§dWither Realm Data")
|
||||
event.create("deep_dark_data").displayName("§dDeep Dark Data")
|
||||
event.create("lair_of_the_warden_data").displayName("§dLair Of The Warden Data")
|
||||
event.create("stellar_creation_data").displayName("§bStellar Creation Data")
|
||||
event.create("universe_creation_data").displayName("§dUniverse Creation Data")
|
||||
event.create("shattered_star_data").displayName("§dShattered Star Data")
|
||||
event.create("shattered_universe_data").displayName("§dShattered Universe Data")
|
||||
event.create("corrupted_universe_data").displayName("§dCorrupted Universe Data")
|
||||
|
||||
|
||||
// Creative Data
|
||||
event.create("omnic_data")
|
||||
event.create("creative_storage_data")
|
||||
event.create("creative_computation_data")
|
||||
event.create("creative_energy_data")
|
||||
|
||||
// Infinity Fluid Cell Base
|
||||
|
||||
|
||||
// Endgame Items
|
||||
event.create("diamond_lattice")
|
||||
event.create("neutron_emitter")
|
||||
event.create("ultimate_gem").displayName("§dUltimate Gem").glow(true)
|
||||
event.create("mote_of_omnium").displayName("Mote of Omnium")
|
||||
.glow(true).rarity("epic")
|
||||
event.create("heart_of_a_universe").displayName("§dHeart Of A Universe")
|
||||
event.create("exotic_materials_catalyst").displayName("Exotic Materials Catalyst")
|
||||
event.create("eternal_catalyst").displayName("Eternal Catalyst")
|
||||
|
||||
|
||||
// Infinity
|
||||
event.create("infinity_catalyst").rarity("epic")
|
||||
event.create("dormant_furious_infinity_catalyst")
|
||||
event.create("furious_infinity_catalyst").rarity("epic")
|
||||
event.create("inert_serene_infinity_catalyst")
|
||||
event.create("serene_infinity_catalyst").rarity("epic")
|
||||
event.create("dormant_infinity_compound_ingot")
|
||||
|
||||
|
||||
// Monium
|
||||
event.create("field_stabilised_omnic_pulsar_compound")
|
||||
event.create("quasi_stable_neutron_star").displayName("Quasi-Stable Neutron Star")
|
||||
|
||||
|
||||
// Singularities
|
||||
event.create("singularity_containment_unit")
|
||||
event.create("contained_singularity")
|
||||
|
||||
|
||||
// Infinity Tools
|
||||
event.create("infinity_power_unit").rarity("epic").maxStackSize(1)
|
||||
event.create("infinity_file").rarity("epic").maxStackSize(1)
|
||||
event.create("infinity_hammer").rarity("epic").maxStackSize(1)
|
||||
event.create("infinity_screwdriver").rarity("epic").maxStackSize(1)
|
||||
event.create("infinity_wrench").rarity("epic").maxStackSize(1)
|
||||
event.create("infinity_wire_cutter").rarity("epic").maxStackSize(1)
|
||||
|
||||
|
||||
// Solidified Elements
|
||||
const solidified_elements = [
|
||||
["argon", "#12bc12"],
|
||||
["chlorine", "#2d6d6d"],
|
||||
["fluorine", "#4b7ba6"],
|
||||
["helium", "#e8ea86"],
|
||||
["hydrogen", "#12128a"],
|
||||
["krypton", "#7ffe7f"],
|
||||
["mercury", "#ad9dce"],
|
||||
["neon", "#b88a8a"],
|
||||
["nitrogen", "#129192"],
|
||||
["oxygen", "#4494bc"],
|
||||
["radon", "#bc38bc"],
|
||||
["xenon", "#12bcbc"],
|
||||
["experience", "#04ff00"]
|
||||
]
|
||||
|
||||
for (const [element, elemColor] of solidified_elements) {
|
||||
event.create(`solidified_${element}`)
|
||||
.textureJson({ layer0: "kubejs:item/solidified_element" })
|
||||
.color(0, elemColor);
|
||||
}
|
||||
|
||||
|
||||
// Dense Elemental Gasses (Solidification recipes are part of the Solidified Elements Section)
|
||||
event.create("dense_hydrogen").rarity("Uncommon")
|
||||
event.create("ultra_dense_hydrogen").rarity("Rare")
|
||||
|
||||
event.create("dense_helium").rarity("Uncommon")
|
||||
event.create("ultra_dense_helium").rarity("Rare")
|
||||
|
||||
// Stabilized Elements
|
||||
const stabilized_elements = [
|
||||
["einsteinium", "#ce9f00"],
|
||||
["berkelium", "#a33f20"],
|
||||
["neptunium", "#486d7b"],
|
||||
["plutonium", "#ba2727"],
|
||||
["uranium", "#1d891d"],
|
||||
["curium", "#58307f"],
|
||||
["californium", "#7d0222"],
|
||||
["americium", "#287869"],
|
||||
["oganesson", "#443936"]
|
||||
]
|
||||
|
||||
for (const [element, elemColor] of stabilized_elements) {
|
||||
event.create(`stabilized_${element}`)
|
||||
.textureJson({ layer0: "kubejs:item/stabilized_element" })
|
||||
.color(0, elemColor);
|
||||
}
|
||||
|
||||
|
||||
// Misc Items
|
||||
event.create("ender_star").glow(true)
|
||||
event.create("endest_star").glow(true)
|
||||
event.create("grains_of_innocence")
|
||||
event.create("radium_salt").rarity("Epic")
|
||||
|
||||
// Thrusters
|
||||
const thrusters = ["conductive_iron","leadstone","electrical_steel","hardened","energetic","reinforced","resonant","vibrant","dark_soularium","fluxed"]
|
||||
|
||||
thrusters.forEach(thruster => {
|
||||
event.create(`${thruster}_thruster`).texture(`kubejs:item/thruster/${thruster}`)
|
||||
})
|
||||
|
||||
// Planet dusts
|
||||
event.create("moon_dust").texture("kubejs:item/regolith_dust/moon_dust")
|
||||
event.create("mars_dust").texture("kubejs:item/regolith_dust/mars_dust")
|
||||
event.create("venus_dust").texture("kubejs:item/regolith_dust/venus_dust")
|
||||
event.create("mercury_dust").texture("kubejs:item/regolith_dust/mercury_dust")
|
||||
event.create("glacio_dust").texture("kubejs:item/regolith_dust/glacio_dust")
|
||||
|
||||
|
||||
// Thermal Series item ports
|
||||
event.create("aerotheum_dust").texture("kubejs:item/aerotheum_blend")
|
||||
event.create("cryotheum_dust").texture("kubejs:item/cryotheum_blend")
|
||||
event.create("petrotheum_dust").texture("kubejs:item/petrotheum_blend")
|
||||
event.create("pyrotheum_dust").texture("kubejs:item/pyrotheum_blend")
|
||||
event.create("primal_mana").rarity("epic")
|
||||
|
||||
event.create("destabilized_clathrate").rarity("uncommon")
|
||||
event.create("energized_clathrate").rarity("uncommon")
|
||||
event.create("resonant_clathrate").rarity("rare")
|
||||
|
||||
|
||||
// Ender Spore
|
||||
if (!doHNN) {
|
||||
event.create("ender_spore")
|
||||
}
|
||||
|
||||
|
||||
// Thermal Augments
|
||||
event.create("redstone_transmission_coil")
|
||||
event.create("thermal:upgrade_augment_1");
|
||||
event.create("thermal:upgrade_augment_2");
|
||||
event.create("thermal:upgrade_augment_4");
|
||||
event.create("thermal:upgrade_augment_3");
|
||||
|
||||
// Advanced Thermal Storage augments
|
||||
event.create("thermal:rf_coil_augment_advanced")
|
||||
event.create("thermal:rf_coil_storage_augment_advanced")
|
||||
event.create("thermal:rf_coil_xfer_augment_advanced")
|
||||
event.create("thermal:fluid_tank_augment_advanced")
|
||||
|
||||
|
||||
// Jetpack Units
|
||||
event.create("empty_fluxed_jetpack_unit")
|
||||
event.create("empty_soularium_jetpack_unit")
|
||||
event.create("flight_control_unit")
|
||||
event.create("glowstone_elevation_unit")
|
||||
event.create("cryotheum_coolant_unit")
|
||||
|
||||
// EnderIO Capacitors
|
||||
// TODO: GIVE CAPACITORS LORE AND NBT FOR THEM TO WORK
|
||||
event.create("compressed_octadic_capacitor")
|
||||
event.create("double_compressed_octadic_capacitor")
|
||||
|
||||
|
||||
// Extra Utilities 2
|
||||
event.create("resonating_crystal")
|
||||
event.create("ender_shard")
|
||||
|
||||
|
||||
// Nether Star Crafting Components
|
||||
event.create("nether_star_north").displayName("Nether Star North Tip")
|
||||
event.create("nether_star_south").displayName("Nether Star South Tip")
|
||||
event.create("nether_star_east").displayName("Nether Star East Tip")
|
||||
event.create("nether_star_west").displayName("Nether Star West Tip")
|
||||
event.create("nether_star_center").displayName("Nether Star Center")
|
||||
|
||||
|
||||
// ArmorPlus monster drops
|
||||
event.create("guardian_scale").rarity("rare")
|
||||
event.create("ender_dragon_scale").rarity("epic")
|
||||
event.create("ender_dragon_scale_dust")
|
||||
event.create("wither_bone")
|
||||
event.create("the_ultimate_material")
|
||||
|
||||
|
||||
// Pulsating Items
|
||||
event.create("pulsating_mesh")
|
||||
event.create("pulsating_dust")
|
||||
|
||||
|
||||
// Sculk Items
|
||||
event.create("warden_horn")
|
||||
event.create("sculk_core")
|
||||
event.create("mesol_energy_core")
|
||||
event.create("bathyal_energy_core")
|
||||
event.create("abyssal_energy_core")
|
||||
event.create("hadal_energy_core")
|
||||
event.create("dischargement_core")
|
||||
event.create("warden_heart")
|
||||
event.create("hadal_shard")
|
||||
|
||||
|
||||
// Nethline intermediate products
|
||||
event.create("purified_ancient_debris_dust").texture("kubejs:item/netherite/purified_ancient_debris_dust")
|
||||
event.create("processed_ancient_debris_dust").texture("kubejs:item/netherite/processed_ancient_debris_dust")
|
||||
event.create("inert_netherite_scrap").texture("kubejs:item/netherite/inert_netherite_scrap")
|
||||
event.create("inert_nether_compound_ingot").texture("kubejs:item/netherite/inert_nether_compound_ingot")
|
||||
|
||||
// Solid Naquadah Fuel Line
|
||||
event.create("empty_fuel_rod").texture("kubejs:item/naquadah/empty_fuel_rod")
|
||||
event.create("naquadah_fuel_pellet").texture("kubejs:item/naquadah/naquadah_fuel_pellet")
|
||||
event.create("naquadah_fuel_rod").texture("kubejs:item/naquadah/naquadah_fuel_rod")
|
||||
event.create("hot_depleted_naquadah_fuel_rod").texture("kubejs:item/naquadah/hot_depleted_naquadah_fuel_rod")
|
||||
event.create("depleted_naquadah_fuel_rod").texture("kubejs:item/naquadah/depleted_naquadah_fuel_rod")
|
||||
event.create("unsintered_naquadah_fuel_pellet").texture("kubejs:item/naquadah/unsintered_naquadah_fuel_pellet")
|
||||
event.create("depleted_naquadah_fuel_pellet").texture("kubejs:item/naquadah/depleted_naquadah_fuel_pellet")
|
||||
event.create("naquadah_fuel_dust").texture("kubejs:item/naquadah/naquadah_fuel_dust")
|
||||
event.create("naquadah_fuel_primer_dust").texture("kubejs:item/naquadah/naquadah_fuel_primer_dust")
|
||||
event.create("naquadah_waste").texture("kubejs:item/naquadah/naquadah_waste")
|
||||
event.create("inactivated_naquadah_fuel_dust").texture("kubejs:item/naquadah/inactivated_naquadah_fuel_dust")
|
||||
event.create("depleted_naquadah_fuel_dust").texture("kubejs:item/naquadah/depleted_naquadah_fuel_dust")
|
||||
event.create("crude_naquadah_fuel_blend").texture("kubejs:item/naquadah/crude_naquadah_fuel_blend")
|
||||
event.create("hot_naquadah_fuel_crystal").texture("kubejs:item/naquadah/hot_naquadah_fuel_crystal")
|
||||
event.create("naquadah_fuel_crystal").texture("kubejs:item/naquadah/naquadah_fuel_crystal")
|
||||
event.create("naquadah_fuel_mixture_dust").texture("kubejs:item/naquadah/naquadah_fuel_mixture_dust")
|
||||
|
||||
// Crystal Matrix Line
|
||||
event.create("raw_nanotube_substrate").texture("kubejs:item/matrix/raw_nanotube_substrate")
|
||||
event.create("prepared_nanotube_substrate").texture("kubejs:item/matrix/prepared_nanotube_substrate")
|
||||
event.create("cobalt_nanoparticles").texture("kubejs:item/matrix/cobalt_nanoparticles")
|
||||
event.create("grown_nanotube_substrate").texture("kubejs:item/matrix/grown_nanotube_substrate")
|
||||
event.create("carbon_nanotubes").texture("kubejs:item/matrix/carbon_nanotubes")
|
||||
event.create("porous_matrix_mesh").texture("kubejs:item/matrix/porous_matrix_mesh")
|
||||
event.create("dense_matrix_mesh").texture("kubejs:item/matrix/dense_matrix_mesh")
|
||||
|
||||
// Terbium Line
|
||||
event.create("rare_earth_sulfate").texture("kubejs:item/terbium/rare_earth_sulfate")
|
||||
event.create("rare_earth_oxide").texture("kubejs:item/terbium/rare_earth_oxide")
|
||||
event.create("rare_earth_salt").texture("kubejs:item/terbium/rare_earth_salt")
|
||||
|
||||
|
||||
// Sculk bioalloy processing intermediate products
|
||||
event.create("sculk-compatible_trellis_microstructure").texture("kubejs:item/bioalloy/sculk-compatible_trellis_microstructure")
|
||||
event.create("fibrinogenic_sculk_goo").texture("kubejs:item/bioalloy/fibrinogenic_sculk_goo")
|
||||
event.create("sculk-saturated_microstructure_pulp").texture("kubejs:item/bioalloy/sculk-saturated_microstructure_pulp")
|
||||
event.create("animated_bioalloy_pulp").texture("kubejs:item/bioalloy/animated_bioalloy_pulp")
|
||||
|
||||
|
||||
// Alien Scrapline
|
||||
event.create("alien_scrap")
|
||||
event.create("ruined_hull")
|
||||
event.create("ruined_machine_parts")
|
||||
event.create("ruined_capacitor")
|
||||
event.create("ruined_sensor")
|
||||
event.create("ruined_emitter")
|
||||
event.create("crushed_capacitor")
|
||||
event.create("magnetic_capacitor_dust")
|
||||
event.create("crushed_sensor")
|
||||
event.create("holmium_compound")
|
||||
event.create("holmium_oxide_glass_dust")
|
||||
|
||||
|
||||
// Eltz metal processing intermediate products
|
||||
event.create("reactive_dust_mixture").textureJson({ layer0: "kubejs:item/eltz/reactive_dust_mixture_base", layer1: "kubejs:item/eltz/reactive_dust_mixture_overlay" })
|
||||
event.create("inert_dust_mixture").texture("kubejs:item/eltz/inert_dust_mixture")
|
||||
event.create("dusty_inert_powder").texture("kubejs:item/eltz/dusty_inert_powder")
|
||||
event.create("shiny_powder_mixture").texture("kubejs:item/eltz/shiny_powder_mixture")
|
||||
event.create("shiny_metal_powder").texture("kubejs:item/eltz/shiny_metal_powder")
|
||||
event.create("inert_clumps").texture("kubejs:item/eltz/inert_clumps")
|
||||
event.create("clean_inert_cluster").texture("kubejs:item/eltz/clean_inert_cluster")
|
||||
event.create("eltic_crystal_seed").texture("kubejs:item/eltz/eltic_crystal_seed")
|
||||
|
||||
|
||||
// Post-Tank Wafer items
|
||||
event.create("uxpic_wafer").texture("kubejs:item/uxpic/uxpic_wafer").displayName("UXPIC Wafer")
|
||||
event.create("uxpic_chip").texture("kubejs:item/uxpic/uxpic_chip").displayName("UXPIC Chip")
|
||||
event.create("universe_boule").texture("kubejs:item/universalwafer/universal_boule").displayName("Universe-doped Monocrystalline Silicon Boule")
|
||||
event.create("universe_wafer").texture("kubejs:item/universalwafer/universal_wafer").displayName("Universe-doped Wafer")
|
||||
event.create("unactivated_multidimensional_cpu_wafer").texture("kubejs:item/multidimensionalcpu/unactivated_multidimensional_cpu_wafer").displayName("Unactivated Multidimensional CPU Wafer")
|
||||
event.create("multidimensional_cpu_wafer").texture("kubejs:item/multidimensionalcpu/multidimensional_cpu_wafer").displayName("Multidimensional CPU Wafer")
|
||||
event.create("multidimensional_cpu_chip").texture("kubejs:item/multidimensionalcpu/multidimensional_cpu_chip").displayName("Multidimensional CPU Chip")
|
||||
event.create("hyperdynamic_ram_wafer").texture("kubejs:item/hyperdynamicram/hyperdynamic_ram_wafer").displayName("Hyperdynamic RAM Wafer")
|
||||
event.create("hyperdynamic_ram_chip_base").texture("kubejs:item/hyperdynamicram/hyperdynamic_ram_chip").displayName("Hyperdynamic RAM Chip Base")
|
||||
event.create("hyperdynamic_ram_chip").texture("kubejs:item/hyperdynamicram/activated_hyperdynamic_ram_chip").displayName("Hyperdynamic RAM Chip")
|
||||
event.create("quantum_soc_wafer").texture("kubejs:item/quantumsoc/quantum_soc_wafer").displayName("Quantum SoC Wafer")
|
||||
event.create("quantum_soc_chip_base").texture("kubejs:item/quantumsoc/quantum_soc_chip_base").displayName("Quantum SoC Chip Base")
|
||||
event.create("quantum_soc_chip").texture("kubejs:item/quantumsoc/quantum_soc_chip").displayName("Quantum SoC Chip")
|
||||
|
||||
|
||||
// Complex SMDs
|
||||
const smds = [
|
||||
"transistor",
|
||||
"resistor",
|
||||
"capacitor",
|
||||
"diode",
|
||||
"inductor"
|
||||
]
|
||||
|
||||
for (const name of smds) {
|
||||
event.create(`complex_smd_${name}`)
|
||||
}
|
||||
|
||||
|
||||
// Post-tank circuits, circuit boards, processing units
|
||||
function Circuit(theme, type, volt) {
|
||||
event.create(`${theme}_${type}`)
|
||||
.textureJson({ layer0: `kubejs:item/circuits/${theme}_${type}` })
|
||||
.tag(`gtceu:circuits/${volt}`)
|
||||
}
|
||||
|
||||
function Mainframe(theme, volt) {
|
||||
event.create(`${theme}_processor_mainframe`)
|
||||
.textureJson({ layer0: `kubejs:item/circuits/${theme}_processor_mainframe_base`, layer1: `kubejs:item/circuits/${theme}_processor_mainframe_lights` })
|
||||
.tag(`gtceu:circuits/${volt}`)
|
||||
}
|
||||
|
||||
function Unit(theme) {
|
||||
event.create(`${theme}_processing_unit`)
|
||||
.textureJson({ layer0: `kubejs:item/circuits/${theme}_processing_unit` })
|
||||
event.create(`${theme}_circuit_board`)
|
||||
.textureJson({ layer0: `kubejs:item/circuits/${theme}_circuit_board` })
|
||||
}
|
||||
|
||||
Unit("matter")
|
||||
Circuit("matter", "processor", "zpm")
|
||||
Circuit("matter", "processor_assembly", "uv")
|
||||
Circuit("matter", "processor_computer", "uhv")
|
||||
Mainframe("matter", "uev")
|
||||
|
||||
Unit("dimensional")
|
||||
Circuit("dimensional", "processor", "uv")
|
||||
Circuit("dimensional", "processor_assembly", "uhv")
|
||||
Circuit("dimensional", "processor_computer", "uev")
|
||||
Mainframe("dimensional", "uiv")
|
||||
|
||||
Unit("monic")
|
||||
Circuit("monic", "processor", "uhv")
|
||||
Circuit("monic", "processor_assembly", "uev")
|
||||
Circuit("monic", "processor_computer", "uiv")
|
||||
Mainframe("monic", "max")
|
||||
|
||||
// Smores
|
||||
const smoreHunger = [
|
||||
4, 10, 22, 46, 94, 190, 382
|
||||
]
|
||||
const smoreSaturation = [
|
||||
12, 76, 379, 1675, 7032, 28805, 116587
|
||||
]
|
||||
let effDuration = 300;
|
||||
|
||||
for (let i = 0; i <= 6; i++) {
|
||||
event.create(`smore_${2 ** i}`).food(food => {
|
||||
food.hunger(smoreHunger[i] * 2);
|
||||
food.saturation(smoreSaturation[i] / (1 + 4 * smoreHunger[i]) * 2);
|
||||
food.effect("absorption", effDuration, 1, 1);
|
||||
food.effect("speed", effDuration, 1, 1);
|
||||
food.effect("haste", effDuration, 1, 1);
|
||||
|
||||
if (i > 2) {
|
||||
food.effect("saturation", effDuration, 1, 1);
|
||||
food.effect("health_boost", effDuration, 1, 1);
|
||||
}
|
||||
|
||||
food.alwaysEdible();
|
||||
|
||||
}).maxStackSize(64)
|
||||
|
||||
effDuration *= 2;
|
||||
}
|
||||
|
||||
// Universal Circuits
|
||||
const tiers = ["ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpm", "uv", "uhv", "uev", "uiv"]
|
||||
tiers.forEach((universal_circuit) => {
|
||||
event.create(`${universal_circuit}_universal_circuit`)
|
||||
.tag(`gtceu:circuits/${universal_circuit}`)
|
||||
.tag("gtceu:circuits/universal")
|
||||
.displayName(`${universal_circuit.toUpperCase()} Universal Circuit`)
|
||||
.tooltip("§7A Universal Circuit")
|
||||
.textureJson({ layer0: `kubejs:item/circuits/universal/${universal_circuit}_universal_circuit` })
|
||||
})
|
||||
|
||||
// Phantom Paste
|
||||
event.create("framedblocks:phantom_paste")
|
||||
})
|
||||
898
kubejs/startup_scripts/registry/multiblock_registry.js
Normal file
898
kubejs/startup_scripts/registry/multiblock_registry.js
Normal file
|
|
@ -0,0 +1,898 @@
|
|||
/**
|
||||
* Multiblock Registry.
|
||||
* This is the place custom multiblock recipes (Like Discharging) are defined.
|
||||
* It is also where
|
||||
*/
|
||||
const Tags = Java.loadClass("dev.latvian.mods.kubejs.util.Tags")
|
||||
const FusionReactorMachine = Java.loadClass("com.gregtechceu.gtceu.common.machine.multiblock.electric.FusionReactorMachine")
|
||||
const CoilWorkableElectricMultiblockMachine = Java.loadClass("com.gregtechceu.gtceu.api.machine.multiblock.CoilWorkableElectricMultiblockMachine")
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:recipe_type", event => {
|
||||
|
||||
// Normal mode-exclusive Multis
|
||||
if (doHNN) {
|
||||
// Simulation Supercomputer
|
||||
event.create("simulation_supercomputer")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(2, 2, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.COMPUTATION)
|
||||
.setSound(GTSoundEntries.ASSEMBLER)
|
||||
|
||||
// Loot Superfabricator
|
||||
event.create("loot_superfabricator")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(2, 1, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.COMPUTATION)
|
||||
}
|
||||
|
||||
|
||||
// Hard mode-exclusive Multis
|
||||
|
||||
// Actualization Chamber
|
||||
event.create("actualization_chamber")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(2, 20, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.COOLING)
|
||||
|
||||
// Universal Crystallizer
|
||||
event.create("universal_crystallizer")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(9, 1, 1, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.COMPUTATION)
|
||||
|
||||
|
||||
// Microverse Projector Recipe Type
|
||||
event.create("microverse")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(9, 9, 3, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.COOLING);
|
||||
|
||||
// Naquadah Reactor I Recipe type
|
||||
event.create("naquadah_reactor")
|
||||
.category("multiblock")
|
||||
.setEUIO("out")
|
||||
.setMaxIOSize(1, 1, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.ARC);
|
||||
|
||||
// Large Naquadah Reactor Recipe Type
|
||||
event.create("large_naquadah_reactor")
|
||||
.category("multiblock")
|
||||
.setEUIO("out")
|
||||
.setMaxIOSize(1, 1, 2, 2)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.ARC)
|
||||
|
||||
// Naquadah Fuel Refinery
|
||||
event.create("naquadah_refinery")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(6,0,4,1)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.COOLING)
|
||||
|
||||
// Greenhouse
|
||||
event.create("greenhouse")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(3, 6, 1, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.TURBINE)
|
||||
|
||||
// Subatomic Digital Assembler
|
||||
event.create("subatomic_digital_assembly")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(2, 1, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.COOLING)
|
||||
|
||||
// Omnic Forge
|
||||
event.create("omnic_forge")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(6, 1, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_CRYSTALLIZATION, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.ARC)
|
||||
|
||||
// Quintessence Infuser
|
||||
event.create("quintessence_infuser")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(2, 2, 1, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.CENTRIFUGE)
|
||||
|
||||
// Rock Cycle Simulator
|
||||
event.create("rock_cycle_simulator")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(1, 1, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_MACERATE, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.MINER)
|
||||
|
||||
// Discharger
|
||||
event.create("discharger")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(9, 1, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.ELECTROLYZER)
|
||||
|
||||
// Charger
|
||||
event.create("charger")
|
||||
.category("multiblock")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(3, 1, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.ELECTROLYZER)
|
||||
})
|
||||
|
||||
GTCEuStartupEvents.registry("gtceu:machine", event => {
|
||||
|
||||
// EMI displays microverse projector tier
|
||||
GTRecipeTypes.get("microverse").addDataInfo((data) => ("Projector Tier: " + data.getByte("projector_tier"))); // todo: get Text.translatable to work
|
||||
|
||||
// Normal mode-exclusive multis
|
||||
if (doHNN) {
|
||||
|
||||
// Simulation Supercomputer
|
||||
event.create("simulation_supercomputer", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("simulation_supercomputer")
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
||||
.appearanceBlock(GCYMBlocks.CASING_ATOMIC)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("CCCCC", "VEEEV", "VEEEV", "VEEEV", "CCCCC")
|
||||
.aisle("CCCCC", "QOOOQ", "VOOOV", "QOOOQ", "CCCCC")
|
||||
.aisle("CCCCC", "QOOOQ", "VO OV", "QOOOQ", "CCCCC")
|
||||
.aisle("CCCCC", "QOOOQ", "VOOOV", "QOOOQ", "CCCCC")
|
||||
.aisle("CC@CC", "VEQEV", "VQQQV", "VEQEV", "CCCCC")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("V", Predicates.blocks(GCYMBlocks.CASING_VIBRATION_SAFE.get()))
|
||||
.where("E", Predicates.blocks("gtceu:enderium_block"))
|
||||
.where("O", Predicates.blocks("gtceu:omnium_block"))
|
||||
.where("Q", Predicates.blocks("ae2:quartz_vibrant_glass"))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get()))
|
||||
.where("C", Predicates.blocks(GCYMBlocks.CASING_ATOMIC.get()).setMinGlobalLimited(40)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
|
||||
.where(" ", Predicates.air())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/atomic_casing",
|
||||
"gtceu:block/multiblock/fusion_reactor", false)
|
||||
|
||||
// Loot Superfabricator
|
||||
event.create("loot_superfabricator", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("loot_superfabricator")
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
||||
.appearanceBlock(GCYMBlocks.CASING_ATOMIC)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("CCCCC", "VEEEV", "VEEEV", "VEEEV", "CCCCC")
|
||||
.aisle("CCCCC", "QOOOQ", "VOOOV", "QOOOQ", "CCCCC")
|
||||
.aisle("CCCCC", "QOOOQ", "VO OV", "QOOOQ", "CCCCC")
|
||||
.aisle("CCCCC", "QOOOQ", "VOOOV", "QOOOQ", "CCCCC")
|
||||
.aisle("CC@CC", "VEQEV", "VQQQV", "VEQEV", "CCCCC")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("V", Predicates.blocks(GCYMBlocks.CASING_SHOCK_PROOF.get()))
|
||||
.where("E", Predicates.blocks("gtceu:energetic_alloy_block"))
|
||||
.where("O", Predicates.blocks("gtceu:omnium_block"))
|
||||
.where("Q", Predicates.blocks("ae2:quartz_vibrant_glass"))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get()))
|
||||
.where("C", Predicates.blocks(GCYMBlocks.CASING_ATOMIC.get()).setMinGlobalLimited(40)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
|
||||
.where(" ", Predicates.air())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/atomic_casing",
|
||||
"gtceu:block/multiblock/fusion_reactor", false)
|
||||
}
|
||||
|
||||
// Universal Crystallizer
|
||||
event.create("universal_crystallizer", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("universal_crystallizer")
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
||||
.appearanceBlock(GCYMBlocks.CASING_LASER_SAFE_ENGRAVING)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("XXXXXXX", "XGGGGGX", "XGGGGGX", "XGGGGGX", "XGGGGGX", "XGGGGGX", "XXXXXXX")
|
||||
.aisle("XXXXXXX", "G G", "G G", "F F", "G G", "G G", "XGGGGGX")
|
||||
.aisle("XXXXXXX", "G CCC G", "F C C F", "FTC CTF", "F C C F", "G CCC G", "XGGGGGX")
|
||||
.aisle("XXXXXXX", "F CCC F", "FT TF", "FTBRBTF", "FT TF", "F CCC F", "XGGGGGX")
|
||||
.aisle("XXXXXXX", "G CCC G", "F C C F", "FTC CTF", "F C C F", "G CCC G", "XGGGGGX")
|
||||
.aisle("XXXXXXX", "G G", "G G", "F F", "G G", "G G", "XGGGGGX")
|
||||
.aisle("XXX@XXX", "XGGGGGX", "XGGGGGX", "XGGGGGX", "XGGGGGX", "XGGGGGX", "XXXXXXX")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("X", Predicates.blocks(GCYMBlocks.CASING_LASER_SAFE_ENGRAVING.get()).setMinGlobalLimited(80)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1)))
|
||||
.where("C", Predicates.blocks(GTBlocks.FUSION_COIL.get()))
|
||||
.where("F", Predicates.frames((doHarderProcessing ? GTMaterials.Berkelium : GTMaterials.Neutronium)))
|
||||
.where("G", Predicates.blocks(GTBlocks.FUSION_GLASS.get()))
|
||||
.where("T", Predicates.blocks((doStoneline ? "gtceu:taranium_block" : "gtceu:actinium_block")))
|
||||
.where("B", Predicates.blocks("kubejs:omnic_matrix_machine_casing"))
|
||||
.where("R", Predicates.blocks("kubejs:enderium_micro_miner_core"))
|
||||
.where(" ", Predicates.air())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/laser_safe_engraving_casing",
|
||||
"gtceu:block/multiblock/gcym/large_autoclave", false)
|
||||
|
||||
// Helical Fusion Reactor
|
||||
event.create("helical_fusion_reactor", "multiblock")
|
||||
.machine((holder) => new FusionReactorMachine(holder, GTValues.UEV))
|
||||
.rotationState(RotationState.ALL)
|
||||
.recipeTypes(GTRecipeTypes.FUSION_RECIPES)
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, MachineModifiers.FUSION_REACTOR])
|
||||
.appearanceBlock(GCYMBlocks.CASING_ATOMIC)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("#######################", "#######################", "#######################", "###F##F#N#####N#F##F###", "###FNNFNN#####NNFNNF###", "###F##F#N#####N#F##F###", "#######################", "#######################", "#######################")
|
||||
.aisle("#######################", "###F##F###NNN###F##F###", "###F##F##N###N##F##F###", "###ECCBC#######CBCCE###", "###BBBBC#######CBBBB###", "###ECCBC#######CBCCE###", "###F##F##N###N##F##F###", "###F##F###NNN###F##F###", "#######################")
|
||||
.aisle("#######################", "###F##F##N###N##F##F###", "##DDDDDDD#####DDDDDDD##", "#CDTTTTTDCCCCCDTTTTTDC#", "#CDTTTTTDCGGGCDTTTTTDC#", "#CDTTTTTDCCCCCDTTTTTDC#", "##DDDDDDD#####DDDDDDD##", "###F##F##N###N##F##F###", "#######################")
|
||||
.aisle("###F##F#N#####N#F##F###", "###ECCBC#######CBCCE###", "#CDTTTTTDCCCCCDTTTTTDC#", "C C", "C C", "C C", "#CDTTTTTDCCCCCDTTTTTDC#", "###ECCBC#######CBCCE###", "###F##F#N#####N#F##F###")
|
||||
.aisle("###FNNFNN#####NNFNNF###", "###BBBBC#######CBBBB###", "#CDTTTTTDCGGGCDTTTTTDC#", "C C", "G G", "C C", "#CDTTTTTDCGGGCDTTTTTDC#", "###BBBBC#######CBBBB###", "###FNNFNN#####NNFNNF###")
|
||||
.aisle("###F##F#N#####N#F##F###", "###ECCBC#######CBCCE###", "#CDTTTTTDCCCCCDTTTTTDC#", "C C", "C C", "C C", "#CDTTTTTDCCCCCDTTTTTDC#", "###ECCBC#######CBCCE###", "###F##F#N#####N#F##F###")
|
||||
.aisle("#######################", "###F##F##N###N##F##F###", "##DDDDDDD#####DDDDDDD##", "#CDTTTTTDCC@CCDTTTTTDC#", "#CDTTTTTDCGGGCDTTTTTDC#", "#CDTTTTTDCCCCCDTTTTTDC#", "##DDDDDDD#####DDDDDDD##", "###F##F##N###N##F##F###", "#######################")
|
||||
.aisle("#######################", "###F##F###NNN###F##F###", "###F##F##N###N##F##F###", "###ECCBC#######CBCCE###", "###BBBBC#######CBBBB###", "###ECCBC#######CBCCE###", "###F##F##N###N##F##F###", "###F##F###NNN###F##F###", "#######################")
|
||||
.aisle("#######################", "#######################", "#######################", "###F##F#N#####N#F##F###", "###FNNFNN#####NNFNNF###", "###F##F#N#####N#F##F###", "#######################", "#######################", "#######################")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("B", Predicates.blocks(GCYMBlocks.CASING_ATOMIC.get()))
|
||||
.where("G", Predicates.blocks(GTBlocks.FUSION_GLASS.get())
|
||||
.or(Predicates.blocks(GCYMBlocks.CASING_ATOMIC.get())))
|
||||
.where("E", Predicates.abilities(PartAbility.INPUT_ENERGY)
|
||||
.setMinGlobalLimited(1)
|
||||
.setMaxGlobalLimited(16)
|
||||
.setPreviewCount(16)
|
||||
.or(Predicates.blocks(GCYMBlocks.CASING_ATOMIC.get())))
|
||||
.where("C", Predicates.blocks(GCYMBlocks.CASING_ATOMIC.get()).setMinGlobalLimited(130)
|
||||
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMinGlobalLimited(2))
|
||||
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setMinGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1)))
|
||||
.where("D", Predicates.blocks("kubejs:bioalloy_fusion_casing"))
|
||||
.where("F", Predicates.blocks("kubejs:omnic_matrix_coil_block"))
|
||||
.where("T", Predicates.blocks(GTBlocks.COIL_TRITANIUM.get()))
|
||||
.where("N", Predicates.frames(GTMaterials.get("activated_netherite")))
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/atomic_casing",
|
||||
"gtceu:block/multiblock/fusion_reactor", false)
|
||||
|
||||
// Greenhouse
|
||||
event.create("greenhouse", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("greenhouse")
|
||||
.appearanceBlock(GTBlocks.CASING_STEEL_SOLID)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("SSSSS", "UDDDU", "UDDDU", "UUGUU", "#UUU#")
|
||||
.aisle("SFFFS", "D###D", "D###D", "GO#OG", "#GEG#")
|
||||
.aisle("SFFFS", "D###D", "D###D", "GO#OG", "#GEG#")
|
||||
.aisle("SFFFS", "D###D", "D###D", "GO#OG", "#GEG#")
|
||||
.aisle("SFFFS", "D###D", "D###D", "GO#OG", "#GEG#")
|
||||
.aisle("SFFFS", "D###D", "D###D", "GO#OG", "#GEG#")
|
||||
.aisle("SS@SS", "UDDDU", "UDDDU", "UUGUU", "#UUU#")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("S", Predicates.blocks(GTBlocks.CASING_STEEL_SOLID.get()).setMinGlobalLimited(8)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes())))
|
||||
.where("U", Predicates.blocks(GTBlocks.CASING_STEEL_SOLID.get()))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get()))
|
||||
.where("D", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get())
|
||||
.or(Predicates.blockTag(Tags.block("minecraft:doors")).setMaxGlobalLimited(4)))
|
||||
.where("O", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get())
|
||||
.or(Predicates.any()))
|
||||
.where("F", Predicates.blockTag(Tags.block("minecraft:dirt"))
|
||||
.or(Predicates.blocks("minecraft:farmland"))
|
||||
.or(Predicates.fluids("minecraft:water")))
|
||||
.where("E", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get())
|
||||
.or(Predicates.blocks(GTBlocks.CASING_STEEL_SOLID.get()))
|
||||
.or(Predicates.blocks("minecraft:redstone_lamp")))
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/solid/machine_casing_solid_steel",
|
||||
"gtceu:block/multiblock/implosion_compressor", false)
|
||||
|
||||
// Rock Cycle Simulator
|
||||
event.create("rock_cycle_simulator", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("rock_cycle_simulator")
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
||||
.appearanceBlock(GCYMBlocks.CASING_HIGH_TEMPERATURE_SMELTING)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("CCCCCCC", "CCCCCCC", "CCCCCCC", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "TMMOIIT", "TMCCCIT", "CCCCCCC")
|
||||
.aisle("CCC@CCC", "CTTTTTC", "CTCCCTC", "CCCCCCC")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("I", Predicates.blocks("minecraft:blue_ice"))
|
||||
.where("M", Predicates.blocks("minecraft:magma_block"))
|
||||
.where("O", Predicates.blocks(GTBlocks.CASING_TITANIUM_PIPE.get()))
|
||||
.where("T", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get()))
|
||||
.where("C", Predicates.blocks(GCYMBlocks.CASING_HIGH_TEMPERATURE_SMELTING.get()).setMinGlobalLimited(20)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
)
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/high_temperature_smelting_casing",
|
||||
"gtceu:block/machines/rock_crusher", false)
|
||||
|
||||
// Atmospheric Accumulator
|
||||
event.create("atmospheric_accumulator", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes(GTRecipeTypes.GAS_COLLECTOR_RECIPES)
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
||||
.appearanceBlock(GCYMBlocks.CASING_CORROSION_PROOF)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("CCCCC", "C C", "CCCCC", "C C", "CCCCC", "C C", "CCCCC")
|
||||
.aisle("CCCCC", " GIG ", "CGGGC", " GIG ", "CCCCC", " GIG ", "CIIIC")
|
||||
.aisle("CCCCC", " IOI ", "CGOGC", " IOI ", "CCOCC", " IOI ", "CIOIC")
|
||||
.aisle("CCCCC", " GIG ", "CGGGC", " GIG ", "CCCCC", " GIG ", "CIIIC")
|
||||
.aisle("CC@CC", "C C", "CCCCC", "C C", "CCCCC", "C C", "CCCCC")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("I", Predicates.blocks(GTBlocks.CASING_ENGINE_INTAKE.get()))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_GRATE.get()))
|
||||
.where("O", Predicates.blocks(GTBlocks.CASING_TITANIUM_PIPE.get()))
|
||||
.where("C", Predicates.blocks(GCYMBlocks.CASING_CORROSION_PROOF.get()).setMinGlobalLimited(70)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
)
|
||||
.where(" ", Predicates.air())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/corrosion_proof_casing",
|
||||
"gtceu:block/machines/gas_collector", false)
|
||||
|
||||
// Matter Alterator
|
||||
event.create("matter_alterator", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("atomic_reconstruction")
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
||||
.appearanceBlock(GCYMBlocks.CASING_LASER_SAFE_ENGRAVING)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("#CCC#######", "#CGC#######", "#CGC#######", "#CGC#######", "#CCC#######",)
|
||||
.aisle("CCCCC#F###F", "C CCCCCCC", "C CGGGGGC", "C CCCCCCC", "CCCCC######",)
|
||||
.aisle("CCCCC######", "G CCCCCCCCC", "G F PC", "G CCCGGGGGC", "CCCCC######",)
|
||||
.aisle("CCCCC#F###F", "C CCCCCCC", "C CGGGGGC", "C CCCCCCC", "CCCCC######",)
|
||||
.aisle("#C@C#######", "#CGC#######", "#CGC#######", "#CGC#######", "#CCC#######",)
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_LAMINATED_GLASS.get()))
|
||||
.where("P", Predicates.blocks("gtceu:palis_block"))
|
||||
.where("F", Predicates.frames(GTMaterials.HastelloyC276))
|
||||
.where("C", Predicates.blocks(GCYMBlocks.CASING_LASER_SAFE_ENGRAVING.get()).setMinGlobalLimited(50)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
)
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/laser_safe_engraving_casing",
|
||||
"gtceu:block/machines/reconstructor", false)
|
||||
|
||||
// Compression Imploder
|
||||
event.create("implosion_collider", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes(GTRecipeTypes.IMPLOSION_RECIPES)
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
||||
.appearanceBlock(GTBlocks.CASING_STEEL_SOLID)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("#########", "####E####", "###EEE###", "####E####", "#########", "#########")
|
||||
.aisle("#########", "####E####", "###E2E###", "####E####", "#########", "#########")
|
||||
.aisle("###SES###", "###SES###", "##SE ES##", "###SES###", "###SES###", "#########")
|
||||
.aisle("##SSESS##", "##SOOOS##", "EEEO OEEE", "##SOOOS##", "##SSESS##", "#########")
|
||||
.aisle("##EEEEE##", "EEEOOOEEE", "E4 3E", "EEEOOOEEE", "##EEEEE##", "#########")
|
||||
.aisle("##SSESS##", "##SOOOS##", "EEEO OEEE", "##SOOOS##", "##SSESS##", "###SSS###")
|
||||
.aisle("###SES###", "##SSESS##", "##SE ES##", "##SS SS##", "###S S###", "###SMS###")
|
||||
.aisle("##F###F##", "##SSSSS##", "##SE1ES##", "###SSS###", "###SSS###", "###SSS###")
|
||||
.aisle("#########", "###SSS###", "###S@S###", "###SSS###", "#########", "#########")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("S", Predicates.blocks(GTBlocks.CASING_STEEL_SOLID.get())
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
)
|
||||
.where("O", Predicates.blocks("enderio:reinforced_obsidian_block"))
|
||||
.where("E", Predicates.blocks(GTBlocks.CASING_HSSE_STURDY.get()))
|
||||
.where("F", Predicates.frames(GTMaterials.BlackSteel))
|
||||
.where("M", Predicates.abilities(PartAbility.MUFFLER))
|
||||
.where("1", Predicates.blocks("minecraft:piston"))
|
||||
.where("2", Predicates.blocks("minecraft:piston"))
|
||||
.where("3", Predicates.blocks("minecraft:piston"))
|
||||
.where("4", Predicates.blocks("minecraft:piston"))
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/solid/machine_casing_solid_steel",
|
||||
"gtceu:block/multiblock/implosion_compressor", false)
|
||||
|
||||
// Quintessence Infuser
|
||||
event.create("quintessence_infuser", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("quintessence_infuser")
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
||||
.appearanceBlock(() => Block.getBlock("kubejs:dark_soularium_casing"))
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("#CCC#", "CCCCC", "HGGGH", "HGGGH", "HGGGH", "CCCCC", "#CCC#")
|
||||
.aisle("CCCCC", "COOOC", "G#O#G", "G#O#G", "G#O#G", "C#O#C", "CCCCC")
|
||||
.aisle("CCCCC", "COPOC", "GOPOG", "GOPOG", "GOPOG", "COPOC", "CCCCC")
|
||||
.aisle("CCCCC", "COOOC", "G#O#G", "G#O#G", "G#O#G", "C#O#C", "CCCCC")
|
||||
.aisle("#C@C#", "CCCCC", "HGGGH", "HGGGH", "HGGGH", "CCCCC", "#CCC#")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("H", Predicates.blocks("enderio:ensouled_chassis"))
|
||||
.where("O", Predicates.frames(GTMaterials.Tungsten))
|
||||
.where("G", Predicates.blocks(GTBlocks.FUSION_GLASS.get()))
|
||||
.where("P", Predicates.blocks(GTBlocks.CASING_TUNGSTENSTEEL_PIPE.get()))
|
||||
.where("C", Predicates.blocks("kubejs:dark_soularium_casing").setMinGlobalLimited(40)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
)
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("kubejs:block/soularium/casing",
|
||||
"gtceu:block/multiblock/implosion_compressor", false)
|
||||
|
||||
// Subatomic Digital Assembler
|
||||
event.create("subatomic_digital_assembler", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("subatomic_digital_assembly")
|
||||
.noRecipeModifier()
|
||||
.appearanceBlock(GCYMBlocks.CASING_ATOMIC)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("#CCCCC#", "#CCCCC#", "#CGGGC#", "#CGGGC#", "#CGGGC#", "#CGGGC#", "#CGGGC#", "#CCCCC#", "#CCCCC#")
|
||||
.aisle("CCCCCCC", "CHMMMHC", "CH HC", "CH HC", "CH HC", "CH HC", "CH HC", "CHMMMHC", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "CMXYXMC", "G XYX G", "G XYX G", "G XYX G", "G XYX G", "G XYX G", "CMXYXMC", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "CMYYYMC", "G YYY G", "G YYY G", "G YYY G", "G YYY G", "G YYY G", "CMYYYMC", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "CMXYXMC", "G XYX G", "G XYX G", "G XYX G", "G XYX G", "G XYX G", "CMXYXMC", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "CHMMMHC", "CH HC", "CH HC", "CH HC", "CH HC", "CH HC", "CHMMMHC", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "CCCCCCC", "#CCCCC#", "#CCCCC#", "#CCCCC#", "#CCCCC#", "#CCCCC#", "CCCCCCC", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "#CCCCC#", "#CCCCC#", "#CNNNC#", "###N###", "###N###", "###N###", "#CNNNC#", "CCCCCCC")
|
||||
.aisle("#CCCCC#", "##C@C##", "##CCC##", "#######", "#######", "#######", "#######", "#######", "#CCCCC#")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("G", Predicates.blocks(GTBlocks.CLEANROOM_GLASS.get()))
|
||||
.where("H", Predicates.blocks(GTBlocks.HIGH_POWER_CASING.get()))
|
||||
.where("M", Predicates.frames(GTMaterials.get("crystal_matrix")))
|
||||
.where("N", Predicates.frames(GTMaterials.NaquadahAlloy))
|
||||
.where("X", Predicates.blocks(GTBlocks.COMPUTER_CASING.get()))
|
||||
.where("Y", Predicates.blocks(GTBlocks.ADVANCED_COMPUTER_CASING.get()))
|
||||
.where("C", Predicates.blocks(GCYMBlocks.CASING_ATOMIC.get()).setMinGlobalLimited(220)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.COMPUTATION_DATA_RECEPTION).setExactLimit(1))
|
||||
)
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/atomic_casing",
|
||||
"gtceu:block/multiblock/fusion_reactor", false)
|
||||
|
||||
// Discharger
|
||||
event.create("discharger", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("discharger")
|
||||
.appearanceBlock(() => Block.getBlock("kubejs:cryolobus_casing"))
|
||||
.generator(true)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("#CCCCC#", "#######", "#######", "#######", "#######", "#######", "#CCCCC#")
|
||||
.aisle("CCCCCCC", "#NGGGN#", "#NGGGN#", "#NNNNN#", "#NGGGN#", "#NGGGN#", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "#G G#", "#G G#", "#NE EN#", "#G G#", "#G G#", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "#G G#", "#G G#", "#N N#", "#G G#", "#G G#", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "#G G#", "#G G#", "#NE EN#", "#G G#", "#G G#", "CCCCCCC")
|
||||
.aisle("CCCCCCC", "#NGGGN#", "#NGGGN#", "#NNNNN#", "#NGGGN#", "#NGGGN#", "CCCCCCC")
|
||||
.aisle("#CC@CC#", "#######", "#######", "#######", "#######", "#######", "#CCCCC#")
|
||||
|
||||
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("C", Predicates.blocks("kubejs:cryolobus_casing").setMinGlobalLimited(85)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
)
|
||||
.where("c", Predicates.blocks("kubejs:cryolobus_casing"))
|
||||
.where("N", Predicates.blocks(GCYMBlocks.CASING_NONCONDUCTING.get()))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_LAMINATED_GLASS.get()))
|
||||
.where("S", Predicates.blocks("minecraft:sculk"))
|
||||
.where("T", Predicates.blocks("minecraft:sculk_catalyst"))
|
||||
.where("L", Predicates.blocks("gtceu:black_lamp"))
|
||||
.where("E", Predicates.blocks(GCYMBlocks.ELECTROLYTIC_CELL.get()))
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("kubejs:block/cryolobus/cryolobus_casing",
|
||||
"gtceu:block/machines/electrolyzer", false)
|
||||
|
||||
let getMicroverseRecipeModifiers = tier => [
|
||||
GTRecipeModifiers.OC_NON_PERFECT,
|
||||
(machine, recipe) => recipe.data.getLong("projector_tier") > tier ?
|
||||
ModifierFunction.NULL : ModifierFunction.IDENTITY
|
||||
]
|
||||
|
||||
// Basic Microverse Projector
|
||||
event.create("basic_microverse_projector", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("microverse")
|
||||
.recipeModifiers(getMicroverseRecipeModifiers(1))
|
||||
.appearanceBlock(() => Block.getBlock("kubejs:microverse_casing"))
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("CCC", "CVC", "CCC")
|
||||
.aisle("CCC", "GDG", "CCC")
|
||||
.aisle("C@C", "CGC", "CCC")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("D", Predicates.blocks("kubejs:starry_diamond_block"))
|
||||
.where("C", Predicates.blocks("kubejs:microverse_casing").setMinGlobalLimited(12)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes())))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get()))
|
||||
.where("V", Predicates.blocks(GTBlocks.CASING_GRATE.get()))
|
||||
.build())
|
||||
.workableCasingRenderer("kubejs:block/microverse/casing",
|
||||
"gtceu:block/multiblock/implosion_compressor", false)
|
||||
|
||||
// Advanced Microverse Projector
|
||||
event.create("advanced_microverse_projector", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("microverse")
|
||||
.recipeModifiers(getMicroverseRecipeModifiers(2))
|
||||
.appearanceBlock(() => Block.getBlock("kubejs:microverse_casing"))
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("CCCCC", "CGGGC", "CGGGC", "CGGGC", "CCCCC")
|
||||
.aisle("CVCVC", "GDDDG", "GDDDG", "GDDDG", "CVCVC")
|
||||
.aisle("CCCCC", "GDDDG", "GD DG", "GDDDG", "CCCCC")
|
||||
.aisle("CVCVC", "GDDDG", "GDDDG", "GDDDG", "CVCVC")
|
||||
.aisle("CC@CC", "CGGGC", "CGGGC", "CGGGC", "CCCCC")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("D", Predicates.blocks("kubejs:starry_diamond_block"))
|
||||
.where("C", Predicates.blocks("kubejs:microverse_casing").setMinGlobalLimited(48)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes())))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get()))
|
||||
.where("V", Predicates.blocks(GTBlocks.CASING_GRATE.get()))
|
||||
.where(" ", Predicates.air())
|
||||
.build())
|
||||
.workableCasingRenderer("kubejs:block/microverse/casing",
|
||||
"gtceu:block/multiblock/implosion_compressor", false)
|
||||
|
||||
// Advanced Microverse Projector II
|
||||
event.create("advanced_microverse_projector_ii", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("microverse")
|
||||
.recipeModifiers(getMicroverseRecipeModifiers(3))
|
||||
.appearanceBlock(() => Block.getBlock("kubejs:microverse_casing"))
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("#########", "#########", "##CCCCC##", "##CVCVC##", "##CCCCC##", "##CVCVC##", "##CCCCC##", "#########", "#########")
|
||||
.aisle("#########", "##CGGGC##", "#CDDDDDC#", "#CDDDDDC#", "#CDDDDDC#", "#CDDDDDC#", "#CDDDDDC#", "##CGGGC##", "#########")
|
||||
.aisle("##CCCCC##", "#CDDDDDC#", "CDDDDDDDC", "CDDDDDDDC", "CDDDDDDDC", "CDDDDDDDC", "CDDDDDDDC", "#CDDDDDC#", "##CCCCC##")
|
||||
.aisle("##CGGGC##", "#GDDDDDG#", "CDDDDDDDC", "GDD DDG", "GDD DDG", "GDD DDG", "CDDDDDDDC", "#GDDDDDG#", "##CGGGC##")
|
||||
.aisle("##CGGGC##", "#GDDDDDG#", "CDDDDDDDC", "GDD DDG", "GDD DDG", "GDD DDG", "CDDDDDDDC", "#GDDDDDG#", "##CGGGC##")
|
||||
.aisle("##CGGGC##", "#GDDDDDG#", "CDDDDDDDC", "GDD DDG", "GDD DDG", "GDD DDG", "CDDDDDDDC", "#GDDDDDG#", "##CGGGC##")
|
||||
.aisle("##CCCCC##", "#CDDDDDC#", "CDDDDDDDC", "CDDDDDDDC", "CDDDDDDDC", "CDDDDDDDC", "CDDDDDDDC", "#CDDDDDC#", "##CCCCC##")
|
||||
.aisle("#########", "##CGGGC##", "#CDDDDDC#", "#CDDDDDC#", "#CDDDDDC#", "#CDDDDDC#", "#CDDDDDC#", "##CGGGC##", "#########")
|
||||
.aisle("#########", "#########", "##CC@CC##", "##CGGGC##", "##CGGGC##", "##CGGGC##", "##CCCCC##", "#########", "#########")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("D", Predicates.blocks("kubejs:starry_diamond_block"))
|
||||
.where("C", Predicates.blocks("kubejs:microverse_casing").setMinGlobalLimited(128)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes())))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_TEMPERED_GLASS.get()))
|
||||
.where("V", Predicates.blocks(GTBlocks.CASING_TITANIUM_PIPE.get()))
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("kubejs:block/microverse/casing",
|
||||
"gtceu:block/multiblock/implosion_compressor", false)
|
||||
|
||||
// Microverse Projector III (Hyperbolic Microverse Projector)
|
||||
event.create("hyperbolic_microverse_projector", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("microverse")
|
||||
.recipeModifiers(
|
||||
[GTRecipeModifiers.PARALLEL_HATCH]
|
||||
.concat(getMicroverseRecipeModifiers(4))
|
||||
)
|
||||
.appearanceBlock(() => Block.getBlock("kubejs:microverse_casing"))
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("###CCCCC###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###CCCCC###")
|
||||
.aisle("#CCCCVCCCC#", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "#CCCCVCCCC#")
|
||||
.aisle("#CVCCCCCVC#", "###CGGGC###", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###CGGGC###", "#CVCCCCCVC#")
|
||||
.aisle("CCCCCCCCCCC", "N#CCDDDCC#N", "N##CGGGC##N", "N#########N", "N#########N", "N#########N", "N#########N", "N#########N", "N##CGGGC##N", "N#CCDDDCC#N", "CCCCCCCCCCC")
|
||||
.aisle("CCCCCCCCCCC", "##GDDDDDG##", "###GYDYG###", "####YGY####", "####YGY####", "####YGY####", "####YGY####", "####YGY####", "###GYDYG###", "##GDDDDDG##", "CCCCCCCCCCC")
|
||||
.aisle("CVCCCWCCCVC", "##GDDDDDG##", "###GDDDG###", "####GDG####", "####GDG####", "####GDG####", "####GDG####", "####GDG####", "###GDDDG###", "##GDDDDDG##", "CVCCCWCCCVC")
|
||||
.aisle("CCCCCCCCCCC", "##GDDDDDG##", "###GYDYG###", "####YGY####", "####YGY####", "####YGY####", "####YGY####", "####YGY####", "###GYDYG###", "##GDDDDDG##", "CCCCCCCCCCC")
|
||||
.aisle("CCCCCCCCCCC", "N#CCDDDCC#N", "N##CGGGC##N", "N#########N", "N#########N", "N#########N", "N#########N", "N#########N", "N##CGGGC##N", "N#CCDDDCC#N", "CCCCCCCCCCC")
|
||||
.aisle("#CVCCCCCVC#", "###CGGGC###", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###CGGGC###", "#CVCCCCCVC#")
|
||||
.aisle("#CCCCVCCCC#", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "#CCCCVCCCC#")
|
||||
.aisle("###CC@CC###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###N###N###", "###CCCCC###")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("D", Predicates.blocks("kubejs:starry_diamond_block"))
|
||||
.where("C", Predicates.blocks("kubejs:microverse_casing").setMinGlobalLimited(200)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
)
|
||||
.where("G", Predicates.blocks(GTBlocks.FUSION_GLASS.get()))
|
||||
.where("N", Predicates.frames(GTMaterials.get("sculk_bioalloy")))
|
||||
.where("V", Predicates.blocks("ae2:quartz_vibrant_glass"))
|
||||
.where("W", Predicates.blocks("kubejs:universal_warp_core"))
|
||||
.where("Y", Predicates.blocks("kubejs:dimensional_stabilization_netherite_casing"))
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("kubejs:block/microverse/casing",
|
||||
"gtceu:block/multiblock/implosion_compressor", false)
|
||||
|
||||
// Naquadah Reactor I
|
||||
event.create("naquadah_reactor", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("naquadah_reactor")
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH]) // Fix for generator "overclocking" as long as the actual hatch invalidates the structure
|
||||
.appearanceBlock(GCYMBlocks.CASING_REACTION_SAFE)
|
||||
.generator(true)
|
||||
.regressWhenWaiting(false)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("CCC", "PGP", "PGP", "PGP", "PGP", "CCC")
|
||||
.aisle("CCC", "GNG", "GNG", "GNG", "GNG", "CCC")
|
||||
.aisle("C@C", "PGP", "PGP", "PGP", "PGP", "CCC")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("G", Predicates.blocks(GTBlocks.FUSION_GLASS.get()))
|
||||
.where("C", Predicates.blocks(GCYMBlocks.CASING_REACTION_SAFE.get()).setMinGlobalLimited(12)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes())))
|
||||
.where("P", Predicates.blocks("ae2:spatial_pylon"))
|
||||
.where("N", Predicates.blocks("gtceu:trinium_coil_block"))
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/reaction_safe_mixing_casing",
|
||||
"gtceu:block/multiblock/generator/large_steam_turbine", false)
|
||||
|
||||
// Large Naquadah Reactor
|
||||
event.create("large_naquadah_reactor", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("large_naquadah_reactor")
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH]) // Fix for generator "overclocking" as long as the actual hatch invalidates the structure
|
||||
.regressWhenWaiting(false)
|
||||
.appearanceBlock(GCYMBlocks.CASING_ATOMIC)
|
||||
.generator(true)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("##CCCCC##","##CGGGC##","##CCCCC##","#########","#########","#########","#########","#########","#########","#########","##CCCCC##")
|
||||
.aisle("#CCCCCCC#","#CC CC#","#CCCCCCC#","#A#####A#","#A#####A#","#A#####A#","#A#####A#","#A#####A#","#A#####A#","#A#####A#","#CCCCCCC#")
|
||||
.aisle("CCCHHHCCC","CCN NCC","CCCSSSCCC","##DGGGD##","##DGGGD##","##DGGGD##","##DGGGD##","##DGGGD##","##DGGGD##","##DGGGD##","CCCSSSCCC")
|
||||
.aisle("CCHCCCHCC","G OOO G","CCSOOOSCC","##GOOOG##","##GOOOG##","##GOOOG##","##GOOOG##","##GOOOG##","##GOOOG##","##GOOOG##","CCSHHHSCC")
|
||||
.aisle("CCHCCCHCC","G OKO G","CCSOKOSCC","##GOKOG##","##GOKOG##","##GOKOG##","##GOKOG##","##GOKOG##","##GOKOG##","##GOKOG##","CCSHHHSCC")
|
||||
.aisle("CCHCCCHCC","G OOO G","CCSOOOSCC","##GOOOG##","##GOOOG##","##GOOOG##","##GOOOG##","##GOOOG##","##GOOOG##","##GOOOG##","CCSHHHSCC")
|
||||
.aisle("CCCHHHCCC","CCN NCC","CCCSSSCCC","##DGGGD##","##DGGGD##","##DGGGD##","##DGGGD##","##DGGGD##","##DGGGD##","##DGGGD##","CCCSSSCCC")
|
||||
.aisle("#CCCCCCC#","#CC CC#","#CCCCCCC#","#A#####A#","#A#####A#","#A#####A#","#A#####A#","#A#####A#","#A#####A#","#A#####A#","#CCCCCCC#")
|
||||
.aisle("##CC@CC##","##CGGGC##","##CCCCC##","#########","#########","#########","#########","#########","#########","#########","##CCCCC##")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("G", Predicates.blocks(GTBlocks.FUSION_GLASS.get()))
|
||||
.where("C", Predicates.blocks("gtceu:atomic_casing").setMinGlobalLimited(150)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.OUTPUT_LASER).setMaxGlobalLimited(1)))
|
||||
.where("H", Predicates.blocks("gtceu:heat_vent"))
|
||||
.where("K", Predicates.blocks("gtceu:fusion_coil"))
|
||||
.where("N", Predicates.blocks("gtceu:tungsten_frame"))
|
||||
.where("S", Predicates.blocks("ae2:spatial_pylon"))
|
||||
.where("O", Predicates.blocks("kubejs:omnic_matrix_coil_block"))
|
||||
.where("D", Predicates.blocks("gtceu:high_temperature_smelting_casing"))
|
||||
.where("A", Predicates.blocks("gtceu:naquadah_alloy_frame"))
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/atomic_casing",
|
||||
"gtceu:block/multiblock/generator/large_steam_turbine", false)
|
||||
|
||||
// Naquadah Fuel Refinery
|
||||
if (doHarderNaqFuel) {
|
||||
event.create("naquadah_refinery", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("naquadah_refinery")
|
||||
.appearanceBlock(() => Block.getBlock("gtceu:stress_proof_casing"))
|
||||
.recipeModifiers([GTRecipeModifiers.ELECTRIC_OVERCLOCK.apply(OverclockingLogic.NON_PERFECT_OVERCLOCK)])
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("##CCCCC##","##CCCCC##","#########","#########","#########","#########","#########","#########","#########","#########","#########")
|
||||
.aisle("#CCCCCCC#","#CC#P#CC#","####P####","####P####","###SSS###","###VVV###","###GGG###","###VVV###","###SSS###","#########","#########")
|
||||
.aisle("CCCCCCCCC","CCF###FCC","##F###F##","##FSSSF##","##S S##","##V V##","##G G##","##V V##","##S S##","###SSS###","#########")
|
||||
.aisle("CCCCCCCCC","C##III##C","###SSS###","##SPPPS##","#S K K S#","#V K K V#","#G K K G#","#V K K V#","#S K K S#","##SPPPS##","###SSS###")
|
||||
.aisle("CCCCCCCCC","CP#III#PC","#P#SSS#P#","#PSPPPSP#","#S E S#","#V E V#","#G E G#","#V E V#","#S E S#","##SPPPS##","###SMS###")
|
||||
.aisle("CCCCCCCCC","C##III##C","###SSS###","##SPPPS##","#S K K S#","#V K K V#","#G K K G#","#V K K V#","#S K K S#","##SPPPS##","###SSS###")
|
||||
.aisle("CCCCCCCCC","CCF###FCC","##F###F##","##FSSSF##","##S S##","##V V##","##G G##","##V V##","##S S##","###SSS###","#########")
|
||||
.aisle("#CCCCCCC#"," CC#P#CC ","####P####","####P####","###SSS###","###VVV###","###GGG###","###VVV###","###SSS###","#########","#########")
|
||||
.aisle("##CC@CC##","##CCCCC##","#########","#########","#########","#########","#########","#########","#########","#########","#########")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("C", Predicates.blocks("gtceu:stress_proof_casing").setMinGlobalLimited(85)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
|
||||
.where("S", Predicates.blocks("gtceu:high_temperature_smelting_casing"))
|
||||
.where("I", Predicates.blocks("gtceu:extreme_engine_intake_casing"))
|
||||
.where("P", Predicates.blocks("gtceu:tungstensteel_pipe_casing"))
|
||||
.where("K", Predicates.blocks("gtceu:superconducting_coil"))
|
||||
.where("V", Predicates.blocks("gtceu:heat_vent"))
|
||||
.where("G", Predicates.blocks("gtceu:laminated_glass"))
|
||||
.where("E", Predicates.blocks("gtceu:ptfe_pipe_casing"))
|
||||
.where("F", Predicates.blocks("gtceu:tungsten_frame"))
|
||||
.where("M", Predicates.abilities(PartAbility.MUFFLER))
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/stress_proof_casing",
|
||||
"gtceu:block/multiblock/fusion_reactor", false)
|
||||
}
|
||||
|
||||
// Omnic Forge
|
||||
event.create("omnic_forge", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes("omnic_forge")
|
||||
.appearanceBlock(() => Block.getBlock("kubejs:omnic_matrix_machine_casing"))
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT])
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("#########", "#########", "####O####", "###CCC###", "##OCCCO##", "###CCC###", "####O####", "#########", "#########")
|
||||
.aisle("#########", "####O####", "##GGOGG##", "##GODOG##", "#OODNDOO#", "##GODOG##", "##GGOGG##", "####O####", "#########")
|
||||
.aisle("####O####", "##GGOGG##", "#G G#", "#G G#", "OO D OO", "#G G#", "#G G#", "##GGOGG##", "####O####")
|
||||
.aisle("###CCC###", "##GODOG##", "#G G#", "CO OC", "CD D DC", "CO OC", "#G G#", "##GODOG##", "###CCC###")
|
||||
.aisle("##OCCCO##", "#OODNDOO#", "OO D OO", "CD D DC", "CNDDBDDNC", "CD D DC", "OO D OO", "#OODNDOO#", "##OCCCO##")
|
||||
.aisle("###CCC###", "##GODOG##", "#G G#", "CO OC", "CD D DC", "CO OC", "#G G#", "##GODOG##", "###CCC###")
|
||||
.aisle("####O####", "##GGOGG##", "#G G#", "#G G#", "OO D OO", "#G G#", "#G G#", "##GGOGG##", "####O####")
|
||||
.aisle("#########", "####O####", "##GGOGG##", "##GODOG##", "#OODNDOO#", "##GODOG##", "##GGOGG##", "####O####", "#########")
|
||||
.aisle("#########", "#########", "####O####", "###CCC###", "##OC@CO##", "###CCC###", "####O####", "#########", "#########")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("B", Predicates.blocks("gtceu:crystal_matrix_block"))
|
||||
.where("N", Predicates.blocks("gtceu:sculk_superconductor_block"))
|
||||
.where("D", Predicates.frames(GTMaterials.get("cryolobus")))
|
||||
.where("G", Predicates.blocks(GTBlocks.FUSION_GLASS.get()))
|
||||
.where("O", Predicates.blocks("kubejs:omnic_matrix_machine_casing"))
|
||||
.where("C", Predicates.blocks("kubejs:omnic_matrix_machine_casing").setMinGlobalLimited(43)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
)
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer(new ResourceLocation("kubejs", "block/omnium/casing"),
|
||||
"gtceu:block/machines/reconstructor", false)
|
||||
|
||||
// Sculk Biocharger
|
||||
event.create("sculk_biocharger", "multiblock")
|
||||
.rotationState(RotationState.NON_Y_AXIS)
|
||||
.recipeTypes(["discharger", "charger"])
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.ELECTRIC_OVERCLOCK.apply(OverclockingLogic.PERFECT_OVERCLOCK)])
|
||||
.appearanceBlock(() => Block.getBlock("kubejs:bioalloy_casing"))
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("####CCC####", "####CCC####", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "####CCC####", "####CCC####")
|
||||
.aisle("##CCNNNCC##", "##CCcccCC##", "####GGG####", "####GGG####", "####GGG####", "####GGG####", "####GGG####", "####GGG####", "####GGG####", "##CCcccCC##", "##CCNNNCC##")
|
||||
.aisle("#CNNCNCNNC#", "#CNcScScNC#", "##NG c GN##", "##NG c GN##", "##NG GN##", "##NG GN##", "##NG GN##", "##NG c GN##", "##NG c GN##", "#CNcScScNC#", "#CNNCNCNNC#")
|
||||
.aisle("#CNCCNCCNC#", "#CcSSSSScC#", "##G G##", "##G G##", "##G E G##", "##G G##", "##G E G##", "##G G##", "##G G##", "#CcSSSSScC#", "#CNCCNCCNC#")
|
||||
.aisle("CNCCCNCCCNC", "CcSScNcSScC", "#G cLc G#", "#G G#", "#G G#", "#G G#", "#G G#", "#G G#", "#G cLc G#", "CcSScNcSScC", "CNCCCNCCCNC")
|
||||
.aisle("CNNNNNNNNNC", "CccSNNNSccC", "#Gc LNL cG#", "#Gc N cG#", "#G E N E G#", "#G T G#", "#G E N E G#", "#Gc N cG#", "#Gc LNL cG#", "CccSNNNSccC", "CNNNNNNNNNC")
|
||||
.aisle("CNCCCNCCCNC", "CcSScNcSScC", "#G cLc G#", "#G G#", "#G G#", "#G G#", "#G G#", "#G G#", "#G cLc G#", "CcSScNcSScC", "CNCCCNCCCNC")
|
||||
.aisle("#CNCCNCCNC#", "#CcSSSSScC#", "##G G##", "##G G##", "##G E G##", "##G G##", "##G E G##", "##G G##", "##G G##", "#CcSSSSScC#", "#CNCCNCCNC#")
|
||||
.aisle("#CNNCNCNNC#", "#CNcScScNC#", "##NG c GN##", "##NG c GN##", "##NG GN##", "##NG GN##", "##NG GN##", "##NG c GN##", "##NG c GN##", "#CNcScScNC#", "#CNNCNCNNC#")
|
||||
.aisle("##CCNNNCC##", "##CCcccCC##", "####GGG####", "####GGG####", "####GGG####", "####GGG####", "####GGG####", "####GGG####", "####GGG####", "##CCcccCC##", "##CCNNNCC##")
|
||||
.aisle("####CCC####", "####C@C####", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "####CCC####", "####CCC####")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("C", Predicates.blocks("kubejs:bioalloy_casing").setMinGlobalLimited(150)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
)
|
||||
.where("c", Predicates.blocks("kubejs:bioalloy_casing"))
|
||||
.where("N", Predicates.blocks(GCYMBlocks.CASING_NONCONDUCTING.get()))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_LAMINATED_GLASS.get()))
|
||||
.where("S", Predicates.blocks("minecraft:sculk"))
|
||||
.where("T", Predicates.blocks("minecraft:sculk_catalyst"))
|
||||
.where("L", Predicates.blocks("gtceu:black_lamp"))
|
||||
.where("E", Predicates.blocks(GCYMBlocks.ELECTROLYTIC_CELL.get()))
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("kubejs:block/bioalloy/casing",
|
||||
"gtceu:block/machines/electrolyzer", false)
|
||||
|
||||
// Advanced Assembly line (Dimensional Superassembler)
|
||||
event.create("dimensional_superassembler", "multiblock")
|
||||
.rotationState(RotationState.ALL)
|
||||
.recipeTypes("assembly_line")
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_PERFECT])
|
||||
.appearanceBlock(() => Block.getBlock("kubejs:dimensional_stabilization_netherite_casing"))
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("#########", "###CCC###", "##CCCCC##", "#CCCCCCC#", "#CCCCCCC#", "#CCCCCCC#", "##CCCCC##", "###CCC###", "#########")
|
||||
.aisle("##CCCCC##", "#CCCCCCC#", "CCCCCCCCC", "CCCCCCCCC", "CCCCCCCCC", "CCCCCCCCC", "CCCCCCCCC", "#CCCCCCC#", "##CCCCC##")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("#########", "#I#####I#", "##LLOLL##", "##GF FG##", "##GF FG##", "##RLLLR##", "##LM#ML##", "#I#####I#", "#########")
|
||||
.aisle("##CCCCC##", "#CCCCCCC#", "CCCCCCCCC", "CCCCCCCCC", "CCCCCCCCC", "CCCCCCCCC", "CCCCCCCCC", "#CCCCCCC#", "##CCCCC##")
|
||||
.aisle("#########", "###CCC###", "##CCCCC##", "#CCCCCCC#", "#CCC@CCC#", "#CCCCCCC#", "##CCCCC##", "###CCC###", "#########")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("C", Predicates.blocks("kubejs:dimensional_stabilization_netherite_casing").setMinGlobalLimited(200)
|
||||
.or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMaxGlobalLimited(2).setPreviewCount(1))
|
||||
.or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setPreviewCount(1))
|
||||
.or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setPreviewCount(1))
|
||||
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setPreviewCount(1))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.INPUT_LASER).setMaxGlobalLimited(1))
|
||||
)
|
||||
.where("G", Predicates.blocks(GTBlocks.FUSION_GLASS.get()))
|
||||
.where("L", Predicates.blocks(GCYMBlocks.CASING_LARGE_SCALE_ASSEMBLING.get()))
|
||||
.where("O", Predicates.blocks(GTBlocks.CASING_ASSEMBLY_LINE.get()))
|
||||
.where("F", Predicates.blocks("kubejs:bioalloy_fusion_casing"))
|
||||
.where("R", Predicates.blocks(GTBlocks.CASING_GRATE.get())
|
||||
.or(Predicates.abilities(PartAbility.DATA_ACCESS).setExactLimit(1)))
|
||||
.where("M", Predicates.blocks("kubejs:omnic_matrix_machine_casing"))
|
||||
.where("I", Predicates.frames(GTMaterials.get("eltz")))
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("kubejs:block/netherite/casing",
|
||||
"gtceu:block/multiblock/assembly_line", false)
|
||||
|
||||
// MABS
|
||||
const GCYMRecipeTypes = Java.loadClass("com.gregtechceu.gtceu.common.data.GCYMRecipeTypes") // Have to load it here because ALLOY_BLAST_RECIPES is not defined outside of the event
|
||||
event.create("mega_alloy_blast_smelter", "multiblock")
|
||||
.machine((holder) => new CoilWorkableElectricMultiblockMachine(holder))
|
||||
.rotationState(RotationState.ALL)
|
||||
.recipeTypes(GCYMRecipeTypes.ALLOY_BLAST_RECIPES)
|
||||
.recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, (machine, recipe) => GTRecipeModifiers.ebfOverclock(machine, recipe)])
|
||||
.appearanceBlock(GCYMBlocks.CASING_HIGH_TEMPERATURE_SMELTING)
|
||||
.pattern(definition => FactoryBlockPattern.start()
|
||||
.aisle("###IIIII###", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########")
|
||||
.aisle("#IIIIIIIII#", "###F###F###", "###F###F###", "###F###F###", "###FIIIF###", "###FIEIF###", "###FIIIF###", "###FFFFF###", "###########", "###########", "###########", "###########", "###########", "###########", "###IIHII###", "###########")
|
||||
.aisle("#IIIIIIIII#", "###HHHHH###", "###HVVVH###", "##FHHHHHF##", "##IICCCII##", "##IICECII##", "##IICCCII##", "##FFCCCFF##", "##F#CCC#F##", "##F#CCC#F##", "##F#VVV#F##", "##F#CCC#F##", "##F#CCC#F##", "##F#CCC#F##", "##IIIIIII##", "####IHI####")
|
||||
.aisle("IIIIIIIIIII", "#FHHHHHHHF#", "#FHHHPHHHF#", "#FHHPPPHHF#", "#FIC CIF#", "#FIC CIF#", "#FIC CIF#", "#FFC CFF#", "###C C###", "###C C###", "###V V###", "###C C###", "###C C###", "###C C###", "#IIIHHHIII#", "###IIHII###")
|
||||
.aisle("IIIIIIIIIII", "##HHHHHHH##", "##VHHHHHV##", "##HP PH##", "#IC CI#", "#IC CI#", "#IC CI#", "#FC P CF#", "##C C##", "##C C##", "##V V##", "##C P C##", "##C C##", "##C C##", "#IIH HII#", "##IIHHHII##")
|
||||
.aisle("IIIIIIIIIII", "##HHHGHHH##", "##VPHGHPV##", "##HP P PH##", "#IC P CI#", "#EE PPP EE#", "#IC P CI#", "#FC P CF#", "##C P C##", "##C PPP C##", "##V P V##", "##C P C##", "##C C##", "##C C##", "#HIH HIH#", "##HHHMHHH##")
|
||||
.aisle("IIIIIIIIIII", "##HHHHHHH##", "##VHHHHHV##", "##HP PH##", "#IC CI#", "#IC CI#", "#IC CI#", "#FC P CF#", "##C C##", "##C C##", "##V V##", "##C P C##", "##C C##", "##C C##", "#IIH HII#", "##IIHHHII##")
|
||||
.aisle("IIIIIIIIIII", "#FHHHHHHHF#", "#FHHHPHHHF#", "#FHHPPPHHF#", "#FIC CIF#", "#FIC CIF#", "#FIC CIF#", "#FFC CFF#", "###C C###", "###C C###", "###V V###", "###C C###", "###C C###", "###C C###", "#IIIHHHIII#", "###IIHII###")
|
||||
.aisle("#IIIIIIIII#", "###HHHHH###", "###HH@HH###", "##FHHHHHF##", "##IICCCII##", "##IICECII##", "##IICCCII##", "##FFCCCFF##", "##F#CCC#F##", "##F#CCC#F##", "##F#VVV#F##", "##F#CCC#F##", "##F#CCC#F##", "##F#CCC#F##", "##IIIIIII##", "####IHI####")
|
||||
.aisle("#IIIIIIIII#", "###F###F###", "###F###F###", "###F###F###", "###FIIIF###", "###FIEIF###", "###FIIIF###", "###FFFFF###", "###########", "###########", "###########", "###########", "###########", "###########", "###IIHII###", "###########")
|
||||
.aisle("###IIIII###", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########", "###########")
|
||||
.where("@", Predicates.controller(Predicates.blocks(definition.get())))
|
||||
.where("H", Predicates.blocks(GCYMBlocks.CASING_HIGH_TEMPERATURE_SMELTING.get()).setMinGlobalLimited(115)
|
||||
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
|
||||
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
|
||||
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
|
||||
)
|
||||
.where("I", Predicates.blocks(GTBlocks.CASING_INVAR_HEATPROOF.get()))
|
||||
.where("F", Predicates.frames(GTMaterials.get("cryococcus")))
|
||||
.where("V", Predicates.blocks(GCYMBlocks.HEAT_VENT.get()))
|
||||
.where("C", Predicates.heatingCoils())
|
||||
.where("M", Predicates.abilities(PartAbility.MUFFLER))
|
||||
.where("G", Predicates.blocks(GTBlocks.CASING_TUNGSTENSTEEL_GEARBOX.get())) // Change to Naquadah Gearbox if ICE gets added
|
||||
.where("P", Predicates.blocks(GTBlocks.CASING_TUNGSTENSTEEL_PIPE.get())) // Change to Naquadah Pipe Casing if ICE gets added
|
||||
.where("E", Predicates.blocks(GTBlocks.CASING_EXTREME_ENGINE_INTAKE.get())) // Change to Insane Engine Intake if ICE gets added
|
||||
.where(" ", Predicates.air())
|
||||
.where("#", Predicates.any())
|
||||
.build())
|
||||
.workableCasingRenderer("gtceu:block/casings/gcym/high_temperature_smelting_casing",
|
||||
"gtceu:block/multiblock/gcym/blast_alloy_smelter", false)
|
||||
})
|
||||
57
kubejs/startup_scripts/registry/singleblock_registry.js
Normal file
57
kubejs/startup_scripts/registry/singleblock_registry.js
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
/**
|
||||
* Singleblock registry.
|
||||
* This is the place where the Atomic Reconstructor machine/recipe type is defined
|
||||
* and custom Parallel Control hatches.
|
||||
*/
|
||||
const $ParallelHatchPartMachine = Java.loadClass("com.gregtechceu.gtceu.common.machine.multiblock.part.ParallelHatchPartMachine")
|
||||
|
||||
// GT Atomic Reconstructor recipe type
|
||||
GTCEuStartupEvents.registry("gtceu:recipe_type", event => {
|
||||
event.create("atomic_reconstruction")
|
||||
.category("reconstruction")
|
||||
.setEUIO("in")
|
||||
.setMaxIOSize(1, 1, 0, 0)
|
||||
.setSlotOverlay(false, false, GuiTextures.COMPRESSOR_OVERLAY)
|
||||
.setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT)
|
||||
.setSound(GTSoundEntries.ELECTROLYZER)
|
||||
})
|
||||
|
||||
// GT Atomic Reconstructor machine
|
||||
GTCEuStartupEvents.registry("gtceu:machine", event => {
|
||||
event.create("atomic_reconstructor", "simple")
|
||||
.tiers(GTValues.LV, GTValues.MV, GTValues.HV, GTValues.EV, GTValues.IV, GTValues.LuV, GTValues.ZPM, GTValues.UV, GTValues.UHV, GTValues.UEV, GTValues.UIV)
|
||||
.definition((tier, builder) =>
|
||||
builder
|
||||
.langValue(`${GTValues.VLVH[tier]} Atomic Reconstructor`)
|
||||
.recipeType("atomic_reconstruction")
|
||||
.workableTieredHullRenderer("gtceu:block/machines/reconstructor")
|
||||
)
|
||||
})
|
||||
|
||||
|
||||
// Giga, Omega Parallel Hatches
|
||||
GTCEuStartupEvents.registry("gtceu:machine", event => {
|
||||
event.create("uhv_parallel_hatch", "custom")
|
||||
.machine((holder, tier) => {
|
||||
return new $ParallelHatchPartMachine(holder, tier);
|
||||
})
|
||||
.tiers(GTValues.UHV)
|
||||
.definition((tier, builder) =>
|
||||
builder
|
||||
.rotationState(RotationState.ALL)
|
||||
.abilities(PartAbility.PARALLEL_HATCH)
|
||||
.workableTieredHullRenderer(GTCEu.id("block/machines/parallel_hatch_mk9"))
|
||||
)
|
||||
|
||||
event.create("uev_parallel_hatch", "custom")
|
||||
.machine((holder, tier) => {
|
||||
return new $ParallelHatchPartMachine(holder, tier);
|
||||
})
|
||||
.tiers(GTValues.UEV)
|
||||
.definition((tier, builder) =>
|
||||
builder
|
||||
.rotationState(RotationState.ALL)
|
||||
.abilities(PartAbility.PARALLEL_HATCH)
|
||||
.workableTieredHullRenderer(GTCEu.id("block/machines/parallel_hatch_mk10"))
|
||||
)
|
||||
})
|
||||
39
kubejs/startup_scripts/worldgen/dimension_marker.js
Normal file
39
kubejs/startup_scripts/worldgen/dimension_marker.js
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
/**
|
||||
* Create Dimension Markers for Ad Astra dimensions.
|
||||
* Dimension markers are the item-based icons to indicate dimensions for GregTech recipes in EMI.
|
||||
*/
|
||||
GTCEuStartupEvents.registry("gtceu:dimension_marker", event => {
|
||||
// Void Dim
|
||||
event.create("javd:void")
|
||||
.iconSupplier(() => Item.of("telepastries:custom_cake").getItem())
|
||||
.tier(0)
|
||||
.overrideName("Void Dimension")
|
||||
|
||||
// Lost Cities
|
||||
event.create("lostcities:lostcities")
|
||||
.iconSupplier(() => Item.of("telepastries:lost_city_cake").getItem())
|
||||
.tier(0)
|
||||
.overrideName("Lost Cities")
|
||||
|
||||
// Ad Astra dimensions
|
||||
event.create("ad_astra:moon")
|
||||
.iconSupplier(() => Item.of("ad_astra:moon_globe").getItem())
|
||||
.tier(0)
|
||||
.overrideName("Moon")
|
||||
event.create("ad_astra:mars")
|
||||
.iconSupplier(() => Item.of("ad_astra:mars_globe").getItem())
|
||||
.tier(0)
|
||||
.overrideName("Mars")
|
||||
event.create("ad_astra:mercury")
|
||||
.iconSupplier(() => Item.of("ad_astra:mercury_globe").getItem())
|
||||
.tier(0)
|
||||
.overrideName("Mercury")
|
||||
event.create("ad_astra:venus")
|
||||
.iconSupplier(() => Item.of("ad_astra:venus_globe").getItem())
|
||||
.tier(0)
|
||||
.overrideName("Venus")
|
||||
event.create("ad_astra:glacio")
|
||||
.iconSupplier(() => Item.of("ad_astra:glacio_globe").getItem())
|
||||
.tier(0)
|
||||
.overrideName("Glacio")
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue