diff options
author | Blood-Asp <bloodasphendrik@gmail.com> | 2016-06-22 22:14:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-22 22:14:44 +0200 |
commit | e8936bf8d9779bd56947d6fcad5232dd8f68fcf7 (patch) | |
tree | 39bf8d490ca94ab80489c8a19d3d8703be99b32f /src/main/java | |
parent | 7a9c3857e211740368a557a7f0f232d2e08012a5 (diff) | |
parent | ee2abbd3f2d2e06cceada780c531b6342c5b1af7 (diff) | |
download | GT5-Unofficial-e8936bf8d9779bd56947d6fcad5232dd8f68fcf7.tar.gz GT5-Unofficial-e8936bf8d9779bd56947d6fcad5232dd8f68fcf7.tar.bz2 GT5-Unofficial-e8936bf8d9779bd56947d6fcad5232dd8f68fcf7.zip |
Merge pull request #536 from Techlone/experimental
AdvMinerII: check that ore block still exists; consider chance output
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java index f9c9f9654b..3ea1ff7b36 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java @@ -119,10 +119,13 @@ public class GT_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBlockBas } }else{return false;} } - ArrayList<ItemStack> tDrops = new ArrayList(); if (!mMineList.isEmpty()) { ChunkPosition oreBlockOffsetPos = mMineList.get(0); - tDrops = ((GT_TileEntity_Ores) getBaseMetaTileEntity().getTileEntityOffset(oreBlockOffsetPos.chunkPosX, oreBlockOffsetPos.chunkPosY, oreBlockOffsetPos.chunkPosZ)).getDrops(1); + ArrayList<ItemStack> tDrops = new ArrayList<ItemStack>(); + GT_TileEntity_Ores oreBlockTileEntity = (GT_TileEntity_Ores) getBaseMetaTileEntity().getTileEntityOffset(oreBlockOffsetPos.chunkPosX, oreBlockOffsetPos.chunkPosY, oreBlockOffsetPos.chunkPosZ); + if (oreBlockTileEntity != null) { + tDrops = oreBlockTileEntity.getDrops(1); + } if (!tDrops.isEmpty()) { ItemData tData = GT_OreDictUnificator.getItemData(tDrops.get(0).copy()); if (tData.mPrefix != OrePrefixes.crushed&& tData.mMaterial.mMaterial != Materials.Oilsands) { @@ -131,7 +134,9 @@ public class GT_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBlockBas this.mOutputItems = new ItemStack[tRecipe.mOutputs.length]; for (int g = 0; g < mOutputItems.length; g++) { mOutputItems[g] = tRecipe.mOutputs[g].copy(); - mOutputItems[g].stackSize = mOutputItems[g].stackSize * (getBaseMetaTileEntity().getRandomNumber(4) + 1); + if (getBaseMetaTileEntity().getRandomNumber(10000) < tRecipe.getOutputChance(g)) { + mOutputItems[g].stackSize *= getBaseMetaTileEntity().getRandomNumber(4) + 1; + } } } } else { |