Skip to content

Commit 600344a

Browse files
authored
Fix FreezerRecipes logic (#342)
1 parent 67018ae commit 600344a

File tree

6 files changed

+181
-265
lines changed

6 files changed

+181
-265
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# 2.5.4
22
- Fix DraconicEvolution mod OreDictionary [#341](https://github.com/GTModpackTeam/GTExpert-Core/pull/341)
3+
- Fix FreezerRecipes logic [#342](https://github.com/GTModpackTeam/GTExpert-Core/pull/342)
34

45
* * *
56

dependencies.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ dependencies {
5757
implementation rfg.deobf("curse.maven:nae2-884359:5380800") // NAE2: 1.6.4
5858
implementation rfg.deobf("curse.maven:ae2-fluid-crafting-rework-623955:5751930") // AE2FC: 2.6.6-r
5959

60-
compileOnly "curse.maven:forgelin-continuous-456403:6760510" // Forgelin-Continuous 2.2.0.0
60+
compileOnly "curse.maven:forgelin-continuous-456403:7182824" // Forgelin-Continuous 2.2.21.0
6161
compileOnly "CraftTweaker2:CraftTweaker2-MC1120-Main:1.12-4.1.20.700" // CrT 4.1.20.700
6262
compileOnly "curse.maven:ctm-267602:2915363" // CTM 1.0.2.31
6363
runtimeOnly "com.cleanroommc:modularui:2.4.3" // MUI 2.4.3
@@ -129,9 +129,9 @@ dependencies {
129129
runtimeOnly rfg.deobf("curse.maven:draconicadditions-314515:3514704")
130130
}
131131

132-
// Debug Avaritia: 3.3.0.46-hotfix3
132+
// Debug Avaritia: 3.3.0.47-hotfix1
133133
if (project.debug_all.toBoolean() || project.debug_avaritia.toBoolean()) {
134-
runtimeOnly rfg.deobf("curse.maven:avaritia-1-1x-unofficial-1165010:6542330")
134+
runtimeOnly rfg.deobf("curse.maven:avaritia-1-1x-unofficial-1165010:7186329")
135135
}
136136

137137
// Debug Chisel: 1.0.2.45

src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicMaterialsRecipe.java

Lines changed: 0 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,24 @@
11
package com.github.gtexpert.core.integration.deda.recipes;
22

33
import static gregtech.api.GTValues.*;
4-
import static gregtech.api.unification.material.info.MaterialFlags.*;
54
import static gregtech.api.unification.ore.OrePrefix.*;
65

7-
import java.util.ArrayList;
8-
import java.util.List;
9-
106
import net.minecraft.init.Blocks;
117
import net.minecraft.item.ItemStack;
12-
import net.minecraftforge.fluids.Fluid;
13-
import net.minecraftforge.fluids.FluidStack;
14-
15-
import org.jetbrains.annotations.NotNull;
168

179
import com.brandon3055.draconicevolution.DEFeatures;
1810

19-
import gregtech.api.GregTechAPI;
2011
import gregtech.api.metatileentity.multiblock.CleanroomType;
2112
import gregtech.api.recipes.ModHandler;
2213
import gregtech.api.recipes.RecipeBuilder;
2314
import gregtech.api.recipes.RecipeMaps;
2415
import gregtech.api.unification.OreDictUnifier;
25-
import gregtech.api.unification.material.Material;
2616
import gregtech.api.unification.material.Materials;
27-
import gregtech.api.unification.material.properties.BlastProperty;
28-
import gregtech.api.unification.material.properties.PropertyKey;
2917
import gregtech.common.ConfigHolder;
3018
import gregtech.common.blocks.MetaBlocks;
3119
import gregtech.common.items.MetaItems;
3220

3321
import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys;
34-
import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey;
3522

3623
import com.github.gtexpert.core.api.GTEValues;
3724
import com.github.gtexpert.core.api.unification.material.GTEMaterials;
@@ -143,95 +130,6 @@ public static void init() {
143130
.output(block, GTEMaterials.AwakenedDraconium, 3)
144131
.explosivesType(new ItemStack(MetaBlocks.ITNT))
145132
.buildAndRegister();
146-
147-
// Extended recipes
148-
List<Material> materials = new ArrayList<>(GregTechAPI.materialManager.getRegisteredMaterials());
149-
materials.forEach(DraconicMaterialsRecipe::vacuumFreezerExtended);
150-
}
151-
152-
/**
153-
* Vacuum Freezer to extended recipes
154-
*
155-
* @param material The material to add recipes for
156-
*/
157-
private static void vacuumFreezerExtended(@NotNull Material material) {
158-
// Check if the material has a blast recipe
159-
if (!material.hasProperty(GCYMPropertyKey.ALLOY_BLAST)) return;
160-
161-
// Check if the material has a molten fluid
162-
Fluid molten = material.getFluid(GCYMFluidStorageKeys.MOLTEN);
163-
if (molten == null) return;
164-
165-
// Get the vacuum freezer EUt and duration
166-
BlastProperty property = material.getProperty(PropertyKey.BLAST);
167-
int vacuumEUt = property.getVacuumEUtOverride() != -1 ? property.getVacuumEUtOverride() : VA[MV];
168-
int vacuumDuration = property.getVacuumDurationOverride() != -1 ? property.getVacuumDurationOverride() :
169-
(int) (material.getMass() * 0.5);
170-
171-
// Check if the material has a blast temperature above 5000K
172-
if (property.getBlastTemperature() >= 5000) {
173-
if (material.hasFlag(GENERATE_PLATE)) {
174-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
175-
.notConsumable(MetaItems.SHAPE_MOLD_PLATE)
176-
.fluidInputs(new FluidStack(molten, 144))
177-
.fluidInputs(GTEMaterials.Cryotheum.getFluid(250))
178-
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 50))
179-
.output(plate, material, 1)
180-
.duration(vacuumDuration / 2)
181-
.EUt(vacuumEUt)
182-
.buildAndRegister();
183-
}
184-
if (material.hasFlag(GENERATE_SMALL_GEAR)) {
185-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
186-
.notConsumable(MetaItems.SHAPE_MOLD_GEAR_SMALL)
187-
.fluidInputs(new FluidStack(molten, 144))
188-
.fluidInputs(GTEMaterials.Cryotheum.getFluid(250))
189-
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 50))
190-
.output(gearSmall, material, 1)
191-
.duration(vacuumDuration / 2)
192-
.EUt(vacuumEUt)
193-
.buildAndRegister();
194-
}
195-
if (material.hasFlag(GENERATE_GEAR)) {
196-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
197-
.notConsumable(MetaItems.SHAPE_MOLD_GEAR)
198-
.fluidInputs(new FluidStack(molten, 576))
199-
.fluidInputs(GTEMaterials.Cryotheum.getFluid(1000))
200-
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 200))
201-
.output(gear, material, 1)
202-
.duration(vacuumDuration * 2)
203-
.EUt(vacuumEUt)
204-
.buildAndRegister();
205-
}
206-
if (material.hasFlag(GENERATE_ROTOR)) {
207-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
208-
.notConsumable(MetaItems.SHAPE_MOLD_ROTOR)
209-
.fluidInputs(new FluidStack(molten, 576))
210-
.fluidInputs(GTEMaterials.Cryotheum.getFluid(1000))
211-
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 200))
212-
.output(rotor, material, 1)
213-
.duration(vacuumDuration / 2)
214-
.EUt(vacuumEUt)
215-
.buildAndRegister();
216-
}
217-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
218-
.input(ingotHot, material, 1)
219-
.fluidInputs(GTEMaterials.Cryotheum.getFluid(250))
220-
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 50))
221-
.output(ingot, material, 1)
222-
.duration(vacuumDuration / 2)
223-
.EUt(vacuumEUt)
224-
.buildAndRegister();
225-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
226-
.circuitMeta(1)
227-
.fluidInputs(new FluidStack(molten, 144))
228-
.fluidInputs(GTEMaterials.Cryotheum.getFluid(250))
229-
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 50))
230-
.fluidOutputs(material.getFluid(144))
231-
.duration(vacuumDuration / 2)
232-
.EUt(vacuumEUt)
233-
.buildAndRegister();
234-
}
235133
}
236134

