    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
    015package cpw.mods.fml.client;
    016
    017import java.util.ArrayList;
    018
    019import net.minecraft.client.renderer.Tessellator;
    020
    021import cpw.mods.fml.common.Loader;
    022import cpw.mods.fml.common.LoaderState.ModState;
    023import cpw.mods.fml.common.ModContainer;
    024
    025/**
    026 * @author cpw
    027 *
    028 */
    029public 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}