From adb4a5eef6c1abf5f2ce68d133d7f54c16939442 Mon Sep 17 00:00:00 2001 From: Blood-Asp Date: Mon, 25 May 2015 23:04:14 +0200 Subject: [PATCH] Update 5.08.17 Large Turbines, Heat exchanger, player detector --- main/java/gregtech/api/enums/Element.java | 2 +- main/java/gregtech/api/enums/ItemList.java | 4 +- main/java/gregtech/api/enums/Materials.java | 8 +- .../api/items/GT_MetaGenerated_Tool.java | 2 +- .../api/items/GT_RadioactiveCellIC_Item.java | 1 + .../GT_MetaTileEntity_MultiBlockBase.java | 11 +- .../covers/GT_Cover_PlayerDetector.java | 120 ++++++++ .../items/GT_MetaGenerated_Item_01.java | 8 +- ..._MetaTileEntity_MagicalEnergyAbsorber.java | 97 ++++++- .../GT_MetaTileEntity_PlasmaGenerator.java | 2 +- .../GT_MetaTileEntity_FusionComputer.java | 3 + .../GT_MetaTileEntity_HeatExchanger.java | 257 ++++++++++++++++++ ...T_MetaTileEntity_LargeBoiler_Titanium.java | 8 +- .../multi/GT_MetaTileEntity_LargeTurbine.java | 75 ++--- .../GT_MetaTileEntity_LargeTurbine_Gas.java | 92 +++++++ ...T_MetaTileEntity_LargeTurbine_HPSteam.java | 89 ++++++ ...GT_MetaTileEntity_LargeTurbine_Plasma.java | 93 +++++++ .../GT_MetaTileEntity_LargeTurbine_Steam.java | 89 ++++++ .../gregtech/loaders/load/GT_FuelLoader.java | 2 +- .../loaders/misc/GT_Achievements.java | 24 +- .../postload/GT_MachineRecipeLoader.java | 36 ++- .../GT_Loader_Item_Block_And_Fluid.java | 4 +- .../preload/GT_Loader_MetaTileEntities.java | 25 +- .../textures/blocks/fluids/fluid.fluorine.png | Bin 0 -> 12997 bytes .../blocks/fluids/fluid.fluorine.png.mcmeta | 5 + .../items/gt.metaitem.01/531/Thumbs.db | Bin 3072 -> 3072 bytes .../textures/items/gt.metaitem.01/735.png | Bin 0 -> 290 bytes 27 files changed, 943 insertions(+), 114 deletions(-) create mode 100644 main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java create mode 100644 main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java create mode 100644 main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java create mode 100644 main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java create mode 100644 main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java create mode 100644 main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java create mode 100644 main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png create mode 100644 main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png.mcmeta create mode 100644 main/resources/assets/gregtech/textures/items/gt.metaitem.01/735.png diff --git a/main/java/gregtech/api/enums/Element.java b/main/java/gregtech/api/enums/Element.java index 8e56ccaa..b9ff7953 100644 --- a/main/java/gregtech/api/enums/Element.java +++ b/main/java/gregtech/api/enums/Element.java @@ -261,7 +261,7 @@ public enum Element { $Uuo (-118,-176, 0, -1, null , "Anti-Ununoctium" , false), $Ma ( 0, 0,-100, -1, null , "Anti-Magic" , false), - $Nt (0,-100000, 0, -1, null , "Anti-Neutronium" , false); + $Nt (0, -10000, 0, -1, null , "Anti-Neutronium" , false); public static Element get(String aMaterialName) { Object tObject = GT_Utility.getFieldContent(Element.class, aMaterialName, false, false); diff --git a/main/java/gregtech/api/enums/ItemList.java b/main/java/gregtech/api/enums/ItemList.java index 1bb7c9ec..20850712 100644 --- a/main/java/gregtech/api/enums/ItemList.java +++ b/main/java/gregtech/api/enums/ItemList.java @@ -646,13 +646,13 @@ public enum ItemList implements IItemContainer { ZPM2, Quantum_Tank_LV,Quantum_Tank_MV,Quantum_Tank_HV,Quantum_Tank_EV,Quantum_Tank_IV, Quantum_Chest_LV, Quantum_Chest_MV, Quantum_Chest_HV, Quantum_Chest_EV, Quantum_Chest_IV, NULL, Cover_RedstoneTransmitterExternal,Cover_RedstoneTransmitterInternal,Cover_RedstoneReceiverExternal,Cover_RedstoneReceiverInternal, - LargeTurbine, + LargeSteamTurbine, Ingot_Heavy1,Ingot_Heavy2,Ingot_Heavy3, Pump_LV, Pump_MV, Pump_HV, Pump_EV, Pump_IV, Teleporter, Cover_NeedsMaintainance, Casing_Turbine, - MobRep_LV,MobRep_MV,MobRep_HV,MobRep_EV,MobRep_IV; + MobRep_LV,MobRep_MV,MobRep_HV,MobRep_EV,MobRep_IV, LargeGasTurbine, LargeHPSteamTurbine, LargePlasmaTurbine, Cover_PlayerDetector, Machine_Multi_HeatExchanger; public static final ItemList[] DYE_ONLY_ITEMS = {Color_00, Color_01, Color_02, Color_03, Color_04, Color_05, Color_06, Color_07, Color_08, Color_09, Color_10, Color_11, Color_12, Color_13, Color_14, Color_15} diff --git a/main/java/gregtech/api/enums/Materials.java b/main/java/gregtech/api/enums/Materials.java index 4c7057ee..c69392ca 100644 --- a/main/java/gregtech/api/enums/Materials.java +++ b/main/java/gregtech/api/enums/Materials.java @@ -47,7 +47,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { Boron ( 9, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 250, 250, 250, 0, "Boron" , 0, 0, 2349, 0, F, F, 1, 1, 1, Dyes.dyeWhite , Element.B , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 3))), Caesium ( 62, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Caesium" , 0, 0, 301, 0, F, F, 4, 1, 1, Dyes._NULL , Element.Cs , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), Calcium ( 26, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |32 , 255, 245, 245, 0, "Calcium" , 0, 0, 1115, 0, F, F, 4, 1, 1, Dyes.dyePink , Element.Ca , Arrays.asList(new TC_AspectStack(TC_Aspects.SANO, 1), new TC_AspectStack(TC_Aspects.TUTAMEN, 1))), - Carbon ( 10, TextureSet.SET_DULL , 1.0F, 64, 2, 1 |32|64|128 , 20, 20, 20, 0, "Carbon" , 0, 0, 3800, 0, F, F, 2, 1, 1, Dyes.dyeBlack , Element.C , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), + Carbon ( 10, TextureSet.SET_DULL , 1.0F, 64, 2, 1|2 |32|64|128 , 20, 20, 20, 0, "Carbon" , 0, 0, 3800, 0, F, F, 2, 1, 1, Dyes.dyeBlack , Element.C , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.IGNIS, 1))), Cadmium ( 55, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 |32 , 50, 50, 60, 0, "Cadmium" , 0, 0, 594, 0, F, F, 3, 1, 1, Dyes.dyeGray , Element.Cd , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VENENUM, 1))), Cerium ( 65, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Cerium" , 0, 0, 1068, 1068, T, F, 4, 1, 1, Dyes._NULL , Element.Ce , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), Chlorine ( 23, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 255, 255, 0, "Chlorine" , 0, 0, 171, 0, F, F, 2, 1, 1, Dyes.dyeCyan , Element.Cl , Arrays.asList(new TC_AspectStack(TC_Aspects.AQUA, 2), new TC_AspectStack(TC_Aspects.PANNUS, 1))), @@ -72,7 +72,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { Iron ( 32, TextureSet.SET_METALLIC , 6.0F, 256, 2, 1|2 |8 |32|64|128 , 200, 200, 200, 0, "Iron" , 0, 0, 1811, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Element.Fe , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 3))), Lanthanum ( 64, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lanthanum" , 0, 0, 1193, 1193, T, F, 4, 1, 1, Dyes._NULL , Element.La , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), Lead ( 89, TextureSet.SET_DULL , 8.0F, 64, 1, 1|2 |8 |32|64|128 , 140, 100, 140, 0, "Lead" , 0, 0, 600, 0, F, F, 3, 1, 1, Dyes.dyePurple , Element.Pb , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ORDO, 1))), - Lithium ( 6, TextureSet.SET_DULL , 1.0F, 0, 2, 1 |8 |32 , 225, 220, 255, 0, "Lithium" , 0, 0, 454, 0, F, F, 4, 1, 1, Dyes.dyeLightBlue , Element.Li , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), + Lithium ( 6, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 |32 , 225, 220, 255, 0, "Lithium" , 0, 0, 454, 0, F, F, 4, 1, 1, Dyes.dyeLightBlue , Element.Li , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 2))), Lutetium ( 78, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Lutetium" , 0, 0, 1925, 1925, T, F, 4, 1, 1, Dyes._NULL , Element.Lu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), Magic (-128, TextureSet.SET_SHINY , 8.0F, 5120, 5, 1|2|4|8|16|32|64|128 , 100, 0, 200, 0, "Magic" , 5, 32, 5000, 0, F, F, 7, 1, 1, Dyes.dyePurple , Element.Ma , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 4))), Magnesium ( 18, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 200, 200, 0, "Magnesium" , 0, 0, 923, 0, F, F, 3, 1, 1, Dyes.dyePink , Element.Mg , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.SANO, 1))), @@ -91,7 +91,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { Platinum ( 85, TextureSet.SET_SHINY , 12.0F, 64, 2, 1|2 |8 |32|64|128 , 255, 255, 200, 0, "Platinum" , 0, 0, 2041, 0, F, F, 6, 1, 1, Dyes.dyeOrange , Element.Pt , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.NEBRISUM, 1))), Plutonium ( 100, TextureSet.SET_METALLIC , 6.0F, 512, 3, 1|2 |8 |32|64 , 240, 50, 50, 0, "Plutonium 244" , 0, 0, 912, 0, F, F, 6, 1, 1, Dyes.dyeLime , Element.Pu , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 2))), Plutonium241 ( 101, TextureSet.SET_SHINY , 6.0F, 512, 3, 1|2 |8 |32|64 , 250, 70, 70, 0, "Plutonium 241" , 0, 0, 912, 0, F, F, 6, 1, 1, Dyes.dyeLime , Element.Pu_241 , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 3))), - Potassium ( 25, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1 |32 , 250, 250, 250, 0, "Potassium" , 0, 0, 336, 0, F, F, 2, 1, 1, Dyes.dyeWhite , Element.K , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), + Potassium ( 25, TextureSet.SET_METALLIC , 1.0F, 0, 1, 1|2 |32 , 250, 250, 250, 0, "Potassium" , 0, 0, 336, 0, F, F, 2, 1, 1, Dyes.dyeWhite , Element.K , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.POTENTIA, 1))), Praseodymium ( 66, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Praseodymium" , 0, 0, 1208, 1208, T, F, 4, 1, 1, Dyes._NULL , Element.Pr , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), Promethium ( 68, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1|2 |8 |32 , 255, 255, 255, 0, "Promethium" , 0, 0, 1315, 1315, T, F, 4, 1, 1, Dyes._NULL , Element.Pm , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.RADIO, 1))), Radon ( 93, TextureSet.SET_FLUID , 1.0F, 0, 2, 16|32 , 255, 0, 255, 240, "Radon" , 0, 0, 202, 0, F, T, 5, 1, 1, Dyes.dyePurple , Element.Rn , Arrays.asList(new TC_AspectStack(TC_Aspects.AER, 1), new TC_AspectStack(TC_Aspects.RADIO, 1))), @@ -169,7 +169,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { Endium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Endium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), Prismarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Prismarine" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), GraveyardDirt ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Graveyard Dirt" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - DarkSteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Dark Steel" , 0, 0, 1811, 0, F, F, 3, 1, 1, Dyes._NULL ), + DarkSteel ( 364, TextureSet.SET_DULL , 8.0F, 512, 3, 1|2 |8 |64 , 80, 70, 80, 0, "Dark Steel" , 0, 0, 1811, 0, F, F, 5, 1, 1, Dyes.dyePurple ), Terrasteel ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Terrasteel" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), TerrasteelAlloyRaw ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Raw Terrasteel Alloy" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), TerrasteelAlloyStrengthened ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Strengthened Terrasteel Alloy" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), diff --git a/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index d4e13ad2..b574d90f 100644 --- a/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -244,7 +244,7 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY); aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Turbine Efficency: " + EnumChatFormatting.BLUE + (50.0F+(10.0F*getToolCombatDamage(aStack))) + EnumChatFormatting.GRAY); - aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Steam flow: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed*20) + EnumChatFormatting.GRAY+ "L/sec"); + aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Steam flow: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed*1000) + EnumChatFormatting.GRAY+ "L/sec"); }else{ aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY); diff --git a/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java b/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java index 48232b88..cee5bb56 100644 --- a/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java +++ b/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java @@ -78,6 +78,7 @@ import net.minecraft.world.World; checkHeatAcceptor(reactor, x, y + 1, heatAcceptors); while ((heatAcceptors.size() > 0) && (heat > 0)) { + heat *=sEnergy; int dheat = heat / heatAcceptors.size(); heat -= dheat; dheat = ((IReactorComponent)((ItemStackCoord)heatAcceptors.get(0)).stack.getItem()).alterHeat(reactor, ((ItemStackCoord)heatAcceptors.get(0)).stack, ((ItemStackCoord)heatAcceptors.get(0)).x, ((ItemStackCoord)heatAcceptors.get(0)).y, dheat); diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 2bcb4ec1..a89db1ce 100644 --- a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -197,7 +197,6 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { mEfficiencyIncrease = 0; if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe(mInventory[1]); if(mOutputFluids!=null&&mOutputFluids.length>0){ - GT_Mod.instance.achievements.issueAchivementHatchFluid(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), mOutputFluids[0]); if(mOutputFluids.length>1){GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "oilplant");} } } @@ -337,16 +336,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { } if (mInventory[1] != null && getBaseMetaTileEntity().getRandomNumber(2) == 0 &&!mInventory[1].getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.")) { if(mInventory[1].getItem() instanceof GT_MetaGenerated_Tool_01){ + ((GT_MetaGenerated_Tool)mInventory[1].getItem()).doDamage(mInventory[1], mEUt/5); } -// mInventory[1].setItemDamage(mInventory[1].getItemDamage() + getDamageToComponent(mInventory[1])); -// if (mInventory[1].getItemDamage() >= mInventory[1].getMaxDamage()) { -// if (explodesOnComponentBreak(mInventory[1])) { -// explodeMultiblock(); -// } else { -// mInventory[1] = null; -// } -// return false; -// } } } return true; diff --git a/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java b/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java new file mode 100644 index 00000000..20fbf385 --- /dev/null +++ b/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java @@ -0,0 +1,120 @@ +package gregtech.common.covers; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraftforge.fluids.Fluid; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.util.GT_CoverBehavior; +import gregtech.api.util.GT_Utility; + +public class GT_Cover_PlayerDetector extends GT_CoverBehavior{ + + private String placer = ""; + private int range = 8; + + public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) + { + boolean playerDetected = false; + + if(aTileEntity instanceof IGregTechTileEntity){ + if(aTileEntity.isUniversalEnergyStored(20)){ + aTileEntity.decreaseStoredEnergyUnits(20, true); + range = 32; + }else{range = 8;} + placer = ((IGregTechTileEntity) aTileEntity).getOwnerName(); + } + for (Object tObject : aTileEntity.getWorld().playerEntities) { + if ((tObject instanceof EntityPlayerMP)) + { + EntityPlayerMP tEntity = (EntityPlayerMP)tObject; + int dist = Math.max(1, (int)tEntity.getDistance(aTileEntity.getXCoord() + 0.5D, aTileEntity.getYCoord() + 0.5D, aTileEntity.getZCoord() + 0.5D)); + if (dist < range) + { + if (aCoverVariable == 0) + { + playerDetected=true; + break; + } + if (tEntity.getDisplayName().equalsIgnoreCase(placer)) + { + if (aCoverVariable == 1) + { + playerDetected=true; + break; + } + } + else if (aCoverVariable == 2) + { + playerDetected=true; + break; + } + } + } + } + + + aTileEntity.setOutputRedstoneSignal(aSide, (byte)(playerDetected ? 15 : 0)); + return aCoverVariable; + } + + public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) + /* 64: */ { + /* 65: 54 */ aCoverVariable = (aCoverVariable + 1) % 3; + /* 66: 55 */ if (aCoverVariable == 0) { + /* 67: 55 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if any Player is close"); + /* 68: */ } + /* 69: 56 */ if (aCoverVariable == 1) { + /* 70: 56 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if you are close"); + /* 71: */ } + /* 72: 57 */ if (aCoverVariable == 2) { + /* 73: 57 */ GT_Utility.sendChatToPlayer(aPlayer, "Emit if other player is close"); + /* 74: */ } + /* 96: 65 */ return aCoverVariable; + /* 97: */ } + /* 98: */ + /* 99: */ public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) + /* 100: */ { + /* 101: 70 */ return true; + /* 102: */ } + /* 103: */ + /* 104: */ public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) + /* 105: */ { + /* 106: 75 */ return true; + /* 107: */ } + /* 108: */ + /* 109: */ public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) + /* 110: */ { + /* 111: 80 */ return true; + /* 112: */ } + /* 113: */ + /* 114: */ public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) + /* 115: */ { + /* 116: 85 */ return true; + /* 117: */ } + /* 118: */ + /* 119: */ public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) + /* 120: */ { + /* 121: 90 */ return true; + /* 122: */ } + /* 123: */ + /* 124: */ public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) + /* 125: */ { + /* 126: 95 */ return true; + /* 127: */ } + /* 128: */ + /* 129: */ public boolean manipulatesSidedRedstoneOutput(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) + /* 130: */ { + /* 131:100 */ return true; + /* 132: */ } + /* 133: */ + /* 134: */ public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) + /* 135: */ { + /* 136:105 */ return 20; + /* 137: */ } + +} diff --git a/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index 2923569b..638236dd 100644 --- a/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -42,6 +42,7 @@ import gregtech.api.util.GT_Utility; /* 38: */ import gregtech.common.covers.GT_Cover_ItemMeter; /* 39: */ import gregtech.common.covers.GT_Cover_LiquidMeter; import gregtech.common.covers.GT_Cover_NeedMaintainance; +import gregtech.common.covers.GT_Cover_PlayerDetector; /* 40: */ import gregtech.common.covers.GT_Cover_Pump; import gregtech.common.covers.GT_Cover_RedstoneReceiverExternal; import gregtech.common.covers.GT_Cover_RedstoneReceiverInternal; @@ -709,13 +710,16 @@ import net.minecraftforge.common.ForgeModContainer; /* 677:645 */ ItemList.Cover_FluidDetector.set(addItem(tLastID = 732, "Fluid Detector", "Gives out Fluid Amount as Redstone", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L) })); /* 678:646 */ ItemList.Cover_ItemDetector.set(addItem(tLastID = 733, "Item Detector", "Gives out Item Amount as Redstone", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 1L) })); /* 679:647 */ ItemList.Cover_EnergyDetector.set(addItem(tLastID = 734, "Energy Detector", "Gives out Energy Amount as Redstone", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 1L) })); -/* 680: */ +/* 680: */ ItemList.Cover_PlayerDetector.set(addItem(tLastID = 735, "Player Detector", "Gives out close Players as Redstone", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L) })); +/* 677:645 */ GT_Values.RA.addAssemblerRecipe( ItemList.Sensor_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1L),ItemList.Cover_PlayerDetector.get(1L, new Object[0]), 3200, 128); +/* 743:711 */ /* 681:649 */ GregTech_API.registerCover(ItemList.Cover_Controller.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_CONTROLLER) }), new GT_Cover_ControlsWork()); /* 682:650 */ GregTech_API.registerCover(ItemList.Cover_ActivityDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ACTIVITYDETECTOR) }), new GT_Cover_DoesWork()); /* 683:651 */ GregTech_API.registerCover(ItemList.Cover_FluidDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_FLUIDDETECTOR) }), new GT_Cover_LiquidMeter()); /* 684:652 */ GregTech_API.registerCover(ItemList.Cover_ItemDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ITEMDETECTOR) }), new GT_Cover_ItemMeter()); /* 685:653 */ GregTech_API.registerCover(ItemList.Cover_EnergyDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ENERGYDETECTOR) }), new GT_Cover_EUMeter()); -/* 686: */ +/* 686: */ GregTech_API.registerCover(ItemList.Cover_PlayerDetector.get(1L, new Object[0]), new GT_MultiTexture(new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[2][0], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_ACTIVITYDETECTOR) }), new GT_Cover_PlayerDetector()); +/* 683:651 */ /* 687:655 */ ItemList.Cover_Screen.set(addItem(tLastID = 740, "Computer Monitor", "Displays Data", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.LUX, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 1L) })); /* 688:656 */ ItemList.Cover_Crafting.set(addItem(tLastID = 744, "Crafting Table Cover", "Better than a wooden Workbench", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 4L) })); /* 689:657 */ ItemList.Cover_Drain.set(addItem(tLastID = 745, "Drain", "Absorbs Fluids and collects Rain", new Object[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L) })); diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java index 6bf553a0..7e724d3d 100644 --- a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java +++ b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java @@ -6,9 +6,16 @@ import thaumcraft.api.aspects.Aspect; import thaumcraft.api.visnet.VisNetHandler; import cpw.mods.fml.common.Loader; import net.minecraft.block.Block; +import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.item.EntityEnderCrystal; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemEnchantedBook; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; @@ -74,7 +81,7 @@ import gregtech.api.util.GT_Utility; this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.efficiency.tier."+this.mTier, 100-this.mTier*10); this.sAllowMultipleEggs = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.AllowMultipleEggs", false); this.sEnergyPerEnderCrystal = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerTick.EnderCrystal", 32); - this.sEnergyFromVis = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerVisDivisor", 2500); + this.sEnergyFromVis = (GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerVisDivisor", 2500)*10); this.sDragonEggEnergyPerTick = GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "MagicEnergyAbsorber.EnergyPerTick", 2048); this.isThaumcraftLoaded = Loader.isModLoaded("Thaumcraft"); } @@ -84,7 +91,7 @@ import gregtech.api.util.GT_Utility; if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.getUniversalEnergyStored() < maxEUOutput() + aBaseMetaTileEntity.getEUCapacity()) { //Dragon Egg if(hasEgg()&&aTick%10==0){ - getBaseMetaTileEntity().increaseStoredEnergyUnits(sDragonEggEnergyPerTick*getEfficiency()/10, false); + getBaseMetaTileEntity().increaseStoredEnergyUnits(sDragonEggEnergyPerTick*getEfficiency()*10, false); if ((mActiveSiphon != this) && (!sAllowMultipleEggs)) { if ((mActiveSiphon == null) || (mActiveSiphon.getBaseMetaTileEntity() == null) || (mActiveSiphon.getBaseMetaTileEntity().isInvalidTileEntity()) || (!mActiveSiphon.hasEgg())) { mActiveSiphon = this; @@ -107,13 +114,97 @@ import gregtech.api.util.GT_Utility; int order = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ORDER, 1000); int water = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.WATER, 1000); int visEU = (int) (Math.pow(fire, 4)+Math.pow(earth, 4)+Math.pow(air, 4)+Math.pow(destruction, 4)+Math.pow(order, 4)+Math.pow(water, 4)); + int mult = 85; + if(fire>4)mult+=15; + if(earth>4)mult+=15; + if(air>4)mult+=15; + if(destruction>4)mult+=15; + if(order>4)mult+=15; + if(water>4)mult+=15; + visEU = (visEU*mult) / 100; getBaseMetaTileEntity().increaseStoredEnergyUnits(Math.min(maxEUOutput(), visEU*getEfficiency()/this.sEnergyFromVis), false); }catch (Throwable e){} } //EnderCrystal - //GC Creeper Egg + if (sEnergyPerEnderCrystal > 0) { + if (this.mTargetedCrystal == null) + { + ArrayList tList = (ArrayList)getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityEnderCrystal.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 64, getBaseMetaTileEntity().getYCoord() - 64, getBaseMetaTileEntity().getZCoord() - 64, getBaseMetaTileEntity().getXCoord() + 64, getBaseMetaTileEntity().getYCoord() + 64, getBaseMetaTileEntity().getZCoord() + 64)); + if ((tList != null) && (!tList.isEmpty())) + { + tList.removeAll(sUsedDragonCrystalList); + if (tList.size() > 0) + { + this.mTargetedCrystal = ((EntityEnderCrystal)tList.get(0)); + if (this.mTargetedCrystal != null) { + sUsedDragonCrystalList.add(this.mTargetedCrystal); + } + } + } + } + else if (this.mTargetedCrystal.isEntityAlive()) + { + getBaseMetaTileEntity().increaseStoredEnergyUnits(sEnergyPerEnderCrystal * 10, false); + } + else + { + sUsedDragonCrystalList.remove(this.mTargetedCrystal); + this.mTargetedCrystal = null; + } + } + //Absorb entchantments + + try + { + if ((this.mInventory[0] != null) && (this.mInventory[1] == null)) + { + if ((this.mInventory[0].isItemEnchanted()) && (this.mInventory[0].getItem().getItemEnchantability() > 0)) + { + NBTTagList tEnchantments = this.mInventory[0].getEnchantmentTagList(); + if (tEnchantments != null) + { + for (int i = 0; i < tEnchantments.tagCount(); i++) + { + short tID = ((NBTTagCompound)tEnchantments.getCompoundTagAt(i)).getShort("id"); + short tLevel = ((NBTTagCompound)tEnchantments.getCompoundTagAt(i)).getShort("lvl"); + if ((tID > -1) && (tID < Enchantment.enchantmentsList.length)) + { + Enchantment tEnchantment = Enchantment.enchantmentsList[tID]; + if (tEnchantment != null) { + getBaseMetaTileEntity().increaseStoredEnergyUnits(1000000 * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight()), true); + } + } + } + this.mInventory[0].stackTagCompound.removeTag("ench"); + } + } + else if ((this.mInventory[0].getItem() instanceof ItemEnchantedBook)) + { + NBTTagList tEnchantments = ((ItemEnchantedBook)this.mInventory[0].getItem()).func_92110_g(this.mInventory[0]); + if (tEnchantments != null) + { + for (int i = 0; i < tEnchantments.tagCount(); i++) + { + short tID = ((NBTTagCompound)tEnchantments.getCompoundTagAt(i)).getShort("id"); + short tLevel = ((NBTTagCompound)tEnchantments.getCompoundTagAt(i)).getShort("lvl"); + if ((tID > -1) && (tID < Enchantment.enchantmentsBookList.length)) + { + Enchantment tEnchantment = Enchantment.enchantmentsBookList[tID]; + if (tEnchantment != null) { + getBaseMetaTileEntity().increaseStoredEnergyUnits(1000000 * tLevel / (tEnchantment.getMaxLevel() * tEnchantment.getWeight()), true); + } + } + } + this.mInventory[0] = new ItemStack(Items.book, 1); + } + } + this.mInventory[1] = this.mInventory[0]; + this.mInventory[0] = null; + } + } + catch (Throwable e){} } } diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java index da0e8792..26aeea59 100644 --- a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java +++ b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java @@ -51,7 +51,7 @@ onConfigLoad(); public void onConfigLoad() /* 39: */ { - this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "PlasmaGenerator.efficiency.tier."+this.mTier, (50 + ((this.mTier-5) * 25))); + this.mEfficiency =GregTech_API.sMachineFile.get(ConfigCategories.machineconfig, "PlasmaGenerator.efficiency.tier."+this.mTier, (10 + (this.mTier * 10))); } /* 43: */ diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java index 975089e6..aedeeac4 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java @@ -3,6 +3,7 @@ /* 3: */ import java.util.ArrayList; import java.util.Arrays; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; import gregtech.api.enums.Textures; @@ -362,6 +363,8 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { mProgresstime = 0; mMaxProgresstime = 0; mEfficiencyIncrease = 0; + if(mOutputFluids!=null&&mOutputFluids.length>0){ + GT_Mod.instance.achievements.issueAchivementHatchFluid(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), mOutputFluids[0]);} this.mEUStore=(int) aBaseMetaTileEntity.getStoredEU(); if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe(mInventory[1]); } diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java new file mode 100644 index 00000000..c8bd25d6 --- /dev/null +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java @@ -0,0 +1,257 @@ +package gregtech.common.tileentities.machines.multi; + +import java.util.ArrayList; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import forestry.core.fluids.Fluids; +import gregtech.GT_Mod; +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; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; + +public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBlockBase{ + /* 25: */ public GT_MetaTileEntity_HeatExchanger(int aID, String aName, String aNameRegional) + /* 26: */ { + /* 27: 25 */ super(aID, aName, aNameRegional); + /* 28: */ } + /* 29: */ + /* 30: */ public GT_MetaTileEntity_HeatExchanger(String aName) + /* 31: */ { + /* 32: 29 */ super(aName); + /* 33: */ } + /* 34: */ + /* 35: */ public String[] getDescription() + /* 36: */ { + /* 37: 34 */ return new String[] { "Controller Block for the Heat Exchanger", "Size: 3x3x4", "Controller (front middle at bottom)", "3x3x4 of Stable Titanium Casing (hollow, Min 24!)", "2 Titanium Pipe Casing Blocks inside the Hollow Casing", "1x Distillated Water Input (one of the Casings)","min 1 Steam Output (one of the Casings)", "1x Maintenance Hatch (one of the Casings)", "1x Hot Fluid Input (botton Center)", "1x Cold Fluid Output (top Center)" }; + /* 38: */ } + + public GT_MetaTileEntity_Hatch_Input mInputHotFluidHatch; + public GT_MetaTileEntity_Hatch_Output mOutputColdFluidHatch; + public boolean superheated=false; + /* 59: */ + /* 60: */ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) + /* 61: */ { + /* 62: 53 */ if (aSide == aFacing) { + /* 63: 53 */ return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[50], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER) }; + /* 64: */ } + /* 65: 54 */ return new ITexture[] { Textures.BlockIcons.CASING_BLOCKS[50] }; + /* 66: */ } + /* 67: */ + /* 68: */ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) + /* 69: */ { + /* 70: 59 */ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeBoiler.png"); + /* 71: */ } + /* 72: */ + /* 73: */ public boolean isCorrectMachinePart(ItemStack aStack) + /* 74: */ { + /* 75: 64 */ return true; + /* 76: */ } + /* 77: */ + /* 78: */ public boolean isFacingValid(byte aFacing) + /* 79: */ { + /* 80: 67 */ return aFacing > 1; + /* 81: */ } + /* 82: */ + /* 83: */ public boolean checkRecipe(ItemStack aStack) + /* 84: */ { + if(GT_ModHandler.isLava(mInputHotFluidHatch.getFluid())){ + int fluidAmount = mInputHotFluidHatch.getFluidAmount(); + if(fluidAmount >= 1000){superheated=true;}else{superheated=false;} + if(fluidAmount>2000){fluidAmount=2000;} + mInputHotFluidHatch.drain(fluidAmount, true); + mOutputColdFluidHatch.fill(FluidRegistry.getFluidStack("ic2pahoehoelava", fluidAmount), true); + + + this.mMaxProgresstime = 20; + this.mEUt = fluidAmount*2; + this.mEfficiencyIncrease = 80; + return true; + } + + if(mInputHotFluidHatch.getFluid().isFluidEqual(FluidRegistry.getFluidStack("ic2hotcoolant", 1))){ + int fluidAmount = mInputHotFluidHatch.getFluidAmount(); + if(fluidAmount >= 4000){superheated=true;}else{superheated=false;} + if(fluidAmount>8000){fluidAmount=8000;} + mInputHotFluidHatch.drain(fluidAmount, true); + mOutputColdFluidHatch.fill(FluidRegistry.getFluidStack("ic2coolant", fluidAmount), true); + + + this.mMaxProgresstime = 20; + this.mEUt = fluidAmount/2; + this.mEfficiencyIncrease = 20; + return true; + } + return false;} + /* 133: */ + /* 134: */ public boolean onRunningTick(ItemStack aStack) + /* 135: */ { + /* 136:115 */ if (this.mEUt > 0) + /* 137: */ {System.out.println("EU: "+mEUt+" Eff: "+mEfficiency); + /* 138:116 */ int tGeneratedEU = (int)(this.mEUt * 2L * this.mEfficiency / 10000L); + /* 139:117 */ if (tGeneratedEU > 0) { + /* 140:118 */ if (depleteInput(GT_ModHandler.getDistilledWater(((superheated ? tGeneratedEU/2 :tGeneratedEU) + 160) / 160))) { + if(superheated){ + addOutput(FluidRegistry.getFluidStack("ic2superheatedsteam", tGeneratedEU/2)); + }else{ + /* 141:119 */ addOutput(GT_ModHandler.getSteam(tGeneratedEU));} + /* 142: */ } else { + /* 143:121 */ explodeMultiblock(); + /* 144: */ } + /* 145: */ } + /* 146:124 */ return true; + /* 147: */ } + /* 148:126 */ return true; + /* 149: */ } + /* 150: */ private static boolean controller; + /* 151: */ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) + /* 152: */ { + /* 153:131 */ int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; + /* 154: */ + /* 155:133 */ int tCasingAmount = 0;int tFireboxAmount = 0;controller=false; + /* 156:135 */ for (int i = -1; i < 2; i++) { + /* 157:135 */ for (int j = -1; j < 2; j++) { + /* 158:136 */ if ((i != 0) || (j != 0)) + /* 159: */ { + /* 160:137 */ for (int k = 0; k <= 3; k++) { + /* 161:138 */ if (!addOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), 50)&&!addInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), 50)&&!addMaintenanceToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, k, zDir + j), 50)&&!ignoreController(aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j))) + /* 162: */ { + /* 163:139 */ if (aBaseMetaTileEntity.getBlockOffset(xDir + i, k, zDir + j) != getCasingBlock()) { + /* 164:139 */ return false; + /* 165: */ } + /* 166:140 */ if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, k, zDir + j) != getCasingMeta()) { + /* 167:140 */ return false; + /* 168: */ } + /* 169:141 */ tCasingAmount++; + /* 170: */ } + } + /* 171: */ }else{ + if(!addHotFluidInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 0, zDir + j), 50)){ + return false; + } + if(!addColdFluidOutputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, 3, zDir + j), 50)){ + return false; + } + /* 177:146 */ if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 1, zDir + j) != getPipeBlock()) { + /* 178:146 */ return false; + /* 179: */ } + /* 180:147 */ if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 1, zDir + j) != getPipeMeta()) { + /* 181:147 */ return false; + /* 182: */ } + + /* 177:146 */ if (aBaseMetaTileEntity.getBlockOffset(xDir + i, 2, zDir + j) != getPipeBlock()) { + /* 178:146 */ return false; + /* 179: */ } + /* 180:147 */ if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, 2, zDir + j) != getPipeMeta()) { + /* 181:147 */ return false; + /* 182: */ } + /* 172: */ } + /* 195: */ } + /* 196: */ } + /* 215:166 */ return (tCasingAmount >= 24); + /* 216: */ } + + public boolean ignoreController(Block tTileEntity){ + if(!controller&&tTileEntity == GregTech_API.sBlockMachines){return true;} + return false; + } + + public boolean addColdFluidOutputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; + mOutputColdFluidHatch = (GT_MetaTileEntity_Hatch_Output)aMetaTileEntity; + return true; + } + return false; + } + + public boolean addHotFluidInputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) return false; + IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) return false; + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { + ((GT_MetaTileEntity_Hatch)aMetaTileEntity).mMachineBlock = (byte)aBaseCasingIndex; + ((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity).mRecipeMap = getRecipeMap(); + mInputHotFluidHatch = (GT_MetaTileEntity_Hatch_Input)aMetaTileEntity; + return true; + } + return false; + } + + /* 26: */ public Block getCasingBlock() + /* 27: */ { + /* 28:22 */ return GregTech_API.sBlockCasings4; + /* 29: */ } + /* 30: */ + /* 31: */ public byte getCasingMeta() + /* 32: */ { + /* 33:23 */ return 2; + /* 34: */ } + /* 35: */ + /* 36: */ public byte getCasingTextureIndex() + /* 37: */ { + /* 38:24 */ return 50; + /* 39: */ } + /* 40: */ + /* 41: */ public Block getPipeBlock() + /* 42: */ { + /* 43:26 */ return GregTech_API.sBlockCasings2; + /* 44: */ } + /* 45: */ + /* 46: */ public byte getPipeMeta() + /* 47: */ { + /* 48:27 */ return 14; + /* 49: */ } + /* 217: */ + /* 218: */ public int getMaxEfficiency(ItemStack aStack) + /* 219: */ { + /* 220:171 */ return 10000; + /* 221: */ } + /* 222: */ + /* 223: */ public int getPollutionPerTick(ItemStack aStack) + /* 224: */ { + /* 225:176 */ return 10; + /* 226: */ } + /* 227: */ + /* 228: */ public int getDamageToComponent(ItemStack aStack) + /* 229: */ { + /* 230:181 */ return 0; + /* 231: */ } + /* 232: */ + /* 233: */ public int getAmountOfOutputs() + /* 234: */ { + /* 235:186 */ return 1; + /* 236: */ } + /* 237: */ + /* 238: */ public boolean explodesOnComponentBreak(ItemStack aStack) + /* 239: */ { + /* 240:191 */ return false; + /* 241: */ } + /* 242: */ + /* 21: */ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) + /* 22: */ { + /* 23:19 */ return new GT_MetaTileEntity_HeatExchanger(this.mName); + /* 24: */ } + } diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java index f3dad618..a5c90682 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java @@ -72,10 +72,4 @@ /* 72: */ { /* 73:34 */ return 8; /* 74: */ } -/* 75: */ } - - -/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar - * Qualified Name: gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeBoiler_Titanium - * JD-Core Version: 0.7.0.1 - */ \ No newline at end of file +/* 75: */ } \ No newline at end of file diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java index 1d5f18d9..dc9c9a76 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java @@ -1,6 +1,10 @@ package gregtech.common.tileentities.machines.multi; +import java.util.ArrayList; + +import net.minecraft.block.Block; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; @@ -16,57 +20,22 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gregtech.common.items.GT_MetaGenerated_Tool_01; -public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlockBase{ +public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlockBase{ public GT_MetaTileEntity_LargeTurbine(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} public GT_MetaTileEntity_LargeTurbine(String aName){super(aName);} - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; - } - - - public String[] getDescription() - { - return new String[] { - "Controller Block for the Large Turbine", - "Size: 3x3x4 (Hollow)", "Controller (front centered)", - "1x Input Hatch (side centered)", "1x Output Hatch(side centered)", - "1x Dynamo Hatch (back centered)", - "1x Maintenance Hatch (side centered)", - "Turbine Casings for the rest (24 at least!)" }; - } @Override public boolean isCorrectMachinePart(ItemStack aStack) { return getMaxEfficiency(aStack) > 0; } + protected int baseEff=0; + protected int optFlow=0; + protected int counter=0; @Override - public boolean checkRecipe(ItemStack aStack) { - if (depleteInput(GT_ModHandler.getSteam(1600L))) - { - this.mEUt = 1000; - this.mMaxProgresstime = 1; -// if (ItemList.Component_Turbine_Bronze.isStackEqual(aStack, true, true)) { -// this.mEfficiencyIncrease = (this.mMaxProgresstime * 10); -// } else if (ItemList.Component_Turbine_Steel.isStackEqual(aStack, true, true)) { -// this.mEfficiencyIncrease = (this.mMaxProgresstime * 20); -// } else if (ItemList.Component_Turbine_Magnalium.isStackEqual(aStack, true, true)) { -// this.mEfficiencyIncrease = (this.mMaxProgresstime * 50); -// } else if (ItemList.Component_Turbine_TungstenSteel.isStackEqual(aStack, true, true)) { -// this.mEfficiencyIncrease = (this.mMaxProgresstime * 15); -// } else if (ItemList.Component_Turbine_Carbon.isStackEqual(aStack, true, true)) { -// this.mEfficiencyIncrease = (this.mMaxProgresstime * 100); -// } else { - this.mEfficiencyIncrease = (this.mMaxProgresstime * 20); -// } - addOutput(GT_ModHandler.getDistilledWater(10L)); - return true; - } - return false; - } + public abstract boolean checkRecipe(ItemStack aStack); @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { @@ -102,17 +71,17 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock for (byte k = 0; k < 4; k = (byte)(k + 1)) { if (((i == 0) || (j == 0)) && ((k == 1) || (k == 2))) { - if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == GregTech_API.sBlockCasings4) + if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == getCasingBlock()) { - if (getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == 9) {} + if (getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) {} } else if (!addToMachineList(getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)))) { return false; } } - else if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == GregTech_API.sBlockCasings4) + else if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == getCasingBlock()) { - if (getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == 9) {} + if (getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide < 4 ? i : -k), tY + j, tZ + (tSide < 4 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) {} } else { return false; @@ -126,7 +95,7 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock if ((tTileEntity != null) && (tTileEntity.getMetaTileEntity() != null)) { if ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Dynamo)) { this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)tTileEntity.getMetaTileEntity()); - ((GT_MetaTileEntity_Hatch)tTileEntity.getMetaTileEntity()).mMachineBlock = (byte)46; + ((GT_MetaTileEntity_Hatch)tTileEntity.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex(); } else { return false; } @@ -139,23 +108,28 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock return true; } + public abstract Block getCasingBlock(); + + public abstract byte getCasingMeta(); + + public abstract byte getCasingTextureIndex(); + private boolean addToMachineList(IGregTechTileEntity tTileEntity){ - return ((addMaintenanceToMachineList(tTileEntity, 46)) || (addInputToMachineList(tTileEntity, 46)) || (addOutputToMachineList(tTileEntity, 46))); + return ((addMaintenanceToMachineList(tTileEntity, getCasingTextureIndex())) || (addInputToMachineList(tTileEntity, getCasingTextureIndex())) || (addOutputToMachineList(tTileEntity, getCasingTextureIndex()))); } @Override public int getDamageToComponent(ItemStack aStack) { - return 1;//GT_Utility.areStacksEqual(GT_ModHandler.getModItem("Railcraft","part.turbine.rotor", 1L, 32767), aStack) ? 2 : 1; + return 1; } - public int getMaxEfficiency(ItemStack aStack) { if (GT_Utility.isStackInvalid(aStack)) { return 0; } if (aStack.getItem() instanceof GT_MetaGenerated_Tool_01) { - return 10000; + return 10000; } return 0; } @@ -167,7 +141,4 @@ public class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_MultiBlock public int getAmountOfOutputs() {return 0;} @Override public boolean explodesOnComponentBreak(ItemStack aStack) {return true;} - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine(mName);} - } diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java new file mode 100644 index 00000000..abf8458a --- /dev/null +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java @@ -0,0 +1,92 @@ +package gregtech.common.tileentities.machines.multi; + +import java.util.ArrayList; +import java.util.Collection; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import gregtech.api.GregTech_API; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.api.util.GT_Utility; + +public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeTurbine{ + + public GT_MetaTileEntity_LargeTurbine_Gas(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} + public GT_MetaTileEntity_LargeTurbine_Gas(String aName){super(aName);} + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; + } + + + public String[] getDescription() + { + return new String[] { + "Controller Block for the Large Gas Turbine", + "Size: 3x3x4 (Hollow)", "Controller (front centered)", + "1x Input Hatch (side centered)", + "1x Dynamo Hatch (back centered)", + "1x Maintenance Hatch (side centered)", + "Turbine Casings for the rest (24 at least!)", + "Needs a Turbine Item (inside controller GUI)"}; + } + + @Override + public boolean checkRecipe(ItemStack aStack) { + ArrayList steams = getStoredFluids(); + if (steams.size()>0) + {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){ + counter = 0; + baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100); + optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50); + } + int tEU=0; + for(int i=0;i0&&depleteInput(new FluidStack(steams.get(i),optFlow/(fuelValue*2)))){ + tEU += optFlow/2;} + } + this.mEUt = baseEff*tEU/10000; + this.mMaxProgresstime = 1; + this.mEfficiencyIncrease = (this.mMaxProgresstime * 10); + if(mEUt==0){return false;} + return true; + } + return false; + } + + public int getFuelValue(FluidStack aLiquid) { + if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0; + FluidStack tLiquid; + Collection tRecipeList = GT_Recipe_Map.sTurbineFuels.mRecipeList; + if (tRecipeList != null) for (GT_Recipe tFuel : tRecipeList) if ((tLiquid = GT_Utility.getFluidForFilledItem(tFuel.getRepresentativeInput(0), true)) != null) if (aLiquid.isFluidEqual(tLiquid)) return tFuel.mSpecialValue; + return 0; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_Gas(mName);} + @Override + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + @Override + public byte getCasingMeta() { + return 9; + } + @Override + public byte getCasingTextureIndex() { + return 46; + } + + +} diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java new file mode 100644 index 00000000..c85e79f5 --- /dev/null +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java @@ -0,0 +1,89 @@ +package gregtech.common.tileentities.machines.multi; + +import java.util.ArrayList; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import gregtech.api.GregTech_API; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ModHandler; + +public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_LargeTurbine{ + + public GT_MetaTileEntity_LargeTurbine_HPSteam(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} + public GT_MetaTileEntity_LargeTurbine_HPSteam(String aName){super(aName);} + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; + } + + + public String[] getDescription() + { + return new String[] { + "Controller Block for the Large High Pressure Steam Turbine", + "Size: 3x3x4 (Hollow)", "Controller (front centered)", + "1x Input Hatch (side centered)", "1x Output Hatch(side centered)", + "1x Dynamo Hatch (back centered)", + "1x Maintenance Hatch (side centered)", + "Turbine Casings for the rest (24 at least!)", + "Needs a Turbine Item (inside controller GUI)" }; + } + + @Override + public boolean checkRecipe(ItemStack aStack) { + ArrayList steams = getStoredFluids(); + if (steams.size()>0) + {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){ + counter = 0; + baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100); + optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50); + } + int tEU=0; + int distOut=0; + for(int i=0;ioptFlow) {tEU = optFlow;} + float tEff = tEU/(optFlow); + this.mEUt = (int) (tEff*tEU*baseEff/10000); + this.mMaxProgresstime = 1; +// System.out.println("Eff: "+baseEff+" optFlow: "+optFlow+" tEff: "+tEff+" eut: "+mEUt+" out: "+distOut); + this.mEfficiencyIncrease = (this.mMaxProgresstime * 10); + if(mEUt==0){return false;} + addOutput(GT_ModHandler.getSteam(distOut)); + return true; + } + return false; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_HPSteam(mName);} + @Override + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + @Override + public byte getCasingMeta() { + return 9; + } + @Override + public byte getCasingTextureIndex() { + return 46; + } + + +} diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java new file mode 100644 index 00000000..5ddd0e90 --- /dev/null +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java @@ -0,0 +1,93 @@ +package gregtech.common.tileentities.machines.multi; + +import java.util.ArrayList; +import java.util.Collection; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import gregtech.api.GregTech_API; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.items.GT_MetaGenerated_Tool; +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 gregtech.api.util.GT_Recipe.GT_Recipe_Map; + +public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_LargeTurbine{ + + public GT_MetaTileEntity_LargeTurbine_Plasma(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} + public GT_MetaTileEntity_LargeTurbine_Plasma(String aName){super(aName);} + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; + } + + + public String[] getDescription() + { + return new String[] { + "Controller Block for the Large Plasma Generator", + "Size: 3x3x4 (Hollow)", "Controller (front centered)", + "1x Input Hatch (side centered)", + "1x Dynamo Hatch (back centered)", + "1x Maintenance Hatch (side centered)", + "Turbine Casings for the rest (24 at least!)", + "Needs a Turbine Item (inside controller GUI)" }; + } + + @Override + public boolean checkRecipe(ItemStack aStack) { + ArrayList steams = getStoredFluids(); + if (steams.size()>0) + {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){ + counter = 0; + baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100); + optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50); + optFlow *=10; + } + int tEU=0; + for(int i=0;i0&&depleteInput(new FluidStack(steams.get(i),optFlow/(fuelValue*2)))){ + tEU += optFlow/2;} + } + this.mEUt = baseEff*tEU/10000; + this.mMaxProgresstime = 1; + this.mEfficiencyIncrease = (this.mMaxProgresstime * 10); + if(mEUt==0){return false;} + return true; + } + return false; + } + + public int getFuelValue(FluidStack aLiquid) { + if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0; + FluidStack tLiquid; + Collection tRecipeList = GT_Recipe_Map.sPlasmaFuels.mRecipeList; + if (tRecipeList != null) for (GT_Recipe tFuel : tRecipeList) if ((tLiquid = GT_Utility.getFluidForFilledItem(tFuel.getRepresentativeInput(0), true)) != null) if (aLiquid.isFluidEqual(tLiquid)) return tFuel.mSpecialValue; + return 0; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_Plasma(mName);} + @Override + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + @Override + public byte getCasingMeta() { + return 9; + } + @Override + public byte getCasingTextureIndex() { + return 46; + } + + +} diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java new file mode 100644 index 00000000..2170cfa5 --- /dev/null +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java @@ -0,0 +1,89 @@ +package gregtech.common.tileentities.machines.multi; + +import java.util.ArrayList; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import gregtech.api.GregTech_API; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.items.GT_MetaGenerated_Tool; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ModHandler; + +public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_LargeTurbine{ + + public GT_MetaTileEntity_LargeTurbine_Steam(int aID, String aName, String aNameRegional){super(aID, aName, aNameRegional);} + public GT_MetaTileEntity_LargeTurbine_Steam(String aName){super(aName);} + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { + return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[1][aColorIndex+1], aFacing == aSide ? aActive ? new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE_ACTIVE5):new GT_RenderedTexture(Textures.BlockIcons.LARGETURBINE5) : Textures.BlockIcons.CASING_BLOCKS[57]}; + } + + + public String[] getDescription() + { + return new String[] { + "Controller Block for the Large Steam Turbine", + "Size: 3x3x4 (Hollow)", "Controller (front centered)", + "1x Input Hatch (side centered)", "1x Output Hatch(side centered)", + "1x Dynamo Hatch (back centered)", + "1x Maintenance Hatch (side centered)", + "Turbine Casings for the rest (24 at least!)", + "Needs a Turbine Item (inside controller GUI)" }; + } + + @Override + public boolean checkRecipe(ItemStack aStack) { + ArrayList steams = getStoredFluids(); + if (steams.size()>0) + {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){ + counter = 0; + baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100); + optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50); + } + int tEU=0; + int distOut=0; + for(int i=0;ioptFlow/2) {tEU = optFlow/2;} + float tEff = tEU/(optFlow/2); + this.mEUt = (int) (tEff*tEU*baseEff/10000); + this.mMaxProgresstime = 1; +// System.out.println("Eff: "+baseEff+" optFlow: "+optFlow+" tEff: "+tEff+" eut: "+mEUt+" out: "+distOut); + this.mEfficiencyIncrease = (this.mMaxProgresstime * 10); + if(mEUt==0){return false;} + addOutput(GT_ModHandler.getDistilledWater(distOut)); + return true; + } + return false; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_Steam(mName);} + @Override + public Block getCasingBlock() { + return GregTech_API.sBlockCasings4; + } + @Override + public byte getCasingMeta() { + return 9; + } + @Override + public byte getCasingTextureIndex() { + return 46; + } + + +} diff --git a/main/java/gregtech/loaders/load/GT_FuelLoader.java b/main/java/gregtech/loaders/load/GT_FuelLoader.java index 4d91afb4..1644f63f 100644 --- a/main/java/gregtech/loaders/load/GT_FuelLoader.java +++ b/main/java/gregtech/loaders/load/GT_FuelLoader.java @@ -29,7 +29,7 @@ /* 29: */ /* 30:23 */ GT_Values.RA.addFuel(GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 4), null, 4, 5); /* 31:24 */ GT_Values.RA.addFuel(new ItemStack(Items.experience_bottle, 1), null, 10, 5); -/* 32:25 */ GT_Values.RA.addFuel(new ItemStack(Items.ghast_tear, 1), null, 500, 5); +/* 32:25 */ GT_Values.RA.addFuel(new ItemStack(Items.ghast_tear, 1), null, 50, 5); /* 33:26 */ GT_Values.RA.addFuel(new ItemStack(Blocks.beacon, 1), null, Materials.NetherStar.mFuelPower * 2, Materials.NetherStar.mFuelType); /* 34: */ } /* 35: */ } diff --git a/main/java/gregtech/loaders/misc/GT_Achievements.java b/main/java/gregtech/loaders/misc/GT_Achievements.java index 96463f24..17c22794 100644 --- a/main/java/gregtech/loaders/misc/GT_Achievements.java +++ b/main/java/gregtech/loaders/misc/GT_Achievements.java @@ -139,8 +139,8 @@ public int adjY = 9; registerAchievement("magic", 10, 4, ItemList.MagicEnergyConverter_LV.get(1, new Object[] {}), "titan", false); registerAchievement("highmage", 10, 6, ItemList.MagicEnergyAbsorber_HV.get(1, new Object[] {}), "magic", false); registerAchievement("artificaldia", 11, 2, ItemList.IC2_Industrial_Diamond.get(1, new Object[] {}), "titan", false); - registerAchievement("muchsteam", 12, 1, ItemList.LargeTurbine.get(1, new Object[] {}), "titan", false); - registerAchievement("efficientsteam", 12, 3, ItemList.LargeTurbine.get(1, new Object[] {}), "muchsteam", false); + registerAchievement("muchsteam", 12, 1, ItemList.LargeSteamTurbine.get(1, new Object[] {}), "titan", false); + registerAchievement("efficientsteam", 12, 3, ItemList.LargeSteamTurbine.get(1, new Object[] {}), "muchsteam", false); registerAchievement("upgrade", 14, 0, ItemList.Casing_Coil_Kanthal.get(1, new Object[] {}), "titan", false); registerAchievement("tungsten", 16, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tungsten, 1L), "upgrade", false); @@ -261,18 +261,19 @@ public int adjY = 9; } public void issueAchivementHatchFluid(EntityPlayer player, FluidStack fluid){ + System.out.println("fluidAchievement "+fluid.getFluid().getUnlocalizedName()); if (player == null||fluid==null) { return; } - if(fluid.getFluid().getUnlocalizedName().equals("plasma.helium")){ + if(fluid.getFluid().getUnlocalizedName().equals("fluid.plasma.helium")){ issueAchievement(player, "fusion"); - }else if(fluid.getFluid().getUnlocalizedName().equals("molten.europium")){ + }else if(fluid.getFluid().getUnlocalizedName().equals("fluid.molten.europium")){ issueAchievement(player, "advancing"); - }else if(fluid.getFluid().getUnlocalizedName().equals("molten.americum")){ + }else if(fluid.getFluid().getUnlocalizedName().equals("fluid.molten.americium")){ issueAchievement(player, "tothelimit"); - }else if(fluid.getFluid().getUnlocalizedName().equals("molten.neutronium")){ + }else if(fluid.getFluid().getUnlocalizedName().equals("fluid.molten.neutronium")){ issueAchievement(player, "denseaspossible"); - }else if(fluid.getFluid().getUnlocalizedName().equals("plasma.nitrogen")){ + }else if(fluid.getFluid().getUnlocalizedName().equals("fluid.plasma.nitrogen")){ issueAchievement(player, "higherefficency"); } } @@ -367,6 +368,12 @@ public int adjY = 9; issueAchievement(player, "alienpower"); }else if(stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.replicator.tier.")){ issueAchievement(player, "replication"); + }else if(stack.getUnlocalizedName().equals("gt.blockmachines.basicgenerator.plasmagenerator.tier.07")){ + issueAchievement(player, "fullefficiency"); + }else if(stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.largeturbine")){ + issueAchievement(player, "muchsteam"); + }else if(stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.largehpturbine")){ + issueAchievement(player, "efficientsteam"); } }else if(stack.getUnlocalizedName().equals("gt.Thoriumcell")){ issueAchievement(player, "newfuel"); @@ -379,7 +386,6 @@ public int adjY = 9; }else if(stack.getUnlocalizedName().equals("gt.blockcasings.15")){ issueAchievement(player, "conducting"); } - } @SubscribeEvent @@ -457,6 +463,8 @@ public int adjY = 9; issueAchievement(player, "manipulation"); }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32729")){ issueAchievement(player, "filterregulate"); + }else if(stack.getUnlocalizedName().equals("gt.metaitem.01.32605")){ + issueAchievement(player, "whatnow"); } }else if(stack.getUnlocalizedName().equals("ic2.itemPartCircuitAdv")){ issueAchievement(player, "stepforward"); diff --git a/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java index 301a7940..6b83f97b 100644 --- a/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java +++ b/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -678,23 +678,29 @@ public class GT_MachineRecipeLoader GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricIron, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.MeteoricSteel, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.DarkAsh, 1L), 500, 120, 1200); GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.AnnealedCopper, 1L), GT_Values.NI, 500, 120, 1200); GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Copper, 1L), GT_Values.NI, Materials.Oxygen.getGas(1000L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.AnnealedCopper, 1L), GT_Values.NI, 500, 120, 1200); + + GT_Values.RA.addFusionReactorRecipe(Materials.Lithium.getMolten(9), Materials.Tungsten.getMolten(9), Materials.Iridium.getMolten(9), 32, 32768, 150000000); + GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Tritium.getGas(125), Materials.Helium.getPlasma(125), 16, 4096, 40000000); //Mark 1 Cheap // + GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Helium_3.getGas(125), Materials.Helium.getPlasma(125), 16, 2048, 60000000); //Mark 1 Expensive // + GT_Values.RA.addCannerRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Lithium, 1L), GT_ModHandler.getIC2Item("reactorLithiumCell", 1) , null, 16, 64); + GT_Values.RA.addFluidExtractionRecipe(GT_ModHandler.getIC2Item("TritiumCell", 1), GT_ModHandler.getIC2Item("fuelRod", 1), Materials.Tritium.getGas(9), 10000, 16, 64); + GT_Values.RA.addFusionReactorRecipe(Materials.Carbon.getMolten(144), Materials.Helium_3.getGas(144), Materials.Oxygen.getPlasma(144), 20, 4096, 80000000); //Mark 1 Expensive // + GT_Values.RA.addFusionReactorRecipe(Materials.Aluminium.getMolten(144), Materials.Lithium.getMolten(144), Materials.Sulfur.getPlasma(144), 20, 10240, 240000000); //Mark 2 Cheap + GT_Values.RA.addFusionReactorRecipe(Materials.Beryllium.getMolten(9), Materials.Deuterium.getGas(375), Materials.Nitrogen.getPlasma(125), 16, 16384, 180000000); //Mark 2 Expensive // + GT_Values.RA.addFusionReactorRecipe(Materials.Silicon.getMolten(9), Materials.Magnesium.getMolten(9), Materials.Iron.getPlasma(9), 20, 8192, 360000000); //Mark 3 Cheap // + GT_Values.RA.addFusionReactorRecipe(Materials.Potassium.getMolten(144), Materials.Fluorine.getGas(144), Materials.Nickel.getPlasma(144), 20, 32768, 480000000); //Mark 3 Expensive // + GT_Values.RA.addFusionReactorRecipe(Materials.Beryllium.getMolten(9), Materials.Tungsten.getMolten(9), Materials.Platinum.getMolten(9), 32, 32768, 300000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Neodymium.getMolten(9), Materials.Hydrogen.getGas(27), Materials.Europium.getMolten(9), 64, 24576, 150000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Lutetium.getMolten(9), Materials.Chrome.getMolten(9), Materials.Americium.getMolten(9), 96, 49152, 200000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Plutonium.getMolten(9), Materials.Thorium.getMolten(9), Materials.Naquadah.getMolten(9), 64, 32768, 300000000); // + GT_Values.RA.addFusionReactorRecipe(Materials.Americium.getMolten(16), Materials.Naquadria.getMolten(16), Materials.Neutronium.getMolten(1), 1200, 98304, 600000000); // + + + -// GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Tritium.getGas(125), FluidRegistry.getFluidStack("heliumplasma", 125), 16, 4096, 40000000); -// GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Helium_3.getGas(125), FluidRegistry.getFluidStack("heliumplasma", 125), 16, 2048, 60000000); -// GT_Values.RA.addFusionReactorRecipe(Materials.Lithium.getMolten(9), Materials.Tungsten.getMolten(9), Materials.Iridium.getMolten(9), 32, 32768, 150000000); - GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Tritium.getGas(125), Materials.Helium.getPlasma(125), 16, 4096, 40000000); - GT_Values.RA.addFusionReactorRecipe(Materials.Deuterium.getGas(125), Materials.Helium_3.getGas(125), Materials.Helium.getPlasma(125), 16, 2048, 60000000); - GT_Values.RA.addFusionReactorRecipe(Materials.Beryllium.getMolten(9), Materials.Tungsten.getMolten(9), Materials.Platinum.getMolten(9), 32, 32768, 300000000); - GT_Values.RA.addFusionReactorRecipe(Materials.Neodymium.getMolten(9), Materials.Hydrogen.getGas(27), Materials.Europium.getMolten(9), 64, 24576, 150000000); - GT_Values.RA.addFusionReactorRecipe(Materials.Lutetium.getMolten(9), Materials.Chrome.getMolten(9), Materials.Americium.getMolten(9), 96, 49152, 200000000); - GT_Values.RA.addFusionReactorRecipe(Materials.Plutonium.getMolten(9), Materials.Thorium.getMolten(9), Materials.Naquadah.getMolten(9), 64, 32768, 300000000); - GT_Values.RA.addFusionReactorRecipe(Materials.Americium.getMolten(16), Materials.Naquadria.getMolten(16), Materials.Neutronium.getMolten(1), 1200, 98304, 600000000); - GT_Values.RA.addFusionReactorRecipe(Materials.Beryllium.getMolten(9), Materials.Deuterium.getGas(375), Materials.Nitrogen.getPlasma(125), 16, 16384, 180000000); GT_ModHandler.removeRecipeByOutput(ItemList.IC2_Fertilizer.get(1L, new Object[0])); GT_Values.RA.addImplosionRecipe(ItemList.IC2_Compressed_Coal_Chunk.get(1L, new Object[0]), 8, ItemList.IC2_Industrial_Diamond.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 4L)); -// GT_Values.RA.addDistillationRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 16L), 32, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fuel, 16L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.SulfuricAcid, 16L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Glyceryl, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Methane, 15L), 4000, 64); -// GT_Values.RA.addDistillationRecipe(GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Biomass, 3L), 0, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Ethanol, 1L), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Water, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), ItemList.IC2_Fertilizer.get(1L, new Object[0]), 500, 64); GT_Values.RA.addDistillationTowerRecipe(Materials.Oil.getFluid(64L), new FluidStack[]{Materials.Lubricant.getFluid(16L) , Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)},null, 16, 64); GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilLight, 128), new FluidStack[]{Materials.Lubricant.getFluid(16L) , Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, null, 16, 64); GT_Values.RA.addDistillationTowerRecipe(new FluidStack(ItemList.sOilMedium, 64), new FluidStack[]{Materials.Lubricant.getFluid(16L) , Materials.Fuel.getFluid(64L), Materials.SulfuricAcid.getFluid(64L), Materials.Glyceryl.getFluid(4L), Materials.Methane.getGas(60L)}, null, 16, 64); @@ -1064,7 +1070,9 @@ public class GT_MachineRecipeLoader GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1L), GT_Values.NI, GT_Values.NF, Materials.Helium.getGas(120L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Platinum, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 625, 625, 9000, 0, 0, 0 }, 320, 20); GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Redstone, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Sulfur, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Coal, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1L), GT_Values.NI, GT_Values.NI, new int[] { 5625, 9900, 5625, 625, 0, 0 }, 160, 20); GT_Values.RA.addCentrifugeRecipe(new ItemStack(Blocks.soul_sand, 1), GT_Values.NI, GT_Values.NF, Materials.Oil.getFluid(80L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Saltpeter, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Coal, 1L), new ItemStack(Blocks.sand, 1), GT_Values.NI, GT_Values.NI, GT_Values.NI, new int[] { 8000, 2000, 9000, 0, 0, 0 }, 200, 80); - GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Lava.getFluid(100L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tantalum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), new int[] { 2000, 1000, 250, 250, 250, 125 }, 40, 80); + GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI, Materials.Lava.getFluid(100L), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tantalum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), new int[] { 2000, 1000, 250, 250, 250, 125 }, 80, 80); + GT_Values.RA.addCentrifugeRecipe(GT_Values.NI, GT_Values.NI,FluidRegistry.getFluidStack("ic2pahoehoelava", 100), GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Gold, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Silver, 1L), GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Tantalum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tungsten, 1L), new int[] { 2000, 1000, 250, 250, 250, 125 }, 40, 80); + GT_Values.RA.addCentrifugeRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.RareEarth, 1L), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Neodymium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Yttrium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lanthanum, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cerium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Cadmium, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Caesium, 1L), new int[] { 2500, 2500, 2500, 2500, 2500, 2500 }, 64, 20); GT_Values.RA.addCentrifugeRecipe(GT_ModHandler.getModItem("appliedenergistics2", "item.ItemMultiMaterial", 1L, 45), GT_Values.NI, GT_Values.NF, GT_Values.NF, GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.BasalticMineralSand, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Olivine, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Obsidian, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Basalt, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Flint, 1L), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.RareEarth, 1L), new int[] { 2000, 2000, 2000, 2000, 2000, 2000 }, 64, 20); if (GregTech_API.sThaumcraftCompat != null) diff --git a/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index d5ea52cf..fd66af59 100644 --- a/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -202,7 +202,9 @@ import ic2.core.item.ItemRadioactive; /* 154:155 */ GT_Mod.gregtechproxy.addFluid("Deuterium", "Deuterium", Materials.Deuterium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Deuterium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); /* 155:156 */ GT_Mod.gregtechproxy.addFluid("Tritium", "Tritium", Materials.Tritium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Tritium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); /* 156:157 */ GT_Mod.gregtechproxy.addFluid("Helium", "Helium", Materials.Helium, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); -/* 157:158 */ GT_Mod.gregtechproxy.addFluid("Helium-3", "Helium-3", Materials.Helium_3, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium_3, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); +/* 157:158 */ GT_Mod.gregtechproxy.addFluid("Fluorine", "Fluorine", Materials.Fluorine, 2, 53, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Fluorine, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); +///* 157:158 */ Materials.Lithium.mStandardMoltenFluid = new Fluid("lithium"); + GT_Mod.gregtechproxy.addFluid("Helium-3", "Helium-3", Materials.Helium_3, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium_3, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); /* 158:159 */ GT_Mod.gregtechproxy.addFluid("Methane", "Methane", Materials.Methane, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Methane, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); /* 159:160 */ GT_Mod.gregtechproxy.addFluid("Nitrogen", "Nitrogen", Materials.Nitrogen, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Nitrogen, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); /* 160:161 */ GT_Mod.gregtechproxy.addFluid("NitrogenDioxide", "Nitrogen Dioxide", Materials.NitrogenDioxide, 2, 295, GT_OreDictUnificator.get(OrePrefixes.cell, Materials.NitrogenDioxide, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000); diff --git a/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index 58285338..dae44588 100644 --- a/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -968,13 +968,13 @@ import net.minecraftforge.oredict.OreDictionary; GT_ModHandler.addCraftingRecipe(ItemList.FusionComputer_ZPMV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CBC", "FMF", "CBC", 'M', ItemList.FusionComputer_LuV, 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_IV, 'B', OrePrefixes.plate.get(Materials.Europium) }); GT_ModHandler.addCraftingRecipe(ItemList.FusionComputer_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CBC", "FMF", "CBC", 'M', ItemList.FusionComputer_ZPMV, 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Field_Generator_IV, 'B', OrePrefixes.plate.get(Materials.Americium) }); - ItemList.Generator_Plasma_IV.set(new GT_MetaTileEntity_PlasmaGenerator(1196, "basicgenerator.plasmagenerator.tier.05", "Plasma Generator Mark I",5).getStackForm(1L)); - ItemList.Generator_Plasma_LuV.set(new GT_MetaTileEntity_PlasmaGenerator(1197, "basicgenerator.plasmagenerator.tier.06", "Plasma Generator Mark II",6).getStackForm(1L)); - ItemList.Generator_Plasma_ZPMV.set(new GT_MetaTileEntity_PlasmaGenerator(1198, "basicgenerator.plasmagenerator.tier.07", "Plasma Generator Mark III",7).getStackForm(1L)); + ItemList.Generator_Plasma_IV.set(new GT_MetaTileEntity_PlasmaGenerator(1196, "basicgenerator.plasmagenerator.tier.05", "Plasma Generator Mark I",4).getStackForm(1L)); + ItemList.Generator_Plasma_LuV.set(new GT_MetaTileEntity_PlasmaGenerator(1197, "basicgenerator.plasmagenerator.tier.06", "Plasma Generator Mark II",5).getStackForm(1L)); + ItemList.Generator_Plasma_ZPMV.set(new GT_MetaTileEntity_PlasmaGenerator(1198, "basicgenerator.plasmagenerator.tier.07", "Plasma Generator Mark III",6).getStackForm(1L)); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('F'), ItemList.Field_Generator_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Uranium235) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Plutonium241) }); - GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_ZPMV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_MAX, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('U'), OrePrefixes.stick.get(Materials.NaquadahEnriched) }); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_LuV, Character.valueOf('F'), ItemList.Field_Generator_HV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.cableGt04.get(Materials.Tungsten), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Plutonium241) }); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_ZPM, Character.valueOf('F'), ItemList.Field_Generator_EV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Europium) }); + GT_ModHandler.addCraftingRecipe(ItemList.Generator_Plasma_ZPMV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "UCU", "FMF", "WCW", Character.valueOf('M'), ItemList.Hull_UV, Character.valueOf('F'), ItemList.Field_Generator_IV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('W'), OrePrefixes.wireGt04.get(Materials.Superconductor), Character.valueOf('U'), OrePrefixes.stick.get(Materials.Americium) }); ItemList.Processing_Array.set(new GT_MetaTileEntity_ProcessingArray(1199,"multimachine.processingarray","Processing Array").getStackForm(1L)); GT_ModHandler.addCraftingRecipe(ItemList.Processing_Array.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Robot_Arm_EV, 'T', ItemList.Energy_LapotronicOrb }); @@ -982,7 +982,16 @@ import net.minecraftforge.oredict.OreDictionary; ItemList.Distillation_Tower.set(new GT_MetaTileEntity_DistillationTower(1126, "multimachine.distillationtower", "Distillation Tower").getStackForm(1L)); GT_ModHandler.addCraftingRecipe(ItemList.Distillation_Tower.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CBC", "FMF", "CBC", 'M', ItemList.Hull_EV, 'B', OrePrefixes.pipeLarge.get(Materials.StainlessSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'F', ItemList.Electric_Pump_EV}); - ItemList.LargeTurbine.set(new GT_MetaTileEntity_LargeTurbine(1131, "multimachine.largeturbine", "Large Turbine").getStackForm(1L)); + 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.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)}); + GT_ModHandler.addCraftingRecipe(ItemList.LargeGasTurbine.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_EV, 'B', OrePrefixes.pipeLarge.get(Materials.Titanium), 'C', OrePrefixes.circuit.get(Materials.Elite), 'P', OrePrefixes.gearGt.get(Materials.Titanium)}); + GT_ModHandler.addCraftingRecipe(ItemList.LargeHPSteamTurbine.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_IV, 'B', OrePrefixes.pipeLarge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'P', OrePrefixes.gearGt.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(ItemList.LargePlasmaTurbine.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_UV, 'B', OrePrefixes.pipeHuge.get(Materials.TungstenSteel), 'C', OrePrefixes.circuit.get(Materials.Master), 'P', OrePrefixes.gearGt.get(Materials.TungstenSteel)}); + ItemList.Pump_LV.set(new GT_MetaTileEntity_Pump(1140, "basicmachine.pump.tier.01", "Basic Pump",1).getStackForm(1L)); ItemList.Pump_MV.set(new GT_MetaTileEntity_Pump(1141, "basicmachine.pump.tier.02", "Advanced Pump",2).getStackForm(1L)); @@ -1011,6 +1020,8 @@ import net.minecraftforge.oredict.OreDictionary; GT_ModHandler.addCraftingRecipe(ItemList.MobRep_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_EV, 'E', ItemList.Emitter_EV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Data)}); GT_ModHandler.addCraftingRecipe(ItemList.MobRep_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "EEE", " M ", "CCC", 'M', ItemList.Hull_IV, 'E', ItemList.Emitter_IV.get(1L, new Object[0]), 'C', OrePrefixes.circuit.get(Materials.Elite)}); + ItemList.Machine_Multi_HeatExchanger.set(new GT_MetaTileEntity_HeatExchanger(1154, "multimachine.heatexchanger", "Large Heat Exchanger").getStackForm(1L)); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_Multi_HeatExchanger.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "WCW", "CMC", "WCW", Character.valueOf('M'), ItemList.Casing_Pipe_Titanium, Character.valueOf('C'), OrePrefixes.pipeMedium.get(Materials.Titanium), Character.valueOf('W'), ItemList.Electric_Pump_EV}); } /* 981: */ /* 982: */ private static void run4() diff --git a/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png b/main/resources/assets/gregtech/textures/blocks/fluids/fluid.fluorine.png new file mode 100644 index 0000000000000000000000000000000000000000..6247837ed4373fc768c6eb6eac4a98bd2d169c58 GIT binary patch literal 12997 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 delta 19 acmZpWXpq>D!@{O;{>vBluFXX(ee3{BL%y{W;-5;PJdx@v7EBie*Q9cuPtewi$Jl3l$ed=YcT%A`MrggFj)iZU%Z&3!JlYtImP<&~vD&n5_B3l~Y-~)N#=(4e zy8MsB4C@)^?=v*0`RUoocz6x@xLPFx7xqrM{P}-`qJx%Fq cU7L&mdKI;Vst0Q}Qt5&!@I literal 0 HcmV?d00001