aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r--src/Java/gtPlusPlus/core/block/ModBlocks.java4
-rw-r--r--src/Java/gtPlusPlus/core/config/ConfigHandler.java3
-rw-r--r--src/Java/gtPlusPlus/core/handler/BookHandler.java2
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java2
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java10
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java55
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java3
-rw-r--r--src/Java/gtPlusPlus/core/lib/CORE.java1
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java75
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java29
-rw-r--r--src/Java/gtPlusPlus/core/recipe/common/CI.java97
-rw-r--r--src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java4
-rw-r--r--src/Java/gtPlusPlus/core/util/data/ArrayUtils.java10
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java86
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java100
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java11
16 files changed, 394 insertions, 98 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java
index 4bc5908f98..db9ad2264c 100644
--- a/src/Java/gtPlusPlus/core/block/ModBlocks.java
+++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java
@@ -55,7 +55,8 @@ public final class ModBlocks {
public static Block blockCasingsMisc;
public static Block blockCasings2Misc;
public static Block blockCasings3Misc;
- public static Block blockCasings4Misc;
+ public static Block blockCasings4Misc;
+ public static Block blockCasingsTieredGTPP;
public static Block blockMetaTileEntity;
public static Block blockHeliumGenerator;
@@ -97,7 +98,6 @@ public final class ModBlocks {
public static Block blockPooCollector;
public static Block blockPestKiller;
- public static GregtechMetaTieredCasingBlocks1 BlockTieredCasings1;
public static void init() {
Logger.INFO("Initializing Blocks.");
diff --git a/src/Java/gtPlusPlus/core/config/ConfigHandler.java b/src/Java/gtPlusPlus/core/config/ConfigHandler.java
index ecaf031030..61e7045192 100644
--- a/src/Java/gtPlusPlus/core/config/ConfigHandler.java
+++ b/src/Java/gtPlusPlus/core/config/ConfigHandler.java
@@ -113,6 +113,9 @@ public class ConfigHandler {
"gregtech", true, "Very basic automated cauldron for dust washing.");
enableMachine_Pollution = config.getBoolean("enableMachinePollution",
"gregtech", true, "Pollution Detector & Scrubbers.");
+ enableMachine_RF_Convetor = config.getBoolean("enableMachineRFConvetor", "gregtech",
+ true, "Converts RF to GTEU. Requires COFH-Core to be installed.");
+
// Multi machines
enableMultiblock_AlloyBlastSmelter = config.getBoolean("enableMultiblockAlloyBlastSmelter",
diff --git a/src/Java/gtPlusPlus/core/handler/BookHandler.java b/src/Java/gtPlusPlus/core/handler/BookHandler.java
index 860946f513..d9d3efe680 100644
--- a/src/Java/gtPlusPlus/core/handler/BookHandler.java
+++ b/src/Java/gtPlusPlus/core/handler/BookHandler.java
@@ -125,7 +125,7 @@ public class BookHandler {
"The Mode can be set by using a Screwdriver on the controller block. Each mode allows the use of Numbered Circuits, to allow a different machine 'type' for each input bus.",
"[Metal Work] Mode A - Allows the multiblock to function as a Compressor, a Lathe or an Electro-Magnet. To allow a hatch to run in Compressor mode, insert a No. 20 circuit. For Lathe, use No. 21 and for Electro-Magnet use No. 22.",
"[Fluid Work] Mode B - Allows the multiblock to function as a Fermenter, a Fluid Extractor or an Extractor. To allow a hatch to run in Fermenter mode, insert a No. 20 circuit. For Fluid Extractor, use No. 21 and for Extractor use No. 22.",
- "[Misc. Work] Mode C - Allows the multiblock to function as a Laser Engraver, a Replicator or an Autoclave. To allow a hatch to run in Laser Engraver mode, insert a No. 20 circuit. For Autoclave, use No. 21 and for Replicator use No. 22. REPLICATOR DISABLED.",
+ "[Misc. Work] Mode C - Allows the multiblock to function as a Laser Engraver, an Autoclave or a Fluid Solidifier. To allow a hatch to run in Laser Engraver mode, insert a No. 20 circuit. For Autoclave, use No. 21 and for Solidifier use No. 22.",
});
book_NuclearManual = writeBookTemplate(
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
index be02e352c7..d7c971e71f 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
@@ -68,6 +68,7 @@ import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialCuttingF
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.GregtechIndustrialAlloySmelter;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialFuelRefinery;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialGeneratorArray;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialMacerator;
@@ -216,6 +217,7 @@ public class COMPAT_HANDLER {
GregtechPowerBreakers.run();
GregtechFluidReactor.run();
GregtechAlgaeContent.run();
+ GregtechIndustrialAlloySmelter.run();
//New Horizons Content
NewHorizonsAccelerator.run();
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index 114750d2d9..354107147b 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -4,7 +4,6 @@ import static gtPlusPlus.core.creative.AddToCreativeTab.tabMisc;
import static gtPlusPlus.core.lib.CORE.LOAD_ALL_CONTENT;
import cpw.mods.fml.common.registry.GameRegistry;
-import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_OreDictUnificator;
import gtPlusPlus.api.objects.Logger;
@@ -14,7 +13,6 @@ import gtPlusPlus.core.common.compat.COMPAT_Baubles;
import gtPlusPlus.core.creative.AddToCreativeTab;
import gtPlusPlus.core.item.base.BaseEuItem;
import gtPlusPlus.core.item.base.BaseItemBackpack;
-import gtPlusPlus.core.item.base.BaseItemBurnable;
import gtPlusPlus.core.item.base.BaseItemComponent.ComponentTypes;
import gtPlusPlus.core.item.base.BaseItemDamageable;
import gtPlusPlus.core.item.base.BaseItemTCShard;
@@ -55,7 +53,6 @@ import gtPlusPlus.core.item.general.ItemGenericToken;
import gtPlusPlus.core.item.general.ItemGiantEgg;
import gtPlusPlus.core.item.general.ItemHalfCompleteCasings;
import gtPlusPlus.core.item.general.ItemLavaFilter;
-import gtPlusPlus.core.item.general.RF2EU_Battery;
import gtPlusPlus.core.item.general.books.ItemBaseBook;
import gtPlusPlus.core.item.general.capture.ItemEntityCatcher;
import gtPlusPlus.core.item.general.chassis.ItemBoilerChassis;
@@ -97,6 +94,7 @@ import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.MaterialUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.everglades.GTplusplus_Everglades;
+import gtPlusPlus.xmod.cofh.HANDLER_COFH;
import gtPlusPlus.xmod.eio.material.MaterialEIO;
import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechItems;
import net.minecraft.item.EnumRarity;
@@ -1135,10 +1133,6 @@ public final class ModItems {
if (LoadedMods.IndustrialCraft2|| LOAD_ALL_CONTENT){
Logger.INFO("IndustrialCraft2 Found - Loading Resources.");
- if (LoadedMods.CoFHCore) {
- RfEuBattery = new RF2EU_Battery();
- }
-
//Baubles Mod Test
try {
final Class<?> baublesTest = ReflectionUtils.getClass("baubles.api.IBauble");
@@ -1167,7 +1161,7 @@ public final class ModItems {
//UtilsItems.generateSpawnEgg("ic2", "boatcarbon", Utils.generateSingularRandomHexValue(), Utils.generateSingularRandomHexValue());
-
+ HANDLER_COFH.initItems();
/*
* Misc Items
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java
index 6e5b47041f..49d3303688 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java
@@ -87,7 +87,7 @@ public class GenericChem extends ItemPackage {
// Phenol Byproducts
public Item PhenolicResins; //https://en.wikipedia.org/wiki/Phenol_formaldehyde_resin
- public ItemGenericChemBase mGenericChemItem1;
+ public static ItemGenericChemBase mGenericChemItem1;
@@ -112,6 +112,7 @@ public class GenericChem extends ItemPackage {
public static ItemStack mOrangeCatalyst;
public static ItemStack mPurpleCatalyst;
public static ItemStack mBrownCatalyst;
+ public static ItemStack mPinkCatalyst;
public void registerItemStacks() {
@@ -124,6 +125,7 @@ public class GenericChem extends ItemPackage {
mOrangeCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 3, 1);
mPurpleCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 4, 1);
mBrownCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 5, 1);
+ mPinkCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 6, 1);
}
@@ -135,6 +137,7 @@ public class GenericChem extends ItemPackage {
ItemUtils.addItemToOreDictionary(mOrangeCatalyst, "catalystVanadiumPalladium");
ItemUtils.addItemToOreDictionary(mPurpleCatalyst, "catalystIridiumRuthenium");
ItemUtils.addItemToOreDictionary(mBrownCatalyst, "catalystNickelAluminium");
+ ItemUtils.addItemToOreDictionary(mPinkCatalyst, "catalystPlatinumRhodium");
}
@@ -206,6 +209,7 @@ public class GenericChem extends ItemPackage {
recipeCatalystOrange();
recipeCatalystPurple();
recipeCatalystBrown();
+ recipeCatalystPink();
recipeNitroBenzene();
recipeAniline();
@@ -224,7 +228,7 @@ public class GenericChem extends ItemPackage {
private void recipeCyclohexane() {
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
getTierTwoChip(),
ItemUtils.getSimpleStack(mBrownCatalyst, 0)
@@ -247,7 +251,7 @@ public class GenericChem extends ItemPackage {
private void recipeCyclohexanone() {
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
getTierTwoChip(),
ItemUtils.getSimpleStack(mBlueCatalyst, 0)
@@ -266,7 +270,7 @@ public class GenericChem extends ItemPackage {
120,
2);
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
getTierTwoChip(),
},
@@ -293,7 +297,7 @@ public class GenericChem extends ItemPackage {
// Assembly Recipe
CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
getTierOneChip(),
- ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10),
+ CI.getEmptyCatalyst(10),
ELEMENT.getInstance().IRON.getDust(2),
ELEMENT.getInstance().COPPER.getDust(2),
},
@@ -308,7 +312,7 @@ public class GenericChem extends ItemPackage {
// Assembly Recipe
CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
getTierThreeChip(),
- ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10),
+ CI.getEmptyCatalyst(10),
ELEMENT.getInstance().TUNGSTEN.getDust(4),
ELEMENT.getInstance().NICKEL.getDust(4),
},
@@ -323,7 +327,7 @@ public class GenericChem extends ItemPackage {
// Assembly Recipe
CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
getTierTwoChip(),
- ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10),
+ CI.getEmptyCatalyst(10),
ELEMENT.getInstance().COBALT.getDust(3),
ELEMENT.getInstance().TITANIUM.getDust(3),
},
@@ -338,7 +342,7 @@ public class GenericChem extends ItemPackage {
// Assembly Recipe
CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
getTierTwoChip(),
- ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10),
+ CI.getEmptyCatalyst(10),
ELEMENT.getInstance().VANADIUM.getDust(5),
ELEMENT.getInstance().PALLADIUM.getDust(5),
},
@@ -353,7 +357,7 @@ public class GenericChem extends ItemPackage {
// Assembly Recipe
CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
getTierFourChip(),
- ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10),
+ CI.getEmptyCatalyst(10),
ELEMENT.getInstance().IRIDIUM.getDust(6),
ELEMENT.getInstance().RUTHENIUM.getDust(6),
},
@@ -368,7 +372,7 @@ public class GenericChem extends ItemPackage {
// Assembly Recipe
CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
getTierOneChip(),
- ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10),
+ CI.getEmptyCatalyst(10),
ELEMENT.getInstance().NICKEL.getDust(4),
ELEMENT.getInstance().ALUMINIUM.getDust(4),
},
@@ -379,10 +383,25 @@ public class GenericChem extends ItemPackage {
}
+ private void recipeCatalystPink() {
+ // Assembly Recipe
+ CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
+ getTierThreeChip(),
+ CI.getEmptyCatalyst(10),
+ ELEMENT.getInstance().PLATINUM.getDust(4),
+ ELEMENT.getInstance().RHODIUM.getDust(4),
+ },
+ GT_Values.NF,
+ ItemUtils.getSimpleStack(mPinkCatalyst, 10),
+ 30 * 20,
+ 2000);
+
+ }
+
private void recipeCadaverineAndPutrescine() {
// Basic Recipe
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
getTierOneChip(),
ItemUtils.getSimpleStack(Items.rotten_flesh, 64)
@@ -402,7 +421,7 @@ public class GenericChem extends ItemPackage {
1);
// Advanced Recipe
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
getTierTwoChip(),
ItemUtils.getSimpleStack(Items.rotten_flesh, 128),
@@ -426,7 +445,7 @@ public class GenericChem extends ItemPackage {
private void recipeAniline() {
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
getTierThreeChip(),
ItemUtils.getSimpleStack(mBlueCatalyst, 0)
@@ -449,7 +468,7 @@ public class GenericChem extends ItemPackage {
private void recipeNitroBenzene() {
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
getTierThreeChip(),
},
@@ -474,7 +493,7 @@ public class GenericChem extends ItemPackage {
private void recipe2Ethylanthraquinone() {
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
CI.getNumberedCircuit(4),
ItemUtils.getItemStackOfAmountFromOreDict("dustPhthalicAnhydride", 4),
@@ -504,7 +523,7 @@ public class GenericChem extends ItemPackage {
private void recipe2Ethylanthrahydroquinone() {
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
CI.getNumberedCircuit(4),
ItemUtils.getSimpleStack(mOrangeCatalyst, 0),
@@ -553,7 +572,7 @@ public class GenericChem extends ItemPackage {
private void recipeLithiumHydroperoxide() {
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
CI.getNumberedCircuit(4),
ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroxide", 7),
@@ -587,7 +606,7 @@ public class GenericChem extends ItemPackage {
private void recipeHydrogenPeroxide() {
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
CI.getNumberedCircuit(4),
},
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java b/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java
index 8a003ec7aa..208fecd57c 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java
@@ -19,7 +19,7 @@ public class ItemGenericChemBase extends Item {
final protected IIcon base[];
- final private int aMetaSize = 6;
+ final private int aMetaSize = 7;
/*
* 0 - Red Metal Catalyst //FeCu
@@ -28,6 +28,7 @@ public class ItemGenericChemBase extends Item {
* 3 - Orange Metal Catalyst //Vanadium Pd
* 4 - Purple Metal Catalyst //IrIdium Ruthenium
* 5 - Brown Metal Catalyst //NiAl
+ * 6 - Pink Metal Catalyst //PtRh
*
*/
diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java
index 2a267dc16d..34d7475df3 100644
--- a/src/Java/gtPlusPlus/core/lib/CORE.java
+++ b/src/Java/gtPlusPlus/core/lib/CORE.java
@@ -237,6 +237,7 @@ public class CORE {
public static boolean enableMachine_ComponentAssemblers = false;
public static boolean enableCustom_Pipes = true;
public static boolean enableCustom_Cables = true;
+ public static boolean enableMachine_RF_Convetor = false;
//Multiblocks
public static boolean enableMultiblock_AlloyBlastSmelter = true;
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index 74c8ce4202..f1676689e7 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -17,6 +17,7 @@ import gregtech.api.util.ThermalFuel;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.item.ModItems;
+import gtPlusPlus.core.item.chemistry.AgriculturalChem;
import gtPlusPlus.core.item.chemistry.GenericChem;
import gtPlusPlus.core.item.chemistry.IonParticles;
import gtPlusPlus.core.item.chemistry.RocketFuels;
@@ -39,6 +40,7 @@ import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.MaterialUtils;
import gtPlusPlus.core.util.reflect.AddGregtechRecipe;
import gtPlusPlus.everglades.dimension.Dimension_Everglades;
+import gtPlusPlus.plugin.agrichem.BioRecipes;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@@ -91,6 +93,7 @@ public class RECIPES_GREGTECH {
latheRecipes();
vacuumFreezerRecipes();
fluidheaterRecipes();
+ chemplantRecipes();
/**
@@ -107,6 +110,30 @@ public class RECIPES_GREGTECH {
addFuels();
}
+ private static void chemplantRecipes() {
+
+ // Advanced method for Nitric Acid Production
+ /* CORE.RA.addChemicalPlantRecipe(
+ new ItemStack[] {
+ CI.getNumberedBioCircuit(17),
+ CI.getPinkCatalyst(0),
+ },
+ new FluidStack[] {
+ FluidUtils.getLava(10000),
+ FluidUtils.getDistilledWater(5000)
+ },
+ new ItemStack[] {
+
+ },
+ new FluidStack[] {
+ FluidUtils.getFluidStack("nitricacid", 2000),
+ },
+ 10 * 20,
+ 480,
+ 3);*/
+
+ }
+
private static void fluidheaterRecipes() {
GT_Values.RA.addFluidHeaterRecipe(CI.getNumberedCircuit(20), FluidUtils.getWater(1000), FluidUtils.getHotWater(1000), 30, 30);
@@ -511,6 +538,30 @@ public class RECIPES_GREGTECH {
private static void laserEngraverRecipes() {
+ // Laser Sensors and Emitters together
+ GregtechItemList[] aTransParts = new GregtechItemList[] {
+ GregtechItemList.TransmissionComponent_ULV,
+ GregtechItemList.TransmissionComponent_LV,
+ GregtechItemList.TransmissionComponent_MV,
+ GregtechItemList.TransmissionComponent_HV,
+ GregtechItemList.TransmissionComponent_EV,
+ GregtechItemList.TransmissionComponent_IV,
+ GregtechItemList.TransmissionComponent_LuV,
+ GregtechItemList.TransmissionComponent_ZPM,
+ GregtechItemList.TransmissionComponent_UV,
+ GregtechItemList.TransmissionComponent_MAX,
+ };
+ for (int i=0;i<10;i++) {
+ GT_Values.RA.addLaserEngraverRecipe(
+ CI.getEmitter(i, 2),
+ CI.getSensor(i, 2),
+ aTransParts[i].get(1),
+ 20 * 5,
+ MaterialUtils.getVoltageForTier(i));
+ }
+
+
+
GT_Values.RA.addLaserEngraverRecipe(
GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 6L),
GregtechItemList.Laser_Lens_Special.get(0),
@@ -646,18 +697,18 @@ public class RECIPES_GREGTECH {
new int[] {10000}, //Output Chance
20 * 120,
30720);
-
+
//NITINOL_60
CORE.RA.addBlastSmelterRecipe(
new ItemStack[] {
- ELEMENT.getInstance().TITANIUM.getDust(3),
- ELEMENT.getInstance().NICKEL.getDust(2)
+ ELEMENT.getInstance().TITANIUM.getDust(3),
+ ELEMENT.getInstance().NICKEL.getDust(2)
},
- ALLOY.NITINOL_60.getFluid(20 * 144),
+ ALLOY.NITINOL_60.getFluid(5 * 144),
0,
20 * 75,
7680);
-
+
@@ -847,13 +898,13 @@ public class RECIPES_GREGTECH {
//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);
-
+
}
@@ -1568,10 +1619,10 @@ public class RECIPES_GREGTECH {
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Invar, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Invar, 4L), GregtechItemList.Fluid_Cell_144L.get(1L, new Object[0]), 75, 32);
}
}
-
+
if (LoadedMods.Baubles) {
-
+
// Turbine Housing Research Page
@@ -1600,8 +1651,8 @@ public class RECIPES_GREGTECH {
ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_9_CLOAKING, 1),
20 * 60 * 10,
(int) GT_Values.V[7]);
-
-
+
+
// Supreme Pizza Gloves
CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {
ItemUtils.getGregtechCircuit(19),
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
index d703bb9637..2165f27ec7 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
@@ -253,7 +253,7 @@ public class RECIPES_Machines {
CI.getTieredComponentOfMaterial(Materials.Steel, OrePrefixes.gearGt, 6),
CI.getTieredComponentOfMaterial(Materials.Aluminium, OrePrefixes.plate, 32),
CI.getTieredComponentOfMaterial(Materials.CobaltBrass, OrePrefixes.dust, 16),
- ALLOY.STAINLESS_STEEL.getFrameBox(4),
+ CI.getTieredComponent(OrePrefixes.frameGt, 2, 4),
},
ALLOY.STEEL.getFluid(2 * (144 * 4)),
GregtechItemList.ChemicalPlant_Controller.get(1),
@@ -293,7 +293,7 @@ public class RECIPES_Machines {
private static void distillus() {
- CORE.RA.addFluidReactorRecipe(
+ CORE.RA.addChemicalPlantRecipe(
new ItemStack[] {
CI.getNumberedBioCircuit(19),
ItemList.Distillation_Tower.get(2),
@@ -338,7 +338,7 @@ public class RECIPES_Machines {
CI.getElectricPiston(i, 10),
CI.getFieldGenerator(i + 1, 6),
CI.getPlate(i, 16),
- CI.getEmitter(i - 1, 24),
+ CI.getTransmissionComponent(i - 1, 8),
CI.getTieredComponent(OrePrefixes.cableGt08, i, 16)
},
ALLOY.EGLIN_STEEL.getFluid(i * (144 * 4)),
@@ -394,14 +394,14 @@ public class RECIPES_Machines {
for (int i=0;i<10;i++) {
CORE.RA.addSixSlotAssemblingRecipe(
new ItemStack[] {
- CI.getNumberedBioCircuit(22),
+ CI.getNumberedBioCircuit(20),
CI.getTieredMachineCasing(i),
CI.getPlate(i, 8),
CI.getGear(i, 2),
CI.getTieredComponent(OrePrefixes.cableGt02, i, 4),
CI.getTieredComponent(OrePrefixes.circuit, i, 2)
},
- CI.getTieredFluid(i, 144 * i * 2),
+ CI.getAlternativeTieredFluid(i, 144 * i * 2),
aHulls[i].get(1),
20 * 20,
MaterialUtils.getVoltageForTier(i));
@@ -605,6 +605,16 @@ public class RECIPES_Machines {
plateEnergeticAlloy, pipeLargeCopper, plateEnergeticAlloy,
RECIPE_SteamCondenser);
}
+
+
+ //Steam Condenser
+ if (LoadedMods.CoFHCore && CORE.ConfigSwitches.enableMachine_RF_Convetor){
+ RecipeUtils.addShapedGregtechRecipe(
+ CI.getPlate(4, 1), CI.getTieredCircuitOreDictName(5), CI.getPlate(4, 1),
+ CI.getTransmissionComponent(3, 1), CI.getTieredGTPPMachineCasing(4, 1), CI.getTransmissionComponent(3, 1),
+ CI.getPlate(4, 1), plateEnergeticAlloy, CI.getPlate(4, 1),
+ GregtechItemList.Energy_Buffer_RF_Convertor.get(1));
+ }
if (CORE.ConfigSwitches.enableMultiblock_IronBlastFurnace){
@@ -1488,8 +1498,7 @@ public class RECIPES_Machines {
GregtechItemList.Casing_Refinery_Structural.get(4),
ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR, GTNH ? 2 : 1),
CI.getTieredComponent(OrePrefixes.cableGt08, GTNH ? 7 : 6, GTNH ? 32 : 16),
- CI.getEmitter(GTNH ? 6 : 5, 2),
- CI.getSensor(GTNH ? 6 : 5, 2),
+ CI.getTransmissionComponent(GTNH ? 6 : 5, 2),
GregtechItemList.Gregtech_Computer_Cube.get(1),
},
CI.getTieredFluid(7, 144 * (GTNH ? 32 : 8)), GregtechItemList.GT4_Multi_Crafter.get(1),
@@ -2178,8 +2187,7 @@ public class RECIPES_Machines {
int aTier = (i + 1);
ItemStack[] aInputs = new ItemStack[] {
CI.getTieredMachineHull(i, 1 * aCostMultiplier),
- CI.getEmitter(i, 2 * aCostMultiplier),
- CI.getSensor(i, 2 * aCostMultiplier),
+ CI.getTransmissionComponent(i, 2 * aCostMultiplier),
CI.getFieldGenerator(i, 1 * aCostMultiplier),
CI.getTieredComponent(OrePrefixes.plate, aTier, 4 * aCostMultiplier),
CI.getTieredComponent(OrePrefixes.circuit, aTier, 2 * aCostMultiplier),
@@ -2199,9 +2207,8 @@ public class RECIPES_Machines {
CORE.RA.addSixSlotAssemblingRecipe(
new ItemStack[] {
CI.getTieredMachineHull(-1, 1 * aCostMultiplier),
- CI.getEmitter(2, 2 * aCostMultiplier),
+ CI.getTransmissionComponent(2, 2 * aCostMultiplier),
CI.getElectricPiston(4, 2 * aCostMultiplier),
- CI.getSensor(4, 1 * aCostMultiplier),
CI.getTieredComponent(OrePrefixes.plate, 5, 4 * aCostMultiplier),
CI.getTieredComponent(OrePrefixes.pipeSmall, 4, 1 * aCostMultiplier),
},
diff --git a/src/Java/gtPlusPlus/core/recipe/common/CI.java b/src/Java/gtPlusPlus/core/recipe/common/CI.java
index 6b8f992266..1d3d386da3 100644
--- a/src/Java/gtPlusPlus/core/recipe/common/CI.java
+++ b/src/Java/gtPlusPlus/core/recipe/common/CI.java
@@ -7,6 +7,7 @@ import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.item.chemistry.AgriculturalChem;
+import gtPlusPlus.core.item.chemistry.GenericChem;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.ALLOY;
@@ -564,7 +565,7 @@ public class CI {
private static final Material[] aMaterial_Secondary = new Material[] {
ALLOY.STEEL,
ALLOY.SILICON_CARBIDE,
- ALLOY.TUNGSTEN_CARBIDE,
+ ALLOY.BABBIT_ALLOY,
ALLOY.INCONEL_690,
ALLOY.STELLITE,
ALLOY.ARCANITE,
@@ -579,7 +580,7 @@ public class CI {
private static final Material[] aMaterial_Tertiary = new Material[] {
ELEMENT.getInstance().LEAD,
ELEMENT.getInstance().ALUMINIUM,
- ALLOY.STAINLESS_STEEL,
+ ELEMENT.STANDALONE.BLACK_METAL,
ELEMENT.getInstance().TUNGSTEN,
ALLOY.HASTELLOY_N,
ALLOY.ENERGYCRYSTAL,
@@ -1264,4 +1265,96 @@ public class CI {
return ItemUtils.getOrePrefixStack(aPrefix, aMaterial, aAmount);
}
+ public static ItemStack getTransmissionComponent(int aTier, int aAmount) {
+ GregtechItemList[] aTransParts = new GregtechItemList[] {
+ GregtechItemList.TransmissionComponent_ULV,
+ GregtechItemList.TransmissionComponent_LV,
+ GregtechItemList.TransmissionComponent_MV,
+ GregtechItemList.TransmissionComponent_HV,
+ GregtechItemList.TransmissionComponent_EV,
+ GregtechItemList.TransmissionComponent_IV,
+ GregtechItemList.TransmissionComponent_LuV,
+ GregtechItemList.TransmissionComponent_ZPM,
+ GregtechItemList.TransmissionComponent_UV,
+ GregtechItemList.TransmissionComponent_MAX,
+ };
+ return aTransParts[aTier].get(aAmount);
+ }
+
+ public static ItemStack getEmptyCatalyst(int aAmount) {
+ return ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 13, aAmount);
+ }
+
+ /**
+ * Aluminium + Silver Catalyst
+ * @param aAmount - Stacksize
+ * @return - A Catalyst stack of given size
+ */
+ public static ItemStack getGreenCatalyst(int aAmount) {
+ return ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 14, aAmount);
+ }
+
+ /**
+ * Iron + Copper Catalyst
+ * @param aAmount - Stacksize
+ * @return - A Catalyst stack of given size
+ */
+ public static ItemStack getRedCatalyst(int aAmount) {
+ return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 0, aAmount);
+ }
+
+ /**
+ * Tungsten + Nickel Catalyst
+ * @param aAmount - Stacksize
+ * @return - A Catalyst stack of given size
+ */
+ public static ItemStack getYellowCatalyst(int aAmount) {
+ return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 1, aAmount);
+ }
+
+ /**
+ * Cobalt + Titanium Catalyst
+ * @param aAmount - Stacksize
+ * @return - A Catalyst stack of given size
+ */
+ public static ItemStack getBlueCatalyst(int aAmount) {
+ return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 2, aAmount);
+ }
+
+ /**
+ * Vanadium + Palladium Catalyst
+ * @param aAmount - Stacksize
+ * @return - A Catalyst stack of given size
+ */
+ public static ItemStack getOrangeCatalyst(int aAmount) {
+ return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 3, aAmount);
+ }
+
+ /**
+ * Iridium + Ruthenium Catalyst
+ * @param aAmount - Stacksize
+ * @return - A Catalyst stack of given size
+ */
+ public static ItemStack getPurpleCatalyst(int aAmount) {
+ return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 4, aAmount);
+ }
+
+ /**
+ * Aluminium + Nickel Catalyst
+ * @param aAmount - Stacksize
+ * @return - A Catalyst stack of given size
+ */
+ public static ItemStack getBrownCatalyst(int aAmount) {
+ return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 5, aAmount);
+ }
+
+ /**
+ * Platinum + Rhodium Catalyst
+ * @param aAmount - Stacksize
+ * @return - A Catalyst stack of given size
+ */
+ public static ItemStack getPinkCatalyst(int aAmount) {
+ return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 6, aAmount);
+ }
+
}
diff --git a/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java b/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java
index 6cd13dc209..add55b8d27 100644
--- a/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java
+++ b/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java
@@ -20,9 +20,9 @@ public class SlotChemicalPlantInput extends Slot {
}
public static boolean isItemValidForChemicalPlantSlot(ItemStack aStack) {
- boolean validItem = Gregtech_Recipe_Map.sFluidChemicalReactorRecipes.containsInput(aStack);
+ boolean validItem = Gregtech_Recipe_Map.sChemicalPlantRecipes.containsInput(aStack);
if (!validItem) {
- for (Recipe_GT f : Gregtech_Recipe_Map.sFluidChemicalReactorRecipes.mRecipeList) {
+ for (Recipe_GT f : Gregtech_Recipe_Map.sChemicalPlantRecipes.mRecipeList) {
if (f.mFluidInputs.length > 0) {
for (FluidStack g : f.mFluidInputs) {
if (g != null) {
diff --git a/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java
index 3e96220995..6f5bb5b453 100644
--- a/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java
+++ b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java
@@ -10,6 +10,7 @@ import java.util.Set;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
public class ArrayUtils {
@@ -88,5 +89,14 @@ public class ArrayUtils {
return org.apache.commons.lang3.ArrayUtils.toString(aArray);
}
+ public static <T> Object[] getArrayFromArrayList(ArrayList<T> aArrayList) {
+ Object[] aGenericArray = new Object[aArrayList.size()];
+ int aIndex = 0;
+ for (T object : aArrayList) {
+ aGenericArray[aIndex++] = object;
+ }
+ return aGenericArray;
+ }
+
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
index 485436011f..d7d611a1e4 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
@@ -25,11 +25,14 @@ import gtPlusPlus.core.item.base.dusts.BaseItemDustUnique;
import gtPlusPlus.core.item.base.dusts.decimal.BaseItemCentidust;
import gtPlusPlus.core.item.base.dusts.decimal.BaseItemDecidust;
import gtPlusPlus.core.item.base.plates.BaseItemPlate_OLD;
+import gtPlusPlus.core.item.chemistry.AgriculturalChem;
+import gtPlusPlus.core.item.chemistry.GenericChem;
import gtPlusPlus.core.item.tool.staballoy.MultiPickaxeBase;
import gtPlusPlus.core.item.tool.staballoy.MultiSpadeBase;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
@@ -909,46 +912,10 @@ public class ItemUtils {
return CORE.burnables.add(new Pair<Integer, ItemStack>(burn, aBurnable));
}
- /**
- * Quick Block Name Lookup that is friendly to servers and locale.
- */
- private static volatile Map<String, String> mLocaleCache = new HashMap<String, String>();
-
public static String getLocalizedNameOfBlock(BlockPos pos) {
Block block = pos.world.getBlock(pos.xPos, pos.yPos, pos.zPos);
int metaData = pos.world.getBlockMetadata(pos.xPos, pos.yPos, pos.zPos);
- return getLocalizedNameOfBlock(block, metaData);
- }
-
- public synchronized static String getLocalizedNameOfBlock(Block block, int meta) {
- if (block == null || meta < 0) {
- return "Bad Block";
- }
- String mCacheKey = block.getUnlocalizedName() + ":" + meta;
- if (mLocaleCache.containsKey(mCacheKey)) {
- // Recache the key if it's invalid.
- if (mLocaleCache.get(mCacheKey).toLowerCase().contains(".name")) {
- mLocaleCache.remove(mCacheKey);
- String mNew = ItemUtils.simpleMetaStack(block, meta, 1).getDisplayName();
- //Logger.INFO("Re-caching "+mNew+" into locale cache.");
- mLocaleCache.put(mCacheKey, mNew);
- }
- //Logger.INFO("Returning Cached Value.");
- return mLocaleCache.get(mCacheKey);
- } else {
- Item item = Item.getItemFromBlock(block);
- if (item == null) {
- return "Bad Item";
- }
- String unlocalizedName = item.getUnlocalizedName(new ItemStack(block, 1, meta));
- String blockName = StatCollector.translateToLocal(unlocalizedName + ".name");
- if (blockName.toLowerCase().contains(".name")) {
- blockName = ItemUtils.simpleMetaStack(block, meta, 1).getDisplayName();
- }
- mLocaleCache.put(mCacheKey, blockName);
- //Logger.INFO("Cached New Value.");
- return blockName;
- }
+ return LangUtils.getLocalizedNameOfBlock(block, metaData);
}
public static boolean checkForInvalidItems(ItemStack mInput) {
@@ -1270,7 +1237,7 @@ public class ItemUtils {
}
public static ItemStack getItemListObject(String aObjectFromExperimentalName, String aReplacementName, int aAmount) {
- ItemList aItemListObject = getItemListObject(aReplacementName, aReplacementName);
+ ItemList aItemListObject = getItemListObject(aObjectFromExperimentalName, aReplacementName);
if (aItemListObject == ItemList.NULL || aItemListObject == null) {
return null;
}
@@ -1304,4 +1271,47 @@ public class ItemUtils {
}
}
+ public static boolean isControlCircuit(ItemStack aStack) {
+ if (aStack != null) {
+ Item aItem = aStack.getItem();
+ if (aItem == CI.getNumberedBioCircuit(0).getItem() || aItem == CI.getNumberedCircuit(0).getItem()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean isCatalyst(ItemStack aStack) {
+
+ if (GT_Utility.areStacksEqual(aStack, GenericChem.mBlueCatalyst, true)) {
+ return true;
+ }
+ if (GT_Utility.areStacksEqual(aStack, GenericChem.mBrownCatalyst, true)) {
+ return true;
+ }
+ if (GT_Utility.areStacksEqual(aStack, GenericChem.mOrangeCatalyst, true)) {
+ return true;
+ }
+ if (GT_Utility.areStacksEqual(aStack, GenericChem.mPurpleCatalyst, true)) {
+ return true;
+ }
+ if (GT_Utility.areStacksEqual(aStack, GenericChem.mRedCatalyst, true)) {
+ return true;
+ }
+ if (GT_Utility.areStacksEqual(aStack, GenericChem.mYellowCatalyst, true)) {
+ return true;
+ }
+ if (GT_Utility.areStacksEqual(aStack, GenericChem.mPinkCatalyst, true)) {
+ return true;
+ }
+ if (GT_Utility.areStacksEqual(aStack, AgriculturalChem.mGreenCatalyst, true)) {
+ return true;
+ }
+ return false;
+ }
+
+ public static String getLocalizedNameOfBlock(Block aBlock, int aMeta) {
+ return LangUtils.getLocalizedNameOfBlock(aBlock, aMeta);
+ }
+
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java
index 01d0efac54..0b24e962af 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java
@@ -7,7 +7,13 @@ import java.util.Properties;
import cpw.mods.fml.common.registry.LanguageRegistry;
import gregtech.api.util.GT_LanguageManager;
+import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.StatCollector;
public class LangUtils {
@@ -15,7 +21,7 @@ public class LangUtils {
public static boolean rewriteEntryForLanguageRegistry(String aKey, String aNewValue){
return rewriteEntryForLanguageRegistry("en_US", aKey, aNewValue);
}
-
+
@SuppressWarnings("unchecked")
public static boolean rewriteEntryForLanguageRegistry(String aLang, String aKey, String aNewValue){
LanguageRegistry aInstance = LanguageRegistry.instance();
@@ -43,7 +49,7 @@ public class LangUtils {
}
}
catch (IllegalArgumentException | IllegalAccessException e) {
-
+
}
}
return false;
@@ -52,5 +58,93 @@ public class LangUtils {
public static String trans(String aNr, String aEnglish) {
return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_GTPP_" + aNr, aEnglish, false);
}
-
+
+
+
+ /**
+ * Quick Block Name Lookup that is friendly to servers and locale.
+ */
+ private static final Map<String, String> mLocaleCache = new HashMap<String, String>();
+
+ public static String getLocalizedNameOfBlock(Block aBlock, int aMeta) {
+ if (aBlock != null) {
+ return getLocalizedNameOfItemStack(ItemUtils.simpleMetaStack(aBlock, aMeta, 1));
+ }
+ return "Bad Block Name";
+ }
+
+ public static String getLocalizedNameOfItem(Item aItem, int aMeta) {
+ if (aItem != null) {
+ return getLocalizedNameOfItemStack(ItemUtils.simpleMetaStack(aItem, aMeta, 1));
+ }
+ return "Bad Item Name";
+ }
+
+ public static String getLocalizedNameOfItemStack(ItemStack aStack) {
+ String aUnlocalized;
+ if (aStack != null) {
+ aUnlocalized = ItemUtils.getUnlocalizedItemName(aStack)+"."+aStack.getItemDamage()+".name";
+ if (aUnlocalized == null || aUnlocalized.length() <= 0) {
+ return "Bad Locale Data";
+ }
+ String mCacheKey = aUnlocalized;
+ if (mLocaleCache.containsKey(mCacheKey)) {
+ // Recache the key if it's invalid.
+ if (mLocaleCache.get(mCacheKey).toLowerCase().contains(".name") || mLocaleCache.get(mCacheKey).toLowerCase().contains("|")) {
+ mLocaleCache.remove(mCacheKey);
+ String mNew;
+ try {
+ mNew = ("" + StatCollector
+ .translateToLocal(aStack.getItem().getUnlocalizedNameInefficiently(aStack) + ".name"))
+ .trim();
+ if (aStack.hasTagCompound()) {
+ if (aStack.stackTagCompound != null && aStack.stackTagCompound.hasKey("display", 10)) {
+ NBTTagCompound nbttagcompound = aStack.stackTagCompound.getCompoundTag("display");
+
+ if (nbttagcompound.hasKey("Name", 8)) {
+ mNew = nbttagcompound.getString("Name");
+ }
+ }
+ }
+ } catch (Throwable t) {
+ mNew = "ERROR - Empty Stack";
+ }
+ Logger.INFO("Re-caching "+mNew+" into locale cache. Key: "+mCacheKey);
+ mLocaleCache.put(mCacheKey, mNew);
+ }
+ Logger.INFO("Returning Cached Value. Key: "+mCacheKey);
+ return mLocaleCache.get(mCacheKey);
+ }
+ else {
+ String unlocalizedName = aStack.getItem().getUnlocalizedName(aStack);
+ Logger.INFO("Cached New Value. UnlocalName: "+unlocalizedName);
+ String blockName = StatCollector.translateToLocal(unlocalizedName + ".name");
+ Logger.INFO("Cached New Value. TranslatedName: "+unlocalizedName);
+ if (blockName.toLowerCase().contains(".name") || blockName.toLowerCase().contains("|")) {
+ try {
+ blockName = ("" + StatCollector
+ .translateToLocal(aStack.getItem().getUnlocalizedNameInefficiently(aStack) + ".name"))
+ .trim();
+ if (aStack.hasTagCompound()) {
+ if (aStack.stackTagCompound != null && aStack.stackTagCompound.hasKey("display", 10)) {
+ NBTTagCompound nbttagcompound = aStack.stackTagCompound.getCompoundTag("display");
+ if (nbttagcompound.hasKey("Name", 8)) {
+ blockName = nbttagcompound.getString("Name");
+ }
+ }
+ }
+ } catch (Throwable t) {
+ blockName = "ERROR - Empty Stack";
+ }
+ }
+ mLocaleCache.put(mCacheKey, blockName);
+ Logger.INFO("Cached New Value. Key: "+mCacheKey);
+ return blockName;
+ }
+
+ }
+ return "Bad ItemStack Name";
+ }
+
+
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java
index 66abbded15..b0623d429d 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java
@@ -464,4 +464,15 @@ public class NBTUtils {
return ReflectionUtils.setField(aEntity, "customEntityData", aTag);
}
+ public static boolean hasTagCompound(ItemStack aStack) {
+ return aStack.hasTagCompound();
+ }
+
+ public static void createEmptyTagCompound(ItemStack aStack) {
+ if (!hasTagCompound(aStack)) {
+ NBTTagCompound aTag = new NBTTagCompound();
+ aStack.setTagCompound(aTag);
+ }
+ }
+
}