Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# 2.5.4
- Fix DraconicEvolution mod OreDictionary [#341](https://github.com/GTModpackTeam/GTExpert-Core/pull/341)
- Fix FreezerRecipes logic [#342](https://github.com/GTModpackTeam/GTExpert-Core/pull/342)

* * *

Expand Down
6 changes: 3 additions & 3 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ dependencies {
implementation rfg.deobf("curse.maven:nae2-884359:5380800") // NAE2: 1.6.4
implementation rfg.deobf("curse.maven:ae2-fluid-crafting-rework-623955:5751930") // AE2FC: 2.6.6-r

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

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

// Debug Chisel: 1.0.2.45
Expand Down
Original file line number Diff line number Diff line change
@@ -1,37 +1,24 @@
package com.github.gtexpert.core.integration.deda.recipes;

import static gregtech.api.GTValues.*;
import static gregtech.api.unification.material.info.MaterialFlags.*;
import static gregtech.api.unification.ore.OrePrefix.*;

import java.util.ArrayList;
import java.util.List;

import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;

import org.jetbrains.annotations.NotNull;

import com.brandon3055.draconicevolution.DEFeatures;

import gregtech.api.GregTechAPI;
import gregtech.api.metatileentity.multiblock.CleanroomType;
import gregtech.api.recipes.ModHandler;
import gregtech.api.recipes.RecipeBuilder;
import gregtech.api.recipes.RecipeMaps;
import gregtech.api.unification.OreDictUnifier;
import gregtech.api.unification.material.Material;
import gregtech.api.unification.material.Materials;
import gregtech.api.unification.material.properties.BlastProperty;
import gregtech.api.unification.material.properties.PropertyKey;
import gregtech.common.ConfigHolder;
import gregtech.common.blocks.MetaBlocks;
import gregtech.common.items.MetaItems;

import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys;
import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey;

import com.github.gtexpert.core.api.GTEValues;
import com.github.gtexpert.core.api.unification.material.GTEMaterials;
Expand Down Expand Up @@ -143,95 +130,6 @@ public static void init() {
.output(block, GTEMaterials.AwakenedDraconium, 3)
.explosivesType(new ItemStack(MetaBlocks.ITNT))
.buildAndRegister();

// Extended recipes
List<Material> materials = new ArrayList<>(GregTechAPI.materialManager.getRegisteredMaterials());
materials.forEach(DraconicMaterialsRecipe::vacuumFreezerExtended);
}

/**
* Vacuum Freezer to extended recipes
*
* @param material The material to add recipes for
*/
private static void vacuumFreezerExtended(@NotNull Material material) {
// Check if the material has a blast recipe
if (!material.hasProperty(GCYMPropertyKey.ALLOY_BLAST)) return;

// Check if the material has a molten fluid
Fluid molten = material.getFluid(GCYMFluidStorageKeys.MOLTEN);
if (molten == null) return;

// Get the vacuum freezer EUt and duration
BlastProperty property = material.getProperty(PropertyKey.BLAST);
int vacuumEUt = property.getVacuumEUtOverride() != -1 ? property.getVacuumEUtOverride() : VA[MV];
int vacuumDuration = property.getVacuumDurationOverride() != -1 ? property.getVacuumDurationOverride() :
(int) (material.getMass() * 0.5);

// Check if the material has a blast temperature above 5000K
if (property.getBlastTemperature() >= 5000) {
if (material.hasFlag(GENERATE_PLATE)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_PLATE)
.fluidInputs(new FluidStack(molten, 144))
.fluidInputs(GTEMaterials.Cryotheum.getFluid(250))
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 50))
.output(plate, material, 1)
.duration(vacuumDuration / 2)
.EUt(vacuumEUt)
.buildAndRegister();
}
if (material.hasFlag(GENERATE_SMALL_GEAR)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_GEAR_SMALL)
.fluidInputs(new FluidStack(molten, 144))
.fluidInputs(GTEMaterials.Cryotheum.getFluid(250))
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 50))
.output(gearSmall, material, 1)
.duration(vacuumDuration / 2)
.EUt(vacuumEUt)
.buildAndRegister();
}
if (material.hasFlag(GENERATE_GEAR)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_GEAR)
.fluidInputs(new FluidStack(molten, 576))
.fluidInputs(GTEMaterials.Cryotheum.getFluid(1000))
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 200))
.output(gear, material, 1)
.duration(vacuumDuration * 2)
.EUt(vacuumEUt)
.buildAndRegister();
}
if (material.hasFlag(GENERATE_ROTOR)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_ROTOR)
.fluidInputs(new FluidStack(molten, 576))
.fluidInputs(GTEMaterials.Cryotheum.getFluid(1000))
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 200))
.output(rotor, material, 1)
.duration(vacuumDuration / 2)
.EUt(vacuumEUt)
.buildAndRegister();
}
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.input(ingotHot, material, 1)
.fluidInputs(GTEMaterials.Cryotheum.getFluid(250))
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 50))
.output(ingot, material, 1)
.duration(vacuumDuration / 2)
.EUt(vacuumEUt)
.buildAndRegister();
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.circuitMeta(1)
.fluidInputs(new FluidStack(molten, 144))
.fluidInputs(GTEMaterials.Cryotheum.getFluid(250))
.fluidOutputs(GTEMaterials.Pyrotheum.getFluid(GCYMFluidStorageKeys.MOLTEN, 50))
.fluidOutputs(material.getFluid(144))
.duration(vacuumDuration / 2)
.EUt(vacuumEUt)
.buildAndRegister();
}
}

