aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/core/block/ModBlocks.java1
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java2
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java3
-rw-r--r--src/Java/gtPlusPlus/core/item/base/ore/BaseItemMilledOre.java25
-rw-r--r--src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java48
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java3
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java32
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java89
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java5
-rw-r--r--src/Java/gtPlusPlus/core/item/tool/misc/GregtechPump.java6
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/enums/CustomOrePrefix.java89
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java15
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java5
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java79
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGrinderMultiblock.java412
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java273
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/Gregtech_Blocks.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java85
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechIsaMill.java14
22 files changed, 1166 insertions, 39 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java
index 1c8b33430d..a8536683b5 100644
--- a/src/Java/gtPlusPlus/core/block/ModBlocks.java
+++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java
@@ -55,6 +55,7 @@ public final class ModBlocks {
public static Block blockCasings2Misc;
public static Block blockCasings3Misc;
public static Block blockCasings4Misc;
+ public static Block blockCasings5Misc;
public static Block blockCasingsTieredGTPP;
public static Block blockSpecialMultiCasings;
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
index d7c971e71f..21f3e1d6cd 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
@@ -83,6 +83,7 @@ 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.GregtechIsaMill;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechLFTR;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechLargeTurbinesAndHeatExchanger;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechMiniRaFusion;
@@ -218,6 +219,7 @@ public class COMPAT_HANDLER {
GregtechFluidReactor.run();
GregtechAlgaeContent.run();
GregtechIndustrialAlloySmelter.run();
+ GregtechIsaMill.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 b0e98d389e..6f3e62659f 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -35,6 +35,7 @@ import gtPlusPlus.core.item.chemistry.AgriculturalChem;
import gtPlusPlus.core.item.chemistry.CoalTar;
import gtPlusPlus.core.item.chemistry.GenericChem;
import gtPlusPlus.core.item.chemistry.IonParticles;
+import gtPlusPlus.core.item.chemistry.MilledOreProcessing;
import gtPlusPlus.core.item.chemistry.NuclearChem;
import gtPlusPlus.core.item.chemistry.RocketFuels;
import gtPlusPlus.core.item.chemistry.StandardBaseParticles;
@@ -999,6 +1000,8 @@ public final class ModItems {
//General Chemistry
new GenericChem();
+ // Milled Ore Processing
+ new MilledOreProcessing();
//Bombs
itemBombCasing = new CoreItem("itemBombCasing", "Bomb Casing", tabMisc);
diff --git a/src/Java/gtPlusPlus/core/item/base/ore/BaseItemMilledOre.java b/src/Java/gtPlusPlus/core/item/base/ore/BaseItemMilledOre.java
new file mode 100644
index 0000000000..4edf4ae75d
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/base/ore/BaseItemMilledOre.java
@@ -0,0 +1,25 @@
+package gtPlusPlus.core.item.base.ore;
+
+import gregtech.api.enums.Materials;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.util.minecraft.MaterialUtils;
+import net.minecraft.item.Item;
+
+public class BaseItemMilledOre extends BaseOreComponent{
+
+ public BaseItemMilledOre(final Material material, int aMaterialEU) {
+ super(material, BaseOreComponent.ComponentTypes.MILLED);
+ CORE.RA.addMillingRecipe(material, aMaterialEU);
+ }
+
+ public static Item generate(Materials aMat, int aMaterialEU) {
+ return generate(MaterialUtils.generateMaterialFromGtENUM(aMat), aMaterialEU);
+ }
+
+ public static Item generate(Material aMat, int aMaterialEU) {
+ return new BaseItemMilledOre(aMat, aMaterialEU);
+ }
+
+
+}
diff --git a/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java b/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java
index c5b7191ddd..24c87c3334 100644
--- a/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java
+++ b/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java
@@ -48,7 +48,6 @@ public class BaseOreComponent extends Item{
this.setCreativeTab(AddToCreativeTab.tabMisc);
this.setUnlocalizedName(this.unlocalName);
this.setMaxStackSize(64);
- //this.setTextureName(this.getCorrectTextures());
this.componentColour = material.getRgbAsHex();
GameRegistry.registerItem(this, this.unlocalName);
registerComponent();
@@ -59,9 +58,9 @@ public class BaseOreComponent extends Item{
//ThaumcraftUtils.addAspectToItem(ItemUtils.getSimpleStack(this), TC_Aspect_Wrapper.generate(TC_Aspects.RADIO.mAspect), componentMaterial.vRadiationLevel);
}
}
-
+
}
-
+
public boolean registerComponent() {
Logger.MATERIALS("Attempting to register "+this.getUnlocalizedName()+".");
if (this.componentMaterial == null) {
@@ -92,7 +91,10 @@ public class BaseOreComponent extends Item{
else if (componentType == ComponentTypes.DUSTPURE) {
aKey = OrePrefixes.dustPure.name();
}
-
+ else if (componentType == ComponentTypes.MILLED) {
+ aKey = "milled";
+ }
+
ItemStack x = aMap.get(aKey);
if (x == null) {
aMap.put(aKey, ItemUtils.getSimpleStack(this));
@@ -107,13 +109,6 @@ public class BaseOreComponent extends Item{
}
}
- public String getCorrectTextures(){
- if (!CORE.ConfigSwitches.useGregtechTextures){
- return CORE.MODID + ":" + "item"+this.componentType.COMPONENT_NAME;
- }
- return "gregtech" + ":" + "materialicons/METALLIC/" + this.componentType.COMPONENT_NAME;
- }
-
/*@Override
public String getItemStackDisplayName(final ItemStack p_77653_1_) {
return (this.componentType.getPrefix()+this.componentMaterial.getLocalizedName()+this.componentType.DISPLAY_NAME);
@@ -181,7 +176,13 @@ public class BaseOreComponent extends Item{
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister par1IconRegister){
- if (CORE.ConfigSwitches.useGregtechTextures){
+ if (this.componentType == ComponentTypes.MILLED) {
+ this.base = par1IconRegister.registerIcon(CORE.MODID + ":" + "processing/MilledOre/"+this.componentType.getComponent());
+ if (this.componentType.hasOverlay()){
+ this.overlay = par1IconRegister.registerIcon(CORE.MODID + ":" + "processing/MilledOre/"+this.componentType.getComponent()+"_Overlay");
+ }
+ }
+ else if (CORE.ConfigSwitches.useGregtechTextures){
//Logger.MATERIALS(this.componentType.getPrefix()+this.componentMaterial.getLocalizedName()+this.componentType.DISPLAY_NAME+" is using `"+"gregtech" + ":" + "materialicons/METALLIC/" + this.componentType.COMPONENT_NAME+"' as the layer 0 texture path.");
this.base = par1IconRegister.registerIcon("gregtech" + ":" + "materialicons/METALLIC/" + this.componentType.COMPONENT_NAME);
if (this.componentType.hasOverlay()){
@@ -199,13 +200,21 @@ public class BaseOreComponent extends Item{
@Override
public int getColorFromItemStack(final ItemStack stack, final int renderPass) {
- if (renderPass == 0 && !CORE.ConfigSwitches.useGregtechTextures){
+ if (this.componentType == ComponentTypes.MILLED) {
+ if (renderPass == 1){
+ return Utils.rgbtoHexValue(230, 230, 230);
+ }
return this.componentColour;
}
- if (renderPass == 1 && CORE.ConfigSwitches.useGregtechTextures){
- return Utils.rgbtoHexValue(230, 230, 230);
- }
- return this.componentColour;
+ else {
+ if (renderPass == 0 && !CORE.ConfigSwitches.useGregtechTextures){
+ return this.componentColour;
+ }
+ if (renderPass == 1 && CORE.ConfigSwitches.useGregtechTextures){
+ return Utils.rgbtoHexValue(230, 230, 230);
+ }
+ return this.componentColour;
+ }
}
@@ -226,7 +235,8 @@ public class BaseOreComponent extends Item{
DUSTPURE("dustPure", "Purified ", " Dust", true),
CRUSHED("crushed", "Crushed ", " Ore", true),
CRUSHEDCENTRIFUGED("crushedCentrifuged", "Centrifuged Crushed "," Ore", true),
- CRUSHEDPURIFIED("crushedPurified", "Purified Crushed ", " Ore", true);
+ CRUSHEDPURIFIED("crushedPurified", "Purified Crushed ", " Ore", true),
+ MILLED("milled", "Milled ", " Ore", true);
private String COMPONENT_NAME;
private String PREFIX;
@@ -252,7 +262,7 @@ public class BaseOreComponent extends Item{
public boolean hasOverlay(){
return this.HAS_OVERLAY;
}
-
+
public String getPrefix(){
return this.PREFIX;
}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
index 566b8f70a0..37428b18d6 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
@@ -314,9 +314,6 @@ public class CoalTar extends ItemPackage {
@Override
public void fluids() {
-
- //Special Compatibility for Coke
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(ModItems.itemCoalCoke, 1), "fuelCoke");
//Create Coal Gas
Coal_Gas = FluidUtils.generateFluidNonMolten("CoalGas", "Coal Gas", 500, new short[]{48, 48, 48, 100}, null, null);
//Ethanol
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java
index 88f9bb29a5..039e9e3d4a 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java
@@ -16,6 +16,7 @@ import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -88,6 +89,19 @@ public class GenericChem extends ItemPackage {
public Item PhenolicResins; //https://en.wikipedia.org/wiki/Phenol_formaldehyde_resin
public static ItemGenericChemBase mGenericChemItem1;
+ private ItemStack mCatalystCarrier;
+
+ public static ItemStack mRedCatalyst;
+ public static ItemStack mYellowCatalyst;
+ public static ItemStack mBlueCatalyst;
+ public static ItemStack mOrangeCatalyst;
+ public static ItemStack mPurpleCatalyst;
+ public static ItemStack mBrownCatalyst;
+ public static ItemStack mPinkCatalyst;
+
+ public static ItemStack mMillingBallAlumina;
+ public static ItemStack mMillingBallSoapstone;
+
@Override
@@ -101,17 +115,11 @@ public class GenericChem extends ItemPackage {
registerItemStacks();
registerOreDict();
- }
- private ItemStack mCatalystCarrier;
-
- public static ItemStack mRedCatalyst;
- public static ItemStack mYellowCatalyst;
- public static ItemStack mBlueCatalyst;
- public static ItemStack mOrangeCatalyst;
- public static ItemStack mPurpleCatalyst;
- public static ItemStack mBrownCatalyst;
- public static ItemStack mPinkCatalyst;
+ GregtechItemList.Milling_Ball_Alumina.set(mMillingBallAlumina);
+ GregtechItemList.Milling_Ball_Soapstone.set(mMillingBallSoapstone);
+
+ }
public void registerItemStacks() {
@@ -125,6 +133,8 @@ public class GenericChem extends ItemPackage {
mPurpleCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 4, 1);
mBrownCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 5, 1);
mPinkCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 6, 1);
+ mMillingBallAlumina = ItemUtils.simpleMetaStack(mGenericChemItem1, 7, 1);
+ mMillingBallSoapstone = ItemUtils.simpleMetaStack(mGenericChemItem1, 8, 1);
}
@@ -137,6 +147,8 @@ public class GenericChem extends ItemPackage {
ItemUtils.addItemToOreDictionary(mPurpleCatalyst, "catalystIridiumRuthenium");
ItemUtils.addItemToOreDictionary(mBrownCatalyst, "catalystNickelAluminium");
ItemUtils.addItemToOreDictionary(mPinkCatalyst, "catalystPlatinumRhodium");
+ ItemUtils.addItemToOreDictionary(mMillingBallAlumina, "millingballAlumina");
+ ItemUtils.addItemToOreDictionary(mMillingBallSoapstone, "millingballSoapstone");
}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java b/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java
new file mode 100644
index 0000000000..4491c12bb1
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java
@@ -0,0 +1,89 @@
+package gtPlusPlus.core.item.chemistry;
+
+import gregtech.api.enums.Materials;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.minecraft.ItemPackage;
+import gtPlusPlus.core.item.base.ore.BaseItemMilledOre;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
+import gtPlusPlus.core.util.minecraft.MaterialUtils;
+import net.minecraft.item.Item;
+import net.minecraftforge.fluids.Fluid;
+
+public class MilledOreProcessing extends ItemPackage {
+
+ /**
+ * Fluids
+ */
+
+ public static Fluid ZincFlotationFroth;
+ public static Fluid CopperFlotationFroth;
+
+
+ /**
+ * Items
+ */
+
+ public static Item milledSphalerite;
+ public static Item milledChalcopyrite;
+
+
+ @Override
+ public void items() {
+
+ milledSphalerite = BaseItemMilledOre.generate(Materials.Sphalerite, MaterialUtils.getVoltageForTier(5));
+ milledChalcopyrite = BaseItemMilledOre.generate(Materials.Chalcopyrite, MaterialUtils.getVoltageForTier(4));
+
+ }
+
+ @Override
+ public void blocks() {
+ // None yet
+ }
+
+ @Override
+ public void fluids() {
+
+ short[] aZincFrothRGB = Materials.Sphalerite.mRGBa;
+ ZincFlotationFroth = FluidUtils.generateFluidNoPrefix("froth.zincflotation", "Zinc Froth", 32 + 175, new short[] { aZincFrothRGB[0], aZincFrothRGB[1], aZincFrothRGB[2], 100 }, true);
+ short[] aCopperFrothRGB = Materials.Chalcopyrite.mRGBa;
+ CopperFlotationFroth = FluidUtils.generateFluidNoPrefix("froth.copperflotation", "Copper Froth", 32 + 175, new short[] { aCopperFrothRGB[0], aCopperFrothRGB[1], aCopperFrothRGB[2], 100 }, true);
+
+ }
+
+
+
+ public MilledOreProcessing() {
+ super();
+ Logger.INFO("Adding Ore Milling content");
+ }
+
+ private static void addMiscRecipes() {
+
+ /*GT_Values.RA.addCentrifugeRecipe(
+ CI.getNumberedBioCircuit(10),
+ GT_Values.NI,
+ FluidUtils.getFluidStack(MilledOreProcessing.ZincFlotationFroth, 1000),
+ FluidUtils.getWater(500),
+ ELEMENT.getInstance().IRON.getSmallDust(1),
+ ELEMENT.getInstance().COPPER.getSmallDust(1),
+ ELEMENT.getInstance().TIN.getSmallDust(1),
+ ELEMENT.getInstance().SULFUR.getSmallDust(1),
+ ELEMENT.getInstance().NICKEL.getTinyDust(1),
+ ELEMENT.getInstance().LEAD.getTinyDust(1),
+ new int[] { 3000, 3000, 2000, 2000, 1000, 1000 },
+ 30 * 20,
+ 30);*/
+
+ }
+
+ @Override
+ public String errorMessage() {
+ return "Failed to generate recipes for OreMillingProc.";
+ }
+
+ @Override
+ public boolean generateRecipes() {
+ addMiscRecipes();
+ return true;
+ }
+}
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java b/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java
index 208fecd57c..7fb5f207f6 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 = 7;
+ final private int aMetaSize = 9;
/*
* 0 - Red Metal Catalyst //FeCu
@@ -29,7 +29,8 @@ public class ItemGenericChemBase extends Item {
* 4 - Purple Metal Catalyst //IrIdium Ruthenium
* 5 - Brown Metal Catalyst //NiAl
* 6 - Pink Metal Catalyst //PtRh
- *
+ * 7 - Alumina Grinding Ball
+ * 8 - Soapstone Grinding Ball
*/
public ItemGenericChemBase() {
diff --git a/src/Java/gtPlusPlus/core/item/tool/misc/GregtechPump.java b/src/Java/gtPlusPlus/core/item/tool/misc/GregtechPump.java
index a48573888e..e43dc8546b 100644
--- a/src/Java/gtPlusPlus/core/item/tool/misc/GregtechPump.java
+++ b/src/Java/gtPlusPlus/core/item/tool/misc/GregtechPump.java
@@ -19,7 +19,6 @@ import gregtech.api.interfaces.IItemBehaviour;
import gregtech.api.interfaces.IItemContainer;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank;
import gregtech.api.objects.ItemData;
import gregtech.api.util.GT_LanguageManager;
@@ -200,7 +199,7 @@ public class GregtechPump extends Item implements ISpecialElectricItem, IElectri
if (aOffsetMeta <= 3) {
FluidStack f = getFluid(aStack);
- aList.add("Can also drain any other standard fluid container block");
+ aList.add("Cannot drain any other standard fluid container block");
aList.add("Cannot be emptied via RMB, use inside a tank with GUI");
aList.add(EnumChatFormatting.DARK_GRAY+"This is technically just a fancy fluid cell");
aList.add(EnumChatFormatting.BLUE + (f != null ? f.getLocalizedName() : "No Fluids Contained"));
@@ -973,7 +972,8 @@ public class GregtechPump extends Item implements ISpecialElectricItem, IElectri
}
//Try support Standard Fluid Tanks too (May disable if dupes appear again)
else if ((tTileEntity instanceof IFluidTank || tTileEntity instanceof IFluidHandler)) {
- return this.drainIFluidTank(tTileEntity, aStack, aWorld, aPlayer, aX, aY, aZ);
+ //return this.drainIFluidTank(tTileEntity, aStack, aWorld, aPlayer, aX, aY, aZ);
+ return false;
}
}
}
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java
index b5922dde53..9cdf16fe01 100644
--- a/src/Java/gtPlusPlus/core/material/Material.java
+++ b/src/Java/gtPlusPlus/core/material/Material.java
@@ -24,6 +24,7 @@ import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.MaterialUtils;
+import gtPlusPlus.xmod.gregtech.api.enums.CustomOrePrefix;
import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_Aspect_Wrapper;
import gtPlusPlus.xmod.tinkers.material.BaseTinkersMaterial;
import net.minecraft.block.Block;
@@ -890,6 +891,9 @@ public class Material {
public final ItemStack getDustImpure(final int stacksize){
return getComponentByPrefix(OrePrefixes.dustImpure, stacksize);
}
+ public final ItemStack getMilled(final int stacksize){
+ return getComponentByPrefix(CustomOrePrefix.get(CustomOrePrefix.Milled), stacksize);
+ }
public final boolean hasSolidForm() {
if (ItemUtils.checkForInvalidItems(new ItemStack[] {getDust(1), getBlock(1), getTinyDust(1), getSmallDust(1)})) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
index e7ac605450..aaaf9700f9 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
@@ -7,7 +7,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import codechicken.nei.api.API;
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
@@ -40,6 +39,7 @@ 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.CustomOrePrefix;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials;
import gtPlusPlus.xmod.gregtech.api.util.GTPP_Config;
import gtPlusPlus.xmod.gregtech.api.world.GTPP_Worldgen;
@@ -82,6 +82,7 @@ public class HANDLER_GT {
}
GregtechFluidHandler.run();
+ addNewOrePrefixes();
}
@@ -154,6 +155,10 @@ public class HANDLER_GT {
WoodCentrifuging.processLogsForMethane();
}
+ private static void addNewOrePrefixes() {
+ CustomOrePrefix.init();
+ }
+
private static void convertPyroToCokeOven() {
if (ReflectionUtils.doesFieldExist(GT_Recipe.GT_Recipe_Map.class, "sPyrolyseRecipes")) {
int aCount = 0;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/CustomOrePrefix.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/CustomOrePrefix.java
new file mode 100644
index 0000000000..050081fc82
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/CustomOrePrefix.java
@@ -0,0 +1,89 @@
+package gtPlusPlus.xmod.gregtech.api.enums;
+
+import static gregtech.api.enums.GT_Values.B;
+
+import gregtech.api.enums.OrePrefixes;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.lib.CORE;
+import net.minecraftforge.common.util.EnumHelper;
+
+public class CustomOrePrefix {
+
+ public static CustomOrePrefix Milled;
+
+ static {
+ Milled = new CustomOrePrefix("Milled Ores", "Milled ", " Ore", true, true, false, false, false, false, false, false, false, true, B[3], -1, 64, -1);
+ }
+
+ public static void init() {
+ // Does nothing except run the static{} block
+ }
+
+ private final String mLocalizedMaterialPre;
+
+ private CustomOrePrefix(
+ String aRegularLocalName,
+ String aLocalizedMaterialPre,
+ String aLocalizedMaterialPost,
+ boolean aIsUnificatable,
+ boolean aIsMaterialBased,
+ boolean aIsSelfReferencing,
+ boolean aIsContainer,
+ boolean aDontUnificateActively,
+ boolean aIsUsedForBlocks,
+ boolean aAllowNormalRecycling,
+ boolean aGenerateDefaultItem,
+ boolean aIsEnchantable,
+ boolean aIsUsedForOreProcessing,
+ int aMaterialGenerationBits,
+ long aMaterialAmount,
+ int aDefaultStackSize,
+ int aTextureindex) {
+
+ mLocalizedMaterialPre = aLocalizedMaterialPre;
+
+ // Add this to the GT Enum
+ EnumHelper.addEnum(OrePrefixes.class, aLocalizedMaterialPre, new Object[] {
+ aRegularLocalName,
+ aLocalizedMaterialPre,
+ aLocalizedMaterialPost,
+ aIsUnificatable,
+ aIsMaterialBased,
+ aIsSelfReferencing,
+ aIsContainer,
+ aDontUnificateActively,
+ aIsUsedForBlocks,
+ aAllowNormalRecycling,
+ aGenerateDefaultItem,
+ aIsEnchantable,
+ aIsUsedForOreProcessing,
+ aMaterialGenerationBits,
+ aMaterialAmount,
+ aDefaultStackSize,
+ aTextureindex}
+ );
+
+ Logger.INFO("Registered custom OrePrefixes '"+aLocalizedMaterialPre+"'. Success? "+checkEntryWasAdded(this));
+
+ }
+
+ private static final boolean checkEntryWasAdded(CustomOrePrefix aCustomPrefixObject) {
+ for (OrePrefixes o :OrePrefixes.values()) {
+ if (o.mLocalizedMaterialPre.equals(aCustomPrefixObject.mLocalizedMaterialPre)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static OrePrefixes get(CustomOrePrefix aCustomPrefixObject) {
+ for (OrePrefixes o :OrePrefixes.values()) {
+ if (o.mLocalizedMaterialPre.equals(aCustomPrefixObject.mLocalizedMaterialPre)) {
+ return o;
+ }
+ }
+ CORE.crash("Tried to obtain an invalid custom OrePrefixes object");
+ return null;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
index 9e084d5069..504533c406 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
@@ -139,6 +139,11 @@ public enum GregtechItemList implements GregtechItemContainer {
Chip_MultiNerf_NoOutputBonus,
Chip_MultiNerf_NoSpeedBonus,
Chip_MultiNerf_NoEuBonus,
+
+ // Milling Balls
+ Milling_Ball_Alumina,
+ Milling_Ball_Soapstone,
+
//----------------------------------------------------------------------------
@@ -365,6 +370,15 @@ public enum GregtechItemList implements GregtechItemContainer {
// Large Rocket Engine
Casing_RocketEngine,
Controller_RocketEngine,
+
+ // Large Semi-Fluid
+ Controller_LargeSemifluidGenerator,
+
+ // IsaMill
+ Controller_IsaMill_Controller,
+ Casing_IsaMill_Casing,
+ Casing_IsaMill_Gearbox,
+ Casing_IsaMill_Pipe,
//----------------------------------------------------------------------------
@@ -592,7 +606,6 @@ public enum GregtechItemList implements GregtechItemContainer {
Generator_SemiFluid_LV,
Generator_SemiFluid_MV,
Generator_SemiFluid_HV,
- Controller_LargeSemifluidGenerator,
//Advanced Mixer 4x4
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 2db81d693e..688433b3ac 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
@@ -1,5 +1,7 @@
package gtPlusPlus.xmod.gregtech.api.interfaces.internal;
+import gregtech.api.enums.Materials;
+import gtPlusPlus.core.material.Material;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
@@ -283,6 +285,9 @@ public interface IGregtech_RecipeAdder {
public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, ItemStack aSolidOutput, int aDuration, int aEUt, boolean aHidden);
public boolean addPulverisationRecipe(final ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, final ItemStack aOutput3);
+
+ public boolean addMillingRecipe(Materials aMat, int aEU);
+ public boolean addMillingRecipe(Material aMat, int aEU);
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java
new file mode 100644
index 0000000000..d90aa83734
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks5.java
@@ -0,0 +1,79 @@
+package gtPlusPlus.xmod.gregtech.common.blocks;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.enums.TAE;
+import gregtech.api.enums.Textures;
+import gregtech.api.objects.GT_CopiedBlockTexture;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.common.blocks.GT_Material_Casings;
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGrinderMultiblock;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+
+
+public class GregtechMetaCasingBlocks5
+extends GregtechMetaCasingBlocksAbstract {
+
+ //84, 90, 91, 92, 94, 114, 116, 117, 118, 119, 120, 121, 124, 125, 126, 127
+ private static final TexturesGrinderMultiblock mGrinderOverlayHandler = new TexturesGrinderMultiblock();
+
+ public GregtechMetaCasingBlocks5() {
+ super(GregtechMetaCasingItems.class, "gtplusplus.blockcasings.5", GT_Material_Casings.INSTANCE);
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".0.name", "IsaMill Exterior Casing"); // IsaMill Casing
+ TAE.registerTexture(0, 2, new GT_CopiedBlockTexture(this, 6, 0));
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".1.name", "IsaMill Piping"); // IsaMill Pipe
+ TAE.registerTexture(0, 3, new GT_CopiedBlockTexture(this, 6, 0));
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".2.name", "IsaMill Gearbox"); // IsaMill Gearbox
+ TAE.registerTexture(0, 4, new GT_CopiedBlockTexture(this, 6, 0));
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".3.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".4.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".5.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".6.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".7.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".8.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".9.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".10.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".11.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".12.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".13.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".14.name", ""); // Unused
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".15.name", ""); // Unused
+ GregtechItemList.Casing_IsaMill_Casing.set(new ItemStack(this, 1, 0));
+ GregtechItemList.Casing_IsaMill_Pipe.set(new ItemStack(this, 1, 1));
+ GregtechItemList.Casing_IsaMill_Gearbox.set(new ItemStack(this, 1, 2));
+ }
+
+ @Override
+ public IIcon getIcon(final int aSide, final int aMeta) {
+ return getStaticIcon(aSide, aMeta);
+ }
+
+
+ public static IIcon getStaticIcon(final int aSide, final int aMeta) {
+ if ((aMeta >= 0) && (aMeta < 16)) {
+ switch (aMeta) {
+ case 0:
+ return TexturesGtBlock.TEXTURE_CASING_GRINDING_MILL.getIcon();
+ case 1:
+ return TexturesGtBlock.TEXTURE_PIPE_GRINDING_MILL.getIcon();
+ case 2:
+ return TexturesGtBlock.TEXTURE_GEARBOX_GRINDING_MILL.getIcon();
+ case 3:
+ return TexturesGtBlock.TEXTURE_METAL_PANEL_A.getIcon();
+
+ }
+ }
+ return Textures.BlockIcons.RENDERING_ERROR.getIcon();
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(final IBlockAccess aWorld, final int xCoord, final int yCoord, final int zCoord, final int aSide) {
+ final GregtechMetaCasingBlocks5 i = this;
+ return mGrinderOverlayHandler.handleCasingsGT(aWorld, xCoord, yCoord, zCoord, aSide, i);
+ }
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGrinderMultiblock.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGrinderMultiblock.java
new file mode 100644
index 0000000000..0af29aaf7e
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGrinderMultiblock.java
@@ -0,0 +1,412 @@
+package gtPlusPlus.xmod.gregtech.common.blocks.textures;
+
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaCasingBlocks;
+import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaCasingBlocks5;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock.CustomIcon;
+import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing.GregtechMetaTileEntity_IsaMill;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+
+public class TexturesGrinderMultiblock {
+
+ private static CustomIcon GT8_1_Active = new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE1");
+ private static CustomIcon GT8_1 = new CustomIcon("iconsets/Grinder/GRINDER1");
+ private static CustomIcon GT8_2_Active = new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE2");
+ private static CustomIcon GT8_2 = new CustomIcon("iconsets/Grinder/GRINDER2");
+ private static CustomIcon GT8_3_Active = new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE3");
+ private static CustomIcon GT8_3 = new CustomIcon("iconsets/Grinder/GRINDER3");
+ private static CustomIcon GT8_4_Active = new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE4");
+ private static CustomIcon GT8_4 = new CustomIcon("iconsets/Grinder/GRINDER4");
+ private static CustomIcon GT8_5_Active = new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE5");
+ private static CustomIcon GT8_5 = new CustomIcon("iconsets/Grinder/GRINDER5");
+ private static CustomIcon GT8_6_Active = new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE6");
+ private static CustomIcon GT8_6 = new CustomIcon("iconsets/Grinder/GRINDER6");
+ private static CustomIcon GT8_7_Active = new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE7");
+ private static CustomIcon GT8_7 = new CustomIcon("iconsets/Grinder/GRINDER7");
+ private static CustomIcon GT8_8_Active = new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE8");
+ private static CustomIcon GT8_8 = new CustomIcon("iconsets/Grinder/GRINDER8");
+ private static CustomIcon GT8_9_Active = new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE9");
+ private static CustomIcon GT8_9 = new CustomIcon("iconsets/Grinder/GRINDER9");
+
+ private static CustomIcon frontFace_0 = (GT8_1);
+ private static CustomIcon frontFaceActive_0 = (GT8_1_Active);
+ private static CustomIcon frontFace_1 = (GT8_2);
+ private static CustomIcon frontFaceActive_1 = (GT8_2_Active);
+ private static CustomIcon frontFace_2 = (GT8_3);
+ private static CustomIcon frontFaceActive_2 = (GT8_3_Active);
+ private static CustomIcon frontFace_3 = (GT8_4);
+ private static CustomIcon frontFaceActive_3 = (GT8_4_Active);
+ private static CustomIcon frontFace_4 = (GT8_5);
+ private static CustomIcon frontFaceActive_4 = (GT8_5_Active);
+ private static CustomIcon frontFace_5 = (GT8_6);
+ private static CustomIcon frontFaceActive_5 = (GT8_6_Active);
+ private static CustomIcon frontFace_6 = (GT8_7);
+ private static CustomIcon frontFaceActive_6 = (GT8_7_Active);
+ private static CustomIcon frontFace_7 = (GT8_8);
+ private static CustomIcon frontFaceActive_7 = (GT8_8_Active);
+ private static CustomIcon frontFace_8 = (GT8_9);
+ private static CustomIcon frontFaceActive_8 = (GT8_9_Active);
+
+ CustomIcon[] GRINDER = new CustomIcon[]{
+ frontFace_0,
+ frontFace_1,
+ frontFace_2,
+ frontFace_3,
+ frontFace_4,
+ frontFace_5,
+ frontFace_6,
+ frontFace_7,
+ frontFace_8
+ };
+
+ CustomIcon[] GRINDER_ACTIVE = new CustomIcon[]{
+ frontFaceActive_0,
+ frontFaceActive_1,
+ frontFaceActive_2,
+ frontFaceActive_3,
+ frontFaceActive_4,
+ frontFaceActive_5,
+ frontFaceActive_6,
+ frontFaceActive_7,
+ frontFaceActive_8
+ };
+
+ public IIcon handleCasingsGT(final IBlockAccess aWorld, final int xCoord, final int yCoord, final int zCoord, final int aSide, final GregtechMetaCasingBlocks5 i) {
+ final int tMeta = aWorld.getBlockMetadata(xCoord, yCoord, zCoord);
+ if (tMeta != 0) {
+ return GregtechMetaCasingBlocks5.getStaticIcon(aSide, tMeta);
+ }
+ final int tStartIndex = tMeta == 6 ? 1 : 13;
+ if (tMeta == 0) {
+ if ((aSide == 2) || (aSide == 3)) {
+ TileEntity tTileEntity;
+ IMetaTileEntity tMetaTileEntity;
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex(tMetaTileEntity, 0);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex(tMetaTileEntity, 3);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 3 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex(tMetaTileEntity, 6);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex(tMetaTileEntity, 1);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex(tMetaTileEntity, 7);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex(tMetaTileEntity, 8);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex(tMetaTileEntity, 5);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord + (aSide == 2 ? 1 : -1), yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex(tMetaTileEntity, 2);
+ }
+ } else if ((aSide == 4) || (aSide == 5)) {
+ TileEntity tTileEntity;
+ Object tMetaTileEntity;
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 0);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 3);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 4 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 6);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 1);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 7);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord + 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 8);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 5);
+ }
+ if ((null != (tTileEntity = aWorld.getTileEntity(xCoord, yCoord - 1, zCoord + (aSide == 5 ? 1 : -1)))) && ((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getFrontFacing() == aSide) && (null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity())) && ((tMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill))) {
+ return getIconByIndex((IMetaTileEntity) tMetaTileEntity, 2);
+ }
+ }
+ return TexturesGtBlock.TEXTURE_CASING_GRINDING_MILL.getIcon();
+ }
+ final boolean[] tConnectedSides = {(aWorld.getBlock(xCoord, yCoord - 1, zCoord) == i) && (aWorld.getBlockMetadata(xCoord, yCoord - 1, zCoord) == tMeta), (aWorld.getBlock(xCoord, yCoord + 1, zCoord) == i) && (aWorld.getBlockMetadata(xCoord, yCoord + 1, zCoord) == tMeta), (aWorld.getBlock(xCoord + 1, yCoord, zCoord) == i) && (aWorld.getBlockMetadata(xCoord + 1, yCoord, zCoord) == tMeta), (aWorld.getBlock(xCoord, yCoord, zCoord + 1) == i) && (aWorld.getBlockMetadata(xCoord, yCoord, zCoord + 1) == tMeta), (aWorld.getBlock(xCoord - 1, yCoord, zCoord) == i) && (aWorld.getBlockMetadata(xCoord - 1, yCoord, zCoord) == tMeta), (aWorld.getBlock(xCoord, yCoord, zCoord - 1) == i) && (aWorld.getBlockMetadata(xCoord, yCoord, zCoord - 1) == tMeta)};
+ switch (aSide) {
+ case 0:
+ if (tConnectedSides[0]) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon();
+ }
+ if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon();
+ }
+ if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon();
+ }
+ if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon();
+ }
+ if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((!tConnectedSides[4]) && (!tConnectedSides[2])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon();
+ }
+ if ((!tConnectedSides[5]) && (!tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon();
+ }
+ case 1:
+ if (tConnectedSides[1]) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon();
+ }
+ if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon();
+ }
+ if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon();
+ }
+ if ((tConnectedSides[4]) && (tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon();
+ }
+ if ((!tConnectedSides[4]) && (tConnectedSides[5]) && (tConnectedSides[2]) && (!tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon();
+ }
+ if ((!tConnectedSides[4]) && (!tConnectedSides[5]) && (!tConnectedSides[2]) && (!tConnectedSides[3])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (!tConnectedSides[4])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon();
+ }
+ if ((!tConnectedSides[3]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon();
+ }
+ case 2:
+ if (tConnectedSides[5]) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (!tConnectedSides[4])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon();
+ }
+ case 3:
+ if (tConnectedSides[3]) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon();
+ }
+ if ((tConnectedSides[2]) && (tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (tConnectedSides[0]) && (tConnectedSides[4]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (!tConnectedSides[0]) && (!tConnectedSides[4]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((!tConnectedSides[2]) && (!tConnectedSides[4])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon();
+ }
+ case 4:
+ if (tConnectedSides[4]) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon();
+ }
+ if ((!tConnectedSides[3]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon();
+ }
+ case 5:
+ if (tConnectedSides[2]) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 6)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 5)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 2)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 3)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 4)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 11)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 8)].getIcon();
+ }
+ if ((tConnectedSides[0]) && (tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 9)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (tConnectedSides[3]) && (tConnectedSides[1]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 10)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (!tConnectedSides[3]) && (!tConnectedSides[1]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+ if ((!tConnectedSides[0]) && (!tConnectedSides[1])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 0)].getIcon();
+ }
+ if ((!tConnectedSides[3]) && (!tConnectedSides[5])) {
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 1)].getIcon();
+ }
+ break;
+ }
+ return Textures.BlockIcons.CONNECTED_HULLS[(tStartIndex + 7)].getIcon();
+ }
+
+ public boolean isCentrifugeRunning(IMetaTileEntity aTile) {
+ if (aTile == null) {
+ return false;
+ }
+ else {
+ return aTile.getBaseMetaTileEntity().isActive();
+ }
+
+
+ }
+
+ public boolean isUsingAnimatedTexture(IMetaTileEntity aMetaTileEntity) {
+ return true;
+ }
+
+ public IIcon getIconByIndex(IMetaTileEntity aMetaTileEntity, int aIndex) {
+ if (isCentrifugeRunning(aMetaTileEntity)) {
+ return this.GRINDER_ACTIVE[aIndex].getIcon();
+ }
+
+ return this.GRINDER[aIndex].getIcon();
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
index 0e25057d35..7903da8c6d 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
@@ -280,7 +280,13 @@ public class TexturesGtBlock {
public static final CustomIcon TEXTURE_CASING_ADVANCED_CRYOGENIC = new CustomIcon("TileEntities/MACHINE_CASING_ADVANCED_CRYOGENIC");
public static final CustomIcon TEXTURE_CASING_ADVANCED_VOLCNUS = new CustomIcon("TileEntities/MACHINE_CASING_ADVANCED_VOLCANUS");
public static final CustomIcon TEXTURE_CASING_ROCKETDYNE = new CustomIcon("TileEntities/MACHINE_CASING_ROCKETDYNE");
+ public static final CustomIcon TEXTURE_CASING_GRINDING_MILL = new CustomIcon("TileEntities/MACHINE_CASING_GRINDING_FACTORY");
+ // Custom Pipes
+ public static final CustomIcon TEXTURE_PIPE_GRINDING_MILL = new CustomIcon("TileEntities/MACHINE_CASING_PIPE_T1");
+
+ // Custom Gearboxes
+ public static final CustomIcon TEXTURE_GEARBOX_GRINDING_MILL = new CustomIcon("TileEntities/MACHINE_CASING_GEARBOX_T1");
public static final CustomIcon TEXTURE_CASING_FUSION_COIL_II = new CustomIcon("iconsets/MACHINE_CASING_FUSION_3");
public static final CustomIcon TEXTURE_CASING_FUSION_COIL_II_INNER = new CustomIcon("iconsets/MACHINE_CASING_FUSION_COIL_II");
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java
new file mode 100644
index 0000000000..53d7c2ea20
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java
@@ -0,0 +1,273 @@
+package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing;
+
+import gregtech.api.enums.TAE;
+import gregtech.api.enums.Textures;
+import gregtech.api.gui.GT_GUIContainer_MultiMachine;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock.CustomIcon;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class GregtechMetaTileEntity_IsaMill extends GregtechMeta_MultiBlockBase {
+
+ protected int fuelConsumption = 0;
+ protected int fuelValue = 0;
+ protected int fuelRemaining = 0;
+ protected boolean boostEu = false;
+
+ private static ITexture frontFace;
+ private static ITexture frontFaceActive;
+
+ public GregtechMetaTileEntity_IsaMill(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ frontFaceActive = new GT_RenderedTexture(new CustomIcon("iconsets/Grinder/GRINDER_ACTIVE5"));
+ frontFace = new GT_RenderedTexture(new CustomIcon("iconsets/Grinder/GRINDER5"));
+ }
+
+ public GregtechMetaTileEntity_IsaMill(String aName) {
+ super(aName);
+ }
+
+ public String[] getTooltip() {
+ return new String[]{
+ "Controller Block for the Large Grinding Machine",
+ "Engine Intake Casings must not be obstructed in front (only air blocks)",
+ "Supply Semifluid Fuels and 2000L of Lubricant per hour to run.",
+ "Supply 80L of Oxygen per second to boost output (optional).",
+ "Default: Produces 2048EU/t at 100% efficiency",
+ "Boosted: Produces 6144EU/t at 150% efficiency",
+ "Size(WxHxD): 3x3x4, Controller (front centered)",
+ "3x3x4 of Stable Titanium Machine Casing (hollow, Min 16!)",
+ "All hatches except dynamo can replace any Stable Titanium casing in middle two segments",
+ "2x Steel Gear Box Machine Casing inside the Hollow Casing",
+ "8x Engine Intake Machine Casing (around controller)",
+ "2x Input Hatch (Fuel/Lubricant)",
+ "1x Maintenance Hatch",
+ "1x Muffler Hatch",
+ "1x Dynamo Hatch (back centered)",
+ };
+ }
+
+
+ public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
+ return new ITexture[]{
+ Textures.BlockIcons.CASING_BLOCKS[TAE.GTPP_INDEX(2)],
+ aFacing == aSide ? aActive ? frontFaceActive : frontFace : Textures.BlockIcons.CASING_BLOCKS[TAE.GTPP_INDEX(2)]};
+ }
+
+ @Override
+ public boolean isCorrectMachinePart(ItemStack aStack) {
+ return getMaxEfficiency(aStack) > 0;
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeDieselEngine.png");
+ }
+
+ @Override
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ return GT_Recipe_Map.sMaceratorRecipes;
+ }
+
+ @Override
+ public boolean isFacingValid(final byte aFacing) {
+ return aFacing > 1;
+ }
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ return checkRecipeGeneric();
+ }
+
+ @Override
+ public boolean checkMultiblock(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
+ byte tSide = aBaseMetaTileEntity.getBackFacing();
+ int aTileX = aBaseMetaTileEntity.getXCoord();
+ int aTileY = aBaseMetaTileEntity.getYCoord();
+ int aTileZ = aBaseMetaTileEntity.getZCoord();
+ boolean xFacing = (tSide == 4 || tSide == 5);
+ boolean zFacing = (tSide == 2 || tSide == 3);
+ int aCasingCount = 0;
+ // Check Intake Hatches
+ for (int aHorizontalOffset = -1; aHorizontalOffset < 2; aHorizontalOffset++) {
+ for (int aVerticalOffset = -1; aVerticalOffset < 2; aVerticalOffset++) {
+ if (aHorizontalOffset == 0 && aVerticalOffset == 0) {
+ continue;
+ }
+ int aX = !xFacing ? (aTileX + aHorizontalOffset) : aTileX;
+ int aY = aTileY + aVerticalOffset;
+ int aZ = !zFacing ? (aTileZ + aHorizontalOffset) : aTileZ;
+ Block aIntakeBlock = aBaseMetaTileEntity.getBlock(aX, aY, aZ);
+ int aIntakeMeta = aBaseMetaTileEntity.getMetaID(aX, aY, aZ);
+ if (!isValidBlockForStructure(null, 0, false, aIntakeBlock, aIntakeMeta, getIntakeBlock(), getIntakeMeta())) {
+ return false; // Not intake casing surrounding controller
+ }
+ }
+ }
+ // Check Casings
+ int aStartDepthOffset = (tSide == 2 || tSide == 4) ? -1 : 1;
+ int aFinishDepthOffset = (tSide == 2 || tSide == 4) ? -8 : 8;
+ for (int aDepthOffset = aStartDepthOffset; aDepthOffset != aFinishDepthOffset;) {
+ for (int aHorizontalOffset = -1; aHorizontalOffset < 2; aHorizontalOffset++) {
+ for (int aVerticalOffset = -1; aVerticalOffset < 2; aVerticalOffset++) {
+ if (aHorizontalOffset == 0 && aVerticalOffset == 0) {
+ continue;
+ }
+ int aX = !xFacing ? (aTileX + aHorizontalOffset) : (aTileX + aDepthOffset);
+ int aY = aTileY + aVerticalOffset;
+ int aZ = !zFacing ? (aTileZ + aHorizontalOffset) : (aTileZ + aDepthOffset);
+ Block aCasingBlock = aBaseMetaTileEntity.getBlock(aX, aY, aZ);
+ int aCasingMeta = aBaseMetaTileEntity.getMetaID(aX, aY, aZ);
+ IGregTechTileEntity aTileEntity = getBaseMetaTileEntity().getIGregTechTileEntity(aX, aY, aZ);
+ if (aTileEntity != null) {
+ final IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity != null) {
+ if (aMetaTileEntity instanceof GregtechMetaTileEntity_IsaMill) {
+ Logger.INFO("Don't be cheeky, only one controller per Mill.");
+ return false;
+ }
+ }
+ }
+
+ if (!isValidBlockForStructure(aTileEntity, getCasingTextureIndex(), true, aCasingBlock, aCasingMeta, getCasingBlock(), getCasingMeta())) {
+ Logger.INFO("Bad casing.");
+ return false; // Not valid casing
+ }
+ else {
+ if (aTileEntity == null) {
+ aCasingCount++;
+ }
+ }
+ }
+ }
+ // Count Backwards for 2 axis
+ if (aStartDepthOffset == -1) {
+ aDepthOffset--;
+ }
+ // Count Forwards for 2 axis
+ else {
+ aDepthOffset++;
+ }
+ }
+
+ // Check Gear Boxes
+ for (int aInternalDepthAxis = 1; aInternalDepthAxis < 7; aInternalDepthAxis++) {
+ if(aBaseMetaTileEntity.getBlockAtSideAndDistance(tSide, aInternalDepthAxis) != getGearboxBlock() || aBaseMetaTileEntity.getMetaIDAtSideAndDistance(tSide, aInternalDepthAxis) != getGearboxMeta()) {
+ Logger.INFO("Missing Gearbox at depth "+aInternalDepthAxis);
+ return false;
+ }
+ }
+ return aCasingCount >= 48;
+ }
+
+ public Block getCasingBlock() {
+ return ModBlocks.blockCasings5Misc;
+ }
+
+ public byte getCasingMeta() {
+ return 0;
+ }
+
+ public Block getIntakeBlock() {
+ return ModBlocks.blockCasings5Misc;
+ }
+
+ public byte getIntakeMeta() {
+ return 0;
+ }
+
+ public Block getGearboxBlock() {
+ return ModBlocks.blockCasings5Misc;
+ }
+
+ public byte getGearboxMeta() {
+ return 2;
+ }
+
+ public byte getCasingTextureIndex() {
+ return 66;
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GregtechMetaTileEntity_IsaMill(this.mName);
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ }
+
+ @Override
+ public int getDamageToComponent(ItemStack aStack) {
+ return 1;
+ }
+
+ public int getMaxEfficiency(ItemStack aStack) {
+ return boostEu ? 20000 : 10000;
+ }
+
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 64;
+ }
+
+ @Override
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public String[] getExtraInfoData() {
+ return new String[]{
+ "IsaMill Grinding Machine",
+ "Current Efficiency: " + (mEfficiency / 100) + "%",
+ getIdealStatus() == getRepairStatus() ? "No Maintainance issues" : "Needs Maintainance"
+ };
+ }
+
+ @Override
+ public boolean isGivingInformation() {
+ return true;
+ }
+
+ @Override
+ public boolean hasSlotInGUI() {
+ return false;
+ }
+
+ @Override
+ public String getCustomGUIResourceName() {
+ return null;
+ }
+
+ @Override
+ public String getMachineType() {
+ return "Grinding Machine";
+ }
+
+ @Override
+ public int getMaxParallelRecipes() {
+ return 1;
+ }
+
+ @Override
+ public int getEuDiscountForParallelism() {
+ return 0;
+ }
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/Gregtech_Blocks.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/Gregtech_Blocks.java
index 6292417e0b..a8af3dcb11 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/Gregtech_Blocks.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/Gregtech_Blocks.java
@@ -5,6 +5,7 @@ import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaCasingBlocks;
import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaCasingBlocks2;
import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaCasingBlocks3;
import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaCasingBlocks4;
+import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaCasingBlocks5;
import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaSpecialMultiCasings;
import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaTieredCasingBlocks1;
@@ -17,6 +18,7 @@ public class Gregtech_Blocks {
ModBlocks.blockCasings2Misc = new GregtechMetaCasingBlocks2();
ModBlocks.blockCasings3Misc = new GregtechMetaCasingBlocks3();
ModBlocks.blockCasings4Misc = new GregtechMetaCasingBlocks4();
+ ModBlocks.blockCasings5Misc = new GregtechMetaCasingBlocks5();
ModBlocks.blockCasingsTieredGTPP = new GregtechMetaTieredCasingBlocks1();
ModBlocks.blockSpecialMultiCasings = new GregtechMetaSpecialMultiCasings();
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
index 6a9ee2f33a..c22b9fc2ca 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
@@ -23,10 +23,12 @@ import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.data.ArrayUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.MaterialUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import gtPlusPlus.xmod.gregtech.api.interfaces.internal.IGregtech_RecipeAdder;
@@ -1309,6 +1311,89 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
}
+ @Override
+ public boolean addMillingRecipe(Materials aMat, int aEU) {
+ return addMillingRecipe(MaterialUtils.generateMaterialFromGtENUM(aMat), aEU);
+ }
+
+ @Override
+ public boolean addMillingRecipe(Material aMat, int aEU) {
+
+ ItemStack aOreStack = aMat.getOre(16);
+ ItemStack aCrushedStack = aMat.getCrushed(16);
+
+ ItemStack aMilledStackOres1 = aMat.getMilled(64);
+ ItemStack aMilledStackCrushed1 = aMat.getMilled(48);
+ ItemStack aMilledStackOres2 = aMat.getMilled(48);
+ ItemStack aMilledStackCrushed2 = aMat.getMilled(32);
+
+ ItemStack aMillingBall_Alumina = GregtechItemList.Milling_Ball_Alumina.get(0);
+ ItemStack aMillingBall_Soapstone = GregtechItemList.Milling_Ball_Soapstone.get(0);
+
+ // Inputs
+ ItemStack[] aInputsOre1 = new ItemStack[] {
+ aOreStack,
+ aMillingBall_Alumina
+ };
+
+ ItemStack[] aInputsOre2 = new ItemStack[] {
+ aOreStack,
+ aMillingBall_Soapstone
+ };
+
+ ItemStack[] aInputsCrushed1 = new ItemStack[] {
+ aCrushedStack,
+ aMillingBall_Alumina
+ };
+
+ ItemStack[] aInputsCrushed2 = new ItemStack[] {
+ aCrushedStack,
+ aMillingBall_Soapstone
+ };
+
+ // Outputs
+ ItemStack[] aOutputsOre1 = new ItemStack[] {
+ aMilledStackOres1
+ };
+
+ ItemStack[] aOutputsOre2 = new ItemStack[] {
+ aMilledStackOres2
+ };
+
+ ItemStack[] aOutputsCrushed1 = new ItemStack[] {
+ aMilledStackCrushed1
+ };
+
+ ItemStack[] aOutputsCrushed2 = new ItemStack[] {
+ aMilledStackCrushed2
+ };
+
+ ItemStack[][] aInputArray = new ItemStack[][] {aInputsOre1, aInputsOre2, aInputsCrushed1, aInputsCrushed2};
+ ItemStack[][] aOutputArray = new ItemStack[][] {aOutputsOre1, aOutputsOre2, aOutputsCrushed1, aOutputsCrushed2};
+ int[] aTime = new int[] {6000, 7500, 7500, 9000};
+
+ int aSize = Recipe_GT.Gregtech_Recipe_Map.sOreMillRecipes.mRecipeList.size();
+ int aSize2 = aSize;
+
+ for (int i=0;i<4;i++) {
+ Recipe_GT aOreRecipe = new Recipe_GT(
+ false,
+ aInputArray[i],
+ aOutputArray[i],
+ null,
+ new int[] {},
+ null,
+ null,
+ aTime[i],
+ aEU,
+ 0);
+ Recipe_GT.Gregtech_Recipe_Map.sOreMillRecipes.add(aOreRecipe);
+ }
+
+ aSize = Recipe_GT.Gregtech_Recipe_Map.sOreMillRecipes.mRecipeList.size();
+ return aSize > aSize2;
+ }
+
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechIsaMill.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechIsaMill.java
new file mode 100644
index 0000000000..9c5fb483a7
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechIsaMill.java
@@ -0,0 +1,14 @@
+package gtPlusPlus.xmod.gregtech.registration.gregtech;
+
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing.GregtechMetaTileEntity_IsaMill;
+
+public class GregtechIsaMill {
+
+ public static void run(){
+
+ GregtechItemList.Controller_IsaMill_Controller.set(new GregtechMetaTileEntity_IsaMill(31027, "gtpp.multimachine.isamill", "IsaMill Grinding Machine").getStackForm(1L));
+
+ }
+
+}