diff options
| author | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2018-06-13 21:45:02 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-06-13 21:45:02 +0200 |
| commit | 06e7190a4566e9301702d7d739222c6a7dd772ee (patch) | |
| tree | 4562b3560db7ac094c167410a7ffd8d713180daf /src/main/java/com/detrav/items/behaviours | |
| parent | 52ac3ff9eb405168b7a66bdc20e99e1f2bc152e0 (diff) | |
| download | GT5-Unofficial-06e7190a4566e9301702d7d739222c6a7dd772ee.tar.gz GT5-Unofficial-06e7190a4566e9301702d7d739222c6a7dd772ee.tar.bz2 GT5-Unofficial-06e7190a4566e9301702d7d739222c6a7dd772ee.zip | |
Simple scanners (#7)
* +added simple scanners
+added UHV Electric Prospector's Scanner
+removed unnecessary classes
* disabled debug build
* Update build.properties
Diffstat (limited to 'src/main/java/com/detrav/items/behaviours')
| -rw-r--r-- | src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java | 5 | ||||
| -rw-r--r-- | src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java | 67 |
2 files changed, 58 insertions, 14 deletions
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java index 3a588aa74f..74234eca0b 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java @@ -2,9 +2,8 @@ package com.detrav.items.behaviours; import java.util.ArrayList; import java.util.List; -import java.util.Random; +import java.util.SplittableRandom; -import com.detrav.DetravScannerMod; import com.detrav.items.DetravMetaGeneratedTool01; import com.detrav.net.DetravNetwork; import com.detrav.net.DetravProPickPacket00; @@ -195,7 +194,7 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi else { //if (aWorld.getBlock(aX, aY, aZ).getMaterial() == Material.rock || aWorld.getBlock(aX, aY, aZ) == GregTech_API.sBlockOres1) { if (!aWorld.isRemote) { - processOreProspecting((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld.getChunkFromBlockCoords(aX, aZ), aWorld.getTileEntity(aX, aY, aZ), GT_OreDictUnificator.getAssociation(new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))), new Random(aWorld.getSeed() + 3547 * aX + 1327 * aZ + 9973 * aY), 1000); + processOreProspecting((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld.getChunkFromBlockCoords(aX, aZ), aWorld.getTileEntity(aX, aY, aZ), GT_OreDictUnificator.getAssociation(new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))), new SplittableRandom(), 1000); return true; } 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 5dd8ddd55d..ffd8122380 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java @@ -2,7 +2,9 @@ package com.detrav.items.behaviours; import java.util.HashMap; import java.util.Random; +import java.util.SplittableRandom; +import com.detrav.DetravScannerMod; import com.detrav.items.DetravMetaGeneratedTool01; import gregtech.api.GregTech_API; @@ -24,6 +26,7 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.fluids.FluidStack; @@ -47,22 +50,61 @@ public class BehaviourDetravToolProPick extends Behaviour_None { public BehaviourDetravToolProPick(int aCosts) { mCosts = aCosts; } - + public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - + + SplittableRandom aRandom =new SplittableRandom(); + int chance = ((1+aStack.getItemDamage())*7) > 100 ? 100 :(1+aStack.getItemDamage())*7; + if (aWorld.isRemote) + return false; + if(aWorld.getBlock(aX,aY,aZ) == Blocks.bedrock) { - if (!aWorld.isRemote) { + if (!aWorld.isRemote && aRandom.nextInt(100) < chance) { FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1); - addChatMassageByValue(aPlayer,fStack.amount/5000,fStack.getLocalizedName()); + addChatMassageByValue(aPlayer,fStack.amount/2,"a Fluid");//fStack.getLocalizedName()); + /*boolean fluid = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1)!=null &>_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1).getFluid()!=null; + if (fluid) + aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN+"You found some liquid.")); + else + aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED+"You found no liquid."));*/ if (!aPlayer.capabilities.isCreativeMode) ((DetravMetaGeneratedTool01)aItem).doDamage(aStack, this.mCosts); } return true; } - if (aWorld.getBlock(aX, aY, aZ).getMaterial() == Material.rock || aWorld.getBlock(aX, aY, aZ) == GregTech_API.sBlockOres1) { + if (aWorld.getBlock(aX, aY, aZ).getMaterial() == Material.rock || aWorld.getBlock(aX, aY, aZ).getMaterial() == Material.ground || aWorld.getBlock(aX, aY, aZ) == GregTech_API.sBlockOres1) { if (!aWorld.isRemote) { - processOreProspecting((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld.getChunkFromBlockCoords(aX, aZ), aWorld.getTileEntity(aX, aY, aZ),GT_OreDictUnificator.getAssociation(new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))), new Random(aWorld.getSeed() + 3547 * aX + 1327 * aZ + 9973 * aY),40); + int bX = aX; + int bZ = aZ; + + int chunks = (((DetravMetaGeneratedTool01)aItem).getHarvestLevel(aStack, "")+(aStack.getItemDamage()/4)); + int half = chunks/2; + + aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD+"Start of Prospectoring")); + for (int x = -half; x<half;++x) + for (int z = -half; z<half;++z) { + aX=aX+(x*16); + aZ=aZ+(z*16); + if (DetravScannerMod.DEBUGBUILD) + aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW+"Chunk at "+ aX +"|"+aZ+" to "+(aX+16)+"|"+(aZ+16))); + processOreProspecting((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld.getChunkFromBlockCoords(aX, aZ), aWorld.getTileEntity(aX, aY, aZ),GT_OreDictUnificator.getAssociation(new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))), aRandom, chance); + } + + /*for (byte b = 0; b<chunks;++b) { + aX=aX+(b*16); + aZ=aZ+(b*16); + bX=bX-(b*16); + bZ=bZ-(b*16); + if (DetravScannerMod.DEBUGBUILD) + aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW+"Chunk at "+ aX +"|"+aZ+" to "+(aX+16)+"|"+(aZ+16))); + processOreProspecting((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld.getChunkFromBlockCoords(aX, aZ), aWorld.getTileEntity(aX, aY, aZ),GT_OreDictUnificator.getAssociation(new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))), aRandom, chance); + if (bX!=aX && bZ != aZ) { + if (DetravScannerMod.DEBUGBUILD) + aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW+"Chunk at "+ bX +"|"+bZ+" to "+(bX+16)+"|"+(bZ+16))); + processOreProspecting((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld.getChunkFromBlockCoords(bX, bZ), aWorld.getTileEntity(bX, aY, bZ),GT_OreDictUnificator.getAssociation(new ItemStack(aWorld.getBlock(bX, aY, bZ), 1, aWorld.getBlockMetadata(bX, aY, bZ))), aRandom, chance); + } + }*/ return true; } return true; @@ -70,9 +112,8 @@ public class BehaviourDetravToolProPick extends Behaviour_None { return false; } - protected void processOreProspecting(DetravMetaGeneratedTool01 aItem, ItemStack aStack, EntityPlayer aPlayer, Chunk aChunk, TileEntity aTileEntity, ItemData tAssotiation, Random aRandom, int chance)//TileEntity aTileEntity) + protected void processOreProspecting(DetravMetaGeneratedTool01 aItem, ItemStack aStack, EntityPlayer aPlayer, Chunk aChunk, TileEntity aTileEntity, ItemData tAssotiation, SplittableRandom aRandom, int chance)//TileEntity aTileEntity) { - aRandom.nextInt(); if (aTileEntity != null) { if (aTileEntity instanceof GT_TileEntity_Ores) { GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) aTileEntity; @@ -83,8 +124,7 @@ public class BehaviourDetravToolProPick extends Behaviour_None { aItem.doDamage(aStack, this.mCosts); return; } - } else if (tAssotiation!=null) - { + } else if (tAssotiation!=null){ //if (aTileEntity instanceof GT_TileEntity_Ores) { try { GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) aTileEntity; @@ -197,7 +237,12 @@ public class BehaviourDetravToolProPick extends Behaviour_None { } return; } - addChatMassageByValue(aPlayer,0,null); + else if (aRandom.nextInt(100) > chance) { + aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED+"You had no luck this time.")); + if (!aPlayer.capabilities.isCreativeMode) + aItem.doDamage(aStack, this.mCosts/4); + } + // addChatMassageByValue(aPlayer,0,null); } void addChatMassageByValue(EntityPlayer aPlayer, int value, String name) { |