public static void remove() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,43 +1,34 @@
package com.github.gtexpert.core.loaders.recipe;

import static gregtech.api.GTValues.*;
import static gregtech.api.unification.material.info.MaterialFlags.*;
import static gregtech.api.unification.ore.OrePrefix.*;
import static gregtech.common.items.MetaItems.ULTIMATE_BATTERY;
import static gregtech.loaders.recipe.handlers.ToolRecipeHandler.batteryItems;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;

import org.jetbrains.annotations.NotNull;

import gregtech.api.GregTechAPI;
import gregtech.api.fluids.store.FluidStorageKeys;
import gregtech.api.GTValues;
import gregtech.api.items.OreDictNames;
import gregtech.api.items.metaitem.MetaItem;
import gregtech.api.recipes.GTRecipeHandler;
import gregtech.api.recipes.ModHandler;
import gregtech.api.recipes.RecipeMaps;
import gregtech.api.recipes.category.RecipeCategories;
import gregtech.api.recipes.ingredients.IntCircuitIngredient;
import gregtech.api.unification.OreDictUnifier;
import gregtech.api.unification.material.Material;
import gregtech.api.unification.material.Materials;
import gregtech.api.unification.material.properties.BlastProperty;
import gregtech.api.unification.material.properties.PropertyKey;
import gregtech.api.unification.ore.OrePrefix;
import gregtech.api.unification.stack.UnificationEntry;
import gregtech.common.ConfigHolder;
import gregtech.common.items.MetaItems;
import gregtech.common.metatileentities.MetaTileEntities;

import gregicality.multiblocks.api.fluids.GCYMFluidStorageKeys;
import gregicality.multiblocks.api.unification.properties.GCYMPropertyKey;

import com.github.gtexpert.core.common.items.GTEMetaItems;

