/* * 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; import matteroverdrive.MatterOverdrive; import matteroverdrive.Reference; import matteroverdrive.container.ContainerFalse; import matteroverdrive.container.MOBaseContainer; import matteroverdrive.data.ScaleTexture; import matteroverdrive.entity.player.MOExtendedProperties; import matteroverdrive.gui.element.ElementGuideCategory; import matteroverdrive.gui.element.MOElementBase; import matteroverdrive.gui.element.MOElementButton; import matteroverdrive.gui.element.MOElementButtonScaled; import matteroverdrive.gui.pages.PageActiveQuests; import matteroverdrive.gui.pages.PageGuideDescription; import matteroverdrive.gui.pages.PageGuideEntries; import matteroverdrive.guide.GuideCategory; import matteroverdrive.init.MatterOverdriveItems; import matteroverdrive.network.packet.server.PacketDataPadCommands; import matteroverdrive.proxy.ClientProxy; import matteroverdrive.util.MOStringHelper; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; /** * Created by Simeon on 8/28/2015. */ public class GuiDataPad extends MOGuiBase { public static final ResourceLocation BG = new ResourceLocation(Reference.PATH_GUI + "pad.png"); PageGuideDescription guideDescription; PageGuideEntries guideEntries; PageActiveQuests activeQuests; MOElementButtonScaled activeQuestsButton; public MOElementButtonScaled abandonQuestButton; public MOElementButtonScaled completeQuestButton; ItemStack dataPad; public GuiDataPad(ItemStack dataPadStack) { super(new ContainerFalse(),300,260); background = new ScaleTexture(BG,93,115).setOffsets(46,46,40,73); dataPad = dataPadStack; setPage(MatterOverdriveItems.dataPad.getPage(dataPadStack)); guideEntries.setDataPadStack(dataPadStack); guideDescription.setDataPadStack(dataPadStack); activeQuests.setDataPadStack(dataPadStack); } @Override public void registerPages(MOBaseContainer container) { guideDescription = new PageGuideDescription(this,14,14,xSize-28,ySize-14-49,"Guide Description"); guideEntries = new PageGuideEntries(this,14,14,xSize-28,ySize-14-49,"Guide Entries",guideDescription); activeQuests = new PageActiveQuests(this,0,0,xSize-28,ySize-28,"Active Quests", MOExtendedProperties.get(Minecraft.getMinecraft().thePlayer)); activeQuestsButton = new MOElementButtonScaled(this,this,xSize - 96,ySize - 28,"",22,22); activeQuestsButton.setDisabledTexture(MOElementButton.HOVER_TEXTURE_DARK); activeQuestsButton.setToolTip(MOStringHelper.translateToLocal("gui.tooltip.quest.active_quests")); activeQuestsButton.setIcon(ClientProxy.holoIcons.getIcon("question_mark")); completeQuestButton = new MOElementButtonScaled(this,activeQuests,xSize - 72,ySize - 28,"complete_quest",22,22); completeQuestButton.setToolTip(MOStringHelper.translateToLocal("gui.tooltip.quest.complete")); completeQuestButton.setIcon(ClientProxy.holoIcons.getIcon("tick")); completeQuestButton.setTextColor(Reference.COLOR_HOLO_GREEN.getColor()); completeQuestButton.setDisabledTexture(MOElementButton.HOVER_TEXTURE_DARK); abandonQuestButton = new MOElementButtonScaled(this,activeQuests,xSize - 48,ySize - 24,"abandon_quest",16,16); abandonQuestButton.setToolTip(MOStringHelper.translateToLocal("gui.tooltip.quest.abandon")); abandonQuestButton.setIcon(ClientProxy.holoIcons.getIcon("mini_quit")); abandonQuestButton.setTextColor(Reference.COLOR_HOLO_RED.getColor()); abandonQuestButton.setDisabledTexture(MOElementButton.HOVER_TEXTURE_DARK); AddPage(guideEntries, ClientProxy.holoIcons.getIcon("page_icon_home"), "Guide Entries"); AddPage(guideDescription, ClientProxy.holoIcons.getIcon("page_icon_search"), MOStringHelper.translateToLocal("gui.tooltip.page.info_database")); AddPage(activeQuests,ClientProxy.holoIcons.getIcon("page_icon_quests"),MOStringHelper.translateToLocal("gui.tooltip.page.active_quests")); } @Override public void initGui() { super.initGui(); elements.remove(sidePannel); closeButton.setPosition(xSize - 32, 20); for (ElementGuideCategory category : guideEntries.getCategories()) { addElement(category); } addElement(activeQuestsButton); addElement(abandonQuestButton); addElement(completeQuestButton); } public void refreshQuests(MOExtendedProperties extendedProperties) { activeQuests.refreshQuests(extendedProperties); } @Override public void onPageChange(int newPage) { if (newPage != MatterOverdriveItems.dataPad.getPage(dataPad)) { MatterOverdriveItems.dataPad.setOpenPage(dataPad, newPage); MatterOverdrive.packetPipeline.sendToServer(new PacketDataPadCommands(dataPad)); } } @Override protected void updateElementInformation() { super.updateElementInformation(); GuideCategory category = guideEntries.getActiveCategory(); for (int i = 0;i < guideEntries.getCategories().size();i++) { if (category.equals(guideEntries.getCategories().get(i).getCategory()) && currentPage <= 1) { guideEntries.getCategories().get(i).setEnabled(false); }else { guideEntries.getCategories().get(i).setEnabled(true); } guideEntries.getCategories().get(i).setPosition(16 + 32 * i, ySize - 28); } if (currentPage == 2) { activeQuestsButton.setEnabled(false); abandonQuestButton.setVisible(true); completeQuestButton.setVisible(true); }else { activeQuestsButton.setEnabled(true); abandonQuestButton.setVisible(false); completeQuestButton.setVisible(false); } } @Override public void handleElementButtonClick(MOElementBase element, String buttonName, int mouseButton) { super.handleElementButtonClick(element,buttonName,mouseButton); if (element == activeQuestsButton) { setPage(2); } } @Override public void ListSelectionChange(String name, int selected) { } @Override public void textChanged(String elementName, String text, boolean typed) { } public PageGuideDescription getGuideDescription() { return guideDescription; } @Override public void onGuiClosed() { super.onGuiClosed(); activeQuests.onGuiClose(); } }