diff options
author | Detrav <witalyezep@gmail.com> | 2016-03-22 11:57:07 +0300 |
---|---|---|
committer | Detrav <witalyezep@gmail.com> | 2016-03-22 11:57:07 +0300 |
commit | b5108a3f7dde2948998ed3b17f5d7734367bf98c (patch) | |
tree | d768d7b0c856741f61cbc1236421ee9a7ba97bea /src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java | |
parent | 804e6561deab8084e268b90e037c3f504c909f4f (diff) | |
download | GT5-Unofficial-b5108a3f7dde2948998ed3b17f5d7734367bf98c.tar.gz GT5-Unofficial-b5108a3f7dde2948998ed3b17f5d7734367bf98c.tar.bz2 GT5-Unofficial-b5108a3f7dde2948998ed3b17f5d7734367bf98c.zip |
Add oil prospecting
Diffstat (limited to 'src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java')
-rw-r--r-- | src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java index 2a8b976692..fd8655acfb 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java @@ -2,18 +2,24 @@ package com.detrav.items.behaviours; import com.detrav.items.DetravMetaGeneratedTool01; import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.util.GT_LanguageManager; +import gregtech.common.GT_Proxy; import gregtech.common.blocks.GT_TileEntity_Ores; import gregtech.common.items.behaviors.Behaviour_None; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; +import net.minecraft.world.ChunkPosition; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; import java.util.HashMap; import java.util.Random; @@ -40,6 +46,16 @@ public class BehaviourDetravToolProPick extends Behaviour_None { 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) { + if(aWorld.getBlock(aX,aY,aZ) == Blocks.bedrock) + { + 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.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), new Random(aWorld.getSeed() + 3547 * aX + 1327 * aZ + 9973 * aY)); @@ -113,4 +129,38 @@ public class BehaviourDetravToolProPick extends Behaviour_None { else aPlayer.addChatMessage(new ChatComponentText(foundTexts[5] + name)); } + + public static FluidStack getUndergroundOil(World aWorld, int aX, int aZ) { + Random tRandom = new Random(aWorld.getSeed() + (long)(aX / 96) + (long)(7 * (aZ / 96))); + int oil = tRandom.nextInt(3); + double amount = (double)tRandom.nextInt(50) + tRandom.nextDouble(); + Fluid tFluid = null; + switch(oil) { + case 0: + tFluid = Materials.NatruralGas.mGas; + break; + case 1: + tFluid = Materials.OilLight.mFluid; + break; + case 2: + tFluid = Materials.OilMedium.mFluid; + break; + case 3: + tFluid = Materials.OilHeavy.mFluid; + break; + default: + tFluid = Materials.Oil.mFluid; + } + + int tAmount = (int)(Math.pow(amount, 5.0D) / 100.0D); + 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 > 0 && tInts[0] >= 0) { + tAmount = tInts[0]; + } + } + tAmount -= 5; + return new FluidStack(tFluid, tAmount); + } }
\ No newline at end of file |