public class CEUOverrideRecipe {
Expand All @@ -50,13 +41,6 @@ public static void init() {
}

private static void materials() {
// Vacuum Freezer
List<Material> materials = new ArrayList<>(GregTechAPI.materialManager.getRegisteredMaterials());
materials.forEach(CEUOverrideRecipe::vacuumFreezerExtended);

// Remove Gem
materials.forEach(CEUOverrideRecipe::removeGem);

// Iron Nugget
ModHandler.addShapelessRecipe("wrought_iron_nugget", OreDictUnifier.get(nugget, Materials.Iron, 9),
OreDictUnifier.get(ingot, Materials.Iron, 1));
Expand Down Expand Up @@ -241,6 +225,16 @@ private static void items() {
.category(RecipeCategories.MACERATOR_RECYCLING)
.duration(1470).EUt(2)
.buildAndRegister();

batteryItems.put(GTValues.UHV, Collections.singletonList(ULTIMATE_BATTERY));
for (int i = GTValues.ULV; i < GTValues.UEV; i++) {
List<MetaItem.MetaValueItem> tieredBatteryItems = batteryItems.get(i);
for (MetaItem.MetaValueItem batteryItem : tieredBatteryItems) {
ItemStack batteryStack = batteryItem.getStackForm();
String recipeName = String.format("nbt_clearing_%s", batteryItem.unlocalizedName);
ModHandler.addShapelessNBTClearingRecipe(recipeName, batteryStack, batteryStack);
}
}
}

private static void blocks() {
Expand Down Expand Up @@ -367,142 +361,4 @@ private static void tools() {
'P', MetaItems.CARBON_FIBER_PLATE.getStackForm(),
'E', MetaItems.ENERGIUM_CRYSTAL.getStackForm());
}

/**
* Vacuum Freezer to extended recipes
*
* @param material The material to add recipes for
*/
private static void vacuumFreezerExtended(@NotNull Material material) {
// Check if the material has a blast recipe
if (!material.hasProperty(GCYMPropertyKey.ALLOY_BLAST)) return;

// Check if the material has a molten fluid
Fluid molten = material.getFluid(GCYMFluidStorageKeys.MOLTEN);
if (molten == null) return;

// Get the vacuum freezer EUt and duration
BlastProperty property = material.getProperty(PropertyKey.BLAST);
int vacuumEUt = property.getVacuumEUtOverride() != -1 ? property.getVacuumEUtOverride() : VA[MV];
int vacuumDuration = property.getVacuumDurationOverride() != -1 ? property.getVacuumDurationOverride() :
(int) material.getMass() * 3;

// Check if the material has a blast temperature above 5000K
if (property.getBlastTemperature() >= 5000) {
if (material.hasFlag(GENERATE_PLATE)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_PLATE)
.fluidInputs(new FluidStack(molten, 144))
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 500))
.fluidOutputs(Materials.Helium.getFluid(250))
.output(plate, material, 1)
.duration(vacuumDuration)
.EUt(vacuumEUt)
.buildAndRegister();
}
if (material.hasFlag(GENERATE_SMALL_GEAR)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_GEAR_SMALL)
.fluidInputs(new FluidStack(molten, 144))
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 500))
.fluidOutputs(Materials.Helium.getFluid(250))
.output(gearSmall, material, 1)
.duration(vacuumDuration)
.EUt(vacuumEUt)
.buildAndRegister();
}
if (material.hasFlag(GENERATE_GEAR)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_GEAR)
.fluidInputs(new FluidStack(molten, 576))
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 2000))
.fluidOutputs(Materials.Helium.getFluid(1000))
.output(gear, material, 1)
.duration(vacuumDuration * 4)
.EUt(vacuumEUt)
.buildAndRegister();
}
if (material.hasFlag(GENERATE_ROTOR)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_ROTOR)
.fluidInputs(new FluidStack(molten, 576))
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 2000))
.fluidOutputs(Materials.Helium.getFluid(1000))
.output(rotor, material, 1)
.duration(vacuumDuration * 4)
.EUt(vacuumEUt)
.buildAndRegister();
}
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.circuitMeta(1)
.fluidInputs(new FluidStack(molten, 144))
.fluidInputs(Materials.Helium.getFluid(FluidStorageKeys.LIQUID, 500))
.fluidOutputs(Materials.Helium.getFluid(250))
.fluidOutputs(material.getFluid(144))
.duration(vacuumDuration)
.EUt(vacuumEUt)
.buildAndRegister();
} else {
if (material.hasFlag(GENERATE_PLATE)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_PLATE)
.fluidInputs(new FluidStack(molten, 144))
.output(plate, material, 1)
.duration(vacuumDuration)
.EUt(vacuumEUt)
.buildAndRegister();
}
if (material.hasFlag(GENERATE_SMALL_GEAR)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_GEAR_SMALL)
.fluidInputs(new FluidStack(molten, 144))
.output(gearSmall, material, 1)
.duration(vacuumDuration)
.EUt(vacuumEUt)
.buildAndRegister();
}
if (material.hasFlag(GENERATE_GEAR)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_GEAR)
.fluidInputs(new FluidStack(molten, 576))
.output(gear, material, 1)
.duration(vacuumDuration * 4)
.EUt(vacuumEUt)
.buildAndRegister();
}
if (material.hasFlag(GENERATE_ROTOR)) {
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_ROTOR)
.fluidInputs(new FluidStack(molten, 576))
.output(rotor, material, 1)
.duration(vacuumDuration * 4)
.EUt(vacuumEUt)
.buildAndRegister();
}
RecipeMaps.VACUUM_RECIPES.recipeBuilder()
.circuitMeta(1)
.fluidInputs(new FluidStack(molten, 144))
.fluidOutputs(material.getFluid(144))
.duration(vacuumDuration)
.EUt(vacuumEUt)
.buildAndRegister();
}
}

/**
* Remove gem recipes
*
* @param material The material
*/
private static void removeGem(Material material) {
if (!material.hasProperty(PropertyKey.FLUID)) return;
if (!material.hasProperty(PropertyKey.GEM)) return;
if (!ConfigHolder.recipes.disableManualCompression) return;

long materialAmount = OrePrefix.block.getMaterialAmount(material);
GTRecipeHandler.removeRecipesByInputs(RecipeMaps.FLUID_SOLIDFICATION_RECIPES,
new ItemStack[] { MetaItems.SHAPE_MOLD_BLOCK.getStackForm() },
new FluidStack[] {
material.getProperty(PropertyKey.FLUID).solidifiesFrom(((int) (materialAmount * L / M))) });
}
}
Loading