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 }