Skip to content

Commit c39431f

Browse files
committed
Add working tier checks to all processing handlers
1 parent df9cf26 commit c39431f

File tree

5 files changed

+273
-158
lines changed

5 files changed

+273
-158
lines changed

src/main/java/gregtech/loaders/recipe/handlers/MaterialRecipeHandler.java

Lines changed: 61 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -279,24 +279,29 @@ public static void processTinyDust(OrePrefix orePrefix, Material material, DustP
279279
}
280280

281281
public static void processIngot(OrePrefix ingotPrefix, Material material, IngotProperty property) {
282+
int workingTier = material.getWorkingTier();
283+
282284
if (material.hasFlag(MORTAR_GRINDABLE)) {
283285
ModHandler.addShapedRecipe(String.format("mortar_grind_%s", material),
284286
OreDictUnifier.get(OrePrefix.dust, material), "X", "m", 'X',
285287
new UnificationEntry(ingotPrefix, material));
286288
}
287289

288290
if (material.hasFlag(GENERATE_ROD)) {
289-
ModHandler.addShapedRecipe(String.format("stick_%s", material),
290-
OreDictUnifier.get(OrePrefix.stick, material, 1),
291-
"f ", " X",
292-
'X', new UnificationEntry(ingotPrefix, material));
291+
if (workingTier <= HV) {
292+
ModHandler.addShapedRecipe(String.format("stick_%s", material),
293+
OreDictUnifier.get(OrePrefix.stick, material, 1),
294+
"f ", " X",
295+
'X', new UnificationEntry(ingotPrefix, material));
296+
}
297+
293298
if (!material.hasFlag(NO_WORKING)) {
294299
RecipeMaps.EXTRUDER_RECIPES.recipeBuilder()
295300
.input(ingotPrefix, material)
296301
.notConsumable(MetaItems.SHAPE_EXTRUDER_ROD)
297302
.outputs(OreDictUnifier.get(OrePrefix.stick, material, 2))
298303
.duration((int) material.getMass() * 2)
299-
.EUt(6 * getVoltageMultiplier(material))
304+
.EUt(GTUtility.scaleVoltage(6 * getVoltageMultiplier(material), workingTier))
300305
.buildAndRegister();
301306
}
302307
}
@@ -306,7 +311,8 @@ public static void processIngot(OrePrefix ingotPrefix, Material material, IngotP
306311
.notConsumable(MetaItems.SHAPE_MOLD_INGOT)
307312
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L))
308313
.outputs(OreDictUnifier.get(ingotPrefix, material))
309-
.duration(20).EUt(VA[ULV])
314+
.duration(20)
315+
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
310316
.buildAndRegister();
311317
}
312318

@@ -316,26 +322,32 @@ public static void processIngot(OrePrefix ingotPrefix, Material material, IngotP
316322
.notConsumable(MetaItems.SHAPE_EXTRUDER_INGOT)
317323
.outputs(OreDictUnifier.get(OrePrefix.ingot, material))
318324
.duration(10)
319-
.EUt(4 * getVoltageMultiplier(material))
325+
.EUt(GTUtility.scaleVoltage(4 * getVoltageMultiplier(material), workingTier))
320326
.buildAndRegister();
321327
}
322328

323-
ALLOY_SMELTER_RECIPES.recipeBuilder().EUt(VA[ULV]).duration((int) material.getMass())
329+
ALLOY_SMELTER_RECIPES.recipeBuilder()
324330
.input(ingot, material)
325331
.notConsumable(MetaItems.SHAPE_MOLD_NUGGET.getStackForm())
326332
.output(nugget, material, 9)
333+
.duration((int) material.getMass())
334+
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
327335
.buildAndRegister();
328336

329337
if (!OreDictUnifier.get(block, material).isEmpty()) {
330-
ALLOY_SMELTER_RECIPES.recipeBuilder().EUt(VA[ULV]).duration((int) material.getMass() * 9)
338+
ALLOY_SMELTER_RECIPES.recipeBuilder()
331339
.input(block, material)
332340
.notConsumable(MetaItems.SHAPE_MOLD_INGOT.getStackForm())
333341
.output(ingot, material, 9)
342+
.duration((int) material.getMass() * 9)
343+
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
334344
.buildAndRegister();
335345

336-
COMPRESSOR_RECIPES.recipeBuilder().EUt(2).duration(300)
346+
COMPRESSOR_RECIPES.recipeBuilder()
337347
.input(ingot, material, (int) (block.getMaterialAmount(material) / M))
338348
.output(block, material)
349+
.duration(300)
350+
.EUt(GTUtility.scaleVoltage(2, workingTier))
339351
.buildAndRegister();
340352
}
341353

