diff options
author | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2018-04-18 18:05:17 +0200 |
---|---|---|
committer | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2018-04-18 18:05:17 +0200 |
commit | 6db06249fbede596ad278a03a29b1fb4aac27073 (patch) | |
tree | f83db2f85abbaa26d6462be50d83ce1546c5f3b2 /src | |
parent | 8ddc3e4235331be0e4098d46a7d930b0af07bcac (diff) | |
download | GT5-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')
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) { |