001 /*
002 * The FML Forge Mod Loader suite.
003 * Copyright (C) 2012 cpw
004 *
005 * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
006 * Software Foundation; either version 2.1 of the License, or any later version.
007 *
008 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
009 * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
010 *
011 * You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
012 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
013 */
014
015 package cpw.mods.fml.client;
016
017 import java.util.ArrayList;
018
019 import net.minecraft.client.renderer.Tessellator;
020
021 import cpw.mods.fml.common.Loader;
022 import cpw.mods.fml.common.LoaderState.ModState;
023 import cpw.mods.fml.common.ModContainer;
024
025 /**
026 * @author cpw
027 *
028 */
029 public class GuiSlotModList extends GuiScrollingList
030 {
031 private GuiModList parent;
032 private ArrayList<ModContainer> mods;
033
034 public GuiSlotModList(GuiModList parent, ArrayList<ModContainer> mods, int listWidth)
035 {
036 super(parent.getMinecraftInstance(), listWidth, parent.height, 32, parent.height - 65 + 4, 10, 35);
037 this.parent=parent;
038 this.mods=mods;
039 }
040
041 @Override
042 protected int getSize()
043 {
044 return mods.size();
045 }
046
047 @Override
048 protected void elementClicked(int var1, boolean var2)
049 {
050 this.parent.selectModIndex(var1);
051 }
052
053 @Override
054 protected boolean isSelected(int var1)
055 {
056 return this.parent.modIndexSelected(var1);
057 }
058
059 @Override
060 protected void drawBackground()
061 {
062 this.parent.drawDefaultBackground();
063 }
064
065 @Override
066 protected int getContentHeight()
067 {
068 return (this.getSize()) * 35 + 1;
069 }
070
071 @Override
072 protected void drawSlot(int listIndex, int var2, int var3, int var4, Tessellator var5)
073 {
074 ModContainer mc=mods.get(listIndex);
075 if (Loader.instance().getModState(mc)==ModState.DISABLED)
076 {
077 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(mc.getName(), listWidth - 10), this.left + 3 , var3 + 2, 0xFF2222);
078 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(mc.getDisplayVersion(), listWidth - 10), this.left + 3 , var3 + 12, 0xFF2222);
079 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth("DISABLED", listWidth - 10), this.left + 3 , var3 + 22, 0xFF2222);
080 }
081 else
082 {
083 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(mc.getName(), listWidth - 10), this.left + 3 , var3 + 2, 0xFFFFFF);
084 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(mc.getDisplayVersion(), listWidth - 10), this.left + 3 , var3 + 12, 0xCCCCCC);
085 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(mc.getMetadata() !=null ? mc.getMetadata().getChildModCountString() : "Metadata not found", listWidth - 10), this.left + 3 , var3 + 22, 0xCCCCCC);
086 }
087 }
088
089 }