@@ -348,17 +360,21 @@ public static void processIngot(OrePrefix ingotPrefix, Material material, IngotP
348360
.circuitMeta(1)
349361
.input(ingotPrefix, material)
350362
.outputs(plateStack)
351-
.EUt(24).duration((int) (material.getMass()))
363+
.duration((int) (material.getMass()))
364+
.EUt(GTUtility.scaleVoltage(24, workingTier))
352365
.buildAndRegister();
353366

354367
RecipeMaps.FORGE_HAMMER_RECIPES.recipeBuilder()
355368
.input(ingotPrefix, material, 3)
356369
.outputs(GTUtility.copy(2, plateStack))
357-
.EUt(16).duration((int) material.getMass())
370+
.duration((int) material.getMass())
371+
.EUt(GTUtility.scaleVoltage(16, workingTier))
358372
.buildAndRegister();
359373

360-
ModHandler.addShapedRecipe(String.format("plate_%s", material),
361-
plateStack, "h", "I", "I", 'I', new UnificationEntry(ingotPrefix, material));
374+
if (workingTier <= HV) {
375+
ModHandler.addShapedRecipe(String.format("plate_%s", material),
376+
plateStack, "h", "I", "I", 'I', new UnificationEntry(ingotPrefix, material));
377+
}
362378
}
363379
}
364380

