diff options
| author | Blood-Asp <Blood@Asp> | 2015-05-25 23:04:14 +0200 |
|---|---|---|
| committer | Blood-Asp <Blood@Asp> | 2015-05-25 23:04:14 +0200 |
| commit | adb4a5eef6c1abf5f2ce68d133d7f54c16939442 (patch) | |
| tree | a9304e34720072cbcf3a59764599f85d50ce6712 /main | |
| parent | a102e63891d2af3452dc9b25d9fd97bc266582b7 (diff) | |
| download | GT5-Unofficial-adb4a5eef6c1abf5f2ce68d133d7f54c16939442.tar.gz GT5-Unofficial-adb4a5eef6c1abf5f2ce68d133d7f54c16939442.tar.bz2 GT5-Unofficial-adb4a5eef6c1abf5f2ce68d133d7f54c16939442.zip | |
Update 5.08.17
Large Turbines, Heat exchanger, player detector
Diffstat (limited to 'main')
27 files changed, 943 insertions, 114 deletions
diff --git a/main/java/gregtech/api/enums/Element.java b/main/java/gregtech/api/enums/Element.java index 8e56ccaa37..b9ff795320 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 1bb7c9ec6a..2085071249 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 4c7057ee9d..c69392ca61 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 d4e13ad232..b574d90f63 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 48232b88f0..cee5bb5689 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 2bcb4ec154..a89db1ceda 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 0000000000..20fbf385f8 --- /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 2923569beb..638236dd20 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 6bf553a05c..7e724d3d9e 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<EntityEnderCrystal> 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]; + |
