diff options
Diffstat (limited to 'src/main/java/com')
26 files changed, 2690 insertions, 0 deletions
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java new file mode 100644 index 0000000000..152b9fbc71 --- /dev/null +++ b/src/main/java/com/detrav/DetravScannerMod.java @@ -0,0 +1,75 @@ +package com.detrav; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraftforge.common.config.Configuration; + +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; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.network.NetworkRegistry; +import gregtech.GT_Version; +import gregtech.api.GregTech_API; + +@Mod( + modid = DetravScannerMod.MODID, + version = GT_Version.VERSION, + dependencies = "required-after:IC2;required-after:gregtech;after:miscutils;after:bartworks") +public class DetravScannerMod { + + public static final String MODID = "detravscannermod"; + public static final boolean DEBUG_ENABLED = Boolean.parseBoolean(System.getProperty("com.detrav.debug", "false")); + public static final CreativeTabs TAB_DETRAV = new DetravCreativeTab(); + public static boolean isDreamcraftLoaded = false; + public static boolean isBartWorksLoaded = false; + public static boolean isGTppLoaded = false; + + @SidedProxy(clientSide = "com.detrav.proxies.ClientProxy", serverSide = "com.detrav.proxies.ServerProxy") + public static CommonProxy proxy; + + @Mod.Instance(DetravScannerMod.MODID) + public static DetravScannerMod instance; + + public DetravScannerMod() { + GregTech_API.sAfterGTPreload.add(new Detrav_AfterGTPreload_Loader()); + isDreamcraftLoaded = Loader.isModLoaded("dreamcraft"); + isBartWorksLoaded = Loader.isModLoaded("bartworks"); + isGTppLoaded = Loader.isModLoaded("miscutils"); + + new DetravNetwork(); + } + + @EventHandler + public void preInit(FMLPreInitializationEvent event) { + Configuration Config = new Configuration(event.getSuggestedConfigurationFile()); + Config.load(); + + if (Config.hasChanged()) { + Config.save(); + } + + proxy.onPreInit(); + } + + @EventHandler + public void init(FMLInitializationEvent event) { + NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy); + proxy.onLoad(); + } + + @EventHandler + public void onPostLoad(FMLPostInitializationEvent aEvent) { + proxy.onPostLoad(); + if (isGTppLoaded) GTppHelper.generate_OreIDs(); + FluidColors.makeColors(); + } +} diff --git a/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java new file mode 100644 index 0000000000..5cdb2bff88 --- /dev/null +++ b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java @@ -0,0 +1,21 @@ +package com.detrav; + +import com.detrav.items.DetravMetaGeneratedTool01; +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 + new DetravMetaGeneratedTool01(); + + // 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 new file mode 100644 index 0000000000..ba16e47a6c --- /dev/null +++ b/src/main/java/com/detrav/commands/DetravScannerCommand.java @@ -0,0 +1,156 @@ +package com.detrav.commands; + +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; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.chunk.Chunk; + +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. + */ +public class DetravScannerCommand implements ICommand { + + private List aliases; + + public DetravScannerCommand() { + this.aliases = new ArrayList<String>(); + this.aliases.add("DetravScanner"); + this.aliases.add("dscan"); + } + + @Override + public String getCommandName() { + return "DetravScanner"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "DetravScanner [\"Part of Greg ore name\"]"; + } + + @Override + public List getCommandAliases() { + return this.aliases; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + int aX = 0; + int aZ = 0; + int aY = 0; + String name = null; + + ArrayList<String> strs = new ArrayList<>(); + for (int i = 0; i < args.length; i++) { + strs.add(args[i]); + if (args[i].startsWith("\"")) { + for (i++; i < args.length; i++) { + 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; + } + } + } + args = new String[strs.size()]; + args = strs.toArray(args); + + switch (args.length) { + case 0: + break; + case 1: + if (args[0].toLowerCase() == "help") { + sendHelpMessage(sender); + return; + } + name = args[0]; + break; + default: + sendHelpMessage(sender); + 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); + } + + 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()) { + sender.addChatMessage(new ChatComponentText(String.format("%s : %d", key, ores.get(key)))); + } + sender.addChatMessage(new ChatComponentText("*** Detrav Scanner End")); + } + + private void sendHelpMessage(ICommandSender sender) { + sender.addChatMessage(new ChatComponentText(getCommandUsage(sender))); + } + + @Override + public boolean canCommandSenderUseCommand(ICommandSender p_71519_1_) { + return true; + } + + @Override + public List addTabCompletionOptions(ICommandSender sender, String[] args) { + 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; + } + + @Override + public boolean isUsernameIndex(String[] p_82358_1_, int p_82358_2_) { + return false; + } + + @Override + public int compareTo(Object o) { + return 0; + } +} diff --git a/src/main/java/com/detrav/enums/DetravToolDictNames.java b/src/main/java/com/detrav/enums/DetravToolDictNames.java new file mode 100644 index 0000000000..128545360c --- /dev/null +++ b/src/main/java/com/detrav/enums/DetravToolDictNames.java @@ -0,0 +1,9 @@ +package com.detrav.enums; + +/** + * Created by wital_000 on 19.03.2016. + */ +public enum DetravToolDictNames { + craftingToolElectricProspector, + craftingToolProspector, +} diff --git a/src/main/java/com/detrav/enums/Textures01.java b/src/main/java/com/detrav/enums/Textures01.java new file mode 100644 index 0000000000..cc65d4d1ca --- /dev/null +++ b/src/main/java/com/detrav/enums/Textures01.java @@ -0,0 +1,17 @@ +package com.detrav.enums; + +import gregtech.api.enums.Textures; +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"), }; +} diff --git a/src/main/java/com/detrav/events/DetravLoginEventHandler.java b/src/main/java/com/detrav/events/DetravLoginEventHandler.java new file mode 100644 index 0000000000..5178516267 --- /dev/null +++ b/src/main/java/com/detrav/events/DetravLoginEventHandler.java @@ -0,0 +1,22 @@ +package com.detrav.events; + +import net.minecraftforge.common.MinecraftForge; + +import cpw.mods.fml.common.FMLCommonHandler; + +/** + * Created by wital_000 on 18.04.2016. + */ +public class DetravLoginEventHandler { + + static boolean inited = false; + + public static void register() { + if (!inited) { + inited = true; + DetravLoginEventHandler handler = new DetravLoginEventHandler(); + MinecraftForge.EVENT_BUS.register(handler); + FMLCommonHandler.instance().bus().register(handler); + } + } +} diff --git a/src/main/java/com/detrav/gui/DetravScannerGUI.java b/src/main/java/com/detrav/gui/DetravScannerGUI.java new file mode 100644 index 0000000000..c0a7e7f16f --- /dev/null +++ b/src/main/java/com/detrav/gui/DetravScannerGUI.java @@ -0,0 +1,120 @@ +package com.detrav.gui; + +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 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; + + private final static int minHeight = 128; + private final static int minWidth = 128; + private int prevW; + private int prevH; + + private static final ResourceLocation back = new ResourceLocation("gregtech:textures/gui/propick.png"); + + public DetravScannerGUI() { + + } + + public static void newMap(DetravMapTexture aMap) { + if (map != null) { + map.deleteGlTexture(); + map = null; + } + map = aMap; + map.loadTexture(null); + } + + @Override + public void drawScreen(int x, int y, float f) { + this.drawDefaultBackground(); + if (map == null) return; + int currentWidth = Math.max(map.width, minWidth); + int currentHeight = Math.max(map.height, minHeight); + int aX = (this.width - currentWidth - 100) / 2; + int aY = (this.height - currentHeight) / 2; + + if (oresList == null || (prevW != width || prevH != height)) { + oresList = new OresList( + this, + 100, + currentHeight, + aY, + aY + currentHeight, + aX + currentWidth, + 10, + map.packet.ores, + ((name, 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); + map.glBindTexture(); + map.draw(aX, aY); + oresList.drawScreen(x, y, f); + mc.getTextureManager().bindTexture(back); + GL11.glColor4f(0xFF, 0xFF, 0xFF, 0xFF); + + // draw corners + drawTexturedModalRect(aX - 5, aY - 5, 0, 0, 5, 5);// leftTop + drawTexturedModalRect(aX + currentWidth + 100, aY - 5, 171, 0, 5, 5);// RightTop + drawTexturedModalRect(aX - 5, aY + currentHeight, 0, 161, 5, 5);// leftDown + drawTexturedModalRect(aX + currentWidth + 100, aY + currentHeight, 171, 161, 5, 5);// RightDown + + // draw edges + for (int i = aX; i < aX + currentWidth + 100; i += 128) + drawTexturedModalRect(i, aY - 5, 5, 0, Math.min(128, aX + currentWidth + 100 - i), 5); // top + for (int i = aX; i < aX + currentWidth + 100; i += 128) + drawTexturedModalRect(i, aY + currentHeight, 5, 161, Math.min(128, aX + currentWidth + 100 - i), 5); // down + for (int i = aY; i < aY + currentHeight; i += 128) + drawTexturedModalRect(aX - 5, i, 0, 5, 5, Math.min(128, aY + currentHeight - i)); // left + for (int i = aY; i < aY + currentHeight; i += 128) + drawTexturedModalRect(aX + currentWidth + 100, i, 171, 5, 5, Math.min(128, aY + currentHeight - i)); // right + + if (map.packet.ptype == 2) { + HashMap<Byte, Short>[][] fluidInfo = map.packet.map; + int tX = x - aX; + int tY = y - aY; + if (tX >= 0 && tY >= 0 && tX < fluidInfo.length && tY < fluidInfo[0].length) { + List<String> info = new ArrayList<>(); + if (fluidInfo[tX][tY] != null) { + short fluidId = fluidInfo[tX][tY].get((byte) 1); + short fluidAmount = fluidInfo[tX][tY].get((byte) 2); + if (fluidId != 0 && fluidAmount > 0) { + info.add( + StatCollector.translateToLocal("gui.detrav.scanner.tooltip.fluid_name") + + 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 { + 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 new file mode 100644 index 0000000000..54c2152f5a --- /dev/null +++ b/src/main/java/com/detrav/gui/OresList.java @@ -0,0 +1,66 @@ +package com.detrav.gui; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.function.BiConsumer; + +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) { + 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"); + selected = 0; + } + + @Override + protected int getSize() { + return keys.size(); + } + + @Override + 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); + } + + @Override + protected boolean isSelected(int index) { + return selected == index; + } + + @Override + protected void drawBackground() {} + + @Override + protected void drawSlot(int slotIdx, int entryRight, int slotTop, int slotBuffer, Tessellator tess) { + parent.drawString( + parent.mc.fontRenderer, + parent.mc.fontRenderer.trimStringToWidth(keys.get(slotIdx), listWidth - 10), + this.left + 3, + slotTop - 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 new file mode 100644 index 0000000000..01c570d5a1 --- /dev/null +++ b/src/main/java/com/detrav/gui/textures/DetravMapTexture.java @@ -0,0 +1,149 @@ +package com.detrav.gui.textures; + +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 com.detrav.net.ProspectingPacket; + +/** + * Created by wital_000 on 21.03.2016. + */ +public class DetravMapTexture extends AbstractTexture { + + public final ProspectingPacket packet; + private String selected = "All"; + public int width = -1; + public int height = -1; + public boolean invert = false; + + public DetravMapTexture(ProspectingPacket aPacket) { + packet = aPacket; + } + + private BufferedImage getImage() { + final int backgroundColor = invert ? Color.GRAY.getRGB() : Color.WHITE.getRGB(); + final int wh = (packet.size * 2 + 1) * 16; + + BufferedImage image = new BufferedImage(wh, wh, BufferedImage.TYPE_INT_ARGB); + WritableRaster raster = image.getRaster(); + + int playerI = packet.posX - (packet.chunkX - packet.size) * 16 - 1; // Correct player offset + int playerJ = packet.posZ - (packet.chunkZ - packet.size) * 16 - 1; + for (int i = 0; i < wh; i++) { + for (int j = 0; j < wh; j++) { + image.setRGB(i, j, backgroundColor); + if (packet.map[i][j] != null) { + if (packet.ptype == 0 || packet.ptype == 1) { + for (short meta : packet.map[i][j].values()) { + final String name = packet.metaMap.get(meta); + if (!selected.equals("All") && !selected.equals(name)) continue; + + image.setRGB(i, j, packet.ores.getOrDefault(name, Color.BLACK.getRGB()) | 0XFF000000); + break; + } + } else if (packet.ptype == 2) { + final short fluidId = packet.map[i][j].get((byte) 1), + fluidSize = packet.map[i][j].get((byte) 2); + final String name = packet.metaMap.get(fluidId); + + // Variables used to locate within a chunk. + final int k = (i % 16), l = (j % 16); + + if (((k + l * 16) * 3) < (fluidSize + 48) + && (selected.equals("All") || selected.equals(name))) { + image.setRGB(i, j, packet.ores.getOrDefault(name, Color.BLACK.getRGB()) | 0XFF000000); + } + } 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); + } + } + // draw player pos + if (i == playerI || j == playerJ) { + raster.setSample(i, j, 0, (raster.getSample(i, j, 0) + 255) / 2); + raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2); + raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2); + } + // draw grid + if ((i) % 16 == 0 || (j) % 16 == 0) { + raster.setSample(i, j, 0, raster.getSample(i, j, 0) / 2); + raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2); + raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2); + } + + } + } + + return image; + } + + @Override + public void loadTexture(IResourceManager resourceManager) { + this.deleteGlTexture(); + if (packet != null) { + int tId = getGlTextureId(); + if (tId < 0) return; + TextureUtil.uploadTextureImageAllocate(this.getGlTextureId(), getImage(), false, false); + width = packet.getSize(); + height = packet.getSize(); + } + } + + public void loadTexture(IResourceManager resourceManager, boolean invert) { + this.invert = invert; + loadTexture(resourceManager); + } + + public void loadTexture(IResourceManager resourceManager, String selected, boolean invert) { + this.selected = selected; + loadTexture(resourceManager, invert); + } + + public int glBindTexture() { + if (this.glTextureId < 0) return this.glTextureId; + GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.getGlTextureId()); + return this.glTextureId; + } + + public void draw(int x, int y) { + 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.draw(); + } + +} diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java new file mode 100644 index 0000000000..c5b891784e --- /dev/null +++ b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java @@ -0,0 +1,362 @@ +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; +import com.detrav.items.tools.DetravToolElectricProspector; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TC_Aspects; +import gregtech.api.interfaces.IToolStats; +import gregtech.api.items.GT_MetaGenerated_Tool; + +/** + * 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 |
