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.awt.Dimension;
018import java.util.List;
019import java.util.logging.Logger;
020
021import net.minecraft.client.renderer.RenderEngine;
022import net.minecraft.client.renderer.texturefx.TextureFX;
023import net.minecraft.client.texturepacks.ITexturePack;
024
025import cpw.mods.fml.common.FMLCommonHandler;
026import cpw.mods.fml.common.FMLLog;
027
028public class FMLTextureFX extends TextureFX implements ITextureFX
029{
030    public int tileSizeBase = 16;
031    public int tileSizeSquare = 256;
032    public int tileSizeMask = 15;
033    public int tileSizeSquareMask = 255;
034    public boolean errored = false;
035    protected Logger log = FMLLog.getLogger();
036
037    public FMLTextureFX(int icon)
038    {
039        super(icon);
040    }
041
042    @Override public void setErrored(boolean err){ errored = err; }
043    @Override public boolean getErrored(){ return errored; }
044    @Override
045    public void onTexturePackChanged(RenderEngine engine, ITexturePack texturepack, Dimension dimensions)
046    {
047        onTextureDimensionsUpdate(dimensions.width, dimensions.height);
048    }
049    @Override
050    public void onTextureDimensionsUpdate(int width, int height)
051    {
052        tileSizeBase = width >> 4;
053        tileSizeSquare = tileSizeBase * tileSizeBase;
054        tileSizeMask = tileSizeBase - 1;
055        tileSizeSquareMask = tileSizeSquare - 1;
056        setErrored(false);
057        setup();
058    }
059
060    protected void setup()
061    {
062        imageData = new byte[tileSizeSquare << 2];
063    }
064
065    public boolean unregister(RenderEngine engine, List<TextureFX> effects)
066    {
067        effects.remove(this);
068        return true;
069    }
070}