diff options
26 files changed, 1292 insertions, 814 deletions
diff --git a/dependencies.gradle b/dependencies.gradle index c2e8807ffc..f0db1a0524 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,11 +1,12 @@ // Add your dependencies here dependencies { - compile('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.31:dev') + compile('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.254:dev') - compileOnly('com.github.GTNewHorizons:NewHorizonsCoreMod:1.9.69:dev') + compileOnly('com.github.GTNewHorizons:NewHorizonsCoreMod:1.9.139:dev') compileOnly('com.github.GTNewHorizons:bartworks:0.5.82:dev') - compileOnly('com.github.GTNewHorizons:GTplusplus:1.7.88:dev') + compileOnly('com.github.GTNewHorizons:GTplusplus:1.7.203:dev') + compileOnly('com.github.GTNewHorizons:ProjectRed:4.7.9-GTNH:dev') {transitive=false} compileOnly('com.github.GTNewHorizons:VisualProspecting:1.0.31:dev') {transitive=false} compileOnly('com.github.GTNewHorizons:ForestryMC:4.4.14:dev') {transitive=false} compileOnly('com.github.GTNewHorizons:Railcraft:9.13.10:dev') {transitive=false} diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java index 9df8d230e3..a30dabe74d 100644 --- a/src/main/java/com/detrav/DetravScannerMod.java +++ b/src/main/java/com/detrav/DetravScannerMod.java @@ -1,11 +1,14 @@ package com.detrav; -import com.detrav.utils.FluidColors; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraftforge.common.config.Configuration; + import org.apache.logging.log4j.LogManager; import com.detrav.net.DetravNetwork; import com.detrav.proxies.CommonProxy; import com.detrav.utils.DetravCreativeTab; +import com.detrav.utils.FluidColors; import com.detrav.utils.GTppHelper; import cpw.mods.fml.common.Loader; @@ -17,12 +20,13 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import gregtech.api.GregTech_API; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraftforge.common.config.Configuration; -@Mod(modid = DetravScannerMod.MODID, version = DetravScannerMod.VERSION,dependencies = "required-after:IC2;required-after:gregtech;after:miscutils;after:bartworks") -public class DetravScannerMod -{ +@Mod( + modid = DetravScannerMod.MODID, + version = DetravScannerMod.VERSION, + dependencies = "required-after:IC2;required-after:gregtech;after:miscutils;after:bartworks") +public class DetravScannerMod { + public static final String MODID = "detravscannermod"; public static final String VERSION = "GRADLETOKEN_VERSION"; public static final String DEBUGOVERRIDE = "@false"; @@ -33,7 +37,7 @@ public class DetravScannerMod public static boolean isGTppLoaded = false; public static final org.apache.logging.log4j.Logger Logger = LogManager.getLogger("GT Scanner Mod"); - + @SidedProxy(clientSide = "com.detrav.proxies.ClientProxy", serverSide = "com.detrav.proxies.ServerProxy") public static CommonProxy proxy; @@ -54,8 +58,7 @@ public class DetravScannerMod Configuration Config = new Configuration(event.getSuggestedConfigurationFile()); Config.load(); - - if (Config.hasChanged()){ + if (Config.hasChanged()) { Config.save(); } diff --git a/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java index cff4e6eec9..5cdb2bff88 100644 --- a/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java +++ b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java @@ -7,13 +7,14 @@ import com.detrav.items.processing.ProcessingDetravToolProspector; * Created by wital_000 on 18.03.2016. */ public class Detrav_AfterGTPreload_Loader implements Runnable { + @Override public void run() { - //items + // items new DetravMetaGeneratedTool01(); - //recipes and etc + // recipes and etc new ProcessingDetravToolProspector(); } diff --git a/src/main/java/com/detrav/commands/DetravScannerCommand.java b/src/main/java/com/detrav/commands/DetravScannerCommand.java index beeccc482f..ba16e47a6c 100644 --- a/src/main/java/com/detrav/commands/DetravScannerCommand.java +++ b/src/main/java/com/detrav/commands/DetravScannerCommand.java @@ -1,9 +1,9 @@ package com.detrav.commands; -import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; -import gregtech.api.util.GT_LanguageManager; -import gregtech.common.blocks.GT_TileEntity_Ores; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.command.ICommand; import net.minecraft.command.ICommandSender; @@ -12,9 +12,10 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.chunk.Chunk; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; +import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_LanguageManager; +import gregtech.common.blocks.GT_TileEntity_Ores; /** * Created by wital_000 on 17.03.2016. @@ -52,29 +53,26 @@ public class DetravScannerCommand implements ICommand { String name = null; ArrayList<String> strs = new ArrayList<>(); - for(int i =0; i<args.length;i++) - { + for (int i = 0; i < args.length; i++) { strs.add(args[i]); - if(args[i].startsWith("\"")) { + if (args[i].startsWith("\"")) { for (i++; i < args.length; i++) { - String temp = (String)strs.get(strs.size()-1); + String temp = (String) strs.get(strs.size() - 1); temp = temp + " " + args[i]; - temp = temp.replace("\"",""); - strs.set(strs.size()-1,temp); - if(args[i].endsWith("\"")) - break; + temp = temp.replace("\"", ""); + strs.set(strs.size() - 1, temp); + if (args[i].endsWith("\"")) break; } } } args = new String[strs.size()]; args = strs.toArray(args); - switch (args.length) - { + switch (args.length) { case 0: break; case 1: - if(args[0].toLowerCase() == "help") { + if (args[0].toLowerCase() == "help") { sendHelpMessage(sender); return; } @@ -82,58 +80,53 @@ public class DetravScannerCommand implements ICommand { break; default: sendHelpMessage(sender); - return ; + return; } ChunkCoordinates c = sender.getPlayerCoordinates(); - if(name!=null) name = name.toLowerCase(); - process(sender,(int)Math.floor(c.posX/16.0),(int)Math.floor(c.posZ/16.0),name); + if (name != null) name = name.toLowerCase(); + process(sender, (int) Math.floor(c.posX / 16.0), (int) Math.floor(c.posZ / 16.0), name); } - private void process(ICommandSender sender, int aX, int aZ, String fName) - { - Chunk c = sender.getEntityWorld().getChunkFromChunkCoords(aX,aZ); - if(c == null) - sender.addChatMessage(new ChatComponentText("ERROR")); - HashMap<String,Integer> ores = new HashMap<>(); - for (int x = 0; x < 16; x++) - for (int z = 0; z < 16; z++) { - int ySize = c.getHeightValue(x, z); - for (int y = 1; y < ySize; y++) { - Block b = c.getBlock(x, y, z); - if (b == GregTech_API.sBlockOres1) { - TileEntity entity = c.getTileEntityUnsafe(x, y, z); - if (entity != null) { - GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) entity; - short meta = gt_entity.getMetaData(); - String name = Materials.getLocalizedNameForItem( - GT_LanguageManager.getTranslation(b.getUnlocalizedName() + "." + meta + ".name"), meta%1000); - if(name.startsWith("Small")) continue; - if (fName == null || name.toLowerCase().contains(fName)) { - if (!ores.containsKey(name)) - ores.put(name, 1); - else { - int val = ores.get(name); - ores.put(name, val + 1); - } + private void process(ICommandSender sender, int aX, int aZ, String fName) { + Chunk c = sender.getEntityWorld().getChunkFromChunkCoords(aX, aZ); + if (c == null) sender.addChatMessage(new ChatComponentText("ERROR")); + HashMap<String, Integer> ores = new HashMap<>(); + for (int x = 0; x < 16; x++) for (int z = 0; z < 16; z++) { + int ySize = c.getHeightValue(x, z); + for (int y = 1; y < ySize; y++) { + Block b = c.getBlock(x, y, z); + if (b == GregTech_API.sBlockOres1) { + TileEntity entity = c.getTileEntityUnsafe(x, y, z); + if (entity != null) { + GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) entity; + short meta = gt_entity.getMetaData(); + String name = Materials.getLocalizedNameForItem( + GT_LanguageManager.getTranslation(b.getUnlocalizedName() + "." + meta + ".name"), + meta % 1000); + if (name.startsWith("Small")) continue; + if (fName == null || name.toLowerCase().contains(fName)) { + if (!ores.containsKey(name)) ores.put(name, 1); + else { + int val = ores.get(name); + ores.put(name, val + 1); } } } } - } + + } 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")); } - private void sendHelpMessage(ICommandSender sender) - { + private void sendHelpMessage(ICommandSender sender) { sender.addChatMessage(new ChatComponentText(getCommandUsage(sender))); } - @Override public boolean canCommandSenderUseCommand(ICommandSender p_71519_1_) { return true; @@ -141,14 +134,14 @@ public class DetravScannerCommand implements ICommand { @Override public List addTabCompletionOptions(ICommandSender sender, String[] args) { - if(args.length !=1) return null; - if("help".startsWith(args[0].toLowerCase())) { + if (args.length != 1) return null; + if ("help".startsWith(args[0].toLowerCase())) { List result = new ArrayList(); result.add("help"); sendHelpMessage(sender); return result; } - return null; + return null; } @Override diff --git a/src/main/java/com/detrav/enums/Textures01.java b/src/main/java/com/detrav/enums/Textures01.java index 714883934c..cc65d4d1ca 100644 --- a/src/main/java/com/detrav/enums/Textures01.java +++ b/src/main/java/com/detrav/enums/Textures01.java @@ -7,12 +7,11 @@ import gregtech.api.interfaces.IIconContainer; * Created by wital_000 on 19.03.2016. */ public class Textures01 { - public static final IIconContainer[] mTextures = new IIconContainer[] - { - new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/PRO_PICK_HEAD"), - new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_LuV_PRO_PICK_HEAD"), - new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_ZPM_PRO_PICK_HEAD"), - new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_UV_PRO_PICK_HEAD"), - new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_UHV_PRO_PICK_HEAD"), - }; -}
\ No newline at end of file + + public static final IIconContainer[] mTextures = new IIconContainer[] { + new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/PRO_PICK_HEAD"), + new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_LuV_PRO_PICK_HEAD"), + new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_ZPM_PRO_PICK_HEAD"), + new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_UV_PRO_PICK_HEAD"), + new Textures.ItemIcons.CustomIcon("gt.detrav.metatool.01/ELECTRIC_UHV_PRO_PICK_HEAD"), }; +} diff --git a/src/main/java/com/detrav/events/DetravLoginEventHandler.java b/src/main/java/com/detrav/events/DetravLoginEventHandler.java index 2307db4cee..5178516267 100644 --- a/src/main/java/com/detrav/events/DetravLoginEventHandler.java +++ b/src/main/java/com/detrav/events/DetravLoginEventHandler.java @@ -1,8 +1,9 @@ package com.detrav.events; -import cpw.mods.fml.common.FMLCommonHandler; import net.minecraftforge.common.MinecraftForge; +import cpw.mods.fml.common.FMLCommonHandler; + /** * Created by wital_000 on 18.04.2016. */ diff --git a/src/main/java/com/detrav/gui/DetravScannerGUI.java b/src/main/java/com/detrav/gui/DetravScannerGUI.java index 2eaeb96020..7c3070a55d 100644 --- a/src/main/java/com/detrav/gui/DetravScannerGUI.java +++ b/src/main/java/com/detrav/gui/DetravScannerGUI.java @@ -1,22 +1,23 @@ package com.detrav.gui; -import gregtech.api.util.GT_Utility; -import net.minecraft.util.StatCollector; -import org.lwjgl.opengl.GL11; - -import com.detrav.gui.textures.DetravMapTexture; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import net.minecraft.client.gui.GuiScreen; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; +import org.lwjgl.opengl.GL11; + +import com.detrav.gui.textures.DetravMapTexture; +import gregtech.api.util.GT_Utility; /** * 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; @@ -44,42 +45,50 @@ public class DetravScannerGUI extends GuiScreen { @Override public void drawScreen(int x, int y, float f) { this.drawDefaultBackground(); - if(map == null) return; + 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; + int aX = (this.width - currentWidth - 100) / 2; + int aY = (this.height - currentHeight) / 2; - if(oresList == null || (prevW != width || prevH != height)) { + if (oresList == null || (prevW != width || prevH != height)) { oresList = new OresList( - this, 100, currentHeight, aY, aY+currentHeight, aX+currentWidth, 10, map.packet.ores, - ((name, invert) -> { - if (map != null) map.loadTexture(null, name, invert); - }) - ); + this, + 100, + currentHeight, + aY, + aY + currentHeight, + aX + currentWidth, + 10, + map.packet.ores, + ((name, invert) -> { if (map != null) map.loadTexture(null, name, invert); })); prevW = width; prevH = height; } // draw back for ores - drawRect(aX,aY,aX+currentWidth+100,aY+currentHeight,0xFFC6C6C6); + drawRect(aX, aY, aX + currentWidth + 100, aY + currentHeight, 0xFFC6C6C6); map.glBindTexture(); - map.draw(aX,aY); + 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 - + 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 + 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 if (map.packet.ptype == 2) { HashMap<Byte, Short>[][] fluidInfo = map.packet.map; @@ -96,11 +105,10 @@ public class DetravScannerGUI extends GuiScreen { + map.packet.metaMap.get(fluidId)); info.add( StatCollector.translateToLocal("gui.detrav.scanner.tooltip.fluid_amount") - + GT_Utility.formatNumbers(fluidAmount) + " L"); - } - else info.add(StatCollector.translateToLocal("gui.detrav.scanner.tooltip.no_fluid")); - } - else { + + GT_Utility.formatNumbers(fluidAmount) + + " L"); + } else info.add(StatCollector.translateToLocal("gui.detrav.scanner.tooltip.no_fluid")); + } else { info.add(StatCollector.translateToLocal("gui.detrav.scanner.tooltip.no_fluid")); } func_146283_a(info, x, y); diff --git a/src/main/java/com/detrav/gui/OresList.java b/src/main/java/com/detrav/gui/OresList.java index a8847d3d64..54c2152f5a 100644 --- a/src/main/java/com/detrav/gui/OresList.java +++ b/src/main/java/com/detrav/gui/OresList.java @@ -1,33 +1,35 @@ 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.BiConsumer; -import java.util.function.Consumer; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.Tessellator; + +import cpw.mods.fml.client.GuiScrollingList; class OresList extends GuiScrollingList { + private final HashMap<String, Integer> ores; private final List<String> keys; private final GuiScreen parent; private final BiConsumer<String, Boolean> onSelected; private boolean invert = false; - + private int selected = -1; - public OresList(GuiScreen parent, int width, int height, int top, int bottom, int left, int entryHeight, HashMap<String, Integer> aOres, BiConsumer<String, Boolean> onSelected) { + public OresList(GuiScreen parent, int width, int height, int top, int bottom, int left, int entryHeight, + HashMap<String, Integer> aOres, BiConsumer<String, Boolean> 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); - if(keys.size() > 1) keys.add(0, "All"); + if (keys.size() > 1) keys.add(0, "All"); selected = 0; } @@ -40,8 +42,8 @@ class OresList extends GuiScrollingList { protected void elementClicked(int index, boolean doubleClick) { selected = index; if (doubleClick) this.invert = !this.invert; - - if(onSelected != null) onSelected.accept(keys.get(index), this.invert); + + if (onSelected != null) onSelected.accept(keys.get(index), this.invert); } @Override @@ -55,11 +57,10 @@ class OresList extends GuiScrollingList { @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 - 1, - ores.getOrDefault(keys.get(slotIdx), 0x7d7b76) - ); + parent.mc.fontRenderer, + parent.mc.fontRenderer.trimStringToWidth(keys.get(slotIdx), listWidth - 10), + this.left + 3, + slotTop - 1, + 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 444064594e..01c570d5a1 100644 --- a/src/main/java/com/detrav/gui/textures/DetravMapTexture.java +++ b/src/main/java/com/detrav/gui/textures/DetravMapTexture.java @@ -1,15 +1,17 @@ package com.detrav.gui.textures; -import com.detrav.net.ProspectingPacket; +import java.awt.Color; +import java.awt.image.BufferedImage; +import java.awt.image.WritableRaster; + 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; +import com.detrav.net.ProspectingPacket; /** * Created by wital_000 on 21.03.2016. @@ -22,8 +24,7 @@ public class DetravMapTexture extends AbstractTexture { public int height = -1; public boolean invert = false; - public DetravMapTexture(ProspectingPacket aPacket) - { + public DetravMapTexture(ProspectingPacket aPacket) { packet = aPacket; } @@ -49,18 +50,20 @@ public class DetravMapTexture extends AbstractTexture { 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 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) && (selected.equals("All") || selected.equals(name))) { + + if (((k + l * 16) * 3) < (fluidSize + 48) + && (selected.equals("All") || selected.equals(name))) { image.setRGB(i, j, packet.ores.getOrDefault(name, Color.BLACK.getRGB()) | 0XFF000000); } - }else if (packet.ptype == 3) { + } else if (packet.ptype == 3) { final short meta = packet.map[i][j].get((byte) 1); - image.setRGB(i, j, ((meta & 0xFF) << 16) + ((meta & 0xFF) << 8) + ((meta & 0xFF)) | 0XFF000000); + image.setRGB(i, j, ((meta & 0xFF) << 16) + ((meta & 0xFF) << 8) + ((meta & 0xFF)) | 0XFF000000); } } // draw player pos @@ -78,28 +81,28 @@ public class DetravMapTexture extends AbstractTexture { } } - + return image; } - + @Override - public void loadTexture(IResourceManager resourceManager){ + public void loadTexture(IResourceManager resourceManager) { this.deleteGlTexture(); - if(packet != null) { + if (packet != null) { int tId = getGlTextureId(); - if(tId <0) return; + if (tId < 0) return; TextureUtil.uploadTextureImageAllocate(this.getGlTextureId(), getImage(), false, false); width = packet.getSize(); height = packet.getSize(); } } - public void loadTexture(IResourceManager resourceManager, boolean invert){ + public void loadTexture(IResourceManager resourceManager, boolean invert) { this.invert = invert; loadTexture(resourceManager); } - - public void loadTexture(IResourceManager resourceManager, String selected, boolean invert){ + + public void loadTexture(IResourceManager resourceManager, String selected, boolean invert) { this.selected = selected; loadTexture(resourceManager, invert); } @@ -111,15 +114,35 @@ public class DetravMapTexture extends AbstractTexture { } public void draw(int x, int y) { - float f = 1F / (float)width; - float f1 = 1F / (float)height; + float f = 1F / (float) width; + float f1 = 1F / (float) height; 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)); - tessellator.addVertexWithUV((double)(x + width), (double)(y + height), 0, (double)((float)(u + width) * f), (double)((float)(v + height) * f1)); - tessellator.addVertexWithUV((double)(x + width), (double)(y), 0, (double)((float)(u + width) * f), (double)((float)(v) * f1)); - tessellator.addVertexWithUV((double)(x), (double)(y), 0, (double)((float)(u) * f), (double)((float)(v) * f1)); + tessellator.addVertexWithUV( + (double) (x), + (double) (y + height), + 0, + (double) ((float) (u) * f), + (double) ((float) (v + height) * f1)); + tessellator.addVertexWithUV( + (double) (x + width), + (double) (y + height), + 0, + (double) ((float) (u + width) * f), + (double) ((float) (v + height) * f1)); + tessellator.addVertexWithUV( + (double) (x + width), + (double) (y), + 0, + (double) ((float) (u + width) * f), + (double) ((float) (v) * f1)); + tessellator.addVertexWithUV( + (double) (x), + (double) (y), + 0, + (double) ((float) (u) * f), + (double) ((float) (v) * f1)); tessellator.draw(); } diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java index c5fb63058c..c5b891784e 100644 --- a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java +++ b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java @@ -2,6 +2,14 @@ package com.detrav.items; import java.util.List; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; + import com.detrav.DetravScannerMod; import com.detrav.enums.DetravToolDictNames; import com.detrav.items.tools.DetravProspector; @@ -12,38 +20,144 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.TC_Aspects; import gregtech.api.interfaces.IToolStats; import gregtech.api.items.GT_MetaGenerated_Tool; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; /** * Created by wital_000 on 19.03.2016. */ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { + public static DetravMetaGeneratedTool01 INSTANCE; public DetravMetaGeneratedTool01() { super("detrav.metatool.01"); INSTANCE = this; - addTool(0, "Prospector's Scanner(ULV)", "", new DetravProspector(0), DetravToolDictNames.craftingToolProspector.toString(), 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), DetravToolDictNames.craftingToolProspector.toString(), 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), DetravToolDictNames.craftingToolProspector.toString(), 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), DetravToolDictNames.craftingToolProspector.toString(), 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), DetravToolDictNames.craftingToolProspector.toString(), 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), DetravToolDictNames.craftingToolProspector.toString(), 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), DetravToolDictNames.craftingToolProspector.toString(), 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), DetravToolDictNames.craftingToolProspector.toString(), 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), DetravToolDictNames.craftingToolProspector.toString(), 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), DetravToolDictNames.craftingToolProspector.toString(), 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), 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), 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), 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), 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( + 0, + "Prospector's Scanner(ULV)", + "", + new DetravProspector(0), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + DetravToolDictNames.craftingToolProspector.toString(), + 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), + 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), + 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), + 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), + 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); } @@ -52,35 +166,94 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { long tMaxDamage = getToolMaxDamage(aStack); Materials tMaterial = getPrimaryMaterial(aStack); IToolStats tStats = getToolStats(aStack); - int tOffset = aList.size(); + int tOffset = aList.size(); 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 ) { + 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")); - - } 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")); - aList.add(tOffset + 6, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.3")); - aList.add(tOffset + 7, EnumChatFormatting.ITALIC+ StatCollector.translateToLocal("tooltip.detrav.scanner.usage.4")); + 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")); + aList.add( + tOffset + 6, + EnumChatFormatting.ITALIC + StatCollector.translateToLocal("tooltip.detrav.scanner.usage.3")); + aList.add( + tOffset + 7, + EnumChatFormatting.ITALIC + StatCollector.translateToLocal("tooltip.detrav.scanner.usage.4")); } } @@ -89,8 +262,7 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { NBTTagCompound aNBT = aStack.getTagCompound(); if (aNBT != null) { aNBT = aNBT.getCompoundTag("GT.ToolStats"); - if (aNBT != null) - return aNBT.getLong("DetravData"); + if (aNBT != null) return aNBT.getLong("DetravData"); } return 0L; } @@ -112,7 +284,7 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { ItemStack dStack; if (DetravScannerMod.isDreamcraftLoaded) { - //Materials at tiers + // Materials at tiers 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)); @@ -126,38 +298,63 @@ public class DetravMetaGeneratedTool01 extends GT_MetaGenerated_Tool { list.add(getToolWithStats(16, 1, Materials.InfinityCatalyst, Materials.InfinityCatalyst, null)); list.add(getToolWithStats(18, 1, Materials.Infinity, Materials.Infinity, null)); } - - //Steel for comparison - 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); + + // Steel for comparison + 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); + + dStack = getToolWithStats( + 102, + 1, + Materials.Neutronium, + Materials.TungstenSteel, + new long[] { 409600000L, GT_Values.V[7], 7L, -1L }); + setCharge(dStack, 409600000L); list.add(dStack); if (DetravScannerMod.isDreamcraftLoaded) { - dStack = getToolWithStats(104, 1, Materials.InfinityCatalyst, Materials.TungstenSteel, new long[]{1638400000L, GT_Values.V[8], 8L, -1L}); + 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}); + + dStack = getToolWithStats( + 106, + 1, + Materials.Infinity, + Materials.TungstenSteel, + new long[] { 6553600000L, GT_Values.V[9], 9L, -1L }); setCharge(dStack, 6553600000L); list.add(dStack); } else { - dStack = getToolWithStats(106, 1, Materials.Neutronium, Materials.TungstenSteel, new long[]{6553600000L, GT_Values.V[9], 9L, -1L}); + dStack = getToolWithStats( + 106, + 1, + Materials.Neutronium, + 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/BehaviourDetravToolElectricProspector.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java index edde4d77bd..8cd4e28fa4 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java @@ -1,5 +1,20 @@ package com.detrav.items.behaviours; +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +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 com.detrav.DetravScannerMod; import com.detrav.items.DetravMetaGeneratedTool01; import com.detrav.net.DetravNetwork; @@ -7,6 +22,7 @@ import com.detrav.net.ProspectingPacket; import com.detrav.utils.BartWorksHelper; import com.detrav.utils.GTppHelper; import com.sinthoras.visualprospecting.VisualProspecting_API; + import cpw.mods.fml.common.Loader; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.objects.ItemData; @@ -15,20 +31,6 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.common.GT_UndergroundOil; import gregtech.common.blocks.GT_Block_Ores_Abstract; import gregtech.common.blocks.GT_TileEntity_Ores; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -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 java.util.ArrayList; -import java.util.List; /** * Created by wital_000 on 19.03.2016. @@ -39,7 +41,7 @@ public class BehaviourDetravToolElectricProspector extends BehaviourDetravToolPr super(aCosts); } - public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) { if (!aWorld.isRemote) { int data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack).intValue(); if (aPlayer.isSneaking()) { @@ -47,19 +49,24 @@ public class BehaviourDetravToolElectricProspector extends BehaviourDetravToolPr if (data > 3) data = 0; switch (data) { case 0: - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.0"))); + aPlayer.addChatMessage( + new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.0"))); break; case 1: - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.1"))); + aPlayer.addChatMessage( + new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.1"))); break; case 2: - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.2"))); + aPlayer.addChatMessage( + new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.2"))); break; case 3: - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.3"))); + aPlayer.addChatMessage( + new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.3"))); break; default: - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.error"))); + aPlayer.addChatMessage( + new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.mode.error"))); break; } DetravMetaGeneratedTool01.INSTANCE.setToolGTDetravData(aStack, (long) data); @@ -72,93 +79,129 @@ public class BehaviourDetravToolElectricProspector extends BehaviourDetravToolPr int size = aItem.getHarvestLevel(aStack, "") + 1; 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)); + 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; - final ProspectingPacket packet = new ProspectingPacket(cX, cZ, (int) aPlayer.posX, (int) aPlayer.posZ, size, data); + 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++) { - final int ySize = c.getHeightValue(x, z); - for (int y = 1; y < ySize; y++) { - switch (data) { - case 0: - case 1: - 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 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 (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 (data != 1 && name.contains(".small.")) continue; - packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, tMetaID); - } - } - } 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)); - if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) { - packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, (short) tAssotiation.mMaterial.mMaterial.mMetaItemSubID); + for (int x = 0; x < 16; x++) for (int z = 0; z < 16; z++) { + final int ySize = c.getHeightValue(x, z); + for (int y = 1; y < ySize; y++) { + switch (data) { + case 0: + case 1: + 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 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 (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 (data != 1 && name.contains(".small.")) continue; + packet.addBlock(c.xPosition * 16 + x, y, c.zPosition * 16 + z, tMetaID); } } - break; - case 2: - if ((x == 0) || (z == 0)) { //Skip doing the locations with the grid on them. - break; + } 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)); + if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) { + packet.addBlock( + c.xPosition * 16 + x, + y, + c.zPosition * 16 + z, + (short) tAssotiation.mMaterial.mMaterial.mMetaItemSubID); } - 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, 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: - float polution = (float) getPolution(aWorld, c.xPosition * 16 + x, c.zPosition * 16 + z); - polution /= 2000000; - polution *= -0xFF; - if (polution > 0xFF) - polution = 0xFF; - polution = 0xFF - polution; - packet.addBlock(c.xPosition * 16 + x, 1, c.zPosition * 16 + z, (short) polution); + } + break; + case 2: + if ((x == 0) || (z == 0)) { // Skip doing the locations with the grid on them. break; - } - if (data > 1) + } + 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, + 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: + float polution = (float) getPolution( + aWorld, + c.xPosition * 16 + x, + c.zPosition * 16 + z); + polution /= 2000000; + polution *= -0xFF; + if (polution > 0xFF) polution = 0xFF; + polution = 0xFF - polution; + packet.addBlock(c.xPosition * 16 + x, 1, c.zPosition * 16 + z, (short) polution); break; } + if (data > 1) break; } + } } packet.level = ((DetravMetaGeneratedTool01) aItem).getHarvestLevel(aStack, ""); DetravNetwork.INSTANCE.sendToPlayer(packet, (EntityPlayerMP) aPlayer); - if (!aPlayer.capabilities.isCreativeMode) - tool.doDamage(aStack, this.mCosts * chunks.size()); + if (!aPlayer.capabilities.isCreativeMode) tool.doDamage(aStack, this.mCosts * chunks.size()); - if(Loader.isModLoaded("visualprospecting")) { - if(data == 0 || data == 1) { + if (Loader.isModLoaded("visualprospecting")) { + if (data == 0 || data == 1) { VisualProspecting_API.LogicalServer.sendProspectionResultsToClient( (EntityPlayerMP) aPlayer, - VisualProspecting_API.LogicalServer.prospectOreVeinsWithinRadius(aWorld.provider.dimensionId, (int) aPlayer.posX, (int) aPlayer.posZ, size * 16), + VisualProspecting_API.LogicalServer.prospectOreVeinsWithinRadius( + aWorld.provider.dimensionId, + (int) aPlayer.posX, + (int) aPlayer.posZ, + size * 16), new ArrayList<>()); - } - else if(data == 2) { + } else if (data == 2) { VisualProspecting_API.LogicalServer.sendProspectionResultsToClient( (EntityPlayerMP) aPlayer, new ArrayList<>(), - VisualProspecting_API.LogicalServer.prospectUndergroundFluidsWithingRadius(aWorld, (int) aPlayer.posX, (int) aPlayer.posZ, size * 16)); + VisualProspecting_API.LogicalServer.prospectUndergroundFluidsWithingRadius( + aWorld, + (int) aPlayer.posX, + (int) aPlayer.posZ, + size * 16)); } } } @@ -167,41 +210,41 @@ public class BehaviourDetravToolElectricProspector extends BehaviourDetravToolPr void addChatMassageByValue(EntityPlayer aPlayer, int value, String name) { if (value < 0) { - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name)); + aPlayer.addChatMessage( + new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name)); } else if (value < 1) { - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6"))); - } else - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name + " " + value)); + aPlayer.addChatMessage( + new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6"))); + } else aPlayer.addChatMessage( + new ChatComponentText( + StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name + " " + value)); } - public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, + int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { long data = DetravMetaGeneratedTool01.INSTANCE.getToolGTDetravData(aStack); if (data < 2) { - if(aWorld.getBlock(aX,aY,aZ) == Blocks.bedrock) - { + if (aWorld.getBlock(aX, aY, aZ) == Blocks.bedrock) { if (!aWorld.isRemote) { FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1); - addChatMassageByValue(aPlayer,fStack.amount,fStack.getLocalizedName()); + addChatMassageByValue(aPlayer, fStack.amount, fStack.getLocalizedName()); if (!aPlayer.capabilities.isCreativeMode) - ((DetravMetaGeneratedTool01)aItem).doDamage(aStack, this.mCosts); + ((DetravMetaGeneratedTool01) aItem).doDamage(aStack, this.mCosts); } return true; - } - else { + } else { if (!aWorld.isRemote) { - prospectSingleChunk( (DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld, aX, aY, aZ ); + prospectSingleChunk((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld, aX, aY, aZ); } return true; } } - if (data < 3) - if (!aWorld.isRemote) { - FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1); - addChatMassageByValue(aPlayer, fStack.amount, fStack.getLocalizedName()); - if (!aPlayer.capabilities.isCreativeMode) - ((DetravMetaGeneratedTool01) aItem).doDamage(aStack, this.mCosts); - return true; - } + if (data < 3) if (!aWorld.isRemote) { + FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1); + addChatMassageByValue(aPlayer, fStack.amount, fStack.getLocalizedName()); + if (!aPlayer.capabilities.isCreativeMode) ((DetravMetaGeneratedTool01) aItem).doDamage(aStack, this.mCosts); + return true; + } if (!aWorld.isRemote) { int polution = getPolution(aWorld, aX, aZ); addChatMassageByValue(aPlayer, polution, "Pollution"); diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java index 346b016e11..216e8c7cd7 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java @@ -1,11 +1,28 @@ package com.detrav.items.behaviours; +import java.util.*; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; +import net.minecraftforge.fluids.FluidStack; + import com.detrav.DetravScannerMod; import com.detrav.items.DetravMetaGeneratedTool01; import com.detrav.utils.BartWorksHelper; import com.detrav.utils.GTppHelper; import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; import com.sinthoras.visualprospecting.VisualProspecting_API; + import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.LanguageRegistry; import gregtech.api.GregTech_API; @@ -19,28 +36,13 @@ import gregtech.common.GT_UndergroundOil; import gregtech.common.blocks.GT_Block_Ores_Abstract; import gregtech.common.blocks.GT_TileEntity_Ores; import gregtech.common.items.behaviors.Behaviour_None; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; -import net.minecraftforge.fluids.FluidStack; - -import java.util.*; /** * Created by wital_000 on 19.03.2016. */ public class BehaviourDetravToolProspector 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; @@ -53,255 +55,319 @@ public class BehaviourDetravToolProspector extends Behaviour_None { public BehaviourDetravToolProspector(int aCosts) { mCosts = aCosts; } - - public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { - - SplittableRandom aRandom =new SplittableRandom(); - int chance = ((1+aStack.getItemDamage())*8) > 100 ? 100 :(1+aStack.getItemDamage())*8; - - if (aWorld.isRemote) - return false; - - if(aWorld.getBlock(aX,aY,aZ) == Blocks.bedrock) - { + + public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, + int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + + SplittableRandom aRandom = new SplittableRandom(); + int chance = ((1 + aStack.getItemDamage()) * 8) > 100 ? 100 : (1 + aStack.getItemDamage()) * 8; + + if (aWorld.isRemote) return false; + + if (aWorld.getBlock(aX, aY, aZ) == Blocks.bedrock) { if (!aWorld.isRemote && aRandom.nextInt(100) < chance) { FluidStack fStack = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1); - addChatMassageByValue(aPlayer,fStack.amount/2,"a Fluid");//fStack.getLocalizedName()); - /*boolean fluid = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1)!=null &>_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1).getFluid()!=null; - if (fluid) - aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN+"You found some liquid.")); - else - aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED+"You found no liquid."));*/ + addChatMassageByValue(aPlayer, fStack.amount / 2, "a Fluid");// fStack.getLocalizedName()); + /* + * boolean fluid = GT_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1)!=null + * &>_UndergroundOil.undergroundOil(aWorld.getChunkFromBlockCoords(aX, aZ), -1).getFluid()!=null; if + * (fluid) aPlayer.addChatMessage(new + * ChatComponentText(EnumChatFormatting.GREEN+"You found some liquid.")); else + * aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED+"You found no liquid.")); + */ if (!aPlayer.capabilities.isCreativeMode) - ((DetravMetaGeneratedTool01)aItem).doDamage(aStack, this.mCosts); + ((DetravMetaGeneratedTool01) aItem).doDamage(aStack, this.mCosts); - if(Loader.isModLoaded("visualprospecting")) { + if (Loader.isModLoaded("visualprospecting")) { VisualProspecting_API.LogicalServer.sendProspectionResultsToClient( (EntityPlayerMP) aPlayer, new ArrayList<>(), - VisualProspecting_API.LogicalServer.prospectUndergroundFluidsWithingRadius(aWorld, (int) aPlayer.posX, (int) aPlayer.posZ, 0)); + VisualProspecting_API.LogicalServer.prospectUndergroundFluidsWithingRadius( + aWorld, + (int) aPlayer.posX, + (int) aPlayer.posZ, + 0)); } } return true; } - if (aWorld.getBlock(aX, aY, aZ).getMaterial() == Material.rock || aWorld.getBlock(aX, aY, aZ).getMaterial() == Material.ground || aWorld.getBlock(aX, aY, aZ) == GregTech_API.sBlockOres1) { + if (aWorld.getBlock(aX, aY, aZ).getMaterial() == Material.rock + || aWorld.getBlock(aX, aY, aZ).getMaterial() == Material.ground + || aWorld.getBlock(aX, aY, aZ) == GregTech_API.sBlockOres1) { if (!aWorld.isRemote) { - prospectChunks( (DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld, aX, aY, aZ, aRandom, chance ); + prospectChunks((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld, aX, aY, aZ, aRandom, chance); } return true; } return false; } - protected void prospectChunks(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, SplittableRandom aRandom, int chance) - { + protected void prospectChunks(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, + int aY, int aZ, SplittableRandom aRandom, int chance) { int bX = aX; int bZ = aZ; - + badluck = 0; ores = new HashMap<>(); - - int range = ((DetravMetaGeneratedTool01)aItem).getHarvestLevel(aStack, "")/2+(aStack.getItemDamage()/4); - if ((range % 2) == 0 ) { - range += 1; // kinda not needed here, divide takes it out, but we put it back in with the range+1 in the loop + + int range = ((DetravMetaGeneratedTool01) aItem).getHarvestLevel(aStack, "") / 2 + (aStack.getItemDamage() / 4); + if ((range % 2) == 0) { + range += 1; // kinda not needed here, divide takes it out, but we put it back in with the range+1 in the + // loop } - range = range/2; // Convert range from diameter to radius - - aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD+ GT_LanguageManager.sEnglishFile.get("LanguageFile", "gt.scanner.prospecting", "Prospecting at ").getString() + EnumChatFormatting.BLUE + "(" + bX + ", " + bZ + ")" )); - for (int x = -(range); x<(range+1);++x){ - aX=bX+(x*16); - for (int z = -(range); z<(range+1);++z) { - - aZ=bZ+(z*16); - int dist = x*x + z*z; - - for( distTextIndex = 0; distTextIndex < DISTANCEINTS.length; distTextIndex++ ) { - if ( dist <= DISTANCEINTS[distTextIndex] ) { + range = range / 2; // Convert range from diameter to radius + + aPlayer.addChatMessage( + new ChatComponentText( + EnumChatFormatting.GOLD + + GT_LanguageManager.sEnglishFile + .get("LanguageFile", "gt.scanner.prospecting", "Prospecting at ").getString() + + EnumChatFormatting.BLUE + + "(" + + bX + + ", " + + bZ + + ")")); + for (int x = -(range); x < (range + 1); ++x) { + aX = bX + (x * 16); + for (int z = -(range); z < (range + 1); ++z) { + + aZ = bZ + (z * 16); + int dist = x * x + z * z; + + for (distTextIndex = 0; distTextIndex < DISTANCEINTS.length; distTextIndex++) { + if (dist <= DISTANCEINTS[distTextIndex]) { break; } } - if (DetravScannerMod.DEBUGBUILD) - aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW+"Chunk at "+ aX +"|"+aZ+" to "+(aX+16)+"|"+(aZ+16) + StatCollector.translateToLocal("detrav.scanner.distance.texts." + distTextIndex))); - processOreProspecting((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld.getChunkFromBlockCoords(aX, aZ), aWorld.getTileEntity(aX, aY, aZ),GT_OreDictUnificator.getAssociation(new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))), aRandom, chance); + if (DetravScannerMod.DEBUGBUILD) aPlayer.addChatMessage( + new ChatComponentText( + EnumChatFormatting.YELLOW + "Chunk at " + + aX + + "|" + + aZ + + " to " + + (aX + 16) + + "|" + + (aZ + 16) + + StatCollector + .translateToLocal("detrav.scanner.distance.texts." + distTextIndex))); + processOreProspecting( + (DetravMetaGeneratedTool01) aItem, + aStack, + aPlayer, + aWorld.getChunkFromBlockCoords(aX, aZ), + aWorld.getTileEntity(aX, aY, aZ), + GT_OreDictUnificator.getAssociation( + new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))), + aRandom, + chance); } } - + // List to hold unsorted scanner messages List<ChatComponentText> oreMessages = new ArrayList<ChatComponentText>(); for (String key : ores.keySet()) { int value = ores.get(key); - appendChatMessageByValue(oreMessages, aPlayer,value,key); + appendChatMessageByValue(oreMessages, aPlayer, value, key); } // Define sort order by distance List<String> sortOrder = Arrays.asList( - StatCollector.translateToLocal("detrav.scanner.distance.texts.4"), - StatCollector.translateToLocal("detrav.scanner.distance.texts.3"), - StatCollector.translateToLocal("detrav.scanner.distance.texts.2"), - StatCollector.translateToLocal("detrav.scanner.distance.texts.1"), - StatCollector.translateToLocal("detrav.scanner.distance.texts.0") - ); + StatCollector.translateToLocal("detrav.scanner.distance.texts.4"), + StatCollector.translateToLocal("detrav.scanner.distance.texts.3"), + StatCollector.translateToLocal("detrav.scanner.distance.texts.2"), + StatCollector.translateToLocal("detrav.scanner.distance.texts.1"), + StatCollector.translateToLocal("detrav.scanner.distance.texts.0")); List<ChatComponentText> oreMessagesSorted = new ArrayList<ChatComponentText>(); oreMessagesSorted.add(new ChatComponentText(CHAT_MSG_SEPARATOR)); // Sort ore messages by distance, separated by ----- - for(String oreFrequency : sortOrder) { - for(ChatComponentText msg : oreMessages) { + for (String oreFrequency : sortOrder) { + for (ChatComponentText msg : oreMessages) { if (msg.getChatComponentText_TextValue().contains(oreFrequency)) { oreMessagesSorted.add(msg); } } - + // Only append ----- separator if text has been added - if (!oreMessagesSorted.get(oreMessagesSorted.size() - 1).getChatComponentText_TextValue().contains(CHAT_MSG_SEPARATOR)) { + if (!oreMessagesSorted.get(oreMessagesSorted.size() - 1).getChatComponentText_TextValue() + .contains(CHAT_MSG_SEPARATOR)) { oreMessagesSorted.add(new ChatComponentText(CHAT_MSG_SEPARATOR)); } } - - if( badluck == 0) { - oreMessages.add(new ChatComponentText(EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.success"))); + + if (badluck == 0) { + oreMessages.add( + new ChatComponentText( + EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.success"))); } else { - oreMessages.add(new ChatComponentText(EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.fail").replace("%badluck", Integer.toString(badluck)))); + oreMessages.add( + new ChatComponentText( + EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.fail") + .replace("%badluck", Integer.toString(badluck)))); } // Print the sorted messages - for(ChatComponentText msg : oreMessagesSorted) { + for (ChatComponentText msg : oreMessagesSorted) { aPlayer.addChatMessage(msg); } - if(Loader.isModLoaded("visualprospecting")) { + if (Loader.isModLoaded("visualprospecting")) { VisualProspecting_API.LogicalServer.sendProspectionResultsToClient( (EntityPlayerMP) aPlayer, - VisualProspecting_API.LogicalServer.prospectOreVeinsWithinRadius(aWorld.provider.dimensionId, (int) aPlayer.posX, (int) aPlayer.posZ, range * 16 ), + VisualProspecting_API.LogicalServer.prospectOreVeinsWithinRadius( + aWorld.provider.dimensionId, + (int) aPlayer.posX, + (int) aPlayer.posZ, + range * 16), new ArrayList<>()); } } // Used by Electric scanner when scanning the chunk whacked by the scanner. 100% chance find rate - protected void prospectSingleChunk(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ ) - { + protected void prospectSingleChunk(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, + int aX, int aY, int aZ) { ores = new HashMap<>(); - aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD+ StatCollector.translateToLocal("detrav.scanner.prospecting") + EnumChatFormatting.BLUE + "(" + aX + ", " + aZ + ")" )); - processOreProspecting((DetravMetaGeneratedTool01) aItem, aStack, aPlayer, aWorld.getChunkFromBlockCoords(aX, aZ), aWorld.getTileEntity(aX, aY, aZ),GT_OreDictUnificator.getAssociation(new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))), new SplittableRandom(), 1000); - + aPlayer.addChatMessage( + new ChatComponentText( + EnumChatFormatting.GOLD + StatCollector.translateToLocal( + "detrav.scanner.prospecting") + EnumChatFormatting.BLUE + "(" + aX + ", " + aZ + ")")); + processOreProspecting( + (DetravMetaGeneratedTool01) aItem, + aStack, + aPlayer, + aWorld.getChunkFromBlockCoords(aX, aZ), + aWorld.getTileEntity(aX, aY, aZ), + GT_OreDictUnificator.getAssociation( + new ItemStack(aWorld.getBlock(aX, aY, aZ), 1, aWorld.getBlockMetadata(aX, aY, aZ))), + new SplittableRandom(), + 1000); + for (String key : ores.keySet()) { int value = ores.get(key); - addChatMassageByValue(aPlayer,value,key); + addChatMassageByValue(aPlayer, value, key); } - if(Loader.isModLoaded("visualprospecting")) { + if (Loader.isModLoaded("visualprospecting")) { VisualProspecting_API.LogicalServer.sendProspectionResultsToClient( (EntityPlayerMP) aPlayer, - VisualProspecting_API.LogicalServer.prospectOreVeinsWithinRadius(aWorld.provider.dimensionId, (int) aPlayer.posX, (int) aPlayer.posZ, 0), + VisualProspecting_API.LogicalServer.prospectOreVeinsWithinRadius( + aWorld.provider.dimensionId, + (int) aPlayer.posX, + (int) aPlayer.posZ, + 0), new ArrayList<>()); } } - protected void processOreProspecting(DetravMetaGeneratedTool01 aItem, ItemStack aStack, EntityPlayer aPlayer, Chunk aChunk, TileEntity aTileEntity, ItemData tAssotiation, SplittableRandom aRandom, int chance)//TileEntity aTileEntity) + protected void processOreProspecting(DetravMetaGeneratedTool01 aItem, ItemStack aStack, EntityPlayer aPlayer, + Chunk aChunk, TileEntity aTileEntity, ItemData tAssotiation, SplittableRandom aRandom, int chance)// TileEntity + // aTileEntity) { if (aTileEntity != null) { if (aTileEntity instanceof GT_TileEntity_Ores) { GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) aTileEntity; short meta = gt_entity.getMetaData(); String format = LanguageRegistry.instance().getStringLocalization("gt.blockores." + meta + ".name"); - String name = Materials.getLocalizedNameForItem(format, meta%1000); + String name = Materials.getLocalizedNameForItem(format, meta % 1000); addOreToHashMap(name, aPlayer); - if (!aPlayer.capabilities.isCreativeMode) - aItem.doDamage(aStack, this.mCosts); + if (!aPlayer.capabilities.isCreativeMode) aItem.doDamage(aStack, this.mCosts); return; } - } else if (tAssotiation!=null){ + } else if (tAssotiation != null) { try { String name = tAssotiation.toString(); addChatMassageByValue(aPlayer, -1, name); - if (!aPlayer.capabilities.isCreativeMode) - aItem.doDamage(aStack, this.mCosts); + if (!aPlayer.capabilities.isCreativeMode) aItem.doDamage(aStack, this.mCosts); return; - } - catch (Exception e) - { + } catch (Exception e) { addChatMassageByValue(aPlayer, -1, "ERROR, lol ^_^"); } - }else if (aRandom.nextInt(100) < chance) { + } else if (aRandom.nextInt(100) < chance) { final 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); - for (int y = 1; y < ySize; y++) { - - Block tBlock = aChunk.getBlock(x,y,z); - short tMetaID = (short)aChunk.getBlockMetadata(x,y,z); - if (tBlock instanceof GT_Block_Ores_Abstract) { - TileEntity tTileEntity = aChunk.getTileEntityUnsafe(x,y,z); - if ((tTileEntity instanceof GT_TileEntity_Ores) + for (int x = 0; x < 16; x++) for (int z = 0; z < 16; z++) { + int ySize = aChunk.getHeightValue(x, z); + for (int y = 1; y < ySize; y++) { + + Block tBlock = aChunk.getBlock(x, y, z); + short tMetaID = (short) aChunk.getBlockMetadata(x, y, z); + if (tBlock instanceof GT_Block_Ores_Abstract) { + TileEntity tTileEntity = aChunk.getTileEntityUnsafe(x, y, z); + if ((tTileEntity instanceof GT_TileEntity_Ores) && ((GT_TileEntity_Ores) tTileEntity).mNatural) { - tMetaID = (short)((GT_TileEntity_Ores) tTileEntity).getMetaData(); + tMetaID = (short) ((GT_TileEntity_Ores) tTileEntity).getMetaData(); + try { + String format = LanguageRegistry.instance() + .getStringLocalization(tBlock.getUnlocalizedName() + "." + tMetaID + ".name"); + String name = Materials.getLocalizedNameForItem(format, tMetaID % 1000); + if (data != 1 && name.startsWith(small_ore_keyword)) continue; + addOreToHashMap(name, aPlayer); + } catch (Exception e) { + String name = tBlock.getUnlocalizedName() + "."; + if (data != 1 && name.contains(".small.")) continue; + addOreToHashMap(name, aPlayer); + } + } + } else if (DetravScannerMod.isGTppLoaded && GTppHelper.isGTppBlock(tBlock)) { + String name = GTppHelper.getGTppVeinName(tBlock); + if (!name.isEmpty()) addOreToHashMap(name, aPlayer); + } else if (DetravScannerMod.isBartWorksLoaded && BartWorksHelper.isOre(tBlock)) { + if (data != 1 && BartWorksHelper.isSmallOre(tBlock)) continue; + final Werkstoff werkstoff = Werkstoff.werkstoffHashMap.getOrDefault( + (short) ((BartWorksHelper.getMetaFromBlock(aChunk, x, y, z, tBlock)) * -1), + null); + String type = BartWorksHelper.isSmallOre(tBlock) ? "oreSmall" : "ore"; + String translated = GT_LanguageManager.getTranslation("bw.blocktype." + type); + addOreToHashMap(translated.replace("%material", werkstoff.getLocalizedName()), aPlayer); + } else if (data == 1) { + tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID)); + if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) { + try { try { - String format = LanguageRegistry.instance().getStringLocalization(tBlock.getUnlocalizedName() + "." + tMetaID + ".name"); - String name = Materials.getLocalizedNameForItem(format, tMetaID%1000); - if (data != 1 && name.startsWith(small_ore_keyword)) continue; + tMetaID = (short) tAssotiation.mMaterial.mMaterial.mMetaItemSubID; + String format = LanguageRegistry.instance() + .getStringLocalization("gt.blockores." + tMetaID + ".name"); + String name = Materials.getLocalizedNameForItem(format, tMetaID % 1000); addOreToHashMap(name, aPlayer); - } - catch(Exception e) { - String name = tBlock.getUnlocalizedName() + "."; - if (data != 1 && name.contains(".small.")) continue; + } catch (Exception e1) { + String name = tAssotiation.toString(); addOreToHashMap(name, aPlayer); } - } - } else if (DetravScannerMod.isGTppLoaded && GTppHelper.isGTppBlock(tBlock) ) { - String name = GTppHelper.getGTppVeinName(tBlock); - if (!name.isEmpty()) - addOreToHashMap(name, aPlayer); - } else if (DetravScannerMod.isBartWorksLoaded && BartWorksHelper.isOre(tBlock)){ - if (data != 1 && BartWorksHelper.isSmallOre(tBlock)) continue; - final Werkstoff werkstoff = Werkstoff.werkstoffHashMap.getOrDefault((short) ((BartWorksHelper.getMetaFromBlock(aChunk,x,y,z,tBlock))*-1), null); - String type = BartWorksHelper.isSmallOre(tBlock) ? "oreSmall" : "ore"; - String translated = GT_LanguageManager.getTranslation("bw.blocktype." + type); - addOreToHashMap(translated.replace("%material", werkstoff.getLocalizedName()), aPlayer); - } else if (data == 1) { - tAssotiation = GT_OreDictUnificator.getAssociation(new ItemStack(tBlock, 1, tMetaID)); - if ((tAssotiation != null) && (tAssotiation.mPrefix.toString().startsWith("ore"))) { - try { - try { - tMetaID = (short)tAssotiation.mMaterial.mMaterial.mMetaItemSubID; - String format = LanguageRegistry.instance().getStringLocalization("gt.blockores." + tMetaID + ".name"); - String name = Materials.getLocalizedNameForItem(format, tMetaID%1000); - addOreToHashMap(name, aPlayer); - } catch (Exception e1) { - String name = tAssotiation.toString(); - addOreToHashMap(name, aPlayer); - } - } - catch (Exception ignored) { } - } + } catch (Exception ignored) {} } - } + } + } - if (!aPlayer.capabilities.isCreativeMode) - aItem.doDamage(aStack, this.mCosts); + if (!aPlayer.capabilities.isCreativeMode) aItem.doDamage(aStack, this.mCosts); return; - } - else { + } else { if (DetravScannerMod.DEBUGBUILD) - aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED+" Failed on this chunk")); - badluck++; - if (!aPlayer.capabilities.isCreativeMode) - aItem.doDamage(aStack, this.mCosts/4); + aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + " Failed on this chunk")); + badluck++; + if (!aPlayer.capabilities.isCreativeMode) aItem.doDamage(aStack, this.mCosts / 4); } - // addChatMassageByValue(aPlayer,0,null); + // addChatMassageByValue(aPlayer,0,null); } void addOreToHashMap(String orename, EntityPlayer aPlayer) { - String oreDistance = orename + StatCollector.translateToLocal("detrav.scanner.distance.texts." + distTextIndex); // orename + the textual distance of the ore + String oreDistance = orename + StatCollector.translateToLocal("detrav.scanner.distance.texts." + distTextIndex); // orename + // + + // the + // textual + // distance + // of + // the + // ore if (!ores.containsKey(oreDistance)) { - if (DetravScannerMod.DEBUGBUILD) - aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN+" Adding to oremap " + oreDistance)); + if (DetravScannerMod.DEBUGBUILD) aPlayer.addChatMessage( + new ChatComponentText(EnumChatFormatting.GREEN + " Adding to oremap " + oreDistance)); ores.put(oreDistance, 1); } else { int val = ores.get(oreDistance); @@ -311,41 +377,44 @@ public class BehaviourDetravToolProspector extends Behaviour_None { void addChatMassageByValue(EntityPlayer aPlayer, int value, String name) { if (value < 0) { - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name)); + aPlayer.addChatMessage( + new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name)); } else if (value < 1) { - aPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.0"))); - } else if (value < 10) - aPlayer.addChatMessage(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.1"))); - else if (value < 30) - aPlayer.addChatMessage(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.2"))); - else if (value < 60) - aPlayer.addChatMessage(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.3"))); - else if (value < 100) - aPlayer.addChatMessage(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.4"))); - else - aPlayer.addChatMessage(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.5"))); + aPlayer.addChatMessage( + new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.0"))); + } else if (value < 10) aPlayer.addChatMessage( + new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.1"))); + else if (value < 30) aPlayer.addChatMessage( + new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.2"))); + else if (value < 60) aPlayer.addChatMessage( + new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.3"))); + else if (value < 100) aPlayer.addChatMessage( + new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.4"))); + else aPlayer.addChatMessage( + new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.5"))); } // Same as addChatMassageByValue but appends to a list of chat messages and spelled correctly - void appendChatMessageByValue(List<ChatComponentText> chatMessageList, EntityPlayer aPlayer, int value, String name) { + void appendChatMessageByValue(List<ChatComponentText> chatMessageList, EntityPlayer aPlayer, int value, + String name) { if (value < 0) { - chatMessageList.add(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name)); + chatMessageList + .add(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name)); } else if (value < 1) { chatMessageList.add(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.0"))); - } else if (value < 10) - chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.1"))); - else if (value < 30) - chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.2"))); - else if (value < 60) - chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.3"))); - else if (value < 100) - chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.4"))); - else - chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.5"))); + } else if (value < 10) chatMessageList + .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.1"))); + else if (value < 30) chatMessageList + .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.2"))); + else if (value < 60) chatMessageList + .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.3"))); + else if (value < 100) chatMessageList + .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.4"))); + else chatMessageList + .add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.5"))); } - public static int getPolution(World aWorld, int aX, int aZ) - { + public static int getPolution(World aWorld, int aX, int aZ) { return GT_Pollution.getPollution(aWorld.getChunkFromBlockCoords(aX, aZ)); } } diff --git a/src/main/java/com/detrav/items/processing/ProcessingDetravToolProspector.java b/src/main/java/com/detrav/items/processing/ProcessingDetravToolProspector.java index df0c37db60..c6ea1dfb46 100644 --- a/src/main/java/com/detrav/items/processing/ProcessingDetravToolProspector.java +++ b/src/main/java/com/detrav/items/processing/ProcessingDetravToolProspector.java @@ -1,49 +1,168 @@ package com.detrav.items.processing; +import static com.detrav.DetravScannerMod.DEBUGBUILD; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + import com.detrav.items.DetravMetaGeneratedTool01; import com.dreammaster.gthandler.CustomItemList; + import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -import static com.detrav.DetravScannerMod.DEBUGBUILD; /** * Created by wital_000 on 18.03.2016. */ -public class ProcessingDetravToolProspector implements gregtech.api.interfaces.IOreRecipeRegistrator { +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; + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + 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}); - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(2, 1, aMaterial, Materials.Steel, 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.Basic), 'X', ItemList.Sensor_LV}); - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(4, 1, aMaterial, Materials.Steel, 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.Good), 'X', ItemList.Sensor_MV}); - - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(6, 1, aMaterial, Materials.Steel, 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("cellNitricAcid").get(0), 'S', OreDictionary.getOres("cellSodiumPersulfate").get(0), 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', OrePrefixes.circuit.get(Materials.Advanced), 'X', ItemList.Sensor_HV}); - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(8, 1, aMaterial, Materials.Steel, 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("cellNitricAcid").get(0), 'S', OreDictionary.getOres("cellSodiumPersulfate").get(0), 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', OrePrefixes.circuit.get(Materials.Data), 'X', ItemList.Sensor_EV}); - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(10, 1, aMaterial, Materials.Steel, 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("cellNitricAcid").get(0), 'S', OreDictionary.getOres("cellSodiumPersulfate").get(0), 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', OrePrefixes.circuit.get(Materials.Elite), 'X', ItemList.Sensor_IV}); - - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(12, 1, aMaterial, Materials.Steel, 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("cellHydrofluoricAcid").get(0), 'S', OreDictionary.getOres("cellLithiumPeroxide").get(0), 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', OrePrefixes.circuit.get(Materials.Master), 'X', ItemList.Sensor_LuV}); - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(14, 1, aMaterial, Materials.Steel, 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("cellHydrofluoricAcid").get(0), 'S', OreDictionary.getOres("cellLithiumPeroxide").get(0), 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', OrePrefixes.circuit.get(Materials.Ultimate), 'X', ItemList.Sensor_ZPM}); - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(16, 1, aMaterial, Materials.Steel, 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("cellHydrofluoricAcid").get(0), 'S', OreDictionary.getOres("cellLithiumPeroxide").get(0), 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', OrePrefixes.circuit.get(Materials.Superconductor), 'X', ItemList.Sensor_UV}); - - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(18, 1, aMaterial, Materials.Steel, 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("cellHydrofluoricAcid").get(0), 'S', OreDictionary.getOres("cellHydrogenPeroxide").get(0), 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', OrePrefixes.circuit.get(Materials.Infinite), 'X', ItemList.Sensor_UHV}); - - GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(100, 1, aMaterial, Materials.Iridium, new long[]{102400000L, GT_Values.V[6], 6L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", 'S', ItemList.Cover_Screen, 'R', ItemList.Sensor_LuV, 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'E', ItemList.Emitter_LuV, 'C', OrePrefixes.circuit.get(Materials.Master), 'P', OrePrefixes.plate.get(Materials.Iridium), 'B', CustomItemList.BatteryHull_LuV_Full.get(1L)}); - 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", 'S', ItemList.Cover_Screen, 'R', ItemList.Sensor_ZPM, 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'E', ItemList.Emitter_ZPM, 'C', OrePrefixes.circuit.get(Materials.Ultimate), 'P', OrePrefixes.plate.get(Materials.Osmium), '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", 'S', ItemList.Cover_Screen, 'R', ItemList.Sensor_UV, 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'E', ItemList.Emitter_UV, 'C', OrePrefixes.circuit.get(Materials.Superconductor), 'P', OrePrefixes.plate.get(Materials.Neutronium), '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", 'S', ItemList.Cover_Screen, 'R', ItemList.Sensor_UHV, 'H', OrePrefixes.toolHeadDrill.get(aMaterial), 'E', ItemList.Emitter_UHV, 'C', OrePrefixes.circuit.get(Materials.Infinite), 'P', OrePrefixes.plate.get(Materials.Infinity), 'B', CustomItemList.BatteryHull_UHV_Full.get(1L)}); - } catch (Exception ignored){} - + // 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}); + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(2, 1, aMaterial, Materials.Steel, 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.Basic), 'X', ItemList.Sensor_LV }); + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(4, 1, aMaterial, Materials.Steel, 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.Good), 'X', ItemList.Sensor_MV }); + + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(6, 1, aMaterial, Materials.Steel, 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("cellNitricAcid").get(0), 'S', + OreDictionary.getOres("cellSodiumPersulfate").get(0), 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', + OrePrefixes.circuit.get(Materials.Advanced), 'X', ItemList.Sensor_HV }); + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(8, 1, aMaterial, Materials.Steel, 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("cellNitricAcid").get(0), 'S', + OreDictionary.getOres("cellSodiumPersulfate").get(0), 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', + OrePrefixes.circuit.get(Materials.Data), 'X', ItemList.Sensor_EV }); + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(10, 1, aMaterial, Materials.Steel, 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("cellNitricAcid").get(0), 'S', + OreDictionary.getOres("cellSodiumPersulfate").get(0), 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', + OrePrefixes.circuit.get(Materials.Elite), 'X', ItemList.Sensor_IV }); + + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(12, 1, aMaterial, Materials.Steel, 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("cellHydrofluoricAcid").get(0), 'S', + OreDictionary.getOres("cellLithiumPeroxide").get(0), 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', + OrePrefixes.circuit.get(Materials.Master), 'X', ItemList.Sensor_LuV }); + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(14, 1, aMaterial, Materials.Steel, 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("cellHydrofluoricAcid").get(0), 'S', + OreDictionary.getOres("cellLithiumPeroxide").get(0), 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', + OrePrefixes.circuit.get(Materials.Ultimate), 'X', ItemList.Sensor_ZPM }); + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(16, 1, aMaterial, Materials.Steel, 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("cellHydrofluoricAcid").get(0), 'S', + OreDictionary.getOres("cellLithiumPeroxide").get(0), 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', + OrePrefixes.circuit.get(Materials.Superconductor), 'X', ItemList.Sensor_UV }); + + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(18, 1, aMaterial, Materials.Steel, 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("cellHydrofluoricAcid").get(0), 'S', + OreDictionary.getOres("cellHydrogenPeroxide").get(0), 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial), 'C', + OrePrefixes.circuit.get(Materials.Infinite), 'X', ItemList.Sensor_UHV }); + + GT_ModHandler.addCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats( + 100, + 1, + aMaterial, + Materials.Iridium, + new long[] { 102400000L, GT_Values.V[6], 6L, -1L }), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS + | GT_ModHandler.RecipeBits.BUFFERED, + new Object[] { "EHR", "CSC", "PBP", 'S', ItemList.Cover_Screen, 'R', ItemList.Sensor_LuV, 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'E', ItemList.Emitter_LuV, 'C', + OrePrefixes.circuit.get(Materials.Master), 'P', OrePrefixes.plate.get(Materials.Iridium), + 'B', CustomItemList.BatteryHull_LuV_Full.get(1L) }); + 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", 'S', ItemList.Cover_Screen, 'R', ItemList.Sensor_ZPM, 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'E', ItemList.Emitter_ZPM, 'C', + OrePrefixes.circuit.get(Materials.Ultimate), 'P', OrePrefixes.plate.get(Materials.Osmium), + '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", 'S', ItemList.Cover_Screen, 'R', ItemList.Sensor_UV, 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'E', ItemList.Emitter_UV, 'C', + OrePrefixes.circuit.get(Materials.Superconductor), 'P', + OrePrefixes.plate.get(Materials.Neutronium), '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", 'S', ItemList.Cover_Screen, 'R', ItemList.Sensor_UHV, 'H', + OrePrefixes.toolHeadDrill.get(aMaterial), 'E', ItemList.Emitter_UHV, 'C', + OrePrefixes.circuit.get(Materials.Infinite), 'P', OrePrefixes.plate.get(Materials.Infinity), + 'B', CustomItemList.BatteryHull_UHV_Full.get(1L) }); + } catch (Exception ignored) {} + } } diff --git a/src/main/java/com/detrav/items/tools/DetravProspector.java b/src/main/java/com/detrav/items/tools/DetravProspector.java index 9390ed4f0c..e6328844c8 100644 --- a/src/main/java/com/detrav/items/tools/DetravProspector.java +++ b/src/main/java/com/detrav/items/tools/DetravProspector.java @@ -1,33 +1,35 @@ package com.detrav.items.tools; +import net.minecraft.item.ItemStack; + import com.detrav.enums.Textures01; import com.detrav.items.behaviours.BehaviourDetravToolProspector; import gregtech.api.interfaces.IIconContainer; import gregtech.api.items.GT_MetaGenerated_Tool; -import net.minecraft.item.ItemStack; public class DetravProspector extends DetravToolElectricProspectorBase { - - private final int tier; - - public DetravProspector(int tier) { - this.tier=tier; - } - - public int getBaseQuality() { - return tier; - } - public float getMaxDurabilityMultiplier() { - double x = tier + 1; - return (float) (((float) 0.005D+Math.tanh(Math.pow(x,(x/8D))/25D)*(x/6D))*1.25); - } - - public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { - return Textures01.mTextures[0]; - } - - public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { - aItem.addItemBehavior(aID, new BehaviourDetravToolProspector(15)); - } + + private final int tier; + + public DetravProspector(int tier) { + this.tier = tier; + } + + public int getBaseQuality() { + return tier; + } + + public float getMaxDurabilityMultiplier() { + double x = tier + 1; + return (float) (((float) 0.005D + Math.tanh(Math.pow(x, (x / 8D)) / 25D) * (x / 6D)) * 1.25); + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return Textures01.mTextures[0]; + } + + public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { + aItem.addItemBehavior(aID, new BehaviourDetravToolProspector(15)); + } } diff --git a/src/main/java/com/detrav/items/tools/DetravToolElectricProspector.java b/src/main/java/com/detrav/items/tools/DetravToolElectricProspector.java index d2bc52b61b..3af699482b 100644 --- a/src/main/java/com/detrav/items/tools/DetravToolElectricProspector.java +++ b/src/main/java/com/detrav/items/tools/DetravToolElectricProspector.java @@ -1,34 +1,33 @@ package com.detrav.items.tools; +import net.minecraft.item.ItemStack; + import com.detrav.enums.Textures01; import gregtech.api.interfaces.IIconContainer; -import net.minecraft.item.ItemStack; /** * Created by wital_000 on 19.03.2016. */ public class DetravToolElectricProspector extends DetravToolElectricProspectorBase { - - private final int tier; - + + private final int tier; + public DetravToolElectricProspector(int tier) { - this.tier=tier; - } - public int getBaseQuality() { - return tier-6; + this.tier = tier; } + + public int getBaseQuality() { + return tier - 6; + } + public float getMaxDurabilityMultiplier() { - if (tier-6 == 0) - return (float) Math.pow(((float)((tier-6F)*2F)),0.0D); - else - return (float)((tier-6F)*2F); + if (tier - 6 == 0) return (float) Math.pow(((float) ((tier - 6F) * 2F)), 0.0D); + else return (float) ((tier - 6F) * 2F); } public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { - - if (tier<=9 && tier >= 6) - return Textures01.mTextures[tier-5]; - else - return Textures01.mTextures[1]; + + if (tier <= 9 && tier >= 6) return Textures01.mTextures[tier - 5]; + else return Textures01.mTextures[1]; } } diff --git a/src/main/java/com/detrav/items/tools/DetravToolElectricProspectorBase.java b/src/main/java/com/detrav/items/tools/DetravToolElectricProspectorBase.java index d2d3cd108a..6bd2bb810f 100644 --- a/src/main/java/com/detrav/items/tools/DetravToolElectricProspectorBase.java +++ b/src/main/java/com/detrav/items/tools/DetravToolElectricProspectorBase.java @@ -1,13 +1,7 @@ package com.detrav.items.tools; -import com.detrav.enums.Textures01; -import com.detrav.items.behaviours.BehaviourDetravToolElectricProspector; -import gregtech.GT_Mod; -import gregtech.api.GregTech_API; -import gregtech.api.damagesources.GT_DamageSources; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.interfaces.IToolStats; -import gregtech.api.items.GT_MetaGenerated_Tool; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.Entity; @@ -22,14 +16,21 @@ import net.minecraft.util.IChatComponent; import net.minecraft.world.World; import net.minecraftforge.event.world.BlockEvent; -import java.util.List; +import com.detrav.enums.Textures01; +import com.detrav.items.behaviours.BehaviourDetravToolElectricProspector; + +import gregtech.GT_Mod; +import gregtech.api.GregTech_API; +import gregtech.api.damagesources.GT_DamageSources; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.IToolStats; +import gregtech.api.items.GT_MetaGenerated_Tool; /** - * Created by wital_000 on 19.03.2016. - * modified by bartimaeusnek on 05.06.2018 + * Created by wital_000 on 19.03.2016. modified by bartimaeusnek on 05.06.2018 */ public class DetravToolElectricProspectorBase implements IToolStats { - + public int getToolDamagePerBlockBreak() { return GT_Mod.gregtechproxy.mHardRock ? 50 : 100; } @@ -69,7 +70,10 @@ public class DetravToolElectricProspectorBase implements IToolStats { @Override public DamageSource getDamageSource(EntityLivingBase aPlayer, Entity aEntity) { - return GT_DamageSources.getCombatDamage((aPlayer instanceof EntityPlayer) ? "player" : "mob", aPlayer, (aEntity instanceof EntityLivingBase) ? getDeathMessage(aPlayer, (EntityLivingBase) aEntity) : null); + return GT_DamageSources.getCombatDamage( + (aPlayer instanceof EntityPlayer) ? "player" : "mob", + aPlayer, + (aEntity instanceof EntityLivingBase) ? getDeathMessage(aPlayer, (EntityLivingBase) aEntity) : null); } public String getCraftingSound() { @@ -142,7 +146,8 @@ public class DetravToolElectricProspectorBase implements IToolStats { } @Override - public int convertBlockDrops(List<ItemStack> list, ItemStack itemStack, EntityPlayer entityPlayer, Block block, int i, int i1, int i2, byte b, int i3, boolean b1, BlockEvent.HarvestDropsEvent harvestDropsEvent) { + public int convertBlockDrops(List<ItemStack> list, ItemStack itemStack, EntityPlayer entityPlayer, Block block, + int i, int i1, int i2, byte b, int i3, boolean b1, BlockEvent.HarvestDropsEvent harvestDropsEvent) { return 0; } @@ -165,7 +170,8 @@ public class DetravToolElectricProspectorBase implements IToolStats { } public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) { - return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; + return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa + : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa; } public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) { @@ -180,10 +186,17 @@ public class DetravToolElectricProspectorBase implements IToolStats { } public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) { - return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got Pick Up'ed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + return new ChatComponentText( + EnumChatFormatting.RED + aEntity.getCommandSenderName() + + EnumChatFormatting.WHITE + + " got Pick Up'ed by " + + EnumChatFormatting.GREEN + + aPlayer.getCommandSenderName() + + EnumChatFormatting.WHITE); } - public float getMiningSpeed(Block aBlock, byte aMetaData, float aDefault, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) { - return aDefault; - } -}
\ No newline at end of file + public float getMiningSpeed(Block aBlock, byte aMetaData, float aDefault, EntityPlayer aPlayer, World aWorld, + int aX, int aY, int aZ) { + return aDefault; + } +} diff --git a/src/main/java/com/detrav/net/DetravNetwork.java b/src/main/java/com/detrav/net/DetravNetwork.java index 5e20fd1552..ecd9559f39 100644 --- a/src/main/java/com/detrav/net/DetravNetwork.java +++ b/src/main/java/com/detrav/net/DetravNetwork.java @@ -1,7 +1,13 @@ package com.detrav.net; +import java.util.EnumMap; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayerMP; + import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteStreams; + import cpw.mods.fml.common.network.FMLEmbeddedChannel; import cpw.mods.fml.common.network.FMLOutboundHandler; import cpw.mods.fml.common.network.NetworkRegistry; @@ -12,10 +18,6 @@ import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import io.netty.handler.codec.MessageToMessageCodec; -import net.minecraft.entity.player.EntityPlayerMP; - -import java.util.EnumMap; -import java.util.List; /** * Created by wital_000 on 20.03.2016. @@ -34,7 +36,10 @@ public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravP @Override protected void encode(ChannelHandlerContext ctx, DetravPacket msg, List<Object> out) throws Exception { - out.add(new FMLProxyPacket(Unpooled.buffer().writeByte(msg.getPacketID()).writeBytes(msg.encode()).copy(),(String) ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get())); + out.add( + new FMLProxyPacket( + Unpooled.buffer().writeByte(msg.getPacketID()).writeBytes(msg.encode()).copy(), + (String) ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get())); } @SuppressWarnings("UnstableApiUsage") @@ -46,17 +51,22 @@ public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravP } public void sendToPlayer(DetravPacket aPacket, EntityPlayerMP aPlayer) { - ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER); - ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPlayer); + ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET) + .set(FMLOutboundHandler.OutboundTarget.PLAYER); + ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS) + .set(aPlayer); ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket); } + public void sendToServer(DetravPacket aPacket) { - ((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.TOSERVER); + ((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).attr(FMLOutboundHandler.FML_MESSAGETARGET) + .set(FMLOutboundHandler.OutboundTarget.TOSERVER); ((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).writeAndFlush(aPacket); } @ChannelHandler.Sharable 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 dcf61064ac..06e968b1ef 100644 --- a/src/main/java/com/detrav/net/DetravPacket.java +++ b/src/main/java/com/detrav/net/DetravPacket.java @@ -5,9 +5,9 @@ package com.detrav.net; */ public abstract class DetravPacket { - public abstract int getPacketID() ; + public abstract int getPacketID(); - public abstract byte[] encode() ; + public abstract byte[] encode(); public abstract void process(); } diff --git a/src/main/java/com/detrav/net/ProspectingPacket.java b/src/main/java/com/detrav/net/ProspectingPacket.java index b083e4829e..4d6fd72b82 100644 --- a/src/main/java/com/detrav/net/ProspectingPacket.java +++ b/src/main/java/com/detrav/net/ProspectingPacket.java @@ -1,35 +1,30 @@ package com.detrav.net; +import java.util.HashMap; + +import net.minecraft.util.StatCollector; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; + import com.detrav.DetravScannerMod; import com.detrav.gui.DetravScannerGUI; import com.detrav.gui.textures.DetravMapTexture; -import com.detrav.utils.BartWorksHelper; 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; @@ -40,9 +35,8 @@ public class ProspectingPacket extends DetravPacket { 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 int level = -1; public ProspectingPacket(int chunkX, int chunkZ, int posX, int posZ, int size, int ptype) { this.chunkX = chunkX; @@ -51,28 +45,29 @@ public class ProspectingPacket extends DetravPacket { this.posZ = posZ; this.size = size; this.ptype = ptype; - this.map = new HashMap[(size*2+1)*16][(size*2+1)*16]; + 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) { + if (packet.ptype == 0 || packet.ptype == 1) { // Ore or Small Ore if (meta < 7000 || meta > 7500) { if (meta > 0) { Materials tMaterial = GregTech_API.sGeneratedMaterials[meta % 1000]; rgba = tMaterial.getRGBA(); - name = tMaterial.getLocalizedNameForItem(GT_LanguageManager.getTranslation("gt.blockores." + meta + ".name")); + name = tMaterial.getLocalizedNameForItem( + GT_LanguageManager.getTranslation("gt.blockores." + meta + ".name")); } else { final Werkstoff werkstoff = Werkstoff.werkstoffHashMap.getOrDefault((short) (meta * -1), null); String translated = GT_LanguageManager.getTranslation("bw.blocktype.ore"); name = translated.replace("%material", werkstoff.getLocalizedName()); - rgba = werkstoff != null ? werkstoff.getRGBA() : new short[]{0,0,0,0}; + rgba = werkstoff != null ? werkstoff.getRGBA() : new short[] { 0, 0, 0, 0 }; } } else { gtPlusPlus.core.material.Material pMaterial = GTppHelper.decodeoresGTpp.get((short) (meta - 7000)); @@ -83,18 +78,18 @@ public class ProspectingPacket extends DetravPacket { // Fluid rgba = fluidColors.get((int) meta); if (rgba == null) { - DetravScannerMod.proxy.sendPlayerExeption( "Unknown fluid ID = " + meta + " Please add to FluidColors.java!"); - rgba = new short[]{0,0,0,0}; + DetravScannerMod.proxy + .sendPlayerExeption("Unknown fluid ID = " + meta + " Please add to FluidColors.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") - ); + 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[]{125,123,118,0}; + rgba = new short[] { 125, 123, 118, 0 }; } else { return; } @@ -106,31 +101,34 @@ public class ProspectingPacket extends DetravPacket { } public static Object decode(ByteArrayDataInput aData) { - ProspectingPacket packet = new ProspectingPacket(aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt()); + 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(); - packet.map[i][j].put(y, meta); - if (packet.ptype != 2 || y == 1) addOre(packet, y, i, j, meta); - checkOut++; - } + 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(); + packet.map[i][j].put(y, meta); + if (packet.ptype != 2 || y == 1) addOre(packet, y, i, j, meta); + checkOut++; } + } int checkOut2 = aData.readInt(); - if(checkOut != checkOut2) return null; + if (checkOut != checkOut2) return null; return packet; } - - @Override public int getPacketID() { return 0; @@ -147,27 +145,24 @@ public class ProspectingPacket extends DetravPacket { tOut.writeInt(size); tOut.writeInt(ptype); tOut.writeInt(level); - - int aSize = (size*2+1)*16; + + 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++; - } + 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)); @@ -175,13 +170,13 @@ public class ProspectingPacket extends DetravPacket { } 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<>(); + 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; + 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 67327d2f2b..b9b978b021 100644 --- a/src/main/java/com/detrav/proxies/ClientProxy.java +++ b/src/main/java/com/detrav/proxies/ClientProxy.java @@ -1,18 +1,18 @@ package com.detrav.proxies; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; + import com.detrav.DetravScannerMod; import com.detrav.enums.Textures01; import com.detrav.gui.DetravScannerGUI; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; /** * Created by wital_000 on 19.03.2016. */ public class ClientProxy extends CommonProxy { - public ClientProxy() - { + public ClientProxy() { int test = Textures01.mTextures.length; } @@ -20,7 +20,7 @@ public class ClientProxy extends CommonProxy { public void onPostLoad() { super.onPostLoad(); } - + @Override public void onLoad() { super.onLoad(); @@ -28,8 +28,15 @@ public class ClientProxy extends CommonProxy { public void openProspectorGUI() { EntityPlayer player = Minecraft.getMinecraft().thePlayer; - player.openGui(DetravScannerMod.instance, DetravScannerGUI.GUI_ID, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ); + player.openGui( + DetravScannerMod.instance, + DetravScannerGUI.GUI_ID, + player.worldObj, + (int) player.posX, + (int) player.posY, + (int) player.posZ); } + @Override 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 d1595b07fb..951c6e9735 100644 --- a/src/main/java/com/detrav/proxies/CommonProxy.java +++ b/src/main/java/com/detrav/proxies/CommonProxy.java @@ -1,10 +1,11 @@ package com.detrav.proxies; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + import com.detrav.events.DetravLoginEventHandler; import com.detrav.gui.DetravScannerGUI; import cpw.mods.fml.common.network.IGuiHandler; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; /** * Created by wital_000 on 19.03.2016. @@ -39,12 +40,10 @@ public class CommonProxy implements IGuiHandler { } } - public void openProspectorGUI() { - //just Client code + // just Client code } - public void onPreInit() { } diff --git a/src/main/java/com/detrav/proxies/ServerProxy.java b/src/main/java/com/detrav/proxies/ServerProxy.java index 22a4b87675..46d58450d9 100644 --- a/src/main/java/com/detrav/proxies/ServerProxy.java +++ b/src/main/java/com/detrav/proxies/ServerProxy.java @@ -4,6 +4,7 @@ package com.detrav.proxies; * Created by wital_000 on 19.03.2016. */ public class ServerProxy extends CommonProxy { + @Override public void onPostLoad() { super.onPostLoad(); @@ -18,4 +19,4 @@ public class ServerProxy extends CommonProxy { public void onPreInit() { super.onPreInit(); } -}
\ No newline at end of file +} diff --git a/src/main/java/com/detrav/utils/BartWorksHelper.java b/src/main/java/com/detrav/utils/BartWorksHelper.java index 6f59ccb491..bac23893c1 100644 --- a/src/main/java/com/detrav/utils/BartWorksHelper.java +++ b/src/main/java/com/detrav/utils/BartWorksHelper.java @@ -1,22 +1,23 @@ package com.detrav.utils; -import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_Ores; -import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_SmallOres; import net.minecraft.block.Block; import net.minecraft.world.chunk.Chunk; +import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_Ores; +import com.github.bartimaeusnek.bartworks.system.material.BW_MetaGenerated_SmallOres; + public class BartWorksHelper { - public static boolean isOre(Block tBlock){ + public static boolean isOre(Block tBlock) { return tBlock instanceof BW_MetaGenerated_Ores; } - public static boolean isSmallOre(Block tBlock){ + public static boolean isSmallOre(Block tBlock) { return tBlock instanceof BW_MetaGenerated_SmallOres; } - public static short getMetaFromBlock(Chunk c, int x, int y, int z, Block tBlock){ - return (short) (tBlock.getDamageValue(c.worldObj,c.xPosition * 16 + x, y, c.zPosition * 16 + z)*-1); + public static short getMetaFromBlock(Chunk c, int x, int y, int z, Block tBlock) { + return (short) (tBlock.getDamageValue(c.worldObj, c.xPosition * 16 + x, y, c.zPosition * 16 + z) * -1); } } diff --git a/src/main/java/com/detrav/utils/DetravCreativeTab.java b/src/main/java/com/detrav/utils/DetravCreativeTab.java index 6d0830f2bb..ba79c55ab2 100644 --- a/src/main/java/com/detrav/utils/DetravCreativeTab.java +++ b/src/main/java/com/detrav/utils/DetravCreativeTab.java @@ -1,13 +1,15 @@ package com.detrav.utils; -import com.detrav.items.DetravMetaGeneratedTool01; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; + import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; import net.minecraft.item.Item; -import java.util.List; +import com.detrav.items.DetravMetaGeneratedTool01; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; /** * Created by wital_000 on 19.03.2016. @@ -23,7 +25,6 @@ public class DetravCreativeTab extends CreativeTabs { return Items.stick; } - @Override @SideOnly(Side.CLIENT) public void displayAllReleventItems(List p_78018_1_) { diff --git a/src/main/java/com/detrav/utils/FluidColors.java b/src/main/java/com/detrav/utils/FluidColors.java index 2a0ede49b9..a5cd94e492 100644 --- a/src/main/java/com/detrav/utils/FluidColors.java +++ b/src/main/java/com/detrav/utils/FluidColors.java @@ -1,96 +1,87 @@ package com.detrav.utils; -import gregtech.api.enums.Materials; -import net.minecraftforge.fluids.FluidRegistry; +import static com.detrav.net.ProspectingPacket.fluidColors; import java.util.Arrays; import java.util.Objects; -import static com.detrav.net.ProspectingPacket.fluidColors; +import net.minecraftforge.fluids.FluidRegistry; + +import gregtech.api.enums.Materials; public class FluidColors { - public static void makeColors(){ + public static void makeColors() { reFillFluidColors(); - //ProgressManager.ProgressBar progressBar = ProgressManager.push("Making Fluid Colors", (int) (Materials.values().length + FluidRegistry.getRegisteredFluids().values().stream().filter(Objects::nonNull).count())); - Arrays.stream(Materials.values()).forEach( - mat -> { - //progressBar.step(mat.mDefaultLocalName); - if ( mat.getSolid(0) != null) - fluidColors.putIfAbsent(mat.getSolid(0).getFluidID(), mat.mRGBa); - if ( mat.getGas(0) != null) - fluidColors.putIfAbsent(mat.getGas(0).getFluidID(), mat.mRGBa); - if ( mat.getFluid(0) != null) - fluidColors.putIfAbsent(mat.getFluid(0).getFluidID(), mat.mRGBa); - if ( mat.getMolten(0) != null) - fluidColors.putIfAbsent(mat.getMolten(0).getFluidID(), mat.mRGBa); - } - ); + // ProgressManager.ProgressBar progressBar = ProgressManager.push("Making Fluid Colors", (int) + // (Materials.values().length + + // FluidRegistry.getRegisteredFluids().values().stream().filter(Objects::nonNull).count())); + Arrays.stream(Materials.values()).forEach(mat -> { + // progressBar.step(mat.mDefaultLocalName); + if (mat.getSolid(0) != null) fluidColors.putIfAbsent(mat.getSolid(0).getFluidID(), mat.mRGBa); + if (mat.getGas(0) != null) fluidColors.putIfAbsent(mat.getGas(0).getFluidID(), mat.mRGBa); + if (mat.getFluid(0) != null) fluidColors.putIfAbsent(mat.getFluid(0).getFluidID(), mat.mRGBa); + if (mat.getMolten(0) != null) fluidColors.putIfAbsent(mat.getMolten(0).getFluidID(), mat.mRGBa); + }); FluidRegistry.getRegisteredFluids().values().stream().filter(Objects::nonNull).forEach(fluid -> { - // progressBar.step(fluid.getName()); - fluidColors.putIfAbsent(fluid.getID(), convertColorInt(fluid.getColor())); - } - ); - // ProgressManager.pop(progressBar); + // progressBar.step(fluid.getName()); + fluidColors.putIfAbsent(fluid.getID(), convertColorInt(fluid.getColor())); + }); + // ProgressManager.pop(progressBar); } - private static void reFillFluidColors(){ + private static void reFillFluidColors() { try { // Should probably be put somewhere else, but I suck at Java - fluidColors.put(Materials.NatruralGas.mGas.getID(), new short[]{0x00, 0xff, 0xff}); - fluidColors.put(Materials.OilLight.mFluid.getID(), new short[]{0xff, 0xff, 0x00}); - fluidColors.put(Materials.OilMedium.mFluid.getID(), new short[]{0x00, 0xFF, 0x00}); - fluidColors.put(Materials.OilHeavy.mFluid.getID(), new short[]{0xFF, 0x00, 0xFF}); - fluidColors.put(Materials.Oil.mFluid.getID(), new short[]{0x00, 0x00, 0x00}); - fluidColors.put(Materials.Helium_3.mGas.getID(), new short[]{0x80, 0x20, 0xe0}); - fluidColors.put(Materials.SaltWater.mFluid.getID(), new short[]{0x80, 0xff, 0x80}); - //fluidColors.put(Materials.Naquadah.getMolten(0).getFluid().getID(), new short[]{0x20, 0x20, 0x20}); - //fluidColors.put(Materials.NaquadahEnriched.getMolten(0).getFluid().getID(), new short[]{0x60, 0x60, 0x60}); - fluidColors.put(Materials.Lead.getMolten(0).getFluid().getID(), new short[]{0xd0, 0xd0, 0xd0}); - fluidColors.put(Materials.Chlorobenzene.mFluid.getID(), new short[]{0x40, 0x80, 0x40}); - fluidColors.put(FluidRegistry.getFluid("liquid_extra_heavy_oil").getID(), new short[]{0x00, 0x00, 0x50}); - fluidColors.put(Materials.Oxygen.mGas.getID(), new short[]{0x40, 0x40, 0xA0}); - fluidColors.put(Materials.Nitrogen.mGas.getID(), new short[]{0x00, 0x80, 0xd0}); - fluidColors.put(Materials.Methane.mGas.getID(), new short[]{0x80, 0x20, 0x20}); - fluidColors.put(Materials.Ethane.mGas.getID(), new short[]{0x40, 0x80, 0x20}); - fluidColors.put(Materials.Ethylene.mGas.getID(), new short[]{0xd0, 0xd0, 0xd0}); - fluidColors.put(FluidRegistry.LAVA.getID(), new short[]{0xFF, 0x00, 0x00}); - fluidColors.put(FluidRegistry.getFluid("unknowwater").getID(), new short[]{0x8A, 0x2B, 0xE2}); - fluidColors.put(Materials.Hydrogen.mGas.getID(), new short[]{0x32, 0x32, 0xD6}); - fluidColors.put(Materials.SulfuricAcid.mFluid.getID(), new short[]{0xFF, 0xB9, 0x0F}); - fluidColors.put(Materials.HydricSulfide.mFluid.getID(), new short[]{0xFF, 0x8F, 0x43}); - fluidColors.put(Materials.CarbonMonoxide.mGas.getID(), new short[]{0x10, 0x4E, 0x8B}); - fluidColors.put(Materials.CarbonDioxide.mGas.getID(), new short[]{0x69, 0x69, 0x69}); - fluidColors.put(FluidRegistry.getFluid("ic2distilledwater").getID(), new short[]{0x1E, 0x90, 0xFF}); - fluidColors.put(Materials.Deuterium.mGas.getID(), new short[]{0xFF, 0xE3, 0x9F}); - fluidColors.put(Materials.Iron.getMolten(0).getFluid().getID(), new short[]{0x8B, 0x88, 0x78}); - fluidColors.put(Materials.Tin.getMolten(0).getFluid().getID(), new short[]{0xE7, 0xE7, 0xE4}); - fluidColors.put(Materials.Copper.getMolten(0).getFluid().getID(), new short[]{0xFF, 0x7F, 0x24}); - fluidColors.put(FluidRegistry.getFluid("fluorine").getID(), new short[]{0x99, 0xC1, 0xAD}); - fluidColors.put(FluidRegistry.getFluid("hydrofluoricacid").getID(), new short[]{0x00, 0xCE, 0xD1}); - fluidColors.put(Materials.PhosphoricAcid.mFluid.getID(), new short[]{0xEE, 0x76, 0x00}); + fluidColors.put(Materials.NatruralGas.mGas.getID(), new short[] { 0x00, 0xff, 0xff }); + fluidColors.put(Materials.OilLight.mFluid.getID(), new short[] { 0xff, 0xff, 0x00 }); + fluidColors.put(Materials.OilMedium.mFluid.getID(), new short[] { 0x00, 0xFF, 0x00 }); + fluidColors.put(Materials.OilHeavy.mFluid.getID(), new short[] { 0xFF, 0x00, 0xFF }); + fluidColors.put(Materials.Oil.mFluid.getID(), new short[] { 0x00, 0x00, 0x00 }); + fluidColors.put(Materials.Helium_3.mGas.getID(), new short[] { 0x80, 0x20, 0xe0 }); + fluidColors.put(Materials.SaltWater.mFluid.getID(), new short[] { 0x80, 0xff, 0x80 }); + // fluidColors.put(Materials.Naquadah.getMolten(0).getFluid().getID(), new short[]{0x20, 0x20, 0x20}); + // fluidColors.put(Materials.NaquadahEnriched.getMolten(0).getFluid().getID(), new short[]{0x60, 0x60, + // 0x60}); + fluidColors.put(Materials.Lead.getMolten(0).getFluid().getID(), new short[] { 0xd0, 0xd0, 0xd0 }); + fluidColors.put(Materials.Chlorobenzene.mFluid.getID(), new short[] { 0x40, 0x80, 0x40 }); + fluidColors.put(FluidRegistry.getFluid("liquid_extra_heavy_oil").getID(), new short[] { 0x00, 0x00, 0x50 }); + fluidColors.put(Materials.Oxygen.mGas.getID(), new short[] { 0x40, 0x40, 0xA0 }); + fluidColors.put(Materials.Nitrogen.mGas.getID(), new short[] { 0x00, 0x80, 0xd0 }); + fluidColors.put(Materials.Methane.mGas.getID(), new short[] { 0x80, 0x20, 0x20 }); + fluidColors.put(Materials.Ethane.mGas.getID(), new short[] { 0x40, 0x80, 0x20 }); + fluidColors.put(Materials.Ethylene.mGas.getID(), new short[] { 0xd0, 0xd0, 0xd0 }); + fluidColors.put(FluidRegistry.LAVA.getID(), new short[] { 0xFF, 0x00, 0x00 }); + fluidColors.put(FluidRegistry.getFluid("unknowwater").getID(), new short[] { 0x8A, 0x2B, 0xE2 }); + fluidColors.put(Materials.Hydrogen.mGas.getID(), new short[] { 0x32, 0x32, 0xD6 }); + fluidColors.put(Materials.SulfuricAcid.mFluid.getID(), new short[] { 0xFF, 0xB9, 0x0F }); + fluidColors.put(Materials.HydricSulfide.mFluid.getID(), new short[] { 0xFF, 0x8F, 0x43 }); + fluidColors.put(Materials.CarbonMonoxide.mGas.getID(), new short[] { 0x10, 0x4E, 0x8B }); + fluidColors.put(Materials.CarbonDioxide.mGas.getID(), new short[] { 0x69, 0x69, 0x69 }); + fluidColors.put(FluidRegistry.getFluid("ic2distilledwater").getID(), new short[] { 0x1E, 0x90, 0xFF }); + fluidColors.put(Materials.Deuterium.mGas.getID(), new short[] { 0xFF, 0xE3, 0x9F }); + fluidColors.put(Materials.Iron.getMolten(0).getFluid().getID(), new short[] { 0x8B, 0x88, 0x78 }); + fluidColors.put(Materials.Tin.getMolten(0).getFluid().getID(), new short[] { 0xE7, 0xE7, 0xE4 }); + fluidColors.put(Materials.Copper.getMolten(0).getFluid().getID(), new short[] { 0xFF, 0x7F, 0x24 }); + fluidColors.put(FluidRegistry.getFluid("fluorine").getID(), new short[] { 0x99, 0xC1, 0xAD }); + fluidColors.put(FluidRegistry.getFluid("hydrofluoricacid").getID(), new short[] { 0x00, 0xCE, 0xD1 }); + fluidColors.put(Materials.PhosphoricAcid.mFluid.getID(), new short[] { 0xEE, 0x76, 0x00 }); - //possible nulls - fluidColors.put(Materials.LiquidAir.mFluid.getID(), new short[]{0x99, 0x99, 0xEA}); - }catch (Exception ignored){} -/* - Set set = fluidColors.entrySet(); - Iterator iterator = set.iterator(); - System.out.println( "DETRAV SCANNER DEBUG" ); - while(iterator.hasNext()) { - Map.Entry mentry = (Map.Entry) iterator.next(); - System.out.println( "key is: "+ (Integer)mentry.getKey() + " & Value is: " + - ((short[])mentry.getValue())[0] + " " + - ((short[])mentry.getValue())[1] + " " + - ((short[])mentry.getValue())[2] ); - } -*/ + // possible nulls + fluidColors.put(Materials.LiquidAir.mFluid.getID(), new short[] { 0x99, 0x99, 0xEA }); + } catch (Exception ignored) {} + /* + * Set set = fluidColors.entrySet(); Iterator iterator = set.iterator(); System.out.println( + * "DETRAV SCANNER DEBUG" ); while(iterator.hasNext()) { Map.Entry mentry = (Map.Entry) iterator.next(); + * System.out.println( "key is: "+ (Integer)mentry.getKey() + " & Value is: " + ((short[])mentry.getValue())[0] + * + " " + ((short[])mentry.getValue())[1] + " " + ((short[])mentry.getValue())[2] ); } + */ } - private static short[] convertColorInt(int color){ - return new short[]{(short) (color << 16 &0xff), (short) (color << 8 &0xff), (short) (color &0xff)}; + private static short[] convertColorInt(int color) { + return new short[] { (short) (color << 16 & 0xff), (short) (color << 8 & 0xff), (short) (color & 0xff) }; } } diff --git a/src/main/java/com/detrav/utils/GTppHelper.java b/src/main/java/com/detrav/utils/GTppHelper.java index 8e018ce386..59db67eac7 100644 --- a/src/main/java/com/detrav/utils/GTppHelper.java +++ b/src/main/java/com/detrav/utils/GTppHelper.java @@ -1,66 +1,67 @@ package com.detrav.utils; +import java.util.HashMap; + +import net.minecraft.block.Block; + import gtPlusPlus.core.block.base.BlockBaseOre; import gtPlusPlus.core.material.ALLOY; import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.material.MISC_MATERIALS; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.nuclear.FLUORIDES; -import net.minecraft.block.Block; - -import java.util.HashMap; /** * Created by bartimaeusnek on 19.04.2018. */ public class GTppHelper { - public static final HashMap<Short,Material> decodeoresGTpp = new HashMap<>(); - public static final HashMap<Material,Short> encodeoresGTpp = new HashMap<>(); - - public static void generate_OreIDs() { - short n=0; - for (; 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 ignored) {} - } - // Manually add ores from other places than the ore class - // Fluorite - decodeoresGTpp.put((short) (++n + 1), FLUORIDES.FLUORITE); - encodeoresGTpp.put(FLUORIDES.FLUORITE, (short) (n + 1)); - // Rare Earths - decodeoresGTpp.put((short) (++n + 1), MISC_MATERIALS.RARE_EARTH_LOW); - encodeoresGTpp.put(MISC_MATERIALS.RARE_EARTH_LOW, (short) (n + 1)); - decodeoresGTpp.put((short) (++n + 1), MISC_MATERIALS.RARE_EARTH_MID); - encodeoresGTpp.put(MISC_MATERIALS.RARE_EARTH_MID, (short) (n + 1)); - decodeoresGTpp.put((short) (++n + 1), MISC_MATERIALS.RARE_EARTH_HIGH); - encodeoresGTpp.put(MISC_MATERIALS.RARE_EARTH_HIGH, (short) (n + 1)); - // Koboldite - decodeoresGTpp.put((short) (++n + 1), ALLOY.KOBOLDITE); - encodeoresGTpp.put(ALLOY.KOBOLDITE, (short) (n + 1)); - // Runite - decodeoresGTpp.put((short) (++n + 1), ELEMENT.STANDALONE.RUNITE); - encodeoresGTpp.put(ELEMENT.STANDALONE.RUNITE, (short) (n + 1)); - // Ancient granite - decodeoresGTpp.put((short) (++n + 1), ELEMENT.STANDALONE.GRANITE); - encodeoresGTpp.put(ELEMENT.STANDALONE.GRANITE, (short) (n + 1)); - } + public static final HashMap<Short, Material> decodeoresGTpp = new HashMap<>(); + public static final HashMap<Material, Short> encodeoresGTpp = new HashMap<>(); - public static boolean isGTppBlock(Block tBlock){ - return tBlock instanceof BlockBaseOre; - } + public static void generate_OreIDs() { + short n = 0; + for (; 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 ignored) {} + } + // Manually add ores from other places than the ore class + // Fluorite + decodeoresGTpp.put((short) (++n + 1), FLUORIDES.FLUORITE); + encodeoresGTpp.put(FLUORIDES.FLUORITE, (short) (n + 1)); + // Rare Earths + decodeoresGTpp.put((short) (++n + 1), MISC_MATERIALS.RARE_EARTH_LOW); + encodeoresGTpp.put(MISC_MATERIALS.RARE_EARTH_LOW, (short) (n + 1)); + decodeoresGTpp.put((short) (++n + 1), MISC_MATERIALS.RARE_EARTH_MID); + encodeoresGTpp.put(MISC_MATERIALS.RARE_EARTH_MID, (short) (n + 1)); + decodeoresGTpp.put((short) (++n + 1), MISC_MATERIALS.RARE_EARTH_HIGH); + encodeoresGTpp.put(MISC_MATERIALS.RARE_EARTH_HIGH, (short) (n + 1)); + // Koboldite + decodeoresGTpp.put((short) (++n + 1), ALLOY.KOBOLDITE); + encodeoresGTpp.put(ALLOY.KOBOLDITE, (short) (n + 1)); + // Runite + decodeoresGTpp.put((short) (++n + 1), ELEMENT.STANDALONE.RUNITE); + encodeoresGTpp.put(ELEMENT.STANDALONE.RUNITE, (short) (n + 1)); + // Ancient granite + decodeoresGTpp.put((short) (++n + 1), ELEMENT.STANDALONE.GRANITE); + encodeoresGTpp.put(ELEMENT.STANDALONE.GRANITE, (short) (n + 1)); + } + public static boolean isGTppBlock(Block tBlock) { + return tBlock instanceof BlockBaseOre; + } - public static short getGTppMeta(Block tBlock){ - return (short) (GTppHelper.encodeoresGTpp.get(((BlockBaseOre) tBlock).getMaterialEx()) +7000); - } + public static short getGTppMeta(Block tBlock) { + return (short) (GTppHelper.encodeoresGTpp.get(((BlockBaseOre) tBlock).getMaterialEx()) + 7000); + } - public static String getGTppVeinName(Block tBlock){ - return tBlock.getLocalizedName(); - } + public static String getGTppVeinName(Block tBlock) { + return tBlock.getLocalizedName(); + } } |