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