Java tutorial
/* * This file is part of Matter Overdrive * Copyright (c) 2015., Simeon Radivoev, All rights reserved. * * Matter Overdrive is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Matter Overdrive is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Matter Overdrive. If not, see <http://www.gnu.org/licenses>. */ package matteroverdrive.gui.pages; import matteroverdrive.Reference; import matteroverdrive.client.data.Color; import matteroverdrive.data.ItemPattern; import matteroverdrive.gui.MOGuiBase; import matteroverdrive.gui.element.*; import matteroverdrive.util.MatterDatabaseHelper; import matteroverdrive.util.MatterHelper; import matteroverdrive.util.RenderUtils; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; import java.util.List; /** * Created by Simeon on 4/3/2015. */ public class PageScanInfo extends ElementBaseGroup { public static final String backgroundPath = Reference.PATH_GUI + "matter_scanner.png"; public static final String LIST_ELEMENT_NAME = "list"; public static final String SCROLL_UP_BUTTON_NAME = "scroll_up"; public static final String SCROLL_DOWN_BUTTON_NAME = "scroll_down"; ItemPattern pattern; public MatterDatabaseListBox list; ElementProgress scan_progress; ElementScanProgress scan_info_graph; MOElementTextField searchField; MOElementButton scrollButtonUp; MOElementButton scrollButtonDown; ElementItemPreview itemPreview; public PageScanInfo(MOGuiBase gui, int posX, int posY, String name, ItemPattern pattern, ItemStack scanner) { super(gui, posX, posY); this.setName(name); this.pattern = pattern; scan_info_graph = new ElementScanProgress(gui, 94, 44); itemPreview = new ElementItemPreview(gui, 45, 44, null); scan_progress = new ElementProgress(gui, 44 + 35, 202 + 2, 44, 202, 39, 202, 62, 188, 105, 14, 142, 18); searchField = new MOElementTextField(gui, 41, 26, 242, 14); list = new MatterDatabaseListBox(gui, 3, 39, 42, 152, scanner); scrollButtonUp = new MOElementButton(gui, this, 11, 27, SCROLL_UP_BUTTON_NAME, 22, 188, 32, 188, 10, 10, backgroundPath); scrollButtonDown = new MOElementButton(gui, this, 11, 190, SCROLL_DOWN_BUTTON_NAME, 42, 188, 52, 188, 10, 10, backgroundPath); list.setName(LIST_ELEMENT_NAME); list.setFilter(""); scan_progress.setTexture(backgroundPath, 256, 256); scan_progress.setMaxValue(MatterDatabaseHelper.MAX_ITEM_PROGRESS); scan_progress.SetTextPostition(18, 5); scan_progress.setTextColor(new Color(255, 255, 255).getColor()); scan_info_graph.setProgress(1); } @Override public void init() { super.init(); elements.add(scan_info_graph); elements.add(itemPreview); elements.add(scan_progress); elements.add(searchField); elements.add(scrollButtonUp); elements.add(scrollButtonDown); elements.add(list); } @Override public void drawForeground(int mouseX, int mouseY) { super.drawForeground(mouseX, mouseY); ItemStack item = pattern.toItemStack(false); if (item != null) { //GL11.glEnable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glAlphaFunc(GL11.GL_GREATER, 0.5f); List infos = item.getTooltip(null, false); if (MatterHelper.CanScan(item)) { String Matter = "Matter: " + String.valueOf(MatterHelper.getMatterAmountFromItem(item)) + MatterHelper.MATTER_UNIT; infos.add(Matter); } RenderUtils.DrawMultilineInfo(infos, 50, 98, 8, 200, Color.WHITE.getColor()); } else { String Matter = "Matter: " + String.valueOf(MatterHelper.getMatterAmountFromItem(item)) + MatterHelper.MATTER_UNIT; Minecraft.getMinecraft().fontRenderer.drawStringWithShadow("No Item Selected!", 80, 90, new Color(255, 150, 50).getColor()); } } @Override public void update(int mouseX, int mouseY) { super.update(mouseX, mouseY); if (searchField != null) { this.list.setFilter(searchField.getText()); } } public void updateList(List<ItemPattern> list) { this.list.updateList(list); } public void setItemNBT(ItemPattern pattern) { this.pattern = pattern; ItemStack itemStack = pattern.toItemStack(false); scan_progress.setVisible(pattern != null && MatterHelper.CanScan(itemStack)); scan_info_graph.setVisible(pattern != null); itemPreview.setVisible(pattern != null); if (pattern != null) { scan_progress.setValue(pattern.getProgress()); scan_progress .setText(String.valueOf((int) (((float) pattern.getProgress() / (float) 100) * 100)) + "%"); scan_info_graph.setSeed(pattern.getItemID()); itemPreview.setItemStack(itemStack); } } }