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/java/gregtech/common/covers | |
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/java/gregtech/common/covers')
-rw-r--r-- | main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java | 120 |
1 files changed, 120 insertions, 0 deletions
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: */ } + +} |