diff options
Diffstat (limited to 'src/main/java')
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) {} } } |