237135
public static void remove() {

src/main/java/com/github/gtexpert/core/loaders/recipe/CEUOverrideRecipe.java

Lines changed: 15 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,34 @@
11
package com.github.gtexpert.core.loaders.recipe;
22

33
import static gregtech.api.GTValues.*;
4-
import static gregtech.api.unification.material.info.MaterialFlags.*;
54
import static gregtech.api.unification.ore.OrePrefix.*;
5+
import static gregtech.common.items.MetaItems.ULTIMATE_BATTERY;
6+
import static gregtech.loaders.recipe.handlers.ToolRecipeHandler.batteryItems;
67

7-
import java.util.ArrayList;
8+
import java.util.Collections;
89
import java.util.List;
910

1011
import net.minecraft.init.Blocks;
1112
import net.minecraft.init.Items;
1213
import net.minecraft.item.EnumDyeColor;
1314
import net.minecraft.item.ItemStack;
14-
import net.minecraftforge.fluids.Fluid;
1515
import net.minecraftforge.fluids.FluidStack;
1616

17-
import org.jetbrains.annotations.NotNull;
18-
19-
import gregtech.api.GregTechAPI;
20-
import gregtech.api.fluids.store.FluidStorageKeys;
17+
import gregtech.api.GTValues;
2118
import gregtech.api.items.OreDictNames;
19+
import gregtech.api.items.metaitem.MetaItem;
2220
import gregtech.api.recipes.GTRecipeHandler;
2321
import gregtech.api.recipes.ModHandler;
2422
import gregtech.api.recipes.RecipeMaps;
2523
import gregtech.api.recipes.category.RecipeCategories;
2624
import gregtech.api.recipes.ingredients.IntCircuitIngredient;
2725
import gregtech.api.unification.OreDictUnifier;
28-
import gregtech.api.unification.material.Material;
2926
import gregtech.api.unification.material.Materials;
30-
import gregtech.api.unification.material.properties.BlastProperty;
31-
import gregtech.api.unification.material.properties.PropertyKey;
32-
import gregtech.api.unification.ore.OrePrefix;
3327
import gregtech.api.unification.stack.UnificationEntry;
3428
import gregtech.common.ConfigHolder;
3529
import gregtech.common.items.MetaItems;
3630
import gregtech.common.metatileentities.MetaTileEntities;
3731

38-
import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys;
39-
import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey;
40-
4132
import com.github.gtexpert.core.common.items.GTEMetaItems;
4233

4334
public class CEUOverrideRecipe {
@@ -50,13 +41,6 @@ public static void init() {
5041
}
5142

5243
private static void materials() {
53-
// Vacuum Freezer
54-
List<Material> materials = new ArrayList<>(GregTechAPI.materialManager.getRegisteredMaterials());
55-
materials.forEach(CEUOverrideRecipe::vacuumFreezerExtended);
56-
57-
// Remove Gem
58-
materials.forEach(CEUOverrideRecipe::removeGem);
59-
6044
// Iron Nugget
6145
ModHandler.addShapelessRecipe("wrought_iron_nugget", OreDictUnifier.get(nugget, Materials.Iron, 9),
6246
OreDictUnifier.get(ingot, Materials.Iron, 1));
@@ -241,6 +225,16 @@ private static void items() {
241225
.category(RecipeCategories.MACERATOR_RECYCLING)
242226
.duration(1470).EUt(2)
243227
.buildAndRegister();
228+
229+
batteryItems.put(GTValues.UHV, Collections.singletonList(ULTIMATE_BATTERY));
230+
for (int i = GTValues.ULV; i < GTValues.UEV; i++) {
231+
List<MetaItem.MetaValueItem> tieredBatteryItems = batteryItems.get(i);
232+
for (MetaItem.MetaValueItem batteryItem : tieredBatteryItems) {
233+
ItemStack batteryStack = batteryItem.getStackForm();
234+
String recipeName = String.format("nbt_clearing_%s", batteryItem.unlocalizedName);
235+
ModHandler.addShapelessNBTClearingRecipe(recipeName, batteryStack, batteryStack);
236+
}
237+
}
244238
}
245239

246240
private static void blocks() {
@@ -367,142 +361,4 @@ private static void tools() {
367361
'P', MetaItems.CARBON_FIBER_PLATE.getStackForm(),
368362
'E', MetaItems.ENERGIUM_CRYSTAL.getStackForm());
369363
}
370-
371-
/**
372-
* Vacuum Freezer to extended recipes
373-
*
374-
* @param material The material to add recipes for
375-
*/
376-
private static void vacuumFreezerExtended(@NotNull Material material) {
377-
// Check if the material has a blast recipe
378-
if (!material.hasProperty(GCYMPropertyKey.ALLOY_BLAST)) return;
379-
380-
// Check if the material has a molten fluid
381-
Fluid molten = material.getFluid(GCYMFluidStorageKeys.MOLTEN);
382-
if (molten == null) return;
383-
384-
// Get the vacuum freezer EUt and duration
385-
BlastProperty property = material.getProperty(PropertyKey.BLAST);
386-
int vacuumEUt = property.getVacuumEUtOverride() != -1 ? property.getVacuumEUtOverride() : VA[MV];
387-
int vacuumDuration = property.getVacuumDurationOverride() != -1 ? property.getVacuumDurationOverride() :
388-
(int) material.getMass() * 3;
389-
390-
// Check if the material has a blast temperature above 5000K
391-
if (property.getBlastTemperature() >= 5000) {
392-
if (material.hasFlag(GENERATE_PLATE)) {
393-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
394-
.notConsumable(MetaItems.SHAPE_MOLD_PLATE)
395-
.fluidInputs(new FluidStack(molten, 144))
396-
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 500))
397-
.fluidOutputs(Materials.Helium.getFluid(250))
398-
.output(plate, material, 1)
399-
.duration(vacuumDuration)
400-
.EUt(vacuumEUt)
401-
.buildAndRegister();
402-
}
403-
if (material.hasFlag(GENERATE_SMALL_GEAR)) {
404-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
405-
.notConsumable(MetaItems.SHAPE_MOLD_GEAR_SMALL)
406-
.fluidInputs(new FluidStack(molten, 144))
407-
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 500))
408-
.fluidOutputs(Materials.Helium.getFluid(250))
409-
.output(gearSmall, material, 1)
410-
.duration(vacuumDuration)
411-
.EUt(vacuumEUt)
412-
.buildAndRegister();
413-
}
414-
if (material.hasFlag(GENERATE_GEAR)) {
415-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
416-
.notConsumable(MetaItems.SHAPE_MOLD_GEAR)
417-
.fluidInputs(new FluidStack(molten, 576))
418-
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 2000))
419-
.fluidOutputs(Materials.Helium.getFluid(1000))
420-
.output(gear, material, 1)
421-
.duration(vacuumDuration * 4)
422-
.EUt(vacuumEUt)
423-
.buildAndRegister();
424-
}
425-
if (material.hasFlag(GENERATE_ROTOR)) {
426-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
427-
.notConsumable(MetaItems.SHAPE_MOLD_ROTOR)
428-
.fluidInputs(new FluidStack(molten, 576))
429-
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 2000))
430-
.fluidOutputs(Materials.Helium.getFluid(1000))
431-
.output(rotor, material, 1)
432-
.duration(vacuumDuration * 4)
433-
.EUt(vacuumEUt)
434-
.buildAndRegister();
435-
}
436-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
437-
.circuitMeta(1)
438-
.fluidInputs(new FluidStack(molten, 144))
439-
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 500))
440-
.fluidOutputs(Materials.Helium.getFluid(250))
441-
.fluidOutputs(material.getFluid(144))
442-
.duration(vacuumDuration)
443-
.EUt(vacuumEUt)
444-
.buildAndRegister();
445-
} else {
446-
if (material.hasFlag(GENERATE_PLATE)) {
447-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
448-
.notConsumable(MetaItems.SHAPE_MOLD_PLATE)
449-
.fluidInputs(new FluidStack(molten, 144))
450-
.output(plate, material, 1)
451-
.duration(vacuumDuration)
452-
.EUt(vacuumEUt)
453-
.buildAndRegister();
454-
}
455-
if (material.hasFlag(GENERATE_SMALL_GEAR)) {
456-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
457-
.notConsumable(MetaItems.SHAPE_MOLD_GEAR_SMALL)
458-
.fluidInputs(new FluidStack(molten, 144))
459-
.output(gearSmall, material, 1)
460-
.duration(vacuumDuration)
461-
.EUt(vacuumEUt)
462-
.buildAndRegister();
463-
}
464-
if (material.hasFlag(GENERATE_GEAR)) {
465-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
466-
.notConsumable(MetaItems.SHAPE_MOLD_GEAR)
467-
.fluidInputs(new FluidStack(molten, 576))
468-
.output(gear, material, 1)
469-
.duration(vacuumDuration * 4)
470-
.EUt(vacuumEUt)
471-
.buildAndRegister();
472-
}
473-
if (material.hasFlag(GENERATE_ROTOR)) {
474-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
475-
.notConsumable(MetaItems.SHAPE_MOLD_ROTOR)
476-
.fluidInputs(new FluidStack(molten, 576))
477-
.output(rotor, material, 1)
478-
.duration(vacuumDuration * 4)
479-
.EUt(vacuumEUt)
480-
.buildAndRegister();
481-
}
482-
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
483-
.circuitMeta(1)
484-
.fluidInputs(new FluidStack(molten, 144))
485-
.fluidOutputs(material.getFluid(144))
486-
.duration(vacuumDuration)
487-
.EUt(vacuumEUt)
488-
.buildAndRegister();
489-
}
490-
}
491-
492-
/**
493-
* Remove gem recipes
494-
*
495-
* @param material The material
496-
*/
497-
private static void removeGem(Material material) {
498-
if (!material.hasProperty(PropertyKey.FLUID)) return;
499-
if (!material.hasProperty(PropertyKey.GEM)) return;
500-
if (!ConfigHolder.recipes.disableManualCompression) return;
501-
502-
long materialAmount = OrePrefix.block.getMaterialAmount(material);
503-
GTRecipeHandler.removeRecipesByInputs(RecipeMaps.FLUID_SOLIDFICATION_RECIPES,
504-
new ItemStack[] { MetaItems.SHAPE_MOLD_BLOCK.getStackForm() },
505-
new FluidStack[] {
506-
material.getProperty(PropertyKey.FLUID).solidifiesFrom(((int) (materialAmount * L / M))) });
507-
}
508364
}

0 commit comments

Comments
 (0)