aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gregtech
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gregtech')
-rw-r--r--src/Java/gregtech/api/enums/TAE.java79
-rw-r--r--src/Java/gregtech/api/util/CustomRecipeMap.java2
-rw-r--r--src/Java/gregtech/api/util/Recipe_GT.java6
3 files changed, 60 insertions, 27 deletions
diff --git a/src/Java/gregtech/api/enums/TAE.java b/src/Java/gregtech/api/enums/TAE.java
index 2827704f62..d7e16feb09 100644
--- a/src/Java/gregtech/api/enums/TAE.java
+++ b/src/Java/gregtech/api/enums/TAE.java
@@ -1,10 +1,14 @@
package gregtech.api.enums;
import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.HashSet;
import gregtech.api.interfaces.ITexture;
import gregtech.api.objects.GT_CopiedBlockTexture;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
@@ -13,40 +17,65 @@ public class TAE {
//TAE stands for Texture Array Expansion.
- public static int gtTexturesArrayStartOrigin;
public static int gtPPLastUsedIndex = 64;
public static int secondaryIndex = 0;
- public static boolean hasArrayBeenExpanded = false;
+
+ public static HashMap<Integer, GT_CopiedBlockTexture> mTAE = new HashMap<Integer, GT_CopiedBlockTexture>();
+ private static final HashSet<Integer> mFreeSlots = new HashSet<Integer>(64);
+
+ static {
+ for (int i=64;i<128;i++) {
+ mFreeSlots.add(i);
+ }
+ Logger.INFO("Initialising TAE.");
+ }
- public static boolean hookGtTextures() {
- /*ITexture[] textureArrayDump = Textures.BlockIcons.CASING_BLOCKS;
- ITexture[] newTextureArray = new ITexture[1024];
- Utils.LOG_INFO("|======| Texture Array Start Length: "+textureArrayDump.length+" |======|");
- for (int r=0;r<textureArrayDump.length;r++){
- if (textureArrayDump[r] == null){
- Utils.LOG_WARNING("Texture slot "+r+" is empty.");
+ /**
+ *
+ * @param aPage - The Texture page (0-3)
+ * @param aID - The ID on the specified page (0-15)
+ * @param gt_CopiedBlockTexture - The Texture to register
+ * @return - Did it register correctly?
+ */
+ public static boolean registerTexture(int aPage, int aID, GT_CopiedBlockTexture gt_CopiedBlockTexture) {
+ int aRealID = aID + (aPage * 16);
+ return registerTexture(64 + aRealID, gt_CopiedBlockTexture);
+ }
+
+ private static boolean registerTexture(int aID, GT_CopiedBlockTexture gt_CopiedBlockTexture) {
+ if (mFreeSlots.contains(aID)) {
+ mFreeSlots.remove(aID);
+ mTAE.put(aID, gt_CopiedBlockTexture);
+ return true;
+ }
+ else {
+ CORE.crash("Tried to register texture with ID "+aID+" to TAE, but it is already in use.");
+ return false; // Dead Code
+ }
+ }
+
+ public static void finalizeTAE() {
+ String aFreeSpaces = "";
+ AutoMap<Integer> aTemp = new AutoMap<Integer>(mFreeSlots);
+ for (int i = 0; i < mFreeSlots.size() ; i++) {
+ aFreeSpaces += aTemp.get(i);
+ if (i != (mFreeSlots.size() - 1)) {
+ aFreeSpaces += ", ";
}
}
- gtTexturesArrayStartOrigin = textureArrayDump.length;
- System.arraycopy(textureArrayDump, 0, newTextureArray, 0, textureArrayDump.length);
- Textures.BlockIcons.CASING_BLOCKS = newTextureArray;
- if (Textures.BlockIcons.CASING_BLOCKS.length == 1024){
- hasArrayBeenExpanded = true;
+ Logger.INFO("Free Indexes within TAE: "+aFreeSpaces);
+ Logger.INFO("Filling them with ERROR textures.");
+ for (int aFreeSlot : aTemp.values()) {
+ registerTexture(aFreeSlot, new GT_CopiedBlockTexture(ModBlocks.blockCasingsTieredGTPP, 1, 15));
}
- else {
- hasArrayBeenExpanded = false;
+ Logger.INFO("Finalising TAE.");
+ for (int aKeyTae : mTAE.keySet()) {
+ Textures.BlockIcons.CASING_BLOCKS[aKeyTae] = mTAE.get(aKeyTae);
}
- return hasArrayBeenExpanded;*/
- return true;
+ Logger.INFO("Finalised TAE.");
}
- /*public static boolean registerTextures(GT_RenderedTexture textureToRegister) {
- Textures.BlockIcons.CASING_BLOCKS[gtPPLastUsedIndex] = textureToRegister;
- //Just so I know registration is done.
- return true;
- }*/
-
- public static boolean registerTextures(GT_CopiedBlockTexture gt_CopiedBlockTexture) {
+ private static boolean registerTextures(GT_CopiedBlockTexture gt_CopiedBlockTexture) {
try {
//Handle page 2.
Logger.INFO("[TAE} Registering Texture, Last used casing ID is "+gtPPLastUsedIndex+".");
diff --git a/src/Java/gregtech/api/util/CustomRecipeMap.java b/src/Java/gregtech/api/util/CustomRecipeMap.java
index a39050b4e0..ba0ab3dd29 100644
--- a/src/Java/gregtech/api/util/CustomRecipeMap.java
+++ b/src/Java/gregtech/api/util/CustomRecipeMap.java
@@ -22,7 +22,7 @@ public class CustomRecipeMap/* extends GT_Recipe_Map*/{
//public static final CustomRecipeMap sOreWasherRecipes = new GT_Recipe_Map_OreWasher(new HashSet<GT_Recipe>(0), "ic.recipe.orewasher", "Ore Washer", "ic2.blockOreWashingPlant", RES_PATH_GUI + "basicmachines/OreWasher", 1, 3, 1, 1, 1, E, 1, E, true, false);
//Fission Fuel Plant Recipes
- public static final CustomRecipeMap sFissionFuelProcessing = new CustomRecipeMap(new HashSet<GT_Recipe>(50), "gt.recipe.fissionfuel", "Fission Fuel Processing", null, RES_PATH_GUI + "basicmachines/FissionFuel", 0, 0, 0, 4, 1, E, 1, E, true, true);
+ public static final CustomRecipeMap sFissionFuelProcessing = new CustomRecipeMap(new HashSet<GT_Recipe>(50), "gt.recipe.fissionfuel", "Nuclear Fuel Processing", null, RES_PATH_GUI + "basicmachines/FissionFuel", 0, 0, 0, 4, 1, E, 1, E, true, true);
public static final CustomRecipeMap mMultiWireMill = new CustomRecipeMap(new HashSet<GT_Recipe>(500), "gt.recipe.multi.wiremill", "Multiblock Wiremill", null, RES_PATH_GUI + "basicmachines/FissionFuel", 1, 1, 0, 0, 1, E, 1, E, true, true);
diff --git a/src/Java/gregtech/api/util/Recipe_GT.java b/src/Java/gregtech/api/util/Recipe_GT.java
index bfe05d33e7..3ddb25e754 100644
--- a/src/Java/gregtech/api/util/Recipe_GT.java
+++ b/src/Java/gregtech/api/util/Recipe_GT.java
@@ -14,6 +14,7 @@ import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.ItemData;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map_Fuel;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map_Macerator;
import gtPlusPlus.api.interfaces.IComparableRecipe;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
@@ -248,7 +249,7 @@ public class Recipe_GT extends GT_Recipe implements IComparableRecipe{
public static final GT_Recipe_Map sGeoThermalFuels = new GT_Recipe_Map(new HashSet<GT_Recipe>(10), "gt.recipe.geothermalfuel", "GeoThermal Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map sChemicalDehydratorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.chemicaldehydrator", "Chemical Dehydrator", null, RES_PATH_GUI + "basicmachines/Dehydrator", 2, 9, 0, 0, 1, E, 1, E, true, true);
- public static final GT_Recipe_Map sVacuumFurnaceRecipes = new GT_Recipe_Map(new HashSet(500), "gt.recipe.vacfurnace", "Vacuum Furnace", null, "gregtech:textures/gui/basicmachines/Default", 2, 2, 1, 0, 1, "Heat Capacity: ", 1, " K", false, true);
+ public static final GT_Recipe_Map sVacuumFurnaceRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(500), "gt.recipe.vacfurnace", "Vacuum Furnace", null, "gregtech:textures/gui/basicmachines/Default", 2, 2, 1, 0, 1, "Heat Capacity: ", 1, " K", false, true);
public static final GT_Recipe_Map sAlloyBlastSmelterRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.alloyblastsmelter", "Alloy Blast Smelter", null, RES_PATH_GUI + "basicmachines/BlastSmelter", 9, 9, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sSteamTurbineFuels = new GT_Recipe_Map(new HashSet<GT_Recipe>(10), "gt.recipe.geothermalfuel", "GeoThermal Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
@@ -256,6 +257,9 @@ public class Recipe_GT extends GT_Recipe implements IComparableRecipe{
public static final GT_Recipe_Map sLiquidFluorineThoriumReactorRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.lftr", "Liquid Fluoride Thorium Reactor", null, RES_PATH_GUI + "basicmachines/LFTR", 0, 0, 0, 2, 1, "Start: ", 1, " EU", true, true);
public static final GT_Recipe_Map sLiquidFluorineThoriumReactorRecipesEx = new GT_Recipe_Map(new NoConflictGTRecipeMap(), "gt.recipe.lftr.2", "Liquid Fluoride Thorium Reactor", null, RES_PATH_GUI + "basicmachines/LFTR", 0, 0, 0, 2, 1, "Start: ", 1, " EU", true, true);
+ // Ore Milling Map
+ public static final GT_Recipe_Map sOreMillRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(10000), "gt.recipe.oremill", "Milling", null, RES_PATH_GUI + "basicmachines/LFTR", 3, 4, 1, 0, 1, E, 1, E, true, true);
+
//Fission Fuel Plant Recipes
//public static final GT_Recipe_Map sFissionFuelProcessing = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.fissionfuel", "Fission Fuel Processing", null, RES_PATH_GUI + "basicmachines/LFTR", 0, 0, 0, 9, 1, E, 1, E, true, true);