diff options
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r-- | src/main/java/gregtech/common/GT_Proxy.java | 103 | ||||
-rw-r--r-- | src/main/java/gregtech/common/bees/GT_AlleleBeeSpecies.java | 39 | ||||
-rw-r--r-- | src/main/java/gregtech/common/bees/GT_AlleleHelper.java | 224 | ||||
-rw-r--r-- | src/main/java/gregtech/common/bees/GT_Bee_Mutation.java | 75 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/CombType.java | 254 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/DropType.java | 48 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java | 3 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/ItemComb.java | 667 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/ItemDrop.java | 127 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/ItemPollen.java | 88 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/ItemPropolis.java | 82 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/PollenType.java | 34 | ||||
-rw-r--r-- | src/main/java/gregtech/common/items/PropolisType.java | 35 |
13 files changed, 1611 insertions, 168 deletions
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index 5b3c4e8b79..100b5016ab 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -8,6 +8,9 @@ import cpw.mods.fml.common.network.FMLNetworkEvent; import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
+import forestry.api.genetics.AlleleManager;
+import forestry.apiculture.genetics.Bee;
+import forestry.core.genetics.alleles.AlleleHelper;
import gregtech.api.GregTech_API;
import gregtech.api.enums.*;
import gregtech.api.enums.TC_Aspects.TC_AspectStack;
@@ -44,6 +47,7 @@ import net.minecraft.item.ItemBow; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
import net.minecraft.potion.Potion;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.DamageSource;
@@ -72,6 +76,7 @@ import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
+import org.apache.commons.lang3.text.WordUtils;
import static gregtech.GT_Mod.GT_FML_LOGGER;
@@ -1312,6 +1317,104 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { tCount += tStack.stackSize * 64 / Math.max(1, tStack.getMaxStackSize());
}
if (this.mInventoryUnification) {
+
+ if (tStack.getTagCompound()!= null && (tStack.getTagCompound().getTag("Mate")!= null || tStack.getTagCompound().getTag("Genome")!= null )) {
+
+ String orgMate = "";
+ if(tStack.getTagCompound().getTag("Mate")!= null)
+ orgMate = (tStack.getTagCompound().getCompoundTag("Mate")).getTagList("Chromosomes",10).getCompoundTagAt(0).getString("UID1");
+
+ String orgGen = orgMate;
+
+ if(tStack.getTagCompound().getTag("Genome")!= null)
+ orgGen = (tStack.getTagCompound().getCompoundTag("Genome")).getTagList("Chromosomes",10).getCompoundTagAt(0).getString("UID1");
+
+ final boolean[] yn = {orgMate.contains("gendustry"),orgGen.contains("gendustry")};
+
+ if (yn[0] || yn[1]) {
+
+ final NBTTagCompound NBTTAGCOMPOUND = (NBTTagCompound) tStack.getTagCompound().copy();
+
+ //MATE
+ if (yn[0]) {
+ final NBTTagCompound MATE = NBTTAGCOMPOUND.getCompoundTag("Mate");
+ final NBTTagList chromosomesMate = MATE.getTagList("Chromosomes", 10);
+ final NBTTagCompound species = chromosomesMate.getCompoundTagAt(0);
+
+ String ident1 = species.getString("UID1");
+ final String[] split = ident1.split("[.]");
+ ident1 = "gregtech.bee.species" + WordUtils.capitalize(split[2].toLowerCase(Locale.ENGLISH));
+
+ if (AlleleManager.alleleRegistry.getAllele(ident1) == null)
+ return;
+
+ String ident2 = species.getString("UID0");
+ final String[] split2 = ident2.split("[.]");
+ ident2 = "gregtech.bee.species"+WordUtils.capitalize(split2[2].toLowerCase(Locale.ENGLISH));
+
+ if (AlleleManager.alleleRegistry.getAllele(ident2) == null)
+ return;
+
+ final NBTTagCompound nuspeciesmate = new NBTTagCompound();
+ nuspeciesmate.setString("UID1", ident1);
+ nuspeciesmate.setString("UID0", ident2);
+ nuspeciesmate.setByte("Slot", (byte) 0);
+
+ final NBTTagCompound nuMate2 = new NBTTagCompound();
+ final NBTTagList nuMate = new NBTTagList();
+ nuMate.appendTag(nuspeciesmate);
+
+ for (int j = 1; j < chromosomesMate.tagCount(); j++) {
+ nuMate.appendTag(chromosomesMate.getCompoundTagAt(j));
+ }
+
+ nuMate2.setTag("Chromosomes", nuMate);
+ NBTTAGCOMPOUND.removeTag("Mate");
+ NBTTAGCOMPOUND.setTag("Mate", nuMate2);
+ }
+ if (yn[1]) {
+ //Genome
+ final NBTTagCompound genome = NBTTAGCOMPOUND.getCompoundTag("Genome");
+ final NBTTagList chromosomesGenome = genome.getTagList("Chromosomes", 10);
+ final NBTTagCompound speciesGenome = chromosomesGenome.getCompoundTagAt(0);
+
+ String ident1Genome = speciesGenome.getString("UID1");
+ final String[] splitGenome = ident1Genome.split("[.]");
+ ident1Genome = "gregtech.bee.species" + WordUtils.capitalize(splitGenome[2].toLowerCase(Locale.ENGLISH));
+
+ if (AlleleManager.alleleRegistry.getAllele(ident1Genome) == null)
+ return;
+
+ String ident2Genome = speciesGenome.getString("UID0");
+ final String[] splitGenome2 = ident2Genome.split("[.]");
+ ident2Genome = "gregtech.bee.species" + WordUtils.capitalize(splitGenome2[2].toLowerCase(Locale.ENGLISH));
+
+ if (AlleleManager.alleleRegistry.getAllele(ident2Genome) == null)
+ return;
+
+ final NBTTagCompound nuspeciesgenome = new NBTTagCompound();
+ nuspeciesgenome.setString("UID1", ident1Genome);
+ nuspeciesgenome.setString("UID0", ident2Genome);
+ nuspeciesgenome.setByte("Slot", (byte) 0);
+
+ final NBTTagCompound nugenome2 = new NBTTagCompound();
+ final NBTTagList nuGenome = new NBTTagList();
+ nuGenome.appendTag(nuspeciesgenome);
+
+ for (int j = 1; j < chromosomesGenome.tagCount(); j++) {
+ nuGenome.appendTag(chromosomesGenome.getCompoundTagAt(j));
+ }
+
+ nugenome2.setTag("Chromosomes", nuGenome);
+ NBTTAGCOMPOUND.removeTag("Genome");
+ NBTTAGCOMPOUND.setTag("Genome", nugenome2);
+ }
+ tStack.setTagCompound(new NBTTagCompound());
+ tStack.setTagCompound(NBTTAGCOMPOUND);
+ }
+ else return;
+ }
+
GT_OreDictUnificator.setStack(true, tStack);
}
}
diff --git a/src/main/java/gregtech/common/bees/GT_AlleleBeeSpecies.java b/src/main/java/gregtech/common/bees/GT_AlleleBeeSpecies.java new file mode 100644 index 0000000000..83dc82e6f9 --- /dev/null +++ b/src/main/java/gregtech/common/bees/GT_AlleleBeeSpecies.java @@ -0,0 +1,39 @@ +package gregtech.common.bees; + +import forestry.api.apiculture.EnumBeeChromosome; +import forestry.api.apiculture.IAlleleBeeSpeciesCustom; +import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.IClassification; +import forestry.apiculture.genetics.alleles.AlleleBeeSpecies; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class GT_AlleleBeeSpecies extends AlleleBeeSpecies { + public GT_AlleleBeeSpecies(String uid, boolean dominant, String unlocalizedName, String authority, String unlocalizedDescription, IClassification branch, String binomial, int primaryColor, int secondaryColor) { + super(uid, unlocalizedName, authority, unlocalizedDescription, dominant, branch, binomial, primaryColor, secondaryColor); + AlleleManager.alleleRegistry.registerAllele(this, EnumBeeChromosome.SPECIES); + } + + @Override + public IAlleleBeeSpeciesCustom addProduct(ItemStack product, Float chance) { + if (product == null || product.getItem() == null) { + product=new ItemStack(Items.boat); + } + if (chance <= 0.0f || chance > 1.0f) { + chance = 0.1f; + } + return super.addProduct(product,chance); + } + + @Override + public IAlleleBeeSpeciesCustom addSpecialty(ItemStack specialty, Float chance) { + if (specialty == null || specialty.getItem() == null) { + specialty=new ItemStack(Items.boat); + } + if (chance <= 0.0f || chance > 1.0f) { + chance = 0.1f; + } + return super.addSpecialty(specialty, chance); + } + +} diff --git a/src/main/java/gregtech/common/bees/GT_AlleleHelper.java b/src/main/java/gregtech/common/bees/GT_AlleleHelper.java new file mode 100644 index 0000000000..3431f96eb4 --- /dev/null +++ b/src/main/java/gregtech/common/bees/GT_AlleleHelper.java @@ -0,0 +1,224 @@ +package gregtech.common.bees; + +import forestry.api.apiculture.EnumBeeChromosome; +import forestry.api.arboriculture.EnumTreeChromosome; +import forestry.api.genetics.*; +import forestry.api.lepidopterology.EnumButterflyChromosome; +import forestry.apiculture.flowers.FlowerProvider; +import forestry.core.config.Constants; +import forestry.core.genetics.alleles.*; +import forestry.core.utils.vect.IVect; +import forestry.plugins.PluginManager; + +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +public class GT_AlleleHelper extends AlleleHelper { + + private static final String modId = Constants.ID; + + private final Map<Class, Map<?, ? extends IAllele>> alleleMaps = new HashMap<>(); + + public void init() { + if (PluginManager.Module.APICULTURE.isEnabled()) { + createAlleles(EnumAllele.Fertility.class, EnumBeeChromosome.FERTILITY); + createAlleles(EnumAllele.Flowering.class, EnumBeeChromosome.FLOWERING); + } + + if (PluginManager.Module.APICULTURE.isEnabled() || PluginManager.Module.ARBORICULTURE.isEnabled()) { + createAlleles(EnumAllele.Territory.class, + EnumBeeChromosome.TERRITORY, + EnumTreeChromosome.TERRITORY + ); + + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.territoryDefault", get(EnumAllele.Territory.AVERAGE)); + } + + if (PluginManager.Module.APICULTURE.isEnabled() || PluginManager.Module.LEPIDOPTEROLOGY.isEnabled()) { + createAlleles(EnumAllele.Speed.class, + EnumBeeChromosome.SPEED, + EnumButterflyChromosome.SPEED + ); + createAlleles(EnumAllele.Lifespan.class, + EnumBeeChromosome.LIFESPAN, + EnumButterflyChromosome.LIFESPAN + ); + createAlleles(EnumAllele.Tolerance.class, + EnumBeeChromosome.TEMPERATURE_TOLERANCE, + EnumBeeChromosome.HUMIDITY_TOLERANCE, + EnumButterflyChromosome.TEMPERATURE_TOLERANCE, + EnumButterflyChromosome.HUMIDITY_TOLERANCE + ); + createAlleles(EnumAllele.Flowers.class, + EnumBeeChromosome.FLOWER_PROVIDER, + EnumButterflyChromosome.FLOWER_PROVIDER + ); + + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.speedNorm", get(EnumAllele.Speed.NORMAL)); + } + + if (PluginManager.Module.ARBORICULTURE.isEnabled()) { + createAlleles(EnumAllele.Height.class, EnumTreeChromosome.HEIGHT); + createAlleles(EnumAllele.Saplings.class, EnumTreeChromosome.FERTILITY); + createAlleles(EnumAllele.Yield.class, EnumTreeChromosome.YIELD); + createAlleles(EnumAllele.Fireproof.class, EnumTreeChromosome.FIREPROOF); + createAlleles(EnumAllele.Maturation.class, EnumTreeChromosome.MATURATION); + createAlleles(EnumAllele.Sappiness.class, EnumTreeChromosome.SAPPINESS); + + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.heightMax10", get(EnumAllele.Height.AVERAGE)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.saplingsDefault", get(EnumAllele.Saplings.AVERAGE)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.saplingsDouble", get(EnumAllele.Saplings.HIGH)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.saplingsTriple", get(EnumAllele.Saplings.HIGHER)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.yieldDefault", get(EnumAllele.Yield.AVERAGE)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.maturitySlowest", get(EnumAllele.Maturation.SLOWEST)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.maturitySlower", get(EnumAllele.Maturation.SLOWER)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.maturitySlow", get(EnumAllele.Maturation.SLOW)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.maturityAverage", get(EnumAllele.Maturation.AVERAGE)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.maturityFast", get(EnumAllele.Maturation.FAST)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.maturityFaster", get(EnumAllele.Maturation.FASTER)); + AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.maturityFastest", get(EnumAllele.Maturation.FASTEST)); + } + + if (PluginManager.Module.LEPIDOPTEROLOGY.isEnabled()) { + createAlleles(EnumAllele.Size.class, EnumButterflyChromosome.SIZE); + } + + Map<Integer, IAlleleInteger> integers = new HashMap<>(); + for (int i = 1; i <= 10; i++) { + IAlleleInteger alleleInteger = new AlleleInteger(modId, "i", i + "d", i, true); + AlleleManager.alleleRegistry.registerAllele(alleleInteger, + EnumTreeChromosome.GIRTH, + EnumButterflyChromosome.METABOLISM, + EnumButterflyChromosome.FERTILITY + ); + integers.put(i, alleleInteger); + } + alleleMaps.put(Integer.class, integers); + + Map<Boolean, IAlleleBoolean> booleans = new HashMap<>(); + booleans.put(true, new AlleleBoolean(modId, "bool", true, false)); + booleans.put(false, new AlleleBoolean(modId, "bool", false, false)); + for (IAlleleBoolean alleleBoolean : booleans.values()) { + AlleleManager.alleleRegistry.registerAllele(alleleBoolean, + EnumBeeChromosome.NOCTURNAL, + EnumBeeChromosome.TOLERANT_FLYER, + EnumBeeChromosome.CAVE_DWELLING, + EnumButterflyChromosome.NOCTURNAL, + EnumButterflyChromosome.TOLERANT_FLYER, + EnumButterflyChromosome.FIRE_RESIST + ); + } + alleleMaps.put(Boolean.class, booleans); + } + + public static void initialisation(){ + AlleleHelper.instance = new GT_AlleleHelper(); + AlleleHelper.instance.init(); + } + + + + @Override + public <T extends Enum<T> & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, IAllele allele) { + + if (allele == null) { + return; + } + + if (!chromosomeType.getAlleleClass().isInstance(allele)) { + return; + } + + // uncomment this once all addon mods are using the allele registration with IChromosomeType + // Collection<IChromosomeType> validTypes = AlleleManager.alleleRegistry.getChromosomeTypes(allele); + // if (validTypes.size() > 0 && !validTypes.contains(chromosomeType)) { + // throw new IllegalArgumentException("Allele can't applied to this Chromosome type. Expected: " + validTypes + " Got: " + chromosomeType); + // } + + alleles[chromosomeType.ordinal()] = allele; + } + + @Override + public <T extends Enum<T> & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, IAlleleValue value) { + set(alleles, chromosomeType, get(value)); + } + + @Override + public <T extends Enum<T> & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, boolean value) { + set(alleles, chromosomeType, get(value)); + } + + @Override + public <T extends Enum<T> & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, int value) { + set(alleles, chromosomeType, get(value)); + } + + private IAllele get(Object value) { + Class<?> valueClass = value.getClass(); + Map<?, ? extends IAllele> map = alleleMaps.get(valueClass); + if (map == null) { + throw new IllegalArgumentException("There is no IAllele type for: " + valueClass + ' ' + value); + } + IAllele allele = map.get(value); + if (allele == null) { + allele = new IAllele() { + @Override + public String getUID() { + return "NOT_FOUND"; + } + + @Override + public boolean isDominant() { + return false; + } + + @Override + public String getName() { + return "NOT_FOUND"; + } + + @Override + public String getUnlocalizedName() { + return "NOT_FOUND"; + } + }; + } + return allele; + } + + private <K extends Enum<K> & IAlleleValue<V>, V> void createAlleles(Class<K> enumClass, IChromosomeType... types) { + String category = enumClass.getSimpleName().toLowerCase(Locale.ENGLISH); + EnumMap<K, IAllele> map = new EnumMap<>(enumClass); + for (K enumValue : enumClass.getEnumConstants()) { + IAllele allele = createAllele(category, enumValue, types); + map.put(enumValue, allele); + } + alleleMaps.put(enumClass, map); + } + private static <K extends IAlleleValue<V>, V> IAllele createAllele(String category, K enumValue, IChromosomeType... types) { + V value = enumValue.getValue(); + boolean isDominant = enumValue.isDominant(); + String name = enumValue.toString().toLowerCase(Locale.ENGLISH); + + Class<?> valueClass = value.getClass(); + if (Float.class.isAssignableFrom(valueClass)) { + return AlleleManager.alleleFactory.createFloat(modId, category, name, (Float) value, isDominant, types); + } else if (Integer.class.isAssignableFrom(valueClass)) { + return AlleleManager.alleleFactory.createInteger(modId, category, name, (Integer) value, isDominant, types); + } else if (IVect.class.isAssignableFrom(valueClass)) { + IVect area = (IVect) value; + return AlleleManager.alleleFactory.createArea(modId, category, name, area.getX(), area.getY(), area.getZ(), isDominant, types); + } else if (Boolean.class.isAssignableFrom(valueClass)) { + return AlleleManager.alleleFactory.createBoolean(modId, category, (Boolean) value, isDominant, types); + } else if (EnumTolerance.class.isAssignableFrom(valueClass)) { + IAlleleTolerance alleleTolerance = new AlleleTolerance(modId, category, name, (EnumTolerance) value, isDominant); + AlleleManager.alleleRegistry.registerAllele(alleleTolerance, types); + return alleleTolerance; + } else if (FlowerProvider.class.isAssignableFrom(valueClass)) { + return AlleleManager.alleleFactory.createFlowers(modId, category, name, (FlowerProvider) value, isDominant, types); + } + throw new RuntimeException("could not create allele for category: " + category + " and value " + valueClass); + } +} diff --git a/src/main/java/gregtech/common/bees/GT_Bee_Mutation.java b/src/main/java/gregtech/common/bees/GT_Bee_Mutation.java new file mode 100644 index 0000000000..852f00e6d6 --- /dev/null +++ b/src/main/java/gregtech/common/bees/GT_Bee_Mutation.java @@ -0,0 +1,75 @@ +package gregtech.common.bees; + +import forestry.api.apiculture.*; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IGenome; +import forestry.api.genetics.IMutationCondition; +import forestry.apiculture.genetics.BeeMutation; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.World; + +import java.lang.reflect.Field; +import java.util.List; + + +public class GT_Bee_Mutation extends BeeMutation { + + private int split = 1; + + public GT_Bee_Mutation(IAlleleBeeSpecies bee0, IAlleleBeeSpecies bee1, IAllele[] result, int chance, int split) { + super(bee0, bee1, result, chance); + this.split = split; + BeeManager.beeRoot.registerMutation(this); + } + + @Override + public float getBaseChance() { + return ((float) ((float)super.getBaseChance() / ((float)split))); + } + + @Override + public float getChance(IBeeHousing housing, IAlleleBeeSpecies allele0, IAlleleBeeSpecies allele1, IBeeGenome genome0, IBeeGenome genome1) { + World world = housing.getWorld(); + ChunkCoordinates housingCoordinates = housing.getCoordinates(); + int x = housingCoordinates.posX; + int y = housingCoordinates.posY; + int z = housingCoordinates.posZ; + + float processedChance = getbasicChance(world, x, y, z, allele0, allele1, genome0, genome1); + + + if (processedChance <= 0f) { + return 0f; + } + + IBeeModifier beeHousingModifier = BeeManager.beeRoot.createBeeHousingModifier(housing); + IBeeModifier beeModeModifier = BeeManager.beeRoot.getBeekeepingMode(world).getBeeModifier(); + + processedChance *= beeHousingModifier.getMutationModifier(genome0, genome1, processedChance); + processedChance *= beeModeModifier.getMutationModifier(genome0, genome1, processedChance); + + return processedChance; + } + + protected float getbasicChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { + float mutationChance = getBaseChance(); + List<IMutationCondition> mutationConditions = null; + try { + Field f = this.getClass().getDeclaredField("mutationConditions"); + f.setAccessible(true); + Object o = f.get(this); + mutationConditions = o instanceof List ? (List) o : null ; + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + + if (mutationConditions != null) + for (IMutationCondition mutationCondition : mutationConditions) { + mutationChance *= mutationCondition.getChance(world, x, y, z, allele0, allele1, genome0, genome1); + if (mutationChance == 0) { + return 0; + } + } + return mutationChance; + } +} diff --git a/src/main/java/gregtech/common/items/CombType.java b/src/main/java/gregtech/common/items/CombType.java index ffde997fb9..9ff5eb359c 100644 --- a/src/main/java/gregtech/common/items/CombType.java +++ b/src/main/java/gregtech/common/items/CombType.java @@ -4,63 +4,206 @@ import gregtech.api.enums.Materials; import gregtech.api.util.GT_LanguageManager; public enum CombType { - //Organic + //Organic Line LIGNIE("lignite", true, Materials.Lignite, 100), COAL("coal", true, Materials.Coal, 100), STICKY("stickyresin", true, Materials._NULL, 50), OIL("oil", true, Materials._NULL, 100), + APATITE("apatite", true, Materials.Apatite, 100), + ASH("ash", true, Materials.Ash, 100), + + //IC2 Line + COOLANT("coolant", true, Materials._NULL, 100), + ENERGY("energy", true, Materials._NULL, 80), + LAPOTRON("lapotron", true, Materials._NULL, 60), + PYROTHEUM("pyrotheum", true, Materials.Pyrotheum, 50), + CRYOTHEUM("cryotheum", true, Materials.Pyrotheum, 50), + + //Alloy Line + REDALLOY("redalloy", true, Materials.RedAlloy, 100), + REDSTONEALLOY("redstonealloy", true, Materials.RedstoneAlloy, 90), + CONDUCTIVEIRON("conductiveiron", true, Materials.ConductiveIron, 80), + VIBRANTALLOY("vibrantalloy", true, Materials.VibrantAlloy, 50), + ENERGETICALLOY("energeticalloy", true, Materials.EnergeticAlloy, 70), + ELECTRICALSTEEL("electricalsteel", true, Materials.ElectricalSteel, 90), + DARKSTEEL("darksteel", true, Materials.DarkSteel, 80), + PULSATINGIRON("pulsatingiron", true, Materials.PulsatingIron, 80), + STAINLESSSTEEL("stainlesssteel", true, Materials.StainlessSteel, 75), + ENDERIUM("enderium", true, Materials.Enderium, 40), + + //Thaumcraft Line + THAUMIUMDUST("thaumiumdust", true, Materials.Thaumium, 100), + THAUMIUMSHARD("thaumiumshard", true, Materials._NULL, 85), + AMBER("amber", true, Materials.Amber, 90), + QUICKSILVER("quicksilver", true, Materials.Mercury, 90), + SALISMUNDUS("salismundus", true, Materials._NULL, 75), + TAINTED("tainted", true, Materials._NULL, 80), + MITHRIL("mithril", true, Materials.Mithril, 70), + ASTRALSILVER("astralsilver", true, Materials.AstralSilver, 70), + THAUMINITE("thauminite", true, Materials._NULL, 50), + SHADOWMETAL("shadowmetal", true, Materials.Shadow, 50), + DIVIDED("divided", true, Materials.Unstable, 40), + SPARKELING("sparkeling", true, Materials.NetherStar, 40), + //Gem Line STONE("stone", true, Materials._NULL, 70), CERTUS("certus", true, Materials.CertusQuartz, 100), + FLUIX("fluix", true, Materials.Fluix, 100), REDSTONE("redstone", true, Materials.Redstone, 100), + RAREEARTH("rareearth", true, Materials.RareEarth, 100), LAPIS("lapis", true, Materials.Lapis, 100), RUBY("ruby", true, Materials.Ruby, 100), + REDGARNET("redgarnet", true, Materials.GarnetRed,100), + YELLOWGARNET("yellowgarnet", true, Materials.GarnetYellow,100), SAPPHIRE("sapphire", true, Materials.Sapphire, 100), DIAMOND("diamond", true, Materials.Diamond, 100), OLIVINE("olivine", true, Materials.Olivine, 100), EMERALD("emerald", true, Materials.Emerald, 100), + PYROPE("pyrope", true, Materials.Pyrope, 100), + GROSSULAR("grossular", true, Materials.Grossular, 100), + FIRESTONE("firestone", true, Materials.Firestone, 100), - // Metals Line + //Metals Line SLAG("slag", true, Materials._NULL, 50), - COPPER("coppon", true, Materials.Copper, 100), - TIN("tine", true, Materials.Tin, 100), - LEAD("plumbilia", true, Materials.Lead, 100), - IRON("ferru", true, Materials.Iron, 100), - STEEL("steeldust", true, Materials.Steel, 100), - NICKEL("nickeldust", true, Materials.Nickel, 100), - ZINC("galvania", true, Materials.Zinc, 100), - SILVER("argentia", true, Materials.Silver, 100), - GOLD("aurelia", true, Materials.Gold, 100), - - // Rare Metals Line - ALUMINIUM("bauxia", true, Materials.Aluminium, 60), - MANGANESE("pyrolusium", true, Materials.Manganese, 30), + COPPER("copper", true, Materials.Copper, 100), + TIN("tin", true, Materials.Tin, 100), + LEAD("lead", true, Materials.Lead, 100), + IRON("iron", true, Materials.Iron, 100), + STEEL("steel", true, Materials.Steel, 95), + NICKEL("nickel", true, Materials.Nickel, 100), + ZINC("zinc", true, Materials.Zinc, 100), + SILVER("silver", true, Materials.Silver, 100), + GOLD("gold", true, Materials.Gold, 100), + SULFUR("sulfur", true, Materials.Sulfur, 100), + GALLIUM ("gallium", true, Materials.Gallium, 75), + ARSENIC ("arsenic", true, Materials.Arsenic, 75), + + //Rare Metals Line + BAUXITE("bauxite", true, Materials.Bauxite, 85), + ALUMINIUM("aluminium", true, Materials.Aluminium, 60), + MANGANESE("manganese", true, Materials.Manganese, 30), + MAGNESIUM("magnesium", true, Materials.Magnesium, 75), TITANIUM("titanium", true, Materials.Ilmenite, 100), CHROME("chromium", true, Materials.Chrome, 50), - TUNGSTEN("scheelinium", true, Materials.Tungstate, 100), - PLATINUM("platina", true, Materials.Platinum, 40), - IRIDIUM("quantaria", true, Materials.Iridium, 20), + TUNGSTEN("tungsten", true, Materials.Tungstate, 100), + PLATINUM("platinum", true, Materials.Platinum, 40), + IRIDIUM("iridium", true, Materials.Iridium, 20), + MOLYBDENUM("molybdenum", true, Materials.Molybdenum, 20), + OSMIUM("osmium", true, Materials.Osmium, 15), + LITHIUM("lithium", true, Materials.Lithium, 75), + SALT("salt", true, Materials.Salt, 90), + ELECTROTINE("electrotine", true, Materials.Electrotine, 75), + ALMANDINE("almandine", true, Materials.Almandine, 85), - - // Radioactive Line - URANIUM("urania", true, Materials.Uranium, 50), + //Radioactive Line + URANIUM("uranium", true, Materials.Uranium, 50), PLUTONIUM("plutonium", true, Materials.Plutonium, 10), - NAQUADAH("stargatium", true, Materials.Naquadah, 10),; + NAQUADAH("naquadah", true, Materials.Naquadah, 10), + NAQUADRIA("naquadria", true, Materials.Naquadria, 5), + DOB("d-o-b", true, Materials._NULL, 50), + THORIUM("thorium", true, Materials.Thorium, 75), + LUTETIUM("lutetium", true, Materials.Lutetium, 10), + AMERICUM("americum", true, Materials.Americium, 5), + NEUTRONIUM("neutronium", true, Materials.Neutronium, 2), + + //Twilight + NAGA("naga", true, Materials._NULL, 100), + LICH("lich", true, Materials._NULL, 90), + HYDRA("hydra", true, Materials._NULL, 80), + URGHAST("urghast", true, Materials._NULL, 70), + SNOWQUEEN("snowqueen", true, Materials._NULL, 60), + + //Space + SPACE("space", true, Materials._NULL, 100), + METEORICIRON("meteoriciron",true, Materials.MeteoricIron, 100), + DESH("desh",true, Materials.Desh, 90), + LEDOX("ledox",true, Materials.Ledox, 75), + CALLISTOICE("callistoice",true, Materials.CallistoIce, 75), + MYTRYL("mytryl",true, Materials.Mytryl, 65), + QUANTIUM("quantium",true, Materials.Quantium, 50), + ORIHARUKON("oriharukon",true, Materials.Oriharukon, 50), + MYSTERIOUSCRYSTAL("mysteriouscrystal",true, Materials.MysteriousCrystal, 45), + BLACKPLUTONIUM("blackplutonium",true, Materials.Quantium, 25), + TRINIUM("trinium",true, Materials.Trinium, 25), + + //Planet + MERCURY("mercury", true, Materials._NULL, 65), + VENUS("venus",true, Materials._NULL, 65), + MOON("moon",true, Materials._NULL, 90), + MARS("mars",true, Materials._NULL, 80), + JUPITER("jupiter",true, Materials._NULL, 75), + SATURN("saturn",true, Materials._NULL, 55), + URANUS("uranus",true, Materials._NULL, 45), + NEPTUN("neptun",true, Materials._NULL, 35), + PLUTO("pluto",true, Materials._NULL, 25), + HAUMEA("haumea",true, Materials._NULL, 20), + MAKEMAKE("makemake",true, Materials._NULL, 20), + CENTAURI("centauri",true, Materials._NULL, 15), + TCETI("tceti",true, Materials._NULL, 10), + BARNARDA("barnarda",true, Materials._NULL, 10), + VEGA("vega",true, Materials._NULL, 10), + + //Infinity + COSMICNEUTRONIUM("cosmicneutronium",true, Materials._NULL, 5), + INFINITYCATALYST("infinitycatalyst",true, Materials._NULL, 2), + INFINITY("infinity",true, Materials._NULL, 1); private static int[][] colours = new int[][]{ - {0x906237, 0x58300B}, - {0x666666, 0x525252}, + //organic + {0x58300B, 0x906237}, + {0x525252, 0x666666}, {0x2E8F5B, 0xDCC289}, - {0x4C4C4C, 0x333333}, + {0x333333, 0x4C4C4C}, + {0xc1c1f6, 0x676784}, + {0x1e1a18, 0xc6c6c6}, + //ic2 + {0x144F5A, 0x2494A2}, + {0xC11F1F, 0xEBB9B9}, + {0x1414FF, 0x6478FF}, + {0xffebc4, 0xe36400}, + {0x2660ff, 0x5af7ff}, + //alloy + {0xE60000, 0xB80000}, + {0xB80000, 0xA50808}, + {0x817671, 0xCEADA3}, + {0x86A12D, 0xC4F2AE}, + {0xFF9933, 0xFFAD5C}, + {0x787878, 0xD8D8D8}, + {0x252525, 0x443B44}, + {0x006600, 0x6DD284}, + {0x778899, 0xC8C8DC}, + {0x2E8B57, 0x599087}, + //Thaumcraft + {0x7A007A, 0x5C005C}, + {0x9966FF, 0xAD85FF}, + {0x774B15, 0xEE7700}, + {0xc7c7ea, 0xb5b3df}, + {0xF7ADDE, 0x592582}, + {0x904BB8, 0xE800FF}, + {0xF0E68C, 0xFFFFD2}, + {0xAFEEEE, 0xE6E6FF}, + {0x2E2D79, 0x7581E0}, + {0x100322, 0x100342}, + {0xF0F0F0, 0xDCDCDC}, + {0x7A007A, 0xFFFFFF}, + //gems {0x808080, 0x999999}, {0x57CFFB, 0xBBEEFF}, + {0xA375FF, 0xB591FF}, {0x7D0F0F, 0xD11919}, + {0x555643, 0x343428}, {0x1947D1, 0x476CDA}, {0xE6005C, 0xCC0052}, + {0xBD4C4C, 0xECCECE}, + {0xA3A341, 0xEDEDCE}, {0x0033CC, 0x00248F}, {0xCCFFFF, 0xA3CCCC}, {0x248F24, 0xCCFFCC}, {0x248F24, 0x2EB82E}, + {0x763162, 0x8B8B8B}, + {0x9B4E00, 0x8B8B8B}, + {0xC00000, 0xFF0000}, + //Metals {0xD4D4D4, 0x58300B}, {0xFF6600, 0xE65C00}, {0xD4D4D4, 0xDDDDDD}, @@ -71,16 +214,73 @@ public enum CombType { {0xF0DEF0, 0xF2E1F2}, {0xC2C2D6, 0xCECEDE}, {0xE6B800, 0xCFA600}, + {0x6F6F01, 0x8B8B8B}, + {0x8B8B8B, 0xC5C5E4}, + {0x736C52, 0x292412}, + //Rare Metals + {0x6B3600, 0x8B8B8B}, {0x008AB8, 0xD6D6FF}, {0xD5D5D5, 0xAAAAAA}, + {0xF1D9D9, 0x8B8B8B}, {0xCC99FF, 0xDBB8FF}, {0xEBA1EB, 0xF2C3F2}, {0x62626D, 0x161620}, {0xE6E6E6, 0xFFFFCC}, {0xDADADA, 0xD1D1E0}, + {0xAEAED4, 0x8B8B8B}, + {0x2B2BDA, 0x8B8B8B}, + {0xF0328C, 0xE1DCFF}, + {0xF0C8C8, 0xFAFAFA}, + {0x1E90FF, 0x3CB4C8}, + {0xC60000, 0x8B8B8B}, + //Radioactive Line {0x19AF19, 0x169E16}, - {0x335C33, 0x6B8F00}, - {0x003300, 0x002400}, + {0x240000, 0x570000}, + {0x000000, 0x004400}, + {0x000000, 0x002400}, + {0x007700, 0x002400}, + {0x001E00, 0x005000}, + {0xE6FFE6, 0xFFFFFF}, + {0xE6E6FF, 0xC8C8C8}, + {0xFFF0F0, 0xFAFAFA}, + //Twilight + {0x0D5A0D, 0x28874B}, + {0x5C605E, 0xC5C5C5}, + {0x872836, 0xB8132C}, + {0x7C0618, 0xA7041C}, + {0x9C0018, 0xD02001}, + //space + {0x003366, 0xC0C0C0}, + {0x321928, 0x643250}, + {0x282828, 0x323232}, + {0x0000CD, 0x0074FF}, + {0x0074FF, 0x1EB1FF}, + {0xDAA520, 0xF26404}, + {0x00FF00, 0x00D10B}, + {0x228B22, 0x677D68}, + {0x3CB371, 0x16856C}, + {0x000000, 0x323232}, + {0xB0E0E6, 0xC8C8D2}, + //planets + {0x4A4033, 0xB5A288}, + {0x120E07, 0x272010}, + {0x373735, 0x7E7E78}, + {0x220D05, 0x3A1505}, + {0x734B2E, 0xD0CBC4}, + {0xD2A472, 0xF8C37B}, + {0x75C0C9, 0x84D8EC}, + {0x334CFF, 0x576DFF}, + {0x34271E, 0x69503D}, + {0x1C1413, 0x392B28}, + {0x301811, 0x120A07}, + {0x2F2A14, 0xB06B32}, + {0x46241A, 0x7B412F}, + {0x0D5A0D, 0xE6C18D}, + {0x1A2036, 0xB5C0DE}, + //infinity + {0x484848, 0x323232}, + {0xFFFFFF, 0xFFFFFF}, + {0xFFFFFF, 0xFFFFFF}, }; public boolean showInList; public Materials material; diff --git a/src/main/java/gregtech/common/items/DropType.java b/src/main/java/gregtech/common/items/DropType.java new file mode 100644 index 0000000000..258126b52e --- /dev/null +++ b/src/main/java/gregtech/common/items/DropType.java @@ -0,0 +1,48 @@ +package gregtech.common.items; + +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_LanguageManager; + +public enum DropType { + + OIL("oil",true), + MUTAGEN("small mutagen catalyst",true), + COOLANT("coolant",true), + HOT_COOLANT("hot coolant",true), + HYDRA("hydra blood",true), + SNOW_QUEEN("snowqueen blood",true), + OXYGEN("oxygen",true), + LAPIS("lapis coolant",true); + + private static int[][] colours = new int[][]{ + {0x19191B, 0x303032}, + {0xffc100, 0x00ff11}, + {0x144F5A, 0x2494A2}, + {0xC11F1F, 0xEBB9B9}, + {0x872836, 0xB8132C}, + {0xD02001, 0x9C0018}, + {0x003366, 0x0066BB}, + {0x1727b1, 0x008ce3}, + }; + public boolean showInList; + public Materials material; + public int chance; + private String name; + private DropType(String pName, boolean show) { + this.name = pName; + this.showInList = show; + } + + public void setHidden() { + this.showInList = false; + } + + public String getName() { +// return "gt.comb."+this.name; + return GT_LanguageManager.addStringLocalization("drop." + this.name, this.name.substring(0, 1).toUpperCase() + this.name.substring(1) + " Drop"); + } + + public int[] getColours() { + return colours[this.ordinal()]; + } +}
\ No newline at end of file diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index db26ca6e71..37c43e1ad8 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -515,7 +515,8 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { ItemList.Electric_Motor_LuV.set(addItem(606, "Electric Motor (LuV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 32L)})); ItemList.Electric_Motor_ZPM.set(addItem(607, "Electric Motor (ZPM)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 64L)})); ItemList.Electric_Motor_UV.set(addItem(608, "Electric Motor (UV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 128L)})); - ItemList.Electric_Motor_UHV.set(addItem(596, "Electric Motor (UHV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 128L)})); + ItemList.Electric_Motor_UHV.set(addItem(596, "Electric Motor (UHV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 256L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 256L)})); + ItemList.Electric_Motor_UEV.set(addItem(595, "Electric Motor (UEV)", "", new Object[]{new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 512L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L)})); GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.IronMagnetic), 'R', OrePrefixes.stick.get(Materials.AnyIron), 'W', OrePrefixes.wireGt01.get(Materials.AnyCopper), 'C', OrePrefixes.cableGt01.get(Materials.Tin)}); GT_ModHandler.addCraftingRecipe(ItemList.Electric_Motor_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R', OrePrefixes.stick.get(Materials.Steel), 'W', OrePrefixes.wireGt01.get(Materials.AnyCopper), 'C', OrePrefixes.cableGt01.get(Materials.Tin)}); diff --git a/src/main/java/gregtech/common/items/ItemComb.java b/src/main/java/gregtech/common/items/ItemComb.java index 33a558542e..8940231160 100644 --- a/src/main/java/gregtech/common/items/ItemComb.java +++ b/src/main/java/gregtech/common/items/ItemComb.java @@ -11,14 +11,17 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gregtech.loaders.materialprocessing.ProcessingModSupport; +import gregtech.loaders.misc.GT_Bees; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidRegistry; import java.util.List; @@ -93,208 +96,592 @@ public class ItemComb extends Item { public String getItemStackDisplayName(ItemStack stack) { return CombType.values()[stack.getItemDamage()].getName(); } - public void initCombsRecipes() { ItemStack tComb; //Organic tComb = getStackForType(CombType.LIGNIE); - addSpecialCent(tComb,GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lignite, 1), 90); - addProcess(tComb, Materials.Lignite, 100); + addSpecialCentLV(tComb,GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Lignite, 1), 90); + addProcessLV(tComb, Materials.Lignite, 100); tComb = getStackForType(CombType.COAL); - addSpecialCent(tComb,GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1), 40); - addProcess(tComb, Materials.Coal, 100); + addSpecialCentLV(tComb,GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1), 5, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Coal, 1), 100); + addProcessLV(tComb, Materials.Coal, 100); tComb = getStackForType(CombType.STICKY); - addSpecialCent(tComb, ItemList.IC2_Resin.get(1, new Object[0]), 70); + addSpecialCentLV(tComb, ItemList.IC2_Resin.get(1, new Object[0]), 50, ItemList.IC2_Plantball.get(1, new Object[0]), 15); tComb = getStackForType(CombType.OIL); - addSpecialCent(tComb, ItemList.Crop_Drop_OilBerry.get(2, new Object[0]), 70); - addProcess(tComb, Materials.Oilsands, 100); - - //Gem Line + addSpecialCentLV(tComb, ItemList.Crop_Drop_OilBerry.get(1, new Object[0]), 70, GT_Bees.drop.getStackForType(DropType.OIL), 100); + addProcessLV(tComb, Materials.Oilsands, 100); + tComb = getStackForType(CombType.APATITE); + addProcessLV(tComb, Materials.Apatite, 100); + addProcessLV(tComb, Materials.Calcium, 80); + addProcessLV(tComb, Materials.Phosphate, 80); + tComb = getStackForType(CombType.ASH); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Ash, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 5000, 5000}, 128, 5); + + //ic2 + tComb = getStackForType(CombType.COOLANT); + addSpecialCentHV(tComb, GT_Bees.drop.getStackForType(DropType.COOLANT), 100, ItemList.FR_Wax.get(1, new Object[0]), 100); + tComb = getStackForType(CombType.ENERGY); + addSpecialCentHV(tComb, GT_Bees.drop.getStackForType(DropType.HOT_COOLANT), 20, ItemList.IC2_Energium_Dust.get(1L), 20, ItemList.FR_RefractoryWax.get(1, new Object[0]), 50); + tComb = getStackForType(CombType.LAPOTRON); + addSpecialCentHV(tComb, GT_Bees.drop.getStackForType(DropType.LAPIS), 20, GT_ModHandler.getModItem("dreamcraft", "item.LapotronDust", 1, 0), 15, GT_ModHandler.getModItem("MagicBees", "wax", 1, 2), 40); + tComb = getStackForType(CombType.PYROTHEUM); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Blizz,1), GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Pyrotheum,1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{3000, 2500, 2000, 0, 0, 0}, 384, 480); + tComb = getStackForType(CombType.CRYOTHEUM); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Blaze,1), GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.Cryotheum,1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{3000, 2500, 2000, 0, 0, 0}, 384, 480); + //Alloy + tComb = getStackForType(CombType.REDALLOY); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.RedAlloy, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 10000}, 128, 5); + addProcessLV(tComb, Materials.Redstone, 75); + addProcessLV(tComb, Materials.Copper, 90); + tComb = getStackForType(CombType.REDSTONEALLOY); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.RedstoneAlloy, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 10000}, 128, 5); + addProcessLV(tComb, Materials.Redstone, 90); + addProcessLV(tComb, Materials.Silicon, 75); + addProcessLV(tComb, Materials.Coal, 75); + tComb = getStackForType(CombType.CONDUCTIVEIRON); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.ConductiveIron, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 9000}, 256, 120); + addProcessMV(tComb, Materials.Silver, 55); + addProcessMV(tComb, Materials.Iron, 65); + tComb = getStackForType(CombType.VIBRANTALLOY); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.VibrantAlloy, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 7000}, 384, 480); + addProcessHV(tComb, Materials.Chrome, 50); + tComb = getStackForType(CombType.ENERGETICALLOY); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.VibrantAlloy, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 8000}, 384, 480); + addProcessHV(tComb, Materials.Gold, 60); + tComb = getStackForType(CombType.ELECTRICALSTEEL); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.ElectricalSteel, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 10000}, 128, 5); + addProcessLV(tComb, Materials.Silicon, 75); + addProcessLV(tComb, Materials.Coal, 75); + tComb = getStackForType(CombType.DARKSTEEL); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkSteel, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 10000}, 256, 120); + addProcessMV(tComb, Materials.Coal, 75); + tComb = getStackForType(CombType.PULSATINGIRON); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.PulsatingIron, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 8000}, 384, 480); + addProcessHV(tComb, Materials.Iron, 75); + tComb = getStackForType(CombType.STAINLESSSTEEL); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]),GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.StainlessSteel, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 5000}, 384, 480); + addProcessHV(tComb, Materials.Iron, 75); + addProcessHV(tComb, Materials.Chrome, 55); + addProcessHV(tComb, Materials.Manganese, 75); + addProcessHV(tComb, Materials.Nickel, 75); + tComb = getStackForType(CombType.ENDERIUM); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_RefractoryWax.get(1, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.EnderiumBase, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Enderium, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 3000, 5000}, 384, 480); + + + //Thaumic + tComb = getStackForType(CombType.THAUMIUMDUST); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Thaumium, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 10000}, 256, 120); + addProcessMV(tComb, Materials.Iron, 75); + tComb = getStackForType(CombType.THAUMIUMSHARD); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("MagicBees", "propolis", 1, 1), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 2), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 3), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 4), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 5), GT_ModHandler.getModItem("MagicBees", "propolis", 1, 6), new int[] {2000, 2000, 2000, 2000, 2000, 2000 }, 128, 5); + tComb = getStackForType(CombType.AMBER); + addProcessLV(tComb, Materials.Amber, 100); + tComb = getStackForType(CombType.QUICKSILVER); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_ModHandler.getModItem("Thaumcraft", "ItemNugget", 1, 5), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 1000}, 128, 5); + addProcessLV(tComb, Materials.Cinnabar, 85); + tComb = getStackForType(CombType.SALISMUNDUS); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 14), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 1000}, 256, 120); + tComb = getStackForType(CombType.TAINTED); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 11), GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 12), GT_ModHandler.getModItem("Thaumcraft", "blockTaintFibres", 1, 0), GT_ModHandler.getModItem("Thaumcraft", "blockTaintFibres", 1, 1), GT_ModHandler.getModItem("Thaumcraft", "blockTaintFibres", 1, 2), GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), new int[] {1500, 1500, 1500, 1500, 1500, 5000}, 128, 5); + tComb = getStackForType(CombType.MITHRIL); + addProcessHV(tComb, Materials.Mithril, 75); + addProcessHV(tComb, Materials.Platinum, 55); + tComb = getStackForType(CombType.ASTRALSILVER); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.AstralSilver, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Silver, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 2000, 1000}, 384, 480); + addProcessHV(tComb, Materials.Silver, 75); + tComb = getStackForType(CombType.THAUMINITE); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_ModHandler.getModItem("thaumicbases", "resource", 1, 0), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Thaumium, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 2000, 1000}, 384, 480); + tComb = getStackForType(CombType.SHADOWMETAL); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Shadow, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.ShadowSteel, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {5000, 2000, 1000}, 384, 480); + addProcessHV(tComb, Materials.ShadowSteel, 75); + tComb = getStackForType(CombType.DIVIDED); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_ModHandler.getModItem("ExtraUtilities", "unstableingot", 1, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Iron, 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Diamond, 1), GT_Values.NI, GT_Values.NI, new int[] {5000, 2000, 1000, 500}, 384, 480); + addProcessHV(tComb, Materials.Iron, 75); + addProcessHV(tComb, Materials.Diamond, 55); + tComb = getStackForType(CombType.SPARKELING); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("MagicBees", "wax", 1, 0), GT_ModHandler.getModItem("MagicBees", "miscResources", 1, 5), GT_ModHandler.getModItem("MagicBees", "miscResources", 1, 5), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.NetherStar, 1), GT_Values.NI, GT_Values.NI, new int[] {5000, 1000, 500, 1000}, 512, 1920); + addProcessEV(tComb, Materials.NetherStar, 50); + + //Gem Line tComb = getStackForType(CombType.STONE); - addSpecialCent(tComb,GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1), 70,GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Salt,1),20,GT_OreDictUnificator.get(OrePrefixes.dust,Materials.RockSalt,1),20); - addProcess(tComb, Materials.Soapstone, 100); - addProcess(tComb, Materials.Talc, 100); - addProcess(tComb, Materials.Apatite, 100); - addProcess(tComb, Materials.Phosphate, 100); - addProcess(tComb, Materials.Phosphorus, 100); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.GraniteBlack,1), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.GraniteRed,1), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Basalt,1), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Marble,1), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Redrock,1), new int[] {7000, 5000, 5000, 5000, 5000, 5000}, 128, 5); + addProcessLV(tComb, Materials.Soapstone, 95); + addProcessLV(tComb, Materials.Talc, 90); + addProcessLV(tComb, Materials.Apatite, 80); + addProcessLV(tComb, Materials.Phosphate, 75); + addProcessLV(tComb, Materials.Phosphorus, 75); tComb = getStackForType(CombType.CERTUS); - addProcess(tComb, Materials.CertusQuartz, 100); - addProcess(tComb, Materials.Quartzite, 100); - addProcess(tComb, Materials.Barite, 100); + addProcessLV(tComb, Materials.CertusQuartz, 100); + addProcessLV(tComb, Materials.Quartzite, 80); + addProcessLV(tComb, Materials.Barite, 75); + tComb = getStackForType(CombType.FLUIX); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF,ItemList.FR_Wax.get(1, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Fluix,1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {3000, 2500}, 128, 5); + addProcessLV(tComb, Materials.Redstone, 90); + addProcessLV(tComb, Materials.CertusQuartz, 90); + addProcessLV(tComb, Materials.NetherQuartz, 90); tComb = getStackForType(CombType.REDSTONE); - addProcess(tComb, Materials.Redstone, 100); - addProcess(tComb, Materials.Cinnabar, 100); + addProcessLV(tComb, Materials.Redstone, 100); + addProcessLV(tComb, Materials.Cinnabar, 80); + tComb = getStackForType(CombType.RAREEARTH); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF,ItemList.FR_Wax.get(1, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny,Materials.RareEarth,1), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] {3000, 10000}, 128, 5); tComb = getStackForType(CombType.LAPIS); - addProcess(tComb, Materials.Lapis, 100); - addProcess(tComb, Materials.Sodalite, 100); - addProcess(tComb, Materials.Lazurite, 100); - addProcess(tComb, Materials.Calcite, 100); + addProcessLV(tComb, Materials.Lapis, 100); + addProcessLV(tComb, Materials.Sodalite, 90); + addProcessLV(tComb, Materials.Lazurite, 90); + addProcessLV(tComb, Materials.Calcite, 85); tComb = getStackForType(CombType.RUBY); - addProcess(tComb, Materials.Ruby, 100); - addProcess(tComb, Materials.Redstone, 100); + addProcessLV(tComb, Materials.Ruby, 100); + addProcessLV(tComb, Materials.Redstone, 90); + tComb = getStackForType(CombType.REDGARNET); + addProcessLV(tComb, Materials.GarnetRed, 100); + addProcessLV(tComb, Materials.GarnetYellow, 75); + tComb = getStackForType(CombType.YELLOWGARNET); + addProcessLV(tComb, Materials.GarnetYellow, 100); + addProcessLV(tComb, Materials.GarnetRed, 75); tComb = getStackForType(CombType.SAPPHIRE); - addProcess(tComb, Materials.Sapphire, 100); - addProcess(tComb, Materials.GreenSapphire, 100); - addProcess(tComb, Materials.Almandine, 100); - addProcess(tComb, Materials.Pyrope, 100); + addProcessLV(tComb, Materials.Sapphire, 100); + addProcessLV(tComb, Materials.GreenSapphire, 90); + addProcessLV(tComb, Materials.Almandine, 75); + addProcessLV(tComb, Materials.Pyrope, 75); tComb = getStackForType(CombType.DIAMOND); - addProcess(tComb, Materials.Diamond, 100); - addProcess(tComb, Materials.Graphite, 100); + addProcessLV(tComb, Materials.Diamond, 100); + addProcessLV(tComb, Materials.Graphite, 75); tComb = getStackForType(CombType.OLIVINE); - addProcess(tComb, Materials.Olivine, 100); - addProcess(tComb, Materials.Bentonite, 100); - addProcess(tComb, Materials.Magnesite, 100); - addProcess(tComb, Materials.Glauconite, 100); + addProcessLV(tComb, Materials.Olivine, 100); + addProcessLV(tComb, Materials.Bentonite, 90); + addProcessLV(tComb, Materials.Magnesite, 80); + addProcessLV(tComb, Materials.Glauconite, 75); tComb = getStackForType(CombType.EMERALD); - addProcess(tComb, Materials.Emerald, 100); - addProcess(tComb, Materials.Beryllium, 100); - addProcess(tComb, Materials.Thorium, 100); - + addProcessLV(tComb, Materials.Emerald, 100); + addProcessLV(tComb, Materials.Beryllium, 85); + addProcessLV(tComb, Materials.Thorium, 75); + tComb = getStackForType(CombType.FIRESTONE); + addProcessLV(tComb, Materials.Firestone, 100); + tComb = getStackForType(CombType.PYROPE); + addProcessLV(tComb, Materials.Pyrope, 100); + addProcessLV(tComb, Materials.Aluminium, 75); + addProcessLV(tComb, Materials.Magnesium, 80); + addProcessLV(tComb, Materials.Silicon, 75); + tComb = getStackForType(CombType.GROSSULAR); + addProcessLV(tComb, Materials.Grossular, 100); + addProcessLV(tComb, Materials.Calcium, 80); + addProcessLV(tComb, Materials.Aluminium, 75); + addProcessLV(tComb, Materials.Silicon, 75); // // Metals Line tComb = getStackForType(CombType.SLAG); - addSpecialCent(tComb, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1), 50,GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GraniteBlack, 1), 20,GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GraniteRed, 1), 20); - addProcess(tComb, Materials.Salt, 100); - addProcess(tComb, Materials.RockSalt, 100); - addProcess(tComb, Materials.Lepidolite, 100); - addProcess(tComb, Materials.Spodumene, 100); - addProcess(tComb, Materials.Monazite, 100); + addSpecialCentLV(tComb, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1), 50,GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GraniteBlack, 1), 20,GT_OreDictUnificator.get(OrePrefixes.dust, Materials.GraniteRed, 1), 20); + addProcessLV(tComb, Materials.Salt, 100); + addProcessLV(tComb, Materials.RockSalt, 100); + addProcessLV(tComb, Materials.Lepidolite, 100); + addProcessLV(tComb, Materials.Spodumene, 100); + addProcessLV(tComb, Materials.Monazite, 100); tComb = getStackForType(CombType.COPPER); - addSpecialCent(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Copper, 1), 70); - addProcess(tComb, Materials.Copper, 100); - addProcess(tComb, Materials.Tetrahedrite, 100); - addProcess(tComb, Materials.Chalcopyrite, 100); - addProcess(tComb, Materials.Malachite, 100); - addProcess(tComb, Materials.Pyrite, 100); - addProcess(tComb, Materials.Stibnite, 100); + addSpecialCentLV(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Copper, 1), 70); + addProcessLV(tComb, Materials.Copper, 100); + addProcessLV(tComb, Materials.Tetrahedrite, 85); + addProcessLV(tComb, Materials.Chalcopyrite, 95); + addProcessLV(tComb, Materials.Malachite, 80); + addProcessLV(tComb, Materials.Pyrite, 75); + addProcessLV(tComb, Materials.Stibnite, 65); tComb = getStackForType(CombType.TIN); - addSpecialCent(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tin, 1), 60); - addProcess(tComb, Materials.Tin, 100); - addProcess(tComb, Materials.Cassiterite, 100); + addSpecialCentLV(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tin, 1), 60); + addProcessLV(tComb, Materials.Tin, 100); + addProcessLV(tComb, Materials.Cassiterite, 85); tComb = getStackForType(CombType.LEAD); - addSpecialCent(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lead, 1), 45); - addProcess(tComb, Materials.Lead, 100); + addSpecialCentLV(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lead, 1), 45); + addProcessLV(tComb, Materials.Lead, 100); tComb = getStackForType(CombType.IRON); - addProcess(tComb, Materials.Iron, 100); - addProcess(tComb, Materials.Magnetite, 100); - addProcess(tComb, Materials.BrownLimonite, 100); - addProcess(tComb, Materials.YellowLimonite, 100); - addProcess(tComb, Materials.VanadiumMagnetite, 100); - addProcess(tComb, Materials.BandedIron, 100); - addProcess(tComb, Materials.Pyrite, 100); + addSpecialCentLV(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Iron, 1), 30); + addProcessLV(tComb, Materials.Iron, 100); + addProcessLV(tComb, Materials.Magnetite, 90); + addProcessLV(tComb, Materials.BrownLimonite, 85); + addProcessLV(tComb, Materials.YellowLimonite, 85); + addProcessLV(tComb, Materials.VanadiumMagnetite, 80); + addProcessLV(tComb, Materials.BandedIron, 85); + addProcessLV(tComb, Materials.Pyrite, 80); if (ProcessingModSupport.aEnableGCMarsMats) - addProcess(tComb, Materials.MeteoricIron, 100); + addProcessLV(tComb, Materials.MeteoricIron, 75); tComb = getStackForType(CombType.STEEL); - addProcess(tComb, Materials.Iron, Materials.Iron, 100); - addProcess(tComb, Materials.Magnetite, Materials.Magnetite, 100); - addProcess(tComb, Materials.BrownLimonite, Materials.BrownLimonite, 100); - addProcess(tComb, Materials.YellowLimonite, Materials.YellowLimonite, 100); - addProcess(tComb, Materials.VanadiumMagnetite, Materials.VanadiumMagnetite, 100); - addProcess(tComb, Materials.BandedIron, Materials.BandedIron, 100); - addProcess(tComb, Materials.Pyrite, Materials.Pyrite, 100); + addProcessLV(tComb, Materials.Iron, Materials.Iron, 100); + addProcessLV(tComb, Materials.Magnetite, Materials.Magnetite, 90); + addProcessLV(tComb, Materials.BrownLimonite, Materials.BrownLimonite, 85); + addProcessLV(tComb, Materials.YellowLimonite, Materials.YellowLimonite, 85); + addProcessLV(tComb, Materials.VanadiumMagnetite, Materials.VanadiumMagnetite, 80); + addProcessLV(tComb, Materials.BandedIron, Materials.BandedIron, 85); + addProcessLV(tComb, Materials.Pyrite, Materials.Pyrite, 80); if (ProcessingModSupport.aEnableGCMarsMats) - addProcess(tComb, Materials.MeteoricIron, Materials.MeteoricIron, 100); - addProcess(tComb, Materials.Molybdenite, 100); - addProcess(tComb, Materials.Molybdenum, 100); + addProcessLV(tComb, Materials.MeteoricIron, Materials.MeteoricIron, 75); + addProcessLV(tComb, Materials.Molybdenite, 65); + addProcessLV(tComb, Materials.Molybdenum, 65); tComb = getStackForType(CombType.NICKEL); - addProcess(tComb, Materials.Nickel, 100); - addProcess(tComb, Materials.Garnierite, 100); - addProcess(tComb, Materials.Pentlandite, 100); - addProcess(tComb, Materials.Cobaltite, 100); - addProcess(tComb, Materials.Wulfenite, 100); - addProcess(tComb, Materials.Powellite, 100); + addProcessLV(tComb, Materials.Nickel, 100); + addProcessLV(tComb, Materials.Garnierite, 85); + addProcessLV(tComb, Materials.Pentlandite, 85); + addProcessLV(tComb, Materials.Cobaltite, 80); + addProcessLV(tComb, Materials.Wulfenite, 75); + addProcessLV(tComb, Materials.Powellite, 75); tComb = getStackForType(CombType.ZINC); - addProcess(tComb, Materials.Zinc, 100); - addProcess(tComb, Materials.Sphalerite, 100); - addProcess(tComb, Materials.Sulfur, 100); + addProcessLV(tComb, Materials.Zinc, 100); + addProcessLV(tComb, Materials.Sphalerite, 80); + addProcessLV(tComb, Materials.Sulfur, 75); tComb = getStackForType(CombType.SILVER); - addSpecialCent(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Silver, 1), 30); - addProcess(tComb, Materials.Silver, 100); - addProcess(tComb, Materials.Galena, 100); + addSpecialCentLV(tComb, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Silver, 1), 80); + addProcessLV(tComb, Materials.Silver, 100); + addProcessLV(tComb, Materials.Galena, 80); tComb = getStackForType(CombType.GOLD); - addProcess(tComb, Materials.Gold, 100); - addProcess(tComb, Materials.Magnetite, Materials.Gold, 100); + addProcessLV(tComb, Materials.Gold, 100); + addProcessLV(tComb, Materials.Magnetite, Materials.Gold, 80); + tComb = getStackForType(CombType.SULFUR); + addProcessLV(tComb, Materials.Sulfur, 100); + addProcessLV(tComb, Materials.Pyrite, 90); + addProcessLV(tComb, Materials.Sphalerite, 80); + tComb = getStackForType(CombType.GALLIUM); + addProcessLV(tComb, Materials.Gallium, 80); + addProcessLV(tComb, Materials.Niobium, 75); + tComb = getStackForType(CombType.ARSENIC); + addProcessLV(tComb, Materials.Arsenic, 80); + addProcessLV(tComb, Materials.Bismuth, 70); + addProcessLV(tComb, Materials.Antimony, 70); - // Rare Metals Line + // Rare Metals Line + tComb = getStackForType(CombType.BAUXITE); + addProcessLV(tComb, Materials.Bauxite, 75); + addProcessLV(tComb,Materials.Aluminium,55); tComb = getStackForType(CombType.ALUMINIUM); - addProcess(tComb,Materials.Aluminium,60); - addProcess(tComb,Materials.Bauxite,100); + addProcessLV(tComb,Materials.Aluminium,60); + addProcessLV(tComb,Materials.Bauxite,80); tComb = getStackForType(CombType.MANGANESE); - addProcess(tComb,Materials.Manganese,30); - addProcess(tComb,Materials.Grossular,100); - addProcess(tComb,Materials.Spessartine,100); - addProcess(tComb,Materials.Pyrolusite,100); - addProcess(tComb,Materials.Tantalite,100); + addProcessLV(tComb,Materials.Manganese,30); + addProcessLV(tComb,Materials.Grossular,100); + addProcessLV(tComb,Materials.Spessartine,100); + addProcessLV(tComb,Materials.Pyrolusite,100); + addProcessLV(tComb,Materials.Tantalite,100); tComb = getStackForType(CombType.TITANIUM); - addProcess(tComb,Materials.Titanium,100); - addProcess(tComb,Materials.Ilmenite,100); - addProcess(tComb,Materials.Bauxite,100); + addProcessEV(tComb,Materials.Titanium,90); + addProcessEV(tComb,Materials.Ilmenite,80); + addProcessEV(tComb,Materials.Bauxite,75); + tComb = getStackForType(CombType.MAGNESIUM); + addProcessLV(tComb,Materials.Magnesium,100); + addProcessLV(tComb,Materials.Magnesite,80); tComb = getStackForType(CombType.CHROME); - addProcess(tComb,Materials.Chrome,50); - addProcess(tComb,Materials.Ruby,100); - addProcess(tComb,Materials.Chromite,50); - addProcess(tComb,Materials.Redstone,100); - addProcess(tComb, Materials.Neodymium, 100); - addProcess(tComb, Materials.Bastnasite, 100); + addProcessHV(tComb,Materials.Chrome,50); + addProcessHV(tComb,Materials.Ruby,100); + addProcessHV(tComb,Materials.Chromite,50); + addProcessHV(tComb,Materials.Redstone,100); + addProcessHV(tComb, Materials.Neodymium, 80); + addProcessHV(tComb, Materials.Bastnasite, 80); tComb = getStackForType(CombType.TUNGSTEN); - addProcess(tComb,Materials.Tungstate,100); - addProcess(tComb,Materials.Scheelite,100); - addProcess(tComb,Materials.Lithium,100); + addProcessIV(tComb,Materials.Tungstate,80); + addProcessIV(tComb,Materials.Scheelite,75); + addProcessIV(tComb,Materials.Lithium,75); tComb = getStackForType(CombType.PLATINUM); - addProcess(tComb,Materials.Platinum,40); - addProcess(tComb,Materials.Cooperite,40); - addProcess(tComb,Materials.Palladium,40); + addProcessHV(tComb,Materials.Platinum,40); + addProcessHV(tComb,Materials.Cooperite,40); + addProcessHV(tComb,Materials.Palladium,40); + tComb = getStackForType(CombType.MOLYBDENUM); + addProcessLV(tComb,Materials.Molybdenum,100); + addProcessLV(tComb,Materials.Molybdenite,90); + addProcessLV(tComb,Materials.Powellite,80); + addProcessLV(tComb,Materials.Wulfenite,75); + addProcessIV(tComb,Materials.Osmium,15); tComb = getStackForType(CombType.IRIDIUM); - addProcess(tComb,Materials.Iridium,20); - addProcess(tComb,Materials.Osmium,20); + addProcessIV(tComb,Materials.Iridium,20); + addProcessIV(tComb,Materials.Osmium,15); + tComb = getStackForType(CombType.OSMIUM); + addProcessIV(tComb,Materials.Osmium,25); + addProcessIV(tComb,Materials.Iridium,15); + tComb = getStackForType(CombType.LITHIUM); + addProcessMV(tComb,Materials.Lithium,85); + addProcessMV(tComb,Materials.Aluminium,75); + tComb = getStackForType(CombType.SALT); + addProcessMV(tComb,Materials.Salt,100); + addProcessMV(tComb,Materials.Sodium,75); + addProcessMV(tComb,Materials.RockSalt,75); + addProcessMV(tComb,Materials.Saltpeter,65); + addSpecialCentMV(tComb, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 1), 100, GT_ModHandler.getModItem("dreamcraft", "item.EdibleSalt", 1L, 0), 50); + tComb = getStackForType(CombType.ELECTROTINE); + addProcessHV(tComb,Materials.Electrotine,80); + addProcessHV(tComb,Materials.Electrum,75); + addProcessHV(tComb,Materials.Redstone,65); // Radioactive Line + tComb = getStackForType(CombType.ALMANDINE); + addProcessLV(tComb,Materials.Almandine,90); + addProcessLV(tComb,Materials.Pyrope,80); + addProcessLV(tComb,Materials.Sapphire,75); + addProcessLV(tComb,Materials.GreenSapphire,75); tComb = getStackForType(CombType.URANIUM); - addProcess(tComb,Materials.Uranium,50); - addProcess(tComb,Materials.Pitchblende,50); - addProcess(tComb,Materials.Uraninite,50); - addProcess(tComb,Materials.Uranium235,50); + addProcessEV(tComb,Materials.Uranium,50); + addProcessEV(tComb,Materials.Pitchblende,65); + addProcessEV(tComb,Materials.Uraninite,75); + addProcessEV(tComb,Materials.Uranium235,50); tComb = getStackForType(CombType.PLUTONIUM); - addProcess(tComb,Materials.Plutonium,10); - addProcess(tComb,Materials.Uranium235,Materials.Plutonium,5); + addProcessEV(tComb,Materials.Plutonium,10); + addProcessEV(tComb,Materials.Uranium235, Materials.Plutonium,5); tComb = getStackForType(CombType.NAQUADAH); - addProcess(tComb,Materials.Naquadah,10); - addProcess(tComb,Materials.NaquadahEnriched,10); - addProcess(tComb,Materials.Naquadria,10); + addProcessIV(tComb,Materials.Naquadah,10); + addProcessIV(tComb,Materials.NaquadahEnriched,5); + addProcessIV(tComb,Materials.Naquadria,5); + tComb = getStackForType(CombType.NAQUADRIA); + addProcessIV(tComb,Materials.Naquadah,15); + addProcessLUV(tComb,Materials.NaquadahEnriched,10); + addProcessLUV(tComb,Materials.Naquadria,10); + tComb = getStackForType(CombType.THORIUM); + addProcessEV(tComb,Materials.Thorium,75); + addProcessEV(tComb,Materials.Uranium,75); + addProcessEV(tComb,Materials.Coal,95); + tComb = getStackForType(CombType.LUTETIUM); + addProcessIV(tComb,Materials.Lutetium,35); + addProcessIV(tComb,Materials.Thorium,55); + tComb = getStackForType(CombType.AMERICUM); + addProcessLUV(tComb,Materials.Americium,25); + addProcessLUV(tComb,Materials.Lutetium,45); + tComb = getStackForType(CombType.NEUTRONIUM); + addProcessZPM(tComb,Materials.Neutronium,15); + addProcessZPM(tComb,Materials.Americium,35); + + // Twilight + tComb = getStackForType(CombType.NAGA); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1, new Object[0]), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 4), GT_ModHandler.getModItem("dreamcraft", "item.NagaScaleChip", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.NagaScaleFragment", 1L, 0), GT_Values.NI, GT_Values.NI, new int[]{3000, 500, 3300, 800, 0, 0}, 256, 120); + tComb = getStackForType(CombType.LICH); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1, new Object[0]), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 5), GT_ModHandler.getModItem("dreamcraft", "item.LichBoneChip", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.LichBoneFragment", 1L, 0), GT_Values.NI, GT_Values.NI, new int[]{3000, 500, 3300, 800, 0, 0}, 384, 480); + tComb = getStackForType(CombType.HYDRA); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1, new Object[0]), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 1), GT_ModHandler.getModItem("dreamcraft", "item.FieryBloodDrop", 1L, 0), GT_Bees.drop.getStackForType(DropType.HYDRA), GT_Values.NI, GT_Values.NI, new int[]{3000, 500, 3300, 1000, 0, 0}, 384, 480); + tComb = getStackForType(CombType.URGHAST); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1, new Object[0]), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 2), GT_ModHandler.getModItem("dreamcraft", "item..CarminiteChip", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.CarminiteFragment",1L, 0), GT_Values.NI, GT_Values.NI, new int[]{3000, 500, 3300, 800, 0, 0}, 512, 1920); + tComb = getStackForType(CombType.SNOWQUEEN); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1, new Object[0]), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 3), GT_ModHandler.getModItem("dreamcraft", "item.SnowQueenBloodDrop", 1L, 0), GT_Bees.drop.getStackForType(DropType.SNOW_QUEEN), GT_Values.NI, GT_Values.NI, new int[]{3000, 500, 3300, 1000, 0, 0}, 512, 1920); + + //Space Line + tComb = getStackForType(CombType.SPACE); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), ItemList.FR_RefractoryWax.get(1L), GT_Bees.drop.getStackForType(DropType.OXYGEN), GT_ModHandler.getModItem("dreamcraft", "item.CoinSpace", 1L, 0), GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 1500, 500, 0, 0}, 384, 480); + tComb = getStackForType(CombType.METEORICIRON); + addProcessHV(tComb,Materials.MeteoricIron,85); + addProcessHV(tComb,Materials.Iron,100); + tComb = getStackForType(CombType.DESH); + addProcessEV(tComb,Materials.Desh,75); + addProcessEV(tComb,Materials.Titanium,50); + tComb = getStackForType(CombType.LEDOX); + addProcessEV(tComb,Materials.Ledox,65); + addProcessEV(tComb,Materials.CallistoIce,55); + addProcessEV(tComb,Materials.Lead,85); + tComb = getStackForType(CombType.CALLISTOICE); + addProcessIV(tComb,Materials.CallistoIce,65); + addProcessIV(tComb,Materials.Ledox,75); + addProcessIV(tComb,Materials.Lead,100); + tComb = getStackForType(CombType.MYTRYL); + addProcessIV(tComb,Materials.Mytryl,55); + addProcessIV(tComb,Materials.Mithril,50); + tComb = getStackForType(CombType.QUANTIUM); + addProcessIV(tComb,Materials.Quantium,50); + addProcessIV(tComb,Materials.Osmium,60); + tComb = getStackForType(CombType.ORIHARUKON); + addProcessIV(tComb,Materials.Oriharukon,50); + addProcessIV(tComb,Materials.Lead,75); + tComb = getStackForType(CombType.MYSTERIOUSCRYSTAL); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.MysteriousCrystal, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Emerald, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 1000, 1500, 0, 0, 0}, 512, 30720); + addProcessLUV(tComb,Materials.Emerald,50); + tComb = getStackForType(CombType.BLACKPLUTONIUM); + addProcessLUV(tComb,Materials.BlackPlutonium,25); + addProcessLUV(tComb,Materials.Plutonium,50); + tComb = getStackForType(CombType.TRINIUM); + addProcessZPM(tComb,Materials.Trinium,35); + addProcessZPM(tComb,Materials.Iridium,45); + + //Planet Line + tComb = getStackForType(CombType.MOON); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.MoonStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 0, 0, 0, 0}, 300, 120); + tComb = getStackForType(CombType.MARS); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.MarsStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 0, 0, 0, 0}, 300, 480); + tComb = getStackForType(CombType.JUPITER); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_ModHandler.getModItem("dreamcraft", "item.IoStoneDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.EuropaIceDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.EuropaStoneDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.GanymedStoneDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.CallistoStoneDust", 1L, 0), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.CallistoIce, 1L), new int[]{3000, 3000, 3000, 3000, 3000, 500}, 300, 480); + tComb = getStackForType(CombType.MERCURY); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.MercuryCoreDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.MercuryStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 3000, 0, 0, 0}, 300, 1920); + tComb = getStackForType(CombType.VENUS); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.VenusStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 0, 0, 0, 0}, 300, 1920); + tComb = getStackForType(CombType.SATURN); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.EnceladusStoneDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.TitanStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 3000, 0, 0, 0}, 300, 7680); + tComb = getStackForType(CombType.URANUS); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.MirandaStoneDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.OberonStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 3000, 0, 0, 0}, 300, 7680); + tComb = getStackForType(CombType.NEPTUN); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.ProteusStoneDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.TritonStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 3000, 0, 0, 0}, 300, 7680); + tComb = getStackForType(CombType.PLUTO); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.PlutoStoneDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.PlutoIceDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 3000, 0, 0, 0}, 300, 30720); + tComb = getStackForType(CombType.HAUMEA); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.HaumeaStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 0, 0, 0, 0}, 300, 30720); + tComb = getStackForType(CombType.MAKEMAKE); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.MakeMakeStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 0, 0, 0, 0}, 300, 30720); + tComb = getStackForType(CombType.CENTAURI); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.CentauriASurfaceDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.CentauriAStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 3000, 0, 0, 0}, 300, 122880); + tComb = getStackForType(CombType.TCETI); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.TCetiEStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 0, 0, 0, 0}, 300, 122880); + tComb = getStackForType(CombType.BARNARDA); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.BarnardaEStoneDust", 1L, 0), GT_ModHandler.getModItem("dreamcraft", "item.BarnardaFStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 3000, 0, 0, 0}, 300, 122880); + tComb = getStackForType(CombType.VEGA); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_ModHandler.getModItem("dreamcraft", "item.VegaBStoneDust", 1L, 0), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 3000, 0, 0, 0, 0}, 300, 122880); + //Infinity Line + tComb = getStackForType(CombType.COSMICNEUTRONIUM); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.CosmicNeutronium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Neutronium, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 50, 100, 0, 0, 0}, 12000, 500000); + tComb = getStackForType(CombType.INFINITYCATALYST); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.InfinityCatalyst, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Neutronium, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 5, 100, 0, 0, 0}, 24000, 2000000); + tComb = getStackForType(CombType.INFINITY); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, ItemList.FR_Wax.get(1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Infinity, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.InfinityCatalyst, 1L), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{5000, 1, 5, 0, 0, 0}, 48000, 8000000); + } - public void addSpecialCent(ItemStack tComb, ItemStack aOutput, int chance){ - GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput, ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 128, 5); + public void addSpecialCentLV(ItemStack tComb, ItemStack aOutput, int chance){ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput, ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 5000 }, 128, 5); RecipeManagers.centrifugeManager.addRecipe(40, tComb, ImmutableMap.of(aOutput, chance * 0.01f, ItemList.FR_Wax.get(1, new Object[0]), 0.3f)); } - public void addSpecialCent(ItemStack tComb, ItemStack aOutput, int chance, ItemStack aOutput2, int chance2){ - GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput, ItemList.FR_Wax.get(1, new Object[0]), aOutput2, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000, chance2 * 100 }, 128, 5); + public void addSpecialCentLV(ItemStack tComb, ItemStack aOutput, int chance, ItemStack aOutput2, int chance2){ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput, ItemList.FR_Wax.get(1, new Object[0]), aOutput2, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 5000, chance2 * 100 }, 128, 5); RecipeManagers.centrifugeManager.addRecipe(40, tComb, ImmutableMap.of(aOutput, chance * 0.01f, ItemList.FR_Wax.get(1, new Object[0]), 0.3f,aOutput2,chance2 * 0.01f)); } - public void addSpecialCent(ItemStack tComb, ItemStack aOutput, int chance, ItemStack aOutput2, int chance2, ItemStack aOutput3, int chance3){ - GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput, ItemList.FR_Wax.get(1, new Object[0]), aOutput2, aOutput3, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000, chance2 * 100, chance3*100 }, 128, 5); + public void addSpecialCentLV(ItemStack tComb, ItemStack aOutput, int chance, ItemStack aOutput2, int chance2, ItemStack aOutput3, int chance3){ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput, ItemList.FR_Wax.get(1, new Object[0]), aOutput2, aOutput3, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 5000, chance2 * 100, chance3*100 }, 128, 5); RecipeManagers.centrifugeManager.addRecipe(40, tComb, ImmutableMap.of(aOutput, chance * 0.01f, ItemList.FR_Wax.get(1, new Object[0]), 0.3f,aOutput2,chance2 * 0.01f,aOutput3,chance3*0.01f)); } - - public void addProcess(ItemStack tComb, Materials aMaterial, int chance){ + public void addSpecialCentMV(ItemStack tComb, ItemStack aOutput, int chance){ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput,GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 7000 }, 160, 120); + } + + public void addSpecialCentMV(ItemStack tComb, ItemStack aOutput, int chance, ItemStack aOutput2, int chance2){ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput, aOutput2, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, chance2 * 100}, 160, 120); + } + + public void addSpecialCentHV(ItemStack tComb, ItemStack aOutput, int chance){ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput,GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 7000 }, 196, 480); + } + + public void addSpecialCentHV(ItemStack tComb, ItemStack aOutput, int chance, ItemStack aOutput2, int chance2){ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput, aOutput2, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, chance2 * 100}, 196, 480); + } + + public void addSpecialCentHV(ItemStack tComb, ItemStack aOutput, int chance, ItemStack aOutput2, int chance2, ItemStack aOutput3, int chance3){ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, aOutput, aOutput2, aOutput3, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, chance2 * 100, chance3 * 100 }, 196, 480); + } + + public void addProcessLV(ItemStack tComb, Materials aMaterial, int chance){ if(GT_Mod.gregtechproxy.mNerfedCombs){ GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.Water.getFluid(1000), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 96, 24); - GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(16, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 1), 10000, (int) (aMaterial.getMass() * 128), 384); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 10000, (int) (aMaterial.getMass() * 128), 384); }else{ GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 128, 5); RecipeManagers.centrifugeManager.addRecipe(40, tComb, ImmutableMap.of(GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1), chance * 0.01f, ItemList.FR_Wax.get(1, new Object[0]), 0.3f)); } } - - public void addProcess(ItemStack tComb, Materials aInMaterial, Materials aOutMaterial, int chance){ + public void addProcessMV(ItemStack tComb, Materials aMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), GT_ModHandler.getDistilledWater(1000L), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 128, 96); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 10000, (int) (aMaterial.getMass() * 128), 768); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 160, 120); + } + } + public void addProcessHV(ItemStack tComb, Materials aMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.Mercury.getFluid(144L), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 160, 384); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 10000, (int) (aMaterial.getMass() * 128), 1536); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 192, 480); + } + } + public void addProcessEV(ItemStack tComb, Materials aMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.GrowthMediumRaw.getFluid(144L), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), GT_Values.NI,192, 1536, true); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+18)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 10000, (int) (aMaterial.getMass() * 128), 3072, true); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 224, 1920); + } + } + public void addProcessIV(ItemStack tComb, Materials aMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.GrowthMediumRaw.getFluid(288L), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), GT_Values.NI,224, 3072, true); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+27)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 10000, (int) (aMaterial.getMass() * 128), 6144, true); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 256, 7680); + } + } + public void addProcessLUV(ItemStack tComb, Materials aMaterial, int chance){ if(GT_Mod.gregtechproxy.mNerfedCombs){ - GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aInMaterial, 1), Materials.Water.getFluid(1000), aInMaterial.mOreByProducts.isEmpty() ? null : aInMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 96, 24); - GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(16, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aOutMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 1), 10000, (int) (aOutMaterial.getMass() * 128), 384); + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), FluidRegistry.getFluidStack("mutagen", 144), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), GT_Values.NI,256, 12288, true); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+36)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 10000, (int) (aMaterial.getMass() * 128), 24576, true); }else{ - GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aOutMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 128, 5); + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 288, 30720); + } + } + public void addProcessZPM(ItemStack tComb, Materials aMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), FluidRegistry.getFluidStack("mutagen", 288), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), GT_Values.NI,288, 500000, true); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+45)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 10000, (int) (aMaterial.getMass() * 128), 100000, true); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 320, 122880); + } + } + + public void addProcessLV(ItemStack tComb, Materials aInMaterial, Materials aOutMaterial, int chance) { + if (GT_Mod.gregtechproxy.mNerfedCombs) { + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aInMaterial, 1), Materials.Water.getFluid(1000L), aInMaterial.mOreByProducts.isEmpty() ? null : aInMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 96, 24); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aOutMaterial.getMass() +9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 10000, (int) (aOutMaterial.getMass() * 128), 384); + } else { + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aOutMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[]{chance * 100, 3000}, 128, 5); RecipeManagers.centrifugeManager.addRecipe(40, tComb, ImmutableMap.of(GT_OreDictUnificator.get(OrePrefixes.dustTiny, aOutMaterial, 1), chance * 0.01f, ItemList.FR_Wax.get(1, new Object[0]), 0.3f)); } } - + public void addProcessMV(ItemStack tComb, Materials aInMaterial, Materials aOutMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aInMaterial, 1), GT_ModHandler.getDistilledWater(1000L), aInMaterial.mOreByProducts.isEmpty() ? null : aInMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 128, 96); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aOutMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 10000, (int) (aOutMaterial.getMass() * 128), 768); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aOutMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 160, 120); + } + + } + public void addProcessHV(ItemStack tComb, Materials aInMaterial, Materials aOutMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aInMaterial, 1), Materials.Mercury.getFluid(144L), aInMaterial.mOreByProducts.isEmpty() ? null : aInMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 160, 384); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aOutMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 10000, (int) (aOutMaterial.getMass() * 128), 1536); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aOutMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 192, 480); + } + + } + public void addProcessEV(ItemStack tComb, Materials aInMaterial, Materials aOutMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aInMaterial, 1), Materials.GrowthMediumRaw.getFluid(144L), aInMaterial.mOreByProducts.isEmpty() ? null : aInMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 192, 1536); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aOutMaterial.getMass()+18)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 10000, (int) (aOutMaterial.getMass() * 128), 3072); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aOutMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 224, 1920, true); + } + + } + public void addProcessIV(ItemStack tComb, Materials aInMaterial, Materials aOutMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aInMaterial, 1), Materials.GrowthMediumRaw.getFluid(288L), aInMaterial.mOreByProducts.isEmpty() ? null : aInMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 224, 3072); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aOutMaterial.getMass()+27)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 10000, (int) (aOutMaterial.getMass() * 128), 6144); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aOutMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 256, 7680, true); + } + + } + public void addProcessLUV(ItemStack tComb, Materials aInMaterial, Materials aOutMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aInMaterial, 1), FluidRegistry.getFluidStack("mutagen", 144), aInMaterial.mOreByProducts.isEmpty() ? null : aInMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), GT_Values.NI, 256, 12288, true); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aOutMaterial.getMass()+36)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 10000, (int) (aOutMaterial.getMass() * 128), 24576, true); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aOutMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 288, 30720, true); + } + + } + public void addProcessZPM(ItemStack tComb, Materials aInMaterial, Materials aOutMaterial, int chance){ + if(GT_Mod.gregtechproxy.mNerfedCombs){ + GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tComb), GT_OreDictUnificator.get(OrePrefixes.crushed, aInMaterial, 1), FluidRegistry.getFluidStack("mutagen", 288), aInMaterial.mOreByProducts.isEmpty() ? null : aInMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), GT_Values.NI, 288, 500000, true); + GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(9, tComb), Materials.UUMatter.getFluid(Math.max(1, ((aOutMaterial.getMass()+45)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aOutMaterial, 4), 10000, (int) (aOutMaterial.getMass() * 128), 100000, true); + }else{ + GT_Values.RA.addCentrifugeRecipe(tComb, GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, aOutMaterial, 1), ItemList.FR_Wax.get(1, new Object[0]), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { chance * 100, 3000 }, 320, 122880, true); + } + + } } diff --git a/src/main/java/gregtech/common/items/ItemDrop.java b/src/main/java/gregtech/common/items/ItemDrop.java new file mode 100644 index 0000000000..f461d8b68e --- /dev/null +++ b/src/main/java/gregtech/common/items/ItemDrop.java @@ -0,0 +1,127 @@ +package gregtech.common.items; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import forestry.api.recipes.RecipeManagers; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_ModHandler; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + +import java.util.List; + +import static gregtech.api.enums.GT_Values.MOD_ID; + +public class ItemDrop extends Item { + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public ItemDrop() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gt.drop"); + GameRegistry.registerItem(this, "gt.drop", MOD_ID); + } + + public ItemStack getStackForType(DropType type) { + return new ItemStack(this, 1, type.ordinal()); + } + + public ItemStack getStackForType(DropType type, int count) { + return new ItemStack(this, count, type.ordinal()); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (DropType type : DropType.values()) { + if (type.showInList) { + list.add(this.getStackForType(type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int meta) { + return 2; + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:honeyDrop.0"); + this.secondIcon = par1IconRegister.registerIcon("forestry:honeyDrop.1"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return (pass == 0) ? itemIcon : secondIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int meta = Math.max(0, Math.min(DropType.values().length - 1, stack.getItemDamage())); + int colour = DropType.values()[meta].getColours()[0]; + + if (pass >= 1) { + colour = DropType.values()[meta].getColours()[1]; + } + + return colour; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return DropType.values()[stack.getItemDamage()].getName(); + } + public void initDropsRecipes() { + ItemStack tDrop; + + tDrop = getStackForType(DropType.OIL); + addProcessLV(tDrop, Materials.OilHeavy.getFluid(100L), GT_ModHandler.getModItem("Forestry", "propolis", 1L, 0), 3000, 8); + RecipeManagers.squeezerManager.addRecipe(40, new ItemStack[]{tDrop}, Materials.OilHeavy.getFluid(100L), GT_ModHandler.getModItem("Forestry", "propolis", 1L, 0), 30); + tDrop = getStackForType(DropType.COOLANT); + addProcessLV(tDrop, new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 0), 3000, 8); + RecipeManagers.squeezerManager.addRecipe(40, new ItemStack[]{tDrop}, new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 0), 30); + tDrop = getStackForType(DropType.HOT_COOLANT); + addProcessLV(tDrop, new FluidStack(FluidRegistry.getFluid("ic2hotcoolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 2), 3000, 8); + RecipeManagers.squeezerManager.addRecipe(40, new ItemStack[]{tDrop}, new FluidStack(FluidRegistry.getFluid("ic2hotcoolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 2), 30); + tDrop = getStackForType(DropType.SNOW_QUEEN); + addProcessMV(tDrop, Materials.FierySteel.getFluid(200L), GT_ModHandler.getModItem("dreamcraft", "SnowQueenBloodDrop", 1L, 0), 1500, 48); + tDrop = getStackForType(DropType.LAPIS); + addProcessLV(tDrop,new FluidStack(FluidRegistry.getFluid("ic2coolant"), 200), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 3), 5000, 1200,2); + RecipeManagers.squeezerManager.addRecipe(400, new ItemStack[]{tDrop}, new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 3), 30); + tDrop = getStackForType(DropType.HYDRA); + addProcessMV(tDrop, Materials.FierySteel.getFluid(50L), GT_ModHandler.getModItem("MagicBees", "propolis", 1L, 2), 3000, 8); + tDrop = getStackForType(DropType.OXYGEN); + addProcessLV(tDrop, new FluidStack(FluidRegistry.getFluid("liquidoxygen"), 100), GT_ModHandler.getModItem("ExtraBees", "propolis", 1L, 2), 250, 1200,8); + RecipeManagers.squeezerManager.addRecipe(400, new ItemStack[]{tDrop}, new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100), GT_ModHandler.getModItem("ExtraBees", "propolis", 1L, 2), 30); + + } + + public void addProcessLV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aEUt) { + GT_Values.RA.addFluidExtractionRecipe(tDrop, aOutput2, aOutput, aChance, 32, aEUt); + } + public void addProcessLV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aDuration, int aEUt) { + GT_Values.RA.addFluidExtractionRecipe(tDrop, aOutput2, aOutput, aChance, aDuration, aEUt); + } + public void addProcessMV(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aEUt) { + GT_Values.RA.addFluidExtractionRecipe(tDrop, aOutput2, aOutput, aChance, 64, aEUt); + } + +}
\ No newline at end of file diff --git a/src/main/java/gregtech/common/items/ItemPollen.java b/src/main/java/gregtech/common/items/ItemPollen.java new file mode 100644 index 0000000000..c3da0e7c1d --- /dev/null +++ b/src/main/java/gregtech/common/items/ItemPollen.java @@ -0,0 +1,88 @@ +package gregtech.common.items; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.List; + +import static gregtech.api.enums.GT_Values.MOD_ID; + +public class ItemPollen extends Item { + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public ItemPollen() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gt.pollen"); + GameRegistry.registerItem(this, "gt.pollen", MOD_ID); + } + + public ItemStack getStackForType(PollenType type) { + return new ItemStack(this, 1, type.ordinal()); + } + + public ItemStack getStackForType(PollenType type, int count) { + return new ItemStack(this, count, type.ordinal()); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (PollenType type : PollenType.values()) { + if (type.showInList) { + list.add(this.getStackForType(type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int meta) { + return 2; + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:pollen.0"); + this.secondIcon = par1IconRegister.registerIcon("forestry:pollen.1"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return (pass == 0) ? itemIcon : secondIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int meta = Math.max(0, Math.min(PollenType.values().length - 1, stack.getItemDamage())); + int colour = PollenType.values()[meta].getColours()[0]; + + if (pass >= 1) { + colour = PollenType.values()[meta].getColours()[1]; + } + + return colour; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return PollenType.values()[stack.getItemDamage()].getName(); + } + + +} diff --git a/src/main/java/gregtech/common/items/ItemPropolis.java b/src/main/java/gregtech/common/items/ItemPropolis.java new file mode 100644 index 0000000000..75c38ae016 --- /dev/null +++ b/src/main/java/gregtech/common/items/ItemPropolis.java @@ -0,0 +1,82 @@ +package gregtech.common.items; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.Tabs; +import gregtech.api.enums.GT_Values; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.FluidStack; + +import java.util.List; + +import static gregtech.api.enums.GT_Values.MOD_ID; + +public class ItemPropolis extends Item { + @SideOnly(Side.CLIENT) + private IIcon secondIcon; + + public ItemPropolis() { + super(); + this.setCreativeTab(Tabs.tabApiculture); + this.setHasSubtypes(true); + this.setUnlocalizedName("gt.propolis"); + GameRegistry.registerItem(this, "gt.propolis", MOD_ID); + } + + public ItemStack getStackForType(PropolisType type) { + return new ItemStack(this, 1, type.ordinal()); + } + + public ItemStack getStackForType(PropolisType type, int count) { + return new ItemStack(this, count, type.ordinal()); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for (PropolisType type : PropolisType.values()) { + if (type.showInList) { + list.add(this.getStackForType(type)); + } + } + } + + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("forestry:propolis.0"); + } + + @Override + public IIcon getIcon(ItemStack stack, int pass) { + return itemIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + int meta = Math.max(0, Math.min(PropolisType.values().length - 1, stack.getItemDamage())); + return PropolisType.values()[meta].getColours(); + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + return PropolisType.values()[stack.getItemDamage()].getName(); + } + public void initPropolisRecipes() { + ItemStack tPropolis; + + tPropolis = getStackForType(PropolisType.Zoko); + //addRecipe(tDrop, aOutput, aOutput2, aChance, aEUt); + } + + public void addRecipe(ItemStack tDrop, FluidStack aOutput, ItemStack aOutput2, int aChance, int aEUt) { + GT_Values.RA.addFluidExtractionRecipe(tDrop, aOutput2, aOutput, aChance, 40, aEUt); + } + +} diff --git a/src/main/java/gregtech/common/items/PollenType.java b/src/main/java/gregtech/common/items/PollenType.java new file mode 100644 index 0000000000..5bfb38e599 --- /dev/null +++ b/src/main/java/gregtech/common/items/PollenType.java @@ -0,0 +1,34 @@ +package gregtech.common.items; + +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_LanguageManager; + +public enum PollenType { + + MATRIX("matrix",true); + + private static int[][] colours = new int[][]{ + {0x19191B, 0x303032}, + }; + public boolean showInList; + public Materials material; + public int chance; + private String name; + private PollenType(String pName, boolean show) { + this.name = pName; + this.showInList = show; + } + + public void setHidden() { + this.showInList = false; + } + + public String getName() { +// return "gt.comb."+this.name; + return GT_LanguageManager.addStringLocalization("pollen." + this.name, this.name.substring(0, 1).toUpperCase() + this.name.substring(1) + " Pollen"); + } + + public int[] getColours() { + return colours[this.ordinal()]; + } +}
\ No newline at end of file diff --git a/src/main/java/gregtech/common/items/PropolisType.java b/src/main/java/gregtech/common/items/PropolisType.java new file mode 100644 index 0000000000..e9519c5c94 --- /dev/null +++ b/src/main/java/gregtech/common/items/PropolisType.java @@ -0,0 +1,35 @@ +package gregtech.common.items; + +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_LanguageManager; + +public enum PropolisType { + + Zoko("zoko",true); + + private static int[] colours = new int[]{ + 0x3A9898 + }; + + public boolean showInList; + public Materials material; + public int chance; + private String name; + private PropolisType(String pName, boolean show) { + this.name = pName; + this.showInList = show; + } + + public void setHidden() { + this.showInList = false; + } + + public String getName() { +// return "gt.comb."+this.name; + return GT_LanguageManager.addStringLocalization("propolis." + this.name, this.name.substring(0, 1).toUpperCase() + this.name.substring(1) + " Propolis"); + } + + public int getColours() { + return colours[this.ordinal()]; + } +}
\ No newline at end of file |