aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorJason Mitchell <mitchej@gmail.com>2021-01-24 00:37:23 -0800
committerJason Mitchell <mitchej@gmail.com>2021-01-24 00:37:23 -0800
commit8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a (patch)
tree6ce989529cb927ff79d2a07cd3e72176d060099a /src/main/java
parentbf8c5581ff93b056a03017f858a8d907a2fa69e2 (diff)
downloadGT5-Unofficial-8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a.tar.gz
GT5-Unofficial-8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a.tar.bz2
GT5-Unofficial-8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a.zip
Selectable ores on electronic prospector
* Cleaned up some class/file names * Removed unused code/comments * Cached other mods being loaded * Various optimizations
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/detrav/DetravScannerMod.java12
-rw-r--r--src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java4
-rw-r--r--src/main/java/com/detrav/commands/DetravScannerCommand.java6
-rw-r--r--src/main/java/com/detrav/enums/DetravToolDictNames.java6
-rw-r--r--src/main/java/com/detrav/gui/DetravGuiProPick.java134
-rw-r--r--src/main/java/com/detrav/gui/DetravScannerGUI.java82
-rw-r--r--src/main/java/com/detrav/gui/OresList.java61
-rw-r--r--src/main/java/com/detrav/gui/textures/DetravMapTexture.java98
-rw-r--r--src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java354
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java (renamed from src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java)65
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java40
-rw-r--r--src/main/java/com/detrav/items/processing/ProcessingDetravToolProspector.java (renamed from src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java)13
-rw-r--r--src/main/java/com/detrav/items/tools/DetravProspector.java (renamed from src/main/java/com/detrav/items/tools/DetravProPick.java)12
-rw-r--r--src/main/java/com/detrav/items/tools/DetravToolElectricProspector.java (renamed from src/main/java/com/detrav/items/tools/DetravToolElectricProPick.java)4
-rw-r--r--src/main/java/com/detrav/items/tools/DetravToolElectricProspectorBase.java (renamed from src/main/java/com/detrav/items/tools/DetravToolElectricProPickBase.java)6
-rw-r--r--src/main/java/com/detrav/net/DetravNetwork.java20
-rw-r--r--src/main/java/com/detrav/net/DetravPacket.java4
-rw-r--r--src/main/java/com/detrav/net/DetravProPickPacket00.java341
-rw-r--r--src/main/java/com/detrav/net/ProspectingPacket.java185
-rw-r--r--src/main/java/com/detrav/proxies/ClientProxy.java18
-rw-r--r--src/main/java/com/detrav/proxies/CommonProxy.java14
-rw-r--r--src/main/java/com/detrav/utils/DetravCreativeTab.java28
-rw-r--r--src/main/java/com/detrav/utils/FluidColors.java4
-rw-r--r--src/main/java/com/detrav/utils/GTppHelper.java10
24 files changed, 573 insertions, 948 deletions
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java
index acf8ffec76..92ad44617a 100644
--- a/src/main/java/com/detrav/DetravScannerMod.java
+++ b/src/main/java/com/detrav/DetravScannerMod.java
@@ -24,10 +24,13 @@ import net.minecraftforge.common.config.Configuration;
public class DetravScannerMod
{
public static final String MODID = "detravscannermod";
- public static final String VERSION = "1.5.7";
+ public static final String VERSION = "1.6.0";
public static final String DEBUGOVERRIDE = "@false";
public static final boolean DEBUGBUILD = Boolean.parseBoolean(DEBUGOVERRIDE.substring(1));
public static final CreativeTabs TAB_DETRAV = new DetravCreativeTab();
+ public static boolean isDreamcraftLoaded = false;
+ public static boolean isBartWorksLoaded = false;
+ public static boolean isGTppLoaded = false;
public static final org.apache.logging.log4j.Logger Logger = LogManager.getLogger("GT Scanner Mod");
@@ -39,6 +42,10 @@ public class DetravScannerMod
public DetravScannerMod() {
GregTech_API.sAfterGTPreload.add(new Detrav_AfterGTPreload_Loader());
+ isDreamcraftLoaded = Loader.isModLoaded("dreamcraft");
+ isBartWorksLoaded = Loader.isModLoaded("bartworks");
+ isGTppLoaded = Loader.isModLoaded("miscutils");
+
new DetravNetwork();
}
@@ -64,8 +71,7 @@ public class DetravScannerMod
@EventHandler
public void onPostLoad(FMLPostInitializationEvent aEvent) {
proxy.onPostLoad();
- if (Loader.isModLoaded("miscutils"))
- GTppHelper.generate_OreIDs();
+ if (isGTppLoaded) GTppHelper.generate_OreIDs();
FluidColors.makeColors();
}
diff --git a/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java
index db9011b1c8..cff4e6eec9 100644
--- a/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java
+++ b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java
@@ -1,7 +1,7 @@
package com.detrav;
import com.detrav.items.DetravMetaGeneratedTool01;
-import com.detrav.items.processing.ProcessingDetravToolProPick;
+import com.detrav.items.processing.ProcessingDetravToolProspector;
/**
* Created by wital_000 on 18.03.2016.
@@ -14,7 +14,7 @@ public class Detrav_AfterGTPreload_Loader implements Runnable {
new DetravMetaGeneratedTool01();
//recipes and etc
- new ProcessingDetravToolProPick();
+ new ProcessingDetravToolProspector();
}
}
diff --git a/src/main/java/com/detrav/commands/DetravScannerCommand.java b/src/main/java/com/detrav/commands/DetravScannerCommand.java
index 22f5d2c279..90dd4310a8 100644
--- a/src/main/java/com/detrav/commands/DetravScannerCommand.java
+++ b/src/main/java/com/detrav/commands/DetravScannerCommand.java
@@ -23,8 +23,7 @@ public class DetravScannerCommand implements ICommand {
private List aliases;
- public DetravScannerCommand()
- {
+ public DetravScannerCommand() {
this.aliases = new ArrayList<String>();
this.aliases.add("DetravScanner");
this.aliases.add("dscan");
@@ -123,8 +122,7 @@ public class DetravScannerCommand implements ICommand {
}
sender.addChatMessage(new ChatComponentText("*** Detrav Scanner Begin"));
- for(String key : ores.keySet())
- {
+ for(String key : ores.keySet()) {
sender.addChatMessage(new ChatComponentText(String.format("%s : %d", key, ores.get(key))));
}
sender.addChatMessage(new ChatComponentText("*** Detrav Scanner End"));
diff --git a/src/main/java/com/detrav/enums/DetravToolDictNames.java b/src/main/java/com/detrav/enums/DetravToolDictNames.java
index 6f50a385b2..128545360c 100644
--- a/src/main/java/com/detrav/enums/DetravToolDictNames.java
+++ b/src/main/java/com/detrav/enums/DetravToolDictNames.java
@@ -3,7 +3,7 @@ package com.detrav.enums;
/**
* Created by wital_000 on 19.03.2016.
*/
-public enum DetravToolDictNames {
- craftingToolElectricProPick,
- craftingToolProPick,
+public enum DetravToolDictNames {
+ craftingToolElectricProspector,
+ craftingToolProspector,
}
diff --git a/src/main/java/com/detrav/gui/DetravGuiProPick.java b/src/main/java/com/detrav/gui/DetravGuiProPick.java
deleted file mode 100644
index b62be499fe..0000000000
--- a/src/main/java/com/detrav/gui/DetravGuiProPick.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package com.detrav.gui;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-
-import org.lwjgl.opengl.GL11;
-
-import com.detrav.gui.textures.DetravMapTexture;
-
-import cpw.mods.fml.client.GuiScrollingList;
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.client.renderer.Tessellator;
-import net.minecraft.util.ResourceLocation;
-
-/**
- * Created by wital_000 on 21.03.2016.
- */
-public class DetravGuiProPick extends GuiScreen {
- public static final int GUI_ID = 20;
- private static DetravMapTexture map = null;
- ListOres ores = null;
-
- public DetravGuiProPick()
- {
-
- }
-
- public static void newMap(DetravMapTexture aMap) {
- if (map != null) {
- map.deleteGlTexture();
- map = null;
- }
- map = aMap;
- map.loadTexture(null);
- //ores = new ListOres(Minecraft.getMinecraft(),)
- }
-
- int prevW;
- int prevH;
-
-
- private static int minHeight = 128;
- private static int minWidth = 128;
-
- private static final ResourceLocation back = new ResourceLocation("gregtech:textures/gui/propick.png");
-
- @Override
- public void drawScreen(int x, int y, float f) {
- this.drawDefaultBackground();
- if(map!=null)
- {
- int currentWidth = Math.max(map.width,minWidth);
- int currentHeight = Math.max(map.height,minHeight);
- int aX = (this.width - currentWidth-100)/2;
- int aY = (this.height - currentHeight)/2;
-
- if(ores == null)
- {
- ores = new ListOres(this,100,currentHeight,aY,aY+currentHeight,aX+currentWidth,10,map.ores);
- prevW = width;
- prevH = height;
- }
- if(prevW!=width || prevH !=height)
- {
- ores = new ListOres(this,100,currentHeight,aY,aY+currentHeight,aX+currentWidth,10,map.ores);
- prevW = width;
- prevH = height;
- }
-
-
- //dradback for ores
- drawRect(aX,aY,aX+currentWidth+100,aY+currentHeight,0xFFC6C6C6);
- map.glBindTexture();
- map.draw(aX,aY);
- ores.drawScreen(x,y,f);
- mc.getTextureManager().bindTexture(back);
- GL11.glColor4f(0xFF, 0xFF, 0xFF, 0xFF);
- //drawcorners
- drawTexturedModalRect(aX-5,aY-5,0,0,5,5);//leftTop
- drawTexturedModalRect(aX+currentWidth+100,aY-5,171,0,5,5);//RightTop
- drawTexturedModalRect(aX-5,aY+currentHeight,0,161,5,5);//leftDown
- drawTexturedModalRect(aX+currentWidth+100,aY+currentHeight,171,161,5,5);//RightDown
- //draw edges
- for(int i = aX;i<aX+currentWidth+100;i+=128) drawTexturedModalRect(i,aY-5,5,0,Math.min(128,aX+currentWidth+100-i),5); //top
- for(int i = aX;i<aX+currentWidth+100;i+=128) drawTexturedModalRect(i,aY+currentHeight,5,161,Math.min(128,aX+currentWidth+100-i),5); //down
- for(int i = aY;i<aY+currentHeight;i+=128) drawTexturedModalRect(aX-5,i,0,5,5,Math.min(128,aY + currentHeight-i)); //left
- for(int i = aY;i<aY+currentHeight;i+=128) drawTexturedModalRect(aX+currentWidth+100,i,171,5,5,Math.min(128,aY+currentHeight-i)); //right
- }
- }
-
- class ListOres extends GuiScrollingList
- {
- HashMap<String,Integer> ores = null;
- List<String> keys = null;
-
- public ListOres(GuiScreen parent, int width, int height, int top, int bottom, int left, int entryHeight,HashMap<String,Integer> aOres) {
- super(parent.mc, width, height, top, bottom, left, entryHeight);
- ores = aOres;
- keys = new ArrayList(map.ores.keySet());
- Collections.sort(keys);
- }
-
- @Override
- protected int getSize() {
- return ores.size();
- }
-
- @Override
- protected void elementClicked(int index, boolean doubleClick) {
-
- }
-
- @Override
- protected boolean isSelected(int index) {
- return false;
- }
-
- @Override
- protected void drawBackground() {
- //drawRect(this.left,this.top,this.listWidth,this.listHeight,0xFFFFFFFF);
- }
-
- @Override
- protected void drawSlot(int slotIdx, int entryRight, int slotTop, int slotBuffer, Tessellator tess) {
- //drawString(fontRendererObj,);
- //fontRendererObj.drawString(fontRendererObj.trimStringToWidth())
-
- fontRendererObj.drawString(fontRendererObj.trimStringToWidth(keys.get(slotIdx), listWidth - 10), this.left + 3 , slotTop + 2, ores.get(keys.get(slotIdx)));
-
- }
- }
-}
diff --git a/src/main/java/com/detrav/gui/DetravScannerGUI.java b/src/main/java/com/detrav/gui/DetravScannerGUI.java
new file mode 100644
index 0000000000..bc275afca5
--- /dev/null
+++ b/src/main/java/com/detrav/gui/DetravScannerGUI.java
@@ -0,0 +1,82 @@
+package com.detrav.gui;
+
+import org.lwjgl.opengl.GL11;
+
+import com.detrav.gui.textures.DetravMapTexture;
+
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.util.ResourceLocation;
+
+/**
+ * Created by wital_000 on 21.03.2016.
+ */
+public class DetravScannerGUI extends GuiScreen {
+ public static final int GUI_ID = 20;
+ private static DetravMapTexture map = null;
+ OresList oresList = null;
+
+ private final static int minHeight = 128;
+ private final static int minWidth = 128;
+ private int prevW;
+ private int prevH;
+
+ private static final ResourceLocation back = new ResourceLocation("gregtech:textures/gui/propick.png");
+
+ public DetravScannerGUI() {
+
+ }
+
+ public static void newMap(DetravMapTexture aMap) {
+ if (map != null) {
+ map.deleteGlTexture();
+ map = null;
+ }
+ map = aMap;
+ map.loadTexture(null);
+ }
+
+
+ @Override
+ public void drawScreen(int x, int y, float f) {
+ this.drawDefaultBackground();
+ if(map == null) return;
+
+ int currentWidth = Math.max(map.width, minWidth);
+ int currentHeight = Math.max(map.height, minHeight);
+ int aX = (this.width - currentWidth-100)/2;
+ int aY = (this.height - currentHeight)/2;
+
+ if(oresList == null || (prevW != width || prevH != height)) {
+ oresList = new OresList(
+ this, 100, currentHeight, aY, aY+currentHeight, aX+currentWidth, 10, map.packet.ores,
+ (name -> {
+ if (map != null) map.loadTexture(null, name);
+ })
+ );
+ prevW = width;
+ prevH = height;
+ }
+
+ // draw back for ores
+ drawRect(aX,aY,aX+currentWidth+100,aY+currentHeight,0xFFC6C6C6);
+ map.glBindTexture();
+ map.draw(aX,aY);
+ oresList.drawScreen(x, y, f);
+ mc.getTextureManager().bindTexture(back);
+ GL11.glColor4f(0xFF, 0xFF, 0xFF, 0xFF);
+
+ // draw corners
+ drawTexturedModalRect(aX-5,aY-5,0,0,5,5);//leftTop
+ drawTexturedModalRect(aX+currentWidth+100,aY-5,171,0,5,5);//RightTop
+ drawTexturedModalRect(aX-5,aY+currentHeight,0,161,5,5);//leftDown
+ drawTexturedModalRect(aX+currentWidth+100,aY+currentHeight,171,161,5,5);//RightDown
+
+ // draw edges
+ for(int i = aX ; i <aX + currentWidth + 100 ; i += 128) drawTexturedModalRect(i,aY-5,5,0,Math.min(128,aX+currentWidth+100-i),5); //top
+ for(int i = aX ; i <aX + currentWidth + 100 ; i += 128) drawTexturedModalRect(i,aY+currentHeight,5,161,Math.min(128,aX+currentWidth+100-i),5); //down
+ for(int i = aY ; i <aY + currentHeight ; i += 128) drawTexturedModalRect(aX-5,i,0,5,5,Math.min(128,aY + currentHeight-i)); //left
+ for(int i = aY ; i <aY + currentHeight ; i += 128) drawTexturedModalRect(aX+currentWidth+100,i,171,5,5,Math.min(128,aY+currentHeight-i)); //right
+
+ }
+
+}
diff --git a/src/main/java/com/detrav/gui/OresList.java b/src/main/java/com/detrav/gui/OresList.java
new file mode 100644
index 0000000000..a6af396a1a
--- /dev/null
+++ b/src/main/java/com/detrav/gui/OresList.java
@@ -0,0 +1,61 @@
+package com.detrav.gui;
+
+import cpw.mods.fml.client.GuiScrollingList;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.renderer.Tessellator;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.function.Consumer;
+
+class OresList extends GuiScrollingList {
+ private final HashMap<String, Integer> ores;
+ private final List<String> keys;
+ private final GuiScreen parent;
+ private final Consumer<String> onSelected;
+
+ private int selected = -1;
+
+ public OresList(GuiScreen parent, int width, int height, int top, int bottom, int left, int entryHeight, HashMap<String, Integer> aOres, Consumer<String> onSelected) {
+ super(parent.mc, width, height, top, bottom, left, entryHeight);
+ this.parent = parent;
+ this.onSelected = onSelected;
+ ores = aOres;
+ keys = new ArrayList(ores.keySet());
+ Collections.sort(keys);
+ keys.add(0, "All");
+ selected = 0;
+ }
+
+ @Override
+ protected int getSize() {
+ return ores.size();
+ }
+
+ @Override
+ protected void elementClicked(int index, boolean doubleClick) {
+ selected = index;
+ if(onSelected != null) onSelected.accept(keys.get(index));
+ }
+
+ @Override
+ protected boolean isSelected(int index) {
+ return selected == index;
+ }
+
+ @Override
+ protected void drawBackground() {}
+
+ @Override
+ protected void drawSlot(int slotIdx, int entryRight, int slotTop, int slotBuffer, Tessellator tess) {
+ parent.drawString(
+ parent.mc.fontRenderer,
+ parent.mc.fontRenderer.trimStringToWidth(keys.get(slotIdx), listWidth - 10),
+ this.left + 3,
+ slotTop,
+ ores.getOrDefault(keys.get(slotIdx), 0x7d7b76)
+ );
+ }
+}
diff --git a/src/main/java/com/detrav/gui/textures/DetravMapTexture.java b/src/main/java/com/detrav/gui/textures/DetravMapTexture.java
index 58d69260ce..5cf913985c 100644
--- a/src/main/java/com/detrav/gui/textures/DetravMapTexture.java
+++ b/src/main/java/com/detrav/gui/textures/DetravMapTexture.java
@@ -1,48 +1,100 @@
package com.detrav.gui.textures;
-import java.awt.image.BufferedImage;
-import java.util.HashMap;
-
-import org.lwjgl.opengl.GL11;
-
-import com.detrav.net.DetravProPickPacket00;
-
-import net.minecraft.client.Minecraft;
+import com.detrav.net.ProspectingPacket;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.AbstractTexture;
import net.minecraft.client.renderer.texture.TextureUtil;
import net.minecraft.client.resources.IResourceManager;
+import org.lwjgl.opengl.GL11;
+
+import java.awt.Color;
+import java.awt.image.BufferedImage;
+import java.awt.image.WritableRaster;
/**
* Created by wital_000 on 21.03.2016.
*/
public class DetravMapTexture extends AbstractTexture {
- private DetravProPickPacket00 packet;
+ public final ProspectingPacket packet;
+ private String selected = "All";
+ public int width = -1;
+ public int height = -1;
- public DetravMapTexture(DetravProPickPacket00 aPacket)
+ public DetravMapTexture(ProspectingPacket aPacket)
{
packet = aPacket;
}
- public int width = -1;
- public int height = -1;
- public HashMap<String,Integer> ores = null;
+ private BufferedImage getImage() {
+ int wh = (packet.size * 2 + 1) * 16;
+
+ BufferedImage image = new BufferedImage(wh, wh, BufferedImage.TYPE_INT_ARGB);
+ WritableRaster raster = image.getRaster();
+
+ int playerI = packet.posX - (packet.chunkX - packet.size) * 16 - 1; // Correct player offset
+ int playerJ = packet.posZ - (packet.chunkZ - packet.size) * 16 - 1;
+ for (int i = 0; i < wh; i++) {
+ for (int j = 0; j < wh; j++) {
+ image.setRGB(i, j, Color.WHITE.getRGB());
+ if (packet.map[i][j] != null) {
+ if (packet.ptype == 0 || packet.ptype == 1) {
+ for (short meta : packet.map[i][j].values()) {
+ final String name = packet.metaMap.get(meta);
+ if (!selected.equals("All") && !selected.equals(name)) continue;
+ image.setRGB(i, j, packet.ores.get(name) | 0XFF000000);
+ break;
+ }
+ } else if (packet.ptype == 2) {
+ final short fluidId = packet.map[i][j].get((byte) 1), fluidSize = packet.map[i][j].get((byte) 2);
+ final String name = packet.metaMap.get(fluidId);
+
+ // Variables used to locate within a chunk.
+ final int k = (i % 16), l = (j % 16);
+
+ if( ( (k + l * 16) * 3) < (fluidSize + 48) ) {
+ image.setRGB(i, j, packet.ores.get(name));
+ }
+ }else if (packet.ptype == 3) {
+ final short meta = packet.map[i][j].get((byte) 1);
+ final String name = packet.metaMap.get(meta);
+ image.setRGB(i, j, packet.ores.get(name));
+ }
+ }
+ // draw player pos
+ if (i == playerI || j == playerJ) {
+ raster.setSample(i, j, 0, (raster.getSample(i, j, 0) + 255) / 2);
+ raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
+ raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
+ }
+ // draw grid
+ if ((i) % 16 == 0 || (j) % 16 == 0) {
+ raster.setSample(i, j, 0, raster.getSample(i, j, 0) / 2);
+ raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
+ raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
+ }
+ }
+ }
+
+ return image;
+ }
+
@Override
- public void loadTexture(IResourceManager p_110551_1_){
+ public void loadTexture(IResourceManager resourceManager){
this.deleteGlTexture();
- if(packet!=null)
- {
+ if(packet != null) {
int tId = getGlTextureId();
if(tId <0) return;
- BufferedImage bufferedimage = packet.getImage((int)Minecraft.getMinecraft().thePlayer.posX,(int)Minecraft.getMinecraft().thePlayer.posZ);
- TextureUtil.uploadTextureImageAllocate(this.getGlTextureId(), bufferedimage, false, false);
+ TextureUtil.uploadTextureImageAllocate(this.getGlTextureId(), getImage(), false, false);
width = packet.getSize();
height = packet.getSize();
- ores = packet.getOres();
}
- //GL11.glDrawPixels();
+ }
+
+ public void loadTexture(IResourceManager resourceManager, String selected){
+ this.selected = selected;
+ loadTexture(resourceManager);
}
public int glBindTexture() {
@@ -51,12 +103,10 @@ public class DetravMapTexture extends AbstractTexture {
return this.glTextureId;
}
- public void draw(int x, int y)
- {
+ public void draw(int x, int y) {
float f = 1F / (float)width;
float f1 = 1F / (float)height;
- int u = 0;
- int v = 0;
+ int u = 0, v = 0;
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.addVertexWithUV((double)(x), (double)(y + height), 0, (double)((float)(u) * f), (double)((float)(v + height) * f1));
diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java
index 7144454b16..6e3e0bef71 100644
--- a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java
+++ b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java
@@ -4,10 +4,9 @@ import java.util.List;
import com.detrav.DetravScannerMod;
import com.detrav.enums.DetravToolDictNames;
-import com.detrav.items.tools.DetravProPick;
-import com.detrav.items.tools.DetravToolElectricProPick;
+import com.detrav.items.tools.DetravProspector;
+import com.detrav.items.tools.DetravToolElectricProspector;
-import cpw.mods.fml.common.Loader;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.enums.TC_Aspects;
@@ -20,9 +19,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
-import net.minecraftforge.fluids.FluidStack;
-
-import static com.detrav.DetravScannerMod.DEBUGBUILD;
/**
* Created by wital_000 on 19.03.2016.
@@ -33,137 +29,58 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool {
public DetravMetaGeneratedTool01() {
super("detrav.metatool.01");
INSTANCE = this;
- addTool(0,"Prospector's Scanner(ULV)","", new DetravProPick(0), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
- addTool(2,"Prospector's Scanner(LV)","", new DetravProPick(1), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
- addTool(4,"Prospector's Scanner(MV)","", new DetravProPick(2), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
- addTool(6,"Prospector's Scanner(HV)","", new DetravProPick(3), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
- addTool(8,"Prospector's Scanner(EV)","", new DetravProPick(4), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
- addTool(10,"Prospector's Scanner(IV)","", new DetravProPick(5), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
- addTool(12,"Prospector's Scanner(LuV)","", new DetravProPick(6), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
- addTool(14,"Prospector's Scanner(ZPM)","", new DetravProPick(7), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
- addTool(16,"Prospector's Scanner(UV)","", new DetravProPick(8), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
- addTool(18,"Prospector's Scanner(UHV)","", new DetravProPick(9), new Object[]{DetravToolDictNames.craftingToolProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
-
- addTool(100, "Electric Prospector's Scanner (LuV)", "", new DetravToolElectricProPick(6), new Object[]{DetravToolDictNames.craftingToolElectricProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L));
- addTool(102, "Electric Prospector's Scanner (ZPM)", "", new DetravToolElectricProPick(7), new Object[]{DetravToolDictNames.craftingToolElectricProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L));
- addTool(104, "Electric Prospector's Scanner (UV)", "", new DetravToolElectricProPick(8), new Object[]{DetravToolDictNames.craftingToolElectricProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L));
- addTool(106, "Electric Prospector's Scanner (UHV)", "", new DetravToolElectricProPick(9), new Object[]{DetravToolDictNames.craftingToolElectricProPick, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L));
+ addTool(0, "Prospector's Scanner(ULV)", "", new DetravProspector(0), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(2, "Prospector's Scanner(LV)", "", new DetravProspector(1), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(4, "Prospector's Scanner(MV)", "", new DetravProspector(2), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(6, "Prospector's Scanner(HV)", "", new DetravProspector(3), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(8, "Prospector's Scanner(EV)", "", new DetravProspector(4), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(10, "Prospector's Scanner(IV)", "", new DetravProspector(5), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(12, "Prospector's Scanner(LuV)", "", new DetravProspector(6), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(14, "Prospector's Scanner(ZPM)", "", new DetravProspector(7), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(16, "Prospector's Scanner(UV)", "", new DetravProspector(8), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+ addTool(18, "Prospector's Scanner(UHV)", "", new DetravProspector(9), new Object[]{DetravToolDictNames.craftingToolProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 4L));
+
+ addTool(100, "Electric Prospector's Scanner (LuV)", "", new DetravToolElectricProspector(6), new Object[]{DetravToolDictNames.craftingToolElectricProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L));
+ addTool(102, "Electric Prospector's Scanner (ZPM)", "", new DetravToolElectricProspector(7), new Object[]{DetravToolDictNames.craftingToolElectricProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L));
+ addTool(104, "Electric Prospector's Scanner (UV)", "", new DetravToolElectricProspector(8), new Object[]{DetravToolDictNames.craftingToolElectricProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L));
+ addTool(106, "Electric Prospector's Scanner (UHV)", "", new DetravToolElectricProspector(9), new Object[]{DetravToolDictNames.craftingToolElectricProspector, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)}, new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L));
setCreativeTab(DetravScannerMod.TAB_DETRAV);
}
+ @SuppressWarnings("unchecked")
public void addAdditionalToolTips(List aList, ItemStack aStack, EntityPlayer aPlayer) {
- //getElectricStats()
- //super.addAdditionalToolTips();
long tMaxDamage = getToolMaxDamage(aStack);
Materials tMaterial = getPrimaryMaterial(aStack);
IToolStats tStats = getToolStats(aStack);
int tOffset = aList.size();
- //getElectricStats(aStack) != null ? 2 : 1;
- if (tStats != null) {
- String name = aStack.getUnlocalizedName();
- String num = name.substring("gt.detrav.metatool.01.".length());
- int meta = Integer.parseInt(num);
- int range = getHarvestLevel(aStack, "")/2+(meta/4);
- if ((range % 2) == 0 ) {
- range += 1;
- }
- if (meta<100) {
- aList.add(tOffset + 0, EnumChatFormatting.WHITE + StatCollector.translateToLocal("tooltip.detrav.scanner.durability") + EnumChatFormatting.GREEN + Long.toString(tMaxDamage - getToolDamage(aStack)) + " / " + Long.toString(tMaxDamage) + EnumChatFormatting.GRAY);
- aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.getLocalizedNameForItem("%material") + EnumChatFormatting.GRAY);
- aList.add(tOffset + 2, EnumChatFormatting.WHITE + StatCollector.translateToLocal("tooltip.detrav.scanner.range") +
- Integer.toString(range) +
- "x"+
- Integer.toString(range) +
- EnumChatFormatting.GRAY);
- aList.add(tOffset + 3, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.0") + EnumChatFormatting.GRAY);
- aList.add(tOffset + 4, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.1") + EnumChatFormatting.GRAY);
- aList.add(tOffset + 5, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.success.chance")+EnumChatFormatting.RESET+Integer.toString(((((1+meta)*8) <= 100)? ((1+meta)*8) : 100))+EnumChatFormatting.GRAY+"%");
- aList.add(tOffset + 6, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.distance.0"));
- aList.add(tOffset + 7, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.distance.1"));
-
- /*aList.add(tOffset + 4, "Traces: 1-9");
- aList.add(tOffset + 5, "Small: 10-29");
- aList.add(tOffset + 6, "Medium: 30-59");
- aList.add(tOffset + 7, "Large: 60-99");
- aList.add(tOffset + 8, "Very large: 100-***");*/
- }else if (meta >=100 && meta<200) {
- aList.add(tOffset + 0, EnumChatFormatting.WHITE + StatCollector.translateToLocal("tooltip.detrav.scanner.durability") + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY);
- aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.getLocalizedNameForItem("%material") + EnumChatFormatting.GRAY);
- aList.add(tOffset + 2, EnumChatFormatting.WHITE + StatCollector.translateToLocal("tooltip.detrav.scanner.range") + EnumChatFormatting.YELLOW + (getHarvestLevel(aStack, "") * 2 + 1) + "x" + (getHarvestLevel(aStack, "") * 2 + 1) + EnumChatFormatting.GRAY);
- aList.add(tOffset + 3, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.0"));
- aList.add(tOffset + 4, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.1"));
- aList.add(tOffset + 5, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.2"));
- }
-
- /* unused
- case 106:
- case 107:
- aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Loss/Tick EU: " + EnumChatFormatting.GREEN + getElectricStatsLoss(aStack) + EnumChatFormatting.GRAY);
- aList.add(tOffset + 1, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY);
- aList.add(tOffset + 2, "Can use as normal battery");
- aList.add(tOffset + 3, "x4 charge speed for tools");
- aList.add(tOffset + 4, "Right click to open GUI");
- break;
- case 108:
- aList.add(tOffset + 0, EnumChatFormatting.WHITE + "It can configure any programmed circuit" + EnumChatFormatting.GRAY);
- break;
- case 200:
- int count;
- count = ((int)(getLevel(aStack,0)*100)); if(count > 0) {aList.add(tOffset, "Bonus 0 level: +" + count + "%");tOffset++;}
- count = ((int)(getLevel(aStack,1)*100)); if(count > 0) {aList.add(tOffset, "Bonus 1 level: +" + count + "%");tOffset++;}
- count = ((int)(getLevel(aStack,2)*100)); if(count > 0) {aList.add(tOffset, "Bonus 2 level: +" + count + "%");tOffset++;}
- count = ((int)(getLevel(aStack,3)*100)); if(count > 0) {aList.add(tOffset, "Bonus 3 level: +" + count + "%");tOffset++;}
- count = ((int)(getLevel(aStack,4)*100)); if(count > 0) {aList.add(tOffset, "Bonus 4 level: +" + count + "%");tOffset++;}
- count = ((int)(getLevel(aStack,5)*100)); if(count > 0) {aList.add(tOffset, "Bonus 5 level: +" + count + "%");tOffset++;}
- count = ((int)(getLevel(aStack,6)*100)); if(count > 0) {aList.add(tOffset, "Bonus 6 level: +" + count + "%");tOffset++;}
- count = ((int)(getLevel(aStack,7)*100)); if(count > 0) {aList.add(tOffset, "Bonus 7 level: +" + count + "%");tOffset++;}
- count = ((int)(getLevel(aStack,8)*100)); if(count > 0) {aList.add(tOffset, "Bonus 8 level: +" + count + "%");tOffset++;}
- break;
- case 220:
- aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY);
- aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY);
- aList.add(tOffset + 2, "It can suck in fluid");
- FluidStack stack = getFluidStackFromDetravData(aStack);
- if(stack!=null && stack.amount >0)
- {
- aList.add(tOffset +3, "Fluid: "+stack.getLocalizedName()+" : "+stack.amount);
- }
- else
- {
- aList.add(tOffset +3, "Fluid: empty");
- }
- break;
-
- }
- */
+ if (tStats == null) return;
+
+ String name = aStack.getUnlocalizedName();
+ String num = name.substring("gt.detrav.metatool.01.".length());
+ int meta = Integer.parseInt(num);
+ int range = getHarvestLevel(aStack, "")/2+(meta/4);
+ if ((range % 2) == 0 ) {
+ range += 1;
}
- }
-
- public Long getElectricStatsLoss(ItemStack aStack) {
- NBTTagCompound aNBT = aStack.getTagCompound();
- if (aNBT != null) {
- aNBT = aNBT.getCompoundTag("GT.ToolStats");
- if (aNBT != null && aNBT.getBoolean("Electric"))
- return aNBT.getLong("Loss");
+ if (meta<100) {
+ aList.add(tOffset + 0, EnumChatFormatting.WHITE + StatCollector.translateToLocal("tooltip.detrav.scanner.durability") + EnumChatFormatting.GREEN + Long.toString(tMaxDamage - getToolDamage(aStack)) + " / " + Long.toString(tMaxDamage) + EnumChatFormatting.GRAY);
+ aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.getLocalizedNameForItem("%material") + EnumChatFormatting.GRAY);
+ aList.add(tOffset + 2, EnumChatFormatting.WHITE + StatCollector.translateToLocal("tooltip.detrav.scanner.range") + Integer.toString(range) + "x"+ Integer.toString(range) + EnumChatFormatting.GRAY);
+ aList.add(tOffset + 3, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.0") + EnumChatFormatting.GRAY);
+ aList.add(tOffset + 4, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.1") + EnumChatFormatting.GRAY);
+ aList.add(tOffset + 5, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.success.chance")+EnumChatFormatting.RESET+Integer.toString(((((1+meta)*8) <= 100)? ((1+meta)*8) : 100))+EnumChatFormatting.GRAY+"%");
+ aList.add(tOffset + 6, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.distance.0"));
+ aList.add(tOffset + 7, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.distance.1"));
+
+ } else if (meta >=100 && meta<200) {
+ aList.add(tOffset + 0, EnumChatFormatting.WHITE + StatCollector.translateToLocal("tooltip.detrav.scanner.durability") + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY);
+ aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.getLocalizedNameForItem("%material") + EnumChatFormatting.GRAY);
+ aList.add(tOffset + 2, EnumChatFormatting.WHITE + StatCollector.translateToLocal("tooltip.detrav.scanner.range") + EnumChatFormatting.YELLOW + (getHarvestLevel(aStack, "") * 2 + 1) + "x" + (getHarvestLevel(aStack, "") * 2 + 1) + EnumChatFormatting.GRAY);
+ aList.add(tOffset + 3, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.0"));
+ aList.add(tOffset + 4, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.1"));
+ aList.add(tOffset + 5, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.2"));
}
- return 0L;
- }
-
- public final ItemStack getToolWithStatsPlus(int aToolID, int aAmount, Materials aPrimaryMaterial, Materials aSecondaryMaterial, long[] aElectricArray, long aLoss) {
- return getToolWithStatsPlus(aToolID, aAmount, aPrimaryMaterial, aSecondaryMaterial, aElectricArray, aLoss, 10000L);
- }
- public final ItemStack getToolWithStatsPlus(int aToolID, int aAmount, Materials aPrimaryMaterial, Materials aSecondaryMaterial, long[] aElectricArray, long aLoss, long durability) {
- ItemStack result = getToolWithStats(aToolID, aAmount, aPrimaryMaterial, aSecondaryMaterial, aElectricArray);
- NBTTagCompound aNBT = result.getTagCompound();
- if (aNBT != null) {
- aNBT = aNBT.getCompoundTag("GT.ToolStats");
- if (aNBT != null && aNBT.getBoolean("Electric")) {
- aNBT.setLong("Loss", aLoss);
- }
- aNBT.setLong("MaxDamage", durability);
- }
- return result;
}
public Long getToolGTDetravData(ItemStack aStack) {
@@ -188,183 +105,52 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool {
return false;
}
- public void setLevelToItemStack(ItemStack aStack, int level, float percent)
- {
- if(aStack == null) return;
- NBTTagCompound aNBT = aStack.getTagCompound();
- if(aNBT == null) {
- aNBT = new NBTTagCompound();
- NBTTagCompound detravLevel = new NBTTagCompound();
- aNBT.setTag("DetravLevel", detravLevel);
- aStack.setTagCompound(aNBT);
- }
- {
- NBTTagCompound detravLevel = aNBT.getCompoundTag("DetravLevel");
- if (detravLevel == null || hasnolevel(detravLevel)) {
- detravLevel = new NBTTagCompound();
- aNBT.setTag("DetravLevel", detravLevel);
- }
- detravLevel.setFloat("level"+Integer.toString(level),percent);
- }
- }
-
-
- private boolean hasnolevel(NBTTagCompound detravLevel)
- {
- for(int i=0;i<9;i++)
- {
- if(detravLevel.hasKey("level"+Integer.toString(i)))
- return false;
- }
- return true;
- }
-
- public float getLevel(ItemStack aStack, int level)
- {
- if(aStack == null) return 0;
- NBTTagCompound aNBT = aStack.getTagCompound();
- if(aNBT ==null) return 0;
- NBTTagCompound detravLevel = aNBT.getCompoundTag("DetravLevel");
- if(detravLevel == null) return 0;
- return detravLevel.getFloat("level"+Integer.toString(level));
- }
-
- public boolean setItemStackToDetravData(ItemStack aStack, ItemStack what)
- {
- if(aStack == null) return false;
- NBTTagCompound aNBT = aStack.getTagCompound();
- if(aNBT == null) {
- aNBT = new NBTTagCompound();
- NBTTagCompound detravData = new NBTTagCompound();
- aNBT.setTag("DetravData", detravData);
- aStack.setTagCompound(aNBT);
- }
- {
- NBTTagCompound detravData = aNBT.getCompoundTag("DetravData");
- if (detravData == null || detravData.getShort("id") == 0) {
- detravData = new NBTTagCompound();
- aNBT.setTag("DetravData", detravData);
- }
- if (what == null)
- aNBT.removeTag("DetravData");
- else
- what.writeToNBT(detravData);
- return true;
- }
- }
-
- public ItemStack getItemStackFromDetravData(ItemStack aStack)
- {
- if(aStack == null) return null;
- NBTTagCompound aNBT = aStack.getTagCompound();
- if(aNBT ==null) return null;
- NBTTagCompound detravData = aNBT.getCompoundTag("DetravData");
- if(detravData == null) return null;
- return ItemStack.loadItemStackFromNBT(detravData);
- }
-
-
- public boolean setFluidStackToDetravData(ItemStack aStack, FluidStack what)
- {
- if(aStack == null) return false;
- NBTTagCompound aNBT = aStack.getTagCompound();
- if(aNBT == null) {
- aNBT = new NBTTagCompound();
- NBTTagCompound detravData = new NBTTagCompound();
- aNBT.setTag("DetravData", detravData);
- aStack.setTagCompound(aNBT);
- }
- {
- NBTTagCompound detravData = aNBT.getCompoundTag("DetravData");
- if (detravData == null || detravData.getShort("id") == 0) {
- detravData = new NBTTagCompound();
- aNBT.setTag("DetravData", detravData);
- }
- if (what == null)
- aNBT.removeTag("DetravData");
- else
- what.writeToNBT(detravData);
- return true;
- }
- }
-
- public FluidStack getFluidStackFromDetravData(ItemStack aStack)
- {
- if(aStack == null) return null;
- NBTTagCompound aNBT = aStack.getTagCompound();
- if(aNBT ==null) return null;
- NBTTagCompound detravData = aNBT.getCompoundTag("DetravData");
- if(detravData == null) return null;
- return FluidStack.loadFluidStackFromNBT(detravData);
- }
-
- //SubItems TODO
+ @SuppressWarnings("unchecked")
public void getDetravSubItems(Item item, CreativeTabs detravCreativeTab, List list) {
ItemStack dStack;
- if (Loader.isModLoaded("dreamcraft")) {
+ if (DetravScannerMod.isDreamcraftLoaded) {
//Materials at tiers
- dStack = getToolWithStats(0, 1, Materials.Polycaprolactam, Materials.Polycaprolactam, null);
- list.add(dStack);
- dStack = getToolWithStats(2, 1, Materials.Steel, Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(2, 1, Materials.Bronze, Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(4, 1, Materials.Manyullyn, Materials.Aluminium, null);
- list.add(dStack);
- dStack = getToolWithStats(6, 1, Materials.DamascusSteel, Materials.DamascusSteel, null);
- list.add(dStack);
- dStack = getToolWithStats(8, 1, Materials.Titanium, Materials.Titanium, null);
- list.add(dStack);
- dStack = getToolWithStats(10, 1, Materials.TungstenSteel, Materials.TungstenSteel, null);
- list.add(dStack);
- dStack = getToolWithStats(12, 1, Materials.Iridium, Materials.Iridium, null);
- list.add(dStack);
- dStack = getToolWithStats(12, 1, Materials.Osmium, Materials.Osmium, null);
- list.add(dStack);
- dStack = getToolWithStats(14, 1, Materials.Neutronium, Materials.Neutronium, null);
- list.add(dStack);
-
- dStack = getToolWithStats(16, 1, Materials.InfinityCatalyst, Materials.InfinityCatalyst, null);
- list.add(dStack);
- dStack = getToolWithStats(18, 1, Materials.Infinity, Materials.Infinity, null);
- list.add(dStack);
+ list.add(getToolWithStats(0, 1, Materials.Polycaprolactam, Materials.Polycaprolactam, null));
+ list.add(getToolWithStats(2, 1, Materials.Steel, Materials.Steel, null));
+ list.add(getToolWithStats(2, 1, Materials.Bronze, Materials.Steel, null));
+ list.add(getToolWithStats(4, 1, Materials.Manyullyn, Materials.Aluminium, null));
+ list.add(getToolWithStats(6, 1, Materials.DamascusSteel, Materials.DamascusSteel, null));
+ list.add(getToolWithStats(8, 1, Materials.Titanium, Materials.Titanium, null));
+ list.add(getToolWithStats(10, 1, Materials.TungstenSteel, Materials.TungstenSteel, null));
+ list.add(getToolWithStats(12, 1, Materials.Iridium, Materials.Iridium, null));
+ list.add(getToolWithStats(12, 1, Materials.Osmium, Materials.Osmium, null));
+ list.add(getToolWithStats(14, 1, Materials.Neutronium, Materials.Neutronium, null));
+ list.add(getToolWithStats(16, 1, Materials.InfinityCatalyst, Materials.InfinityCatalyst, null));
+ list.add(getToolWithStats(18, 1, Materials.Infinity, Materials.Infinity, null));
}
//Steel for comparison
- dStack = getToolWithStats(0,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(2,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(4,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(6,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(8,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(10,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(12,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(14,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(16,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
- dStack = getToolWithStats(18,1,Materials.Steel,Materials.Steel, null);
- list.add(dStack);
+ list.add(getToolWithStats(0,1,Materials.Steel,Materials.Steel, null));
+ list.add(getToolWithStats(2,1,Materials.Steel,Materials.Steel, null));
+ list.add(getToolWithStats(4,1,Materials.Steel,Materials.Steel, null));
+ list.add(getToolWithStats(6,1,Materials.Steel,Materials.Steel, null));
+ list.add(getToolWithStats(8,1,Materials.Steel,Materials.Steel, null));
+ list.add(getToolWithStats(10,1,Materials.Steel,Materials.Steel, null));
+ list.add(getToolWithStats(12,1,Materials.Steel,Materials.Steel, null));
+ list.add(getToolWithStats(14,1,Materials.Steel,Materials.Steel, null));
+ list.add(getToolWithStats(16,1,Materials.Steel,Materials.Steel, null));
+ list.add(getToolWithStats(18,1,Materials.Steel,Materials.Steel, null));
//Electric Scanners
dStack = getToolWithStats(100, 1, Materials.Iridium, Materials.TungstenSteel, new long[]{102400000L, GT_Values.V[6], 6L, -1L});
setCharge(dStack,102400000L);
list.add(dStack);
+
dStack = getToolWithStats(102, 1, Materials.Neutronium, Materials.TungstenSteel, new long[]{409600000L, GT_Values.V[7], 7L, -1L});
setCharge(dStack,409600000L);
list.add(dStack);
- if (Loader.isModLoaded("dreamcraft")) {
+ if (DetravScannerMod.isDreamcraftLoaded) {
dStack = getToolWithStats(104, 1, Materials.InfinityCatalyst, Materials.TungstenSteel, new long[]{1638400000L, GT_Values.V[8], 8L, -1L});
setCharge(dStack, 1638400000L);
list.add(dStack);
+
dStack = getToolWithStats(106, 1, Materials.Infinity, Materials.TungstenSteel, new long[]{6553600000L, GT_Values.V[9], 9L, -1L});
setCharge(dStack, 6553600000L);
list.add(dStack);
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java
index fecec059dc..bb26d09476 100644
--- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java
+++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java
@@ -1,11 +1,11 @@
package com.detrav.items.behaviours;
+import com.detrav.DetravScannerMod;
import com.detrav.items.DetravMetaGeneratedTool01;
import com.detrav.net.DetravNetwork;
-import com.detrav.net.DetravProPickPacket00;
+import com.detrav.net.ProspectingPacket;
import com.detrav.utils.BartWorksHelper;
import com.detrav.utils.GTppHelper;
-import cpw.mods.fml.common.Loader;
import gregtech.api.items.GT_MetaBase_Item;
import gregtech.api.objects.ItemData;
import gregtech.api.util.GT_LanguageManager;
@@ -20,10 +20,10 @@ import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import net.minecraftforge.fluids.FluidStack;
-import net.minecraft.util.StatCollector;
import java.util.ArrayList;
import java.util.List;
@@ -31,9 +31,9 @@ import java.util.List;
/**
* Created by wital_000 on 19.03.2016.
*/
-public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPick {
+public class BehaviourDetravToolElectricProspector extends BehaviourDetravToolProPick {
- public BehaviourDetravToolElectricProPick(int aCosts) {
+ public BehaviourDetravToolElectricProspector(int aCosts) {
super(aCosts);
}
@@ -64,61 +64,49 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi
return super.onItemRightClick(aItem, aStack, aWorld, aPlayer);
}
- //aPlayer.openGui();
- DetravMetaGeneratedTool01 tool = (DetravMetaGeneratedTool01) aItem;
- //aWorld.getChunkFromBlockCoords()
- int cX = ((int) aPlayer.posX) >> 4;
- int cZ = ((int) aPlayer.posZ) >> 4;
+ final DetravMetaGeneratedTool01 tool = (DetravMetaGeneratedTool01) aItem;
+ final int cX = ((int) aPlayer.posX) >> 4;
+ final int cZ = ((int) aPlayer.posZ) >> 4;
int size = aItem.getHarvestLevel(aStack, "") + 1;
- List<Chunk> chunks = new ArrayList<Chunk>();
- //aPlayer.addChatMessage(new ChatComponentText("Scanning Begin, wait!"));
- //DetravProPickPacket00 packet = new DetravProPickPacket00();
+ final List<Chunk> chunks = new ArrayList<>();
+ aPlayer.addChatMessage(new ChatComponentText("Scanning..."));
+
for (int i = -size; i <= size; i++)
for (int j = -size; j <= size; j++)
if (i != -size && i != size && j != -size && j != size)
chunks.add(aWorld.getChunkFromChunkCoords(cX + i, cZ + j));
size = size - 1;
- //c.gene
- DetravProPickPacket00 packet = new DetravProPickPacket00();
- packet.ptype = (int) data;
- packet.chunkX = cX;
- packet.chunkZ = cZ;
- packet.size = size;
- String small_ore_keyword = StatCollector.translateToLocal("detrav.scanner.small_ore.keyword");
+
+ final ProspectingPacket packet = new ProspectingPacket(cX, cZ, (int) aPlayer.posX, (int) aPlayer.posZ, size, data);
+ final String small_ore_keyword = StatCollector.translateToLocal("detrav.scanner.small_ore.keyword");
for (Chunk c : chunks) {
for (int x = 0; x < 16; x++)
for (int z = 0; z < 16; z++) {
- int ySize = c.getHeightValue(x, z);//(int)aPlayer.posY;//c.getHeightValue(x, z);
+ final int ySize = c.getHeightValue(x, z);
for (int y = 1; y < ySize; y++) {
switch (data) {
case 0:
case 1:
- Block tBlock = c.getBlock(x, y, z);
+ final Block tBlock = c.getBlock(x, y, z);
short tMetaID = (short) c.getBlockMetadata(x, y, z);
if (tBlock instanceof GT_Block_Ores_Abstract) {
TileEntity tTileEntity = c.getTileEntityUnsafe(x, y, z);
- if ((tTileEntity != null)
- && (tTileEntity instanceof GT_TileEntity_Ores)
- && ((GT_TileEntity_Ores) tTileEntity).mNatural == true) {
+ if ((tTileEntity instanceof GT_TileEntity_Ores) && ((GT_TileEntity_Ores) tTileEntity).mNatural) {
tMetaID = (short) ((GT_TileEntity_Ores) tTileEntity).getMetaData();
try {
-
- String name = GT_LanguageManager.getTranslation(
- tBlock.getUnlocalizedName() + "." + tMetaID + ".name");
- if (name.startsWith(small_ore_keyword)) if (data != 1) continue;
+ String name = GT_LanguageManager.getTranslation(tBlock.getUnlocalizedName() + "." + tMetaID + ".name");
+ if (data != 1 && name.startsWith(small_ore_keyword)) continue;
packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, tMetaID);
} catch (Exception e) {
String name = tBlock.getUnlocalizedName() + ".";
- if (name.contains(".small.")) if (data != 1) continue;
+ if (data != 1 && name.contains(".small.")) continue;
packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, tMetaID);
}
}
- } else if (Loader.isModLoaded("miscutils") && GTppHelper.isGTppBlock(tBlock)) {
- short meta = GTppHelper.getGTppMeta(tBlock);
- packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, meta);
- } else if (Loader.isModLoaded("bartworks") && BartWorksHelper.isOre(tBlock)) {
- if (data != 1 && BartWorksHelper.isSmallOre(tBlock))
- continue;
+ } else if (DetravScannerMod.isGTppLoaded && GTppHelper.isGTppBlock(tBlock)) {
+ packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, GTppHelper.getGTppMeta(tBlock));
+ } else if (DetravScannerMod.isBartWorksLoaded && BartWorksHelper.isOre(tBlock)) {
+ if (data != 1 && BartWorksHelper.isSmallOre(tBlock)) continue;
packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, BartWorksHelper.getMetaFromBlock(c, x, y, z, tBlock));
} else if (data == 1) {
ItemData tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID));
@@ -133,8 +121,8 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi
}
FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(c.xPosition * 16 + x, c.zPosition * 16 + z), -1);
if (fStack.amount > 0) {
- packet.addBlock(c.xPosition * 16 + x, 2, c.zPosition * 16 + z, (short) fStack.amount);
packet.addBlock(c.xPosition * 16 + x, 1, c.zPosition * 16 + z, (short) fStack.getFluidID());
+ packet.addBlock(c.xPosition * 16 + x, 2, c.zPosition * 16 + z, (short) fStack.amount);
}
break;
case 3:
@@ -183,14 +171,11 @@ public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPi
return true;
}
else {
- //if (aWorld.getBlock(aX, aY, aZ).getMaterial() == Material.rock || aWorld.getBlock(aX, aY, aZ) == GregTech_API.sBlockOres1) {
if (!aWorld.isRemote) {
prospectSingleChunk( (DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld, aX, aY, aZ );
}
return true;
}
- //}
- //return false;
}
if (data < 3)
if (!aWorld.isRemote) {
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java
index 19cbe655f5..800e5336d4 100644
--- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java
+++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java
@@ -4,7 +4,6 @@ import com.detrav.DetravScannerMod;
import com.detrav.items.DetravMetaGeneratedTool01;
import com.detrav.utils.BartWorksHelper;
import com.detrav.utils.GTppHelper;
-import cpw.mods.fml.common.Loader;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.items.GT_MetaBase_Item;
@@ -37,12 +36,7 @@ import java.util.SplittableRandom;
*/
public class BehaviourDetravToolProPick extends Behaviour_None {
- static final int[] DISTANCEINTS = new int[] {
- 0,
- 4,
- 25,
- 64,
- };
+ static final int[] DISTANCEINTS = new int[] {0, 4, 25, 64};
int distTextIndex;
HashMap<String, Integer> ores;
@@ -157,9 +151,7 @@ public class BehaviourDetravToolProPick extends Behaviour_None {
return;
}
} else if (tAssotiation!=null){
- //if (aTileEntity instanceof GT_TileEntity_Ores) {
try {
- GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) aTileEntity;
String name = tAssotiation.toString();
addChatMassageByValue(aPlayer, -1, name);
if (!aPlayer.capabilities.isCreativeMode)
@@ -172,6 +164,7 @@ public class BehaviourDetravToolProPick extends Behaviour_None {
}
}else if (aRandom.nextInt(100) < chance) {
int data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack).intValue();
+ final String small_ore_keyword = StatCollector.translateToLocal("detrav.scanner.small_ore.keyword");
for (int x = 0; x < 16; x++)
for (int z = 0; z < 16; z++) {
int ySize = aChunk.getHeightValue(x, z);
@@ -181,30 +174,27 @@ public class BehaviourDetravToolProPick extends Behaviour_None {
short tMetaID = (short)aChunk.getBlockMetadata(x,y,z);
if (tBlock instanceof GT_Block_Ores_Abstract) {
TileEntity tTileEntity = aChunk.getTileEntityUnsafe(x,y,z);
- if ((tTileEntity!=null)
- && (tTileEntity instanceof GT_TileEntity_Ores)
- && ((GT_TileEntity_Ores) tTileEntity).mNatural == true) {
+ if ((tTileEntity instanceof GT_TileEntity_Ores)
+ && ((GT_TileEntity_Ores) tTileEntity).mNatural) {
tMetaID = (short)((GT_TileEntity_Ores) tTileEntity).getMetaData();
try {
- String name = Materials.getLocalizedNameForItem(
- GT_LanguageManager.getTranslation(tBlock.getUnlocalizedName() + "." + tMetaID + ".name"), tMetaID%1000);
- if (name.startsWith(StatCollector.translateToLocal("detrav.scanner.small_ore.keyword"))) if (data != 1) continue;
+ String name = Materials.getLocalizedNameForItem(GT_LanguageManager.getTranslation(tBlock.getUnlocalizedName() + "." + tMetaID + ".name"), tMetaID%1000);
+ if (data != 1 && name.startsWith(small_ore_keyword)) continue;
addOreToHashMap(name, aPlayer);
}
catch(Exception e) {
String name = tBlock.getUnlocalizedName() + ".";
- if (name.contains(".small.")) if (data != 1) continue;
+ if (data != 1 && name.contains(".small.")) continue;
addOreToHashMap(name, aPlayer);
}
}
- } else if (Loader.isModLoaded("miscutils") && GTppHelper.isGTppBlock(tBlock) ) {
+ } else if (DetravScannerMod.isGTppLoaded && GTppHelper.isGTppBlock(tBlock) ) {
String name = GTppHelper.getGTppVeinName(tBlock);
if (!name.isEmpty())
addOreToHashMap(name, aPlayer);
- } else if (Loader.isModLoaded("bartworks") && BartWorksHelper.isOre(tBlock)){
- if (data != 1 && BartWorksHelper.isSmallOre(tBlock))
- continue;
- addOreToHashMap(GT_LanguageManager.getTranslation((BartWorksHelper.isSmallOre(tBlock) ? "bw.blockores.02." : "bw.blockores.01.") + ((BartWorksHelper.getMetaFromBlock(aChunk,x,y,z,tBlock))*-1) + ".name"), aPlayer);
+ } else if (DetravScannerMod.isBartWorksLoaded && BartWorksHelper.isOre(tBlock)){
+ if (data != 1 && BartWorksHelper.isSmallOre(tBlock)) continue;
+ addOreToHashMap(GT_LanguageManager.getTranslation((BartWorksHelper.isSmallOre(tBlock) ? "bw.blockores.02." : "bw.blockores.01.") + ((BartWorksHelper.getMetaFromBlock(aChunk,x,y,z,tBlock))*-1) + ".name"), aPlayer);
} else if (data == 1) {
tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID));
if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) {
@@ -212,18 +202,14 @@ public class BehaviourDetravToolProPick extends Behaviour_None {
try {
tMetaID = (short)tAssotiation.mMaterial.mMaterial.mMetaItemSubID;
- String name = Materials.getLocalizedNameForItem(GT_LanguageManager.getTranslation(
- "gt.blockores." + tMetaID + ".name"), tMetaID%1000);
+ String name = Materials.getLocalizedNameForItem(GT_LanguageManager.getTranslation("gt.blockores." + tMetaID + ".name"), tMetaID%1000);
addOreToHashMap(name, aPlayer);
} catch (Exception e1) {
String name = tAssotiation.toString();
addOreToHashMap(name, aPlayer);
}
}
- catch (Exception e)
- {
-
- }
+ catch (Exception ignored) { }
}
}
diff --git a/src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java b/src/main/java/com/detrav/items/processing/ProcessingDetravToolProspector.java
index 0dd97fb0fc..a54bbbb768 100644
--- a/src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java
+++ b/src/main/java/com/detrav/items/processing/ProcessingDetravToolProspector.java
@@ -15,17 +15,14 @@ import static com.detrav.DetravScannerMod.DEBUGBUILD;
/**
* Created by wital_000 on 18.03.2016.
*/
-public class ProcessingDetravToolProPick implements gregtech.api.interfaces.IOreRecipeRegistrator {
- public ProcessingDetravToolProPick() {
+public class ProcessingDetravToolProspector implements gregtech.api.interfaces.IOreRecipeRegistrator {
+ public ProcessingDetravToolProspector() {
OrePrefixes.toolHeadPickaxe.add(this);
-
}
public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) {
- if(!aPrefix.doGenerateItem(aMaterial))
- return;
- if (DEBUGBUILD)
- return;
+ if(!aPrefix.doGenerateItem(aMaterial)) return;
+ if (DEBUGBUILD) return;
try {
//ULV disabled
//GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(0, 1, aMaterial, Materials.Lead, null), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"SHE","CPC","PXP",'E',OreDictionary.getOres("cellSulfuricAcid").get(0),'S',OreDictionary.getOres("cellHydroxide").get(0),'H',OrePrefixes.toolHeadDrill.get(aMaterial),'P',OrePrefixes.plate.get(aMaterial),'C',OrePrefixes.circuit.get(Materials.Primitive),'X',gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList.Sensor_ULV});
@@ -46,7 +43,7 @@ public class ProcessingDetravToolProPick implements gregtech.api.interfaces.IOre
GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(102, 1, aMaterial, Materials.Osmium, new long[]{409600000L, GT_Values.V[7], 7L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_ZPM, Character.valueOf('H'), OrePrefixes.toolHeadDrill.get(aMaterial), Character.valueOf('E'), ItemList.Emitter_ZPM, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Ultimate), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Osmium), Character.valueOf('B'), CustomItemList.BatteryHull_ZPM_Full.get(1L)});
GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(104, 1, aMaterial, Materials.Neutronium, new long[]{1638400000L, GT_Values.V[8], 8L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_UV, Character.valueOf('H'), OrePrefixes.toolHeadDrill.get(aMaterial), Character.valueOf('E'), ItemList.Emitter_UV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Superconductor), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Neutronium), Character.valueOf('B'), CustomItemList.BatteryHull_UV_Full.get(1L)});
GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(106, 1, aMaterial, Materials.Infinity, new long[]{6553600000L, GT_Values.V[9], 9L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_UHV, Character.valueOf('H'), OrePrefixes.toolHeadDrill.get(aMaterial), Character.valueOf('E'), ItemList.Emitter_UHV, Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Infinite), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Infinity), Character.valueOf('B'), CustomItemList.BatteryHull_UHV_Full.get(1L)});
- }catch (Exception ignored){}
+ } catch (Exception ignored){}
}
}
diff --git a/src/main/java/com/detrav/items/tools/DetravProPick.java b/src/main/java/com/detrav/items/tools/DetravProspector.java
index 9d3b2de50c..38fb9dcd10 100644
--- a/src/main/java/com/detrav/items/tools/DetravProPick.java
+++ b/src/main/java/com/detrav/items/tools/DetravProspector.java
@@ -3,16 +3,15 @@ package com.detrav.items.tools;
import com.detrav.enums.Textures01;
import com.detrav.items.behaviours.BehaviourDetravToolProPick;
-import cpw.mods.fml.common.FMLLog;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.items.GT_MetaGenerated_Tool;
import net.minecraft.item.ItemStack;
-public class DetravProPick extends DetravToolElectricProPickBase {
+public class DetravProspector extends DetravToolElectricProspectorBase {
- private int tier;
+ private final int tier;
- public DetravProPick(int tier) {
+ public DetravProspector(int tier) {
this.tier=tier;
}
@@ -20,10 +19,7 @@ public class DetravProPick extends DetravToolElectricProPickBase {
return tier;
}
public float getMaxDurabilityMultiplier() {
- /*if (tier == 0)
- return 0.02F;
- return ((float) Math.pow(tier,((float)tier/5F)))/24F;*/
- double x = tier+1;
+ double x = tier + 1;
return (float) (((float) 0.005D+Math.tanh(Math.pow(x,(x/8D))/25D)*(x/6D))*1.25);
}
diff --git a/src/main/java/com/detrav/items/tools/DetravToolElectricProPick.java b/src/main/java/com/detrav/items/tools/DetravToolElectricProspector.java
index 6d1140038b..5e057fb738 100644
--- a/src/main/java/com/detrav/items/tools/DetravToolElectricProPick.java
+++ b/src/main/java/com/detrav/items/tools/DetravToolElectricProspector.java
@@ -7,11 +7,11 @@ import net.minecraft.item.ItemStack;
/**
* Created by wital_000 on 19.03.2016.
*/
-public class DetravToolElectricProPick extends DetravToolElectricProPickBase {
+public class DetravToolElectricProspector extends DetravToolElectricProspectorBase {
private int tier;
- public DetravToolElectricProPick(int tier) {
+ public DetravToolElectricProspector(int tier) {
this.tier=tier;
}
public int getBaseQuality() {
diff --git a/src/main/java/com/detrav/items/tools/DetravToolElectricProPickBase.java b/src/main/java/com/detrav/items/tools/DetravToolElectricProspectorBase.java
index 12a28e343c..89b363f328 100644
--- a/src/main/java/com/detrav/items/tools/DetravToolElectricProPickBase.java
+++ b/src/main/java/com/detrav/items/tools/DetravToolElectricProspectorBase.java
@@ -1,7 +1,7 @@
package com.detrav.items.tools;
import com.detrav.enums.Textures01;
-import com.detrav.items.behaviours.BehaviourDetravToolElectricProPick;
+import com.detrav.items.behaviours.BehaviourDetravToolElectricProspector;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.damagesources.GT_DamageSources;
@@ -28,7 +28,7 @@ import java.util.List;
* Created by wital_000 on 19.03.2016.
* modified by bartimaeusnek on 05.06.2018
*/
-public class DetravToolElectricProPickBase implements IToolStats {
+public class DetravToolElectricProspectorBase implements IToolStats {
public int getToolDamagePerBlockBreak() {
return GT_Mod.gregtechproxy.mHardRock ? 50 : 100;
@@ -169,7 +169,7 @@ public class DetravToolElectricProPickBase implements IToolStats {
}
public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {
- aItem.addItemBehavior(aID, new BehaviourDetravToolElectricProPick(getToolDamagePerBlockBreak()));
+ aItem.addItemBehavior(aID, new BehaviourDetravToolElectricProspector(getToolDamagePerBlockBreak()));
}
public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) {
diff --git a/src/main/java/com/detrav/net/DetravNetwork.java b/src/main/java/com/detrav/net/DetravNetwork.java
index 798ccffeda..5e20fd1552 100644
--- a/src/main/java/com/detrav/net/DetravNetwork.java
+++ b/src/main/java/com/detrav/net/DetravNetwork.java
@@ -27,14 +27,9 @@ public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravP
private final EnumMap<Side, FMLEmbeddedChannel> mChannel;
private DetravPacket[] mSubChannels;
- public DetravNetwork()
- {
+ public DetravNetwork() {
INSTANCE = this;
- this.mChannel = NetworkRegistry.INSTANCE.newChannel("DetravScanner", new ChannelHandler[]{this, new HandlerShared()});
- this.mSubChannels = new DetravPacket[]
- {
- new DetravProPickPacket00(),
- };
+ this.mChannel = NetworkRegistry.INSTANCE.newChannel("DetravScanner", this, new HandlerShared());
}
@Override
@@ -42,10 +37,12 @@ public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravP
out.add(new FMLProxyPacket(Unpooled.buffer().writeByte(msg.getPacketID()).writeBytes(msg.encode()).copy(),(String) ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get()));
}
+ @SuppressWarnings("UnstableApiUsage")
@Override
protected void decode(ChannelHandlerContext ctx, FMLProxyPacket msg, List<Object> out) throws Exception {
ByteArrayDataInput aData = ByteStreams.newDataInput(msg.payload().array());
- out.add(this.mSubChannels[aData.readByte()].decode(aData));
+ aData.readByte(); // Sub Channel - Ignore
+ out.add(ProspectingPacket.decode(aData));
}
public void sendToPlayer(DetravPacket aPacket, EntityPlayerMP aPlayer) {
@@ -59,11 +56,8 @@ public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravP
}
@ChannelHandler.Sharable
- static final class HandlerShared
- extends SimpleChannelInboundHandler<DetravPacket> {
- protected void channelRead0(ChannelHandlerContext ctx, DetravPacket aPacket)
- throws Exception {
- //EntityPlayer aPlayer = GT_Values.GT.getThePlayer();
+ static final class HandlerShared extends SimpleChannelInboundHandler<DetravPacket> {
+ protected void channelRead0(ChannelHandlerContext ctx, DetravPacket aPacket) throws Exception {
aPacket.process();
}
}
diff --git a/src/main/java/com/detrav/net/DetravPacket.java b/src/main/java/com/detrav/net/DetravPacket.java
index a2b3697bac..dcf61064ac 100644
--- a/src/main/java/com/detrav/net/DetravPacket.java
+++ b/src/main/java/com/detrav/net/DetravPacket.java
@@ -1,7 +1,5 @@
package com.detrav.net;
-import com.google.common.io.ByteArrayDataInput;
-
/**
* Created by wital_000 on 20.03.2016.
*/
@@ -11,7 +9,5 @@ public abstract class DetravPacket {
public abstract byte[] encode() ;
- public abstract Object decode(ByteArrayDataInput aData) ;
-
public abstract void process();
}
diff --git a/src/main/java/com/detrav/net/DetravProPickPacket00.java b/src/main/java/com/detrav/net/DetravProPickPacket00.java
deleted file mode 100644
index 0a50fbbeed..0000000000
--- a/src/main/java/com/detrav/net/DetravProPickPacket00.java
+++ /dev/null
@@ -1,341 +0,0 @@
-package com.detrav.net;
-
-import com.detrav.DetravScannerMod;
-import com.detrav.gui.DetravGuiProPick;
-import com.detrav.gui.textures.DetravMapTexture;
-import com.detrav.utils.GTppHelper;
-import com.github.bartimaeusnek.bartworks.system.material.Werkstoff;
-import com.google.common.io.ByteArrayDataInput;
-import com.google.common.io.ByteArrayDataOutput;
-import com.google.common.io.ByteStreams;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.Materials;
-import gregtech.api.util.GT_LanguageManager;
-import net.minecraft.util.StatCollector;
-import net.minecraftforge.fluids.FluidRegistry;
-import net.minecraftforge.fluids.FluidStack;
-
-import java.awt.image.BufferedImage;
-import java.awt.image.WritableRaster;
-import java.util.HashMap;
-
-/*
-//DEBUG CLASSES
-import java.util.Map;
-import java.util.Iterator;
-import java.util.Set;
-*/
-
-/**
- * Created by wital_000 on 20.03.2016.
- */
-public class DetravProPickPacket00 extends DetravPacket {
- public int chunkX;
- public int chunkZ;
- public int size;
- public int ptype;
- private HashMap<Byte,Short>[][] map = null;
- public static HashMap<Integer, short[]> fluidColors = new HashMap<>();
-
- @Override
- public int getPacketID() {
- return 0;
- }
-
- public int level = -1;
-
- @Override
- public byte[] encode() {
- ByteArrayDataOutput tOut = ByteStreams.newDataOutput(1);
- tOut.writeInt(ptype);
- tOut.writeInt(level);
- tOut.writeInt(chunkX);
- tOut.writeInt(chunkZ);
- tOut.writeInt(size);
- int aSize = (size*2+1)*16;
- int checkOut = 0;
- for(int i =0; i<aSize; i++)
- for(int j =0; j<aSize; j++)
- {
- if(map[i][j]==null)
- tOut.writeByte(0);
- else
- {
- tOut.writeByte(map[i][j].keySet().size());
- for(byte key : map[i][j].keySet())
- {
- tOut.writeByte(key);
- tOut.writeShort(map[i][j].get(key));
- checkOut++;
- }
- }
- }
- tOut.writeInt(checkOut);
- return tOut.toByteArray();
- }
-
- @Override
- public Object decode(ByteArrayDataInput aData) {
- DetravProPickPacket00 packet = new DetravProPickPacket00();
- packet.ptype = aData.readInt();
- packet.level = aData.readInt();
- packet.chunkX = aData.readInt();
- packet.chunkZ = aData.readInt();
- packet.size = aData.readInt();
- packet.map = new HashMap[(packet.size * 2 + 1) * 16][(packet.size * 2 + 1) * 16];
- int aSize = (packet.size * 2 + 1) * 16;
- int checkOut = 0;
- for (int i = 0; i < aSize; i++)
- for (int j = 0; j < aSize; j++) {
- byte kSize = aData.readByte();
- if(kSize == 0) continue;
- packet.map[i][j] = new HashMap<>();
- for (int k = 0; k < kSize; k++) {
- packet.map[i][j].put(aData.readByte(),aData.readShort());
- checkOut++;
- }
- }
- int checkOut2 = aData.readInt();
- if(checkOut != checkOut2) return new DetravProPickPacket00();
- return packet;
- }
-
-
- @Override
- public void process() {
- DetravGuiProPick.newMap(new DetravMapTexture(this));
- DetravScannerMod.proxy.openProPickGui();
- }
-
- 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];
- int aX = x - (chunkX-size)*16;
- int aZ = z - (chunkZ-size)*16;
- 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"))
- }
-
- private HashMap<String,Integer> ores = null;
-
- public BufferedImage getImage(int posX,int posZ) {
- int wh = (size*2+1)*16;
- //int aWh = 1024;
- //while (aWh<wh) aWh*=2;
- BufferedImage image = new BufferedImage(wh,wh,BufferedImage.TYPE_INT_ARGB );
- WritableRaster raster = image.getRaster();
-
- int playerI = posX - (chunkX-size)*16 - 1; // Correct player offset
- int playerJ = posZ - (chunkZ-size)*16 - 1;
-
- if(ores == null) ores = new HashMap<String, Integer>();
- int exception = 0;
- switch (ptype) {
- case 0:
- case 1:
- for (int i = 0; i < wh; i++)
- for (int j = 0; j < wh; j++) {
- if (map[i][j] == null) {
- raster.setSample(i, j, 0, 255);
- raster.setSample(i, j, 1, 255);
- raster.setSample(i, j, 2, 255);
- raster.setSample(i, j, 3, 255);
- } else {
- for (short meta : map[i][j].values()) {
- String name;
- short[] rgba;
- Materials tMaterial = null;
- gtPlusPlus.core.material.Material pMaterial = null;
- try {
- if (meta<7000||meta>7500) {
- tMaterial = GregTech_API.sGeneratedMaterials[meta % 1000];
- } else {
- Short l = (short) (meta-7000);
- pMaterial = GTppHelper.decodeoresGTpp.get(l);
- }
- } catch (Exception e) {
- tMaterial = null;
- }
- if ((meta > 0 && meta<7000) || meta>7500) {
- if (tMaterial == null) {
- exception++;
- continue;
- }
- 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, ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF)));
- }
- else if (meta<=0){
- name = GT_LanguageManager.getTranslation("bw.blockores.01." + (meta*-1) + ".name");
- rgba = new short[]{0,0,0,0};
- try {
- rgba = Werkstoff.werkstoffHashMap.get((short) (meta*-1)).getRGBA();
- //name = getLocalizedNameForItem(Werkstoff.werkstoffHashMap.get((short) (meta - 7250)).getDefaultName(),GT_LanguageManager.getTranslation("bw.blockores.01." + (meta-7250) + ".name"));
- } catch (Exception e){
- }
- 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, ((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,((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF)));
- }
- }
- }
- if (playerI == i || playerJ == j) {
- raster.setSample(i, j, 0, (raster.getSample(i, j, 0) + 255) / 2);
- raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
- raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
- }
- if ((i) % 16 == 0 || (j) % 16 == 0) { // Draw grid on screen
- raster.setSample(i, j, 0, raster.getSample(i, j, 0) / 2);
- raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
- raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
- }
- }
- break;
- case 2:
-
- short[] metas = new short[2];
- for (int i = 0; i < wh; i++)
- for (int j = 0; j < wh; j++) {
- if (map[i][j] == null) {
- raster.setSample(i, j, 0, 255);
- raster.setSample(i, j, 1, 255);
- raster.setSample(i, j, 2, 255);
- raster.setSample(i, j, 3, 255);
- } else {
- metas[0] = map[i][j].get((byte) 1); // fluidID
- metas[1] = map[i][j].get((byte) 2); // Size of the field
- String name = null;
- short[] rgba = null;
-
- rgba = (short[])fluidColors.get( (Integer) ((int) metas[0] ) );
- if (rgba == null) {
- DetravScannerMod.proxy.sendPlayerExeption( "Unknown fluid ID = " + metas[0] + " Please add to DetravProPickPacket00.java!" );
- rgba = new short[]{ 0x00, 0xff, 0x00 };
- }
-
- name = FluidRegistry.getFluid( metas[0] ).getLocalizedName(new FluidStack( FluidRegistry.getFluid( metas[0] ), 0) );
- if (name == null) {
- name = StatCollector.translateToLocal("gui.detrav.scanner.unknown_fluid");
- }
-
- if (!ores.containsKey(name))
- ores.put(name, ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF)));
-
- int k = (i % 16); // Variables used to locate within a chunk.
- int l = (j % 16);
-
- if( ( (k + l*16) * 3) < (metas[1]+48) ) { // draw an indicator in the chunk about how large the field is at this chunk.
- 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);
- } else {
- raster.setSample(i, j, 0, 255);
- raster.setSample(i, j, 1, 255);
- raster.setSample(i, j, 2, 255);
- raster.setSample(i, j, 3, 255);
- }
-
- }
- if (playerI == i || playerJ == j) { // Draw red line on screen
- raster.setSample(i, j, 0, (raster.getSample(i, j, 0) + 255) / 2);
- raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
- raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
- }
- if ((i) % 16 == 0 || (j) % 16 == 0) { // Draw grid on screen
- raster.setSample(i, j, 0, raster.getSample(i, j, 0) / 2);
- raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
- raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
- }
- }
- break;
- case 3:
- ores.put(StatCollector.translateToLocal("gui.detrav.scanner.pollution"), ((0 & 0xFF) << 16) + ((0 & 0xFF) << 8) + ((0 & 0xFF)));
- for (int i = 0; i < wh; i++)
- for (int j = 0; j < wh; j++) {
- if (map[i][j] == null) {
- raster.setSample(i, j, 0, 255);
- raster.setSample(i, j, 1, 255);
- raster.setSample(i, j, 2, 255);
- raster.setSample(i, j, 3, 255);
- } else {
- for (short meta : map[i][j].values()) {
- raster.setSample(i, j, 0, meta);
- raster.setSample(i, j, 1, meta);
- raster.setSample(i, j, 2, meta);
- raster.setSample(i, j, 3, 255);
- }
- }
- if (playerI == i || playerJ == j) {
- raster.setSample(i, j, 0, (raster.getSample(i, j, 0) + 255) / 2);
- raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
- raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
- }
- if ((i) % 16 == 0 || (j) % 16 == 0) { // Draw grid on screen
- raster.setSample(i, j, 0, raster.getSample(i, j, 0) / 2);
- raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
- raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
- }
- }
- break;
- default:
- DetravScannerMod.proxy.sendPlayerExeption("Not been realized YET!");
- break;
- }
- if(exception > 0)
- DetravScannerMod.proxy.sendPlayerExeption("null matertial exception: " + exception);
- /*try {
- File outputfile = new File("saved.png");
- ImageIO.write(image, "png", outputfile);
- }
- catch (Exception e) {}*/
-
- return image;
-
-
- //image.set
- //return null;
- }
-
- public HashMap<String,Integer> getOres()
- {
- if(ores == null) return new HashMap<String, Integer>();
- return ores;
- }
-
- private static String getLocalizedNameForItem(String mDefaultLocalName, String aFormat) {
- return String.format(aFormat.replace("%s", "%temp").replace("%material", "%s"), mDefaultLocalName).replace("%temp", "%s");
- }
-
- public int getSize() {
- return (size*2+1)*16;
- }
-}
diff --git a/src/main/java/com/detrav/net/ProspectingPacket.java b/src/main/java/com/detrav/net/ProspectingPacket.java
new file mode 100644
index 0000000000..932f3a9edc
--- /dev/null
+++ b/src/main/java/com/detrav/net/ProspectingPacket.java
@@ -0,0 +1,185 @@
+package com.detrav.net;
+
+import com.detrav.DetravScannerMod;
+import com.detrav.gui.DetravScannerGUI;
+import com.detrav.gui.textures.DetravMapTexture;
+import com.detrav.utils.GTppHelper;
+import com.github.bartimaeusnek.bartworks.system.material.Werkstoff;
+import com.google.common.base.Objects;
+import com.google.common.io.ByteArrayDataInput;
+import com.google.common.io.ByteArrayDataOutput;
+import com.google.common.io.ByteStreams;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_LanguageManager;
+import net.minecraft.util.StatCollector;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import java.util.HashMap;
+
+/*
+//DEBUG CLASSES
+import java.util.Map;
+import java.util.Iterator;
+import java.util.Set;
+*/
+
+/**
+ * Created by wital_000 on 20.03.2016.
+ */
+public class ProspectingPacket extends DetravPacket {
+ public final int chunkX;
+ public final int chunkZ;
+ public final int posX;
+ public final int posZ;
+ public final int size;
+ public final int ptype;
+ public final HashMap<Byte, Short>[][] map;
+ public final HashMap<String, Integer> ores;
+ public final HashMap<Short, String> metaMap;
+ public static final HashMap<Integer, short[]> fluidColors = new HashMap<>();
+
+ public int level = -1;
+
+
+ public ProspectingPacket(int chunkX, int chunkZ, int posX, int posZ, int size, int ptype) {
+ this.chunkX = chunkX;
+ this.chunkZ = chunkZ;
+ this.posX = posX;
+ this.posZ = posZ;
+ this.size = size;
+ this.ptype = ptype;
+ this.map = new HashMap[(size*2+1)*16][(size*2+1)*16];
+ this.ores = new HashMap<>();
+ this.metaMap = new HashMap<>();
+ }
+
+ private static void addOre(ProspectingPacket packet, byte y, int i, int j, short meta) {
+ final String name;
+ short[] rgba;
+
+ try {
+ if(packet.ptype == 0 || packet.ptype == 1) {
+ // Ore or Small Ore
+ if (meta < 7000 || meta > 7500) {
+ Materials tMaterial = GregTech_API.sGeneratedMaterials[meta % 1000];
+
+ if (meta > 0) {
+ rgba = tMaterial.getRGBA();
+ name = tMaterial.getLocalizedNameForItem(GT_LanguageManager.getTranslation("gt.blockores." + meta + ".name"));
+ } else {
+ name = GT_LanguageManager.getTranslation("bw.blockores.01." + (meta * -1) + ".name");
+ rgba = Werkstoff.werkstoffHashMap.get((short) (meta * -1)).getRGBA();
+ }
+ } else {
+ gtPlusPlus.core.material.Material pMaterial = GTppHelper.decodeoresGTpp.get((short) (meta - 7000));
+ rgba = pMaterial.getRGBA();
+ name = pMaterial.getLocalizedName() + " Ore";
+ }
+ } else if (packet.ptype == 2) {
+ // Fluid
+ rgba = fluidColors.get((int) meta);
+ if (rgba == null) {
+ DetravScannerMod.proxy.sendPlayerExeption( "Unknown fluid ID = " + meta + " Please add to DetravProPickPacket00.java!");
+ rgba = new short[]{0,0,0,0};
+ }
+
+ name = Objects.firstNonNull(
+ FluidRegistry.getFluid(meta).getLocalizedName(new FluidStack(FluidRegistry.getFluid(meta), 0)),
+ StatCollector.translateToLocal("gui.detrav.scanner.unknown_fluid")
+ );
+ } else if (packet.ptype == 3) {
+ // Pollution
+ name = StatCollector.translateToLocal("gui.detrav.scanner.pollution");
+ rgba = new short[]{0,0,0,0};
+ } else {
+ return;
+ }
+ } catch (Exception ignored) {
+ return;
+ }
+ packet.map[i][j].put(y, meta);
+ packet.ores.put(name, ((rgba[0] & 0xFF) << 16) + ((rgba[1] & 0xFF) << 8) + ((rgba[2] & 0xFF)));
+ packet.metaMap.put(meta, name);
+ }
+
+ public static Object decode(ByteArrayDataInput aData) {
+ ProspectingPacket packet = new ProspectingPacket(aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt());
+ packet.level = aData.readInt();
+
+ int aSize = (packet.size * 2 + 1) * 16;
+ int checkOut = 0;
+ for (int i = 0; i < aSize; i++)
+ for (int j = 0; j < aSize; j++) {
+ byte kSize = aData.readByte();
+ if(kSize == 0) continue;
+ packet.map[i][j] = new HashMap<>();
+ for (int k = 0; k < kSize; k++) {
+ final byte y = aData.readByte();
+ final short meta = aData.readShort();
+ addOre(packet, y, i, j, meta);
+ checkOut++;
+ }
+ }
+ int checkOut2 = aData.readInt();
+ if(checkOut != checkOut2) return null;
+ return packet;
+ }
+
+
+
+ @Override
+ public int getPacketID() {
+ return 0;
+ }
+
+ @SuppressWarnings("UnstableApiUsage")
+ @Override
+ public byte[] encode() {
+ ByteArrayDataOutput tOut = ByteStreams.newDataOutput(1);
+ tOut.writeInt(chunkX);
+ tOut.writeInt(chunkZ);
+ tOut.writeInt(posX);
+ tOut.writeInt(posZ);
+ tOut.writeInt(size);
+ tOut.writeInt(ptype);
+ tOut.writeInt(level);
+
+ int aSize = (size*2+1)*16;
+ int checkOut = 0;
+ for(int i =0; i<aSize; i++)
+ for(int j =0; j<aSize; j++) {
+ if(map[i][j]==null)
+ tOut.writeByte(0);
+ else {
+ tOut.writeByte(map[i][j].keySet().size());
+ for(byte key : map[i][j].keySet()) {
+ tOut.writeByte(key);
+ tOut.writeShort(map[i][j].get(key));
+ checkOut++;
+ }
+ }
+ }
+ tOut.writeInt(checkOut);
+ return tOut.toByteArray();
+ }
+
+
+ @Override
+ public void process() {
+ DetravScannerGUI.newMap(new DetravMapTexture(this));
+ DetravScannerMod.proxy.openProspectorGUI();
+ }
+
+ public void addBlock(int x, int y, int z, short metaData) {
+ int aX = x - (chunkX-size)*16;
+ int aZ = z - (chunkZ-size)*16;
+ if(map[aX][aZ] == null) map[aX][aZ] = new HashMap<>();
+ map[aX][aZ].put((byte) y, metaData);
+ }
+
+ public int getSize() {
+ return (size*2+1)*16;
+ }
+}
diff --git a/src/main/java/com/detrav/proxies/ClientProxy.java b/src/main/java/com/detrav/proxies/ClientProxy.java
index f13dafdbc1..67327d2f2b 100644
--- a/src/main/java/com/detrav/proxies/ClientProxy.java
+++ b/src/main/java/com/detrav/proxies/ClientProxy.java
@@ -2,7 +2,7 @@ package com.detrav.proxies;
import com.detrav.DetravScannerMod;
import com.detrav.enums.Textures01;
-import com.detrav.gui.DetravGuiProPick;
+import com.detrav.gui.DetravScannerGUI;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
@@ -19,25 +19,19 @@ public class ClientProxy extends CommonProxy {
@Override
public void onPostLoad() {
super.onPostLoad();
- //Textures.ItemIcons.CustomIcon test = new Textures.ItemIcons.CustomIcon("iconsets/PRO_PICK_HEAD");
- //test.run();
-
}
+
@Override
- public void onLoad()
- {
+ public void onLoad() {
super.onLoad();
}
- public void openProPickGui()
- {
+ public void openProspectorGUI() {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
- player.openGui(DetravScannerMod.instance, DetravGuiProPick.GUI_ID,player.worldObj,(int)player.posX,(int)player.posY,(int)player.posZ);
- //Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("NetworkTested: " + Integer.toString(level)));
+ player.openGui(DetravScannerMod.instance, DetravScannerGUI.GUI_ID, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ);
}
@Override
- public void onPreInit()
- {
+ public void onPreInit() {
super.onPreInit();
}
diff --git a/src/main/java/com/detrav/proxies/CommonProxy.java b/src/main/java/com/detrav/proxies/CommonProxy.java
index 5ba04beab6..d1595b07fb 100644
--- a/src/main/java/com/detrav/proxies/CommonProxy.java
+++ b/src/main/java/com/detrav/proxies/CommonProxy.java
@@ -1,7 +1,7 @@
package com.detrav.proxies;
import com.detrav.events.DetravLoginEventHandler;
-import com.detrav.gui.DetravGuiProPick;
+import com.detrav.gui.DetravScannerGUI;
import cpw.mods.fml.common.network.IGuiHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
@@ -22,7 +22,7 @@ public class CommonProxy implements IGuiHandler {
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
switch (ID) {
- case DetravGuiProPick.GUI_ID:
+ case DetravScannerGUI.GUI_ID:
return null;
default:
return null;
@@ -32,22 +32,20 @@ public class CommonProxy implements IGuiHandler {
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
switch (ID) {
- case DetravGuiProPick.GUI_ID:
- return new DetravGuiProPick();
+ case DetravScannerGUI.GUI_ID:
+ return new DetravScannerGUI();
default:
return null;
}
}
- public void openProPickGui()
- {
+ public void openProspectorGUI() {
//just Client code
}
- public void onPreInit()
- {
+ public void onPreInit() {
}
diff --git a/src/main/java/com/detrav/utils/DetravCreativeTab.java b/src/main/java/com/detrav/utils/DetravCreativeTab.java
index 4871289a9b..6d0830f2bb 100644
--- a/src/main/java/com/detrav/utils/DetravCreativeTab.java
+++ b/src/main/java/com/detrav/utils/DetravCreativeTab.java
@@ -7,7 +7,6 @@ import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
-import java.util.Iterator;
import java.util.List;
/**
@@ -27,34 +26,25 @@ public class DetravCreativeTab extends CreativeTabs {
@Override
@SideOnly(Side.CLIENT)
- public void displayAllReleventItems(List p_78018_1_)
- {
- Iterator iterator = Item.itemRegistry.iterator();
+ public void displayAllReleventItems(List p_78018_1_) {
+ for (Object o : Item.itemRegistry) {
+ Item item = (Item) o;
- while (iterator.hasNext())
- {
- Item item = (Item)iterator.next();
-
- if (item == null)
- {
+ if (item == null) {
continue;
}
- for (CreativeTabs tab : item.getCreativeTabs())
- {
- if (tab == this)
- {
+ for (CreativeTabs tab : item.getCreativeTabs()) {
+ if (tab == this) {
item.getSubItems(item, this, p_78018_1_);
- if(item instanceof DetravMetaGeneratedTool01)
- {
- ((DetravMetaGeneratedTool01)item).getDetravSubItems(item,this,p_78018_1_);
+ if (item instanceof DetravMetaGeneratedTool01) {
+ ((DetravMetaGeneratedTool01) item).getDetravSubItems(item, this, p_78018_1_);
}
}
}
}
- if (this.func_111225_m() != null)
- {
+ if (this.func_111225_m() != null) {
this.addEnchantmentBooksToList(p_78018_1_, this.func_111225_m());
}
}
diff --git a/src/main/java/com/detrav/utils/FluidColors.java b/src/main/java/com/detrav/utils/FluidColors.java
index ae6f1d202d..2a0ede49b9 100644
--- a/src/main/java/com/detrav/utils/FluidColors.java
+++ b/src/main/java/com/detrav/utils/FluidColors.java
@@ -1,14 +1,12 @@
package com.detrav.utils;
-import com.detrav.net.DetravProPickPacket00;
-import cpw.mods.fml.common.ProgressManager;
import gregtech.api.enums.Materials;
import net.minecraftforge.fluids.FluidRegistry;
import java.util.Arrays;
import java.util.Objects;
-import static com.detrav.net.DetravProPickPacket00.fluidColors;
+import static com.detrav.net.ProspectingPacket.fluidColors;
public class FluidColors {
diff --git a/src/main/java/com/detrav/utils/GTppHelper.java b/src/main/java/com/detrav/utils/GTppHelper.java
index 0978c2817e..a46ebaf033 100644
--- a/src/main/java/com/detrav/utils/GTppHelper.java
+++ b/src/main/java/com/detrav/utils/GTppHelper.java
@@ -1,6 +1,5 @@
package com.detrav.utils;
-import cpw.mods.fml.common.Loader;
import gtPlusPlus.core.block.base.BlockBaseOre;
import gtPlusPlus.core.material.Material;
import net.minecraft.block.Block;
@@ -11,18 +10,17 @@ import java.util.HashMap;
* Created by bartimaeusnek on 19.04.2018.
*/
public class GTppHelper {
- public static HashMap<Short,Material> decodeoresGTpp = new HashMap<Short,Material>();
- public static HashMap<Material,Short> encodeoresGTpp = new HashMap<Material,Short>();
+ public static HashMap<Short,Material> decodeoresGTpp = new HashMap<>();
+ public static HashMap<Material,Short> encodeoresGTpp = new HashMap<>();
public static void generate_OreIDs() {
- for (short n=0;n<gtPlusPlus.core.material.ORES.class.getFields().length;++n) {
+ for (short n=0 ; n < gtPlusPlus.core.material.ORES.class.getFields().length ; ++n) {
try {
Short i = (short) (n+1);
Material m = ((Material)gtPlusPlus.core.material.ORES.class.getFields()[n].get(gtPlusPlus.core.material.ORES.class.getFields()[n]));
decodeoresGTpp.put(i,m);
encodeoresGTpp.put(m,i);
- } catch (Exception e) {
- }
+ } catch (Exception ignored) {}
}
}