Change hd texture handling

This commit is contained in:
Christian Weeks 2012-05-15 22:05:24 -04:00
parent 6903deb69d
commit 0e3dcc4eda
3 changed files with 50 additions and 12 deletions

View file

@ -12,6 +12,9 @@
*/ */
package cpw.mods.fml.client; package cpw.mods.fml.client;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_WIDTH;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -22,7 +25,9 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Hashtable;
import java.util.List; import java.util.List;
import java.util.ListIterator;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
import java.util.Random; import java.util.Random;
@ -31,6 +36,10 @@ import java.util.logging.Logger;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import org.lwjgl.opengl.GL11;
import com.pclewis.mcpatcher.mod.TileSize;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.src.BaseMod; import net.minecraft.src.BaseMod;
import net.minecraft.src.BiomeGenBase; import net.minecraft.src.BiomeGenBase;
@ -97,6 +106,7 @@ import cpw.mods.fml.common.modloader.ModLoaderModContainer;
* @author cpw * @author cpw
* *
*/ */
@SuppressWarnings("deprecation")
public class FMLClientHandler implements IFMLSidedHandler public class FMLClientHandler implements IFMLSidedHandler
{ {
/** /**
@ -128,6 +138,8 @@ public class FMLClientHandler implements IFMLSidedHandler
private HashMap<KeyBinding, ModContainer> keyBindings = new HashMap<KeyBinding, ModContainer>(); private HashMap<KeyBinding, ModContainer> keyBindings = new HashMap<KeyBinding, ModContainer>();
private HashSet<OverrideInfo> animationSet = new HashSet<OverrideInfo>(); private HashSet<OverrideInfo> animationSet = new HashSet<OverrideInfo>();
private List<TextureFX> addedTextureFX;
/** /**
* Called to start the whole game off from * Called to start the whole game off from
* {@link MinecraftServer#startServer} * {@link MinecraftServer#startServer}
@ -186,7 +198,7 @@ public class FMLClientHandler implements IFMLSidedHandler
} }
} }
client.field_6304_y.loadModKeySettings(harvestKeyBindings()); client.field_6304_y.loadModKeySettings(harvestKeyBindings());
onTexturePackChange(fallbackTexturePack); postTexturePackChange(fallbackTexturePack);
} }
public KeyBinding[] harvestKeyBindings() { public KeyBinding[] harvestKeyBindings() {
@ -731,7 +743,9 @@ public class FMLClientHandler implements IFMLSidedHandler
for (OverrideInfo animationOverride : animationSet) { for (OverrideInfo animationOverride : animationSet) {
renderer.func_1066_a(animationOverride.textureFX); renderer.func_1066_a(animationOverride.textureFX);
addedTextureFX.add(animationOverride.textureFX);
} }
for (String fileToOverride : overrideInfo.keySet()) { for (String fileToOverride : overrideInfo.keySet()) {
for (OverrideInfo override : overrideInfo.get(fileToOverride)) { for (OverrideInfo override : overrideInfo.get(fileToOverride)) {
try try
@ -739,6 +753,7 @@ public class FMLClientHandler implements IFMLSidedHandler
BufferedImage image=loadImageFromTexturePack(renderer, override.override); BufferedImage image=loadImageFromTexturePack(renderer, override.override);
ModTextureStatic mts=new ModTextureStatic(override.index, 1, override.texture, image); ModTextureStatic mts=new ModTextureStatic(override.index, 1, override.texture, image);
renderer.func_1066_a(mts); renderer.func_1066_a(mts);
addedTextureFX.add(mts);
} }
catch (IOException e) catch (IOException e)
{ {
@ -810,24 +825,38 @@ public class FMLClientHandler implements IFMLSidedHandler
return meta; return meta;
} }
public void preTexturePackChange(TexturePackBase var1, int tileSize, int tileSizeSquare, int tileSizeMask, int tileSizeSquareMask)
{
ListIterator<TextureFX> li = addedTextureFX.listIterator();
while (li.hasNext()) {
TextureFX tex=li.next();
if (tex.unregister(client.field_6315_n)) {
li.remove();
}
}
TileSize.int_numPixels=tileSizeSquare;
TileSize.int_size=tileSize;
TileSize.int_sizeMinus1=tileSizeMask;
}
/** /**
* @param p_6531_1_ * @param p_6531_1_
*/ */
public void onTexturePackChange(TexturePackBase texturePack) public void postTexturePackChange(TexturePackBase texturePack)
{ {
FMLClientHandler.instance().registerTextureOverrides(client.field_6315_n); registerTextureOverrides(client.field_6315_n);
} }
/** /**
* @param field_6539_c * @param field_6539_c
*/ */
public void onTexturePackFallback(TexturePackBase fallback) public void onEarlyTexturePackLoad(TexturePackBase fallback)
{ {
if (client==null) { if (client==null) {
// We're far too early- let's wait // We're far too early- let's wait
this.fallbackTexturePack=fallback; this.fallbackTexturePack=fallback;
} else { } else {
onTexturePackChange(fallback); postTexturePackChange(fallback);
} }
} }
@ -868,4 +897,12 @@ public class FMLClientHandler implements IFMLSidedHandler
public void profileEnd() { public void profileEnd() {
Profiler.func_40662_b(); Profiler.func_40662_b();
} }
/**
* @param var1
* @param tileSize
* @param tileSizeSquare
* @param tileSizeMask
* @param tileSizeSquareMask
*/
} }

View file

@ -23,6 +23,7 @@ class OverrideInfo
public int index; public int index;
public int imageIndex; public int imageIndex;
public TextureFX textureFX; public TextureFX textureFX;
public boolean added;
@Override @Override
public boolean equals(Object obj) public boolean equals(Object obj)

View file

@ -34,14 +34,14 @@ public class ModMetadata
public String name; public String name;
public String description; public String description;
public String url; public String url="";
public String updateUrl; public String updateUrl="";
public String logoFile; public String logoFile="";
public String version; public String version="";
public String authorList; public String authorList="";
public String credits; public String credits="";
public String parent; public String parent="";
public String[] screenshots; public String[] screenshots;
/** /**