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 net.minecraft.client.gui.FontRenderer; 016import net.minecraft.client.gui.GuiErrorScreen; 017import cpw.mods.fml.common.IFMLHandledException; 018import cpw.mods.fml.relauncher.Side; 019import cpw.mods.fml.relauncher.SideOnly; 020 021/** 022 * If a mod throws this exception during loading, it will be called back to render 023 * the error screen through the methods below. This error will not be cleared, and will 024 * not allow the game to carry on, but might be useful if your mod wishes to report 025 * a fatal configuration error in a pretty way. 026 * 027 * Throw this through a proxy. It won't work on the dedicated server environment. 028 * @author cpw 029 * 030 */ 031@SideOnly(Side.CLIENT) 032public abstract class CustomModLoadingErrorDisplayException extends RuntimeException implements IFMLHandledException 033{ 034 /** 035 * Called after the GUI is inited by the parent code. You can do extra stuff here, maybe? 036 * 037 * @param errorScreen The error screen we're painting 038 * @param fontRenderer A font renderer for you 039 */ 040 public abstract void initGui(GuiErrorScreen errorScreen, FontRenderer fontRenderer); 041 042 /** 043 * Draw your error to the screen. 044 * 045 * <br/><em>Warning: Minecraft is in a deep error state.</em> <strong>All</strong> it can do is stop. 046 * Do not try and do anything involving complex user interaction here. 047 * 048 * @param errorScreen The error screen to draw to 049 * @param fontRenderer A font renderer for you 050 * @param mouseRelX Mouse X 051 * @param mouseRelY Mouse Y 052 * @param tickTime tick time 053 */ 054 public abstract void drawScreen(GuiErrorScreen errorScreen, FontRenderer fontRenderer, int mouseRelX, int mouseRelY, float tickTime); 055}