This PR updates Nomi-Labs to 0.7.0, allowing for associate updates to GT, GCYM, GrS and Architecture Craft, as well as the removal of Random Patches, Just Enough Dimensions, and Difficulty Lock. Although GT 2.8.10 also fixed Extreme RAM Usage in Alfheim 1.3, (See PR https://github.com/GregTechCEu/GregTech/pull/2475) this PR **does not** update Alfheim to 1.3. This is because Alfheim 1.3, although not consuming large amounts of memory, still consumes more memory than 1.1.1, and causes fps spikes. Also, because Nomi-Labs now implements a native and better difficulty lock, of which works on dedicated servers, `server.properties` overrides, as well as previously changed parts in README and Pack Mode Switchers (in https://github.com/Nomi-CEu/Nomi-CEu/pull/292), have been removed. This PR also fixes an issue with corrupted images and jar files in built packs. /* Github Stuff */ [FIXUP] [[fixes]] sha = "bd58b9072f45d647734ae66168cbd27bf9b2f220" newTitle = "Update GT and Related Mods for 1.7" newBody = ''' [EXPAND] [[messages]] messageTitle = "Update GT to 2.8+, add Nomi Labs" messageBody = """ [BREAKING] [DETAILS] details = [ \"**Please DO NOT revert any saves that have been loaded in this release to 1.6.1b, 1.6.1a, or prior!**\", \"**Lots of Recipes have been moved to the Assembly Line, and now require Assembly Line Research.**\", \"Adds Assembly Line Research\", \"Adds ME Hatches and Buses, for combining Multiblocks with AE Networks\", \"Adds Filtered Output Hatches\", \"Adds EU Multiblock Power Storage\", \"Adds Multiblock Transformer and Laser Power Transfer\", \"Adds Long Distance Pipes\", \"Creating Waypoints in the Prospector\", \"Fixing many Bugs\", \"And many more!\" ] [DETAILS] [PRIORITY] priority = 100 [PRIORITY] """ [[messages]] messageTitle = "Multiblock Changes" messageBody = """ [BREAKING] [DETAILS] details = [ \"Multiblocks accept a new **maximum** of 2 Energy Hatches.\", \"All Custom Multiblocks, such as Naquadah Reactors and Multiverse Projectors, now have **minimum casing requirements** and a **maintenance hatch**.\", \"Some Custom Multiblocks now have Distinct Mode\", \"All Custom Multiblocks now have custom Front Overlays\", \"Reworked & Improved Multiblock UIs\" ] [DETAILS] [PRIORITY] priority = 50 [PRIORITY] """ [EXPAND] ''' [FIXUP] [EXPAND] [[messages]] messageTitle = "Upgrade AE2 Stuff to AE2 Stuff Unofficial" messageBody = ''' [BREAKING] [DETAILS] details = [ "Pattern Encoders have been Removed!", "Any existing Pattern Encoders, whether items, in patterns or placed, have been remapped to AE2 Interfaces.", "All Usages in Recipes have also been changed to AE2 Interfaces!", ] [DETAILS] [PRIORITY] priority=25 [PRIORITY] ''' [[messages]] messageTitle = "Update GT to 2.8.10" messageBody = ''' [BREAKING] [DETAILS] details = [ "Allows GregTech Data Sticks to Copy ME Hatch Settings", "Adds an 'Stocking' Version of ME Hatches and Buses", "Support for Displaying Power Substation on Central Monitor", ] [DETAILS] [PRIORITY] priority=20 [PRIORITY] [IGNORE] checks = { compareBefore = "1.7-alpha-4" } # Only apply this if the commit being compared against is 1.7-alpha-4 or newer [IGNORE] ''' [[messages]] messageTitle = "Update Nomi Labs to 0.7.0" messageBody = ''' [BREAKING] [DETAILS] details = [ "Improvement of DME Simulation Chamber (now increases Tiers and Data Counts of Models)", "Custom Implementation of Difficulty Lock, now works on Dedicated Servers", "Replacement of the Void Dimension, fixing issues with Difficulty Changing", "Replacement of Custom Window Titles and Logos, Allowing the Removal of Random Patches", "Improvements to FTB Utils and Effortless Building", "Allows Setting of Default Keybinds for New Players", ] [DETAILS] [PRIORITY] priority=15 [PRIORITY] [IGNORE] checks = { compareBefore = "1.7-alpha-4" } # Only apply this if the commit being compared against is 1.7-alpha-4 or newer [IGNORE] ''' [EXPAND] [MOD INFO] [[infos]] projectID = 254317 info = "Replaced by Nomi Labs" [[infos]] projectID = 285612 info = "Replaced by Nomi Labs" [[infos]] projectID = 390886 info = "Replaced by Nomi Labs" [[infos]] projectID = 538092 info = "Replaced by Betterer P2P" [MOD INFO]
364 lines
10 KiB
Groovy
364 lines
10 KiB
Groovy
import com.cleanroommc.groovyscript.helper.ingredient.OreDictIngredient
|
|
import net.minecraft.item.ItemStack
|
|
|
|
import static gregtech.api.GTValues.*
|
|
|
|
/* Usable Blocks */
|
|
// ME Drive
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:drive'))
|
|
.matrix(
|
|
'PEP',
|
|
'LCL',
|
|
'PSP')
|
|
.key('P', metaitem('plateAluminium'))
|
|
.key('E', metaitem('emitter.mv'))
|
|
.key('L', ore('circuitLv'))
|
|
.key('C', item('appliedenergistics2:chest'))
|
|
.key('S', metaitem('sensor.mv'))
|
|
.replace().register()
|
|
|
|
// ME Inscriber
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:inscriber'))
|
|
.matrix(
|
|
'DPD',
|
|
'FHD',
|
|
'DPD')
|
|
.key('D', metaitem('nomilabs:plateDarkSteel'))
|
|
.key('P', metaitem('electric.piston.mv'))
|
|
.key('F', item('appliedenergistics2:material:7'))
|
|
.key('H', metaitem('hull.mv'))
|
|
.replace().register()
|
|
|
|
// Crafting CPU
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:crafting_unit'))
|
|
.matrix(
|
|
'PCP',
|
|
'FLF',
|
|
'PCP')
|
|
.key('P', metaitem('plateAluminium'))
|
|
.key('C', item('appliedenergistics2:material:23'))
|
|
.key('F', item('appliedenergistics2:part:16'))
|
|
.key('L', item('appliedenergistics2:material:22'))
|
|
.replace().register()
|
|
|
|
// Molecular Assembler
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:molecular_assembler'))
|
|
.matrix(
|
|
'PGP',
|
|
'ACF',
|
|
'PGP')
|
|
.key('P', metaitem('plateAluminium'))
|
|
.key('G', item('appliedenergistics2:quartz_glass'))
|
|
.key('A', item('appliedenergistics2:material:44'))
|
|
.key('C', metaitem('workbench'))
|
|
.key('F', item('appliedenergistics2:material:43'))
|
|
.replace().register()
|
|
|
|
// Matter Condensor
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:condenser'))
|
|
.matrix(
|
|
'PPP',
|
|
'PSP',
|
|
'PPP')
|
|
.key('P', metaitem('plateTitanium'))
|
|
.key('S', metaitem('quantumstar'))
|
|
.replace().register()
|
|
|
|
// Energy Acceptor
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:energy_acceptor'))
|
|
.matrix(
|
|
'PFP',
|
|
'FHF',
|
|
'PFP')
|
|
.key('P', metaitem('nomilabs:plateElectricalSteel'))
|
|
.key('F', item('moreplates:fluix_plate'))
|
|
.key('H', metaitem('hull.lv'))
|
|
.replace().register()
|
|
|
|
// Charger
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:charger'))
|
|
.matrix(
|
|
'DCD',
|
|
'D ',
|
|
'DCD')
|
|
.key('D', metaitem('nomilabs:plateDarkSteel'))
|
|
.key('C', metaitem('plateCertusQuartz'))
|
|
.replace().register()
|
|
|
|
// ME Chest
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:chest'))
|
|
.matrix(
|
|
'GPG',
|
|
'CSF',
|
|
'DQD')
|
|
.key('G', item('appliedenergistics2:quartz_glass'))
|
|
.key('P', item('appliedenergistics2:part:180'))
|
|
.key('C', item('appliedenergistics2:material:10'))
|
|
.key('S', item('actuallyadditions:block_giant_chest'))
|
|
.key('F', item('appliedenergistics2:material:12'))
|
|
.key('D', ore('blockDarkSteel'))
|
|
.key('Q', item('appliedenergistics2:material:11'))
|
|
.replace().register()
|
|
|
|
// Quantum Ring
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:quantum_ring'))
|
|
.matrix(
|
|
'PCP',
|
|
'EQE',
|
|
'PCP')
|
|
.key('P', metaitem('plateStainlessSteel'))
|
|
.key('C', item('appliedenergistics2:material:23'))
|
|
.key('E', item('appliedenergistics2:material:24'))
|
|
.key('Q', metaitem('quantumstar'))
|
|
.replace().register()
|
|
|
|
// Interfaces
|
|
var makeInterface = { String recipeName, OreDictIngredient plate, ItemStack moving, ItemStack interfaceStack ->
|
|
crafting.remove(recipeName)
|
|
crafting.shapedBuilder()
|
|
.output(interfaceStack)
|
|
.matrix(
|
|
'PRP',
|
|
'AMF',
|
|
'PPP')
|
|
.key('P', plate)
|
|
.key('R', moving)
|
|
.key('A', item('appliedenergistics2:material:44'))
|
|
.key('M', metaitem('hull.mv'))
|
|
.key('F', item('appliedenergistics2:material:43'))
|
|
.register()
|
|
}
|
|
|
|
// Interface
|
|
makeInterface('appliedenergistics2:network/blocks/interfaces_interface', ore('plateAluminium'), metaitem('robot.arm.mv'), item('appliedenergistics2:interface'))
|
|
|
|
// Fluid Interface
|
|
makeInterface('appliedenergistics2:network/blocks/fluid_interfaces_interface', ore('plateLapis'), metaitem('electric.pump.mv'), item('appliedenergistics2:fluid_interface'))
|
|
|
|
/* Cables */
|
|
// Quartz Fiber
|
|
crafting.removeByOutput(item('appliedenergistics2:part:140'))
|
|
mods.gregtech.wiremill.recipeBuilder()
|
|
.inputs(item('appliedenergistics2:material:11'))
|
|
.outputs(item('appliedenergistics2:part:140') * 2)
|
|
.duration(100).EUt(VHA[LV])
|
|
.buildAndRegister()
|
|
|
|
// Glass Cable
|
|
crafting.removeByOutput(item('appliedenergistics2:part:16'))
|
|
mods.gregtech.alloy_smelter.recipeBuilder()
|
|
.inputs(ore('dustFluix'), item('appliedenergistics2:part:140'))
|
|
.outputs(item('appliedenergistics2:part:16') * 2)
|
|
.duration(50).EUt(VHA[LV])
|
|
.buildAndRegister()
|
|
|
|
// Covered Cable
|
|
for (var rubber in [fluid('rubber') * 144, fluid('styrene_butadiene_rubber') * 36, fluid('silicone_rubber') * 76]) {
|
|
mods.gregtech.assembler.recipeBuilder()
|
|
.inputs(item('appliedenergistics2:part:16'))
|
|
.fluidInputs(rubber)
|
|
.outputs(item('appliedenergistics2:part:36'))
|
|
.duration(100).EUt(VA[ULV])
|
|
.buildAndRegister()
|
|
|
|
}
|
|
|
|
// ME Conduit
|
|
crafting.removeByOutput(item('enderio:item_me_conduit'))
|
|
mods.gregtech.assembler.recipeBuilder()
|
|
.inputs(item('appliedenergistics2:part:36') * 3, item('enderio:item_material:4') * 6)
|
|
.outputs(item('enderio:item_me_conduit') * 8)
|
|
.duration(100).EUt(VHA[LV])
|
|
.buildAndRegister()
|
|
|
|
|
|
/* Block Parts */
|
|
/* Planes */
|
|
var makePlane = { OreDictIngredient plate, ItemStack core, ItemStack plane ->
|
|
crafting.shapedBuilder()
|
|
.output(plane)
|
|
.matrix(
|
|
'FFF',
|
|
'PAP')
|
|
.key('F', item('moreplates:fluix_plate'))
|
|
.key('P', plate)
|
|
.key('A', core)
|
|
.replace().register()
|
|
}
|
|
|
|
// Formation Plane
|
|
makePlane(ore('plateAluminium'), item('appliedenergistics2:material:43'), item('appliedenergistics2:part:320'))
|
|
|
|
// Annihilation Plane
|
|
makePlane(ore('plateAluminium'), item('appliedenergistics2:material:44'), item('appliedenergistics2:part:300'))
|
|
|
|
// Fluid Formation Plane
|
|
makePlane(ore('plateLapis'), item('appliedenergistics2:material:43'), item('appliedenergistics2:part:321'))
|
|
|
|
// Fluid Annihilation Plane
|
|
makePlane(ore('plateLapis'), item('appliedenergistics2:material:44'), item('appliedenergistics2:part:302'))
|
|
|
|
/* Level Emitters */
|
|
var makeEmitter = { OreDictIngredient plate, ItemStack emitter ->
|
|
crafting.shapedBuilder()
|
|
.output(emitter)
|
|
.matrix(
|
|
'TP',
|
|
'CR')
|
|
.key('T', item('minecraft:redstone_torch'))
|
|
.key('P', plate)
|
|
.key('C', item('appliedenergistics2:material:23'))
|
|
.key('R', ore('stickStainlessSteel'))
|
|
.replace().register()
|
|
}
|
|
|
|
// Item Emitter
|
|
makeEmitter(ore('plateAluminium'), item('appliedenergistics2:part:280'))
|
|
|
|
// Fluid Emitter
|
|
makeEmitter(ore('plateLapis'), item('appliedenergistics2:part:281'))
|
|
|
|
/* Terminals */
|
|
// ME Terminal
|
|
crafting.shapelessBuilder()
|
|
.output(item('appliedenergistics2:part:380'))
|
|
.input(ore('itemIlluminatedPanel'))
|
|
.input(ore('circuitLv'))
|
|
.replace().register()
|
|
|
|
// Pattern Terminal
|
|
crafting.shapelessBuilder()
|
|
.output(item('appliedenergistics2:part:340'))
|
|
.input(item('appliedenergistics2:material:24'))
|
|
.input(item('appliedenergistics2:part:380'))
|
|
.input(item('appliedenergistics2:material:52'))
|
|
.replace().register()
|
|
|
|
// Fluid Terminal
|
|
crafting.shapelessBuilder()
|
|
.output(item('appliedenergistics2:part:520'))
|
|
.input(item('appliedenergistics2:part:380'))
|
|
.input(metaitem('plateLapis'))
|
|
.input(item('appliedenergistics2:material:22'))
|
|
.replace().register()
|
|
|
|
// Extended Processing Pattern Terminal
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:part:341'))
|
|
.matrix(
|
|
'A',
|
|
'B',
|
|
'C')
|
|
.key('A', item('appliedenergistics2:part:340'))
|
|
.key('B', ore('circuitEv'))
|
|
.key('C', item('packagedauto:encoder'))
|
|
.replace().register()
|
|
|
|
// Configuration Fluid Interface Terminal
|
|
crafting.shapelessBuilder()
|
|
.output(item('appliedenergistics2:part:522'))
|
|
.input(item('appliedenergistics2:part:520'))
|
|
.input(item('appliedenergistics2:material:24'))
|
|
.input(item('appliedenergistics2:fluid_interface').or(item('appliedenergistics2:part:441')))
|
|
.replace().register()
|
|
|
|
/* Buses */
|
|
var makeImportBus = { OreDictIngredient plate, ItemStack bus ->
|
|
crafting.shapedBuilder()
|
|
.output(bus)
|
|
.matrix(
|
|
' A ',
|
|
'PEP')
|
|
.key('A', item('appliedenergistics2:material:44'))
|
|
.key('P', plate)
|
|
.key('E', metaitem('electric.piston.mv'))
|
|
.replace().register()
|
|
}
|
|
|
|
var makeExportBus = { OreDictIngredient plate, ItemStack bus ->
|
|
crafting.shapedBuilder()
|
|
.output(bus)
|
|
.matrix(
|
|
'PEP',
|
|
' A ')
|
|
.key('P', plate)
|
|
.key('E', item('appliedenergistics2:material:43'))
|
|
.key('A', metaitem('electric.piston.mv'))
|
|
.replace().register()
|
|
}
|
|
|
|
// Import Bus
|
|
makeImportBus(ore('plateAluminium'), item('appliedenergistics2:part:240'))
|
|
|
|
// Fluid Import Bus
|
|
makeImportBus(ore('plateLapis'), item('appliedenergistics2:part:241'))
|
|
|
|
// Export Bus
|
|
makeExportBus(ore('plateAluminium'), item('appliedenergistics2:part:260'))
|
|
|
|
// Fluid Export Bus
|
|
makeExportBus(ore('plateLapis'), item('appliedenergistics2:part:261'))
|
|
|
|
// Storage Bus
|
|
crafting.shapelessBuilder()
|
|
.output(item('appliedenergistics2:part:220'))
|
|
.input(metaitem('electric.piston.mv'), item('appliedenergistics2:interface'))
|
|
.replace().register()
|
|
|
|
// Fluid Storage Bus
|
|
crafting.shapelessBuilder()
|
|
.output(item('appliedenergistics2:part:221'))
|
|
.input(metaitem('electric.pump.mv'), item('appliedenergistics2:fluid_interface'))
|
|
.replace().register()
|
|
|
|
// Oredict Storage Bus
|
|
crafting.shapelessBuilder()
|
|
.output(item('appliedenergistics2:part:222'))
|
|
.input(item('appliedenergistics2:part:220'), metaitem('ore_dictionary_filter'))
|
|
|
|
/* Misc Block Parts */
|
|
// P2P Tunnel
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:part:460'))
|
|
.matrix(
|
|
' P ',
|
|
'PEP',
|
|
'FFF')
|
|
.key('P', metaitem('plateStainlessSteel'))
|
|
.key('E', item('appliedenergistics2:material:24'))
|
|
.key('F', ore('plateFluix'))
|
|
.replace().register()
|
|
|
|
// Illuminated Panel
|
|
crafting.remove('appliedenergistics2:network/parts/panels_semi_dark_monitor')
|
|
crafting.shapedBuilder()
|
|
.output(item('appliedenergistics2:part:180'))
|
|
.matrix(
|
|
'GGG',
|
|
'PPP')
|
|
.key('G', item('appliedenergistics2:quartz_glass'))
|
|
.key('P', item('moreplates:fluix_plate'))
|
|
.register()
|
|
|
|
// Cable Anchor
|
|
crafting.addShapeless(item('appliedenergistics2:part:120'), [ore('boltSteel')])
|
|
|
|
/* Misc Blocks */
|
|
// Vibrant Quartz Glass
|
|
crafting.removeByOutput(item('appliedenergistics2:quartz_vibrant_glass'))
|
|
mods.gregtech.alloy_smelter.recipeBuilder()
|
|
.inputs(item('appliedenergistics2:quartz_glass'), ore('ingotVibrantAlloy'))
|
|
.outputs(item('appliedenergistics2:quartz_vibrant_glass'))
|
|
.duration(80).EUt(VHA[LV])
|
|
.buildAndRegister()
|
|
|