aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2018-04-18 18:05:17 +0200
committerbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2018-04-18 18:05:17 +0200
commit6db06249fbede596ad278a03a29b1fb4aac27073 (patch)
treef83db2f85abbaa26d6462be50d83ce1546c5f3b2 /src
parent8ddc3e4235331be0e4098d46a7d930b0af07bcac (diff)
downloadGT5-Unofficial-6db06249fbede596ad278a03a29b1fb4aac27073.tar.gz
GT5-Unofficial-6db06249fbede596ad278a03a29b1fb4aac27073.tar.bz2
GT5-Unofficial-6db06249fbede596ad278a03a29b1fb4aac27073.zip
Try to make GT++ Ores work
+ Version increase
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java4
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java10
-rw-r--r--src/main/java/com/detrav/net/DetravProPickPacket00.java46
3 files changed, 55 insertions, 5 deletions
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
index 70b5296e00..8b8732a848 100644
--- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
+++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
@@ -10,6 +10,7 @@ import gregtech.api.util.GT_OreDictUnificator;
import gregtech.common.GT_UndergroundOil;
import gregtech.common.blocks.GT_Block_Ores_Abstract;
import gregtech.common.blocks.GT_TileEntity_Ores;
+import gtPlusPlus.core.block.base.BlockBaseOre;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
@@ -112,6 +113,9 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi
}
}
}
+ else if (tBlock instanceof BlockBaseOre) {
+ packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, new Short((short) (7000+(short) ((BlockBaseOre) tBlock).getMaterialEx().calculateProtons())));
+ }
else if (data == 1) {
ItemData tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID));
if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) {
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java
index c4a12e42bd..16b6a94e5d 100644
--- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java
+++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java
@@ -12,6 +12,7 @@ import gregtech.common.GT_UndergroundOil;
import gregtech.common.blocks.GT_Block_Ores_Abstract;
import gregtech.common.blocks.GT_TileEntity_Ores;
import gregtech.common.items.behaviors.Behaviour_None;
+import gtPlusPlus.core.block.base.BlockBaseOre;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
@@ -137,6 +138,15 @@ public class BehaviourDetravToolProPick extends Behaviour_None {
}
}
}
+ } else if (tBlock instanceof BlockBaseOre) {
+ String name = tBlock.getLocalizedName();
+ if (!ores.containsKey(name))
+ ores.put(name, 1);
+ else {
+ int val = ores.get(name);
+ ores.put(name, val + 1);
+ }
+
} else if (data == 1) {
tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID));
if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) {
diff --git a/src/main/java/com/detrav/net/DetravProPickPacket00.java b/src/main/java/com/detrav/net/DetravProPickPacket00.java
index 385ad71e95..583e2b58a6 100644
--- a/src/main/java/com/detrav/net/DetravProPickPacket00.java
+++ b/src/main/java/com/detrav/net/DetravProPickPacket00.java
@@ -9,9 +9,12 @@ import com.google.common.io.ByteStreams;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_LanguageManager;
+import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.ORES;
import java.awt.image.BufferedImage;
import java.awt.image.WritableRaster;
+import java.lang.reflect.Field;
import java.util.HashMap;
@@ -24,7 +27,7 @@ public class DetravProPickPacket00 extends DetravPacket {
public int size;
public int ptype;
HashMap<Byte,Short>[][] map = null;
-
+
@Override
public int getPacketID() {
return 0;
@@ -96,10 +99,12 @@ public class DetravProPickPacket00 extends DetravPacket {
}
public void addBlock(int x, int y, int z, short metaData) {
- if(map == null) map = new HashMap[(size*2+1)*16][(size*2+1)*16];
+ if(map == null)
+ map = new HashMap[(size*2+1)*16][(size*2+1)*16];
int aX = x - (chunkX-size)*16;
int aZ = z - (chunkZ-size)*16;
- if(map[aX][aZ] == null) map[aX][aZ] = new HashMap<Byte, Short>();
+ if(map[aX][aZ] == null)
+ map[aX][aZ] = new HashMap<Byte, Short>();
map[aX][aZ].put((byte)y,metaData);
//String key = String.format(("x_y"))
}
@@ -133,11 +138,24 @@ public class DetravProPickPacket00 extends DetravPacket {
String name;
short[] rgba;
Materials tMaterial = null;
+ gtPlusPlus.core.material.Material pMaterial = null;
try {
- tMaterial = GregTech_API.sGeneratedMaterials[meta % 1000];
+ if (meta>10000 || meta<7000) {
+ tMaterial = GregTech_API.sGeneratedMaterials[meta % 1000];
+ } else {
+ short l = (short) (meta-7000);
+ for (Field g : gtPlusPlus.core.material.ORES.class.getFields()) {
+ if (g.get(g) instanceof gtPlusPlus.core.material.Material) {
+ gtPlusPlus.core.material.Material p = (Material) g.get(g);
+ if ((short)p.calculateProtons() == l)
+ pMaterial = p;
+ }
+ }
+ }
} catch (Exception e) {
tMaterial = null;
}
+ if (meta>10000 || meta<7000) {
if (tMaterial == null) {
exception++;
continue;
@@ -145,13 +163,31 @@ public class DetravProPickPacket00 extends DetravPacket {
rgba = tMaterial.getRGBA();
//ores.put(GT_Ore)
name = tMaterial.getLocalizedNameForItem(GT_LanguageManager.getTranslation("gt.blockores." + meta + ".name"));
-
+
raster.setSample(i, j, 0, rgba[0]);
raster.setSample(i, j, 1, rgba[1]);
raster.setSample(i, j, 2, rgba[2]);
raster.setSample(i, j, 3, 255);
if (!ores.containsKey(name))
ores.put(name, (0xFF << 24) + ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF)));
+ }
+ else{
+ if (pMaterial == null) {
+ exception++;
+ continue;
+ }
+ rgba = pMaterial.getRGBA();
+ //ores.put(GT_Ore)
+ name = pMaterial.getLocalizedName() + " Ore";
+
+ raster.setSample(i, j, 0, rgba[0]);
+ raster.setSample(i, j, 1, rgba[1]);
+ raster.setSample(i, j, 2, rgba[2]);
+ raster.setSample(i, j, 3, 255);
+ if (!ores.containsKey(name))
+ ores.put(name, (0xFF << 24) + ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF)));
+ }
+
}
}
if (playerI == i || playerJ == j) {