From ef10c47d76d760656196c9b8fe3a76e581203425 Mon Sep 17 00:00:00 2001 From: Blood-Asp Date: Sun, 6 Dec 2015 07:26:06 +0100 Subject: [PATCH] bunch of fixed Added new multiblock guis shortend HP turbine name to fit gui added reinforced block reprocessing fixed crash on AE2 removal expanded large boiler tooltips fixed chinsel marble processing added some recipes for alloys --- src/main/java/gregtech/GT_Mod.java | 2 +- src/main/java/gregtech/api/enums/Materials.java | 8 ++++---- .../GT_MetaTileEntity_BasicBatteryBuffer.java | 2 +- .../gregtech/api/util/GT_RecipeRegistrator.java | 2 +- .../common/blocks/GT_Block_Reinforced.java | 6 +++--- .../multi/GT_MetaTileEntity_AdvMiner2.java | 6 ++++++ .../GT_MetaTileEntity_DistillationTower.java | 2 +- .../multi/GT_MetaTileEntity_HeatExchanger.java | 2 +- .../multi/GT_MetaTileEntity_LargeBoiler.java | 2 +- .../multi/GT_MetaTileEntity_LargeTurbine.java | 6 ++++++ .../multi/GT_MetaTileEntity_OilCracker.java | 6 ++++++ .../multi/GT_MetaTileEntity_OilDrill.java | 6 ++++++ .../multi/GT_MetaTileEntity_PyrolyseOven.java | 6 ++++++ .../postload/GT_CraftingRecipeLoader.java | 1 + .../loaders/postload/GT_MachineRecipeLoader.java | 9 ++++++++- .../preload/GT_Loader_MetaTileEntities.java | 2 +- .../gui/multimachines/DistillationTower.png | Bin 0 -> 4366 bytes .../textures/gui/multimachines/DrillingRig.png | Bin 0 -> 4364 bytes .../gui/multimachines/LargeHeatExchanger.png | Bin 0 -> 4437 bytes .../textures/gui/multimachines/LargeTurbine.png | Bin 0 -> 4313 bytes .../gui/multimachines/OilCrackingUnit.png | Bin 0 -> 4379 bytes .../textures/gui/multimachines/PyrolyseOven.png | Bin 0 -> 4426 bytes 22 files changed, 53 insertions(+), 15 deletions(-) create mode 100644 src/main/resources/assets/gregtech/textures/gui/multimachines/DistillationTower.png create mode 100644 src/main/resources/assets/gregtech/textures/gui/multimachines/DrillingRig.png create mode 100644 src/main/resources/assets/gregtech/textures/gui/multimachines/LargeHeatExchanger.png create mode 100644 src/main/resources/assets/gregtech/textures/gui/multimachines/LargeTurbine.png create mode 100644 src/main/resources/assets/gregtech/textures/gui/multimachines/OilCrackingUnit.png create mode 100644 src/main/resources/assets/gregtech/textures/gui/multimachines/PyrolyseOven.png diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 1cd53f0e..eedcc37a 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -229,7 +229,7 @@ public class GT_Mod gregtechproxy.mSortToTheEnd = tMainConfig.get("general", "EnsureToBeLoadedLast", true).getBoolean(true); gregtechproxy.mDisableIC2Cables = tMainConfig.get("general", "DisableIC2Cables", true).getBoolean(true); gregtechproxy.mAchievements = tMainConfig.get("general", "EnableAchievements", true).getBoolean(true); - gregtechproxy.mAE2Integration = tMainConfig.get("general", "EnableAE2Integration", Loader.isModLoaded("appliedenergistics2")).getBoolean(Loader.isModLoaded("appliedenergistics2")); + gregtechproxy.mAE2Integration = GregTech_API.sSpecialFile.get(ConfigCategories.general, "EnableAE2Integration", Loader.isModLoaded("appliedenergistics2")); gregtechproxy.mNervedCombs = tMainConfig.get("general", "NervCombs", true).getBoolean(true); GregTech_API.mOutputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "OutputRF", true); diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index bf0ab995..6484aeda 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -410,7 +410,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { * TODO: This */ AluminiumBrass ( -1, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |64 , 255, 255, 255, 0, "Aluminium Brass" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), - Osmiridium ( 317, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |64|128 , 100, 100, 255, 0, "Osmiridium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightBlue ), + Osmiridium ( 317, TextureSet.SET_METALLIC , 7.0F, 1600, 3, 1|2 |64|128 , 100, 100, 255, 0, "Osmiridium" , 0, 0, 3333, 2500, true, false, 1, 1, 1, Dyes.dyeLightBlue , 1, Arrays.asList(new MaterialStack(Iridium, 3), new MaterialStack(Osmium, 1))), Sunnarium ( 318, TextureSet.SET_SHINY , 1.0F, 0, 1, 1|2 , 255, 255, 0, 0, "Sunnarium" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow ), Endstone ( 808, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Endstone" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeYellow ), Netherrack ( 807, TextureSet.SET_DULL , 1.0F, 0, 0, 1 , 200, 0, 0, 0, "Netherrack" , 0, 0, -1, 0, false, false, 0, 1, 1, Dyes.dyeRed ), @@ -709,13 +709,14 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { @Deprecated RedGranite (GraniteRed, false), @Deprecated Sheldonite (Cooperite, false), @Deprecated Soulsand (SoulSand, false), - @Deprecated SilverLead (Galena, false), +// @Deprecated SilverLead (Galena, false), @Deprecated Titan (Titanium, false), @Deprecated Uran (Uranium, false), @Deprecated Wolframite (Tungstate, false), @Deprecated Wolframium (Tungsten, false), @Deprecated Wolfram (Tungsten, false), - @Deprecated WrougtIron (WroughtIron, false); +// @Deprecated WrougtIron (WroughtIron, false) + ; /** List of all Materials. */ public static final Collection VALUES = new HashSet(Arrays.asList(values())); @@ -754,7 +755,6 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { Snow .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); Ice .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); Water .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.NO_RECYCLING); - Silicon .add(SubTag.NO_RECYCLING); Sulfur .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); Saltpeter .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE); Graphite .add(SubTag.NO_SMASHING, SubTag.NO_SMELTING, SubTag.FLAMMABLE, SubTag.NO_SMELTING); diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java index 40c45c5c..af818cae 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java @@ -255,7 +255,7 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier if (!GT_Utility.isStackValid(aStack)) { return false; } - if (GT_ModHandler.isElectricItem(aStack, this.mTier)) { + if (mInventory[aIndex]==null && GT_ModHandler.isElectricItem(aStack, this.mTier)) { return true; } return false; diff --git a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java index 5be4101e..d4f3fe9b 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java +++ b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java @@ -240,7 +240,7 @@ public class GT_RecipeRegistrator { for (MaterialStack tMaterial : aData.getAllMaterialStacks()) tAmount += tMaterial.mAmount * tMaterial.mMaterial.getMass(); - RA.addPulveriserRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getDust(aData.mMaterial), GT_OreDictUnificator.getDust(aData.getByProduct(0)), GT_OreDictUnificator.getDust(aData.getByProduct(1)), GT_OreDictUnificator.getDust(aData.getByProduct(2))}, null, (int) Math.max(16, tAmount / M), 4); + RA.addPulveriserRecipe(aStack, new ItemStack[]{GT_OreDictUnificator.getDust(aData.mMaterial), GT_OreDictUnificator.getDust(aData.getByProduct(0)), GT_OreDictUnificator.getDust(aData.getByProduct(1)), GT_OreDictUnificator.getDust(aData.getByProduct(2))}, null, aData.mMaterial.mMaterial==Materials.Marble ? 1 : (int) Math.max(16, tAmount / M), 4); if (aAllowHammer) for (MaterialStack tMaterial : aData.getAllMaterialStacks()) if (tMaterial.mMaterial.contains(SubTag.CRYSTAL) && !tMaterial.mMaterial.contains(SubTag.METAL)) { diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java b/src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java index a8547669..a49f59ad 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java @@ -43,9 +43,9 @@ public class GT_Block_Reinforced extends GT_Generic_Block { ItemList.Block_Plascrete.set(new ItemStack(this.setHardness(80.0f).setResistance(350.0f), 1, 2)); ItemList.Block_TungstenSteelReinforced.set(new ItemStack(this.setHardness(100.0f).setResistance(400.0f), 1, 3)); ItemList.Block_BrittleCharcoal.set(new ItemStack(this.setHardness(0.5f).setResistance(8.0f), 1, 4)); - GT_ModHandler.addCraftingRecipe(ItemList.Block_BronzePlate.get(1L, new Object[0]), new Object[]{"hP ", "PBP", " P ", 'P', OrePrefixes.plate.get(Materials.Bronze), 'B', OrePrefixes.stone.get(Materials.GraniteBlack)}); - GT_ModHandler.addCraftingRecipe(ItemList.Block_BronzePlate.get(1L, new Object[0]), new Object[]{"hP ", "PBP", " P ", 'P', OrePrefixes.plate.get(Materials.Bronze), 'B', OrePrefixes.stone.get(Materials.GraniteRed)}); - GT_ModHandler.addCraftingRecipe(ItemList.Block_IridiumTungstensteel.get(1L, new Object[0]), new Object[]{"hBP", 'P', OrePrefixes.plate.get(Materials.Iridium), 'B', ItemList.Block_TungstenSteelReinforced.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(ItemList.Block_BronzePlate.get(1L, new Object[0]),GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hP ", "PBP", " P ", 'P', OrePrefixes.plate.get(Materials.Bronze), 'B', OrePrefixes.stone.get(Materials.GraniteBlack)}); + GT_ModHandler.addCraftingRecipe(ItemList.Block_BronzePlate.get(1L, new Object[0]),GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hP ", "PBP", " P ", 'P', OrePrefixes.plate.get(Materials.Bronze), 'B', OrePrefixes.stone.get(Materials.GraniteRed)}); + GT_ModHandler.addCraftingRecipe(ItemList.Block_IridiumTungstensteel.get(1L, new Object[0]),GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hBP", 'P', OrePrefixes.plate.get(Materials.Iridium), 'B', ItemList.Block_TungstenSteelReinforced.get(1L, new Object[0])}); GT_ModHandler.addShapelessCraftingRecipe(new ItemStack(Items.coal, 1, 1), new Object[]{ItemList.Block_BrittleCharcoal.get(1, new Object[0])}); } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java index 9aa75449..553b8f7b 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java @@ -4,6 +4,7 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.OrePrefixes; 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; @@ -15,6 +16,7 @@ import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.common.blocks.GT_TileEntity_Ores; import net.minecraft.block.Block; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -54,6 +56,10 @@ public class GT_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBlockBas } return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[16]}; } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "DrillingRig.png"); + } @Override public boolean checkRecipe(ItemStack aStack) { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java index 486c9faf..9b932375 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java @@ -52,7 +52,7 @@ public class GT_MetaTileEntity_DistillationTower } public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "VacuumFreezer.png"); + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "DistillationTower.png"); } public GT_Recipe.GT_Recipe_Map getRecipeMap() { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java index 3b76eccc..e2b71b65 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java @@ -59,7 +59,7 @@ public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBloc } public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeBoiler.png"); + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeHeatExchanger.png"); } public boolean isCorrectMachinePart(ItemStack aStack) { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java index 2975c610..8667778e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java @@ -32,7 +32,7 @@ public abstract class GT_MetaTileEntity_LargeBoiler } public String[] getDescription() { - return new String[]{"Controller Block for the Large Boiler", "Size: 3x3x5", "Controller (front middle in Fireboxes)", "3x3 of Fire Boxes (bottom Layer, Min 3!)", "3x3x4 of Casing (above Fireboxes, hollow, Min 24!)", "3 Pipe Casing Blocks inside the Hollow Casing", "1x Input (one of Fireboxes)", "1x Maintenance Hatch (one of Fireboxes)", "1x Muffler Hatch (one of Fireboxes)", "1x Fluid Output (one of Main Casing)"}; + return new String[]{"Controller Block for the Large Boiler", "Size: 3x3x5", "Controller (front middle in Fireboxes)", "3x3 of Fire Boxes (bottom Layer, Min 3!)", "3x3x4 of Casing (above Fireboxes, hollow, Min 24!)", "3 Pipe Casing Blocks inside the Hollow Casing", "1x Input (one of Fireboxes)", "1x Maintenance Hatch (one of Fireboxes)", "1x Muffler Hatch (one of Fireboxes)", "1x Fluid Output (one of Main Casing)","Produces "+getEUt()*40+"L/sec steam","Runs "+(runtimeBoost(20)/20f)+" per coal of fuel","Refined liquid fuels have 1/4 efficiency"}; } public abstract Block getCasingBlock(); diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java index 7544ef60..0d4f8b0d 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java @@ -1,5 +1,6 @@ package gregtech.common.tileentities.machines.multi; +import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; @@ -8,6 +9,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockB import gregtech.api.util.GT_Utility; import gregtech.common.items.GT_MetaGenerated_Tool_01; import net.minecraft.block.Block; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; @@ -31,6 +33,10 @@ public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_M 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(), "LargeTurbine.png"); + } @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java index 5e7cc493..32e12ac5 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java @@ -3,6 +3,7 @@ package gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; 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; @@ -11,6 +12,7 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -49,6 +51,10 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_MultiBlockBa } return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[49]}; } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "OilCrackingUnit.png"); + } @Override public boolean checkRecipe(ItemStack aStack) { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java index 13dc671e..1a0e1119 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java @@ -2,6 +2,7 @@ package gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; 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; @@ -9,6 +10,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockB import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; @@ -45,6 +47,10 @@ public class GT_MetaTileEntity_OilDrill extends GT_MetaTileEntity_MultiBlockBase } return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[16]}; } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "DrillingRig.png"); + } @Override public boolean checkRecipe(ItemStack aStack) { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PyrolyseOven.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PyrolyseOven.java index a468783f..ca2bc372 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PyrolyseOven.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PyrolyseOven.java @@ -2,6 +2,7 @@ package gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; 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; @@ -9,6 +10,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockB import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -45,6 +47,10 @@ public class GT_MetaTileEntity_PyrolyseOven extends GT_MetaTileEntity_MultiBlock } return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[0]}; } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "PyrolyseOven.png"); + } @Override public boolean checkRecipe(ItemStack aStack) { diff --git a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java index 56f187e6..e245aca6 100644 --- a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java @@ -448,6 +448,7 @@ public class GT_CraftingRecipeLoader GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlackSteel, 5L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.BlackBronze), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RedSteel, 8L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.SterlingSilver), OrePrefixes.dust.get(Materials.BismuthBronze), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.BlueSteel, 8L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.RoseGold), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.Steel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel), OrePrefixes.dust.get(Materials.BlackSteel)}); + GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Osmiridium, 4L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Iridium), OrePrefixes.dust.get(Materials.Osmium)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ultimet, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Cobalt), OrePrefixes.dust.get(Materials.Chrome), OrePrefixes.dust.get(Materials.Chrome), OrePrefixes.dust.get(Materials.Nickel), OrePrefixes.dust.get(Materials.Molybdenum)}); GT_ModHandler.addShapelessCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CobaltBrass, 9L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Brass), OrePrefixes.dust.get(Materials.Aluminium), OrePrefixes.dust.get(Materials.Cobalt)}); diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java index ed8e37ad..26b652ba 100644 --- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -42,7 +42,11 @@ public class GT_MachineRecipeLoader GT_Log.out.println("GT_Mod: failed to iterate somehow, maybe it's your Forge Version causing it. But it's not that important\n"); e.printStackTrace(GT_Log.err); } - + +// GT_Values.RA.addArcFurnaceRecipe(ItemList.Block_BronzePlate.get(1, new Object[]{}), new ItemStack[]{ GT_OreDictUnificator.get(OrePrefixes.ingot,Materials.Bronze,4), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Stone,1)}, null, 160, 96); +// GT_Values.RA.addArcFurnaceRecipe(ItemList.Block_IridiumTungstensteel.get(1, new Object[]{}), new ItemStack[]{ GT_OreDictUnificator.get(OrePrefixes.ingot,Materials.Bronze,4), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Stone,1)}, null, 160, 96); + GT_Values.RA.addArcFurnaceRecipe(ItemList.Block_TungstenSteelReinforced.get(1, new Object[]{}), new ItemStack[]{ GT_OreDictUnificator.get(OrePrefixes.ingot,Materials.TungstenSteel,2), GT_OreDictUnificator.get(OrePrefixes.dust,Materials.Concrete,1)}, null, 160, 96); + //Temporary until circuit overhaul GT_Values.RA.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 2), GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Copper, 1), GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 1), 100, 16); @@ -306,7 +310,10 @@ public class GT_MachineRecipeLoader GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherStar, 1), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 4), Materials.Osmium.getMolten(1152), ItemList.Field_Generator_HV.get(1, new Object[0]), 1800, 480); GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherStar, 1), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 4), Materials.Osmium.getMolten(2304), ItemList.Field_Generator_EV.get(1, new Object[0]), 1800, 1920); GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherStar, 1), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 4), Materials.Osmium.getMolten(4608), ItemList.Field_Generator_IV.get(1, new Object[0]), 1800, 7680); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Steel, 64), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Zinc, 16), null, ItemList.Component_Filter.get(1, new Object[0]), 16, 1600); + GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Graphite, 8), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Silicon, 1), Materials.Glue.getFluid(250L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Graphene, 1), 480, 480); + GT_Values.RA.addSlicerRecipe(ItemList.Food_Dough_Chocolate.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Raw_Cookie.get(4L, new Object[0]), 128, 4); GT_Values.RA.addSlicerRecipe(ItemList.Food_Baked_Bun.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Bun.get(2L, new Object[0]), 128, 4); GT_Values.RA.addSlicerRecipe(ItemList.Food_Baked_Bread.get(1L, new Object[0]), ItemList.Shape_Slicer_Flat.get(0L, new Object[0]), ItemList.Food_Sliced_Bread.get(2L, new Object[0]), 128, 4); diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index 55121763..b869574a 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -952,7 +952,7 @@ public class GT_Loader_MetaTileEntities ItemList.LargeSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_Steam(1131, "multimachine.largeturbine", "Large Steam Turbine").getStackForm(1L)); ItemList.LargeGasTurbine.set(new GT_MetaTileEntity_LargeTurbine_Gas(1151, "multimachine.largegasturbine", "Large Gas Turbine").getStackForm(1L)); - ItemList.LargeHPSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_HPSteam(1152, "multimachine.largehpturbine", "Large High Pressure Steam Turbine").getStackForm(1L)); + ItemList.LargeHPSteamTurbine.set(new GT_MetaTileEntity_LargeTurbine_HPSteam(1152, "multimachine.largehpturbine", "Large HP Steam Turbine").getStackForm(1L)); ItemList.LargePlasmaTurbine.set(new GT_MetaTileEntity_LargeTurbine_Plasma(1153, "multimachine.largeplasmaturbine", "Large Plasma Generator").getStackForm(1L)); GT_ModHandler.addCraftingRecipe(ItemList.LargeSteamTurbine.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"CPC", "PMP", "BPB", 'M', ItemList.Hull_HV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', OrePrefixes.gearGt.get(Materials.Steel)}); diff --git a/src/main/resources/assets/gregtech/textures/gui/multimachines/DistillationTower.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/DistillationTower.png new file mode 100644 index 0000000000000000000000000000000000000000..65e6ac31972d8d80098dfdd2008d4ed49be20416 GIT binary patch literal 4366 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/gui/multimachines/DrillingRig.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/DrillingRig.png new file mode 100644 index 0000000000000000000000000000000000000000..7b60ec4de7556350d140d4745df806572e4546e5 GIT binary patch literal 4364 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 XGD+q{)Oq{oSbG3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/gui/multimachines/LargeHeatExchanger.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/LargeHeatExchanger.png new file mode 100644 index 0000000000000000000000000000000000000000..9f0f9d59b239327f7c161b25e0631c9128258ac3 GIT binary patch literal 4437 zcma)82T&BsvYjO^OGbi7a0!xgl)Pk+BuSDIBrJ+ZmJCadf{03T2`V`XijtQgpvWR9 zIjl&Mv|b4=nTPlO`t_^syZ^nZ>gleU>7MD+eX2U?s;en`K&`K*Wd;D`%!B|a z*_pcTTjqAAD7^J-`~aZo`7Myg!Zd6Ez)WswYF@qS?&a_0=kDbV*Voj9d;5C1-MZrn zK+qK09BE;`%B(_|+tDycL_IR_GGl_m%`{R_j2V1FToiOy61j>dnM^zBwY5pu`U?|@ z)6!6>Or|1K$*>9XMXqOQG0zi|KOD}7KKB@FB`gn~ydGCwsoF+243T4?R8RDzO=VG3 z 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 Vo-{N}5?BFs80(wsm7ts-{0GN2i#z}T literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/gui/multimachines/PyrolyseOven.png b/src/main/resources/assets/gregtech/textures/gui/multimachines/PyrolyseOven.png new file mode 100644 index 0000000000000000000000000000000000000000..d3bc30c7bd203e434e74c3f1e7957bf08248d150 GIT binary patch literal 4426 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