aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Java/gtPlusPlus/api/helpers/MaterialHelper.java17
-rw-r--r--src/Java/gtPlusPlus/australia/GTplusplus_Australia.java8
-rw-r--r--src/Java/gtPlusPlus/core/common/CommonProxy.java8
-rw-r--r--src/Java/gtPlusPlus/core/handler/AchievementHandler.java5
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java95
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java11
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java31
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java2
-rw-r--r--src/Java/gtPlusPlus/core/item/general/ItemGenericToken.java15
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java12
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java12
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_General.java22
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java3
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java5
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java4
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java113
-rw-r--r--src/Java/gtPlusPlus/plugin/agrichem/BioRecipes.java334
-rw-r--r--src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java43
-rw-r--r--src/Java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java48
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java28
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java65
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicMachine.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_TurbineProvider.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java20
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Block_Machines.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/covers/GTPP_Cover_ToggleVisual.java5
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/helpers/GT_MethodHelper.java80
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_Render_MachineBlock.java18
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java19
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java5
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java104
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java65
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java16
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechPollutionDevices.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechRocketFuelGenerator.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/reliquary/util/ReliquaryRecipeHandler.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java35
-rw-r--r--src/Java/speiger/src/crops/api/ICropCardInfo.java12
-rw-r--r--src/resources/assets/miscutils/lang/en_US.lang20
-rw-r--r--src/resources/assets/miscutils/textures/items/bioscience/MetaItem1/22.pngbin0 -> 437 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/bioscience/MetaItem1/23.pngbin0 -> 701 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/0.pngbin0 -> 1217 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/1.pngbin0 -> 1493 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/10.pngbin0 -> 1616 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/11.pngbin0 -> 1450 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/12.pngbin0 -> 1635 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/13.pngbin0 -> 1601 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/14.pngbin0 -> 1522 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/15.pngbin0 -> 1710 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/16.pngbin0 -> 1647 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/17.pngbin0 -> 1569 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/18.pngbin0 -> 1451 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/19.pngbin0 -> 1404 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/2.pngbin0 -> 1561 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/20.pngbin0 -> 1517 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/21.pngbin0 -> 1498 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/22.pngbin0 -> 1554 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/23.pngbin0 -> 1196 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/24.pngbin0 -> 1323 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/3.pngbin0 -> 1465 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/4.pngbin0 -> 1501 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/5.pngbin0 -> 1487 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/6.pngbin0 -> 1512 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/7.pngbin0 -> 1485 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/8.pngbin0 -> 1595 bytes
-rw-r--r--src/resources/assets/miscutils/textures/items/particle/new/9.pngbin0 -> 1567 bytes
70 files changed, 1018 insertions, 300 deletions
diff --git a/src/Java/gtPlusPlus/api/helpers/MaterialHelper.java b/src/Java/gtPlusPlus/api/helpers/MaterialHelper.java
index 43f8ddeb19..9d2e894d99 100644
--- a/src/Java/gtPlusPlus/api/helpers/MaterialHelper.java
+++ b/src/Java/gtPlusPlus/api/helpers/MaterialHelper.java
@@ -10,6 +10,7 @@ import gregtech.api.enums.OrePrefixes;
import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid;
import gregtech.api.util.GT_OreDictUnificator;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
@@ -56,4 +57,20 @@ public class MaterialHelper {
}
return false;
}
+
+ public static ItemStack getCells(Materials aMaterial, int i) {
+ return ItemUtils.getOrePrefixStack(OrePrefixes.cell, aMaterial, i);
+ }
+ public static ItemStack getDust(Materials aMaterial, int i) {
+ return ItemUtils.getOrePrefixStack(OrePrefixes.dust, aMaterial, i);
+ }
+ public static ItemStack getDustSmall(Materials aMaterial, int i) {
+ return ItemUtils.getOrePrefixStack(OrePrefixes.dustSmall, aMaterial, i);
+ }
+ public static ItemStack getDustTiny(Materials aMaterial, int i) {
+ return ItemUtils.getOrePrefixStack(OrePrefixes.dustTiny, aMaterial, i);
+ }
+ public static ItemStack getGems(Materials aMaterial, int i) {
+ return ItemUtils.getOrePrefixStack(OrePrefixes.gem, aMaterial, i);
+ }
}
diff --git a/src/Java/gtPlusPlus/australia/GTplusplus_Australia.java b/src/Java/gtPlusPlus/australia/GTplusplus_Australia.java
index 562f6acd15..77562f5691 100644
--- a/src/Java/gtPlusPlus/australia/GTplusplus_Australia.java
+++ b/src/Java/gtPlusPlus/australia/GTplusplus_Australia.java
@@ -6,13 +6,13 @@ import java.io.File;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
-import cpw.mods.fml.common.event.*;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion;
-
import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.australia.biome.type.Biome_AustralianDesert;
-import gtPlusPlus.australia.biome.type.Biome_AustralianDesert2;
import gtPlusPlus.australia.biome.type.Biome_AustralianDesert_Ex;
import gtPlusPlus.australia.biome.type.Biome_AustralianForest;
import gtPlusPlus.australia.biome.type.Biome_AustralianOcean;
diff --git a/src/Java/gtPlusPlus/core/common/CommonProxy.java b/src/Java/gtPlusPlus/core/common/CommonProxy.java
index f0d89b3016..1ce16bf4de 100644
--- a/src/Java/gtPlusPlus/core/common/CommonProxy.java
+++ b/src/Java/gtPlusPlus/core/common/CommonProxy.java
@@ -197,14 +197,18 @@ public class CommonProxy {
COMPAT_HANDLER.RemoveRecipesFromOtherMods();
Logger.INFO("Initialising Handler, Then Adding Recipes");
COMPAT_HANDLER.InitialiseHandlerThenAddRecipes();
- Logger.INFO("Loading Gregtech API recipes.");
- COMPAT_HANDLER.startLoadingGregAPIBasedRecipes();
Logger.INFO("Loading Intermod staging.");
COMPAT_IntermodStaging.postInit(e);
Logger.INFO("Loading queued recipes.");
COMPAT_HANDLER.runQueuedRecipes();
Logger.INFO("Registering custom mob drops.");
registerCustomMobDrops();
+
+ // Moved last in postInit().
+ // 12/12/19 - Alkalus
+ // Moved last, to prevent recipes being generated post initialisation.
+ Logger.INFO("Loading Gregtech API recipes.");
+ COMPAT_HANDLER.startLoadingGregAPIBasedRecipes();
}
public void serverStarting(final FMLServerStartingEvent e) {
diff --git a/src/Java/gtPlusPlus/core/handler/AchievementHandler.java b/src/Java/gtPlusPlus/core/handler/AchievementHandler.java
index 9053875058..fa10f4def3 100644
--- a/src/Java/gtPlusPlus/core/handler/AchievementHandler.java
+++ b/src/Java/gtPlusPlus/core/handler/AchievementHandler.java
@@ -17,6 +17,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.ALLOY;
import gtPlusPlus.core.material.ELEMENT;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools;
@@ -74,7 +75,9 @@ public class AchievementHandler {
this.registerAchievement("semifluid", -14, -10, GregtechItemList.Generator_SemiFluid_HV.get(1), aBaseAchievementName, false);
this.registerAchievement("earlywasher", -13, -10, GregtechItemList.SimpleDustWasher_ULV.get(1), aBaseAchievementName, false);
this.registerAchievement("advancedsteam", -12, -10, GregtechItemList.Boiler_Advanced_MV.get(1), aBaseAchievementName, false);
- this.registerAchievement("pollutionremoval", -11, -10, GregtechItemList.Pollution_Cleaner_IV.get(1), aBaseAchievementName, false);
+ if (PollutionUtils.isPollutionEnabled()) {
+ this.registerAchievement("pollutionremoval", -11, -10, GregtechItemList.Pollution_Cleaner_IV.get(1), aBaseAchievementName, false);
+ }
this.registerAchievement("hiampxform", -10, -10, GregtechItemList.Transformer_HA_HV_MV.get(1), aBaseAchievementName, false);
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
index ca62a524c1..be02e352c7 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
@@ -2,7 +2,9 @@ package gtPlusPlus.core.handler;
import static gtPlusPlus.core.lib.LoadedMods.Gregtech;
-import java.util.*;
+import java.util.LinkedList;
+import java.util.Queue;
+import java.util.Set;
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
import gregtech.api.enums.GT_Values;
@@ -11,22 +13,99 @@ 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.common.compat.COMPAT_BigReactors;
+import gtPlusPlus.core.common.compat.COMPAT_CompactWindmills;
+import gtPlusPlus.core.common.compat.COMPAT_EnderIO;
+import gtPlusPlus.core.common.compat.COMPAT_ExtraUtils;
+import gtPlusPlus.core.common.compat.COMPAT_HarvestCraft;
+import gtPlusPlus.core.common.compat.COMPAT_IC2;
+import gtPlusPlus.core.common.compat.COMPAT_MorePlanets;
+import gtPlusPlus.core.common.compat.COMPAT_OpenBlocks;
+import gtPlusPlus.core.common.compat.COMPAT_PneumaticCraft;
+import gtPlusPlus.core.common.compat.COMPAT_RFTools;
+import gtPlusPlus.core.common.compat.COMPAT_Railcraft;
+import gtPlusPlus.core.common.compat.COMPAT_SimplyJetpacks;
+import gtPlusPlus.core.common.compat.COMPAT_Thaumcraft;
+import gtPlusPlus.core.common.compat.COMPAT_Witchery;
import gtPlusPlus.core.handler.Recipes.LateRegistrationHandler;
import gtPlusPlus.core.handler.Recipes.RegistrationHandler;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.MaterialGenerator;
-import gtPlusPlus.core.recipe.*;
+import gtPlusPlus.core.recipe.RECIPES_Extruder;
+import gtPlusPlus.core.recipe.RECIPES_GREGTECH;
+import gtPlusPlus.core.recipe.RECIPES_LaserEngraver;
+import gtPlusPlus.core.recipe.ShapedRecipeObject;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
-import gtPlusPlus.xmod.gregtech.HANDLER_GT;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaGarbageCollector;
-import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaPollutionCreator;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_FluidCanning;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Recycling;
-import gtPlusPlus.xmod.gregtech.registration.gregtech.*;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.Gregtech4Content;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechAdvancedBoilers;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechAdvancedMixer;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechAlgaeContent;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechAmazonWarehouse;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechBedrockPlatforms;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechBufferDynamos;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechComponentAssembler;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechCustomHatches;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechCyclotron;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechDehydrator;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechEnergyBuffer;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechFactoryGradeReplacementMultis;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechFluidReactor;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechGeneratorsULV;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechGeothermalThermalGenerator;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechHiAmpTransformer;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialArcFurnace;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialBlastSmelter;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialCentrifuge;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialCokeOven;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialCuttingFactory;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialElectrolyzer;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialExtruder;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialFishPond;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialFuelRefinery;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialGeneratorArray;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialMacerator;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialMassFabricator;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialMixer;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialMultiMachine;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialMultiTank;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialPlatePress;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialSifter;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialThermalCentrifuge;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialTreeFarm;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialWashPlant;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialWiremill;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIronBlastFurnace;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechLFTR;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechLargeTurbinesAndHeatExchanger;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechMiniRaFusion;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechNaqReactor;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechPollutionDevices;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechPowerBreakers;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechPowerSubStation;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechRTG;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechRocketFuelGenerator;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechSafeBlock;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechSemiFluidgenerators;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechSimpleWasher;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechSolarGenerators;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechSolarTower;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechSteamCondenser;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechSuperChests;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechTeslaTower;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechThaumcraftDevices;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechThreadedBuffers;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechTieredChunkloaders;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechTieredFluidTanks;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechTreeFarmerTE;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechWirelessChargers;
+import gtPlusPlus.xmod.gregtech.registration.gregtech.NewHorizonsAccelerator;
import net.minecraft.item.ItemStack;
public class COMPAT_HANDLER {
@@ -213,6 +292,7 @@ public class COMPAT_HANDLER {
for (RunnableWithInfo<Material> r : m) {
try {
r.run();
+ Logger.INFO("[FIND] "+r.getInfoData().getLocalizedName()+" recipes generated.");
}
catch (Throwable t) {
t.printStackTrace();
@@ -222,6 +302,9 @@ public class COMPAT_HANDLER {
}
RecipeGen_Recycling.executeGenerators();
runQueuedMisc();
+
+ // Do Fluid Canning Last, because they're not executed on demand, but rather queued.
+ RecipeGen_FluidCanning.init();
}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java b/src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java
index 55f4dfa0be..6f36b359ad 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java
@@ -6,6 +6,7 @@ import java.util.List;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
+import gtPlusPlus.api.helpers.MaterialHelper;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.minecraft.ItemPackage;
@@ -105,6 +106,8 @@ public class AgriculturalChem extends ItemPackage {
* 19 - Sodium Hydroxide // Exists in Newer GT
* 20 - Sodium Carbonate
* 21 - Lithium Chloride
+ * 22 - Pellet Mold
+ * 23 - Clean Aluminium Mix
*/
public static ItemStack mAlgaeBiosmass;
@@ -129,6 +132,8 @@ public class AgriculturalChem extends ItemPackage {
public static ItemStack mSodiumHydroxide;
public static ItemStack mSodiumCarbonate;
public static ItemStack mLithiumChloride;
+ public static ItemStack mPelletMold;
+ public static ItemStack mCleanAluminiumMix;
@Override
@@ -196,6 +201,8 @@ public class AgriculturalChem extends ItemPackage {
}
mSodiumCarbonate = ItemUtils.simpleMetaStack(mAgrichemItem1, 20, 1);
mLithiumChloride = ItemUtils.simpleMetaStack(mAgrichemItem1, 21, 1);
+ mPelletMold = ItemUtils.simpleMetaStack(mAgrichemItem1, 22, 1);
+ mCleanAluminiumMix = ItemUtils.simpleMetaStack(mAgrichemItem1, 23, 1);
ItemUtils.addItemToOreDictionary(mGreenAlgaeBiosmass, "biomassGreenAlgae");
ItemUtils.addItemToOreDictionary(mBrownAlgaeBiosmass, "biomassBrownAlgae");
@@ -533,8 +540,8 @@ public class AgriculturalChem extends ItemPackage {
GT_Values.RA.addCentrifugeRecipe(CI.getNumberedCircuit(20), ItemUtils.getSimpleStack(aManureByprod, 4),
FluidUtils.getFluidStack("sulfuricacid", 250), // In Fluid
FluidUtils.getFluidStack("sulfuricapatite", 50), // Out Fluid
- Materials.Phosphorus.getDustSmall(2), Materials.Calcium.getDustSmall(2),
- Materials.Copper.getDustTiny(1), Materials.Carbon.getDust(1), ItemUtils.getSimpleStack(dustDirt, 1),
+ MaterialHelper.getDustSmall(Materials.Phosphorus, 2), MaterialHelper.getDustSmall(Materials.Calcium, 2),
+ MaterialHelper.getDustTiny(Materials.Copper, 1), MaterialHelper.getDust(Materials.Carbon, 1), ItemUtils.getSimpleStack(dustDirt, 1),
ItemUtils.getItemStackOfAmountFromOreDict("dustTinyAmmoniumNitrate", 1),
new int[] { 2500, 2500, 750, 1000, 5000, 250 }, // Chances
20 * 20, // Time
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
index 0bea7dfc31..2d063c45d4 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
@@ -9,6 +9,7 @@ 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.helpers.MaterialHelper;
import gtPlusPlus.api.objects.minecraft.ItemPackage;
import gtPlusPlus.core.item.base.BaseItemComponent;
import gtPlusPlus.core.lib.CORE;
@@ -478,15 +479,17 @@ public class RocketFuels extends ItemPackage {
}
+ MaterialHelper.getCells(aMaterial_Water, 1);
+
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);
+ ItemStack aCellWater = MaterialHelper.getCells(aMaterial_Water, 1);
+ ItemStack aCellOxygen = MaterialHelper.getCells(aMaterial_Oxygen, 1);
+ ItemStack aCellChloramine = MaterialHelper.getCells(aMaterial_Chloramine, 1);
+ ItemStack aCellDimethylamine = MaterialHelper.getCells(aMaterial_Dimethylamine, 1);
+ ItemStack aCellDilutedHydrochloricAcid = MaterialHelper.getCells(aMaterial_DilutedHydrochloricAcid, 1);
+ ItemStack aCellNitrogenDioxide = MaterialHelper.getCells(aMaterial_NitrogenDioxide, 1);
+ ItemStack aCellDinitrogenTetroxide = MaterialHelper.getCells(aMaterial_DinitrogenTetroxide, 1);
+ ItemStack aCellDimethylhydrazine = MaterialHelper.getCells(aMaterial_Dimethylhydrazine, 1);
@@ -671,7 +674,17 @@ public class RocketFuels extends ItemPackage {
//Register default fluids
Diesel = MaterialUtils.getMaterial("Fuel", "Diesel").getFluid(1).getFluid();
- Oil_Heavy = MaterialUtils.getMaterial("OilHeavy", "Oil").getFluid(1).getFluid();
+
+ // 5.08 Compat
+ if (!FluidUtils.doesFluidExist("OilHeavy")){
+ Oil_Heavy = FluidUtils.generateFluidNoPrefix("OilHeavy", "Heavy Oil", 200, new short[]{10, 10, 10, 100});
+ }
+ else {
+ Oil_Heavy = MaterialUtils.getMaterial("OilHeavy", "Oil").getFluid(1).getFluid();
+ if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cellOilHeavy", 1) == null){
+ new BaseItemComponent("OilHeavy", "Heavy Oil", new short[] {10, 10, 10});
+ }
+ }
//Create Kerosene
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java b/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java
index 1e833a7b00..10eaaf0da9 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/StandardBaseParticles.java
@@ -149,7 +149,7 @@ public class StandardBaseParticles extends BaseItemParticle {
@Override
public void registerIcons(IIconRegister reg) {
for (int i = 0; i < this.icons.length; i++) {
- this.icons[i] = reg.registerIcon(CORE.MODID + ":" + "particle/"+i);
+ this.icons[i] = reg.registerIcon(CORE.MODID + ":" + "particle/new/"+i);
}
}
diff --git a/src/Java/gtPlusPlus/core/item/general/ItemGenericToken.java b/src/Java/gtPlusPlus/core/item/general/ItemGenericToken.java
index c076bf5c95..21d2c6e120 100644
--- a/src/Java/gtPlusPlus/core/item/general/ItemGenericToken.java
+++ b/src/Java/gtPlusPlus/core/item/general/ItemGenericToken.java
@@ -148,8 +148,19 @@ public class ItemGenericToken extends CoreItem {
}
@Override
- public int getItemStackLimit(ItemStack stack) {
- return mMaxStackSizes.get(stack.getItemDamage());
+ public int getItemStackLimit(ItemStack aStack) {
+ if (aStack == null) {
+ return getItemStackLimit();
+ }
+ else {
+ Integer aSize = mMaxStackSizes.get(aStack.getItemDamage());
+ if (aSize != null) {
+ return aSize;
+ }
+ else {
+ return getItemStackLimit();
+ }
+ }
}
@Override
diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
index 797a033dcc..20fdfd3c8c 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -70,20 +70,12 @@ public class MaterialGenerator {
* @return
*/
public static boolean addFluidExtractionRecipe(ItemStack aEmpty, ItemStack aRemains, FluidStack aFluid, Integer aDuration, Integer aEU) {
- /*GT_Recipe r = new Recipe_GT(
- true,
- new ItemStack[] {aEmpty, aRemains != null ? aRemains : null},
- new ItemStack[] {},
- null,
- new int[] {},
- new FluidStack[] {},
- new FluidStack[] {c},
- a2, a3, a1);*/
- //new RecipeGen_FluidCanning(r, true);
RecipeGen_FluidCanning g = new RecipeGen_FluidCanning(true, aEmpty, aRemains, aFluid, aDuration, aEU);
if (g != null && g.valid()) {
+ //Logger.INFO("[FIND] Adding Extraction recipe for "+ItemUtils.getItemName(aEmpty)+", "+ItemUtils.getItemName(aRemains)+", "+ItemUtils.getFluidName(aFluid));
return true;
}
+ Logger.INFO("[ERROR] FAILED adding Extraction recipe for "+ItemUtils.getItemName(aEmpty)+", "+ItemUtils.getItemName(aRemains)+", "+ItemUtils.getFluidName(aFluid));
return false;
}
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index cac54cec4e..81e3216917 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -833,7 +833,17 @@ public class RECIPES_GREGTECH {
//Add an empty recipe, but only if we didn't for the standard GT HF. Prevents Fluid transformation exploits.
if (!addedGtExtraction) {
CORE.RA.addFluidCannerRecipe(ItemUtils.getSimpleStack(ModItems.itemHydrofluoricPotion), ItemUtils.getSimpleStack(Items.glass_bottle), null, FluidUtils.getFluidStack("hydrofluoricacid", 125));
- }
+ }
+
+ //Gelid Cryotheum
+ CORE.RA.addFluidExtractionRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustCryotheum", 1), FluidUtils.getFluidStack("cryotheum", 250), 200, 240);
+
+ //Ender Fluid
+ CORE.RA.addFluidExtractionRecipe(ItemUtils.getSimpleStack(Items.ender_pearl), FluidUtils.getFluidStack("ender", 250), 100, 30);
+
+ //Blazing Pyrotheum
+ CORE.RA.addFluidExtractionRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustPyrotheum", 1), FluidUtils.getFluidStack("pyrotheum", 250), 200, 240);
+
}
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java
index 02b282b1b3..5048c5f2a5 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java
@@ -21,6 +21,7 @@ import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
+import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials;
@@ -156,13 +157,13 @@ public class RECIPES_General {
//Shaped Crafting for ULV Material Dusts
-
+
//Potin
if (RecipeUtils.addShapelessGregtechRecipe(new Object[] {"dustLead", "dustBronze", "dustTin",
"dustLead", "dustBronze"}, ALLOY.POTIN.getDust(5))){
Logger.INFO("Added shapeless recipe for Potin Dust.");
}
-
+
//Tumbaga
if (RecipeUtils.addShapelessGregtechRecipe(new Object[] {
"dustGold", "dustGold", "dustCopper"}, ItemUtils.getSimpleStack(ModItems.dustTumbagaMix))){
@@ -173,7 +174,7 @@ public class RECIPES_General {
ItemUtils.getSimpleStack(ModItems.dustTumbagaMix),
ItemUtils.getSimpleStack(ModItems.dustTumbagaMix),
"dustGold"
- },
+ },
ALLOY.TUMBAGA.getDust(10))){
Logger.INFO("Added shapeless recipe for Tumbaga Dust.");
}
@@ -293,7 +294,7 @@ public class RECIPES_General {
CI.getElectricPump(2, 1),
CI.getPlate(2, GTNH ? 4 : 2),
ItemUtils.getItemStackOfAmountFromOreDict(CI.getTieredCircuitOreDictName(0), GTNH ? 2 : 1),
- },
+ },
FluidUtils.getHotWater(500), // Fluid
ItemUtils.getSimpleStack(ModBlocks.blockPestKiller), // Output
20 * 60, // Dur
@@ -394,12 +395,11 @@ public class RECIPES_General {
generatePipeRecipes(e.mDefaultLocalName, e.getMass(), tVoltageMultiplier);
}
- if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK)
- RecipeUtils.addShapedGregtechRecipe(
- CI.component_Plate[4], "rotorGtStainlessSteel", CI.component_Plate[4],
- CI.getTieredCircuitOreDictName(3), CI.machineHull_HV, CI.getTieredCircuitOreDictName(3),
- CI.component_Plate[4], CI.electricPump_HV, CI.component_Plate[4],
- GregtechItemList.Hatch_Air_Intake.get(1L, new Object[0]));
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.component_Plate[4], "rotorGtStainlessSteel", CI.component_Plate[4],
+ CI.getTieredCircuitOreDictName(3), CI.machineHull_HV, CI.getTieredCircuitOreDictName(3),
+ CI.component_Plate[4], CI.electricPump_HV, CI.component_Plate[4],
+ GregtechItemList.Hatch_Air_Intake.get(1L, new Object[0]));
RecipeUtils.addShapedGregtechRecipe(CI.component_Plate[6], ALLOY.MARAGING250.getGear(1), CI.component_Plate[6],
CI.getTieredCircuitOreDictName(4), GregtechItemList.Casing_AdvancedVacuum.get(1),
@@ -417,7 +417,7 @@ public class RECIPES_General {
CI.component_Plate[8], GregtechItemList.Hatch_Input_Naquadah.get(1L, new Object[0]));
- if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ if (PollutionUtils.isPollutionEnabled()) {
GT_ModHandler.addCraftingRecipe(GregtechItemList.Hatch_Muffler_Adv_LV.get(1L, new Object[0]), bitsd,
new Object[] { "M", "P", Character.valueOf('M'), ItemList.Hatch_Muffler_LV.get(1), Character.valueOf('P'),
GregtechItemList.Pollution_Cleaner_LV.get(1) });
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
index f5bd390aee..254d83ecf4 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
@@ -16,6 +16,7 @@ import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.*;
+import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.everglades.dimension.Dimension_Everglades;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
@@ -940,7 +941,7 @@ public class RECIPES_Machines {
}
- if (CORE.ConfigSwitches.enableMachine_Pollution && CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){
+ if (CORE.ConfigSwitches.enableMachine_Pollution && PollutionUtils.isPollutionEnabled()){
RecipeUtils.addShapedGregtechRecipe(
"plateCarbon", "plateCarbon", "plateCarbon",
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java
index 1de4209bf9..ea161e4adb 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java
@@ -6,6 +6,7 @@ import java.util.Map;
import java.util.Properties;
import cpw.mods.fml.common.registry.LanguageRegistry;
+import gregtech.api.util.GT_LanguageManager;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
public class LangUtils {
@@ -47,5 +48,9 @@ public class LangUtils {
}
return false;
}
+
+ public static String trans(String aNr, String aEnglish) {
+ return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_" + aNr, aEnglish, false);
+ }
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java
index b3372e8bde..2ae2a9f1de 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java
@@ -45,6 +45,10 @@ public class PollutionUtils {
mIsPollutionEnabled = false;
}
}
+
+ public static boolean isPollutionEnabled() {
+ return mIsPollutionEnabled;
+ }
public static boolean mPollution() {
try {
diff --git a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
index 7ef9ef6632..135f98dd17 100644
--- a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
+++ b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
@@ -28,7 +28,22 @@ public class ReflectionUtils {
public static Map<String, Class<?>> mCachedClasses = new LinkedHashMap<String, Class<?>>();
public static Map<String, CachedMethod> mCachedMethods = new LinkedHashMap<String, CachedMethod>();
public static Map<String, CachedField> mCachedFields = new LinkedHashMap<String, CachedField>();
+ public static Map<String, CachedConstructor> mCachedConstructors = new LinkedHashMap<String, CachedConstructor>();
+ private static class CachedConstructor {
+
+ private final Constructor<?> METHOD;
+
+ public CachedConstructor(Constructor<?> aCons) {
+ METHOD = aCons;
+ }
+
+ public Constructor<?> get() {
+ return METHOD;
+ }
+
+ }
+
private static class CachedMethod {
private final boolean STATIC;
@@ -107,6 +122,49 @@ public class ReflectionUtils {
return false;
}
+ private static boolean cacheConstructor(Class<?> aClass, Constructor<?> aConstructor) {
+ if (aConstructor == null) {
+ return false;
+ }
+ CachedConstructor y = mCachedConstructors.get(aClass.getName()+"."+ArrayUtils.toString(aConstructor.getParameterTypes()));
+ if (y == null) {
+ mCachedConstructors.put(aClass.getName()+"."+ArrayUtils.toString(aConstructor.getParameterTypes()), new CachedConstructor(aConstructor));
+ return true;
+ }
+ return false;
+ }
+
+
+ /**
+ * Returns a cached {@link Constructor} object.
+ * @param aClass - Class containing the Constructor.
+ * @param aTypes - Varags Class Types for objects constructor.
+ * @return - Valid, non-final, {@link Method} object, or {@link null}.
+ */
+ public static Constructor<?> getConstructor(Class<?> aClass, Class<?>... aTypes) {
+ if (aClass == null || aTypes == null) {
+ return null;
+ }
+
+ String aMethodKey = ArrayUtils.toString(aTypes);
+ //Logger.REFLECTION("Looking up method in cache: "+(aClass.getName()+"."+aMethodName + "." + aMethodKey));
+ CachedConstructor y = mCachedConstructors.get(aClass.getName() + "." + aMethodKey);
+ if (y == null) {
+ Constructor<?> u = getConstructor_Internal(aClass, aTypes);
+ if (u != null) {
+ Logger.REFLECTION("Caching Constructor: "+aClass.getName() + "." + aMethodKey);
+ cacheConstructor(aClass, u);
+ return u;
+ } else {
+ return null;
+ }
+ } else {
+ return y.get();
+ }
+ }
+
+
+
/**
* Returns a cached {@link Class} object.
@@ -716,6 +774,55 @@ public class ReflectionUtils {
}
return m;
}
+
+ private static Constructor<?> getConstructor_Internal(Class<?> aClass, Class<?>... aTypes) {
+ Constructor<?> c = null;
+ try {
+ Logger.REFLECTION("Constructor: Internal Lookup: "+aClass.getName());
+ c = aClass.getDeclaredConstructor(aTypes);
+ if (c != null) {
+ c.setAccessible(true);
+ int modifiers = c.getModifiers();
+ Field modifierField = c.getClass().getDeclaredField("modifiers");
+ modifiers = modifiers & ~Modifier.FINAL;
+ modifierField.setAccessible(true);
+ modifierField.setInt(c, modifiers);
+ }
+ }
+ catch (Throwable t) {
+ Logger.REFLECTION("Constructor: Internal Lookup Failed: "+aClass.getName());
+ try {
+ c = getConstructorRecursively(aClass, aTypes);
+ } catch (Exception e) {
+ Logger.REFLECTION("Unable to find method '"+aClass.getName()+"'");
+ e.printStackTrace();
+ dumpClassInfo(aClass);
+ }
+ }
+ return c;
+ }
+
+ private static Constructor<?> getConstructorRecursively(Class<?> aClass, Class<?>... aTypes) throws Exception {
+ try {
+ Logger.REFLECTION("Constructor: Recursion Lookup: "+aClass.getName());
+ Constructor<?> c = aClass.getConstructor(aTypes);
+ if (c != null) {
+ c.setAccessible(true);
+ int modifiers = c.getModifiers();
+ Field modifierField = c.getClass().getDeclaredField("modifiers");
+ modifiers = modifiers & ~Modifier.FINAL;
+ modifierField.setAccessible(true);
+ modifierField.setInt(c, modifiers);
+ }
+ return c;
+ } catch (final NoSuchMethodException | IllegalArgumentException | IllegalAccessException e) {
+ final Class<?> superClass = aClass.getSuperclass();
+ if (superClass == null || superClass == Object.class) {
+ throw e;
+ }
+ return getConstructor_Internal(superClass, aTypes);
+ }
+ }
private static Method getMethodRecursively(final Class<?> clazz, final String aMethodName) throws NoSuchMethodException {
try {
@@ -795,7 +902,7 @@ public class ReflectionUtils {
}
private static Class<?> getClass_Internal(String string) {
- Class aClass = null;
+ Class<?> aClass = null;
if (ReflectionUtils.doesClassExist(string)) {
try {
aClass = Class.forName(string);
@@ -815,7 +922,7 @@ public class ReflectionUtils {
Logger.REFLECTION("Building: "+aClassName);
}
Logger.REFLECTION("Trying to search '"+aClassName+"' for inner classes.");
- Class clazz = ReflectionUtils.getClass(aClassName);
+ Class<?> clazz = ReflectionUtils.getClass(aClassName);
Class[] y = clazz.getDeclaredClasses();
if (y == null || y.length <= 0) {
@@ -824,7 +931,7 @@ public class ReflectionUtils {
}
else {
boolean found = false;
- for (Class h : y) {
+ for (Class<?> h : y) {
Logger.REFLECTION("Found hidden inner class: "+h.getCanonicalName());
if (h.getSimpleName().toLowerCase().equals(aData[aData.length-1].toLowerCase())) {
Logger.REFLECTION("Found correct class. ["+aData[aData.length-1]+"] Caching at correct location: "+string);
diff --git a/src/Java/gtPlusPlus/plugin/agrichem/BioRecipes.java b/src/Java/gtPlusPlus/plugin/agrichem/BioRecipes.java
index 477bdb2ff5..051f73b962 100644
--- a/src/Java/gtPlusPlus/plugin/agrichem/BioRecipes.java
+++ b/src/Java/gtPlusPlus/plugin/agrichem/BioRecipes.java
@@ -5,6 +5,7 @@ import static gtPlusPlus.core.lib.CORE.GTNH;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.HashSet;
import gregtech.api.enums.GT_Values;
@@ -15,13 +16,16 @@ import gregtech.api.util.GT_ModHandler;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.item.ModItems;
+import gtPlusPlus.core.item.base.BaseItemComponent;
import gtPlusPlus.core.item.chemistry.AgriculturalChem;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.core.material.ALLOY;
import gtPlusPlus.core.material.MISC_MATERIALS;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.MaterialUtils;
import gtPlusPlus.core.util.minecraft.OreDictUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
@@ -104,9 +108,27 @@ public class BioRecipes {
mFert = AgriculturalChem.dustOrganicFertilizer;
mDustDirt = AgriculturalChem.dustDirt;
+ // 5.08 Salt Water Solution ;)
+ if (!FluidUtils.doesFluidExist("saltwater")){
+ mSalineWater = FluidUtils.generateFluidNoPrefix("saltwater", "Salt Water", 200, new short[]{10, 30, 220, 100});
+ }
+ else {
+ Materials aSaltWater = MaterialUtils.getMaterial("saltwater");
+ if (aSaltWater != null) {
+ FluidStack aWaterStack = aSaltWater.getFluid(1);
+ if (aWaterStack != null) {
+ mSalineWater = aSaltWater.getFluid(1).getFluid();
+ }
+ }
+ if (mSalineWater == null) {
+ mSalineWater = FluidUtils.getWildcardFluidStack("saltwater", 1).getFluid();
+ }
+ if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cellSaltWater", 1) == null){
+ new BaseItemComponent("saltwater", "Salt Water", new short[] {10, 30, 220});
+ }
+ }
mDistilledWater = FluidUtils.getDistilledWater(1).getFluid();
- mSalineWater = FluidUtils.getFluidStack("saltwater", 1).getFluid();
mThermalWater = FluidUtils.getFluidStack("ic2hotwater", 1).getFluid();
mAir = FluidUtils.getFluidStack("air", 1).getFluid();
mSulfuricWasteWater = FluidUtils.getFluidStack("sulfuricapatite", 1).getFluid();
@@ -157,7 +179,8 @@ public class BioRecipes {
recipeGoldenBrownCelluloseFiber();
recipeRedCelluloseFiber();
recipeSodiumHydroxide();
- recipeSodiumCarbonate();
+ recipeSodiumCarbonate();
+ recipePelletMold();
recipeAluminiumPellet();
recipeAlumina();
recipeAluminium();
@@ -176,17 +199,17 @@ public class BioRecipes {
}
private static void registerFuels() {
-
+
// Burnables
ItemUtils.registerFuel(ItemUtils.getSimpleStack(AgriculturalChem.mWoodPellet, 1), 800);
ItemUtils.registerFuel(ItemUtils.getSimpleStack(AgriculturalChem.mWoodBrick, 1), 4800);
-
+
// Gas Fuels
//GT_Values.RA.addFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalGas", 1), null, 96, 1);
-
+
//Combustion Fuels
GT_Values.RA.addFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellButanol", 1), null, 250, 0);
-
+
}
private static void recipeGreenAlgae() {
// Compost
@@ -214,7 +237,7 @@ public class BioRecipes {
ItemUtils.getSimpleStack(AgriculturalChem.mCompost, 1));
// Alginic acid
- GT_Values.RA.addExtractorRecipe(
+ CORE.RA.addExtractorRecipe(
ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 10),
ItemUtils.getSimpleStack(AgriculturalChem.mAlginicAcid, 1),
20 * 15,
@@ -314,7 +337,7 @@ public class BioRecipes {
GT_ModHandler.addPulverisationRecipe(
ItemUtils.getSimpleStack(AgriculturalChem.mCelluloseFiber, 5),
ItemUtils.getSimpleStack(AgriculturalChem.mCompost, 1));
-
+
// Plastic
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
@@ -326,7 +349,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mPropionicAcid, 500),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mLiquidPlastic, (144)),
@@ -351,6 +374,14 @@ public class BioRecipes {
ItemUtils.getSimpleStack(AgriculturalChem.mWoodPellet, 1)
}, ItemUtils.getSimpleStack(AgriculturalChem.mWoodBrick, 2));
+ // Extruder Recipe
+ GT_Values.RA.addExtruderRecipe(
+ ItemUtils.getSimpleStack(AgriculturalChem.mCelluloseFiber, 12),
+ ItemUtils.getSimpleStack(AgriculturalChem.mPelletMold, 0),
+ ItemUtils.getSimpleStack(AgriculturalChem.mWoodPellet, 3),
+ 20 * 2,
+ 30);
+
// Assembly Recipe
CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
getBioChip(2),
@@ -476,7 +507,7 @@ public class BioRecipes {
120 * 20,
60,
1);
-
+
CORE.RA.addDehydratorRecipe(
CI.emptyCells(1),
FluidUtils.getFluidStack(mFermentationBase, 4000),
@@ -489,14 +520,14 @@ public class BioRecipes {
}
-
-
+
+
public final static HashSet<GT_ItemStack> mFruits = new HashSet<GT_ItemStack>();
public final static HashSet<GT_ItemStack> mVege = new HashSet<GT_ItemStack>();
public final static HashSet<GT_ItemStack> mNuts = new HashSet<GT_ItemStack>();
public final static HashSet<GT_ItemStack> mSeeds = new HashSet<GT_ItemStack>();
-
+
public final static AutoMap<ItemStack> mList_Master_FruitVege = new AutoMap<ItemStack>();
public final static AutoMap<ItemStack> mList_Master_Seeds = new AutoMap<ItemStack>();
@@ -509,7 +540,7 @@ public class BioRecipes {
processOreDictEntry("listAllNut", mNuts);
processOreDictEntry("listAllseed", mSeeds);
processOreDictEntry("listAllSeed", mSeeds);
-
+
if (!mFruits.isEmpty()) {
for (GT_ItemStack g : mFruits) {
mList_Master_FruitVege.put(g.toStack());
@@ -531,7 +562,7 @@ public class BioRecipes {
}
}
}
-
+
// Make Fermentation
private static void processOreDictEntry(String aOreName, HashSet<GT_ItemStack> mfruits2) {
ArrayList<ItemStack> aTemp = OreDictionary.getOres(aOreName);
@@ -541,8 +572,8 @@ public class BioRecipes {
}
}
}
-
-
+
+
private static void recipeFermentationBase() {
processFermentationOreDict();
AutoMap<ItemStack> aFruitVege = mList_Master_FruitVege;
@@ -551,43 +582,48 @@ public class BioRecipes {
for (ItemStack a : aFruitVege) {
if (aMap.contains(a)) {
continue;
- }
- CORE.RA.addFluidReactorRecipe(
- new ItemStack[] {
- getBioChip(2),
- ItemUtils.getSimpleStack(a, 10)
- },
- new FluidStack[] {
- FluidUtils.getFluidStack(BioRecipes.mDistilledWater, 1000),
- },
- new ItemStack[] {
-
- },
- new FluidStack[] {
- FluidUtils.getFluidStack(BioRecipes.mFermentationBase, 200),
- },
- 60 * 20,
- 30,
- 1);
+ }
+ if (ItemUtils.checkForInvalidItems(a)) {
+ CORE.RA.addFluidReactorRecipe(
+ new ItemStack[] {
+ getBioChip(2),
+ ItemUtils.getSimpleStack(a, 10)
+ },
+ new FluidStack[] {
+ FluidUtils.getFluidStack(BioRecipes.mDistilledWater, 1000),
+ },
+ new ItemStack[] {
+
+ },
+ new FluidStack[] {
+ FluidUtils.getFluidStack(BioRecipes.mFermentationBase, 200),
+ },
+ 60 * 20,
+ 30,
+ 1);
+ }
+
}
for (ItemStack a : aSeeds) {
- CORE.RA.addFluidReactorRecipe(
- new ItemStack[] {
- getBioChip(3),
- ItemUtils.getSimpleStack(a, 20)
- },
- new FluidStack[] {
- FluidUtils.getFluidStack(BioRecipes.mDistilledWater, 1000),
- },
- new ItemStack[] {
-
- },
- new FluidStack[] {
- FluidUtils.getFluidStack(BioRecipes.mFermentationBase, 50),
- },
- 60 * 20,
- 30,
- 1);
+ if (ItemUtils.checkForInvalidItems(a)) {
+ CORE.RA.addFluidReactorRecipe(
+ new ItemStack[] {
+ getBioChip(3),
+ ItemUtils.getSimpleStack(a, 20)
+ },
+ new FluidStack[] {
+ FluidUtils.getFluidStack(BioRecipes.mDistilledWater, 1000),
+ },
+ new ItemStack[] {
+
+ },
+ new FluidStack[] {
+ FluidUtils.getFluidStack(BioRecipes.mFermentationBase, 50),
+ },
+ 60 * 20,
+ 30,
+ 1);
+ }
}
// Sugar Cane
@@ -600,7 +636,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mDistilledWater, 1000),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mFermentationBase, 75),
@@ -608,7 +644,7 @@ public class BioRecipes {
90 * 20,
30,
1);
-
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(5),
@@ -619,7 +655,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mThermalWater, 2000),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mFermentationBase, 150),
@@ -627,10 +663,10 @@ public class BioRecipes {
120 * 20,
30,
1);
-
+
// Sugar Beet
if (OreDictUtils.containsValidEntries("cropSugarbeet")) {
-
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(4),
@@ -640,7 +676,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mDistilledWater, 1000),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mFermentationBase, 75),
@@ -648,7 +684,7 @@ public class BioRecipes {
60 * 20,
30,
1);
-
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(5),
@@ -659,7 +695,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mThermalWater, 2000),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mFermentationBase, 150),
@@ -668,7 +704,7 @@ public class BioRecipes {
30,
1);
}
-
+
// Produce Acetone, Butanol and Ethanol
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
@@ -678,7 +714,7 @@ public class BioRecipes {
ItemUtils.getSimpleStack(AgriculturalChem.mRedCelluloseFiber, 16),
},
new FluidStack[] {
-
+
},
new ItemStack[] {
ItemUtils.getItemStackOfAmountFromOreDict("cellButanol", 6),
@@ -687,10 +723,10 @@ public class BioRecipes {
CI.emptyCells(38)
},
new FluidStack[] {
-
+
},
900 * 20,
- 240,
+ 32,
2);
@@ -719,7 +755,7 @@ public class BioRecipes {
private static void recipeEthanol() {
- GT_Values.RA.addDistilleryRecipe(
+ CORE.RA.addDistilleryRecipe(
BioRecipes.getBioChip(2),
FluidUtils.getFluidStack(BioRecipes.mFermentationBase, 1000),
FluidUtils.getFluidStack(BioRecipes.mEthanol, 100),
@@ -727,7 +763,7 @@ public class BioRecipes {
20 * 20,
60,
false);
-
+
}
private static void recipeGoldenBrownCelluloseFiber() {
@@ -739,7 +775,7 @@ public class BioRecipes {
}
private static void recipeRedCelluloseFiber() {
- GT_Values.RA.addExtractorRecipe(
+ CORE.RA.addExtractorRecipe(
ItemUtils.getSimpleStack(AgriculturalChem.mRedCelluloseFiber, 20),
ItemUtils.getSimpleStack(ModItems.dustCalciumCarbonate, 5),
20 * 30,
@@ -763,8 +799,8 @@ public class BioRecipes {
},
300 * 20,
120,
- 2);
-
+ 1);
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(5),
@@ -781,7 +817,7 @@ public class BioRecipes {
},
60 * 20,
60,
- 2);
+ 1);
}
private static void recipeSodiumCarbonate() {
@@ -806,8 +842,8 @@ public class BioRecipes {
},
120 * 20,
120,
- 900);
-
+ 1);
+
}
CORE.RA.addFluidReactorRecipe(
@@ -829,18 +865,108 @@ public class BioRecipes {
},
180 * 20,
120,
- 900);
-
+ 1);
+
+ }
+
+ private static void recipePelletMold() {
+ GregtechItemList.Pellet_Mold.set(ItemUtils.getSimpleStack(AgriculturalChem.mPelletMold, 1));
+ GT_Values.RA.addLatheRecipe(
+ ALLOY.TUMBAGA.getBlock(1),
+ GregtechItemList.Pellet_Mold.get(1),
+ null,
+ 20 * 30 * 15,
+ 90);
}
private static void recipeAluminiumPellet() {
- GT_Values.RA.addAutoclaveRecipe(
- ItemUtils.getItemStackOfAmountFromOreDict("dustAluminium", 3),
- FluidUtils.getFluidStack(BioRecipes.mAir, 1000),
+
+ // Ore Names, no prefix
+ AutoMap<String> aOreNames = new AutoMap<String>();
+
+ aOreNames.put("Lazurite");
+ aOreNames.put("Bauxite");
+ aOreNames.put("Grossular");
+ aOreNames.put("Pyrope");
+ aOreNames.put("Sodalite");
+ aOreNames.put("Spodumene");
+ aOreNames.put("Ruby");
+ aOreNames.put("Sapphire");
+ aOreNames.put("GreenSapphire");
+
+ // Voltage
+ HashMap<String, Integer> aOreData1 = new HashMap<String, Integer>();
+ // Input Count
+ HashMap<String, Integer> aOreData2 = new HashMap<String, Integer>();
+ // Output Count
+ HashMap<String, Integer> aOreData3 = new HashMap<String, Integer>();
+
+ aOreData1.put("Lazurite", 120);
+ aOreData1.put("Bauxite", 90);
+ aOreData1.put("Grossular", 90);
+ aOreData1.put("Pyrope", 90);
+ aOreData1.put("Sodalite", 90);
+ aOreData1.put("Spodumene", 90);
+ aOreData1.put("Ruby", 60);
+ aOreData1.put("Sapphire", 30);
+ aOreData1.put("GreenSapphire", 30);
+ aOreData2.put("Lazurite", 14);
+ aOreData2.put("Bauxite", 39);
+ aOreData2.put("Grossular", 20);
+ aOreData2.put("Pyrope", 20);
+ aOreData2.put("Sodalite", 11);
+ aOreData2.put("Spodumene", 10);
+ aOreData2.put("Ruby", 6);
+ aOreData2.put("Sapphire", 5);
+ aOreData2.put("GreenSapphire", 5);
+ aOreData3.put("Lazurite", 3);
+ aOreData3.put("Bauxite", 16);
+ aOreData3.put("Grossular", 2);
+ aOreData3.put("Pyrope", 2);
+ aOreData3.put("Sodalite", 3);
+ aOreData3.put("Spodumene", 1);
+ aOreData3.put("Ruby", 2);
+ aOreData3.put("Sapphire", 2);
+ aOreData3.put("GreenSapphire", 2);
+
+ // Assemble all valid crushed ore types for making pellet mix
+ HashMap<String, ItemStack> aOreCache = new HashMap<String, ItemStack>();
+ for (String aOreName : aOreNames) {
+ String aTemp = aOreName;
+ aOreName = "crushedPurified" + aOreName;
+ if (ItemUtils.doesOreDictHaveEntryFor(aOreName)) {
+ aOreCache.put(aTemp, ItemUtils.getItemStackOfAmountFromOreDict(aOreName, 1));
+ }
+ }
+
+ for (String aOreName : aOreNames) {
+ CORE.RA.addFluidReactorRecipe(
+ new ItemStack[] {
+ CI.getNumberedBioCircuit(14),
+ ItemUtils.getSimpleStack(aOreCache.get(aOreName), aOreData2.get(aOreName))
+ },
+ new FluidStack[] {
+ FluidUtils.getSteam(4000)
+ },
+ new ItemStack[] {
+ ItemUtils.getSimpleStack(AgriculturalChem.mCleanAluminiumMix, (int) (Math.ceil(aOreData3.get(aOreName) * 1.4)))
+ },
+ new FluidStack[] {
+ FluidUtils.getFluidStack("fluid.sludge", 2500)
+ },
+ 20 * 60,
+ aOreData1.get(aOreName),
+ 1);
+ }
+
+ GT_Values.RA.addExtruderRecipe(
+ ItemUtils.getSimpleStack(AgriculturalChem.mCleanAluminiumMix, 3),
+ ItemUtils.getSimpleStack(AgriculturalChem.mPelletMold, 0),
ItemUtils.getSimpleStack(AgriculturalChem.mAluminiumPellet, 4),
- 10000,
- 120 * 20,
- 16);
+ 20 * 30,
+ 64);
+
+
}
private static void recipeAlumina() {
@@ -907,7 +1033,7 @@ public class BioRecipes {
45 * 30,
90);
}
-
+
}
private static void recipeAlginicAcid() {
@@ -937,15 +1063,15 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mDistilledWater, 2000),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mSulfuricAcid, 50),
},
60 * 20,
60,
- 2);
-
+ 1);
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(7),
@@ -956,7 +1082,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mDistilledWater, 2000),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mSulfuricAcid, 250),
@@ -964,7 +1090,7 @@ public class BioRecipes {
60 * 20,
120,
2);
-
+
}
private static void recipeUrea() {
@@ -979,7 +1105,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mCarbonDioxide, 400),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mUrea, 400),
@@ -988,7 +1114,7 @@ public class BioRecipes {
120 * 20,
30,
1);
-
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(9),
@@ -998,7 +1124,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mFormaldehyde, 200),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mLiquidResin, 200)
@@ -1023,7 +1149,7 @@ public class BioRecipes {
ItemUtils.getSimpleStack(AgriculturalChem.mRawBioResin, 1),
},
new FluidStack[] {
-
+
},
60 * 20,
30,
@@ -1041,7 +1167,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mEthanol, 200),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mLiquidResin, 50),
@@ -1049,7 +1175,7 @@ public class BioRecipes {
60 * 20,
30,
1);
-
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(3),
@@ -1062,13 +1188,13 @@ public class BioRecipes {
ItemUtils.getSimpleStack(Ic2Items.resin, 1)
},
new FluidStack[] {
-
+
},
120 * 20,
30,
1);
-
-
+
+
}
private static void recipeCompost() {
@@ -1088,7 +1214,7 @@ public class BioRecipes {
aFert
},
new FluidStack[] {
-
+
},
120 * 20,
60,
@@ -1109,16 +1235,16 @@ public class BioRecipes {
aFert
},
new FluidStack[] {
-
+
},
120 * 20,
60,
2);
-
+
}
private static void recipeMethane() {
-
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(12),
@@ -1128,15 +1254,15 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mDistilledWater, 2000),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mMethane, 10),
},
20 * 20,
- 30,
+ 16,
1);
-
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(13),
@@ -1148,7 +1274,7 @@ public class BioRecipes {
FluidUtils.getFluidStack(BioRecipes.mMethane, 2000),
},
new ItemStack[] {
-
+
},
new FluidStack[] {
FluidUtils.getFluidStack(BioRecipes.mLiquidPlastic, (144/4)),
@@ -1180,7 +1306,7 @@ public class BioRecipes {
}
private static void recipeStyrene() {
-
+
CORE.RA.addFluidReactorRecipe(
new ItemStack[] {
getBioChip(20),
diff --git a/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java b/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java
index 671c765270..71971308f1 100644
--- a/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java
+++ b/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java
@@ -1,12 +1,18 @@
package gtPlusPlus.plugin.agrichem.item.algae;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.OreDictUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.client.renderer.texture.TextureAtlasSprite;
+import net.minecraft.client.renderer.texture.TextureClock;
+import net.minecraft.client.renderer.texture.TextureCompass;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
@@ -19,7 +25,7 @@ import net.minecraftforge.oredict.OreDictionary;
public class ItemAgrichemBase extends Item {
- protected IIcon base[] = new IIcon[22];
+ final protected IIcon base[];
/*
* 0 - Algae Biomass
@@ -44,13 +50,16 @@ public class ItemAgrichemBase extends Item {
* 19 - Sodium Hydroxide // Exists in Newer GT
* 20 - Sodium Carbonate
* 21 - Lithium Chloride
+ * 22 - Pellet Mold
+ * 23 - Clean Aluminium Mix
*/
public ItemAgrichemBase() {
this.setHasSubtypes(true);
this.setNoRepair();
this.setMaxStackSize(64);
- this.setMaxDamage(0);
+ this.setMaxDamage(0);
+ base = new IIcon[24];
this.setUnlocalizedName("BasicAgrichemItem");
GameRegistry.registerItem(this, this.getUnlocalizedName());
}
@@ -179,10 +188,38 @@ public class ItemAgrichemBase extends Item {
@Override
public void registerIcons(final IIconRegister u) {
for (int i=0;i<this.base.length;i++) {
- this.base[i] = u.registerIcon(CORE.MODID + ":" + "bioscience/MetaItem1/"+i);
+ String aPath = CORE.MODID + ":" + "bioscience/MetaItem1/"+i;
+ this.base[i] = u.registerIcon(aPath);
}
}
+
+ private boolean isTextureValid(String aPath) {
+ if (aPath == null) {
+ return false;
+ }
+ else if (aPath.indexOf(92) == -1) {
+ Constructor aTextureAtlasSprite = ReflectionUtils.getConstructor(
+ TextureAtlasSprite.class, String.class
+ );
+ if (aTextureAtlasSprite != null) {
+ try {
+ TextureAtlasSprite aTestAtlas = (TextureAtlasSprite) aTextureAtlasSprite.newInstance(
+ aPath
+ );
+ if (aTestAtlas != null) {
+ return true;
+ }
+ }
+ catch (InstantiationException | IllegalAccessException
+ | IllegalArgumentException
+ | InvocationTargetException e) {
+ }
+ }
+ }
+ return false;
+ }
+
@Override
public IIcon getIconFromDamageForRenderPass(final int damage, final int pass) {
return this.base[damage];
diff --git a/src/Java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java b/src/Java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java
index ea9b61bb2e..f5e1d429f7 100644
--- a/src/Java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java
+++ b/src/Java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java
@@ -10,9 +10,11 @@ import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.helpers.MaterialHelper;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.MaterialUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
import gtPlusPlus.xmod.bop.blocks.rainforest.LeavesRainforestTree;
import gtPlusPlus.xmod.bop.blocks.rainforest.LogRainforestTree;
@@ -136,17 +138,41 @@ public class BOP_Block_Registrator {
}
public static void addPyrolyeOvenRecipes(final ItemStack logStack) {
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 1, Materials.Charcoal.getGems(20), Materials.Creosote.getFluid(4000L), 640, 64);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 2, Materials.Charcoal.getGems(20), Materials.Creosote.getFluid(4000L), 320, 96);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 3, Materials.Ash.getDust(4), Materials.OilHeavy.getFluid(200L), 320, 192);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 3, Materials.Charcoal.getGems(20), Materials.CharcoalByproducts.getGas(4000L), 640, 64);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 4, Materials.Charcoal.getGems(20), Materials.CharcoalByproducts.getGas(4000L), 320, 96);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 5, Materials.Charcoal.getGems(20), Materials.WoodGas.getGas(1500L), 640, 64);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 6, Materials.Charcoal.getGems(20), Materials.WoodGas.getGas(1500L), 320, 96);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 7, Materials.Charcoal.getGems(20), Materials.WoodVinegar.getFluid(3000L), 640, 64);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 8, Materials.Charcoal.getGems(20), Materials.WoodVinegar.getFluid(3000L), 320, 96);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 9, Materials.Charcoal.getGems(20), Materials.WoodTar.getFluid(1500L), 640, 64);
- GT_Values.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 10, Materials.Charcoal.getGems(20), Materials.WoodTar.getFluid(1500L), 320, 96);
+
+ Materials aOilHeavy = MaterialUtils.getMaterial("OilHeavy");
+ Materials aCharcoalByproducts = MaterialUtils.getMaterial("CharcoalByproducts");
+ Materials aWoodGas = MaterialUtils.getMaterial("WoodGas");
+ Materials aWoodVinegar = MaterialUtils.getMaterial("WoodVinegar");
+ Materials aWoodTar = MaterialUtils.getMaterial("WoodTar");
+
+
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 1, MaterialHelper.getGems(Materials.Charcoal, 20), Materials.Creosote.getFluid(4000L), 640, 64);
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 2, MaterialHelper.getGems(Materials.Charcoal, 20), Materials.Creosote.getFluid(4000L), 320, 96);
+
+ if (aOilHeavy != null) {
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 3, MaterialHelper.getDust(Materials.Ash, 4), aOilHeavy.getFluid(200L), 320, 192);
+
+ }
+ if (aCharcoalByproducts != null) {
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 3, MaterialHelper.getGems(Materials.Charcoal, 20), aCharcoalByproducts.getGas(4000L), 640, 64);
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 4, MaterialHelper.getGems(Materials.Charcoal, 20), aCharcoalByproducts.getGas(4000L), 320, 96);
+
+ }
+ if (aWoodGas != null) {
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 5, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodGas.getGas(1500L), 640, 64);
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 6, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodGas.getGas(1500L), 320, 96);
+
+ }
+ if (aWoodVinegar != null) {
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 7, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodVinegar.getFluid(3000L), 640, 64);
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 8, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodVinegar.getFluid(3000L), 320, 96);
+
+ }
+ if (aWoodTar != null) {
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 9, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodTar.getFluid(1500L), 640, 64);
+ CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 10, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodTar.getFluid(1500L), 320, 96);
+
+ }
}
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
index 726ff080b6..80839f0f64 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
@@ -32,8 +32,10 @@ import gtPlusPlus.core.lib.CORE.ConfigSwitches;
import gtPlusPlus.core.material.ELEMENT;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.MaterialUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
import gtPlusPlus.core.util.reflect.AddGregtechRecipe;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.everglades.gen.gt.WorldGen_GT;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials;
import gtPlusPlus.xmod.gregtech.api.util.GTPP_Config;
@@ -146,14 +148,18 @@ public class HANDLER_GT {
}
private static void convertPyroToCokeOven() {
- int aCount = 0;
- for (GT_Recipe g : GT_Recipe.GT_Recipe_Map.sPyrolyseRecipes.mRecipeList) {
- if (AddGregtechRecipe.importPyroRecipe(g)) {
- aCount++;
+ if (ReflectionUtils.doesFieldExist(GT_Recipe.GT_Recipe_Map.class, "sPyrolyseRecipes")) {
+ int aCount = 0;
+ GT_Recipe_Map aMap = StaticFields59.getPyrolyseRecipeMap();
+ if (aMap != null) {
+ for (GT_Recipe g : aMap.mRecipeList) {
+ if (AddGregtechRecipe.importPyroRecipe(g)) {
+ aCount++;
+ }
+ }
+ Logger.INFO("Converted "+aCount+" Pyrolyse recipes into Industrial Coke Oven recipes.");
}
- }
- Logger.INFO("Converted "+aCount+" Pyrolyse recipes into Industrial Coke Oven recipes.");
-
+ }
}
private static GT_Recipe replaceItemInRecipeWithAnother(GT_Recipe aRecipe, ItemStack aExisting, ItemStack aNewItem) {
@@ -356,6 +362,10 @@ public class HANDLER_GT {
OrePrefixes.wireGt01.get(Materials.Superconductor)});*/
}
else {
+
+
+ Materials aPolytetrafluoroethylene = MaterialUtils.getMaterial("Polytetrafluoroethylene", "Plastic");
+
Logger.INFO("Adding new hard Shaped recipes for Hulls.");
GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1),
RecipeBits.NOT_REMOVABLE | RecipeBits.BUFFERED,
@@ -367,13 +377,13 @@ public class HANDLER_GT {
new Object[]{"PHP", "CMC", 'M', ItemList.Casing_ZPM, 'C',
OrePrefixes.cableGt01.get(Materials.Naquadah), 'H',
CI.getPlate(aTier_ZPM, 1), 'P',
- OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)});
+ OrePrefixes.plate.get(aPolytetrafluoroethylene)});
GT_ModHandler.addCraftingRecipe(ItemList.Hull_UV.get(1),
RecipeBits.NOT_REMOVABLE | RecipeBits.BUFFERED,
new Object[]{"PHP", "CMC", 'M', ItemList.Casing_UV, 'C',
OrePrefixes.wireGt04.get(Materials.NaquadahAlloy), 'H',
CI.getPlate(aTier_UV, 1), 'P',
- OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)});
+ OrePrefixes.plate.get(aPolytetrafluoroethylene)});
/*GT_ModHandler.addCraftingRecipe(ItemList.Hull_MAX.get(1),
RecipeBits.NOT_REMOVABLE | RecipeBits.BUFFERED,
new Object[]{"PHP", "CMC", 'M', ItemList.Casing_MAX, 'C',
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
index f61078437b..7c395392a3 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
@@ -113,6 +113,9 @@ public enum GregtechItemList implements GregtechItemContainer {
Bomb_Cast_Set, Bomb_Cast_Broken,
Bomb_Cast_Mold,
+ // Pellet Mold
+ Pellet_Mold,
+
//Charged Items for Tree Farms
Farm_Processor_EV,
Farm_Processor_IV,
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
index ceb2685b7f..423073f546 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
@@ -275,5 +275,11 @@ public interface IGregtech_RecipeAdder {
public boolean addBlastRecipe(ItemStack[] aInputs, FluidStack[] aInputFluids, ItemStack[] aOutputs, FluidStack[] aFluidOutputs, int time, long eu, int aHeat);
+ public boolean addPyrolyseRecipe(ItemStack aInput, FluidStack aFluidInput, int intCircuit, ItemStack aOutput, FluidStack aFluidOutput, int aDuration, int aEUt);
+
+ public boolean addExtractorRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt);
+
+ public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, ItemStack aSolidOutput, int aDuration, int aEUt, boolean aHidden);
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java
index f6bec1f402..6967c8eb33 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java
@@ -1,7 +1,9 @@
package gtPlusPlus.xmod.gregtech.api.metatileentity;
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Random;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
@@ -9,19 +11,39 @@ import gregtech.api.enums.GT_Values;
import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Utility;
-import gregtech.common.GT_Pollution;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import gtPlusPlus.xmod.gregtech.common.StaticFields59;
import ic2.api.Direction;
+import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
public class BaseCustomTileEntity extends BaseMetaTileEntity {
protected NBTTagCompound mRecipeStuff2;
+ private static final Field ENTITY_ITEM_HEALTH_FIELD_2;
+
+ static {
+ Field f = null;
+ try {
+ f = EntityItem.class.getDeclaredField("field_70291_e");
+ f.setAccessible(true);
+ } catch (Exception var4) {
+ try {
+ f = EntityItem.class.getDeclaredField("health");
+ f.setAccessible(true);
+ } catch (Exception var3) {
+ var4.printStackTrace();
+ var3.printStackTrace();
+ }
+ }
+
+ ENTITY_ITEM_HEALTH_FIELD_2 = f;
+ }
public BaseCustomTileEntity() {
super();
@@ -74,7 +96,14 @@ public class BaseCustomTileEntity extends BaseMetaTileEntity {
this.mReleaseEnergy = false;
this.mMetaTileEntity.onExplosion();
int i;
- if (GT_Mod.gregtechproxy.mExplosionItemDrop) {
+
+ boolean aExplosionDropItem = false;
+ Object aProxyField = StaticFields59.getFieldFromGregtechProxy(false, "mExplosionItemDrop");
+ if (boolean.class.isInstance(aProxyField) || Boolean.class.isInstance(aProxyField)) {
+ aExplosionDropItem = (boolean) aProxyField;
+ }
+
+ if (aExplosionDropItem) {
for (i = 0; i < this.getSizeInventory(); ++i) {
ItemStack tItem = this.getStackInSlot(i);
if (tItem != null && tItem.stackSize > 0 && this.isValidSlot(i)) {
@@ -95,6 +124,38 @@ public class BaseCustomTileEntity extends BaseMetaTileEntity {
}
}
+
+
+ public void dropItems(ItemStack tItem) {
+ if (tItem != null) {
+ Random tRandom = new Random();
+ EntityItem tItemEntity = new EntityItem(this.worldObj,
+ (double) ((float) this.xCoord + tRandom.nextFloat() * 0.8F + 0.1F),
+ (double) ((float) this.yCoord + tRandom.nextFloat() * 0.8F + 0.1F),
+ (double) ((float) this.zCoord + tRandom.nextFloat() * 0.8F + 0.1F),
+ new ItemStack(tItem.getItem(), tItem.stackSize, tItem.getItemDamage()));
+ if (tItem.hasTagCompound()) {
+ tItemEntity.getEntityItem().setTagCompound((NBTTagCompound) tItem.getTagCompound().copy());
+ }
+
+ tItemEntity.motionX = tRandom.nextGaussian() * 0.0500000007450581D;
+ tItemEntity.motionY = tRandom.nextGaussian() * 0.0500000007450581D + 0.2000000029802322D;
+ tItemEntity.motionZ = tRandom.nextGaussian() * 0.0500000007450581D;
+ tItemEntity.hurtResistantTime = 999999;
+ tItemEntity.lifespan = 60000;
+
+ try {
+ if (ENTITY_ITEM_HEALTH_FIELD_2 != null) {
+ ENTITY_ITEM_HEALTH_FIELD_2.setInt(tItemEntity, 99999999);
+ }
+ } catch (Exception var5) {
+ ;
+ }
+
+ this.worldObj.spawnEntityInWorld(tItemEntity);
+ tItem.stackSize = 0;
+ }
+ }
public ArrayList<ItemStack> getDrops() {
ArrayList<ItemStack> aDrops = new ArrayList<ItemStack>();
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicMachine.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicMachine.java
index 19ba932a02..2eb1d36791 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicMachine.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/GTPP_MTE_BasicMachine.java
@@ -11,11 +11,11 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.GT_RenderedTexture;
-import gregtech.api.objects.XSTR;
import gregtech.api.util.GT_OreDictUnificator;
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.random.XSTR;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_TurbineProvider.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_TurbineProvider.java
index d9e2692b09..752321506d 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_TurbineProvider.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_TurbineProvider.java
@@ -31,11 +31,11 @@ public class GT_MetaTileEntity_Hatch_TurbineProvider extends GT_MetaTileEntity_H
}
public GT_MetaTileEntity_Hatch_TurbineProvider(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
- super(aName, aTier, aDescription, aTextures);
+ super(aName, aTier, aDescription[0], aTextures);
}
public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_Hatch_TurbineProvider(this.mName, this.mTier, this.mDescriptionArray, this.mTextures);
+ return new GT_MetaTileEntity_Hatch_TurbineProvider(this.mName, this.mTier, this.mDescription, this.mTextures);
}
public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java b/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java
index aad05f1730..430ae44d64 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/Meta_GT_Proxy.java
@@ -482,7 +482,7 @@ public class Meta_GT_Proxy {
* @deprecated Use {@link StaticFields59#getFieldFromGregtechProxy(boolean,String)} instead
*/
public static Object getFieldFromGregtechProxy(boolean client, String fieldName) {
- return StaticFields59.getFieldFromGregtechProxy(fieldName);
+ return StaticFields59.getFieldFromGregtechProxy(client, fieldName);
}
public static void setCustomGregtechTooltip(String aNbtTagName, FormattedTooltipString aData) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java b/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
index 9c552db3ad..814ed589f0 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
@@ -18,6 +18,7 @@ import gregtech.api.interfaces.ITexture;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock;
import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.common.GT_Proxy;
import gtPlusPlus.api.objects.Logger;
@@ -37,6 +38,7 @@ public class StaticFields59 {
public static final Field mPreventableComponents;
public static final Field mDisabledItems;
public static final Field mMultiblockChemicalRecipes;
+ public static final Field mPyrolyseRecipes;
public static final Field mDescriptionArray;
public static final Field mCasingTexturePages;
public static final Field mAssLineVisualMapNEI;
@@ -79,8 +81,16 @@ public class StaticFields59 {
}
sAssemblylineVisualRecipes = aTemp;
+
mMultiblockChemicalRecipes = getField(GT_Recipe_Map.class, "sMultiblockChemicalRecipes");
- Logger.INFO("[SH] Got Field: sMultiblockChemicalRecipes");
+ Logger.INFO("[SH] Got Field: sMultiblockChemicalRecipes");
+ if (ReflectionUtils.doesFieldExist(GT_Recipe.GT_Recipe_Map.class, "sPyrolyseRecipes")) {
+ mPyrolyseRecipes = getField(GT_Recipe_Map.class, "sPyrolyseRecipes");
+ Logger.INFO("[SH] Got Field: sPyrolyseRecipes");
+ }
+ else {
+ mPyrolyseRecipes = null;
+ }
mCalculatePollutionReduction = getMethod(GT_MetaTileEntity_Hatch_Muffler.class, "calculatePollutionReduction",
int.class);
@@ -148,6 +158,14 @@ public class StaticFields59 {
}
}
+ public static synchronized final GT_Recipe_Map getPyrolyseRecipeMap() {
+ try {
+ return mPyrolyseRecipes != null ? (GT_Recipe_Map) mPyrolyseRecipes.get(null) : null;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return null;
+ }
+ }
+
public static Materials getMaterial(String aMaterialName) {
Materials m = mMaterialCache.get(aMaterialName);
if (m != null) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Block_Machines.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Block_Machines.java
index c62d47e904..01f655c355 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Block_Machines.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GTPP_Block_Machines.java
@@ -15,13 +15,13 @@ import gregtech.api.items.GT_Generic_Block;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.api.metatileentity.BaseTileEntity;
-import gregtech.api.objects.XSTR;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Utility;
import gregtech.common.blocks.GT_Item_Machines;
import gregtech.common.blocks.GT_Material_Machines;
import gregtech.common.render.GT_Renderer_Block;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.random.XSTR;
import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
import gtPlusPlus.xmod.gregtech.common.render.GTPP_Render_MachineBlock;
import net.minecraft.block.Block;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/covers/GTPP_Cover_ToggleVisual.java b/src/Java/gtPlusPlus/xmod/gregtech/common/covers/GTPP_Cover_ToggleVisual.java
index 561da54ceb..65b59ce151 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/covers/GTPP_Cover_ToggleVisual.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/covers/GTPP_Cover_ToggleVisual.java
@@ -9,6 +9,7 @@ import gregtech.api.util.GT_CoverBehavior;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.minecraft.BlockPos;
import gtPlusPlus.api.objects.random.XSTR;
+import gtPlusPlus.core.util.minecraft.LangUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
@@ -37,7 +38,7 @@ public class GTPP_Cover_ToggleVisual extends GT_CoverBehavior {
public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity,
EntityPlayer aPlayer, float aX, float aY, float aZ) {
- PlayerUtils.messagePlayer(aPlayer, this.trans("756", "Connectable: ") + getConnectionState(aCoverVariable));
+ PlayerUtils.messagePlayer(aPlayer, LangUtils.trans("756", "Connectable: ") + getConnectionState(aCoverVariable));
return super.onCoverRightclick(aSide, aCoverID, aCoverVariable, aTileEntity, aPlayer, aX, aY, aZ);
}
@@ -71,7 +72,7 @@ public class GTPP_Cover_ToggleVisual extends GT_CoverBehavior {
}
public String getDescription(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
- return this.trans("756", "Connectable: ") + getConnectionState(aCoverVariable);
+ return LangUtils.trans("756", "Connectable: ") + getConnectionState(aCoverVariable);
}
public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/GT_MethodHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/GT_MethodHelper.java
new file mode 100644
index 0000000000..d51107bbf0
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/GT_MethodHelper.java
@@ -0,0 +1,80 @@
+package gtPlusPlus.xmod.gregtech.common.helpers;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import gregtech.api.enums.Textures.BlockIcons;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.metatileentity.BaseMetaTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.block.Block;
+import net.minecraft.tileentity.TileEntity;
+
+public class GT_MethodHelper {
+
+ private static final Method mGetTexture;
+ private static final Class mITexturedTileEntity;
+
+ static {
+ Class clazz = null;
+ Method aMeth = null;
+ if (ReflectionUtils.doesClassExist("gregtech.api.interfaces.tileentity.ITexturedTileEntity")) {
+ clazz = ReflectionUtils.getClass("gregtech.api.interfaces.tileentity.ITexturedTileEntity");
+ aMeth = ReflectionUtils.getMethod(clazz, "getTexture", Block.class, byte.class);
+ }
+ mITexturedTileEntity = clazz;
+ mGetTexture = aMeth;
+ }
+
+
+ public static ITexture[] getTexture(TileEntity tTileEntity, Block aBlock, byte aSide) {
+
+ if (mITexturedTileEntity.isInstance(tTileEntity)) {
+
+ if (mGetTexture != null) {
+ try {
+ mGetTexture.invoke(tTileEntity, aBlock, aSide);
+ }
+ catch (IllegalAccessException | IllegalArgumentException
+ | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+ else {
+ if (tTileEntity instanceof BaseMetaTileEntity) {
+ try {
+ BaseMetaTileEntity aTile = (BaseMetaTileEntity) tTileEntity;
+ ITexture rIcon = aTile.getCoverTexture(aSide);
+ Field aFacing = ReflectionUtils.getField(BaseMetaTileEntity.class, "mFacing");
+ Field aColor = ReflectionUtils.getField(BaseMetaTileEntity.class, "mColor");
+ Field aActive = ReflectionUtils.getField(BaseMetaTileEntity.class, "mActive");
+ Field aMetaTile = ReflectionUtils.getField(BaseMetaTileEntity.class, "mMetaTileEntity");
+ Method aHasValidTile = ReflectionUtils.getMethod(BaseMetaTileEntity.class, "hasValidMetaTileEntity", new Class[] {});
+
+ boolean hasValidTileObj = (boolean) aHasValidTile.invoke(aTile, new Object[] {});
+ boolean aActiveObj = aActive.getBoolean(aTile);
+ byte aFacingObj = aFacing.getByte(aTile);
+ byte aColorObj = aColor.getByte(aTile);;
+ MetaTileEntity aMetaTileObj = (MetaTileEntity) aMetaTile.get(aTile);
+
+ if (rIcon != null) {
+ return new ITexture[]{rIcon};
+ } else {
+ return hasValidTileObj
+ ? aMetaTileObj.getTexture(aTile, aSide, aFacingObj, (byte) (aColorObj - 1), aActiveObj,
+ aTile.getOutputRedstoneSignal(aSide) > 0)
+ : BlockIcons.ERROR_RENDERING;
+ }
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+ }
+ }
+ return BlockIcons.ERROR_RENDERING;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_Render_MachineBlock.java b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_Render_MachineBlock.java
index c884114b79..35d78008c5 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_Render_MachineBlock.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_Render_MachineBlock.java
@@ -10,10 +10,9 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.interfaces.tileentity.IPipeRenderedTileEntity;
import gregtech.api.interfaces.tileentity.ITexturedTileEntity;
import gregtech.common.blocks.GT_Block_Machines;
-import gregtech.common.blocks.GT_Block_Ores_Abstract;
-import gregtech.common.blocks.GT_TileEntity_Ores;
import gregtech.common.render.GT_Renderer_Block;
import gtPlusPlus.xmod.gregtech.common.blocks.GTPP_Block_Machines;
+import gtPlusPlus.xmod.gregtech.common.helpers.GT_MethodHelper;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
@@ -134,14 +133,15 @@ public class GTPP_Render_MachineBlock extends GT_Renderer_Block {
public static boolean renderStandardBlock(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock,
RenderBlocks aRenderer) {
TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
+
return tTileEntity instanceof ITexturedTileEntity
? renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer,
- new ITexture[][]{((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 0),
- ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 1),
- ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 2),
- ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 3),
- ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 4),
- ((ITexturedTileEntity) tTileEntity).getTexture(aBlock, (byte) 5)})
+ new ITexture[][]{GT_MethodHelper.getTexture(tTileEntity, aBlock, (byte) 0),
+ GT_MethodHelper.getTexture(tTileEntity, aBlock, (byte) 1),
+ GT_MethodHelper.getTexture(tTileEntity, aBlock, (byte) 2),
+ GT_MethodHelper.getTexture(tTileEntity, aBlock, (byte) 3),
+ GT_MethodHelper.getTexture(tTileEntity, aBlock, (byte) 4),
+ GT_MethodHelper.getTexture(tTileEntity, aBlock, (byte) 5)})
: false;
}
@@ -190,7 +190,7 @@ public class GTPP_Render_MachineBlock extends GT_Renderer_Block {
ITexture[][] tCovers = new ITexture[6][];
for (byte i = 0; i < 6; ++i) {
- tCovers[i] = aTileEntity.getTexture(aBlock, i);
+ tCovers[i] = GT_MethodHelper.getTexture((TileEntity) aTileEntity, aBlock, i);
arg15[i] = aTileEntity.getTextureUncovered(i);
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java
index 7717bf6379..b7e4618e07 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java
@@ -13,12 +13,12 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
import gregtech.api.objects.GT_RenderedTexture;
-import gregtech.api.objects.XSTR;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.Recipe_GT;
+import gtPlusPlus.api.objects.random.XSTR;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.slots.SlotChemicalPlantInput;
import gtPlusPlus.xmod.gregtech.api.gui.fluidreactor.Container_FluidReactor;
@@ -311,13 +311,6 @@ public class GregtechMetaTileEntity_ChemicalReactor extends GT_MetaTileEntity_Ba
if (this.mProgresstime > 5) {
this.mStuttering = false;
}
-
- XSTR aXSTR = new XSTR();
- if (GT_Mod.gregtechproxy.mAprilFool && aXSTR.nextInt(5000) == 0) {
- GT_Utility.sendSoundToPlayers(aBaseMetaTileEntity.getWorld(),
- (String) GregTech_API.sSoundList.get(5), 10.0F, -1.0F, aBaseMetaTileEntity.getXCoord(),
- aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getZCoord());
- }
}
} else {
aBaseMetaTileEntity.setActive(false);
@@ -510,11 +503,6 @@ public class GregtechMetaTileEntity_ChemicalReactor extends GT_MetaTileEntity_Ba
}
@Override
- public int checkRecipe(boolean skipOC) {
- return super.checkRecipe(skipOC);
- }
-
- @Override
public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
super.onPreTick(aBaseMetaTileEntity, aTick);
@@ -616,11 +604,6 @@ public class GregtechMetaTileEntity_ChemicalReactor extends GT_MetaTileEntity_Ba
}
@Override
- protected void onEmptyingContainerWhenEmpty() {
- super.onEmptyingContainerWhenEmpty();
- }
-
- @Override
public void setItemNBT(NBTTagCompound aNBT) {
super.setItemNBT(aNBT);
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java
index 23ca94e54d..6f9080673f 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java
@@ -17,16 +17,11 @@ import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.Recipe_GT;
-import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
-import gregtech.api.util.Recipe_GT.Gregtech_Recipe_Map;
-import gregtech.common.GT_Pollution;
import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
import net.minecraft.block.Block;
-import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java
index 18cf892698..fda79876f6 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java
@@ -65,9 +65,8 @@ public class GregtechMTE_AlgaePondBase extends GregtechMeta_MultiBlockBase {
"X X",
"X X",
"XXXXXXXXX",
- "Can process (Tier * 10) recipes",
"Machine Hulls (all bottom layer)",
- "Sterile Farm Casings (all non-hatches)",
+ "Sterile Farm Casings (rest)",
"Controller (front centered)",
"All hatches must be on the bottom layer",
"All hulls must be the same tier, this dictates machine speed",
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java
index fbf61598d3..40994040bd 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java
@@ -1,29 +1,55 @@
package gtPlusPlus.xmod.gregtech.loaders;
import java.util.HashSet;
-import java.util.Set;
-import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.Materials;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.Recipe_GT;
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.material.Material;
-import gtPlusPlus.core.material.MaterialGenerator;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
-public class RecipeGen_FluidCanning extends RecipeGen_Base {
-
- public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
- static {
- MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+public class RecipeGen_FluidCanning implements Runnable {
+
+ public static void init() {
+ FluidCanningRunnableHandler x = new FluidCanningRunnableHandler();
+ x.run();
}
+ private static class FluidCanningRunnableHandler implements RunnableWithInfo<String> {
+
+ @Override
+ public void run() {
+ mHasRun = true;
+ for (RecipeGen_FluidCanning aRecipe : mCache) {
+ aRecipe.run();
+ }
+ }
+
+ @Override
+ public String getInfoData() {
+ return "Fluid Canning Recipes";
+ }
+ }
+
+ private static boolean mHasRun = false;
+
+ private static HashSet<RecipeGen_FluidCanning> mCache = new HashSet<RecipeGen_FluidCanning>();
+
+ private static void addRunnableToRecipeCache(RecipeGen_FluidCanning r) {
+ if (mHasRun) {
+ CORE.crash();
+ }
+ mCache.add(r);
+ }
+
+ protected boolean disableOptional;
+
private final GT_Recipe recipe;
private final boolean isValid;
@@ -95,13 +121,18 @@ public class RecipeGen_FluidCanning extends RecipeGen_Base {
// Check Valid
boolean aTempValidityCheck = false;
+ //Logger.INFO("Validity Check.");
if (aExtracting) {
+ Logger.INFO("Extracting.");
if (aInput != null && aFluidOutput != null) {
+ //Logger.INFO("Pass.");
aTempValidityCheck = true;
}
}
else {
+ //Logger.INFO("Canning.");
if (aInput != null && aOutput != null && (aFluidInput != null || aFluidOutput != null)) {
+ //Logger.INFO("Pass.");
aTempValidityCheck = true;
}
}
@@ -110,11 +141,14 @@ public class RecipeGen_FluidCanning extends RecipeGen_Base {
if (aTempValidityCheck) {
// Valid Recipe
recipe = aRecipe;
- mRecipeGenMap.add(this);
disableOptional = aExtracting;
- isValid = true;
+ isValid = true;
+ //Logger.INFO("Passed Validity Check. Hash: "+recipe.hashCode());
+ //Logger.INFO("Mapped as: "+(disableOptional ? "Extracting" : "Canning"));
+ addRunnableToRecipeCache(this);
}
else {
+ //Logger.INFO("Failed Validity Check.");
isValid = false;
disableOptional = aExtracting;
aRecipe.mEnabled = false;
@@ -125,40 +159,54 @@ public class RecipeGen_FluidCanning extends RecipeGen_Base {
@Override
public void run() {
+ Logger.INFO("Processing Recipe with Hash: "+recipe.hashCode());
generateRecipes();
}
private void generateRecipes() {
if (isValid && recipe != null) {
+ //Logger.INFO("Processing "+(disableOptional ? "Extracting" : "Canning")+" Recipe.");
if (this.disableOptional) {
addFluidExtractionRecipe(recipe);
}
else {
addFluidCannerRecipe(recipe);
}
- }
+ }
}
private final boolean addFluidExtractionRecipe(GT_Recipe aRecipe) {
- if (aRecipe != null) {
- int aCount1 = GT_Recipe_Map.sFluidExtractionRecipes.mRecipeList.size();
- int aCount2 = aCount1;
- GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(aRecipe);
- aCount1 = GT_Recipe_Map.sFluidExtractionRecipes.mRecipeList.size();
- return aCount1 > aCount2;
+ boolean result = false;
+ int aCount1 = GT_Recipe_Map.sFluidExtractionRecipes.mRecipeList.size();
+ int aCount2 = aCount1;
+ GT_Recipe_Map.sFluidExtractionRecipes.addRecipe(aRecipe);
+ aCount1 = GT_Recipe_Map.sFluidExtractionRecipes.mRecipeList.size();
+ result = aCount1 > aCount2;
+ if (result) {
+ //Logger.INFO("[FIND] Added Extraction recipe for "+ItemUtils.getArrayStackNames(aRecipe.mInputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mOutputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mFluidInputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mFluidOutputs));
+ }
+ else {
+ Logger.INFO("[ERROR] Failed adding Extraction recipe for "+ItemUtils.getArrayStackNames(aRecipe.mInputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mOutputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mFluidInputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mFluidOutputs));
+ //dumpStack();
}
- return false;
+ return result;
}
- private final boolean addFluidCannerRecipe(GT_Recipe recipe2) {
- if (recipe2 != null) {
- int aCount1 = GT_Recipe_Map.sFluidCannerRecipes.mRecipeList.size();
- int aCount2 = aCount1;
- GT_Recipe_Map.sFluidCannerRecipes.addRecipe(recipe2);
- aCount1 = GT_Recipe_Map.sFluidCannerRecipes.mRecipeList.size();
- return aCount1 > aCount2;
+ private final boolean addFluidCannerRecipe(GT_Recipe aRecipe) {
+ boolean result = false;
+ int aCount1 = GT_Recipe_Map.sFluidCannerRecipes.mRecipeList.size();
+ int aCount2 = aCount1;
+ GT_Recipe_Map.sFluidCannerRecipes.addRecipe(aRecipe);
+ aCount1 = GT_Recipe_Map.sFluidCannerRecipes.mRecipeList.size();
+ result = aCount1 > aCount2;
+ if (result) {
+ //Logger.INFO("[FIND] Added Canning recipe for "+ItemUtils.getArrayStackNames(aRecipe.mInputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mOutputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mFluidInputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mFluidOutputs));
+ }
+ else {
+ Logger.INFO("[ERROR] Failed adding Canning recipe for "+ItemUtils.getArrayStackNames(aRecipe.mInputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mOutputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mFluidInputs)+", "+ItemUtils.getArrayStackNames(aRecipe.mFluidOutputs));
+ //dumpStack();
}
- return false;
+ return result;
}
private void dumpStack() {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
index cd853dfb0d..305c7fc0d0 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
@@ -8,6 +8,7 @@ import java.util.List;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.interfaces.internal.IGT_RecipeAdder;
import gregtech.api.util.CustomRecipeMap;
@@ -15,6 +16,7 @@ import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.Recipe_GT;
import gregtech.api.util.SemiFluidFuelHandler;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.lib.CORE;
@@ -680,6 +682,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
private static final Method mScannerTT;
private static final Method[] mChemicalRecipe = new Method[3];
private static final Method mLargeChemReactor;
+ private static final Method mPyroOven;
static {
@@ -729,6 +732,8 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
mLargeChemReactor = ReflectionUtils.getMethod(clazz, "addMultiblockChemicalRecipe", ItemStack[].class, FluidStack[].class, FluidStack[].class, ItemStack[].class, int.class, int.class);
+ mPyroOven = ReflectionUtils.getMethod(clazz, "addPyrolyseRecipe", ItemStack.class, FluidStack.class, int.class, ItemStack.class, FluidStack.class, int.class, int.class);
+
}
@@ -737,6 +742,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
mAssemblyLine = null;
mLargeChemReactor = null;
mScannerTT = null;
+ mPyroOven = null;
}
@@ -1006,18 +1012,18 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
}
@Override
- public boolean addFluidExtractionRecipe(ItemStack input, ItemStack input2, FluidStack output, int aTime, int aEu) {
- return MaterialGenerator.addFluidExtractionRecipe(input, input2, output, aTime, aEu);
+ public boolean addFluidExtractionRecipe(ItemStack aEmpty, ItemStack aRemains, FluidStack aFluid, int aDuration, int aEU) {
+ return MaterialGenerator.addFluidExtractionRecipe(aEmpty, aRemains, aFluid, aDuration, aEU);
}
@Override
- public boolean addFluidCannerRecipe(ItemStack aFullContainer, ItemStack container, FluidStack rFluidIn) {
- return MaterialGenerator.addFluidCannerRecipe(container, aFullContainer, rFluidIn, null);
+ public boolean addFluidCannerRecipe(ItemStack aContainer, ItemStack aFullContainer, FluidStack rFluidIn) {
+ return MaterialGenerator.addFluidCannerRecipe(aContainer, aFullContainer, rFluidIn, null);
}
@Override
- public boolean addFluidCannerRecipe(ItemStack aFullContainer, ItemStack container, FluidStack rFluidIn, FluidStack rFluidOut) {
- return MaterialGenerator.addFluidCannerRecipe(container, aFullContainer, rFluidIn, rFluidOut);
+ public boolean addFluidCannerRecipe(ItemStack aContainer, ItemStack aFullContainer, FluidStack rFluidIn, FluidStack rFluidOut) {
+ return MaterialGenerator.addFluidCannerRecipe(aContainer, aFullContainer, rFluidIn, rFluidOut);
}
@@ -1217,6 +1223,53 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
}
+ @Override
+ public boolean addPyrolyseRecipe(ItemStack aInput, FluidStack aFluidInput, int intCircuit, ItemStack aOutput, FluidStack aFluidOutput, int aDuration, int aEUt) {
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK || mPyroOven == null) {
+ return false;
+ }
+ try {
+ return (boolean) mPyroOven.invoke(GT_Values.RA, aInput, aFluidInput, intCircuit, aOutput, aFluidOutput, aDuration, aEUt);
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ return false;
+ }
+ }
+
+ @Override
+ public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, ItemStack aSolidOutput, int aDuration, int aEUt, boolean aHidden) {
+ if (aInput != null && aOutput != null) {
+ if ((aDuration = GregTech_API.sRecipeFile.get("distillery", aOutput.getFluid().getUnlocalizedName(),
+ aDuration)) <= 0) {
+ return false;
+ } else {
+ GT_Recipe tRecipe = GT_Recipe_Map.sDistilleryRecipes.addRecipe(true, new ItemStack[]{aCircuit},
+ new ItemStack[] {aSolidOutput}, (Object) null, new FluidStack[]{aInput}, new FluidStack[]{aOutput},
+ aDuration, aEUt, 0);
+ if (aHidden && tRecipe != null) {
+ tRecipe.mHidden = true;
+ }
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public boolean addExtractorRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt) {
+ if (aInput != null && aOutput != null) {
+ if ((aDuration = GregTech_API.sRecipeFile.get("extractor", aInput, aDuration)) <= 0) {
+ return false;
+ } else {
+ GT_Recipe_Map.sExtractorRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput},
+ (Object) null, (FluidStack[]) null, (FluidStack[]) null, aDuration, aEUt, 0);
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
index 9f67363302..54e4fbf024 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechCustomHatches.java
@@ -8,6 +8,7 @@ import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_AirIntake;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_ControlCore;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler_Adv;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Naquadah;
@@ -68,7 +69,13 @@ public class GregtechCustomHatches {
"hatch.turbine.input.tier.00", // unlocal name
"Turbine Housing", // Local name
8
- ).getStackForm(1L));
+ ).getStackForm(1L));
+
+ // Multiblock Control Core Bus
+ GregtechItemList.Hatch_Control_Core.set((new GT_MetaTileEntity_Hatch_ControlCore(30020, "hatch.control.adv", "Control Core Module", 1)).getStackForm(1L));
+
+ // Multiblock Air Intake Hatch
+ GregtechItemList.Hatch_Air_Intake.set(new GT_MetaTileEntity_Hatch_AirIntake(861, "hatch.air.intake.tier.00", "Air Intake Hatch", 5).getStackForm(1L));
@@ -105,12 +112,7 @@ public class GregtechCustomHatches {
.getStackForm(1L));
GregtechItemList.Hatch_Muffler_Adv_MAX
.set((new GT_MetaTileEntity_Hatch_Muffler_Adv(30009, "hatch.muffler.adv.tier.09", "Advanced Muffler Hatch (MAX)", 9))
- .getStackForm(1L));
-
- //GT++ multiblock Control Core Bus
- GregtechItemList.Hatch_Control_Core
- .set((new GT_MetaTileEntity_Hatch_ControlCore(30020, "hatch.control.adv", "Control Core Module", 1))
- .getStackForm(1L));
+ .getStackForm(1L));
}
private static void run3() {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechPollutionDevices.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechPollutionDevices.java
index bbe2d10273..c470243822 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechPollutionDevices.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechPollutionDevices.java
@@ -2,8 +2,8 @@ package gtPlusPlus.xmod.gregtech.registration.gregtech;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
-import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_AirIntake;
import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaAtmosphericReconditioner;
import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaPollutionCreator;
import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaPollutionDetector;
@@ -12,8 +12,8 @@ public class GregtechPollutionDevices {
public static void run() {
if (gtPlusPlus.core.lib.LoadedMods.Gregtech) {
- Logger.INFO("Gregtech5u Content | Registering Anti-Pollution Devices.");
- if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ if (PollutionUtils.isPollutionEnabled()) {
+ Logger.INFO("Gregtech5u Content | Registering Anti-Pollution Devices.");
run1();
}
}
@@ -50,7 +50,6 @@ public class GregtechPollutionDevices {
"pollutioncleaner.10.tier.single", "Biosphere Cleanser", 9).getStackForm(1L));
}
- GregtechItemList.Hatch_Air_Intake.set(new GT_MetaTileEntity_Hatch_AirIntake(861, "hatch.air.intake.tier.00", "Air Intake Hatch", 5).getStackForm(1L));
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechRocketFuelGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechRocketFuelGenerator.java
index b8dd8e4767..2d548a57b7 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechRocketFuelGenerator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechRocketFuelGenerator.java
@@ -12,6 +12,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.ALLOY;
import gtPlusPlus.core.recipe.common.CI;
+import gtPlusPlus.core.util.Utils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import gtPlusPlus.xmod.gregtech.common.tileentities.generators.GregtechMetaTileEntityRocketFuelGenerator;
import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.GregtechMetaTileEntity_LargeRocketEngine;
@@ -32,12 +33,15 @@ public class GregtechRocketFuelGenerator {
GregtechItemList.Controller_RocketEngine.set(
new GregtechMetaTileEntity_LargeRocketEngine(996, "gtpp.multimachine.rocketengine", "Rocketdyne F-1A Engine").getStackForm(1L));
+
+ ItemList aDieselEngine = Utils.getValueOfItemList("Machine_Multi_DieselEngine", ItemList.Machine_Multi_LargeBoiler_TungstenSteel);
+
GT_ModHandler.addCraftingRecipe(
GregtechItemList.Controller_RocketEngine.get(1L),
CI.bitsd,
new Object[]{
"PCP", "EME", "GWG",
- 'M', ItemList.Machine_Multi_DieselEngine,
+ 'M', aDieselEngine,
'P', ItemList.Electric_Piston_IV,
'E', ItemList.Field_Generator_EV,
'C', OrePrefixes.circuit.get(Materials.Master),
diff --git a/src/Java/gtPlusPlus/xmod/reliquary/util/ReliquaryRecipeHandler.java b/src/Java/gtPlusPlus/xmod/reliquary/util/ReliquaryRecipeHandler.java
index b79a4f45a5..1133e67fe6 100644
--- a/src/Java/gtPlusPlus/xmod/reliquary/util/ReliquaryRecipeHandler.java
+++ b/src/Java/gtPlusPlus/xmod/reliquary/util/ReliquaryRecipeHandler.java
@@ -2,7 +2,6 @@ package gtPlusPlus.xmod.reliquary.util;
import static gtPlusPlus.core.lib.CORE.GTNH;
-import gregtech.api.enums.GT_Values;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_ModHandler;
import gtPlusPlus.api.objects.Logger;
@@ -45,7 +44,7 @@ public class ReliquaryRecipeHandler {
Logger.INFO("Finished removing original recipes.");
// Add new recipes
- if (GT_Values.RA.addChemicalRecipe(ALLOY.ENERGYCRYSTAL.getDust(4), ReliquaryItems.emptyVial(), FluidUtils.getHotWater(2000), null, ReliquaryItems.glowingWater(), 20 * 30, 500)) {
+ if (CORE.RA.addChemicalRecipe(ALLOY.ENERGYCRYSTAL.getDust(4), ReliquaryItems.emptyVial(), FluidUtils.getHotWater(2000), null, ReliquaryItems.glowingWater(), 20 * 30, 500)) {
Logger.INFO("Added new recipe for Glowing Water.");
}
if (CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {ItemUtils.simpleMetaStack(Items.ender_eye, 0, 32), CI.getFieldGenerator(5, GTNH ? 8 : 4), CI.getTieredComponent(OrePrefixes.plate, 5, GTNH ? 16 : 8), CI.getEmitter(3, 20)}, FluidUtils.getUUM(50), ReliquaryItems.emptyVoidTear(), 20 * 2000, 2000)){
diff --git a/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java b/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java
index 3de15ce6be..85485b5565 100644
--- a/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java
+++ b/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java
@@ -12,6 +12,7 @@ import gregtech.api.util.GT_OreDictUnificator;
import cofh.lib.util.helpers.ItemHelper;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.xmod.thermalfoundation.item.TF_Items;
import net.minecraftforge.fluids.FluidRegistry;
@@ -25,34 +26,23 @@ public class TF_Gregtech_Recipes {
private static void start(){
//Get Items to work with
- final ItemStack dust_Cryotheum = TF_Items.itemDustCryotheum.copy();
- final ItemStack dust_Pyrotheum = TF_Items.itemDustPyrotheum.copy();
- final ItemStack dust_Blizz = TF_Items.itemDustBlizz.copy();
- final ItemStack dust_Blizz3 = ItemUtils.simpleMetaStack(TF_Items.itemMaterial, 2, 3);
- final ItemStack rod_Blizz = TF_Items.itemRodBlizz.copy();
+ final ItemStack dust_Cryotheum = ItemUtils.getItemStackOfAmountFromOreDict("dustCryotheum", 1);
+ final ItemStack dust_Pyrotheum = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Pyrotheum, 1L);
+ final ItemStack dust_Blizz = ItemUtils.getItemStackOfAmountFromOreDict("dustBlizz", 1);
+ final ItemStack dust_Blizz3 = ItemUtils.getItemStackOfAmountFromOreDict("dustBlizz", 3);
+ final ItemStack rod_Blizz = ItemUtils.getItemStackOfAmountFromOreDict("stickBlizz", 1);
+
final FluidStack moltenBlaze = getFluidStack("molten.blaze", 1440);
//Gelid Cryotheum
- Logger.INFO("Adding Recipes for Gelid Cryotheum");
- CORE.RA.addFluidExtractionRecipe(dust_Cryotheum, getFluidStack("cryotheum", 250), 200, 240);
GT_Values.RA.addChemicalBathRecipe((GT_OreDictUnificator.get(OrePrefixes.ore, Materials.Cinnabar, 1L)), getFluidStack("cryotheum", 144), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cinnabar, 3L), GT_Values.NI, GT_Values.NI, null, 400, 30);
//Blizz Powder
- Logger.INFO("Adding Recipes for Blizz Powder");
GT_Values.RA.addChemicalBathRecipe(new ItemStack(Items.snowball, 4), moltenBlaze, dust_Blizz, GT_Values.NI, GT_Values.NI, null, 400, 240);
//Blizz Rod
- Logger.INFO("Adding Recipes for Blizz Rod");
GT_Values.RA.addVacuumFreezerRecipe(new ItemStack(Items.blaze_rod), rod_Blizz, (int) Math.max((Materials.Blaze.getMass()*4) * 3L, 1L));
- GT_ModHandler.addPulverisationRecipe(rod_Blizz, dust_Blizz3, new ItemStack(Items.snowball, 1), 50, false);
-
- //Blazing Pyrotheum
- Logger.INFO("Adding Recipes for Blazing Pyrotheum");
- CORE.RA.addFluidExtractionRecipe(dust_Pyrotheum, getFluidStack("pyrotheum", 250), 200, 240);
-
- //Ender Fluid
- CORE.RA.addFluidExtractionRecipe(ItemUtils.getSimpleStack(Items.ender_pearl), getFluidStack("ender", 250), 100, 30);
-
+ GT_ModHandler.addPulverisationRecipe(rod_Blizz, dust_Blizz3, new ItemStack(Items.snowball, 1), 50, false);
ItemStack dustCoal = ItemUtils.getItemStackOfAmountFromOreDict("dustCoal", 1);
ItemStack dustSulfur = ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1);
@@ -105,14 +95,7 @@ public class TF_Gregtech_Recipes {
}
private static FluidStack getFluidStack(final String fluidName, final int amount){
- Logger.WARNING("Trying to get a fluid stack of "+fluidName);
- try {
- return FluidRegistry.getFluidStack(fluidName, amount);
- }
- catch (final Throwable e){
- return null;
- }
-
+ return FluidUtils.getFluidStack(fluidName, amount);
}
}
diff --git a/src/Java/speiger/src/crops/api/ICropCardInfo.java b/src/Java/speiger/src/crops/api/ICropCardInfo.java
new file mode 100644
index 0000000000..ff67eb06b1
--- /dev/null
+++ b/src/Java/speiger/src/crops/api/ICropCardInfo.java
@@ -0,0 +1,12 @@
+package speiger.src.crops.api;
+
+import java.util.List;
+import net.minecraft.item.ItemStack;
+
+public interface ICropCardInfo {
+
+ List<String> getCropInformation();
+
+ ItemStack getDisplayItem();
+
+} \ No newline at end of file
diff --git a/src/resources/assets/miscutils/lang/en_US.lang b/src/resources/assets/miscutils/lang/en_US.lang
index ad10be2d8b..f08c7b324c 100644
--- a/src/resources/assets/miscutils/lang/en_US.lang
+++ b/src/resources/assets/miscutils/lang/en_US.lang
@@ -3038,7 +3038,6 @@ tile.blockRoundRobinator.4.name=Round Robinator V
//Added 16/10/19
-
item.BioRecipeSelector.name=Programmed Bio Circuit
item.FermentationBase.name=Cell of Fermentation Base
item.ureamix.name=Cell of Urea Mix
@@ -3074,4 +3073,21 @@ item.butanol.name=Butanol Cell
//Try Fix IC2 Garbage vv
fluidHotWater=Heated Water
fluidHotWater.name=Heated Water
-//Try Fix IC2 Garbage ^^ \ No newline at end of file
+//Try Fix IC2 Garbage ^^
+
+
+//Added 11/12/19
+item.itemHotIngotTitanium.name=Hot Titanium Ingot
+item.OilHeavy.name=Heavy Oil Cell
+item.UnsymmetricalDimethylhydrazine.name=Unsymmetrical Dimethylhydrazine Cell
+item.benzene.name=Benzene Cell
+item.Benzene.name=Benzene Cell
+item.phenol.name=Phenol Cell
+item.CarbonDioxide.name=Carbon Dioxide Cell
+item.itemCellCarbonDioxide.name=Carbon Dioxide Cell
+item.CarbonMonoxide.name=Carbon Monoxide Cell
+item.itemCellCarbonMonoxide.name=Carbon Monoxide Cell
+item.acetone.name=Acetone Cell
+item.saltwater.name=Salt Water Cell
+item.BasicAgrichemItem.22.name=Mold (Pellet)
+item.BasicAgrichemItem.23.name=Clean Aluminium Mix
diff --git a/src/resources/assets/miscutils/textures/items/bioscience/MetaItem1/22.png b/src/resources/assets/miscutils/textures/items/bioscience/MetaItem1/22.png
new file mode 100644
index 0000000000..77be3ef6a8
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/bioscience/MetaItem1/22.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/bioscience/MetaItem1/23.png b/src/resources/assets/miscutils/textures/items/bioscience/MetaItem1/23.png
new file mode 100644
index 0000000000..110cd7f8e8
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/bioscience/MetaItem1/23.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/0.png b/src/resources/assets/miscutils/textures/items/particle/new/0.png
new file mode 100644
index 0000000000..3fe49c3a57
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/0.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/1.png b/src/resources/assets/miscutils/textures/items/particle/new/1.png
new file mode 100644
index 0000000000..39ffa85711
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/1.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/10.png b/src/resources/assets/miscutils/textures/items/particle/new/10.png
new file mode 100644
index 0000000000..18ded814cf
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/10.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/11.png b/src/resources/assets/miscutils/textures/items/particle/new/11.png
new file mode 100644
index 0000000000..b7e191c79f
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/11.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/12.png b/src/resources/assets/miscutils/textures/items/particle/new/12.png
new file mode 100644
index 0000000000..49feb199e0
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/12.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/13.png b/src/resources/assets/miscutils/textures/items/particle/new/13.png
new file mode 100644
index 0000000000..b70178d315
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/13.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/14.png b/src/resources/assets/miscutils/textures/items/particle/new/14.png
new file mode 100644
index 0000000000..77741644ed
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/14.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/15.png b/src/resources/assets/miscutils/textures/items/particle/new/15.png
new file mode 100644
index 0000000000..d48096c85c
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/15.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/16.png b/src/resources/assets/miscutils/textures/items/particle/new/16.png
new file mode 100644
index 0000000000..cef33d17fd
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/16.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/17.png b/src/resources/assets/miscutils/textures/items/particle/new/17.png
new file mode 100644
index 0000000000..4b752e7a9a
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/17.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/18.png b/src/resources/assets/miscutils/textures/items/particle/new/18.png
new file mode 100644
index 0000000000..23fdb190c7
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/18.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/19.png b/src/resources/assets/miscutils/textures/items/particle/new/19.png
new file mode 100644
index 0000000000..94e2a856c9
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/19.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/2.png b/src/resources/assets/miscutils/textures/items/particle/new/2.png
new file mode 100644
index 0000000000..d86b5b357d
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/2.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/20.png b/src/resources/assets/miscutils/textures/items/particle/new/20.png
new file mode 100644
index 0000000000..d7cbdb8f45
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/20.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/21.png b/src/resources/assets/miscutils/textures/items/particle/new/21.png
new file mode 100644
index 0000000000..2531eaff52
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/21.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/22.png b/src/resources/assets/miscutils/textures/items/particle/new/22.png
new file mode 100644
index 0000000000..d594dc4be8
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/22.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/23.png b/src/resources/assets/miscutils/textures/items/particle/new/23.png
new file mode 100644
index 0000000000..d96dd2b000
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/23.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/24.png b/src/resources/assets/miscutils/textures/items/particle/new/24.png
new file mode 100644
index 0000000000..56067466ad
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/24.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/3.png b/src/resources/assets/miscutils/textures/items/particle/new/3.png
new file mode 100644
index 0000000000..43438c4ce5
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/3.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/4.png b/src/resources/assets/miscutils/textures/items/particle/new/4.png
new file mode 100644
index 0000000000..8f0db073cd
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/4.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/5.png b/src/resources/assets/miscutils/textures/items/particle/new/5.png
new file mode 100644
index 0000000000..40ec84db70
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/5.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/6.png b/src/resources/assets/miscutils/textures/items/particle/new/6.png
new file mode 100644
index 0000000000..c63ad0ba19
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/6.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/7.png b/src/resources/assets/miscutils/textures/items/particle/new/7.png
new file mode 100644
index 0000000000..aad8c7ca62
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/7.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/8.png b/src/resources/assets/miscutils/textures/items/particle/new/8.png
new file mode 100644
index 0000000000..c9b908ec61
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/8.png
Binary files differ
diff --git a/src/resources/assets/miscutils/textures/items/particle/new/9.png b/src/resources/assets/miscutils/textures/items/particle/new/9.png
new file mode 100644
index 0000000000..b8e02c82ea
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/particle/new/9.png
Binary files differ