1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package gregtech.loaders.oreprocessing;
import static gregtech.api.recipe.RecipeMaps.cannerRecipes;
import static gregtech.api.util.GTRecipeBuilder.TICKS;
import net.minecraft.item.ItemStack;
import gregtech.api.enums.GTValues;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SubTag;
import gregtech.api.util.GTOreDictUnificator;
import gregtech.api.util.GTRecipeBuilder;
import gregtech.api.util.GTUtility;
public class ProcessingRecycling implements gregtech.api.interfaces.IOreRecipeRegistrator {
public ProcessingRecycling() {
for (OrePrefixes tPrefix : OrePrefixes.values())
if ((tPrefix.mIsMaterialBased) && (tPrefix.mMaterialAmount > 0L) && (tPrefix.mIsContainer))
tPrefix.add(this);
}
@Override
public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName,
ItemStack aStack) {
if ((aMaterial != Materials.Empty) && (GTUtility.getFluidForFilledItem(aStack, true) == null)
&& !aMaterial.contains(SubTag.SMELTING_TO_FLUID)
&& (GTOreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L) != null)) {
GTRecipeBuilder recipeBuilder = GTValues.RA.stdBuilder();
recipeBuilder.itemInputs(aStack);
if (GTUtility.getContainerItem(aStack, true) == null) {
recipeBuilder.itemOutputs(
GTOreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L));
} else {
recipeBuilder.itemOutputs(
GTUtility.getContainerItem(aStack, true),
GTOreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L));
}
recipeBuilder.duration(((int) Math.max(aMaterial.getMass() / 2L, 1L)) * TICKS)
.eut(2)
.addTo(cannerRecipes);
}
}
}
|