diff --git a/manifest.json b/manifest.json index f6c3319..2d83221 100644 --- a/manifest.json +++ b/manifest.json @@ -11,7 +11,7 @@ "manifestType": "minecraftModpack", "manifestVersion": 1, "name": "GregBlock Revamped", - "version": "1.0.4", + "version": "2.1.0", "author": "XXXotpgarenXXX", "files": [ { diff --git a/overrides/mods/GregicAdditions-1.12.2-1.4.4.jar b/overrides/mods/GregicAdditions-1.12.2-1.4.5.jar similarity index 83% rename from overrides/mods/GregicAdditions-1.12.2-1.4.4.jar rename to overrides/mods/GregicAdditions-1.12.2-1.4.5.jar index 920b12a..0b6f8be 100644 Binary files a/overrides/mods/GregicAdditions-1.12.2-1.4.4.jar and b/overrides/mods/GregicAdditions-1.12.2-1.4.5.jar differ diff --git a/overrides/schematics/NaquadahReactorLuvAge.schematic b/overrides/schematics/NaquadahReactorLuvAge.schematic deleted file mode 100644 index 8a50cc4..0000000 Binary files a/overrides/schematics/NaquadahReactorLuvAge.schematic and /dev/null differ diff --git a/overrides/scripts/opencomputers.zs b/overrides/scripts/opencomputers.zs deleted file mode 100644 index 8cd3fbd..0000000 --- a/overrides/scripts/opencomputers.zs +++ /dev/null @@ -1,504 +0,0 @@ -// General approach: -// - Use GT intermediates instead of OC intermediates. -// - Shift most intermediate crafting to assembler / circuit assembler. -// - OC Tier 1 ~= MV -// - OC Tier 2 ~= HV -// - OC Tier 3 ~= EV -// - Nuggets -> foil / fine wire; ingots -> plates / wire or cable; -// - (T1) iron -> annealed copper + red alloy -// - (T2) gold -> rose gold + platinum -// - (T3) diamond -> graphene + osmium -- this seems particularly evil ;-) -// - Copy the iron ingot -> black steel plate change from AE. - -import crafttweaker.item.IItemStack; -import crafttweaker.item.IIngredient; -import crafttweaker.liquid.ILiquidStack; -import mods.gregtech.recipe.RecipeMap; -import mods.jei.JEI; - -// --------------------------------------------------------------------------- -// For my sanity, name all the meta items. - -// Components. Not using the non-SMD versions since we're starting at MV. -val diode = as IItemStack; -val capacitor = as IItemStack; -val resistor = as IItemStack; -val transistor = as IItemStack; -val coil = as IItemStack; -val mvHull = as IItemStack; -val hvHull = as IItemStack; -val evHull = as IItemStack; - -// Silicon components. -val logicChip = as IItemStack; // MV -val cpuChip = as IItemStack; // MV -val ramChip = as IItemStack; // MV - -val nandChip = as IItemStack; // HV -val norChip = as IItemStack; // HV -val picChip = as IItemStack; // HV -val lapotronChip = as IItemStack; // HV - -val asocChip = as IItemStack; // EV -val hpicChip = as IItemStack; // EV -val nanoChip = as IItemStack; // EV -val qbitChip = as IItemStack; // EV -val socChip = as IItemStack; // EV - -// Boards, only using a few of them. -val plasticBoard = as IItemStack; // Tier 1 -val epoxyBoard = as IItemStack; // Tier 2 -val multilayerBoard = as IItemStack; // Tier 3 - -// Fine wires. -val redAlloyFineWire = as IItemStack; -val platinumFineWire = as IItemStack; -val osmiumFineWire = as IItemStack; -val copperFineWire = as IItemStack; -val glassFiber = as IItemStack; - -// Wires (coarse, I guess). -val redAlloyWire = as IItemStack; -val platinumWire = as IItemStack; -val osmiumWire = as IItemStack; - -// Cables. -val redAlloyCable = as IItemStack; -val platinumCable = as IItemStack; -val osmiumCable = as IItemStack; - -// Foils. -val copperFoil = as IItemStack; -val goldFoil = as IItemStack; -val grapheneFoil = as IItemStack; -val siliconFoil = as IItemStack; -val ppsFoil = as IItemStack; - -// Plates. -val ironPlate = as IItemStack; -val copperPlate = as IItemStack; -val goldPlate = as IItemStack; -val graphenePlate = as IItemStack; -val siliconPlate = as IItemStack; -val blackSteelPlate = as IItemStack; -val glassPlate = as IItemStack; -val peSheet = as IItemStack; - -// Rods. -val ironRod = as IItemStack; -val magIronRod = as IItemStack; -val magSteelRod = as IItemStack; -val magNdRod = as IItemStack; - -// OC components. -val ocCable = as IItemStack; - -val pcb = as IItemStack; -val cardBase = as IItemStack; -val ocTransistor = as IItemStack; -val t1Chip = as IItemStack; -val t2Chip = as IItemStack; -val t3Chip = as IItemStack; -val arithLogicUnit = as IItemStack; -val controlUnit = as IItemStack; -val platter = as IItemStack; -val interweb = as IItemStack; -val t1TabletCase = as IItemStack; -val t2TabletCase = as IItemStack; -val t1MicroCase = as IItemStack; -val t2MicroCase = as IItemStack; -val t1DroneCase = as IItemStack; -val t2DroneCase = as IItemStack; - -val t1CPU = as IItemStack; -val t2CPU = as IItemStack; -val t3CPU = as IItemStack; -val t1Bus = as IItemStack; -val t2Bus = as IItemStack; -val t3Bus = as IItemStack; -val t1RAM = as IItemStack; -val t15RAM = as IItemStack; -val t2RAM = as IItemStack; -val t25RAM = as IItemStack; -val t3RAM = as IItemStack; -val t35RAM = as IItemStack; -val t1Server = as IItemStack; -val t2Server = as IItemStack; -val t3Server = as IItemStack; -val t1APU = as IItemStack; -val t2APU = as IItemStack; -val termServer = as IItemStack; -val floppyDrive = as IItemStack; - -val t1GfxCard = as IItemStack; -val t2GfxCard = as IItemStack; -val t3GfxCard = as IItemStack; -val t1redstoneCard = as IItemStack; -val t2redstoneCard = as IItemStack; -val netCard = as IItemStack; -val t1WifiCard = as IItemStack; -val t2WifiCard = as IItemStack; -val inetCard = as IItemStack; -val linkedCard = as IItemStack; -val t1DataCard = as IItemStack; -val t2DataCard = as IItemStack; -val t3DataCard = as IItemStack; - -val eeprom = as IItemStack; -val floppy = as IItemStack; -val t1Disk = as IItemStack; -val t2Disk = as IItemStack; -val t3Disk = as IItemStack; - -val t1Screen = as IItemStack; -val t2Screen = as IItemStack; -val t3Screen = as IItemStack; - -// Misc additions -val bulb = as IItemStack; -val backlight = as IItemStack; -val glassLens = as IItemStack; -val diamondLens = as IItemStack; -var wifiRecv = as IItemStack; -var wifiBoost = as IItemStack; -var infinityBoost = as IItemStack; -val singularity = as IItemStack; -val tinRing = as IItemStack; -val magNdDust = as IItemStack; -val droneRotor = as IItemStack; -val evEmitter = as IItemStack; - -// --------------------------------------------------------------------------- -// Helper functions. -// -// The arg ordering of output, input may seem strange but it makes the -// recipes below more readable, IMO. - -// Again for my sanity. -function secs(s as int) as int { - return s * 20; -} - -// circuit creates three circuit assembler recipes for output: -// - One using 72mb * fluidMultiplier of solder -// - One using 144mb * fluidMultiplier of tin -// - One using 288mb * fluidMultiplier of lead -function circuit( - output as IItemStack, - input as IIngredient[], - fluidMultiplier as int, - EUt as int, - ticks as int -) { - recipes.removeShaped(output); - val ca = RecipeMap.getByName("circuit_assembler"); - ca.recipeBuilder().inputs(input).fluidInputs([ * (72 * fluidMultiplier)]).outputs([output]).EUt(EUt).duration(ticks).buildAndRegister(); - ca.recipeBuilder().inputs(input).fluidInputs([ * (144 * fluidMultiplier)]).outputs([output]).EUt(EUt).duration(ticks).buildAndRegister(); - ca.recipeBuilder().inputs(input).fluidInputs([ * (288 * fluidMultiplier)]).outputs([output]).EUt(EUt).duration(ticks).buildAndRegister(); -} - -// assembler replaces a crafting recipe with an assembler recipe with less typing. -function assembler( - output as IItemStack, - input as IIngredient[], - fluid as ILiquidStack[], - EUt as int, - ticks as int -) { - recipes.removeShaped(output); - val asm = RecipeMap.getByName("assembler"); - asm.recipeBuilder().inputs(input).fluidInputs(fluid).outputs([output]).EUt(EUt).duration(ticks).buildAndRegister(); -} - -// Components are all made in the circuit assembler at 60 EU/t, 4s. -function component(output as IItemStack, input as IIngredient[]) { - circuit(output, input, 1, 60, secs(4)); -} - -// Tier 1 circuit assembler recipes are 120 EU/t MV, 4s. -function t1Circuit(output as IItemStack, input as IIngredient[]) { - circuit(output, input, 1, 120, secs(4)); -} - -// Tier 1.5 RAM takes 1.5x as long. -function t15Circuit(output as IItemStack, input as IIngredient[]) { - circuit(output, input, 1, 120, secs(6)); -} - -// Tier 1 assembler recipes are 60 EU/t for 4 * multiplier seconds. -function t1Assembler(output as IItemStack, input as IIngredient[], multiplier as int) { - assembler(output, input, [ * 72], 60, secs(4*multiplier)); -} - -// Tier 2 circuit assembler recipes are 480 EU/t MV, 4s. -function t2Circuit(output as IItemStack, input as IIngredient[]) { - circuit(output, input, 2, 480, secs(4)); -} - -// Tier 2.5 RAM takes 1.5x as long. -function t25Circuit(output as IItemStack, input as IIngredient[]) { - circuit(output, input, 2, 480, secs(6)); -} - -// Tier 2 assembler recipes are 240 EU/t for 4 * multiplier seconds. -function t2Assembler(output as IItemStack, input as IIngredient[], multiplier as int) { - assembler(output, input, [ * 144], 240, secs(4*multiplier)); -} - -// Tier 3 circuit assembler recipes are 1920 EU/t MV, 4s. -function t3Circuit(output as IItemStack, input as IIngredient[]) { - circuit(output, input, 4, 1920, secs(4)); -} - -// Tier 3.5 RAM takes 1.5x as long. -function t35Circuit(output as IItemStack, input as IIngredient[]) { - circuit(output, input, 4, 1920, secs(6)); -} - -// Tier 3 assembler recipes are 960 EU/t for 4 * multiplier seconds. -function t3Assembler(output as IItemStack, input as IIngredient[], multiplier as int) { - assembler(output, input, [ * 288], 960, secs(4*multiplier)); -} - -function applyTransforms(tr as IIngredient[IIngredient], recipeList as IItemStack[]) { - for recipe in recipeList { - for from, to in tr { - recipes.replaceAllOccurences(from, to, recipe); - } - } -} - -// --------------------------------------------------------------------------- -// Onto the recipes. - -// Geolyzer is pretty pointless in a skyblock. -JEI.removeAndHide(); - -// These intermediates are completely replaced with GT ones. -JEI.removeAndHide(); // Cutting Wire -JEI.removeAndHide(); // Raw PCB -JEI.removeAndHide(); // Diamond Chip -JEI.removeAndHide(pcb); -JEI.removeAndHide(ocTransistor); -JEI.removeAndHide(t1Chip); -JEI.removeAndHide(t2Chip); -JEI.removeAndHide(t3Chip); - -// Cable gets "special" treatment. -// 7.5s @ 8EU/t is copied from other cable assembler recipes. -var rubbers = [ - * 144, - * 108, - * 72, -] as ILiquidStack[]; - -for rubber in rubbers { - assembler(ocCable, [copperFineWire*4, glassFiber*2, ppsFoil], [rubber], 8, 150); -} - -// Higher-level intermediates -component(arithLogicUnit, [logicChip, transistor*4, redAlloyFineWire*2, siliconFoil]); -component(controlUnit, [, transistor*4, redAlloyFineWire*2, siliconFoil]); -component(cardBase, [coil*2, transistor, diode, resistor, capacitor, plasticBoard]); -assembler(interweb, [glassFiber*8, singularity], [ * 1000], 480, secs(6)); -t1Circuit(t1Bus, [cpuChip*2, controlUnit, redAlloyFineWire*4, copperFoil*2, plasticBoard]); -t2Circuit(t2Bus, [picChip*2, controlUnit*2, redAlloyFineWire*4, goldFoil*2, epoxyBoard]); -t3Circuit(t3Bus, [nanoChip*2, controlUnit*4, redAlloyFineWire*4, grapheneFoil*2, multilayerBoard]); - -// CPU/APUs -t1Circuit(t1CPU, [arithLogicUnit*2, controlUnit, cpuChip*4, redAlloyFineWire*8, copperFoil*4]); -t2Circuit(t2CPU, [arithLogicUnit*4, controlUnit*2, picChip*4, platinumFineWire*8, goldFoil*4]); -t3Circuit(t3CPU, [arithLogicUnit*8, controlUnit*4, nanoChip*4, osmiumFineWire*8, grapheneFoil*4]); -t2Circuit(t1APU, [t2CPU, t1GfxCard, t1Bus, picChip*2, goldFoil*4]); -t3Circuit(t2APU, [t3CPU, t2GfxCard, t2Bus, nanoChip*2, grapheneFoil*4]); - -// RAM (one ramChip == 64 KB) -t1Circuit( t1RAM, [ramChip*3, siliconFoil, redAlloyFineWire*4, copperFoil*2, plasticBoard]); -t15Circuit(t15RAM, [ramChip*4, logicChip, redAlloyFineWire*6, copperFoil*2, plasticBoard]); -t2Circuit( t2RAM, [ramChip*6, logicChip*2, platinumFineWire*12, goldFoil*2, epoxyBoard]); -t25Circuit(t25RAM, [ramChip*8, lapotronChip, platinumFineWire*16, goldFoil*2, epoxyBoard]); -t3Circuit( t3RAM, [ramChip*12, socChip, osmiumFineWire*24, grapheneFoil*2, multilayerBoard]); -t35Circuit(t35RAM, [ramChip*16, asocChip, osmiumFineWire*32, grapheneFoil*2, multilayerBoard]); - -// Cards -t1Circuit(t1GfxCard, [arithLogicUnit, cpuChip*2, t1RAM, cardBase]); -t2Circuit(t2GfxCard, [arithLogicUnit*2, picChip*2, t2RAM, cardBase]); -t3Circuit(t3GfxCard, [arithLogicUnit*4, nanoChip*2, t3RAM, cardBase]); -t1Circuit(t1redstoneCard, [, cpuChip, redAlloyFineWire*4, cardBase]); -t2Circuit(t2redstoneCard, [, wifiRecv, picChip, redAlloyFineWire*4, cardBase]); -t1Circuit(netCard, [ocCable, cpuChip, cardBase]); -t1Circuit(t1WifiCard, [ocCable, wifiRecv, cpuChip, cardBase]); -t2Circuit(t2WifiCard, [ocCable, wifiRecv, wifiBoost * 4, picChip, cardBase]); -t25Circuit(inetCard, [ocCable, interweb, picChip, cardBase]); -// NOTE: This forces people to craft two linked cards separately and then -// use the shapeless recipe to craft them together for linking. -t3Circuit(linkedCard, [, interweb, infinityBoost*4, nanoChip*2, netCard]); -t15Circuit(t1DataCard, [arithLogicUnit, t1CPU, t15RAM, cardBase]); -t25Circuit(t2DataCard, [arithLogicUnit*2, t2CPU, t25RAM, cardBase]); -t35Circuit(t3DataCard, [arithLogicUnit*4, t3CPU, t35RAM, cardBase]); - -// Cases -t1Assembler(, [cpuChip*4, copperPlate*8, redAlloyCable*2], 4); -t2Assembler(, [picChip*4, goldPlate*8, platinumCable*2], 4); -t3Assembler(, [nanoChip*4, graphenePlate*8, osmiumCable*2], 4); -t25Circuit(t1TabletCase, [t2Screen, t2Bus, nandChip*4, epoxyBoard, peSheet*2]); -t35Circuit(t2TabletCase, [t3Screen, t3Bus, nandChip*8, socChip, multilayerBoard, peSheet*2]); -t1Assembler(t1MicroCase, [cpuChip*2, copperFoil*8, redAlloyFineWire*4], 1); -t2Assembler(t2MicroCase, [picChip*2, goldFoil*8, platinumFineWire*4], 1); -t15Circuit(t1DroneCase, [, droneRotor*4, t1MicroCase, t1Bus, logicChip*4]); -t25Circuit(t2DroneCase, [, droneRotor*4, t2MicroCase, t2Bus, nandChip*4]); -t15Circuit(t1Server, [t1Bus, t15RAM, cpuChip*4, plasticBoard, blackSteelPlate*8]); -t25Circuit(t2Server, [t2Bus, t25RAM, picChip*4, epoxyBoard, blackSteelPlate*8]); -t35Circuit(t3Server, [t3Bus, t35RAM, nanoChip*4, multilayerBoard, blackSteelPlate*8]); - -// Not really cases, but other rackmount bits... -t2Circuit(termServer, [t2Bus, wifiRecv*3, wifiBoost*8, picChip*2, epoxyBoard, blackSteelPlate*4]); -t1Circuit(floppyDrive, [t1Bus, logicChip*2, controlUnit, plasticBoard, blackSteelPlate*4]); - -// Hologram Projectors get special casing too :-> -assembler(, [hvHull, glassLens, bulb], [ * 576], 480, secs(16)); -assembler(, [evHull, diamondLens, bulb], [ * 576], 1920, secs(16)); - -// Screens -t1Assembler(t1Screen, [mvHull, backlight*2, glassPlate*4], 2); -t2Assembler(t2Screen, [hvHull, backlight*2, glassPlate*4], 2); -t3Assembler(t3Screen, [evHull, backlight*2, glassPlate*4], 2); - -// Disks / Storage -// Wikipedia says glass platters and cobalt alloys! Yay realism ;-) -assembler(platter, [glassLens, magNdDust], [ * 144], 60, secs(4)); -component(eeprom, [logicChip*2, copperFineWire*2, plasticBoard]); -component(floppy, [platter, peSheet*2, tinRing]); -t1Circuit(t1Disk, [platter, magIronRod, cpuChip*2, plasticBoard, blackSteelPlate*2]); -t2Circuit(t2Disk, [platter*2, magSteelRod, picChip*2, epoxyBoard, blackSteelPlate*2]); -t3Circuit(t3Disk, [platter*4, magNdRod, nanoChip*2, multilayerBoard, blackSteelPlate*2]); - -// Misc tools. -component(, [logicChip*2, cpuChip, redAlloyCable*2, plasticBoard]); -recipes.removeShaped(); -recipes.addShaped(, [ - [ironRod, null, ironRod], - [null, controlUnit, null], - [null, ironPlate, null]]); - -// Recipe transformations: I got lazy. -// For ... reasons ... we can't use variables as keys here :( -var transforms = { - : blackSteelPlate, - : goldPlate, - : blackSteelPlate, - : goldFoil, - : siliconFoil, - : , -} as IIngredient[IIngredient]; - -transforms[t1Chip] = cpuChip; -transforms[t3Chip] = nanoChip; -transforms[pcb] = mvHull; - -// The OC transistor is also used in the block called "capacitor". -// In this case maybe we should use a capacitor instead? -// The assembler/charger have a T2 chip in it but gate most of the mod. -transforms[t2Chip] = logicChip; -transforms[ocTransistor] = capacitor; -applyTransforms(transforms, [, , ]); -transforms[t2Chip] = picChip; -transforms[ocTransistor] = transistor; - -// Blocks to be transformed. -var blocks = [ - , - , - , - , - , - , - , - , - , - , - , - , - , - , -] as IItemStack[]; -applyTransforms(transforms, blocks); - -// Recipe transformations for items / upgrades. -// These aren't blocks, so use tiered component bus for PCB. -transforms[pcb] = t1Bus; - -// Differentiate materials a bit more for the tiers -transforms[] = copperFoil; -transforms[] = copperFoil; -transforms[] = copperPlate; -transforms[] = copperPlate; -transforms[] = blackSteelPlate; - -var t1Upgrades = [ - , // Empty ink cart - , // Remote terminal - , // Manual - , // T1 Battery - , // T1 Card Container - , // T1 Upgrade Container - , // T1 Database - , // Inventory Upgrade - , // Piston Upgrade - , // Sign Upgrade - , // Tank Upgrade - , // T1 Hover -] as IItemStack[]; -applyTransforms(transforms, t1Upgrades); - -// Tier 2 now. -transforms[pcb] = t2Bus; -transforms[] = goldFoil; -transforms[] = goldFoil; -transforms[] = goldPlate; -transforms[] = goldPlate; - -// Special case for the hover upgrade :-) -transforms[] = droneRotor; - -var t2Upgrades = [ - , // Angel Upgrade - , // T2 Battery - , // T2 Card Container - , // T2 Upgrade Container - , // Crafting Upgrade - , // T2 Database - , // Generator Upgrade - , // Inventory Controller - , // Navigation Upgrade - , // Solar Gen Upgrade - , // Tank Controller - , // T2 Hover - , // Trading Upgrade -] as IItemStack[]; -applyTransforms(transforms, t2Upgrades); - -// And tier 3... -transforms[pcb] = t3Bus; -transforms[] = grapheneFoil; -transforms[] = grapheneFoil; -transforms[] = graphenePlate; -transforms[] = graphenePlate; - -// T3 battery is the last thing with a diamond chip in it :-/ -transforms[] = lapotronChip; - -var t3Upgrades = [ - , // T3 Battery - , // Chunkloader Upgrade - , // T3 Card Container - , // T3 Upgrade Container - , // T3 Database - , // Experience Upgrade - , // MFU -] as IItemStack[]; -applyTransforms(transforms, t3Upgrades); - -// Tractor Beam also gets special cases! -transforms[] = evEmitter; -applyTransforms(transforms, []);