aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/machines
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2021-10-20 09:34:04 +0200
committerGitHub <noreply@github.com>2021-10-20 09:34:04 +0200
commit6867690529fe0d2bdf3251dade5fe22b5fff9291 (patch)
treee45f8f5416ffc07563345f76490f343ccbed8450 /src/main/java/gregtech/common/tileentities/machines
parent8d0ce050f2b2e2a8651ea36d36d95819f001c54b (diff)
parent365ffe7c1ad55038718f9c97ece25b082fc3bb0c (diff)
downloadGT5-Unofficial-6867690529fe0d2bdf3251dade5fe22b5fff9291.tar.gz
GT5-Unofficial-6867690529fe0d2bdf3251dade5fe22b5fff9291.tar.bz2
GT5-Unofficial-6867690529fe0d2bdf3251dade5fe22b5fff9291.zip
Merge pull request #693 from D-Cysteine/miner-cobblestone
Detect the ore type and replace with that type of cobble
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java29
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java28
2 files changed, 39 insertions, 18 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java
index d93d959955..6d4b160a86 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java
@@ -176,18 +176,21 @@ public class GT_MetaTileEntity_Miner extends GT_MetaTileEntity_BasicMachine {
moveOneDown(aBaseMetaTileEntity);
} else {
ChunkPosition oreBlockPos;
- Block block;
+ int x = 0, y = 0, z = 0;
+ Block oreBlock;
+ int oreBlockMetadata = 0;
do {
oreBlockPos = oreBlockPositions.remove(0);
- block = aBaseMetaTileEntity.getBlockOffset(oreBlockPos.chunkPosX, oreBlockPos.chunkPosY, oreBlockPos.chunkPosZ);
+ oreBlock = aBaseMetaTileEntity.getBlockOffset(oreBlockPos.chunkPosX, oreBlockPos.chunkPosY, oreBlockPos.chunkPosZ);
+ x = aBaseMetaTileEntity.getXCoord() + oreBlockPos.chunkPosX;
+ y = aBaseMetaTileEntity.getYCoord() + oreBlockPos.chunkPosY;
+ z = aBaseMetaTileEntity.getZCoord() + oreBlockPos.chunkPosZ;
+ oreBlockMetadata = getBaseMetaTileEntity().getWorld().getBlockMetadata(x, y, z);
} // someone else might have removed the block
- while (block == Blocks.air && !oreBlockPositions.isEmpty());
+ while (!GT_Utility.isOre(oreBlock, oreBlockMetadata) && !oreBlockPositions.isEmpty());
- if (block != Blocks.air) {
- mineBlock(aBaseMetaTileEntity, block,
- aBaseMetaTileEntity.getXCoord() + oreBlockPos.chunkPosX,
- aBaseMetaTileEntity.getYCoord() + oreBlockPos.chunkPosY,
- aBaseMetaTileEntity.getZCoord() + oreBlockPos.chunkPosZ);
+ if (GT_Utility.isOre(oreBlock, oreBlockMetadata)) {
+ mineBlock(aBaseMetaTileEntity, oreBlock, x, y, z);
}
}
}
@@ -265,7 +268,15 @@ public class GT_MetaTileEntity_Miner extends GT_MetaTileEntity_BasicMachine {
mOutputItems[0] = drops.get(0);
if (drops.size() > 1)
mOutputItems[1] = drops.get(1);
- aBaseMetaTileEntity.getWorld().setBlock(x, y, z, Blocks.cobblestone);
+
+ short metaData = 0;
+ TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntity(x, y, z);
+ if (tTileEntity instanceof GT_TileEntity_Ores) {
+ metaData = ((GT_TileEntity_Ores) tTileEntity).mMetaData;
+ }
+
+ ItemStack cobble = GT_Utility.getCobbleForOre(block, metaData);
+ aBaseMetaTileEntity.getWorld().setBlock(x, y, z, Block.getBlockFromItem(cobble.getItem()), cobble.getItemDamage(), 3);
if (debugBlockMiner)
GT_Log.out.println("MINER: Mining GT ore block at " + x + " " + y + " " + z);
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java
index 1643eb4f8d..50f28a83b4 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java
@@ -17,7 +17,6 @@ import gregtech.common.blocks.GT_TileEntity_Ores;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
@@ -32,8 +31,6 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
-import org.lwjgl.input.Keyboard;
-
import static gregtech.api.enums.GT_Values.VN;
public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTileEntity_DrillerBase {
@@ -109,21 +106,34 @@ public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTile
}
private boolean processOreList(){
ChunkPosition oreBlockPos = null;
+ int x = 0, y = 0, z = 0;
Block oreBlock = null;
+ int oreBlockMetadata = 0;
- while ((oreBlock == null || oreBlock == Blocks.air) && !oreBlockPositions.isEmpty()) {
+ while ((oreBlock == null || !GT_Utility.isOre(oreBlock, oreBlockMetadata)) && !oreBlockPositions.isEmpty()) {
oreBlockPos = oreBlockPositions.remove(0);
- if (GT_Utility.eraseBlockByFakePlayer(getFakePlayer(getBaseMetaTileEntity()), oreBlockPos.chunkPosX, oreBlockPos.chunkPosY, oreBlockPos.chunkPosZ, true))
- oreBlock = getBaseMetaTileEntity().getBlock(oreBlockPos.chunkPosX, oreBlockPos.chunkPosY, oreBlockPos.chunkPosZ);
+ x = oreBlockPos.chunkPosX;
+ y = oreBlockPos.chunkPosY;
+ z = oreBlockPos.chunkPosZ;
+ if (GT_Utility.eraseBlockByFakePlayer(getFakePlayer(getBaseMetaTileEntity()), x, y, z, true))
+ oreBlock = getBaseMetaTileEntity().getBlock(x, y, z);
+ oreBlockMetadata = getBaseMetaTileEntity().getWorld().getBlockMetadata(x, y, z);
}
if (!tryConsumeDrillingFluid()) {
oreBlockPositions.add(0, oreBlockPos);
return false;
}
- if (oreBlock != null && oreBlock != Blocks.air) {
- Collection<ItemStack> oreBlockDrops = getBlockDrops(oreBlock, oreBlockPos.chunkPosX, oreBlockPos.chunkPosY, oreBlockPos.chunkPosZ);
- getBaseMetaTileEntity().getWorld().setBlock(oreBlockPos.chunkPosX, oreBlockPos.chunkPosY, oreBlockPos.chunkPosZ, Blocks.cobblestone);
+ if (oreBlock != null && GT_Utility.isOre(oreBlock, oreBlockMetadata)) {
+ short metaData = 0;
+ TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntity(x, y, z);
+ if (tTileEntity instanceof GT_TileEntity_Ores) {
+ metaData = ((GT_TileEntity_Ores) tTileEntity).mMetaData;
+ }
+
+ Collection<ItemStack> oreBlockDrops = getBlockDrops(oreBlock, x, y, z);
+ ItemStack cobble = GT_Utility.getCobbleForOre(oreBlock, metaData);
+ getBaseMetaTileEntity().getWorld().setBlock(x, y, z, Block.getBlockFromItem(cobble.getItem()), cobble.getItemDamage(), 3);
mOutputItems = getOutputByDrops(oreBlockDrops);
}
return true;