aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-03-12 05:08:33 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-03-12 05:08:33 +0000
commitdbe1827984f9dd1e87d500882c541181bdaeb542 (patch)
tree10f60a2559121185f97c73b4b37152424068c5a8
parent6093c5e76fad9cb1ec8a44e7a638c0350f11e952 (diff)
downloadGT5-Unofficial-dbe1827984f9dd1e87d500882c541181bdaeb542.tar.gz
GT5-Unofficial-dbe1827984f9dd1e87d500882c541181bdaeb542.tar.bz2
GT5-Unofficial-dbe1827984f9dd1e87d500882c541181bdaeb542.zip
+ Added framework for additional Oil chemistry in future updates.
+ Added additional processes for obtaining Kerosene. % Mild rebalance to GT++ Rocket Fuels. % Swapped Coal by-products (Coal Tar, Coal Tar Oil and Sulfuric Coal Tar Oil) from Gas Turbine fuel to Semifluid fuel. % Allowed ItemPackages to register themselves to the onLoadComplete() event. $ Fixed GT++ Rocket Fuels being unusable in Rocket Engines. $ Fixed Tooltip on GC Fuel loader when the GC-ASM is not active.
-rw-r--r--src/Java/gtPlusPlus/api/objects/minecraft/ItemPackage.java19
-rw-r--r--src/Java/gtPlusPlus/core/common/CommonProxy.java1
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java26
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java28
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/OilChem.java210
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java272
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java18
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java9
-rw-r--r--src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java37
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java101
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java8
11 files changed, 661 insertions, 68 deletions
diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/ItemPackage.java b/src/Java/gtPlusPlus/api/objects/minecraft/ItemPackage.java
index e725d250cc..fa85f23cf3 100644
--- a/src/Java/gtPlusPlus/api/objects/minecraft/ItemPackage.java
+++ b/src/Java/gtPlusPlus/api/objects/minecraft/ItemPackage.java
@@ -1,13 +1,21 @@
package gtPlusPlus.api.objects.minecraft;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.core.handler.COMPAT_HANDLER;
public abstract class ItemPackage implements RunnableWithInfo<String> {
public ItemPackage() {
+ this(false);
+ }
+
+ public ItemPackage(boolean hasExtraLateRun) {
// Register for late run
- COMPAT_HANDLER.mObjectsToRunInPostInit.put(this);
+ COMPAT_HANDLER.mObjectsToRunInPostInit.put(this);
+ if (hasExtraLateRun) {
+ COMPAT_HANDLER.mObjectsToRunInOnLoadComplete.put(this);
+ }
init();
}
@@ -37,5 +45,14 @@ public abstract class ItemPackage implements RunnableWithInfo<String> {
public abstract void fluids();
+ /**
+ * Override this to handle GT Recipe map manipulation after they're Baked.
+ * @param event - the {@link FMLLoadCompleteEvent}.
+ * @return - Did we do anything?
+ */
+ public boolean onLoadComplete(FMLLoadCompleteEvent event) {
+ return false;
+ };
+
}
diff --git a/src/Java/gtPlusPlus/core/common/CommonProxy.java b/src/Java/gtPlusPlus/core/common/CommonProxy.java
index 7d4644f275..301ca992a4 100644
--- a/src/Java/gtPlusPlus/core/common/CommonProxy.java
+++ b/src/Java/gtPlusPlus/core/common/CommonProxy.java
@@ -183,6 +183,7 @@ public class CommonProxy {
public void onLoadComplete(FMLLoadCompleteEvent event) {
COMPAT_IntermodStaging.onLoadComplete(event);
+ COMPAT_HANDLER.onLoadComplete(event);
}
public void registerNetworkStuff() {
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
index a5b876efb6..1e3cb0ffbb 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
@@ -4,11 +4,13 @@ import static gtPlusPlus.core.lib.LoadedMods.Gregtech;
import java.util.*;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_OreDictUnificator;
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.api.objects.minecraft.ItemPackage;
import gtPlusPlus.core.common.compat.*;
import gtPlusPlus.core.handler.Recipes.LateRegistrationHandler;
import gtPlusPlus.core.handler.Recipes.RegistrationHandler;
@@ -19,6 +21,7 @@ import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.recipe.*;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
+import gtPlusPlus.xmod.gregtech.HANDLER_GT;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Recycling;
import gtPlusPlus.xmod.gregtech.registration.gregtech.*;
import net.minecraft.item.ItemStack;
@@ -207,11 +210,18 @@ public class COMPAT_HANDLER {
RecipeGen_Recycling.executeGenerators();
runQueuedMisc();
}
+
+
+
+ public static void onLoadComplete(FMLLoadCompleteEvent event) {
+ runQueuedOnLoadComplete(event);
+ }
public static final AutoMap<RunnableWithInfo<String>> mRecipesToGenerate = new AutoMap<RunnableWithInfo<String>>();
public static final AutoMap<RunnableWithInfo<String>> mGtRecipesToGenerate = new AutoMap<RunnableWithInfo<String>>();
public static final AutoMap<RunnableWithInfo<String>> mObjectsToRunInPostInit = new AutoMap<RunnableWithInfo<String>>();
+ public static final AutoMap<ItemPackage> mObjectsToRunInOnLoadComplete = new AutoMap<ItemPackage>();
public static void runQueuedRecipes() {
//Add autogenerated Recipes from Item Components
@@ -249,4 +259,20 @@ public class COMPAT_HANDLER {
}
}
+
+ /**
+ * Generally used to register GT recipe map changes after they've been populated.
+ */
+ public static void runQueuedOnLoadComplete(FMLLoadCompleteEvent event) {
+ for (ItemPackage m : mObjectsToRunInOnLoadComplete) {
+ try {
+ m.onLoadComplete(event);
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ Logger.INFO("[ERROR] "+m.getInfoData());
+ }
+
+ }
+ }
}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
index 76827b32d1..1f10261b36 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
@@ -24,6 +24,7 @@ import net.minecraftforge.fluids.FluidStack;
public class CoalTar extends ItemPackage {
public static Fluid Coal_Gas;
+ public static Fluid Coal_Oil;
public static Fluid Ethylene;
public static Fluid Benzene;
public static Fluid Ethylbenzene;
@@ -185,14 +186,24 @@ public class CoalTar extends ItemPackage {
900, //aDuration
30,//aEUt
false //Hidden?
- );
+ );
+ GT_Values.RA.addDistilleryRecipe(
+ CI.getNumberedCircuit(5), //Circuit
+ FluidUtils.getFluidStack("fluid.coaltar", 1430), //aInput
+ FluidUtils.getFluidStack("fluid.kerosene", 360), //aOutput
+ 300, //aDuration
+ 64,//aEUt
+ false //Hidden?
+ );
+
GT_Values.RA.addDistillationTowerRecipe(
FluidUtils.getFluidStack("fluid.coaltar", 1000),
new FluidStack[]{
- FluidUtils.getFluidStack("fluid.coaltaroil", 600), //aOutput
- FluidUtils.getFluidStack("liquid_naphtha", 150), //aOutput
- FluidUtils.getFluidStack("fluid.ethylbenzene", 200), //aOutput
+ FluidUtils.getFluidStack("fluid.coaltaroil", 500), //aOutput
+ FluidUtils.getFluidStack("liquid_naphtha", 100), //aOutput
+ FluidUtils.getFluidStack("fluid.ethylbenzene", 150), //aOutput
FluidUtils.getFluidStack("fluid.anthracene", 50), //aOutput
+ FluidUtils.getFluidStack("fluid.kerosene", 200), //aOutput
},
null,
900,
@@ -343,14 +354,13 @@ public class CoalTar extends ItemPackage {
recipeLithiumHydroperoxide();
recipeLithiumPeroxide();
- recipeEthylBenzineFuelsIntoHeavyFuel();
-
+ recipeEthylBenzineFuelsIntoHeavyFuel();
//Burn the coal gas!
GT_Values.RA.addFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalGas", 1), null, 96, 1);
- GT_Values.RA.addFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricCoalTarOil", 1), null, 32, 3);
- GT_Values.RA.addFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalTarOil", 1), null, 64, 3);
- GT_Values.RA.addFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalTar", 1), null, 128, 3);
+ CORE.RA.addSemifluidFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricCoalTarOil", 1), 32);
+ CORE.RA.addSemifluidFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalTarOil", 1), 64);
+ CORE.RA.addSemifluidFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalTar", 1), 128);
return true;
}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/OilChem.java b/src/Java/gtPlusPlus/core/item/chemistry/OilChem.java
new file mode 100644
index 0000000000..fd168f24f2
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/chemistry/OilChem.java
@@ -0,0 +1,210 @@
+package gtPlusPlus.core.item.chemistry;
+
+import java.util.ArrayList;
+
+import forestry.plugins.PluginCore;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.Materials;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.api.objects.minecraft.ItemPackage;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.core.recipe.common.CI;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+public class OilChem extends ItemPackage {
+
+ /**
+ * Fluids
+ */
+
+ // Poop Juice
+ public static Fluid PoopJuice;
+ // Manure Slurry
+ public static Fluid ManureSlurry;
+ // Fertile Manure Slurry
+ public static Fluid FertileManureSlurry;
+
+ /**
+ * Items
+ */
+
+ // Manure Byproducts
+ public static Item dustManureByproducts;
+ // Organic Fertilizer
+ public static Item dustOrganicFertilizer;
+ // Dirt
+ public static Item dustDirt;
+
+ // Poop Juice
+ // vv - Centrifuge
+ // Manure Slurry && Manure Byproducts -> (Elements) Centrifuge to several tiny
+ // piles
+ // vv - Chem Reactor - Add Peat, Meat
+ // Organic Fertilizer
+ // vv - Dehydrate
+ // Fertilizer
+
+ // Poop Juice
+ // vv - Mixer - Add Blood, Bone, Meat (1000L Poo, 200L Blood, x2 Bone, x3 Meat)
+ // Fertile Manure Slurry
+ // vv - Chem Reactor - Add Peat x1.5
+ // Organic Fertilizer x3
+ // vv - Dehydrate
+ // Fertilizer
+
+
+ @Override
+ public void items() {
+ // Nitrogen, Ammonium Nitrate, Phosphates, Calcium, Copper, Carbon
+ dustManureByproducts = ItemUtils.generateSpecialUseDusts("ManureByproducts", "Manure Byproduct",
+ "(N2H4O3)N2P2Ca3CuC8", Utils.rgbtoHexValue(110, 75, 25))[0];
+
+ // Basically Guano
+ dustOrganicFertilizer = ItemUtils.generateSpecialUseDusts("OrganicFertilizer", "Organic Fertilizer",
+ "Ca5(PO4)3(OH)", Utils.rgbtoHexValue(240, 240, 240))[0];
+
+ // Dirt Dust :)
+ dustDirt = ItemUtils.generateSpecialUseDusts("Dirt", "Dried Earth", Utils.rgbtoHexValue(65, 50, 15))[0];
+ }
+
+ @Override
+ public void blocks() {
+ // None yet
+ }
+
+ @Override
+ public void fluids() {
+ // Sewage
+ PoopJuice = FluidUtils.generateFluidNonMolten("raw.waste", "Raw Animal Waste", 32 + 175,
+ new short[] { 100, 70, 30, 100 }, null, null, 0, true);
+
+ // Sewage
+ ManureSlurry = FluidUtils.generateFluidNonMolten("manure.slurry", "Manure Slurry", 39 + 175,
+ new short[] { 75, 45, 15, 100 }, null, null, 0, true);
+
+ // Sewage
+ FertileManureSlurry = FluidUtils.generateFluidNonMolten("fertile.manure.slurry", "Fertile Manure Slurry",
+ 45 + 175, new short[] { 65, 50, 15, 100 }, null, null, 0, true);
+ }
+
+ private static AutoMap<ItemStack> mMeats = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mFish = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mFruits = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mVege = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mNuts = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mSeeds = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mPeat = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mBones = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mBoneMeal = new AutoMap<ItemStack>();
+
+ private static AutoMap<ItemStack> mList_Master_Meats = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mList_Master_FruitVege = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mList_Master_Bones = new AutoMap<ItemStack>();
+ private static AutoMap<ItemStack> mList_Master_Seeds = new AutoMap<ItemStack>();
+
+ private static void processAllOreDict() {
+ processOreDict("listAllmeatraw", mMeats);
+ processOreDict("listAllfishraw", mFish);
+ processOreDict("listAllfruit", mFruits);
+ processOreDict("listAllVeggie", mVege);
+ processOreDict("listAllnut", mNuts);
+ processOreDict("listAllSeed", mSeeds);
+ processOreDict("brickPeat", mPeat);
+ processOreDict("bone", mBones);
+ processOreDict("dustBone", mBoneMeal);
+ // Just make a mega list, makes life easier.
+ if (!mMeats.isEmpty()) {
+ for (ItemStack g : mMeats) {
+ mList_Master_Meats.put(g);
+ }
+ }
+ if (!mFish.isEmpty()) {
+ for (ItemStack g : mFish) {
+ mList_Master_Meats.put(g);
+ }
+ }
+ if (!mFruits.isEmpty()) {
+ for (ItemStack g : mFruits) {
+ mList_Master_FruitVege.put(g);
+ }
+ }
+ if (!mVege.isEmpty()) {
+ for (ItemStack g : mVege) {
+ mList_Master_FruitVege.put(g);
+ }
+ }
+ if (!mNuts.isEmpty()) {
+ for (ItemStack g : mNuts) {
+ mList_Master_FruitVege.put(g);
+ }
+ }
+ if (!mSeeds.isEmpty()) {
+ for (ItemStack g : mSeeds) {
+ mList_Master_Seeds.put(g);
+ }
+ }
+ if (!mBoneMeal.isEmpty()) {
+ for (ItemStack g : mBoneMeal) {
+ mList_Master_Bones.put(g);
+ }
+ }
+ if (!mBones.isEmpty()) {
+ for (ItemStack g : mBones) {
+ mList_Master_Bones.put(g);
+ }
+ }
+ }
+
+ private static void processOreDict(String aOreName, AutoMap<ItemStack> aMap) {
+ ArrayList<ItemStack> aTemp = OreDictionary.getOres(aOreName);
+ if (!aTemp.isEmpty()) {
+ for (ItemStack stack : aTemp) {
+ aMap.put(stack);
+ }
+ }
+ }
+
+ private static void addBasicSlurryRecipes() {}
+
+ private static void addAdvancedSlurryRecipes() {}
+
+ private static void addBasicOrganiseFertRecipes() {}
+
+ private static void addAdvancedOrganiseFertRecipes() {}
+
+ private static void addMiscRecipes() {}
+
+ @Override
+ public String errorMessage() {
+ // TODO Auto-generated method stub
+ return "Failed to generate recipes for AgroChem.";
+ }
+
+ @Override
+ public boolean generateRecipes() {
+
+ // Organise OreDict
+ processAllOreDict();
+
+ // Slurry Production
+ addBasicSlurryRecipes();
+ addAdvancedSlurryRecipes();
+
+ // Organic Fert. Production
+ addBasicOrganiseFertRecipes();
+ addAdvancedOrganiseFertRecipes();
+
+ addMiscRecipes();
+ return true;
+ }
+}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
index ddac7f1d88..f2b5d0683c 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
@@ -2,21 +2,26 @@ package gtPlusPlus.core.item.chemistry;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedHashMap;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_Recipe;
import gregtech.api.util.Recipe_GT;
-import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.minecraft.ItemPackage;
import gtPlusPlus.core.item.base.BaseItemComponent;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.MaterialUtils;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
public class RocketFuels extends ItemPackage {
@@ -24,7 +29,9 @@ public class RocketFuels extends ItemPackage {
public static HashSet<String> mValidRocketFuelNames = new HashSet<String>();
public static HashMap<Integer, Fluid> mValidRocketFuels = new HashMap<Integer, Fluid>();
- public static Fluid Kerosene;
+ public static Fluid Oil_Heavy;
+ public static Fluid Diesel;
+ public static Fluid Kerosene;
public static Fluid RP1;
public static Fluid Nitrogen_Tetroxide;
public static Fluid Hydrazine;
@@ -46,15 +53,21 @@ public class RocketFuels extends ItemPackage {
public static Item Formaldehyde_Catalyst;
public static void createKerosene(){
- FluidStack fuelA = FluidUtils.getFluidStack("diesel", 400);
- FluidStack fuelB = FluidUtils.getFluidStack("fuel", 400);
+
+
+
+ FluidStack fuelA = FluidUtils.getFluidStack("diesel", 300);
+ FluidStack fuelB = FluidUtils.getFluidStack("fuel", 300);
+
+
+
if (fuelA != null){
//GT_Values.RA.addDistilleryRecipe(23, fuelA, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
- GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelA, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
+ GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelA, FluidUtils.getFluidStack(Kerosene, 100), 200, 64, false);
}
if (fuelA == null && fuelB != null){
//GT_Values.RA.addDistilleryRecipe(23, fuelB, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
- GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelB, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
+ GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelB, FluidUtils.getFluidStack(Kerosene, 100), 200, 64, false);
}
}
@@ -187,9 +200,9 @@ public class RocketFuels extends ItemPackage {
}
- private static void addRocketFuelsToMap() {
- AutoMap<Recipe_GT> mRocketFuels = new AutoMap<Recipe_GT>();
- mRocketFuels.put(new Recipe_GT(
+ private static void addRocketFuelsToMap() {
+ HashMap<Integer, Recipe_GT> mRocketFuels = new LinkedHashMap<Integer, Recipe_GT>();
+ mRocketFuels.put(0, new Recipe_GT(
true,
new ItemStack[] {},
new ItemStack[] {},
@@ -201,7 +214,7 @@ public class RocketFuels extends ItemPackage {
0,
256)); //Fuel Value
- mRocketFuels.put(new Recipe_GT(
+ mRocketFuels.put(1, new Recipe_GT(
true,
new ItemStack[] {},
new ItemStack[] {},
@@ -213,7 +226,7 @@ public class RocketFuels extends ItemPackage {
0,
512)); //Fuel Value
- mRocketFuels.put(new Recipe_GT(
+ mRocketFuels.put(2, new Recipe_GT(
true,
new ItemStack[] {},
new ItemStack[] {},
@@ -225,7 +238,7 @@ public class RocketFuels extends ItemPackage {
0,
768)); //Fuel Value
- mRocketFuels.put(new Recipe_GT(
+ mRocketFuels.put(3, new Recipe_GT(
true,
new ItemStack[] {},
new ItemStack[] {},
@@ -239,15 +252,15 @@ public class RocketFuels extends ItemPackage {
//Add in default Diesel for the Buggy
- mValidRocketFuelNames.add(Materials.Fuel.getFluid(1).getFluid().getName());
- mValidRocketFuels.put(-1, Materials.Fuel.getFluid(1).getFluid());
-
- int mID = 0;
- for (Recipe_GT r : mRocketFuels) {
- if (r != null) {
- mValidRocketFuelNames.add(r.mFluidInputs[0].getFluid().getName());
- mValidRocketFuels.put(mID++, r.mFluidInputs[0].getFluid());
- Recipe_GT.Gregtech_Recipe_Map.sRocketFuels.add(r);
+ mValidRocketFuels.put(-1, Diesel);
+
+ mValidRocketFuelNames.add(FluidRegistry.getFluidName(Diesel));
+ for (int mID : mRocketFuels.keySet()) {
+ Recipe_GT aFuelRecipe = mRocketFuels.get(mID);
+ if (aFuelRecipe != null) {
+ mValidRocketFuelNames.add(FluidRegistry.getFluidName(aFuelRecipe.mFluidInputs[0].getFluid()));
+ mValidRocketFuels.put(mID, aFuelRecipe.mFluidInputs[0].getFluid());
+ Recipe_GT.Gregtech_Recipe_Map.sRocketFuels.add(aFuelRecipe);
}
}
@@ -431,6 +444,214 @@ public class RocketFuels extends ItemPackage {
}
@Override
+ public boolean onLoadComplete(FMLLoadCompleteEvent event) {
+
+
+ if (MathUtils.randInt(1, 2) > 0) {
+ return false;
+ }
+
+
+ Materials aMaterial_Chloramine = MaterialUtils.getMaterial("Chloramine");
+ Materials aMaterial_Dimethylamine = MaterialUtils.getMaterial("Dimethylamine");
+ Materials aMaterial_DilutedHydrochloricAcid = MaterialUtils.getMaterial("DilutedHydrochloricAcid");
+ Materials aMaterial_NitrogenDioxide = MaterialUtils.getMaterial("NitrogenDioxide");
+ Materials aMaterial_DinitrogenTetroxide = MaterialUtils.getMaterial("DinitrogenTetroxide");
+ Materials aMaterial_Dimethylhydrazine = MaterialUtils.getMaterial("Dimethylhydrazine");
+
+ Materials aMaterial_Oxygen = Materials.Oxygen;
+ Materials aMaterial_Water = Materials.Water;
+ Materials aMaterial_HypochlorousAcid = MaterialUtils.getMaterial("HypochlorousAcid");
+ Materials aMaterial_Ammonia = MaterialUtils.getMaterial("Ammonia");
+ Materials aMaterial_Methanol = MaterialUtils.getMaterial("Methanol");
+
+ if (aMaterial_Chloramine == null || aMaterial_Dimethylamine == null || aMaterial_DilutedHydrochloricAcid == null
+ || aMaterial_Dimethylhydrazine == null || aMaterial_NitrogenDioxide == null || aMaterial_DinitrogenTetroxide == null
+ || aMaterial_HypochlorousAcid == null || aMaterial_Ammonia == null || aMaterial_Methanol == null) {
+ return false;
+ }
+
+
+ ItemStack aCellEmpty = CI.emptyCells(1);
+ ItemStack aCellWater = aMaterial_Water.getCells(1);
+ ItemStack aCellOxygen = aMaterial_Oxygen.getCells(1);
+ ItemStack aCellChloramine = aMaterial_Chloramine.getCells(1);
+ ItemStack aCellDimethylamine = aMaterial_Dimethylamine.getCells(1);
+ ItemStack aCellDilutedHydrochloricAcid = aMaterial_DilutedHydrochloricAcid.getCells(1);
+ ItemStack aCellNitrogenDioxide = aMaterial_NitrogenDioxide.getCells(1);
+ ItemStack aCellDinitrogenTetroxide = aMaterial_DinitrogenTetroxide.getCells(1);
+ ItemStack aCellDimethylhydrazine = aMaterial_Dimethylhydrazine.getCells(1);
+
+
+
+
+
+
+ GT_Recipe aChemReactor_1 = new Recipe_GT(
+ true, //Optimise
+ new ItemStack[] {}, //I
+ new ItemStack[] {}, //O
+ null, //Special
+ new int[] {}, //Chance
+ new FluidStack[] {}, //I
+ new FluidStack[] {}, //O
+ 0, //Dura
+ 0, //Eu
+ 0); //Special
+
+ GT_Recipe aChemReactor_2 = new Recipe_GT(
+ true, //Optimise
+ new ItemStack[] {}, //I
+ new ItemStack[] {}, //O
+ null, //Special
+ new int[] {}, //Chance
+ new FluidStack[] {}, //I
+ new FluidStack[] {}, //O
+ 0, //Dura
+ 0, //Eu
+ 0); //Special
+
+
+
+
+ GT_Recipe aChemReactor_Basic_1 = new Recipe_GT(
+ true, //Optimise
+ new ItemStack[] {}, //I
+ new ItemStack[] {}, //O
+ null, //Special
+ new int[] {}, //Chance
+ new FluidStack[] {}, //I
+ new FluidStack[] {}, //O
+ 0, //Dura
+ 0, //Eu
+ 0); //Special
+
+ GT_Recipe aChemReactor_Basic_2 = new Recipe_GT(
+ true, //Optimise
+ new ItemStack[] {}, //I
+ new ItemStack[] {}, //O
+ null, //Special
+ new int[] {}, //Chance
+ new FluidStack[] {}, //I
+ new FluidStack[] {}, //O
+ 0, //Dura
+ 0, //Eu
+ 0); //Special
+
+ GT_Recipe aChemReactor_Basic_3 = new Recipe_GT(
+ true, //Optimise
+ new ItemStack[] {}, //I
+ new ItemStack[] {}, //O
+ null, //Special
+ new int[] {}, //Chance
+ new FluidStack[] {}, //I
+ new FluidStack[] {}, //O
+ 0, //Dura
+ 0, //Eu
+ 0); //Special
+
+ GT_Recipe aChemReactor_Basic_4 = new Recipe_GT(
+ true, //Optimise
+ new ItemStack[] {}, //I
+ new ItemStack[] {}, //O
+ null, //Special
+ new int[] {}, //Chance
+ new FluidStack[] {}, //I
+ new FluidStack[] {}, //O
+ 0, //Dura
+ 0, //Eu
+ 0); //Special
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GT_Recipe aChemReactor_Adv_1 = new Recipe_GT(
+ true, //Optimise
+ new ItemStack[] {}, //I
+ new ItemStack[] {}, //O
+ null, //Special
+ new int[] {}, //Chance
+ new FluidStack[] {}, //I
+ new FluidStack[] {}, //O
+ 0, //Dura
+ 0, //Eu
+ 0); //Special
+
+ GT_Recipe aChemReactor_Adv_2 = new Recipe_GT(
+ true, //Optimise
+ new ItemStack[] {}, //I
+ new ItemStack[] {}, //O
+ null, //Special
+ new int[] {}, //Chance
+ new FluidStack[] {}, //I
+ new FluidStack[] {}, //O
+ 0, //Dura
+ 0, //Eu
+ 0); //Special
+
+
+
+
+ //RecipeUtils.removeGtRecipe(aChemReactor_Basic_1, GT_Recipe.GT_Recipe_Map.sChemicalRecipes);
+ //RecipeUtils.removeGtRecipe(aChemReactor_Basic_1, GT_Recipe.GT_Recipe_Map.sChemicalRecipes);
+ //RecipeUtils.removeGtRecipe(aChemReactor_Basic_1, GT_Recipe.GT_Recipe_Map.sChemicalRecipes);
+ //RecipeUtils.removeGtRecipe(aChemReactor_Basic_1, GT_Recipe.GT_Recipe_Map.sChemicalRecipes);
+
+
+
+
+
+
+ /* GT_Values.RA.addChemicalRecipe( Materials.Chloramine.getCells(2), GT_Utility.getIntegratedCircuit(1), Materials.Dimethylamine.getGas(5000), Materials.Dimethylhydrazine.getFluid(6000), Materials.DilutedHydrochloricAcid.getCells(1), Materials.Empty.getCells(1), 960, 480);
+ GT_Values.RA.addChemicalRecipe( Materials.Dimethylamine.getCells(5), GT_Utility.getIntegratedCircuit(1), Materials.Chloramine.getFluid(2000), Materials.Dimethylhydrazine.getFluid(6000), Materials.DilutedHydrochloricAcid.getCells(1), Materials.Empty.getCells(4), 960, 480);
+ GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.Chloramine.getCells(2), Materials.Empty.getCells(4), Materials.Dimethylamine.getGas(5000), Materials.DilutedHydrochloricAcid.getFluid(1000), Materials.Dimethylhydrazine.getCells(6), GT_Values.NI, 960, 480);
+ GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.Dimethylamine.getCells(5), Materials.Empty.getCells(1), Materials.Chloramine.getFluid(2000), Materials.DilutedHydrochloricAcid.getFluid(1000), Materials.Dimethylhydrazine.getCells(6), GT_Values.NI, 960, 480);
+ GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.Dimethylamine.getCells(5), Materials.Chloramine.getCells(2), Materials.Chloramine.getFluid(2000), Materials.DilutedHydrochloricAcid.getFluid(1000), Materials.Dimethylhydrazine.getCells(6), Materials.DilutedHydrochloricAcid.getCells(1), 960, 480);
+ GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{GT_Utility.getIntegratedCircuit(24)}, new FluidStack[]{Materials.HypochlorousAcid.getFluid(3000), Materials.Ammonia.getGas(8000), Materials.Methanol.getFluid(12000)}, new FluidStack[]{Materials.Dimethylhydrazine.getFluid(12000), Materials.DilutedHydrochloricAcid.getFluid(2000), Materials.Water.getFluid(9000)}, null, 1040, 480);
+
+ GT_Values.RA.addChemicalRecipe(GT_Utility.getIntegratedCircuit(2), GT_Values.NI, Materials.NitrogenDioxide.getGas(1000), Materials.DinitrogenTetroxide.getGas(1000), GT_Values.NI, 640);
+ GT_Values.RA.addChemicalRecipe(Materials.NitrogenDioxide.getCells(1), GT_Utility.getIntegratedCircuit(2), GT_Values.NF, Materials.DinitrogenTetroxide.getGas(1000), Materials.Empty.getCells(1), 640);
+ GT_Values.RA.addChemicalRecipe(Materials.NitrogenDioxide.getCells(1), GT_Utility.getIntegratedCircuit(12), GT_Values.NF, GT_Values.NF, Materials.DinitrogenTetroxide.getCells(1), 640);
+ GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{GT_Utility.getIntegratedCircuit(23)}, new FluidStack[]{Materials.Ammonia.getGas(8000), Materials.Oxygen.getGas(7000)}, new FluidStack[]{Materials.DinitrogenTetroxide.getGas(6000), Materials.Water.getFluid(9000)}, null, 480, 30);
+ GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{GT_Utility.getIntegratedCircuit(23)}, new FluidStack[]{Materials.Nitrogen.getGas(2000), Materials.Hydrogen.getGas(6000), Materials.Oxygen.getGas(7000)}, new FluidStack[]{Materials.DinitrogenTetroxide.getGas(6000), Materials.Water.getFluid(9000)}, null, 1100, 480);
+
+ GT_Values.RA.addMixerRecipe(Materials.Dimethylhydrazine.getCells(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.DinitrogenTetroxide.getGas(1000), new FluidStack(ItemList.sRocketFuel, 2000), Materials.Empty.getCells(1), 60, 16);
+ GT_Values.RA.addMixerRecipe(Materials.DinitrogenTetroxide.getCells(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Dimethylhydrazine.getFluid(1000), new FluidStack(ItemList.sRocketFuel, 2000), Materials.Empty.getCells(1), 60, 16);
+ GT_Values.RA.addMixerRecipe(Materials.Dimethylhydrazine.getCells(2), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Oxygen.getGas(1000), new FluidStack(ItemList.sRocketFuel, 3000), Materials.Empty.getCells(2), 60, 16);
+ GT_Values.RA.addMixerRecipe(Materials.Oxygen.getCells(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Dimethylhydrazine.getFluid(2000), new FluidStack(ItemList.sRocketFuel, 3000), Materials.Empty.getCells(1), 60, 16);
+
+
+ */
+
+
+
+
+
+
+
+
+
+ //Get Rocket Fuel
+
+ //Find recipes using default values
+
+ //Remove
+
+ //Rebake map
+
+ return true;
+ };
+
+ @Override
public void items() {
Formaldehyde_Catalyst = ItemUtils.generateSpecialUseDusts("FormaldehydeCatalyst", "Formaldehyde Catalyst", "Fe16V1", Utils.rgbtoHexValue(25, 5, 25))[0];
}
@@ -441,9 +662,16 @@ public class RocketFuels extends ItemPackage {
@Override
public void fluids() {
+
+ //Register default fluids
+ Diesel = MaterialUtils.getMaterial("Fuel", "Diesel").getFluid(1).getFluid();
+ Oil_Heavy = MaterialUtils.getMaterial("OilHeavy", "Oil").getFluid(1).getFluid();
+
+
//Create Kerosene
Kerosene = FluidUtils.generateFluidNonMolten("Kerosene", "Kerosene", 500, new short[]{150, 40, 150, 100}, null, null);
-
+ CoalTar.Coal_Oil = Kerosene;
+
//RP! Focket Fuel
RP1 = FluidUtils.generateFluidNonMolten("RP1Fuel", "RP-1 Rocket Fuel", 500, new short[]{210, 50, 50, 100}, null, null);
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
index 842b8eecb2..a7fc4507e8 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
@@ -348,12 +348,30 @@ public class MaterialUtils {
TextureSet o = (r != null && r.isPresent() && r.get() != null) ? r.get() : null;
return o;*/
}
+
+
+
+ public static Materials getMaterial(String aMaterialName, String aFallbackMaterialName) {
+ Materials g = getMaterial(aMaterialName);
+ if (g == null) {
+ g = getMaterial(aFallbackMaterialName);
+ }
+ if (g == null) {
+ Logger.INFO("Failed finding material '"+aMaterialName+"' & fallback '"+aFallbackMaterialName+"', returning _NULL.");
+ g = Materials._NULL;
+ }
+ return g;
+ }
public static Materials getMaterial(String aMaterialName) {
Materials m = gtPlusPlus.xmod.gregtech.common.StaticFields59.getMaterial(aMaterialName);
if (m == null) {
m = getMaterialByName(aMaterialName);
}
+ if (m == null) {
+ Logger.INFO("Failed finding material '"+aMaterialName+"', returning _NULL.");
+ m = Materials._NULL;
+ }
return m;
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
index cc71b910c6..774c8b6f13 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
@@ -8,6 +8,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gtPlusPlus.GTplusplus;
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
@@ -573,5 +574,13 @@ public static int mInvalidID = 1;
}
+ public static boolean removeGtRecipe(GT_Recipe aRecipeToRemove, GT_Recipe_Map aRecipeMap) {
+ if (aRecipeMap.mRecipeList.contains(aRecipeToRemove)) {
+ return aRecipeMap.mRecipeList.remove(aRecipeToRemove);
+ }
+ return false;
+ }
+
+
}
diff --git a/src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java b/src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java
index 58331c4300..64f1cfbe23 100644
--- a/src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java
+++ b/src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java
@@ -1,6 +1,8 @@
package gtPlusPlus.xmod.galacticraft.handler;
import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.block.Block;
@@ -18,7 +20,7 @@ public class HandlerTooltip_GC {
private static Block mBlock;
private static Class<?> oMainClass;
private static Class<?> oFuelLoaderClass;
- private static String[] mFuelNames;
+ private static HashMap <Integer, String> mFuelNames;
@SubscribeEvent
public void onItemTooltip(ItemTooltipEvent event) {
@@ -30,8 +32,7 @@ public class HandlerTooltip_GC {
if (GCBlocks != null) {
oMainClass = GCBlocks;
- Class<?> GCFuelLoader = Class
- .forName("micdoodle8.mods.galacticraft.core.blocks.BlockFuelLoader");
+ Class<?> GCFuelLoader = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.blocks.BlockFuelLoader");
if (GCFuelLoader != null) {
oFuelLoaderClass = GCFuelLoader;
@@ -49,24 +50,26 @@ public class HandlerTooltip_GC {
} catch (Throwable t) {
}
}
- if (mFuelNames == null || mFuelNames.length == 0) {
- mFuelNames = new String[RocketFuels.mValidRocketFuels.size()];
- int slot = 0;
- for (Fluid f : RocketFuels.mValidRocketFuels.values()) {
- mFuelNames[slot++] = f.getLocalizedName();
+
+ if (mFuelNames == null || mFuelNames.isEmpty()) {
+ mFuelNames = new LinkedHashMap<Integer, String>();
+ for (int aMapKey : RocketFuels.mValidRocketFuels.keySet()) {
+ Fluid aFuel = RocketFuels.mValidRocketFuels.get(aMapKey);
+ if (aFuel != null) {
+ mFuelNames.put(aMapKey, aFuel.getLocalizedName());
+ }
}
- }
- if (mItemBlock != null) {
+ }
+ if (mItemBlock != null && !mFuelNames.isEmpty()) {
Item aTempItem = event.itemStack.getItem();
Block aTempBlock = Block.getBlockFromItem(aTempItem);
- if (aTempItem == mItemBlock || oFuelLoaderClass.isInstance(aTempBlock)
- || event.itemStack.getUnlocalizedName().toLowerCase().contains("fuelloader")) {
- int aTier = 0;
- for (String s : mFuelNames) {
- if (s != null) {
- event.toolTip.add("Tier "+aTier+": "+s);
+ if (aTempItem == mItemBlock || oFuelLoaderClass.isInstance(aTempBlock) || event.itemStack.getUnlocalizedName().toLowerCase().contains("fuelloader")) {
+ for (int aMapKey : mFuelNames.keySet()) {
+ String aFuel = mFuelNames.get(aMapKey);
+ if (aFuel != null) {
+ event.toolTip.add("Tier "+(aMapKey+1)+": "+aFuel);
}
- }
+ }
}
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
index a88d6a4832..15c6fa00f6 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
@@ -15,8 +15,9 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
-
+import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
import net.minecraftforge.fluids.FluidStack;
@@ -144,7 +145,7 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_
@Override
public boolean isOutputFacing(final byte aSide) {
- return true;
+ return this.getBaseMetaTileEntity().getFrontFacing() == aSide;
}
@Override
@@ -154,7 +155,7 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_
@Override
public long maxEUOutput() {
- return this.getBaseMetaTileEntity().isAllowedToWork() ? V[this.mTier] : 0;
+ return V[this.mTier];
}
@Override
@@ -164,22 +165,22 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_
@Override
public boolean doesFillContainers() {
- return this.getBaseMetaTileEntity().isAllowedToWork();
+ return false;
}
@Override
public boolean doesEmptyContainers() {
- return this.getBaseMetaTileEntity().isAllowedToWork();
+ return true;
}
@Override
public boolean canTankBeFilled() {
- return this.getBaseMetaTileEntity().isAllowedToWork();
+ return true;
}
@Override
public boolean canTankBeEmptied() {
- return this.getBaseMetaTileEntity().isAllowedToWork();
+ return false;
}
@Override
@@ -199,6 +200,61 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_
@Override
public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) {
+
+
+ //super.onPostTick(aBaseMetaTileEntity, aTick);
+
+ /*if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aTick % 10L == 0L) {
+ int tFuelValue;
+ if (this.mFluid == null) {
+ if (aBaseMetaTileEntity.getUniversalEnergyStored() < this.maxEUOutput() + this.getMinimumStoredEU()) {
+ this.mInventory[this.getStackDisplaySlot()] = null;
+ } else {
+ if (this.mInventory[this.getStackDisplaySlot()] == null) {
+ this.mInventory[this.getStackDisplaySlot()] = new ItemStack(Blocks.fire, 1);
+ }
+
+ this.mInventory[this.getStackDisplaySlot()].setStackDisplayName("Generating: "
+ + (aBaseMetaTileEntity.getUniversalEnergyStored() - this.getMinimumStoredEU()) + " EU");
+ }
+ } else {
+ tFuelValue = this.getFuelValue(this.mFluid);
+ int tConsumed = this.consumedFluidPerOperation(this.mFluid);
+ if (tFuelValue > 0 && tConsumed > 0 && this.mFluid.amount > tConsumed) {
+ long tFluidAmountToUse = Math.min((long) (this.mFluid.amount / tConsumed),
+ (this.maxEUStore() - aBaseMetaTileEntity.getUniversalEnergyStored()) / (long) tFuelValue);
+ if (tFluidAmountToUse > 0L && aBaseMetaTileEntity
+ .increaseStoredEnergyUnits(tFluidAmountToUse * (long) tFuelValue, true)) {
+ PollutionUtils.addPollution(this.getBaseMetaTileEntity(), 10 * this.getPollution());
+ this.mFluid.amount = (int) ((long) this.mFluid.amount - tFluidAmountToUse * (long) tConsumed);
+ }
+ }
+ }
+
+ if (this.mInventory[this.getInputSlot()] != null
+ && aBaseMetaTileEntity.getUniversalEnergyStored() < this.maxEUOutput() * 20L
+ + this.getMinimumStoredEU()
+ && GT_Utility.getFluidForFilledItem(this.mInventory[this.getInputSlot()], true) == null) {
+ tFuelValue = this.getFuelValue(this.mInventory[this.getInputSlot()]);
+ if (tFuelValue > 0) {
+ ItemStack tEmptyContainer = this.getEmptyContainer(this.mInventory[this.getInputSlot()]);
+ if (aBaseMetaTileEntity.addStackToSlot(this.getOutputSlot(), tEmptyContainer)) {
+ aBaseMetaTileEntity.increaseStoredEnergyUnits((long) tFuelValue, true);
+ aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1);
+ PollutionUtils.addPollution(this.getBaseMetaTileEntity(), 10 * this.getPollution());
+ }
+ }
+ }
+ }
+
+ if (aBaseMetaTileEntity.isServerSide()) {
+ aBaseMetaTileEntity.setActive(aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity
+ .getUniversalEnergyStored() >= this.maxEUOutput() + this.getMinimumStoredEU());
+ }*/
+
+
+
+
if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && ((aTick % 10) == 0)) {
if (this.mFluid == null) {
if (aBaseMetaTileEntity.getUniversalEnergyStored() < (this.maxEUOutput() + this.getMinimumStoredEU())) {
@@ -211,16 +267,14 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_
}
} else {
final int tFuelValue = this.getFuelValue(this.mFluid), tConsumed = this.consumedFluidPerOperation(this.mFluid);
- if ((tFuelValue > 0) && (tConsumed > 0) && (this.mFluid.amount > tConsumed)) {
+ if ((tFuelValue > 0) && (tConsumed > 0) && (this.mFluid.amount >= tConsumed)) {
final long tFluidAmountToUse = Math.min(this.mFluid.amount / tConsumed, (((this.maxEUOutput() * 20) + this.getMinimumStoredEU()) - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue);
- if ((tFluidAmountToUse > 0) && aBaseMetaTileEntity.increaseStoredEnergyUnits(tFluidAmountToUse * tFuelValue, true)){
- if (this.useFuel){
- this.mFluid.amount -= tFluidAmountToUse * tConsumed;
- this.useFuel = false;
- }
- else {
- this.useFuel = true;
- }
+ if ((tFluidAmountToUse > 0) && aBaseMetaTileEntity.increaseStoredEnergyUnits(tFluidAmountToUse * tFuelValue, true)){
+ useFuel = Utils.invertBoolean(useFuel);
+ int aSafeFloor= (int) Math.max(((tFluidAmountToUse * tConsumed)/3), 1);
+ int toConsumeTrue = (int) (useFuel ? aSafeFloor : 0);
+ //Logger.INFO("True consumption: "+toConsumeTrue+" | Consuming this tick? "+useFuel);
+ this.mFluid.amount -= toConsumeTrue;
PollutionUtils.addPollution(getBaseMetaTileEntity(), 10 * getPollution());
}
}
@@ -260,14 +314,25 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_
FluidStack tLiquid;
final Collection<GT_Recipe> tRecipeList = this.getRecipes().mRecipeList;
if (tRecipeList != null) {
+ //Logger.INFO("Step A");
for (final GT_Recipe tFuel : tRecipeList) {
- if ((tLiquid = GT_Utility.getFluidForFilledItem(tFuel.getRepresentativeInput(0), true)) != null) {
+ //Logger.INFO("Step B");
+ if ((tLiquid = tFuel.mFluidInputs[0]) != null) {
+ //Logger.INFO("Step C");
if (aLiquid.isFluidEqual(tLiquid)) {
- return (int) (((long) tFuel.mSpecialValue * this.getEfficiency() * this.consumedFluidPerOperation(tLiquid)) / 100);
+ //Logger.INFO("Found some fuel?");
+ int aperOp = this.consumedFluidPerOperation(tLiquid);
+ int aConsume = (int) (((long) tFuel.mSpecialValue * this.getEfficiency() * aperOp) / 100);
+ //Logger.INFO("Fuel Value: "+tFuel.mSpecialValue);
+ //Logger.INFO("Efficiency: "+getEfficiency());
+ //Logger.INFO("Consumed per op: "+aperOp);
+ //Logger.INFO("Consuming "+aConsume);
+ return aConsume;
}
}
}
}
+ //Logger.INFO("No Fuel Value | Valid? "+(aLiquid != null));
return 0;
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java
index 288501086b..1d81e44e1f 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java
@@ -15,6 +15,7 @@ import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.Recipe_GT;
+import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.generators.GregtechRocketFuelGeneratorBase;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
@@ -41,6 +42,7 @@ extends GregtechRocketFuelGeneratorBase {
@Override
public MetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) {
+ Logger.INFO("Valid Fuels: "+Recipe_GT.Gregtech_Recipe_Map.sRocketFuels.mRecipeList.size());
return new GregtechMetaTileEntityRocketFuelGenerator(this.mName, this.mTier, this.mDescription, this.mTextures);
}
@@ -60,7 +62,10 @@ extends GregtechRocketFuelGeneratorBase {
@Override
public int getEfficiency() {
- return ((40+((this.mTier) * 16))/4)+(this.mTier);
+ int eff = ((40+((this.mTier) * 16))/4)+(this.mTier);
+
+ return eff;
+
}
@Override
@@ -69,6 +74,7 @@ extends GregtechRocketFuelGeneratorBase {
if (ItemList.Fuel_Can_Plastic_Filled.isStackEqual(aStack, false, true)) {
rValue = Math.max(rValue, GameRegistry.getFuelValue(aStack) * 3);
}
+ Logger.INFO("Fuel Item is worth: "+rValue);
return rValue;
}