@@ -369,7 +385,7 @@ public static void processIngot(OrePrefix ingotPrefix, Material material, IngotP
369385
.notConsumable(MetaItems.SHAPE_EXTRUDER_PLATE)
370386
.outputs(OreDictUnifier.get(OrePrefix.plate, material))
371387
.duration((int) material.getMass())
372-
.EUt(8 * voltageMultiplier)
388+
.EUt(GTUtility.scaleVoltage(8 * voltageMultiplier, workingTier))
373389
.buildAndRegister();
374390

375391
if (material.hasFlag(NO_SMASHING)) {
@@ -378,7 +394,7 @@ public static void processIngot(OrePrefix ingotPrefix, Material material, IngotP
378394
.notConsumable(MetaItems.SHAPE_EXTRUDER_PLATE)
379395
.outputs(OreDictUnifier.get(OrePrefix.plate, material))
380396
.duration((int) material.getMass())
381-
.EUt(8 * voltageMultiplier)
397+
.EUt(GTUtility.scaleVoltage(8 * voltageMultiplier, workingTier))
382398
.buildAndRegister();
383399
}
384400
}
@@ -418,10 +434,12 @@ public static void processGemConversion(OrePrefix gemPrefix, @Nullable OrePrefix
418434

419435
public static void processNugget(OrePrefix orePrefix, Material material, DustProperty property) {
420436
ItemStack nuggetStack = OreDictUnifier.get(orePrefix, material);
437+
int workingTier = material.getWorkingTier();
438+
421439
if (material.hasProperty(PropertyKey.INGOT)) {
422440
ItemStack ingotStack = OreDictUnifier.get(OrePrefix.ingot, material);
423441

424-
if (!ConfigHolder.recipes.disableManualCompression) {
442+
if (!ConfigHolder.recipes.disableManualCompression && workingTier <= HV) {
425443
ModHandler.addShapelessRecipe(String.format("nugget_disassembling_%s", material),
426444
GTUtility.copy(9, nuggetStack), new UnificationEntry(OrePrefix.ingot, material));
427445
ModHandler.addShapedRecipe(String.format("nugget_assembling_%s", material),
@@ -431,12 +449,16 @@ public static void processNugget(OrePrefix orePrefix, Material material, DustPro
431449
COMPRESSOR_RECIPES.recipeBuilder()
432450
.input(nugget, material, 9)
433451
.output(ingot, material)
434-
.EUt(2).duration(300).buildAndRegister();
452+
.duration(300)
453+
.EUt(GTUtility.scaleVoltage(2, workingTier))
454+
.buildAndRegister();
435455

436-
ALLOY_SMELTER_RECIPES.recipeBuilder().EUt(VA[ULV]).duration((int) material.getMass())
456+
ALLOY_SMELTER_RECIPES.recipeBuilder()
437457
.input(nugget, material, 9)
438458
.notConsumable(MetaItems.SHAPE_MOLD_INGOT.getStackForm())
439459
.output(ingot, material)
460+
.duration((int) material.getMass())
461+
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
440462
.buildAndRegister();
441463

442464
if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
@@ -445,13 +467,12 @@ public static void processNugget(OrePrefix orePrefix, Material material, DustPro
445467
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L))
446468
.outputs(OreDictUnifier.get(orePrefix, material, 9))
447469
.duration((int) material.getMass())
448-
.EUt(VA[ULV])
470+
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
449471
.buildAndRegister();
450472
}
451473
} else if (material.hasProperty(PropertyKey.GEM)) {
452-
ItemStack gemStack = OreDictUnifier.get(OrePrefix.gem, material);
453-
454-
if (!ConfigHolder.recipes.disableManualCompression) {
474+
if (!ConfigHolder.recipes.disableManualCompression && workingTier <= HV) {
475+
ItemStack gemStack = OreDictUnifier.get(OrePrefix.gem, material);
455476
ModHandler.addShapelessRecipe(String.format("nugget_disassembling_%s", material),
456477
GTUtility.copy(9, nuggetStack), new UnificationEntry(OrePrefix.gem, material));
457478
ModHandler.addShapedRecipe(String.format("nugget_assembling_%s", material),
@@ -480,13 +501,16 @@ public static void processFrame(OrePrefix framePrefix, Material material, DustPr
480501
public static void processBlock(OrePrefix blockPrefix, Material material, DustProperty property) {
481502
ItemStack blockStack = OreDictUnifier.get(blockPrefix, material);
482503
long materialAmount = blockPrefix.getMaterialAmount(material);
504+
int workingTier = material.getWorkingTier();
505+
483506
if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
484507
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
485508
.notConsumable(MetaItems.SHAPE_MOLD_BLOCK)
486509
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(
487510
((int) (materialAmount * L / M))))
488511
.outputs(blockStack)
489-
.duration((int) material.getMass()).EUt(VA[ULV])
512+
.duration((int) material.getMass())
513+
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
490514
.buildAndRegister();
491515
}
492516

@@ -496,7 +520,8 @@ public static void processBlock(OrePrefix blockPrefix, Material material, DustPr
496520
RecipeMaps.CUTTER_RECIPES.recipeBuilder()
497521
.input(blockPrefix, material)
498522
.outputs(GTUtility.copy((int) (materialAmount / M), plateStack))
499-
.duration((int) (material.getMass() * 8L)).EUt(VA[LV])
523+
.duration((int) (material.getMass() * 8L))
524+
.EUt(GTUtility.scaleVoltage(VA[LV], workingTier))
500525
.buildAndRegister();
501526
}
502527
}
@@ -520,7 +545,7 @@ public static void processBlock(OrePrefix blockPrefix, Material material, DustPr
520545

521546
// do not allow hand crafting or uncrafting of blacklisted blocks
522547
if (!material.hasFlag(EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES) &&
523-
!ConfigHolder.recipes.disableManualCompression) {
548+
!ConfigHolder.recipes.disableManualCompression && workingTier <= HV) {
524549
ModHandler.addShapelessRecipe(String.format("block_compress_%s", material), blockStack,
525550
result.toArray());
526551

@@ -535,25 +560,31 @@ public static void processBlock(OrePrefix blockPrefix, Material material, DustPr
535560
.input(OrePrefix.ingot, material, (int) (materialAmount / M))
536561
.notConsumable(MetaItems.SHAPE_EXTRUDER_BLOCK)
537562
.outputs(blockStack)
538-
.duration(10).EUt(8 * voltageMultiplier)
563+
.duration(10)
564+
.EUt(GTUtility.scaleVoltage(8 * voltageMultiplier, workingTier))
539565
.buildAndRegister();
540566

541567
RecipeMaps.ALLOY_SMELTER_RECIPES.recipeBuilder()
542568
.input(OrePrefix.ingot, material, (int) (materialAmount / M))
543569
.notConsumable(MetaItems.SHAPE_MOLD_BLOCK)
544570
.outputs(blockStack)
545-
.duration(5).EUt(4 * voltageMultiplier)
571+
.duration(5)
572+
.EUt(GTUtility.scaleVoltage(4 * voltageMultiplier, workingTier))
546573
.buildAndRegister();
547574
} else if (material.hasProperty(PropertyKey.GEM)) {
548575
COMPRESSOR_RECIPES.recipeBuilder()
549576
.input(gem, material, (int) (block.getMaterialAmount(material) / M))
550577
.output(block, material)
551-
.duration(300).EUt(2).buildAndRegister();
578+
.duration(300)
579+
.EUt(GTUtility.scaleVoltage(2, workingTier))
580+
.buildAndRegister();
552581

553582
FORGE_HAMMER_RECIPES.recipeBuilder()
554583
.input(block, material)
555584
.output(gem, material, (int) (block.getMaterialAmount(material) / M))
556-
.duration(100).EUt(24).buildAndRegister();
585+
.duration(100)
586+
.EUt(GTUtility.scaleVoltage(24, workingTier))
587+
.buildAndRegister();
557588
}
558589
}
559590
}

0 commit comments

Comments
 (0)