001/* 002 * Forge Mod Loader 003 * Copyright (c) 2012-2013 cpw. 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the GNU Lesser Public License v2.1 006 * which accompanies this distribution, and is available at 007 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 008 * 009 * Contributors: 010 * cpw - implementation 011 */ 012 013package cpw.mods.fml.client; 014 015import java.util.ArrayList; 016 017import net.minecraft.client.renderer.Tessellator; 018 019import cpw.mods.fml.common.Loader; 020import cpw.mods.fml.common.LoaderState.ModState; 021import cpw.mods.fml.common.ModContainer; 022 023/** 024 * @author cpw 025 * 026 */ 027public class GuiSlotModList extends GuiScrollingList 028{ 029 private GuiModList parent; 030 private ArrayList<ModContainer> mods; 031 032 public GuiSlotModList(GuiModList parent, ArrayList<ModContainer> mods, int listWidth) 033 { 034 super(parent.getMinecraftInstance(), listWidth, parent.height, 32, parent.height - 65 + 4, 10, 35); 035 this.parent=parent; 036 this.mods=mods; 037 } 038 039 @Override 040 protected int getSize() 041 { 042 return mods.size(); 043 } 044 045 @Override 046 protected void elementClicked(int var1, boolean var2) 047 { 048 this.parent.selectModIndex(var1); 049 } 050 051 @Override 052 protected boolean isSelected(int var1) 053 { 054 return this.parent.modIndexSelected(var1); 055 } 056 057 @Override 058 protected void drawBackground() 059 { 060 this.parent.drawDefaultBackground(); 061 } 062 063 @Override 064 protected int getContentHeight() 065 { 066 return (this.getSize()) * 35 + 1; 067 } 068 069 @Override 070 protected void drawSlot(int listIndex, int var2, int var3, int var4, Tessellator var5) 071 { 072 ModContainer mc=mods.get(listIndex); 073 if (Loader.instance().getModState(mc)==ModState.DISABLED) 074 { 075 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(mc.getName(), listWidth - 10), this.left + 3 , var3 + 2, 0xFF2222); 076 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(mc.getDisplayVersion(), listWidth - 10), this.left + 3 , var3 + 12, 0xFF2222); 077 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth("DISABLED", listWidth - 10), this.left + 3 , var3 + 22, 0xFF2222); 078 } 079 else 080 { 081 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(mc.getName(), listWidth - 10), this.left + 3 , var3 + 2, 0xFFFFFF); 082 this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(mc.getDisplayVersion(), listWidth - 10), this.left + 3 , var3 + 12, 0xCCCCCC); 083 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); 084 } 085 } 086 087}