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.client.renderer.RenderEngine; 022 import net.minecraft.client.renderer.texturefx.TextureFX; 023 import net.minecraft.client.texturepacks.ITexturePack; 024 025 import cpw.mods.fml.common.FMLCommonHandler; 026 import cpw.mods.fml.common.FMLLog; 027 028 public 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 }