aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/machines
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2018-04-15 12:35:33 +0200
committerTechnus <daniel112092@gmail.com>2018-04-15 12:35:33 +0200
commita50fe06bfcae07d1bf25af784364392cd232d3cd (patch)
tree9a8905c62ea4c15102754444f1354845dd3dcf46 /src/main/java/gregtech/common/tileentities/machines
parent7971edd3771ea2e0687e65151fb9b3bca90d2609 (diff)
parent2b492f360ad5bd1a2f525d101d8fdfa4628c2552 (diff)
downloadGT5-Unofficial-a50fe06bfcae07d1bf25af784364392cd232d3cd.tar.gz
GT5-Unofficial-a50fe06bfcae07d1bf25af784364392cd232d3cd.tar.bz2
GT5-Unofficial-a50fe06bfcae07d1bf25af784364392cd232d3cd.zip
Merge branch 'experimental' of https://github.com/GTNewHorizons/GT5-Unofficial into experimental
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_AdvSeismicProspector.java97
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java15
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java2
4 files changed, 64 insertions, 54 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_AdvSeismicProspector.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_AdvSeismicProspector.java
index 3099959501..a040d1cf17 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_AdvSeismicProspector.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_AdvSeismicProspector.java
@@ -12,7 +12,6 @@ import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.objects.ItemData;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
-import gregtech.common.GT_UndergroundOil;
import gregtech.common.blocks.GT_Block_Ores_Abstract;
import gregtech.common.blocks.GT_TileEntity_Ores;
import ic2.core.Ic2Items;
@@ -23,14 +22,15 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.ChunkCoordIntPair;
-import net.minecraft.world.ChunkPosition;
+import net.minecraft.world.chunk.Chunk;
import net.minecraftforge.fluids.FluidStack;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
+import static gregtech.common.GT_UndergroundOil.undergroundOilReadInformation;
-public class GT_MetaTileEntity_AdvSeismicProspector extends GT_MetaTileEntity_BasicMachine {
+
+public class GT_MetaTileEntity_AdvSeismicProspector extends GT_MetaTileEntity_BasicMachine {
boolean ready = false;
int radius;
int near;
@@ -39,10 +39,7 @@ public class GT_MetaTileEntity_AdvSeismicProspector extends GT_MetaTileEntity_Ba
public GT_MetaTileEntity_AdvSeismicProspector(int aID, String aName, String aNameRegional, int aTier, int aRadius, int aStep) {
super(aID, aName, aNameRegional, aTier, 1, // amperage
- "Place, activate with explosives ("
- + "8 Glyceryl, "
- + "32 TNT or "
- + "16 ITNT), use Data Stick",
+ "",
1, // input slot count
1, // output slot count
"Default.png", // GUI name
@@ -62,13 +59,14 @@ public class GT_MetaTileEntity_AdvSeismicProspector extends GT_MetaTileEntity_Ba
step = aStep;
}
- protected GT_MetaTileEntity_AdvSeismicProspector(String aName, int aTier, String aDescription, ITexture[][][] aTextures,
- String aGUIName, String aNEIName, int aNear, int aMiddle, int aRadius, int aStep) {
- super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName);
- radius = aRadius;
- near = aNear;
- middle = aMiddle;
- step = aStep;
+ public String[] getDescription() {
+ return new String[]{
+ "Place, activate with explosives ("
+ + "8 Glyceryl, "
+ + "32 TNT or "
+ + "16 ITNT), use Data Stick",
+ "Ore prospection area 191x191 blocks",
+ "Oil prospection area 3x3 oilfields"};
}
protected GT_MetaTileEntity_AdvSeismicProspector(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures,
@@ -109,7 +107,7 @@ public class GT_MetaTileEntity_AdvSeismicProspector extends GT_MetaTileEntity_Ba
prospectOres(tNearOres, tMiddleOres, tFarOres);
// prospecting oils
- HashMap<String, Integer> tOils = new HashMap<String, Integer>();
+ ArrayList<String> tOils = new ArrayList<String>();
prospectOils(tOils);
GT_Utility.ItemNBT.setAdvancedProspectionData(mTier,
@@ -118,7 +116,7 @@ public class GT_MetaTileEntity_AdvSeismicProspector extends GT_MetaTileEntity_Ba
this.getBaseMetaTileEntity().getYCoord(),
this.getBaseMetaTileEntity().getZCoord(),
this.getBaseMetaTileEntity().getWorld().provider.dimensionId,
- GT_Utility.sortByValueToList(tOils),
+ tOils,
GT_Utility.sortByValueToList(tNearOres),
GT_Utility.sortByValueToList(tMiddleOres),
GT_Utility.sortByValueToList(tFarOres),
@@ -129,36 +127,45 @@ public class GT_MetaTileEntity_AdvSeismicProspector extends GT_MetaTileEntity_Ba
return true;
}
- private void prospectOils(HashMap<String, Integer> aOils) {
+ private void prospectOils(ArrayList<String> aOils) {
- int tLeftXBound = GT_Utility.getScaleCoordinates(this.getBaseMetaTileEntity().getXCoord() - radius, 16);
- int tRightXBound = GT_Utility.getScaleCoordinates(this.getBaseMetaTileEntity().getXCoord() + radius, 16);
+ FluidStack tFluid;
- int tLeftZBound = GT_Utility.getScaleCoordinates(this.getBaseMetaTileEntity().getZCoord() - radius, 16);
- int tRightZBound = GT_Utility.getScaleCoordinates(this.getBaseMetaTileEntity().getZCoord() + radius, 16);
+ Chunk tChunk = getBaseMetaTileEntity().getWorld().getChunkFromBlockCoords(getBaseMetaTileEntity().getXCoord(), getBaseMetaTileEntity().getZCoord());
+ int oilfieldSize = 8;
+ int xChunk = (tChunk.xPosition / oilfieldSize) * oilfieldSize - ((tChunk.xPosition < 0 && tChunk.xPosition % oilfieldSize != 0) ? oilfieldSize : 0);
+ int zChunk = (tChunk.zPosition / oilfieldSize) * oilfieldSize - ((tChunk.zPosition < 0 && tChunk.zPosition % oilfieldSize != 0) ? oilfieldSize : 0);
- HashMap<ChunkCoordIntPair, FluidStack> tFluids = new HashMap<>();
+ LinkedHashMap<ChunkCoordIntPair, FluidStack> tFluids = new LinkedHashMap<>();
+ int oilFieldCount = 0;
try {
- for (int x = tLeftXBound; x <= tRightXBound; ++x)
- for (int z = tLeftZBound; z <= tRightZBound; ++z)
- {
- ChunkPosition tPos = new ChunkPosition(GT_Utility.getScaleCoordinates(x*16,96), 0, GT_Utility.getScaleCoordinates(z*16,96));
- ChunkCoordIntPair cInts = getBaseMetaTileEntity().getWorld().getChunkFromChunkCoords(tPos.chunkPosX,tPos.chunkPosZ).getChunkCoordIntPair();
- FluidStack tFluid = GT_UndergroundOil.undergroundOilReadInformation(getBaseMetaTileEntity().getWorld().getChunkFromChunkCoords(tPos.chunkPosX,tPos.chunkPosZ));
- if (tFluid != null)
- if (tFluids.containsKey(cInts)) {
- if (tFluids.get(cInts).amount<tFluid.amount)
- tFluids.get(cInts).amount = tFluid.amount;
- } else tFluids.put(cInts, tFluid);
+ for (int z = -1; z <= 1; ++z) {
+ for (int x = -1; x <= 1; ++x) {
+ ChunkCoordIntPair cInts = getBaseMetaTileEntity().getWorld().getChunkFromChunkCoords(x, z).getChunkCoordIntPair();
+ ArrayList<Integer> minMaxValue = new ArrayList<>();
+
+ for (int i = 0; i < oilfieldSize; i++) {
+ for (int j = 0; j < oilfieldSize; j++) {
+ tChunk = getBaseMetaTileEntity().getWorld().getChunkFromChunkCoords(
+ xChunk + i + x * oilfieldSize,
+ zChunk + j + z * oilfieldSize);
+ tFluid = undergroundOilReadInformation(tChunk);
+ if (tFluid != null) {
+ minMaxValue.add(tFluid.amount);
+ if (!tFluids.containsKey(cInts)) {
+ tFluids.put(cInts, tFluid);
+ }
+ }
+ }
+ }
+
+ int min = Collections.min(minMaxValue);
+ int max = Collections.max(minMaxValue);
+ aOils.add(++oilFieldCount + "," + min + "-" + max + "," + tFluids.get(cInts).getLocalizedName());
}
-
- for (Map.Entry<ChunkCoordIntPair, FluidStack> fl : tFluids.entrySet()) {
- aOils.put(fl.getKey().chunkXPos + "," + fl.getKey().chunkZPos + "," + fl.getValue().amount + "," + fl.getValue().getLocalizedName(), fl.getValue().amount);
- }
- } catch (Exception e) {
- // TODO: handle exception
- }
+ }
+ } catch (Exception e) {/*Do nothing*/}
}
//private void putOil(int x, int z, HashMap<String, Integer> aOils) {//TODO Old method??
@@ -167,7 +174,7 @@ public class GT_MetaTileEntity_AdvSeismicProspector extends GT_MetaTileEntity_Ba
// aOils.put(x + "," + z + "," + (tFluid.amount / 5000) + "," + tFluid.getLocalizedName(), tFluid.amount / 5000);
//}
- private void prospectOres(Map<String, Integer> aNearOres, Map<String, Integer> aMiddleOres, Map<String, Integer> aFarOres) {
+ private void prospectOres(Map<String, Integer> aNearOres, Map<String, Integer> aMiddleOres, Map<String, Integer> aFarOres) {
int tLeftXBound = this.getBaseMetaTileEntity().getXCoord() - radius;
int tRightXBound = tLeftXBound + 2*radius;
@@ -185,13 +192,13 @@ public class GT_MetaTileEntity_AdvSeismicProspector extends GT_MetaTileEntity_Ba
prospectHole(i, k, aMiddleOres);
else
prospectHole(i, k, aFarOres);
- }
+ }
}
private void prospectHole(int i, int k, Map<String, Integer> aOres) {
String tFoundOre;
for (int j = this.getBaseMetaTileEntity().getYCoord(); j > 0; j--) {
- tFoundOre = checkForOre(i, j, k);
+ tFoundOre = checkForOre(i, j, k);
if (tFoundOre != null)
countOre(aOres, tFoundOre);
}
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 4bd5a15af8..393b63e916 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
@@ -142,14 +142,17 @@ public class GT_MetaTileEntity_Miner extends GT_MetaTileEntity_BasicMachine {
return mTier == 1 ? 4096 : V[mTier] * 64;
}
public boolean moveOneDown(IGregTechTileEntity aBaseMetaTileEntity) {
- if (aBaseMetaTileEntity.getYCoord() + drillY - 1 < 0
- || GT_Utility.getBlockHardnessAt(aBaseMetaTileEntity.getWorld(), 0, aBaseMetaTileEntity.getYCoord() + drillY - 1, 0) < 0
- || !GT_Utility.setBlockByFakePlayer(getFakePlayer(aBaseMetaTileEntity), 0, drillY - 1, 0, MINING_PIPE_TIP_BLOCK, 0, true)) {
+ int xCoord = aBaseMetaTileEntity.getXCoord();
+ int zCoord = aBaseMetaTileEntity.getZCoord();
+ short yCoord = aBaseMetaTileEntity.getYCoord();
+ if (yCoord + drillY - 1 < 0
+ || GT_Utility.getBlockHardnessAt(aBaseMetaTileEntity.getWorld(), xCoord, yCoord + drillY - 1, zCoord) < 0
+ || !GT_Utility.setBlockByFakePlayer(getFakePlayer(aBaseMetaTileEntity), xCoord, yCoord + drillY - 1, zCoord, MINING_PIPE_TIP_BLOCK, 0, true)) {
isPickingPipes = true;
return false;
}
if (aBaseMetaTileEntity.getBlockOffset(0, drillY, 0) == MINING_PIPE_TIP_BLOCK) {
- aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getXCoord(), aBaseMetaTileEntity.getYCoord() + drillY, aBaseMetaTileEntity.getZCoord(), MINING_PIPE_BLOCK);
+ aBaseMetaTileEntity.getWorld().setBlock(xCoord, yCoord + drillY, zCoord, MINING_PIPE_BLOCK);
}
miningPipes:
{
@@ -169,7 +172,7 @@ public class GT_MetaTileEntity_Miner extends GT_MetaTileEntity_BasicMachine {
if (aBaseMetaTileEntity.getBlockOffset(0, drillY - 1, 0) != Blocks.air) {
mineBlock(aBaseMetaTileEntity, 0, drillY - 1, 0);
}
- aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getXCoord(), aBaseMetaTileEntity.getYCoord() + drillY - 1, aBaseMetaTileEntity.getZCoord(), MINING_PIPE_TIP_BLOCK);
+ aBaseMetaTileEntity.getWorld().setBlock(xCoord, yCoord + drillY - 1, zCoord, MINING_PIPE_TIP_BLOCK);
drillY--;
drillZ = -RADIUS[mTier];
drillX = -RADIUS[mTier];
@@ -218,4 +221,4 @@ public class GT_MetaTileEntity_Miner extends GT_MetaTileEntity_BasicMachine {
return mFakePlayer;
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java
index 23e5b6a482..346ce14f1e 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java
@@ -253,9 +253,9 @@ public class GT_MetaTileEntity_Pump extends GT_MetaTileEntity_Hatch {
if (tTank != null) {
FluidStack tDrained = drain(1000, false);
if (tDrained != null) {
- int tFilledAmount = tTank.fill(ForgeDirection.UP, tDrained, false);
+ int tFilledAmount = tTank.fill(ForgeDirection.DOWN, tDrained, false);
if (tFilledAmount > 0)
- tTank.fill(ForgeDirection.UP, drain(tFilledAmount, true), true);
+ tTank.fill(ForgeDirection.DOWN, drain(tFilledAmount, true), true);
}
}
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
index 82293cff0a..35b2dcc68e 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
@@ -427,7 +427,7 @@ public class GT_MetaTileEntity_ProcessingArray extends GT_MetaTileEntity_MultiBl
EnumChatFormatting.GREEN+tTier+EnumChatFormatting.RESET+
" Discount: "+
EnumChatFormatting.GREEN+(1<<mMult)+EnumChatFormatting.RESET + " x",
- "Parallel processing: "+EnumChatFormatting.GREEN+(mInventory[1].stackSize<<mMult)+EnumChatFormatting.RESET
+ "Parallel processing: "+EnumChatFormatting.GREEN+((mInventory[1] != null) ? (mInventory[1].stackSize<<mMult) : 0)+EnumChatFormatting.RESET
};
}