diff options
author | Detrav <witalyezep@gmail.com> | 2016-10-08 13:13:22 +0300 |
---|---|---|
committer | Detrav <witalyezep@gmail.com> | 2016-10-08 13:13:22 +0300 |
commit | aa0dd303d62e07d7e85d4968c99d690ece462990 (patch) | |
tree | e4f57f9f56dafe6126b7499a4dd975a52f5acb74 /src/main | |
parent | 4de7488fccd683d09060e92216d1d11e87430450 (diff) | |
download | GT5-Unofficial-aa0dd303d62e07d7e85d4968c99d690ece462990.tar.gz GT5-Unofficial-aa0dd303d62e07d7e85d4968c99d690ece462990.tar.bz2 GT5-Unofficial-aa0dd303d62e07d7e85d4968c99d690ece462990.zip |
Added pollution to scanner
Diffstat (limited to 'src/main')
3 files changed, 68 insertions, 11 deletions
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java index 977ac9bc9a..e9af5dfce2 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java @@ -6,6 +6,7 @@ import com.detrav.net.DetravProPickPacket00; import gregtech.api.GregTech_API; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_Utility; import gregtech.common.blocks.GT_TileEntity_Ores; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; @@ -36,9 +37,8 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi //Проверяем если нажат шифт if (aPlayer.isSneaking()) { data++; - if(data>3) data = 0; - switch (data) - { + if (data > 3) data = 0; + switch (data) { case 0: aPlayer.addChatMessage(new ChatComponentText("Set Mode: Ore, Any Rock Block")); break; @@ -55,7 +55,7 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi aPlayer.addChatMessage(new ChatComponentText("Set Mode: ERROR")); break; } - DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, (long)data); + DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, (long) data); return super.onItemRightClick(aItem, aStack, aWorld, aPlayer); } @@ -75,7 +75,7 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi size = size - 1; //c.gene DetravProPickPacket00 packet = new DetravProPickPacket00(); - packet.ptype = (int)data; + packet.ptype = (int) data; packet.chunkX = cX; packet.chunkZ = cZ; packet.size = size; @@ -102,12 +102,21 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi case 2: FluidStack fStack = getUndergroundOil(aWorld, c.xPosition * 16 + x, c.zPosition * 16 + z); if (fStack.amount > 10000) { - packet.addBlock(c.xPosition * 16 + x, 2, c.zPosition * 16 + z, (short) (fStack.amount/5000)); + packet.addBlock(c.xPosition * 16 + x, 2, c.zPosition * 16 + z, (short) (fStack.amount / 5000)); packet.addBlock(c.xPosition * 16 + x, 1, c.zPosition * 16 + z, (short) fStack.getFluidID()); } break; + case 3: + float polution = (float) getPolution(aWorld, c.xPosition * 16 + x, c.zPosition * 16 + z); + polution /= 2000000; + polution *= -0xFF; + if (polution > 0xFF) + polution = 0xFF; + polution = 0xFF - polution; + packet.addBlock(c.xPosition * 16 + x, 1, c.zPosition * 16 + z, (short) polution); + break; } - if(data > 1 ) break;; + if (data > 1) break; } } } @@ -132,11 +141,17 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi long data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack); if (data < 2) return super.onItemUse(aItem, aStack, aPlayer, aWorld, aX, aY, aZ, aSide, hitX, hitY, hitZ); + if (data < 3) + if (!aWorld.isRemote) { + FluidStack fStack = getUndergroundOil(aWorld, aX, aZ); + addChatMassageByValue(aPlayer, fStack.amount / 5000, fStack.getLocalizedName()); + if (!aPlayer.capabilities.isCreativeMode) + ((DetravMetaGeneratedTool01) aItem).doDamage(aStack, this.mCosts); + return true; + } if (!aWorld.isRemote) { - FluidStack fStack = getUndergroundOil(aWorld,aX,aZ); - addChatMassageByValue(aPlayer,fStack.amount/5000,fStack.getLocalizedName()); - if (!aPlayer.capabilities.isCreativeMode) - ((DetravMetaGeneratedTool01)aItem).doDamage(aStack, this.mCosts); + int polution = getPolution(aWorld, aX, aZ); + addChatMassageByValue(aPlayer, polution, "Pollution"); } return true; } diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java index 90655483cd..e1906fc5a3 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java @@ -172,4 +172,16 @@ public class BehaviourDetravToolProPick extends Behaviour_None { return new FluidStack(tFluid, tAmount); } + + public static int getPolution(World aWorld, int aX, int aZ) + { + ChunkPosition tPos = new ChunkPosition(aX / 16, 1, aZ / 16); + if(GT_Proxy.chunkData.containsKey(tPos)) { + int[] tInts = (int[])GT_Proxy.chunkData.get(tPos); + if(tInts.length > 1 && tInts[1] > 0) { + return tInts[1]; + } + } + return 0; + } }
\ No newline at end of file diff --git a/src/main/java/com/detrav/net/DetravProPickPacket00.java b/src/main/java/com/detrav/net/DetravProPickPacket00.java index a46e9d9f4d..07fcb0f64c 100644 --- a/src/main/java/com/detrav/net/DetravProPickPacket00.java +++ b/src/main/java/com/detrav/net/DetravProPickPacket00.java @@ -237,10 +237,40 @@ public class DetravProPickPacket00 extends DetravPacket { } } break; + case 3: + ores.put("Pollution", (0xFF << 24) + ((0 & 0xFF) << 16) + ((0 & 0xFF) << 8) + ((0 & 0xFF))); + for (int i = 0; i < wh; i++) + for (int j = 0; j < wh; j++) { + if (map[i][j] == null) { + raster.setSample(i, j, 0, 255); + raster.setSample(i, j, 1, 255); + raster.setSample(i, j, 2, 255); + raster.setSample(i, j, 3, 255); + } else { + for (short meta : map[i][j].values()) { + raster.setSample(i, j, 0, meta); + raster.setSample(i, j, 1, meta); + raster.setSample(i, j, 2, meta); + raster.setSample(i, j, 3, 255); + } + } + if (playerI == i || playerJ == j) { + raster.setSample(i, j, 0, (raster.getSample(i, j, 0) + 255) / 2); + raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2); + raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2); + } + if ((i - 15) % 16 == 0 || (j - 15) % 16 == 0) { + raster.setSample(i, j, 0, raster.getSample(i, j, 0) / 2); + raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2); + raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2); + } + } + break; default: DetravScannerMod.proxy.sendPlayerExeption("Not been realized YET!"); break; } + if(exception > 0) DetravScannerMod.proxy.sendPlayerExeption("null matertial exception: " + exception); /*try { File outputfile = new File("saved.png"); |