Beginning the 1.3.1 update

This commit is contained in:
Christian 2012-07-30 22:31:07 -04:00
parent e001103ed8
commit 6f8b39ea09
84 changed files with 813 additions and 3761 deletions

View File

@ -0,0 +1,81 @@
package cpw.mods.fml.client;
import java.util.HashMap;
import cpw.mods.fml.common.modloader.ModLoaderHelper;
import cpw.mods.fml.common.modloader.ModLoaderModContainer;
import net.minecraft.src.BaseMod;
import net.minecraft.src.Block;
import net.minecraft.src.IBlockAccess;
import net.minecraft.src.RenderBlocks;
public class BlockRenderManager
{
private static final BlockRenderManager INSTANCE = new BlockRenderManager();
private HashMap<Integer, BlockRenderInfo> blockModelIds = new HashMap<Integer, BlockRenderInfo>();
private int nextRenderId = 30;
public static BlockRenderManager instance()
{
return INSTANCE;
}
/**
* @param renderer
* @param world
* @param x
* @param y
* @param z
* @param block
* @param modelId
* @return
*/
public boolean renderWorldBlock(RenderBlocks renderer, IBlockAccess world, int x, int y, int z, Block block, int modelId)
{
if (!blockModelIds.containsKey(modelId)) { return false; }
BlockRenderInfo bri = blockModelIds.get(modelId);
return bri.renderWorldBlock(world, x, y, z, block, modelId, renderer);
}
/**
* @param renderer
* @param block
* @param metadata
* @param modelID
*/
public void renderInventoryBlock(RenderBlocks renderer, Block block, int metadata, int modelID)
{
if (!blockModelIds.containsKey(modelID)) { return; }
BlockRenderInfo bri = blockModelIds.get(modelID);
bri.renderInventoryBlock(block, metadata, modelID, renderer);
}
/**
* @param p_1219_0_
* @return
*/
public boolean renderItemAsFull3DBlock(int modelId)
{
BlockRenderInfo bri = blockModelIds.get(modelId);
if (bri != null) { return bri.shouldRender3DInInventory(); }
return false;
}
/**
* @param mod
* @param inventoryRenderer
* @return
*/
public int obtainBlockModelIdFor(BaseMod mod, boolean inventoryRenderer)
{
ModLoaderModContainer mlmc=ModLoaderHelper.registerRenderHelper(mod);
int renderId=nextRenderId++;
BlockRenderInfo bri=new BlockRenderInfo(renderId, inventoryRenderer, mlmc);
blockModelIds.put(renderId, bri);
return renderId;
}
}

View File

@ -109,7 +109,7 @@ import cpw.mods.fml.common.registry.FMLRegistry;
/** /**
* Handles primary communication from hooked code into the system * Handles primary communication from hooked code into the system
* *
* The FML entry point is {@link #onPreLoad(MinecraftServer)} called from * The FML entry point is {@link #beginMinecraftLoading(MinecraftServer)} called from
* {@link MinecraftServer} * {@link MinecraftServer}
* *
* Obfuscated code should focus on this class and other members of the "server" * Obfuscated code should focus on this class and other members of the "server"
@ -137,27 +137,11 @@ public class FMLClientHandler implements IFMLSidedHandler
*/ */
private Minecraft client; private Minecraft client;
/**
* A handy list of the default overworld biomes
*/
private BiomeGenBase[] defaultOverworldBiomes;
private int nextRenderId = 30;
private TexturePackBase fallbackTexturePack; private TexturePackBase fallbackTexturePack;
private NetClientHandler networkClient; private NetClientHandler networkClient;
private ModContainer animationCallbackMod;
// Cached lookups
private HashMap<String, ArrayList<OverrideInfo>> overrideInfo = new HashMap<String, ArrayList<OverrideInfo>>();
private HashMap<Integer, BlockRenderInfo> blockModelIds = new HashMap<Integer, BlockRenderInfo>();
private HashMap<KeyBinding, ModContainer> keyBindings = new HashMap<KeyBinding, ModContainer>();
private HashSet<OverrideInfo> animationSet = new HashSet<OverrideInfo>();
private List<TextureFX> addedTextureFX = new ArrayList<TextureFX>();
private boolean firstTick; private boolean firstTick;
/** /**
* Called to start the whole game off from * Called to start the whole game off from
@ -172,14 +156,15 @@ public class FMLClientHandler implements IFMLSidedHandler
private boolean serverIsRunning; private boolean serverIsRunning;
public void onPreLoad(Minecraft minecraft) public void beginMinecraftLoading(Minecraft minecraft)
{ {
if (minecraft.func_55063_q()) if (minecraft.func_71355_q())
{ {
FMLLog.severe("DEMO MODE DETECTED, FML will not work. Finishing now."); FMLLog.severe("DEMO MODE DETECTED, FML will not work. Finishing now.");
haltGame("FML will not run in demo mode", new RuntimeException()); haltGame("FML will not run in demo mode", new RuntimeException());
return; return;
} }
client = minecraft; client = minecraft;
ObfuscationReflectionHelper.detectObfuscation(World.class); ObfuscationReflectionHelper.detectObfuscation(World.class);
FMLCommonHandler.instance().beginLoading(this); FMLCommonHandler.instance().beginLoading(this);
@ -211,7 +196,7 @@ public class FMLClientHandler implements IFMLSidedHandler
@Override @Override
public void haltGame(String message, Throwable t) public void haltGame(String message, Throwable t)
{ {
client.func_55071_b(new CrashReport(message, t)); client.func_71377_b(new CrashReport(message, t));
throw Throwables.propagate(t); throw Throwables.propagate(t);
} }
/** /**
@ -237,45 +222,21 @@ public class FMLClientHandler implements IFMLSidedHandler
// r.func_4009_a(RenderManager.field_1233_a); // r.func_4009_a(RenderManager.field_1233_a);
// } // }
// } // }
KeyBindingRegistry.uploadKeyBindingsToGame(client.field_71474_y);
// Mark this as a "first tick" // Mark this as a "first tick"
KeyBindingRegistry.uploadKeyBindingsToGame(client.field_6304_y);
firstTick = true; firstTick = true;
} }
/**
* Every tick just before world and other ticks occur
*/
public void onPreWorldTick()
{
// TODO
// FMLCommonHandler.instance().tickStart(EnumSet.of(TickType.WORLD), client., client.field_6313_p, client.field_6324_e);
// FMLCommonHandler.instance().tickStart(EnumSet.of(TickType.GAME,TickType.WORLDGUI), 0.0f, client.field_6313_p, client.field_6324_e);
}
/**
* Every tick just after world and other ticks occur
*/
public void onPostWorldTick()
{
// TODO
// FMLCommonHandler.instance().tickEnd(EnumSet.of(TickType.WORLD), client.field_6324_e, client.field_6313_p, client.field_6324_e);
// FMLCommonHandler.instance().tickEnd(EnumSet.of(TickType.GAME,TickType.WORLDGUI), 0.0f, client.field_6313_p, client.field_6324_e);
}
public void onWorldLoadTick()
{
if (firstTick)
{
loadTextures(fallbackTexturePack);
firstTick = false;
}
FMLCommonHandler.instance().tickStart(EnumSet.of(TickType.WORLDLOAD,TickType.GUILOAD));
}
public void onRenderTickStart(float partialTickTime) public void onRenderTickStart(float partialTickTime)
{ {
FMLCommonHandler.instance().tickStart(EnumSet.of(TickType.RENDER,TickType.GUI), partialTickTime, client.field_6313_p); if (firstTick)
{
// TODO
// loadTextures(fallbackTexturePack);
firstTick = false;
}
FMLCommonHandler.instance().tickStart(EnumSet.of(TickType.RENDER,TickType.GUI), partialTickTime, client.field_71462_r);
} }
public void onRenderTickEnd(float partialTickTime) public void onRenderTickEnd(float partialTickTime)
@ -283,10 +244,10 @@ public class FMLClientHandler implements IFMLSidedHandler
if (!guiLoaded) if (!guiLoaded)
{ {
FMLCommonHandler.instance().rescheduleTicks(); FMLCommonHandler.instance().rescheduleTicks();
FMLCommonHandler.instance().tickStart(EnumSet.of(TickType.GUILOAD), partialTickTime, client.field_6313_p); FMLCommonHandler.instance().tickStart(EnumSet.of(TickType.GUILOAD), partialTickTime, client.field_71462_r);
guiLoaded = true; guiLoaded = true;
} }
FMLCommonHandler.instance().tickEnd(EnumSet.of(TickType.RENDER,TickType.GUI), partialTickTime, client.field_6313_p); FMLCommonHandler.instance().tickEnd(EnumSet.of(TickType.RENDER,TickType.GUI), partialTickTime, client.field_71462_r);
} }
/** /**
* Get the server instance * Get the server instance
@ -307,68 +268,6 @@ public class FMLClientHandler implements IFMLSidedHandler
return null; return null;
} }
/**
* Called from ChunkProvider when a chunk needs to be populated
*
* To avoid polluting the worldgen seed, we generate a new random from the
* world seed and generate a seed from that
*
* @param chunkProvider
* @param chunkX
* @param chunkZ
* @param world
* @param generator
*/
public void onChunkPopulate(IChunkProvider chunkProvider, int chunkX, int chunkZ, World world, IChunkProvider generator)
{
FMLCommonHandler.instance().handleWorldGeneration(chunkX, chunkZ, world.func_22138_q(), world, generator, chunkProvider);
}
/**
* Called to notify that an item was picked up from the world
*
* @param entityItem
* @param entityPlayer
*/
public void notifyItemPickup(EntityItem entityItem, EntityPlayer entityPlayer)
{
// TODO
// for (ModContainer mod : Loader.getModList())
// {
// if (mod.wantsPickupNotification())
// {
// mod.getPickupNotifier().notifyPickup(entityItem, entityPlayer);
// }
// }
}
/**
* Attempt to dispense the item as an entity other than just as a the item
* itself
*
* @param world
* @param x
* @param y
* @param z
* @param p_56784_7_
* @param p_56784_8_
* @param item
* @return
*/
public boolean tryDispensingEntity(World world, double x, double y, double z, int p_56784_7_, int p_56784_8_, ItemStack item)
{
// TODO
// for (ModContainer mod : Loader.getModList())
// {
// if (mod.wantsToDispense() && mod.getDispenseHandler().dispense(x, y, z, p_56784_7_, p_56784_8_, world, item))
// {
// return true;
// }
// }
//
return false;
}
/** /**
* @return the instance * @return the instance
*/ */
@ -377,231 +276,6 @@ public class FMLClientHandler implements IFMLSidedHandler
return INSTANCE; return INSTANCE;
} }
/**
* Build a list of default overworld biomes
*
* @return
*/
public BiomeGenBase[] getDefaultOverworldBiomes()
{
if (defaultOverworldBiomes == null)
{
ArrayList<BiomeGenBase> biomes = new ArrayList<BiomeGenBase>(20);
for (int i = 0; i < 23; i++)
{
if ("Sky".equals(BiomeGenBase.field_35486_a[i].field_6504_m) || "Hell".equals(BiomeGenBase.field_35486_a[i].field_6504_m))
{
continue;
}
biomes.add(BiomeGenBase.field_35486_a[i]);
}
defaultOverworldBiomes = new BiomeGenBase[biomes.size()];
biomes.toArray(defaultOverworldBiomes);
}
return defaultOverworldBiomes;
}
/**
* Called when an item is crafted
*
* @param player
* @param craftedItem
* @param craftingGrid
*/
public void onItemCrafted(EntityPlayer player, ItemStack craftedItem, IInventory craftingGrid)
{
// TODO
// for (ModContainer mod : Loader.getModList())
// {
// if (mod.wantsCraftingNotification())
// {
// mod.getCraftingHandler().onCrafting(player, craftedItem, craftingGrid);
// }
// }
}
/**
* Called when an item is smelted
*
* @param player
* @param smeltedItem
*/
public void onItemSmelted(EntityPlayer player, ItemStack smeltedItem)
{
// TODO
// for (ModContainer mod : Loader.getModList())
// {
// if (mod.wantsCraftingNotification())
// {
// mod.getCraftingHandler().onSmelting(player, smeltedItem);
// }
// }
}
/**
* Called when a chat packet is received
*
* @param chat
* @param player
* @return true if you want the packet to stop processing and not echo to
* the rest of the world
*/
public boolean handleChatPacket(Packet3Chat chat)
{
// TODO
// for (ModContainer mod : Loader.getModList())
// {
// if (mod.wantsNetworkPackets() && mod.getNetworkHandler().onChat(chat))
// {
// return true;
// }
// }
//
return false;
}
/**
* Called when a chat packet is received
*
* @param chat
* @param player
* @return true if you want the packet to stop processing and not echo to
* the rest of the world
*/
public boolean handleChatPacket(Packet3Chat chat, EntityPlayer player)
{
// TODO
// for (ModContainer mod : Loader.getModList())
// {
// if (mod.wantsNetworkPackets() && mod.getNetworkHandler().onChat(chat, player))
// {
// return true;
// }
// }
//
return false;
}
public void handleServerLogin(Packet1Login loginPacket, NetClientHandler handler, NetworkManager networkManager)
{
this.networkClient=handler;
Packet250CustomPayload packet = new Packet250CustomPayload();
packet.field_44012_a = "REGISTER";
packet.field_44011_c = FMLCommonHandler.instance().getPacketRegistry();
packet.field_44010_b = packet.field_44011_c.length;
if (packet.field_44010_b > 0)
{
networkManager.func_972_a(packet);
}
// TODO
// for (ModContainer mod : Loader.getModList()) {
// mod.getNetworkHandler().onServerLogin(handler);
// }
}
/**
* Called when a packet 250 packet is received from the player
*
* @param packet
* @param player
*/
public void handlePacket250(Packet250CustomPayload packet)
{
if ("REGISTER".equals(packet.field_44012_a) || "UNREGISTER".equals(packet.field_44012_a))
{
handleServerRegistration(packet);
return;
}
// TODO
// ModContainer mod = FMLCommonHandler.instance().getModForChannel(packet.field_44012_a);
//
// if (mod != null)
// {
// mod.getNetworkHandler().onPacket250Packet(packet);
// }
}
/**
* Handle register requests for packet 250 channels
*
* @param packet
*/
private void handleServerRegistration(Packet250CustomPayload packet)
{
if (packet.field_44011_c == null)
{
return;
}
try
{
for (String channel : new String(packet.field_44011_c, "UTF8").split("\0"))
{
// Skip it if we don't know it
if (FMLCommonHandler.instance().getModForChannel(channel) == null)
{
continue;
}
// if ("REGISTER".equals(packet.field_44012_a))
// {
// FMLCommonHandler.instance().activateChannel(client.field_6322_g,channel);
// }
// else
// {
// FMLCommonHandler.instance().deactivateChannel(client.field_6322_g,channel);
// }
}
}
catch (UnsupportedEncodingException e)
{
getMinecraftLogger().warning("Received invalid registration packet");
}
}
@Override
public File getMinecraftRootDirectory()
{
return client.field_6297_D;
}
/**
* @param player
*/
public void announceLogin(EntityPlayer player)
{
// TODO
}
/**
* @param player
*/
public void announceLogout(EntityPlayer player)
{
// TODO
}
/**
* @param p_28168_1_
*/
public void announceDimensionChange(EntityPlayer player)
{
// TODO
}
/**
* @param biome
*/
public void addBiomeToDefaultWorldGenerator(BiomeGenBase biome)
{
WorldType.field_48635_b.addNewBiome(biome);
}
/** /**
* Return the minecraft instance * Return the minecraft instance
*/ */
@ -610,82 +284,26 @@ public class FMLClientHandler implements IFMLSidedHandler
{ {
return client; return client;
} }
/* (non-Javadoc)
* @see cpw.mods.fml.common.IFMLSidedHandler#getCurrentLanguage()
*/
@Override
public String getCurrentLanguage()
{
return StringTranslate.func_20162_a().func_44024_c();
}
public Properties getCurrentLanguageTable() {
return StringTranslate.func_20162_a().getTranslationTable();
}
/** /**
* @param armor * @param armor
* @return * @return
*/ */
public int addNewArmourRendererPrefix(String armor) public int addNewArmourRendererPrefix(String armor)
{ {
return RenderPlayer.addNewArmourPrefix(armor); String[] prefixes = ObfuscationReflectionHelper.getPrivateValue(RenderPlayer.class, null, "field_77110_j", "j", "armorFilenamePrefix");
String[] newPrefixes = Arrays.copyOf(prefixes, prefixes.length+1);
newPrefixes[prefixes.length] = armor;
ObfuscationReflectionHelper.setPrivateValue(RenderPlayer.class, null, newPrefixes, "field_77110_j", "j", "armorFilenamePrefix" );
return prefixes.length;
} }
public void addNewTextureOverride(String textureToOverride, String overridingTexturePath, int location) {
if (!overrideInfo.containsKey(textureToOverride))
{
overrideInfo.put(textureToOverride, new ArrayList<OverrideInfo>());
}
ArrayList<OverrideInfo> list = overrideInfo.get(textureToOverride);
OverrideInfo info = new OverrideInfo();
info.index = location;
info.override = overridingTexturePath;
info.texture = textureToOverride;
list.add(info);
FMLLog.fine("Overriding %s @ %d with %s. %d slots remaining",textureToOverride, location, overridingTexturePath, SpriteHelper.freeSlotCount(textureToOverride));
}
/**
* @param mod
* @param inventoryRenderer
* @return
*/
public int obtainBlockModelIdFor(BaseMod mod, boolean inventoryRenderer)
{
ModLoaderModContainer mlmc=ModLoaderHelper.registerRenderHelper(mod);
int renderId=nextRenderId++;
BlockRenderInfo bri=new BlockRenderInfo(renderId, inventoryRenderer, mlmc);
blockModelIds.put(renderId, bri);
return renderId;
}
/**
* @param renderEngine
* @param path
* @return
*/
public BufferedImage loadImageFromTexturePack(RenderEngine renderEngine, String path) throws IOException
{
InputStream image=client.field_6298_C.field_6534_a.func_6481_a(path);
if (image==null) {
throw new RuntimeException(String.format("The requested image path %s is not found",path));
}
BufferedImage result=ImageIO.read(image);
if (result==null)
{
throw new RuntimeException(String.format("The requested image path %s appears to be corrupted",path));
}
return result;
}
/** /**
* @param player * @param player
* @param gui * @param gui
*/ */
public void displayGuiScreen(EntityPlayer player, GuiScreen gui) public void displayGuiScreen(EntityPlayer player, GuiScreen gui)
{ {
if (client.field_22009_h==player && gui != null) { if (client.field_71439_g==player && gui != null) {
client.func_6272_a(gui); client.func_71373_a(gui);
} }
} }
@ -699,338 +317,14 @@ public class FMLClientHandler implements IFMLSidedHandler
ModLoaderModContainer mlmc=ModLoaderHelper.registerKeyHelper(mod); ModLoaderModContainer mlmc=ModLoaderHelper.registerKeyHelper(mod);
KeyBindingRegistry.registerKeyBinding(new ModLoaderKeyBindingHandler(keyHandler, allowRepeat, mlmc)); KeyBindingRegistry.registerKeyBinding(new ModLoaderKeyBindingHandler(keyHandler, allowRepeat, mlmc));
} }
/**
* @param renderer
* @param world
* @param x
* @param y
* @param z
* @param block
* @param modelId
* @return
*/
public boolean renderWorldBlock(RenderBlocks renderer, IBlockAccess world, int x, int y, int z, Block block, int modelId)
{
if (!blockModelIds.containsKey(modelId)) {
return false;
}
BlockRenderInfo bri = blockModelIds.get(modelId);
return bri.renderWorldBlock(world, x, y, z, block, modelId, renderer);
}
/**
* @param renderer
* @param block
* @param metadata
* @param modelID
*/
public void renderInventoryBlock(RenderBlocks renderer, Block block, int metadata, int modelID)
{
if (!blockModelIds.containsKey(modelID)) {
return;
}
BlockRenderInfo bri=blockModelIds.get(modelID);
bri.renderInventoryBlock(block, metadata, modelID, renderer);
}
/**
* @param p_1219_0_
* @return
*/
public boolean renderItemAsFull3DBlock(int modelId)
{
BlockRenderInfo bri = blockModelIds.get(modelId);
if (bri!=null) {
return bri.shouldRender3DInInventory();
}
return false;
}
public void registerTextureOverrides(RenderEngine renderer) {
for (ModContainer mod : Loader.instance().getActiveModList()) {
registerAnimatedTexturesFor(mod);
}
for (OverrideInfo animationOverride : animationSet) {
renderer.func_1066_a(animationOverride.textureFX);
addedTextureFX.add(animationOverride.textureFX);
FMLCommonHandler.instance().getFMLLogger().finer(String.format("Registered texture override %d (%d) on %s (%d)", animationOverride.index, animationOverride.textureFX.field_1126_b, animationOverride.textureFX.getClass().getSimpleName(), animationOverride.textureFX.field_1128_f));
}
for (String fileToOverride : overrideInfo.keySet()) {
for (OverrideInfo override : overrideInfo.get(fileToOverride)) {
try
{
BufferedImage image=loadImageFromTexturePack(renderer, override.override);
ModTextureStatic mts=new ModTextureStatic(override.index, 1, override.texture, image);
renderer.func_1066_a(mts);
addedTextureFX.add(mts);
FMLCommonHandler.instance().getFMLLogger().finer(String.format("Registered texture override %d (%d) on %s (%d)", override.index, mts.field_1126_b, override.texture, mts.field_1128_f));
}
catch (IOException e)
{
FMLCommonHandler.instance().getFMLLogger().throwing("FMLClientHandler", "registerTextureOverrides", e);
}
}
}
}
/**
* @param mod
*/
private void registerAnimatedTexturesFor(ModContainer mod)
{
}
public String getObjectName(Object instance) {
String objectName;
if (instance instanceof Item) {
objectName=((Item)instance).func_20009_a();
} else if (instance instanceof Block) {
objectName=((Block)instance).func_20013_i();
} else if (instance instanceof ItemStack) {
objectName=Item.field_233_c[((ItemStack)instance).field_1617_c].func_21011_b((ItemStack)instance);
} else {
throw new IllegalArgumentException(String.format("Illegal object for naming %s",instance));
}
objectName+=".name";
return objectName;
}
public void pruneOldTextureFX(TexturePackBase var1, List<TextureFX> effects)
{
ListIterator<TextureFX> li = addedTextureFX.listIterator();
while (li.hasNext())
{
TextureFX tex = li.next();
if (tex instanceof FMLTextureFX)
{
if (((FMLTextureFX)tex).unregister(client.field_6315_n, effects))
{
li.remove();
}
}
else
{
effects.remove(tex);
li.remove();
}
}
}
/**
* @param p_6531_1_
*/
public void loadTextures(TexturePackBase texturePack)
{
registerTextureOverrides(client.field_6315_n);
}
/**
* @param field_6539_c
*/
public void onEarlyTexturePackLoad(TexturePackBase fallback)
{
if (client==null) {
// We're far too early- let's wait
this.fallbackTexturePack=fallback;
} else {
loadTextures(fallback);
}
}
/**
* @param packet
*/
public void sendPacket(Packet packet)
{
if (this.networkClient!=null) {
this.networkClient.func_847_a(packet);
}
}
/**
* @param anim
*/
public void addAnimation(TextureFX anim)
{
if (animationCallbackMod==null) {
return;
}
OverrideInfo info=new OverrideInfo();
info.index=anim.field_1126_b;
info.imageIndex=anim.field_1128_f;
info.textureFX=anim;
if (animationSet.contains(info)) {
animationSet.remove(info);
}
animationSet.add(info);
}
@Override @Override
public void profileStart(String profileLabel) { public void profileStart(String profileLabel) {
Profiler.func_40663_a(profileLabel); client.field_71424_I.func_76320_a(profileLabel);
} }
@Override @Override
public void profileEnd() { public void profileEnd() {
Profiler.func_40662_b(); client.field_71424_I.func_76319_b();
}
public void onTexturePackChange(RenderEngine engine, TexturePackBase texturepack, List<TextureFX> effects)
{
FMLClientHandler.instance().pruneOldTextureFX(texturepack, effects);
for (TextureFX tex : effects)
{
if (tex instanceof ITextureFX)
{
((ITextureFX)tex).onTexturePackChanged(engine, texturepack, getTextureDimensions(tex));
}
}
FMLClientHandler.instance().loadTextures(texturepack);
}
private HashMap<Integer, Dimension> textureDims = new HashMap<Integer, Dimension>();
private IdentityHashMap<TextureFX, Integer> effectTextures = new IdentityHashMap<TextureFX, Integer>();
public void setTextureDimensions(int id, int width, int height, List<TextureFX> effects)
{
Dimension dim = new Dimension(width, height);
textureDims.put(id, dim);
for (TextureFX tex : effects)
{
if (getEffectTexture(tex) == id && tex instanceof ITextureFX)
{
((ITextureFX)tex).onTextureDimensionsUpdate(width, height);
}
}
}
public Dimension getTextureDimensions(TextureFX effect)
{
return getTextureDimensions(getEffectTexture(effect));
}
public Dimension getTextureDimensions(int id)
{
return textureDims.get(id);
}
public int getEffectTexture(TextureFX effect)
{
Integer id = effectTextures.get(effect);
if (id != null)
{
return id;
}
int old = GL11.glGetInteger(GL_TEXTURE_BINDING_2D);
effect.func_782_a(client.field_6315_n);
id = GL11.glGetInteger(GL_TEXTURE_BINDING_2D);
GL11.glBindTexture(GL_TEXTURE_2D, old);
effectTextures.put(effect, id);
return id;
}
public boolean onUpdateTextureEffect(TextureFX effect)
{
ITextureFX ifx = (effect instanceof ITextureFX ? ((ITextureFX)effect) : null);
if (ifx != null && ifx.getErrored())
{
return false;
}
String name = effect.getClass().getSimpleName();
Profiler.func_40663_a(name);
try
{
if (optifineContainer == null)
{
effect.func_783_a();
}
}
catch (Exception e)
{
FMLLog.warning("Texture FX %s has failed to animate. Likely caused by a texture pack change that they did not respond correctly to", name);
if (ifx != null)
{
ifx.setErrored(true);
}
Profiler.func_40662_b();
return false;
}
Profiler.func_40662_b();
if (ifx != null)
{
Dimension dim = getTextureDimensions(effect);
int target = ((dim.width >> 4) * (dim.height >> 4)) << 2;
if (effect.field_1127_a.length != target)
{
FMLLog.warning("Detected a texture FX sizing discrepancy in %s (%d, %d)", name, effect.field_1127_a.length, target);
ifx.setErrored(true);
return false;
}
}
return true;
}
//Quick and dirty image scaling, no smoothing or fanciness, meant for speed as it will be called every tick.
public void scaleTextureFXData(byte[] data, ByteBuffer buf, int target, int length)
{
int sWidth = (int)Math.sqrt(data.length / 4);
int factor = target / sWidth;
byte[] tmp = new byte[4];
buf.clear();
if (factor > 1)
{
for (int y = 0; y < sWidth; y++)
{
int sRowOff = sWidth * y;
int tRowOff = target * y * factor;
for (int x = 0; x < sWidth; x++)
{
int sPos = (x + sRowOff) * 4;
tmp[0] = data[sPos + 0];
tmp[1] = data[sPos + 1];
tmp[2] = data[sPos + 2];
tmp[3] = data[sPos + 3];
int tPosTop = (x * factor) + tRowOff;
for (int y2 = 0; y2 < factor; y2++)
{
buf.position((tPosTop + (y2 * target)) * 4);
for (int x2 = 0; x2 < factor; x2++)
{
buf.put(tmp);
}
}
}
}
}
buf.position(0).limit(length);
}
public void onPreRegisterEffect(TextureFX effect)
{
Dimension dim = getTextureDimensions(effect);
if (effect instanceof ITextureFX)
{
((ITextureFX)effect).onTextureDimensionsUpdate(dim.width, dim.height);
}
} }
/* (non-Javadoc) /* (non-Javadoc)
@ -1089,29 +383,26 @@ public class FMLClientHandler implements IFMLSidedHandler
return null; return null;
} }
/** @Override
* @param biome public String getCurrentLanguage()
*/
public void removeBiomeFromDefaultWorldGenerator(BiomeGenBase biome)
{ {
WorldType.field_48635_b.removeBiome(biome); return null;
} }
/** @Override
* Handle a login public Properties getCurrentLanguageTable()
*
* @param loginPacket
* @param networkManager
*/
public void handleClientLogin(NetworkManager networkManager)
{ {
Packet250CustomPayload packet = new Packet250CustomPayload(); return null;
packet.field_44012_a = "REGISTER"; }
packet.field_44011_c = FMLCommonHandler.instance().getPacketRegistry();
packet.field_44010_b = packet.field_44011_c.length; @Override
if (packet.field_44010_b > 0) public String getObjectName(Object minecraftObject)
{ {
networkManager.func_972_a(packet); return null;
} }
public boolean hasOptifine()
{
return optifineContainer!=null;
} }
} }

View File

@ -32,20 +32,20 @@ public class FMLTextureFX extends TextureFX implements ITextureFX
public int tileSizeSquareMask = 255; public int tileSizeSquareMask = 255;
public boolean errored = false; public boolean errored = false;
protected Logger log = FMLCommonHandler.instance().getFMLLogger(); protected Logger log = FMLCommonHandler.instance().getFMLLogger();
public FMLTextureFX(int icon) public FMLTextureFX(int icon)
{ {
super(icon); super(icon);
} }
@Override public void setErrored(boolean err){ errored = err; } @Override public void setErrored(boolean err){ errored = err; }
@Override public boolean getErrored(){ return errored; } @Override public boolean getErrored(){ return errored; }
@Override @Override
public void onTexturePackChanged(RenderEngine engine, TexturePackBase texturepack, Dimension dimensions) public void onTexturePackChanged(RenderEngine engine, TexturePackBase texturepack, Dimension dimensions)
{ {
onTextureDimensionsUpdate(dimensions.width, dimensions.height); onTextureDimensionsUpdate(dimensions.width, dimensions.height);
} }
@Override @Override
public void onTextureDimensionsUpdate(int width, int height) public void onTextureDimensionsUpdate(int width, int height)
{ {
tileSizeBase = width >> 4; tileSizeBase = width >> 4;
@ -58,9 +58,9 @@ public class FMLTextureFX extends TextureFX implements ITextureFX
protected void setup() protected void setup()
{ {
field_1127_a = new byte[tileSizeSquare << 2]; field_76852_a = new byte[tileSizeSquare << 2];
} }
public boolean unregister(RenderEngine engine, List<TextureFX> effects) public boolean unregister(RenderEngine engine, List<TextureFX> effects)
{ {
effects.remove(this); effects.remove(this);

View File

@ -39,7 +39,6 @@ import net.minecraft.src.Tessellator;
*/ */
public class GuiModList extends GuiScreen public class GuiModList extends GuiScreen
{ {
private GuiScreen mainMenu; private GuiScreen mainMenu;
private GuiSlotModList modList; private GuiSlotModList modList;
private int selected = -1; private int selected = -1;
@ -62,66 +61,70 @@ public class GuiModList extends GuiScreen
mods.add(mod); mods.add(mod);
} }
} }
public void func_6448_a() @Override
public void func_73866_w_()
{ {
for (ModContainer mod : mods) { for (ModContainer mod : mods) {
listWidth=Math.max(listWidth,getFontRenderer().func_871_a(mod.getName()) + 10); listWidth=Math.max(listWidth,getFontRenderer().func_78256_a(mod.getName()) + 10);
listWidth=Math.max(listWidth,getFontRenderer().func_871_a(mod.getVersion()) + 10); listWidth=Math.max(listWidth,getFontRenderer().func_78256_a(mod.getVersion()) + 10);
} }
listWidth=Math.min(listWidth, 150); listWidth=Math.min(listWidth, 150);
StringTranslate translations = StringTranslate.func_20162_a(); StringTranslate translations = StringTranslate.func_74808_a();
this.field_949_e.add(new GuiSmallButton(6, this.field_951_c / 2 - 75, this.field_950_d - 38, translations.func_20163_a("gui.done"))); this.field_73887_h.add(new GuiSmallButton(6, this.field_73880_f / 2 - 75, this.field_73881_g - 38, translations.func_74805_b("gui.done")));
this.modList=new GuiSlotModList(this, mods, listWidth); this.modList=new GuiSlotModList(this, mods, listWidth);
this.modList.registerScrollButtons(this.field_949_e, 7, 8); this.modList.registerScrollButtons(this.field_73887_h, 7, 8);
} }
protected void func_572_a(GuiButton button) { @Override
if (button.field_937_g) protected void func_73875_a(GuiButton button) {
if (button.field_73742_g)
{ {
switch (button.field_938_f) switch (button.field_73741_f)
{ {
case 6: case 6:
this.field_945_b.func_6272_a(this.mainMenu); this.field_73882_e.func_71373_a(this.mainMenu);
return; return;
} }
} }
super.func_572_a(button); super.func_73875_a(button);
} }
public int drawLine(String line, int offset, int shifty) public int drawLine(String line, int offset, int shifty)
{ {
this.field_6451_g.func_873_b(line, offset, shifty, 0xd7edea); this.field_73886_k.func_78276_b(line, offset, shifty, 0xd7edea);
return shifty + 10; return shifty + 10;
} }
public void func_571_a(int p_571_1_, int p_571_2_, float p_571_3_)
@Override
public void func_73863_a(int p_571_1_, int p_571_2_, float p_571_3_)
{ {
this.modList.drawScreen(p_571_1_, p_571_2_, p_571_3_); this.modList.drawScreen(p_571_1_, p_571_2_, p_571_3_);
this.func_548_a(this.field_6451_g, "Mod List", this.field_951_c / 2, 16, 0xFFFFFF); this.func_73732_a(this.field_73886_k, "Mod List", this.field_73880_f / 2, 16, 0xFFFFFF);
int offset = this.listWidth + 20; int offset = this.listWidth + 20;
if (selectedMod != null) { if (selectedMod != null) {
if (!selectedMod.getMetadata().autogenerated) { if (!selectedMod.getMetadata().autogenerated) {
int shifty = 35; int shifty = 35;
if (!selectedMod.getMetadata().logoFile.isEmpty()) if (!selectedMod.getMetadata().logoFile.isEmpty())
{ {
int texture = this.field_945_b.field_6315_n.func_1070_a(selectedMod.getMetadata().logoFile); int texture = this.field_73882_e.field_71446_o.func_78341_b(selectedMod.getMetadata().logoFile);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.field_945_b.field_6315_n.func_1076_b(texture); this.field_73882_e.field_71446_o.func_78342_b(texture);
Dimension dim = FMLClientHandler.instance().getTextureDimensions(texture); Dimension dim = TextureFXManager.instance().getTextureDimensions(texture);
int top = 32; int top = 32;
Tessellator tess = Tessellator.field_1512_a; Tessellator tess = Tessellator.field_78398_a;
tess.func_977_b(); tess.func_78382_b();
tess.func_983_a(offset, top + dim.height, field_923_k, 0, 1); tess.func_78374_a(offset, top + dim.height, field_73735_i, 0, 1);
tess.func_983_a(offset + dim.width, top + dim.height, field_923_k, 1, 1); tess.func_78374_a(offset + dim.width, top + dim.height, field_73735_i, 1, 1);
tess.func_983_a(offset + dim.width, top, field_923_k, 1, 0); tess.func_78374_a(offset + dim.width, top, field_73735_i, 1, 0);
tess.func_983_a(offset, top, field_923_k, 0, 0); tess.func_78374_a(offset, top, field_73735_i, 0, 0);
tess.func_982_a(); tess.func_78381_a();
shifty += 65; shifty += 65;
} }
this.field_6451_g.func_50103_a(selectedMod.getMetadata().name, offset, shifty, 0xFFFFFF); this.field_73886_k.func_78261_a(selectedMod.getMetadata().name, offset, shifty, 0xFFFFFF);
shifty += 12; shifty += 12;
shifty = drawLine(String.format("Version: %s (%s)", selectedMod.getMetadata().version, selectedMod.getVersion()), offset, shifty); shifty = drawLine(String.format("Version: %s (%s)", selectedMod.getMetadata().version, selectedMod.getVersion()), offset, shifty);
shifty = drawLine(String.format("Mod State: %s", Loader.instance().getModState(selectedMod)), offset, shifty); shifty = drawLine(String.format("Mod State: %s", Loader.instance().getModState(selectedMod)), offset, shifty);
if (!selectedMod.getMetadata().credits.isEmpty()) { if (!selectedMod.getMetadata().credits.isEmpty()) {
@ -130,25 +133,25 @@ public class GuiModList extends GuiScreen
shifty = drawLine(String.format("Authors: %s", selectedMod.getMetadata().getAuthorList()), offset, shifty); shifty = drawLine(String.format("Authors: %s", selectedMod.getMetadata().getAuthorList()), offset, shifty);
shifty = drawLine(String.format("URL: %s", selectedMod.getMetadata().url), offset, shifty); shifty = drawLine(String.format("URL: %s", selectedMod.getMetadata().url), offset, shifty);
shifty = drawLine(selectedMod.getMetadata().childMods.isEmpty() ? "No child mods for this mod" : String.format("Child mods: %s", selectedMod.getMetadata().getChildModList()), offset, shifty); shifty = drawLine(selectedMod.getMetadata().childMods.isEmpty() ? "No child mods for this mod" : String.format("Child mods: %s", selectedMod.getMetadata().getChildModList()), offset, shifty);
this.getFontRenderer().func_27278_a(selectedMod.getMetadata().description, offset, shifty + 10, this.field_951_c - offset - 20, 0xDDDDDD); this.getFontRenderer().func_78279_b(selectedMod.getMetadata().description, offset, shifty + 10, this.field_73880_f - offset - 20, 0xDDDDDD);
} else { } else {
offset = ( this.listWidth + this.field_951_c ) / 2; offset = ( this.listWidth + this.field_73880_f ) / 2;
this.func_548_a(this.field_6451_g, selectedMod.getName(), offset, 35, 0xFFFFFF); this.func_73732_a(this.field_73886_k, selectedMod.getName(), offset, 35, 0xFFFFFF);
this.func_548_a(this.field_6451_g, String.format("Version: %s",selectedMod.getVersion()), offset, 45, 0xFFFFFF); this.func_73732_a(this.field_73886_k, String.format("Version: %s",selectedMod.getVersion()), offset, 45, 0xFFFFFF);
this.func_548_a(this.field_6451_g, String.format("Mod State: %s",Loader.instance().getModState(selectedMod)), offset, 55, 0xFFFFFF); this.func_73732_a(this.field_73886_k, String.format("Mod State: %s",Loader.instance().getModState(selectedMod)), offset, 55, 0xFFFFFF);
this.func_548_a(this.field_6451_g, "No mod information found", offset, 65, 0xDDDDDD); this.func_73732_a(this.field_73886_k, "No mod information found", offset, 65, 0xDDDDDD);
this.func_548_a(this.field_6451_g, "Ask your mod author to provide a mod mcmod.info file", offset, 75, 0xDDDDDD); this.func_73732_a(this.field_73886_k, "Ask your mod author to provide a mod mcmod.info file", offset, 75, 0xDDDDDD);
} }
} }
super.func_571_a(p_571_1_, p_571_2_, p_571_3_); super.func_73863_a(p_571_1_, p_571_2_, p_571_3_);
} }
Minecraft getMinecraftInstance() { Minecraft getMinecraftInstance() {
return field_945_b; return field_73882_e;
} }
FontRenderer getFontRenderer() { FontRenderer getFontRenderer() {
return field_6451_g; return field_73886_k;
} }
/** /**

View File

@ -117,15 +117,15 @@ public abstract class GuiScrollingList
public void actionPerformed(GuiButton button) public void actionPerformed(GuiButton button)
{ {
if (button.field_937_g) if (button.field_73742_g)
{ {
if (button.field_938_f == this.scrollUpActionId) if (button.field_73741_f == this.scrollUpActionId)
{ {
this.scrollDistance -= (float)(this.slotHeight * 2 / 3); this.scrollDistance -= (float)(this.slotHeight * 2 / 3);
this.initialMouseClickY = -2.0F; this.initialMouseClickY = -2.0F;
this.applyScrollLimits(); this.applyScrollLimits();
} }
else if (button.field_938_f == this.scrollDownActionId) else if (button.field_73741_f == this.scrollDownActionId)
{ {
this.scrollDistance += (float)(this.slotHeight * 2 / 3); this.scrollDistance += (float)(this.slotHeight * 2 / 3);
this.initialMouseClickY = -2.0F; this.initialMouseClickY = -2.0F;
@ -249,17 +249,17 @@ public abstract class GuiScrollingList
this.applyScrollLimits(); this.applyScrollLimits();
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_FOG); GL11.glDisable(GL11.GL_FOG);
Tessellator var18 = Tessellator.field_1512_a; Tessellator var18 = Tessellator.field_78398_a;
GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.client.field_6315_n.func_1070_a("/gui/background.png")); GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.client.field_71446_o.func_78341_b("/gui/background.png"));
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
float var17 = 32.0F; float var17 = 32.0F;
var18.func_977_b(); var18.func_78382_b();
var18.func_990_b(2105376); var18.func_78378_d(2105376);
var18.func_983_a((double)this.left, (double)this.bottom, 0.0D, (double)((float)this.left / var17), (double)((float)(this.bottom + (int)this.scrollDistance) / var17)); var18.func_78374_a((double)this.left, (double)this.bottom, 0.0D, (double)((float)this.left / var17), (double)((float)(this.bottom + (int)this.scrollDistance) / var17));
var18.func_983_a((double)this.right, (double)this.bottom, 0.0D, (double)((float)this.right / var17), (double)((float)(this.bottom + (int)this.scrollDistance) / var17)); var18.func_78374_a((double)this.right, (double)this.bottom, 0.0D, (double)((float)this.right / var17), (double)((float)(this.bottom + (int)this.scrollDistance) / var17));
var18.func_983_a((double)this.right, (double)this.top, 0.0D, (double)((float)this.right / var17), (double)((float)(this.top + (int)this.scrollDistance) / var17)); var18.func_78374_a((double)this.right, (double)this.top, 0.0D, (double)((float)this.right / var17), (double)((float)(this.top + (int)this.scrollDistance) / var17));
var18.func_983_a((double)this.left, (double)this.top, 0.0D, (double)((float)this.left / var17), (double)((float)(this.top + (int)this.scrollDistance) / var17)); var18.func_78374_a((double)this.left, (double)this.top, 0.0D, (double)((float)this.left / var17), (double)((float)(this.top + (int)this.scrollDistance) / var17));
var18.func_982_a(); var18.func_78381_a();
// boxRight = this.listWidth / 2 - 92 - 16; // boxRight = this.listWidth / 2 - 92 - 16;
var10 = this.top + 4 - (int)this.scrollDistance; var10 = this.top + 4 - (int)this.scrollDistance;
@ -283,18 +283,18 @@ public abstract class GuiScrollingList
int var15 = boxRight; int var15 = boxRight;
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_TEXTURE_2D);
var18.func_977_b(); var18.func_78382_b();
var18.func_990_b(8421504); var18.func_78378_d(8421504);
var18.func_983_a((double)var14, (double)(var19 + var13 + 2), 0.0D, 0.0D, 1.0D); var18.func_78374_a((double)var14, (double)(var19 + var13 + 2), 0.0D, 0.0D, 1.0D);
var18.func_983_a((double)var15, (double)(var19 + var13 + 2), 0.0D, 1.0D, 1.0D); var18.func_78374_a((double)var15, (double)(var19 + var13 + 2), 0.0D, 1.0D, 1.0D);
var18.func_983_a((double)var15, (double)(var19 - 2), 0.0D, 1.0D, 0.0D); var18.func_78374_a((double)var15, (double)(var19 - 2), 0.0D, 1.0D, 0.0D);
var18.func_983_a((double)var14, (double)(var19 - 2), 0.0D, 0.0D, 0.0D); var18.func_78374_a((double)var14, (double)(var19 - 2), 0.0D, 0.0D, 0.0D);
var18.func_990_b(0); var18.func_78378_d(0);
var18.func_983_a((double)(var14 + 1), (double)(var19 + var13 + 1), 0.0D, 0.0D, 1.0D); var18.func_78374_a((double)(var14 + 1), (double)(var19 + var13 + 1), 0.0D, 0.0D, 1.0D);
var18.func_983_a((double)(var15 - 1), (double)(var19 + var13 + 1), 0.0D, 1.0D, 1.0D); var18.func_78374_a((double)(var15 - 1), (double)(var19 + var13 + 1), 0.0D, 1.0D, 1.0D);
var18.func_983_a((double)(var15 - 1), (double)(var19 - 1), 0.0D, 1.0D, 0.0D); var18.func_78374_a((double)(var15 - 1), (double)(var19 - 1), 0.0D, 1.0D, 0.0D);
var18.func_983_a((double)(var14 + 1), (double)(var19 - 1), 0.0D, 0.0D, 0.0D); var18.func_78374_a((double)(var14 + 1), (double)(var19 - 1), 0.0D, 0.0D, 0.0D);
var18.func_982_a(); var18.func_78381_a();
GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_TEXTURE_2D);
} }
@ -311,22 +311,22 @@ public abstract class GuiScrollingList
GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_TEXTURE_2D);
var18.func_977_b(); var18.func_78382_b();
var18.func_6513_a(0, 0); var18.func_78384_a(0, 0);
var18.func_983_a((double)this.left, (double)(this.top + var20), 0.0D, 0.0D, 1.0D); var18.func_78374_a((double)this.left, (double)(this.top + var20), 0.0D, 0.0D, 1.0D);
var18.func_983_a((double)this.right, (double)(this.top + var20), 0.0D, 1.0D, 1.0D); var18.func_78374_a((double)this.right, (double)(this.top + var20), 0.0D, 1.0D, 1.0D);
var18.func_6513_a(0, 255); var18.func_78384_a(0, 255);
var18.func_983_a((double)this.right, (double)this.top, 0.0D, 1.0D, 0.0D); var18.func_78374_a((double)this.right, (double)this.top, 0.0D, 1.0D, 0.0D);
var18.func_983_a((double)this.left, (double)this.top, 0.0D, 0.0D, 0.0D); var18.func_78374_a((double)this.left, (double)this.top, 0.0D, 0.0D, 0.0D);
var18.func_982_a(); var18.func_78381_a();
var18.func_977_b(); var18.func_78382_b();
var18.func_6513_a(0, 255); var18.func_78384_a(0, 255);
var18.func_983_a((double)this.left, (double)this.bottom, 0.0D, 0.0D, 1.0D); var18.func_78374_a((double)this.left, (double)this.bottom, 0.0D, 0.0D, 1.0D);
var18.func_983_a((double)this.right, (double)this.bottom, 0.0D, 1.0D, 1.0D); var18.func_78374_a((double)this.right, (double)this.bottom, 0.0D, 1.0D, 1.0D);
var18.func_6513_a(0, 0); var18.func_78384_a(0, 0);
var18.func_983_a((double)this.right, (double)(this.bottom - var20), 0.0D, 1.0D, 0.0D); var18.func_78374_a((double)this.right, (double)(this.bottom - var20), 0.0D, 1.0D, 0.0D);
var18.func_983_a((double)this.left, (double)(this.bottom - var20), 0.0D, 0.0D, 0.0D); var18.func_78374_a((double)this.left, (double)(this.bottom - var20), 0.0D, 0.0D, 0.0D);
var18.func_982_a(); var18.func_78381_a();
var19 = this.getContentHeight() - (this.bottom - this.top - 4); var19 = this.getContentHeight() - (this.bottom - this.top - 4);
if (var19 > 0) if (var19 > 0)
@ -350,27 +350,27 @@ public abstract class GuiScrollingList
var14 = this.top; var14 = this.top;
} }
var18.func_977_b(); var18.func_78382_b();
var18.func_6513_a(0, 255); var18.func_78384_a(0, 255);
var18.func_983_a((double)scrollBarXStart, (double)this.bottom, 0.0D, 0.0D, 1.0D); var18.func_78374_a((double)scrollBarXStart, (double)this.bottom, 0.0D, 0.0D, 1.0D);
var18.func_983_a((double)scrollBarXEnd, (double)this.bottom, 0.0D, 1.0D, 1.0D); var18.func_78374_a((double)scrollBarXEnd, (double)this.bottom, 0.0D, 1.0D, 1.0D);
var18.func_983_a((double)scrollBarXEnd, (double)this.top, 0.0D, 1.0D, 0.0D); var18.func_78374_a((double)scrollBarXEnd, (double)this.top, 0.0D, 1.0D, 0.0D);
var18.func_983_a((double)scrollBarXStart, (double)this.top, 0.0D, 0.0D, 0.0D); var18.func_78374_a((double)scrollBarXStart, (double)this.top, 0.0D, 0.0D, 0.0D);
var18.func_982_a(); var18.func_78381_a();
var18.func_977_b(); var18.func_78382_b();
var18.func_6513_a(8421504, 255); var18.func_78384_a(8421504, 255);
var18.func_983_a((double)scrollBarXStart, (double)(var14 + var13), 0.0D, 0.0D, 1.0D); var18.func_78374_a((double)scrollBarXStart, (double)(var14 + var13), 0.0D, 0.0D, 1.0D);
var18.func_983_a((double)scrollBarXEnd, (double)(var14 + var13), 0.0D, 1.0D, 1.0D); var18.func_78374_a((double)scrollBarXEnd, (double)(var14 + var13), 0.0D, 1.0D, 1.0D);
var18.func_983_a((double)scrollBarXEnd, (double)var14, 0.0D, 1.0D, 0.0D); var18.func_78374_a((double)scrollBarXEnd, (double)var14, 0.0D, 1.0D, 0.0D);
var18.func_983_a((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D); var18.func_78374_a((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D);
var18.func_982_a(); var18.func_78381_a();
var18.func_977_b(); var18.func_78382_b();
var18.func_6513_a(12632256, 255); var18.func_78384_a(12632256, 255);
var18.func_983_a((double)scrollBarXStart, (double)(var14 + var13 - 1), 0.0D, 0.0D, 1.0D); var18.func_78374_a((double)scrollBarXStart, (double)(var14 + var13 - 1), 0.0D, 0.0D, 1.0D);
var18.func_983_a((double)(scrollBarXEnd - 1), (double)(var14 + var13 - 1), 0.0D, 1.0D, 1.0D); var18.func_78374_a((double)(scrollBarXEnd - 1), (double)(var14 + var13 - 1), 0.0D, 1.0D, 1.0D);
var18.func_983_a((double)(scrollBarXEnd - 1), (double)var14, 0.0D, 1.0D, 0.0D); var18.func_78374_a((double)(scrollBarXEnd - 1), (double)var14, 0.0D, 1.0D, 0.0D);
var18.func_983_a((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D); var18.func_78374_a((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D);
var18.func_982_a(); var18.func_78381_a();
} }
this.func_27257_b(mouseX, mouseY); this.func_27257_b(mouseX, mouseY);
@ -382,17 +382,17 @@ public abstract class GuiScrollingList
private void overlayBackground(int p_22239_1_, int p_22239_2_, int p_22239_3_, int p_22239_4_) private void overlayBackground(int p_22239_1_, int p_22239_2_, int p_22239_3_, int p_22239_4_)
{ {
Tessellator var5 = Tessellator.field_1512_a; Tessellator var5 = Tessellator.field_78398_a;
GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.client.field_6315_n.func_1070_a("/gui/background.png")); GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.client.field_71446_o.func_78341_b("/gui/background.png"));
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
float var6 = 32.0F; float var6 = 32.0F;
var5.func_977_b(); var5.func_78382_b();
var5.func_6513_a(4210752, p_22239_4_); var5.func_78384_a(4210752, p_22239_4_);
var5.func_983_a(0.0D, (double)p_22239_2_, 0.0D, 0.0D, (double)((float)p_22239_2_ / var6)); var5.func_78374_a(0.0D, (double)p_22239_2_, 0.0D, 0.0D, (double)((float)p_22239_2_ / var6));
var5.func_983_a((double)this.listWidth + 30, (double)p_22239_2_, 0.0D, (double)((float)(this.listWidth + 30) / var6), (double)((float)p_22239_2_ / var6)); var5.func_78374_a((double)this.listWidth + 30, (double)p_22239_2_, 0.0D, (double)((float)(this.listWidth + 30) / var6), (double)((float)p_22239_2_ / var6));
var5.func_6513_a(4210752, p_22239_3_); var5.func_78384_a(4210752, p_22239_3_);
var5.func_983_a((double)this.listWidth + 30, (double)p_22239_1_, 0.0D, (double)((float)(this.listWidth + 30) / var6), (double)((float)p_22239_1_ / var6)); var5.func_78374_a((double)this.listWidth + 30, (double)p_22239_1_, 0.0D, (double)((float)(this.listWidth + 30) / var6), (double)((float)p_22239_1_ / var6));
var5.func_983_a(0.0D, (double)p_22239_1_, 0.0D, 0.0D, (double)((float)p_22239_1_ / var6)); var5.func_78374_a(0.0D, (double)p_22239_1_, 0.0D, 0.0D, (double)((float)p_22239_1_ / var6));
var5.func_982_a(); var5.func_78381_a();
} }
} }

View File

@ -37,7 +37,7 @@ public class GuiSlotModList extends GuiScrollingList
public GuiSlotModList(GuiModList parent, ArrayList<ModContainer> mods, int listWidth) public GuiSlotModList(GuiModList parent, ArrayList<ModContainer> mods, int listWidth)
{ {
super(parent.getMinecraftInstance(), listWidth, parent.field_950_d, 32, parent.field_950_d - 65 + 4, 10, 35); super(parent.getMinecraftInstance(), listWidth, parent.field_73881_g, 32, parent.field_73881_g - 65 + 4, 10, 35);
this.parent=parent; this.parent=parent;
this.mods=mods; this.mods=mods;
} }
@ -63,7 +63,7 @@ public class GuiSlotModList extends GuiScrollingList
@Override @Override
protected void drawBackground() protected void drawBackground()
{ {
this.parent.func_578_i(); this.parent.func_73873_v_();
} }
@Override @Override
@ -71,22 +71,22 @@ public class GuiSlotModList extends GuiScrollingList
{ {
return (this.getSize()) * 35 + 1; return (this.getSize()) * 35 + 1;
} }
@Override @Override
protected void drawSlot(int listIndex, int var2, int var3, int var4, Tessellator var5) protected void drawSlot(int listIndex, int var2, int var3, int var4, Tessellator var5)
{ {
ModContainer mc=mods.get(listIndex); ModContainer mc=mods.get(listIndex);
if (Loader.instance().getModState(mc)==ModState.DISABLED) if (Loader.instance().getModState(mc)==ModState.DISABLED)
{ {
this.parent.getFontRenderer().func_873_b(this.parent.getFontRenderer().func_50107_a(mc.getName(), listWidth - 11), this.left + 3 , var3 + 2, 0xFF2222); this.parent.getFontRenderer().func_78276_b(this.parent.getFontRenderer().func_78269_a(mc.getName(), listWidth - 11), this.left + 3 , var3 + 2, 0xFF2222);
this.parent.getFontRenderer().func_873_b(this.parent.getFontRenderer().func_50107_a(mc.getVersion(), listWidth - 11), this.left + 3 , var3 + 12, 0xFF2222); this.parent.getFontRenderer().func_78276_b(this.parent.getFontRenderer().func_78269_a(mc.getVersion(), listWidth - 11), this.left + 3 , var3 + 12, 0xFF2222);
this.parent.getFontRenderer().func_873_b(this.parent.getFontRenderer().func_50107_a("DISABLED", listWidth - 11), this.left + 3 , var3 + 22, 0xFF2222); this.parent.getFontRenderer().func_78276_b(this.parent.getFontRenderer().func_78269_a("DISABLED", listWidth - 11), this.left + 3 , var3 + 22, 0xFF2222);
} }
else else
{ {
this.parent.getFontRenderer().func_873_b(this.parent.getFontRenderer().func_50107_a(mc.getName(), listWidth - 11), this.left + 3 , var3 + 2, 0xFFFFFF); this.parent.getFontRenderer().func_78276_b(this.parent.getFontRenderer().func_78269_a(mc.getName(), listWidth - 11), this.left + 3 , var3 + 2, 0xFFFFFF);
this.parent.getFontRenderer().func_873_b(this.parent.getFontRenderer().func_50107_a(mc.getVersion(), listWidth - 11), this.left + 3 , var3 + 12, 0xCCCCCC); this.parent.getFontRenderer().func_78276_b(this.parent.getFontRenderer().func_78269_a(mc.getVersion(), listWidth - 11), this.left + 3 , var3 + 12, 0xCCCCCC);
this.parent.getFontRenderer().func_873_b(this.parent.getFontRenderer().func_50107_a(mc.getMetadata() !=null ? mc.getMetadata().getChildModCountString() : "Metadata not found", listWidth - 9), this.left + 3 , var3 + 22, 0xCCCCCC); this.parent.getFontRenderer().func_78276_b(this.parent.getFontRenderer().func_78269_a(mc.getMetadata() !=null ? mc.getMetadata().getChildModCountString() : "Metadata not found", listWidth - 9), this.left + 3 , var3 + 22, 0xCCCCCC);
} }
} }

View File

@ -51,7 +51,7 @@ public class ModLoaderKeyBindingHandler extends KeyBindingRegistry.KeyHandler
{ {
((net.minecraft.src.BaseMod)modContainer.getMod()).keyboardEvent(keyBinding); ((net.minecraft.src.BaseMod)modContainer.getMod()).keyboardEvent(keyBinding);
} }
@Override @Override
public void keyDown(EnumSet<TickType> type, boolean end, boolean repeats) public void keyDown(EnumSet<TickType> type, boolean end, boolean repeats)
{ {
@ -99,6 +99,6 @@ public class ModLoaderKeyBindingHandler extends KeyBindingRegistry.KeyHandler
@Override @Override
public String getLabel() public String getLabel()
{ {
return modContainer.getModId() +" KB "+keyBinding.field_1371_a; return modContainer.getModId() +" KB "+keyBinding.field_74512_d;
} }
} }

View File

@ -0,0 +1,342 @@
package cpw.mods.fml.client;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_BINDING_2D;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import javax.imageio.ImageIO;
import org.lwjgl.opengl.GL11;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import net.minecraft.client.Minecraft;
import net.minecraft.src.KeyBinding;
import net.minecraft.src.ModTextureStatic;
import net.minecraft.src.Profiler;
import net.minecraft.src.RenderEngine;
import net.minecraft.src.TextureFX;
import net.minecraft.src.TexturePackBase;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.ModContainer;
public class TextureFXManager
{
private static final TextureFXManager INSTANCE = new TextureFXManager();
private class TextureProperties
{
private int textureId;
private Dimension dim;
}
private Map<Integer,TextureProperties> textureProperties = Maps.newHashMap();
private Multimap<String, OverrideInfo> overrideInfo = ArrayListMultimap.create();
private HashSet<OverrideInfo> animationSet = new HashSet<OverrideInfo>();
private List<TextureFX> addedTextureFX = new ArrayList<TextureFX>();
private Minecraft client;
public boolean onUpdateTextureEffect(TextureFX effect)
{
ITextureFX ifx = (effect instanceof ITextureFX ? ((ITextureFX)effect) : null);
if (ifx != null && ifx.getErrored())
{
return false;
}
String name = effect.getClass().getSimpleName();
FMLClientHandler.instance().profileStart(name);
try
{
if (!FMLClientHandler.instance().hasOptifine())
{
effect.func_76846_a();
}
}
catch (Exception e)
{
FMLLog.warning("Texture FX %s has failed to animate. Likely caused by a texture pack change that they did not respond correctly to", name);
if (ifx != null)
{
ifx.setErrored(true);
}
FMLClientHandler.instance().profileEnd();
return false;
}
FMLClientHandler.instance().profileEnd();
if (ifx != null)
{
Dimension dim = getTextureDimensions(effect);
int target = ((dim.width >> 4) * (dim.height >> 4)) << 2;
if (effect.field_76852_a.length != target)
{
FMLLog.warning("Detected a texture FX sizing discrepancy in %s (%d, %d)", name, effect.field_76852_a.length, target);
ifx.setErrored(true);
return false;
}
}
return true;
}
//Quick and dirty image scaling, no smoothing or fanciness, meant for speed as it will be called every tick.
public void scaleTextureFXData(byte[] data, ByteBuffer buf, int target, int length)
{
int sWidth = (int)Math.sqrt(data.length / 4);
int factor = target / sWidth;
byte[] tmp = new byte[4];
buf.clear();
if (factor > 1)
{
for (int y = 0; y < sWidth; y++)
{
int sRowOff = sWidth * y;
int tRowOff = target * y * factor;
for (int x = 0; x < sWidth; x++)
{
int sPos = (x + sRowOff) * 4;
tmp[0] = data[sPos + 0];
tmp[1] = data[sPos + 1];
tmp[2] = data[sPos + 2];
tmp[3] = data[sPos + 3];
int tPosTop = (x * factor) + tRowOff;
for (int y2 = 0; y2 < factor; y2++)
{
buf.position((tPosTop + (y2 * target)) * 4);
for (int x2 = 0; x2 < factor; x2++)
{
buf.put(tmp);
}
}
}
}
}
buf.position(0).limit(length);
}
public void onPreRegisterEffect(TextureFX effect)
{
Dimension dim = getTextureDimensions(effect);
if (effect instanceof ITextureFX)
{
((ITextureFX)effect).onTextureDimensionsUpdate(dim.width, dim.height);
}
}
public int getEffectTexture(TextureFX effect)
{
Integer id = effectTextures.get(effect);
if (id != null)
{
return id;
}
int old = GL11.glGetInteger(GL_TEXTURE_BINDING_2D);
effect.func_76845_a(client.field_71446_o);
id = GL11.glGetInteger(GL_TEXTURE_BINDING_2D);
GL11.glBindTexture(GL_TEXTURE_2D, old);
effectTextures.put(effect, id);
return id;
}
public void onTexturePackChange(RenderEngine engine, TexturePackBase texturepack, List<TextureFX> effects)
{
pruneOldTextureFX(texturepack, effects);
for (TextureFX tex : effects)
{
if (tex instanceof ITextureFX)
{
((ITextureFX)tex).onTexturePackChanged(engine, texturepack, getTextureDimensions(tex));
}
}
loadTextures(texturepack);
}
private HashMap<Integer, Dimension> textureDims = new HashMap<Integer, Dimension>();
private IdentityHashMap<TextureFX, Integer> effectTextures = new IdentityHashMap<TextureFX, Integer>();
private TexturePackBase earlyTexturePack;
public void setTextureDimensions(int id, int width, int height, List<TextureFX> effects)
{
Dimension dim = new Dimension(width, height);
textureDims.put(id, dim);
for (TextureFX tex : effects)
{
if (getEffectTexture(tex) == id && tex instanceof ITextureFX)
{
((ITextureFX)tex).onTextureDimensionsUpdate(width, height);
}
}
}
public Dimension getTextureDimensions(TextureFX effect)
{
return getTextureDimensions(getEffectTexture(effect));
}
public Dimension getTextureDimensions(int id)
{
return textureDims.get(id);
}
/**
* @param anim
*/
public void addAnimation(TextureFX anim)
{
OverrideInfo info=new OverrideInfo();
info.index=anim.field_76850_b;
info.imageIndex=anim.field_76847_f;
info.textureFX=anim;
if (animationSet.contains(info)) {
animationSet.remove(info);
}
animationSet.add(info);
}
/**
* @param p_6531_1_
*/
public void loadTextures(TexturePackBase texturePack)
{
registerTextureOverrides(client.field_71446_o);
}
public void registerTextureOverrides(RenderEngine renderer) {
for (ModContainer mod : Loader.instance().getActiveModList()) {
registerAnimatedTexturesFor(mod);
}
for (OverrideInfo animationOverride : animationSet) {
renderer.func_78355_a(animationOverride.textureFX);
addedTextureFX.add(animationOverride.textureFX);
FMLCommonHandler.instance().getFMLLogger().finer(String.format("Registered texture override %d (%d) on %s (%d)", animationOverride.index, animationOverride.textureFX.field_76850_b, animationOverride.textureFX.getClass().getSimpleName(), animationOverride.textureFX.field_76847_f));
}
for (String fileToOverride : overrideInfo.keySet()) {
for (OverrideInfo override : overrideInfo.get(fileToOverride)) {
try
{
BufferedImage image=loadImageFromTexturePack(renderer, override.override);
ModTextureStatic mts=new ModTextureStatic(override.index, 1, override.texture, image);
renderer.func_78355_a(mts);
addedTextureFX.add(mts);
FMLCommonHandler.instance().getFMLLogger().finer(String.format("Registered texture override %d (%d) on %s (%d)", override.index, mts.field_76850_b, override.texture, mts.field_76847_f));
}
catch (IOException e)
{
FMLCommonHandler.instance().getFMLLogger().throwing("FMLClientHandler", "registerTextureOverrides", e);
}
}
}
}
/**
* @param mod
*/
private void registerAnimatedTexturesFor(ModContainer mod)
{
}
/**
* @param field_6539_c
*/
public void onEarlyTexturePackLoad(TexturePackBase fallback)
{
if (client==null) {
// We're far too early- let's wait
this.earlyTexturePack = fallback;
} else {
loadTextures(fallback);
}
}
public void pruneOldTextureFX(TexturePackBase var1, List<TextureFX> effects)
{
ListIterator<TextureFX> li = addedTextureFX.listIterator();
while (li.hasNext())
{
TextureFX tex = li.next();
if (tex instanceof FMLTextureFX)
{
if (((FMLTextureFX)tex).unregister(client.field_71446_o, effects))
{
li.remove();
}
}
else
{
effects.remove(tex);
li.remove();
}
}
}
public void addNewTextureOverride(String textureToOverride, String overridingTexturePath, int location) {
OverrideInfo info = new OverrideInfo();
info.index = location;
info.override = overridingTexturePath;
info.texture = textureToOverride;
overrideInfo.put(textureToOverride, info);
FMLLog.fine("Overriding %s @ %d with %s. %d slots remaining",textureToOverride, location, overridingTexturePath, SpriteHelper.freeSlotCount(textureToOverride));
}
/**
* @param renderEngine
* @param path
* @return
*/
public BufferedImage loadImageFromTexturePack(RenderEngine renderEngine, String path) throws IOException
{
InputStream image=client.field_71418_C.func_77292_e().func_77532_a(path);
if (image==null) {
throw new RuntimeException(String.format("The requested image path %s is not found",path));
}
BufferedImage result=ImageIO.read(image);
if (result==null)
{
throw new RuntimeException(String.format("The requested image path %s appears to be corrupted",path));
}
return result;
}
public static TextureFXManager instance()
{
return INSTANCE;
}
}

View File

@ -23,33 +23,33 @@ public class KeyBindingRegistry
protected KeyBinding keyBinding; protected KeyBinding keyBinding;
protected boolean keyDown; protected boolean keyDown;
protected boolean repeating; protected boolean repeating;
public KeyHandler(KeyBinding keyBinding, boolean repeating) public KeyHandler(KeyBinding keyBinding, boolean repeating)
{ {
this.keyBinding = keyBinding; this.keyBinding = keyBinding;
this.repeating = repeating; this.repeating = repeating;
} }
public KeyBinding getKeyBinding() public KeyBinding getKeyBinding()
{ {
return this.keyBinding; return this.keyBinding;
} }
@Override @Override
public final void tickStart(EnumSet<TickType> type, Object... tickData) public final void tickStart(EnumSet<TickType> type, Object... tickData)
{ {
keyTick(type, false); keyTick(type, false);
} }
@Override @Override
public final void tickEnd(EnumSet<TickType> type, Object... tickData) public final void tickEnd(EnumSet<TickType> type, Object... tickData)
{ {
keyTick(type, true); keyTick(type, true);
} }
private void keyTick(EnumSet<TickType> type, boolean tickEnd) private void keyTick(EnumSet<TickType> type, boolean tickEnd)
{ {
int keyCode = keyBinding.field_1370_b; int keyCode = keyBinding.field_74512_d;
boolean state = (keyCode < 0 ? Mouse.isButtonDown(keyCode + 100) : Keyboard.isKeyDown(keyCode)); boolean state = (keyCode < 0 ? Mouse.isButtonDown(keyCode + 100) : Keyboard.isKeyDown(keyCode));
if (state != keyDown || (state && repeating)) if (state != keyDown || (state && repeating))
{ {
@ -64,17 +64,17 @@ public class KeyBindingRegistry
keyDown = state; keyDown = state;
} }
} }
public abstract void keyDown(EnumSet<TickType> types, boolean tickEnd, boolean isRepeat); public abstract void keyDown(EnumSet<TickType> types, boolean tickEnd, boolean isRepeat);
public abstract void keyUp(EnumSet<TickType> types, boolean tickEnd); public abstract void keyUp(EnumSet<TickType> types, boolean tickEnd);
} }
private static List<KeyHandler> keyHandlers = Lists.newArrayList(); private static List<KeyHandler> keyHandlers = Lists.newArrayList();
public static void registerKeyBinding(KeyHandler handler) { public static void registerKeyBinding(KeyHandler handler) {
keyHandlers.add(handler); keyHandlers.add(handler);
} }
public static void uploadKeyBindingsToGame(GameSettings settings) public static void uploadKeyBindingsToGame(GameSettings settings)
{ {
ArrayList<KeyBinding> harvestedBindings = Lists.newArrayList(); ArrayList<KeyBinding> harvestedBindings = Lists.newArrayList();
@ -83,10 +83,10 @@ public class KeyBindingRegistry
harvestedBindings.add(key.keyBinding); harvestedBindings.add(key.keyBinding);
} }
KeyBinding[] modKeyBindings = harvestedBindings.toArray(new KeyBinding[harvestedBindings.size()]); KeyBinding[] modKeyBindings = harvestedBindings.toArray(new KeyBinding[harvestedBindings.size()]);
KeyBinding[] allKeys = new KeyBinding[settings.field_1564_t.length + modKeyBindings.length]; KeyBinding[] allKeys = new KeyBinding[settings.field_74324_K.length + modKeyBindings.length];
System.arraycopy(settings.field_1564_t, 0, allKeys, 0, settings.field_1564_t.length); System.arraycopy(settings.field_74324_K, 0, allKeys, 0, settings.field_74324_K.length);
System.arraycopy(modKeyBindings, 0, allKeys, settings.field_1564_t.length, modKeyBindings.length); System.arraycopy(modKeyBindings, 0, allKeys, settings.field_74324_K.length, modKeyBindings.length);
settings.field_1564_t = allKeys; settings.field_74324_K = allKeys;
settings.func_6519_a(); settings.func_74300_a();
} }
} }

View File

@ -54,7 +54,7 @@ public abstract class BaseMod implements cpw.mods.fml.common.modloader.BaseMod
{ {
Minecraft mc = (Minecraft) minecraftInstance; Minecraft mc = (Minecraft) minecraftInstance;
if (tickEnd && ( tick==TickType.RENDER || tick==TickType.GAME ) || tick == TickType.GUILOAD) { if (tickEnd && ( tick==TickType.RENDER || tick==TickType.GAME ) || tick == TickType.GUILOAD) {
return onTickInGUI((Float) data[0], mc, mc.field_6313_p); return onTickInGUI((Float) data[0], mc, mc.field_71462_r);
} }
return true; return true;
} }
@ -97,7 +97,7 @@ public abstract class BaseMod implements cpw.mods.fml.common.modloader.BaseMod
@Override @Override
public final boolean onChat(Object... data) public final boolean onChat(Object... data)
{ {
receiveChatPacket(((Packet3Chat)data[0]).field_517_a); receiveChatPacket(((Packet3Chat)data[0]).field_73476_b);
return true; return true;
} }
@ -140,7 +140,7 @@ public abstract class BaseMod implements cpw.mods.fml.common.modloader.BaseMod
{ {
EntityItem item = (EntityItem) pickupData[0]; EntityItem item = (EntityItem) pickupData[0];
EntityPlayer player = (EntityPlayer) pickupData[1]; EntityPlayer player = (EntityPlayer) pickupData[1];
onItemPickup(player, item.field_801_a); onItemPickup(player, item.field_70294_a);
} }
@Override @Override

View File

@ -17,25 +17,25 @@ public class ClientRegistry implements IMinecraftRegistry
@Override @Override
public void addRecipe(ItemStack output, Object... params) public void addRecipe(ItemStack output, Object... params)
{ {
CraftingManager.func_1120_a().func_1121_a(output, params); CraftingManager.func_77594_a().func_77595_a(output, params);
} }
@Override @Override
public void addShapelessRecipe(ItemStack output, Object... params) public void addShapelessRecipe(ItemStack output, Object... params)
{ {
CraftingManager.func_1120_a().func_21187_b(output, params); CraftingManager.func_77594_a().func_77596_b(output, params);
} }
@Override @Override
public void addRecipe(IRecipe recipe) public void addRecipe(IRecipe recipe)
{ {
CraftingManager.func_1120_a().func_25193_b().add(recipe); CraftingManager.func_77594_a().func_77592_b().add(recipe);
} }
@Override @Override
public void addSmelting(int input, ItemStack output) public void addSmelting(int input, ItemStack output, float xp)
{ {
FurnaceRecipes.func_21200_a().func_21199_a(input, output); FurnaceRecipes.func_77602_a().func_77600_a(input, output, xp);
} }
@Override @Override

View File

@ -20,17 +20,17 @@ public class EntityRendererProxy extends EntityRenderer
{ {
private Minecraft game; private Minecraft game;
public EntityRendererProxy(Minecraft minecraft) public EntityRendererProxy(Minecraft minecraft)
{ {
super(minecraft); super(minecraft);
game = minecraft; game = minecraft;
} }
@Override @Override
public void func_4136_b(float tick) public void func_78480_b(float tick)
{ {
super.func_4136_b(tick); super.func_78480_b(tick);
//This is where ModLoader does all of it's ticking //This is where ModLoader does all of it's ticking
} }
} }

View File

@ -19,13 +19,15 @@ import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import cpw.mods.fml.client.BlockRenderManager;
import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.TextureFXManager;
import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLCommonHandler;
/** /**
* *
* A static hook library for optifine and other basemod editing code to access FML functions * A static hook library for optifine and other basemod editing code to access FML functions
* *
* @author cpw * @author cpw
* *
*/ */
@ -35,54 +37,54 @@ public class FMLRenderAccessLibrary
{ {
return FMLCommonHandler.instance().getFMLLogger(); return FMLCommonHandler.instance().getFMLLogger();
} }
public static void log(Level level, String message) public static void log(Level level, String message)
{ {
getLogger().log(level, message); getLogger().log(level, message);
} }
public static void log(Level level, String message, Throwable throwable) public static void log(Level level, String message, Throwable throwable)
{ {
getLogger().log(level, message, throwable); getLogger().log(level, message, throwable);
} }
public static void setTextureDimensions(int textureId, int width, int height, List<TextureFX> textureFXList) public static void setTextureDimensions(int textureId, int width, int height, List<TextureFX> textureFXList)
{ {
FMLClientHandler.instance().setTextureDimensions(textureId, width, height, textureFXList); TextureFXManager.instance().setTextureDimensions(textureId, width, height, textureFXList);
} }
public static void preRegisterEffect(TextureFX textureFX) public static void preRegisterEffect(TextureFX textureFX)
{ {
FMLClientHandler.instance().onPreRegisterEffect(textureFX); TextureFXManager.instance().onPreRegisterEffect(textureFX);
} }
public static boolean onUpdateTextureEffect(TextureFX textureFX) public static boolean onUpdateTextureEffect(TextureFX textureFX)
{ {
return FMLClientHandler.instance().onUpdateTextureEffect(textureFX); return TextureFXManager.instance().onUpdateTextureEffect(textureFX);
} }
public static Dimension getTextureDimensions(TextureFX textureFX) public static Dimension getTextureDimensions(TextureFX textureFX)
{ {
return FMLClientHandler.instance().getTextureDimensions(textureFX); return TextureFXManager.instance().getTextureDimensions(textureFX);
} }
public static void onTexturePackChange(RenderEngine engine, TexturePackBase texturePack, List<TextureFX> textureFXList) public static void onTexturePackChange(RenderEngine engine, TexturePackBase texturePack, List<TextureFX> textureFXList)
{ {
FMLClientHandler.instance().onTexturePackChange(engine, texturePack, textureFXList); TextureFXManager.instance().onTexturePackChange(engine, texturePack, textureFXList);
} }
public static boolean renderWorldBlock(RenderBlocks renderer, IBlockAccess world, int x, int y, int z, Block block, int modelId) public static boolean renderWorldBlock(RenderBlocks renderer, IBlockAccess world, int x, int y, int z, Block block, int modelId)
{ {
return FMLClientHandler.instance().renderWorldBlock(renderer, world, x, y, z, block, modelId); return BlockRenderManager.instance().renderWorldBlock(renderer, world, x, y, z, block, modelId);
} }
public static void renderInventoryBlock(RenderBlocks renderer, Block block, int metadata, int modelID) public static void renderInventoryBlock(RenderBlocks renderer, Block block, int metadata, int modelID)
{ {
FMLClientHandler.instance().renderInventoryBlock(renderer, block, metadata, modelID); BlockRenderManager.instance().renderInventoryBlock(renderer, block, metadata, modelID);
} }
public static boolean renderItemAsFull3DBlock(int modelId) public static boolean renderItemAsFull3DBlock(int modelId)
{ {
return FMLClientHandler.instance().renderItemAsFull3DBlock(modelId); return BlockRenderManager.instance().renderItemAsFull3DBlock(modelId);
} }
} }

View File

@ -22,8 +22,10 @@ import java.util.logging.Logger;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import cpw.mods.fml.client.BlockRenderManager;
import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.SpriteHelper; import cpw.mods.fml.client.SpriteHelper;
import cpw.mods.fml.client.TextureFXManager;
import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.modloader.ModLoaderHelper; import cpw.mods.fml.common.modloader.ModLoaderHelper;
@ -72,7 +74,7 @@ public class ModLoader
public static void addAnimation(TextureFX anim) public static void addAnimation(TextureFX anim)
{ {
FMLClientHandler.instance().addAnimation(anim); TextureFXManager.instance().addAnimation(anim);
} }
/** /**
@ -165,7 +167,7 @@ public class ModLoader
*/ */
public static void addOverride(String path, String overlayPath, int index) public static void addOverride(String path, String overlayPath, int index)
{ {
FMLClientHandler.instance().addNewTextureOverride(path, overlayPath, index); TextureFXManager.instance().addNewTextureOverride(path, overlayPath, index);
} }
/** /**
@ -288,7 +290,7 @@ public class ModLoader
*/ */
public static void genericContainerRemoval(World world, int x, int y, int z) public static void genericContainerRemoval(World world, int x, int y, int z)
{ {
TileEntity te = world.func_603_b(x, y, z); /* TileEntity te = world.func_603_b(x, y, z);
if (!(te instanceof IInventory)) if (!(te instanceof IInventory))
{ {
@ -334,7 +336,7 @@ public class ModLoader
world.func_674_a(entityitem); world.func_674_a(entityitem);
} }
} }
} */ }
/** /**
* Get a list of all BaseMod loaded into the system * Get a list of all BaseMod loaded into the system
@ -407,7 +409,7 @@ public class ModLoader
*/ */
public static int getUniqueBlockModelID(BaseMod mod, boolean inventoryRenderer) public static int getUniqueBlockModelID(BaseMod mod, boolean inventoryRenderer)
{ {
return FMLClientHandler.instance().obtainBlockModelIdFor(mod, inventoryRenderer); return BlockRenderManager.instance().obtainBlockModelIdFor(mod, inventoryRenderer);
} }
/** /**
@ -441,7 +443,7 @@ public class ModLoader
public static boolean isGUIOpen(Class<? extends GuiScreen> gui) public static boolean isGUIOpen(Class<? extends GuiScreen> gui)
{ {
return FMLClientHandler.instance().getClient().field_6313_p!=null && FMLClientHandler.instance().getClient().field_6313_p.equals(gui); return FMLClientHandler.instance().getClient().field_71462_r != null && FMLClientHandler.instance().getClient().field_71462_r.equals(gui);
} }
/** /**
@ -466,7 +468,7 @@ public class ModLoader
public static BufferedImage loadImage(RenderEngine renderEngine, String path) throws Exception public static BufferedImage loadImage(RenderEngine renderEngine, String path) throws Exception
{ {
return FMLClientHandler.instance().loadImageFromTexturePack(renderEngine, path); return TextureFXManager.instance().loadImageFromTexturePack(renderEngine, path);
} }
/** /**
@ -659,19 +661,19 @@ public class ModLoader
@Deprecated @Deprecated
public static boolean renderBlockIsItemFull3D(int modelID) public static boolean renderBlockIsItemFull3D(int modelID)
{ {
return FMLClientHandler.instance().renderItemAsFull3DBlock(modelID); return BlockRenderManager.instance().renderItemAsFull3DBlock(modelID);
} }
@Deprecated @Deprecated
public static void renderInvBlock(RenderBlocks renderer, Block block, int metadata, int modelID) public static void renderInvBlock(RenderBlocks renderer, Block block, int metadata, int modelID)
{ {
FMLClientHandler.instance().renderInventoryBlock(renderer, block, metadata, modelID); BlockRenderManager.instance().renderInventoryBlock(renderer, block, metadata, modelID);
} }
@Deprecated @Deprecated
public static boolean renderWorldBlock(RenderBlocks renderer, IBlockAccess world, int x, int y, int z, Block block, int modelID) public static boolean renderWorldBlock(RenderBlocks renderer, IBlockAccess world, int x, int y, int z, Block block, int modelID)
{ {
return FMLClientHandler.instance().renderWorldBlock(renderer, world, x, y, z, block, modelID); return BlockRenderManager.instance().renderWorldBlock(renderer, world, x, y, z, block, modelID);
} }
/** /**

View File

@ -38,8 +38,6 @@ import java.util.zip.ZipException;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream; import java.util.zip.ZipInputStream;
import net.minecraft.src.CallableMinecraftVersion;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder; import com.google.common.collect.ImmutableList.Builder;
@ -310,10 +308,6 @@ public class FMLCommonHandler
return sidedDelegate.getMinecraftLogger(); return sidedDelegate.getMinecraftLogger();
} }
public File getMinecraftRootDirectory() {
return sidedDelegate.getMinecraftRootDirectory();
}
/** /**
* @return * @return
*/ */
@ -455,9 +449,8 @@ public class FMLCommonHandler
if (brandings == null) if (brandings == null)
{ {
Builder brd = ImmutableList.<String>builder(); Builder brd = ImmutableList.<String>builder();
brd.add("Minecraft "+CallableMinecraftVersion.func_55337_a()); brd.add(Loader.instance().getMCVersionString());
brd.add(Loader.instance().getFMLVersionString()); brd.add(Loader.instance().getFMLVersionString());
brd.add(Strings.nullToEmpty((String)callForgeMethod("getVersionString")));
brd.addAll(sidedDelegate.getAdditionalBrandingInformation()); brd.addAll(sidedDelegate.getAdditionalBrandingInformation());
try { try {
Properties props=new Properties(); Properties props=new Properties();

View File

@ -13,16 +13,26 @@ import cpw.mods.fml.common.modloader.ModProperty;
public interface IFMLSidedHandler public interface IFMLSidedHandler
{ {
Logger getMinecraftLogger(); Logger getMinecraftLogger();
File getMinecraftRootDirectory();
Object getMinecraftInstance(); Object getMinecraftInstance();
String getCurrentLanguage(); String getCurrentLanguage();
Properties getCurrentLanguageTable(); Properties getCurrentLanguageTable();
String getObjectName(Object minecraftObject); String getObjectName(Object minecraftObject);
void profileStart(String profileLabel); void profileStart(String profileLabel);
void profileEnd(); void profileEnd();
ModProperty getModLoaderPropertyFor(Field f); ModProperty getModLoaderPropertyFor(Field f);
List<String> getAdditionalBrandingInformation(); List<String> getAdditionalBrandingInformation();
Side getSide(); Side getSide();
ProxyInjector findSidedProxyOn(BaseMod mod); ProxyInjector findSidedProxyOn(BaseMod mod);
void haltGame(String message, Throwable exception); void haltGame(String message, Throwable exception);
} }

View File

@ -132,6 +132,8 @@ public class Loader
private File canonicalModsDir; private File canonicalModsDir;
private LoadController modController; private LoadController modController;
private static File minecraftDir;
public static Loader instance() public static Loader instance()
{ {
if (instance == null) if (instance == null)
@ -142,33 +144,19 @@ public class Loader
return instance; return instance;
} }
public static void injectData(Object... data)
{
major = (String) data[0];
minor = (String) data[1];
rev = (String) data[2];
build = (String) data[3];
mccversion = (String) data[4];
mcsversion = (String) data[5];
minecraftDir = (File) data[6];
}
private Loader() private Loader()
{ {
InputStream stream = getClass().getClassLoader().getResourceAsStream("fmlversion.properties");
Properties properties = new Properties();
if (stream != null)
{
try
{
properties.load(stream);
}
catch (IOException ex)
{
FMLLog.log(Level.SEVERE, "Could not get FML version information - corrupted installation detected!", ex);
throw new LoaderException(ex);
}
}
major = properties.getProperty("fmlbuild.major.number", "missing");
minor = properties.getProperty("fmlbuild.minor.number", "missing");
rev = properties.getProperty("fmlbuild.revision.number", "missing");
build = properties.getProperty("fmlbuild.build.number", "missing");
mccversion = properties.getProperty("fmlbuild.mcclientversion", "missing");
mcsversion = properties.getProperty("fmlbuild.mcserverversion", "missing");
FMLLog.info("Forge Mod Loader version %s.%s.%s.%s for Minecraft client:%s, server:%s loading", major, minor, rev, build, mccversion, mcsversion);
modClassLoader = new ModClassLoader(getClass().getClassLoader()); modClassLoader = new ModClassLoader(getClass().getClassLoader());
} }
@ -279,7 +267,6 @@ public class Loader
*/ */
private void initializeLoader() private void initializeLoader()
{ {
File minecraftDir = FMLCommonHandler.instance().getMinecraftRootDirectory();
File modsDir = new File(minecraftDir, "mods"); File modsDir = new File(minecraftDir, "mods");
File configDir = new File(minecraftDir, "config"); File configDir = new File(minecraftDir, "config");
String canonicalModsPath; String canonicalModsPath;
@ -295,9 +282,8 @@ public class Loader
} }
catch (IOException ioe) catch (IOException ioe)
{ {
FMLLog.log(Level.SEVERE, FMLLog.log(Level.SEVERE, ioe, "Failed to resolve loader directories: mods : %s ; config %s", canonicalModsDir.getAbsolutePath(),
String.format("Failed to resolve loader directories: mods : %s ; config %s", canonicalModsDir.getAbsolutePath(), configDir.getAbsolutePath());
configDir.getAbsolutePath()), ioe);
throw new LoaderException(ioe); throw new LoaderException(ioe);
} }
@ -572,4 +558,9 @@ public class Loader
{ {
return modController.getModState(selectedMod); return modController.getModState(selectedMod);
} }
public String getMCVersionString()
{
return "Minecraft " + mccversion;
}
} }

View File

@ -21,9 +21,9 @@ import cpw.mods.fml.relauncher.ReflectionHelper.UnableToFindFieldException;
/** /**
* Some reflection helper code. * Some reflection helper code.
* *
* @author cpw * @author cpw
* *
*/ */
public class ObfuscationReflectionHelper public class ObfuscationReflectionHelper
{ {
@ -38,8 +38,7 @@ public class ObfuscationReflectionHelper
} }
catch (UnableToAccessFieldException e) catch (UnableToAccessFieldException e)
{ {
FMLCommonHandler.instance().getFMLLogger() FMLLog.log(Level.SEVERE, e, "There was a problem getting field index %d from %s", fieldIndex, classToAccess.getName());
.log(Level.SEVERE, String.format("There was a problem getting field index %d from %s", fieldIndex, classToAccess.getName()), e);
throw e; throw e;
} }
} }
@ -53,14 +52,12 @@ public class ObfuscationReflectionHelper
} }
catch (UnableToFindFieldException e) catch (UnableToFindFieldException e)
{ {
FMLCommonHandler.instance().getFMLLogger() FMLLog.log(Level.SEVERE,e,"Unable to locate any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName());
.log(Level.SEVERE, String.format("Unable to locate any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName()), e);
throw e; throw e;
} }
catch (UnableToAccessFieldException e) catch (UnableToAccessFieldException e)
{ {
FMLCommonHandler.instance().getFMLLogger() FMLLog.log(Level.SEVERE, e, "Unable to access any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName());
.log(Level.SEVERE, String.format("Unable to access any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName()), e);
throw e; throw e;
} }
} }
@ -79,8 +76,7 @@ public class ObfuscationReflectionHelper
} }
catch (UnableToAccessFieldException e) catch (UnableToAccessFieldException e)
{ {
FMLCommonHandler.instance().getFMLLogger() FMLLog.log(Level.SEVERE, e, "There was a problem setting field index %d on type %s", fieldIndex, classToAccess.getName());
.log(Level.SEVERE, String.format("There was a problem setting field index %d on type %s", fieldIndex, classToAccess.getName()));
throw e; throw e;
} }
} }
@ -99,14 +95,12 @@ public class ObfuscationReflectionHelper
} }
catch (UnableToFindFieldException e) catch (UnableToFindFieldException e)
{ {
FMLCommonHandler.instance().getFMLLogger() FMLLog.log(Level.SEVERE, e, "Unable to locate any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName());
.log(Level.SEVERE, String.format("Unable to locate any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName()), e);
throw e; throw e;
} }
catch (UnableToAccessFieldException e) catch (UnableToAccessFieldException e)
{ {
FMLCommonHandler.instance().getFMLLogger() FMLLog.log(Level.SEVERE, e, "Unable to set any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName());
.log(Level.SEVERE, String.format("Unable to set any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName()), e);
throw e; throw e;
} }
} }

View File

@ -5,12 +5,15 @@ import java.applet.AppletStub;
import java.awt.Dialog.ModalityType; import java.awt.Dialog.ModalityType;
import java.awt.HeadlessException; import java.awt.HeadlessException;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.util.Arrays; import java.util.Arrays;
import java.util.Properties;
import java.util.logging.Level;
import javax.swing.JDialog; import javax.swing.JDialog;
import javax.swing.JFrame; import javax.swing.JFrame;
@ -18,8 +21,6 @@ import javax.swing.JLabel;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.ProgressMonitorInputStream; import javax.swing.ProgressMonitorInputStream;
import net.minecraft.src.WorldSettings;
public class FMLEmbeddingRelauncher public class FMLEmbeddingRelauncher
{ {
private static FMLEmbeddingRelauncher INSTANCE; private static FMLEmbeddingRelauncher INSTANCE;
@ -74,7 +75,7 @@ public class FMLEmbeddingRelauncher
File minecraftHome = setupHome(); File minecraftHome = setupHome();
client = ReflectionHelper.getClass(clientLoader, "net.minecraft.client.Minecraft"); client = ReflectionHelper.getClass(clientLoader, "net.minecraft.client.Minecraft");
ReflectionHelper.setPrivateValue(client, null, minecraftHome, "field_6275_Z", "ap", "minecraftDir"); ReflectionHelper.setPrivateValue(client, null, minecraftHome, "field_71463_am", "am", "minecraftDir");
} }
finally finally
{ {
@ -100,7 +101,7 @@ public class FMLEmbeddingRelauncher
{ {
Class<? super Object> mcMaster = ReflectionHelper.getClass(getClass().getClassLoader(), "net.minecraft.client.Minecraft"); Class<? super Object> mcMaster = ReflectionHelper.getClass(getClass().getClassLoader(), "net.minecraft.client.Minecraft");
// We force minecraft to setup it's homedir very early on so we can inject stuff into it // We force minecraft to setup it's homedir very early on so we can inject stuff into it
Method setupHome = ReflectionHelper.findMethod(mcMaster, null, new String[] { "func_6240_b", "getMinecraftDir", "b"} ); Method setupHome = ReflectionHelper.findMethod(mcMaster, null, new String[] { "func_71380_b", "getMinecraftDir", "b"} );
try try
{ {
setupHome.invoke(null); setupHome.invoke(null);
@ -109,9 +110,9 @@ public class FMLEmbeddingRelauncher
{ {
// Hmmm // Hmmm
} }
File minecraftHome = ReflectionHelper.getPrivateValue(mcMaster, null, "field_6275_Z", "ap", "minecraftDir"); File minecraftHome = ReflectionHelper.getPrivateValue(mcMaster, null, "field_71463_am", "am", "minecraftDir");
FMLLog.minecraftHome = minecraftHome; FMLVersionData.build(minecraftHome, clientLoader);
FMLLog.info("FML relaunch active"); FMLLog.info("Forge Mod Loader version %s.%s.%s.%s for Minecraft client:%s, server:%s loading", FMLVersionData.major, FMLVersionData.minor, FMLVersionData.rev, FMLVersionData.build, FMLVersionData.mccversion, FMLVersionData.mcsversion);
try try
{ {

View File

@ -0,0 +1,51 @@
package cpw.mods.fml.relauncher;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.logging.Level;
public class FMLVersionData
{
static File minecraftHome;
static String major;
static String minor;
static String rev;
static String build;
static String mccversion;
static String mcsversion;
static void build(File mcHome, RelaunchClassLoader classLoader)
{
minecraftHome = mcHome;
InputStream stream = classLoader.getResourceAsStream("fmlversion.properties");
Properties properties = new Properties();
if (stream != null)
{
try
{
properties.load(stream);
}
catch (IOException ex)
{
FMLLog.log(Level.SEVERE, ex, "Could not get FML version information - corrupted installation detected!");
}
}
major = properties.getProperty("fmlbuild.major.number", "missing");
minor = properties.getProperty("fmlbuild.minor.number", "missing");
rev = properties.getProperty("fmlbuild.revision.number", "missing");
build = properties.getProperty("fmlbuild.build.number", "missing");
mccversion = properties.getProperty("fmlbuild.mcclientversion", "missing");
mcsversion = properties.getProperty("fmlbuild.mcserverversion", "missing");
}
public static Object[] data()
{
return new Object[] { major, minor, rev, build, mccversion, mcsversion, minecraftHome };
}
}

View File

@ -8,6 +8,7 @@ import java.io.FileOutputStream;
import java.io.FilenameFilter; import java.io.FilenameFilter;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.lang.reflect.Method;
import java.math.BigInteger; import java.math.BigInteger;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URI; import java.net.URI;
@ -191,6 +192,8 @@ public class RelaunchLibraryManager
try try
{ {
Class<?> loaderClazz = Class.forName("cpw.mods.fml.common.Loader", true, actualClassLoader); Class<?> loaderClazz = Class.forName("cpw.mods.fml.common.Loader", true, actualClassLoader);
Method m = loaderClazz.getMethod("injectData", Object[].class);
m.invoke(null, (Object)FMLVersionData.data());
} }
catch (Exception e) catch (Exception e)
{ {

View File

@ -96,6 +96,6 @@ public class mod_testMod extends BaseMod {
@Override @Override
public String getPriorities() public String getPriorities()
{ {
return "after:MockMod@[1.1,1.2),[1.3,)"; return "after:MockMod";
} }
} }

View File

@ -2,7 +2,7 @@
+++ ../src-work/minecraft/net/minecraft/client/ClientBrandRetriever.java 0000-00-00 00:00:00.000000000 -0000 +++ ../src-work/minecraft/net/minecraft/client/ClientBrandRetriever.java 0000-00-00 00:00:00.000000000 -0000
@@ -4,6 +4,6 @@ @@ -4,6 +4,6 @@
{ {
public static String func_56462_getClientModName() public static String getClientModName()
{ {
- return "vanilla"; - return "vanilla";
+ return "fml"; + return "fml";

View File

@ -1,83 +1,32 @@
--- ../src-base/minecraft/net/minecraft/client/Minecraft.java 0000-00-00 00:00:00.000000000 -0000 --- ../src-base/minecraft/net/minecraft/client/Minecraft.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/client/Minecraft.java 0000-00-00 00:00:00.000000000 -0000 +++ ../src-work/minecraft/net/minecraft/client/Minecraft.java 0000-00-00 00:00:00.000000000 -0000
@@ -120,6 +120,11 @@ @@ -126,6 +126,10 @@
import org.lwjgl.opengl.PixelFormat; import org.lwjgl.opengl.PixelFormat;
import org.lwjgl.util.glu.GLU; import org.lwjgl.util.glu.GLU;
+import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.relauncher.ArgsWrapper; +import cpw.mods.fml.relauncher.ArgsWrapper;
+import cpw.mods.fml.relauncher.FMLEmbeddingRelauncher; +import cpw.mods.fml.relauncher.FMLEmbeddingRelauncher;
+ +
public abstract class Minecraft implements IPlayerUsage, Runnable public abstract class Minecraft implements Runnable, IPlayerUsage
{ {
public static byte[] field_28006_b = new byte[10485760]; public static byte[] field_71444_a = new byte[10485760];
@@ -301,6 +306,7 @@ @@ -305,7 +309,7 @@
this.field_6315_n = new RenderEngine(this.field_6298_C, this.field_6304_y); this.func_71357_I();
this.func_6257_q(); this.field_71466_p = new FontRenderer(this.field_71474_y, "/font/default.png", this.field_71446_o, false);
this.field_6314_o = new FontRenderer(this.field_6304_y, "/font/default.png", this.field_6315_n, false); this.field_71464_q = new FontRenderer(this.field_71474_y, "/font/alternate.png", this.field_71446_o, false);
+ FMLClientHandler.instance().onPreLoad(this); -
this.field_40007_r = new FontRenderer(this.field_6304_y, "/font/alternate.png", this.field_6315_n, false); + FMLClientHandler.instance().beginMinecraftLoading(this);
if (this.field_71474_y.field_74363_ab != null)
if (this.field_6304_y.field_44018_Q != null)
@@ -332,6 +338,9 @@
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
+ FMLClientHandler.instance().onLoadComplete();
+ this.field_9231_Y.setup();
+ this.field_9232_X.setup();
this.func_6250_c("Startup");
this.field_6301_A.func_340_a(this.field_6304_y);
this.field_6315_n.func_1066_a(this.field_9231_Y);
@@ -729,9 +738,11 @@
if (!this.field_6307_v)
{
+ FMLClientHandler.instance().onRenderTickStart(this.field_9237_P.field_1378_c);
Profiler.func_40661_c("gameRenderer");
this.field_9243_r.func_4136_b(this.field_9237_P.field_1378_c);
Profiler.func_40662_b();
+ FMLClientHandler.instance().onRenderTickEnd(this.field_9237_P.field_1378_c);
}
GL11.glFlush();
@@ -1318,11 +1329,13 @@
public void func_6246_i()
{
+ FMLCommonHandler.instance().rescheduleTicks();
if (this.field_35001_ab > 0)
{ {
--this.field_35001_ab; StringTranslate.func_74808_a().func_74810_a(this.field_71474_y.field_74363_ab);
} @@ -1883,6 +1887,12 @@
+ FMLClientHandler.instance().onPreWorldTick();
Profiler.func_40663_a("stats");
this.field_25001_G.func_27178_d();
Profiler.func_40661_c("gui");
@@ -1691,6 +1704,7 @@
}
Profiler.func_40662_b();
+ FMLClientHandler.instance().onPostWorldTick();
this.field_6287_N = System.currentTimeMillis();
}
@@ -1849,6 +1863,7 @@
System.gc();
this.field_6287_N = 0L;
+ FMLClientHandler.instance().onWorldLoadTick();
}
public void func_6268_a(String p_6268_1_, File p_6268_2_)
@@ -1940,6 +1955,11 @@
public static void main(String[] p_main_0_) public static void main(String[] p_main_0_)
{ {
+ FMLEmbeddingRelauncher.relaunch(new ArgsWrapper(p_main_0_)); + FMLEmbeddingRelauncher.relaunch(new ArgsWrapper(p_main_0_));
+ } + }
+
+ public static void fmlReentry(ArgsWrapper wrapper) + public static void fmlReentry(ArgsWrapper wrapper)
+ { + {
+ String[] p_main_0_ = wrapper.args; + String[] p_main_0_ = wrapper.args;

View File

@ -1,15 +1,15 @@
--- ../src-base/minecraft/net/minecraft/client/MinecraftApplet.java 0000-00-00 00:00:00.000000000 -0000 --- ../src-base/minecraft/net/minecraft/client/MinecraftApplet.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/client/MinecraftApplet.java 0000-00-00 00:00:00.000000000 -0000 +++ ../src-work/minecraft/net/minecraft/client/MinecraftApplet.java 0000-00-00 00:00:00.000000000 -0000
@@ -4,6 +4,8 @@ @@ -3,6 +3,8 @@
import java.applet.Applet;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Canvas; import java.awt.Canvas;
import java.io.File;
+ +
+import cpw.mods.fml.relauncher.FMLEmbeddingRelauncher; +import cpw.mods.fml.relauncher.FMLEmbeddingRelauncher;
import net.minecraft.src.CanvasMinecraftApplet; import net.minecraft.src.CanvasMinecraftApplet;
import net.minecraft.src.MinecraftAppletImpl; import net.minecraft.src.MinecraftAppletImpl;
import net.minecraft.src.Session; import net.minecraft.src.Session;
@@ -16,6 +18,11 @@ @@ -15,6 +17,11 @@
public void init() public void init()
{ {
@ -18,10 +18,10 @@
+ +
+ public void fmlInitReentry() + public void fmlInitReentry()
+ { + {
this.field_6235_a = new CanvasMinecraftApplet(this); this.field_71483_a = new CanvasMinecraftApplet(this);
boolean var1 = "true".equalsIgnoreCase(this.getParameter("fullscreen")); boolean var1 = "true".equalsIgnoreCase(this.getParameter("fullscreen"));
this.field_6234_b = new MinecraftAppletImpl(this, this.field_6235_a, this, this.getWidth(), this.getHeight(), var1); this.field_71481_b = new MinecraftAppletImpl(this, this.field_71483_a, this, this.getWidth(), this.getHeight(), var1);
@@ -72,6 +79,11 @@ @@ -60,6 +67,11 @@
public void start() public void start()
{ {
@ -30,6 +30,6 @@
+ +
+ public void fmlStartReentry() + public void fmlStartReentry()
+ { + {
if (this.field_6234_b != null) if (this.field_71481_b != null)
{ {
this.field_6234_b.field_6316_m = false; this.field_71481_b.field_71445_n = false;

View File

@ -1,25 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/BlockDispenser.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/BlockDispenser.java 0000-00-00 00:00:00.000000000 -0000
@@ -2,6 +2,8 @@
import java.util.Random;
+import cpw.mods.fml.client.FMLClientHandler;
+
public class BlockDispenser extends BlockContainer
{
private Random field_28035_a = new Random();
@@ -276,7 +278,12 @@
float var15 = 1.1F;
byte var16 = 6;
- if (p_56784_2_.field_1617_c == Item.field_226_j.field_291_aS)
+ if (FMLClientHandler.instance().tryDispensingEntity(p_56784_1_, p_56784_9_, p_56784_11_, p_56784_13_, p_56784_7_, p_56784_8_, p_56784_2_))
+ {
+ //TODO revisit
+ return 1;
+ }
+ else if (p_56784_2_.field_1617_c == Item.field_226_j.field_291_aS)
{
EntityArrow var28 = new EntityArrow(p_56784_1_, p_56784_9_, p_56784_11_, p_56784_13_);
var28.func_408_a((double)p_56784_7_, 0.10000000149011612D, (double)p_56784_8_, var15, (float)var16);

View File

@ -1,20 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/CallableMinecraftVersion.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/CallableMinecraftVersion.java 0000-00-00 00:00:00.000000000 -0000
@@ -2,7 +2,7 @@
import java.util.concurrent.Callable;
-class CallableMinecraftVersion implements Callable
+public class CallableMinecraftVersion implements Callable
{
final CrashReport field_55338_a;
@@ -11,7 +11,7 @@
this.field_55338_a = p_i1418_1_;
}
- public String func_55337_a()
+ public static String func_55337_a()
{
return "12w26a";
}

View File

@ -1,19 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/ChunkProviderServer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/ChunkProviderServer.java 0000-00-00 00:00:00.000000000 -0000
@@ -7,6 +7,8 @@
import java.util.List;
import java.util.Set;
+import cpw.mods.fml.client.FMLClientHandler;
+
public class ChunkProviderServer implements IChunkProvider
{
private Set field_56907_b = new HashSet();
@@ -177,6 +179,7 @@
if (this.field_56905_d != null)
{
this.field_56905_d.func_534_a(p_534_1_, p_534_2_, p_534_3_);
+ FMLClientHandler.instance().onChunkPopulate(p_534_1_, p_534_2_, p_534_3_, this.field_56910_h, this.field_56905_d);
var4.func_1006_f();
}
}

View File

@ -1,23 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/CrashReport.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/CrashReport.java 0000-00-00 00:00:00.000000000 -0000
@@ -12,9 +12,12 @@
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.Callable;
+import java.util.concurrent.Executors;
import java.util.logging.Level;
import java.util.logging.Logger;
+import cpw.mods.fml.common.Loader;
+
public class CrashReport
{
private final String field_55376_a;
@@ -36,6 +39,7 @@
this.func_55366_a("Java Version", new CallableJavaInfo(this));
this.func_55366_a("Java VM Version", new CallableJavaInfo2(this));
this.func_55366_a("Memory", new CallableMemoryInfo(this));
+ this.func_55366_a("FML", Loader.instance().getCallableCrashInformation());
}
public void func_55366_a(String p_55366_1_, Callable p_55366_2_)

View File

@ -1,20 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/DedicatedServer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/DedicatedServer.java 0000-00-00 00:00:00.000000000 -0000
@@ -33,6 +33,8 @@
var1.start();
ConsoleLogManager.func_57436_a();
field_56394_a.info("Starting minecraft server version 12w26a");
+ // TODO
+// FMLServerHandler.instance().onPreLoad(this);
if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L)
{
@@ -98,6 +100,8 @@
field_56394_a.warning("To change this, set \"online-mode\" to \"true\" in the server.properties file.");
}
+ // TODO
+// FMLServerHandler.instance().onLoadComplete();
this.func_56309_a(new DedicatedPlayerList(this));
long var4 = System.nanoTime();

View File

@ -1,19 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/EntityItem.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/EntityItem.java 0000-00-00 00:00:00.000000000 -0000
@@ -2,6 +2,8 @@
import java.util.Iterator;
+import cpw.mods.fml.client.FMLClientHandler;
+
public class EntityItem extends Entity
{
public ItemStack field_801_a;
@@ -198,6 +200,7 @@
if (this.field_805_c == 0 && p_6378_1_.field_778_b.func_504_a(this.field_801_a))
{
+ FMLClientHandler.instance().notifyItemPickup(this, p_6378_1_);
if (this.field_801_a.field_1617_c == Block.field_385_K.field_376_bc)
{
p_6378_1_.func_27026_a(AchievementList.field_25198_c);

View File

@ -1,20 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/EntityList.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/EntityList.java 0000-00-00 00:00:00.000000000 -0000
@@ -174,4 +174,17 @@
func_46152_a(EntityVillager.class, "Villager", 120, 5651507, 12422002);
func_1080_a(EntityEnderCrystal.class, "EnderCrystal", 200);
}
+
+ public static void addNewEntityListMapping(Class<? extends Entity> entityClass, String entityName, int id) {
+ func_1080_a(entityClass,entityName,id);
+ }
+
+ public static void addNewEntityListMapping(Class<? extends Entity> entityClass, String entityName, int id, int backgroundEggColour, int foregroundEggColour) {
+ func_46152_a(entityClass,entityName,id,backgroundEggColour,foregroundEggColour);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static Map<String,Class<? extends Entity>> getEntityToClassMapping() {
+ return field_1611_a;
+ }
}

View File

@ -1,31 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/EntityPlayer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/EntityPlayer.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,8 +1,12 @@
package net.minecraft.src;
+import java.util.EnumSet;
import java.util.Iterator;
import java.util.List;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.TickType;
+
public abstract class EntityPlayer extends EntityLiving implements ICommandSender
{
public InventoryPlayer field_778_b = new InventoryPlayer(this);
@@ -123,6 +127,7 @@
public void func_370_e_()
{
+ FMLCommonHandler.instance().tickStart(EnumSet.of(TickType.PLAYER), this, this.field_615_ag);
if (this.field_34907_d != null)
{
ItemStack var1 = this.field_778_b.func_494_a();
@@ -246,6 +251,7 @@
{
this.field_35217_av.func_35768_a(this);
}
+ FMLCommonHandler.instance().tickEnd(EnumSet.of(TickType.PLAYER), this, this.field_615_ag);
}
protected void func_35201_a(ItemStack p_35201_1_, int p_35201_2_)

View File

@ -1,17 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/GenLayerBiome.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/GenLayerBiome.java 0000-00-00 00:00:00.000000000 -0000
@@ -7,13 +7,8 @@
public GenLayerBiome(long p_i1011_1_, GenLayer p_i1011_3_, WorldType p_i1011_4_)
{
super(p_i1011_1_);
- this.field_35509_b = new BiomeGenBase[] {BiomeGenBase.field_4249_h, BiomeGenBase.field_4253_d, BiomeGenBase.field_35483_e, BiomeGenBase.field_4255_b, BiomeGenBase.field_35485_c, BiomeGenBase.field_4250_g, BiomeGenBase.field_48416_w};
+ this.field_35509_b = p_i1011_4_.getBiomesForWorldType();
this.field_35504_a = p_i1011_3_;
-
- if (p_i1011_4_ == WorldType.field_48634_d)
- {
- this.field_35509_b = new BiomeGenBase[] {BiomeGenBase.field_4249_h, BiomeGenBase.field_4253_d, BiomeGenBase.field_35483_e, BiomeGenBase.field_4255_b, BiomeGenBase.field_35485_c, BiomeGenBase.field_4250_g};
- }
}
public int[] func_35500_a(int p_35500_1_, int p_35500_2_, int p_35500_3_, int p_35500_4_)

View File

@ -1,14 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/GuiCreateWorld.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/GuiCreateWorld.java 0000-00-00 00:00:00.000000000 -0000
@@ -197,9 +197,11 @@
}
}
+ WorldType.field_48637_a[this.field_46030_z].onGUICreateWorldPress();
EnumGameType var9 = EnumGameType.func_57535_a(this.field_35364_f);
WorldSettings var6 = new WorldSettings(var2, var9, this.field_35365_g, this.field_40232_h, WorldType.field_48637_a[this.field_46030_z]);
+
if (this.field_55144_j && !this.field_40232_h)
{
var6.func_55250_a();

View File

@ -1,11 +1,12 @@
--- ../src-base/minecraft/net/minecraft/src/GuiMainMenu.java 0000-00-00 00:00:00.000000000 -0000 --- ../src-base/minecraft/net/minecraft/src/GuiMainMenu.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/GuiMainMenu.java 0000-00-00 00:00:00.000000000 -0000 +++ ../src-work/minecraft/net/minecraft/src/GuiMainMenu.java 0000-00-00 00:00:00.000000000 -0000
@@ -8,10 +8,18 @@ @@ -8,11 +8,18 @@
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
+import java.util.List; +import java.util.List;
import java.util.Random; import java.util.Random;
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.lwjgl.util.glu.GLU; import org.lwjgl.util.glu.GLU;
@ -14,56 +15,45 @@
+ +
+import cpw.mods.fml.client.GuiModList; +import cpw.mods.fml.client.GuiModList;
+import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.Loader;
+ +
public class GuiMainMenu extends GuiScreen public class GuiMainMenu extends GuiScreen
{ {
private static final Random field_6463_h = new Random(); private static final Random field_73976_a = new Random();
@@ -117,7 +125,9 @@ @@ -118,7 +125,8 @@
this.func_55154_a(var4, 24, var2); this.func_73969_a(var4, 24, var2);
} }
- this.field_949_e.add(new GuiButton(3, this.field_951_c / 2 - 100, var4 + 48, var2.func_20163_a("menu.mods"))); - this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, var4 + 48, var2.func_74805_b("menu.mods")));
+// this.field_949_e.add(new GuiButton(3, this.field_951_c / 2 - 100, var4 + 48, var2.func_20163_a("menu.mods"))); + this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, var4 + 48, 98, 20, var2.func_74805_b("menu.mods")));
+ this.field_949_e.add(new GuiButton(3, this.field_951_c / 2 - 100, var4 + 48, 98, 20, var2.func_20163_a("menu.mods"))); + this.field_73887_h.add(new GuiButton(6, this.field_73880_f / 2 + 2, var4 + 48, 98, 20, "Mods"));
+ this.field_949_e.add(new GuiButton(6, this.field_951_c / 2 + 2, var4 + 48, 98, 20, "Mods"));
if (this.field_945_b.field_6317_l) if (this.field_73882_e.field_71448_m)
{ {
@@ -149,6 +159,7 @@ @@ -184,6 +192,11 @@
{ this.field_73882_e.func_71400_g();
this.field_55155_d.field_937_g = false;
}
+
}
protected void func_572_a(GuiButton p_572_1_)
@@ -183,6 +194,10 @@
this.field_945_b.func_6244_d();
} }
+ if (p_572_1_.field_938_f == 6) + if (p_73875_1_.field_73741_f == 6)
+ { + {
+ this.field_945_b.func_6272_a(new GuiModList(this)); + this.field_73882_e.func_71373_a(new GuiModList(this));
+ } + }
if (p_572_1_.field_938_f == 11) +
{ if (p_73875_1_.field_73741_f == 11)
this.field_945_b.func_58039_a("Demo_World", "Demo_World", DemoWorldServer.field_56874_a);
@@ -398,8 +413,15 @@
{ {
this.field_73882_e.func_71371_a("Demo_World", "Demo_World", DemoWorldServer.field_73071_a);
@@ -400,7 +413,14 @@
var9 = var9 + " Demo"; var9 = var9 + " Demo";
} }
-
- this.func_547_b(this.field_6451_g, var9, 2, this.field_950_d - 10, 16777215); - this.func_73731_b(this.field_73886_k, var9, 2, this.field_73881_g - 10, 16777215);
+ List<String> brandings=Lists.reverse(FMLCommonHandler.instance().getBrandings()); + List<String> brandings=Lists.reverse(FMLCommonHandler.instance().getBrandings());
+ for (int i=0; i<brandings.size(); i++) { + for (int i=0; i<brandings.size(); i++) {
+ String brd = brandings.get(i); + String brd = brandings.get(i);
+ if (!Strings.isNullOrEmpty(brd)) + if (!Strings.isNullOrEmpty(brd))
+ { + {
+ this.func_547_b(this.field_6451_g, brd, 2, this.field_950_d - ( 10 + i * (this.field_6451_g.field_41063_b +1)), 16777215); + this.func_73731_b(this.field_73886_k, brd, 2, this.field_73881_g - ( 10 + i * (this.field_73886_k.field_78288_b + 1)), 16777215);
+ } + }
+ } + }
+// this.func_547_b(this.field_6451_g, var9, 2, this.field_950_d - 10, 16777215);
String var10 = "Copyright Mojang AB. Do not distribute!"; String var10 = "Copyright Mojang AB. Do not distribute!";
this.func_547_b(this.field_6451_g, var10, this.field_951_c - this.field_6451_g.func_871_a(var10) - 2, this.field_950_d - 10, 16777215); this.func_73731_b(this.field_73886_k, var10, this.field_73880_f - this.field_73886_k.func_78256_a(var10) - 2, this.field_73881_g - 10, 16777215);
super.func_571_a(p_571_1_, p_571_2_, p_571_3_); super.func_73863_a(p_73863_1_, p_73863_2_, p_73863_3_);

View File

@ -1,50 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/MinecraftServer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/MinecraftServer.java 0000-00-00 00:00:00.000000000 -0000
@@ -12,6 +12,8 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import cpw.mods.fml.common.FMLCommonHandler;
+
public abstract class MinecraftServer implements ICommandSender, IPlayerUsage, Runnable
{
public static Logger field_56394_a = Logger.getLogger("Minecraft");
@@ -317,6 +319,8 @@
{
long var1 = System.currentTimeMillis();
+ FMLCommonHandler.instance().onWorldLoadTick();
+
for (long var50 = 0L; this.field_56406_t; this.field_56383_O = true)
{
long var5 = System.currentTimeMillis();
@@ -407,9 +411,11 @@
protected void func_56322_n()
{
+ FMLCommonHandler.instance().rescheduleTicks();
long var1 = System.nanoTime();
AxisAlignedBB.func_58144_a().func_58151_a();
Vec3.func_58128_a().func_58135_a();
+ FMLCommonHandler.instance().onPreServerTick();
++this.field_56404_v;
this.func_56292_o();
@@ -439,6 +445,7 @@
{
this.field_56398_m.func_57207_b();
}
+ FMLCommonHandler.instance().onPostServerTick();
}
protected void func_56292_o()
@@ -456,7 +463,9 @@
this.field_56407_s.func_57105_a(new Packet4UpdateTime(var4.func_22139_r()), var4.field_4209_q.field_4218_e);
}
+ FMLCommonHandler.instance().onPreWorldTick(var4);
var4.func_649_g();
+ FMLCommonHandler.instance().onPostWorldTick(var4);
while (true)
{

View File

@ -1,41 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/NetClientHandler.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/NetClientHandler.java 0000-00-00 00:00:00.000000000 -0000
@@ -20,6 +20,8 @@
import net.minecraft.client.Minecraft;
import org.lwjgl.input.Keyboard;
+import cpw.mods.fml.client.FMLClientHandler;
+
public class NetClientHandler extends NetHandler
{
private boolean field_55324_f = false;
@@ -132,6 +134,7 @@
this.field_35785_d = p_4115_1_.field_35251_h;
this.field_1212_e.field_56453_c.func_57521_a(p_4115_1_.field_56535_d);
this.func_847_a(new Packet204ClientInfo(this.field_1212_e.field_6304_y.field_44018_Q, this.field_1212_e.field_6304_y.field_1580_e, this.field_1212_e.field_6304_y.field_55382_n, this.field_1212_e.field_6304_y.field_55383_o, this.field_1212_e.field_6304_y.field_1561_w));
+ FMLClientHandler.instance().handleServerLogin(p_4115_1_, this, field_1213_d);
}
public void func_832_a(Packet21PickupSpawn p_832_1_)
@@ -593,6 +596,7 @@
public void func_4113_a(Packet3Chat p_4113_1_)
{
+ FMLClientHandler.instance().handleChatPacket(p_4113_1_);
this.field_1212_e.field_6308_u.func_55092_b().func_55106_a(p_4113_1_.field_517_a);
}
@@ -1165,4 +1169,13 @@
{
return this.field_1213_d;
}
+
+ /* (non-Javadoc)
+ * @see net.minecraft.src.NetHandler#func_44028_a(net.minecraft.src.Packet250CustomPayload)
+ */
+// @Override
+// public void func_44028_a(Packet250CustomPayload p_44028_1_)
+// {
+// FMLClientHandler.instance().handlePacket250(p_44028_1_);
+// }
}

View File

@ -1,35 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/NetServerHandler.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/NetServerHandler.java 0000-00-00 00:00:00.000000000 -0000
@@ -8,6 +8,8 @@
import java.util.Random;
import java.util.logging.Logger;
+import cpw.mods.fml.client.FMLClientHandler;
+
public class NetServerHandler extends NetHandler
{
public static Logger field_56728_a = Logger.getLogger("Minecraft");
@@ -601,7 +603,10 @@
}
}
- if (var2.startsWith("/"))
+ if (FMLClientHandler.instance().handleChatPacket(p_4113_1_,field_56725_e)) {
+ // We handled it
+ }
+ else if (var2.startsWith("/"))
{
this.func_56721_b(var2);
}
@@ -1013,4 +1018,11 @@
}
}
}
+//TODO
+ /*
+ @Override
+ public void func_44001_a(Packet250CustomPayload p_44001_1_) {
+ FMLServerHandler.instance().handlePacket250(p_44001_1_, field_16_e);
+ }
+ */
}

View File

@ -1,35 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/PanelCrashReport.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/PanelCrashReport.java 0000-00-00 00:00:00.000000000 -0000
@@ -10,13 +10,22 @@
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.logging.Level;
+
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.GL11;
+import com.google.common.base.Joiner;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.Loader;
+
public class PanelCrashReport extends Panel
{
public PanelCrashReport(CrashReport p_i1401_1_)
{
+ FMLCommonHandler.instance().getFMLLogger().log(Level.SEVERE, "A critical error has occurred.", p_i1401_1_.func_55363_b());
+ FMLCommonHandler.instance().getFMLLogger().log(Level.SEVERE, Loader.instance().getCrashInformation());
this.setBackground(new Color(3028036));
this.setLayout(new BorderLayout());
StringWriter var2 = new StringWriter();
@@ -69,6 +78,9 @@
var6 = var6 + " Minecraft has crashed! \n";
var6 = var6 + " ---------------------- \n";
var6 = var6 + "\n";
+ var6 = var6 + " ****** Mod related errors will have more detail in the file ForgeModLoader-0.log\n";
+ var6 = var6 + " ---------------------- \n";
+ var6 = var6 + "\n";
var6 = var6 + "Minecraft has stopped running because it encountered a problem; " + p_i1401_1_.func_55365_a() + "\n";
File var7 = p_i1401_1_.func_57261_f();

View File

@ -1,478 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/RenderBlocks.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/RenderBlocks.java 0000-00-00 00:00:00.000000000 -0000
@@ -4,97 +4,100 @@
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
+import cpw.mods.fml.client.FMLClientHandler;
+
public class RenderBlocks
{
public IBlockAccess field_1772_a;
- private int field_1771_b = -1;
- private boolean field_1774_c = false;
- private boolean field_1773_d = false;
+ public int field_1771_b = -1;
+ public boolean field_1774_c = false;
+ public boolean field_1773_d = false;
public static boolean field_27406_a = true;
+ public static boolean cfgGrassFix = true;
public boolean field_31088_b = true;
- private int field_31087_g = 0;
- private int field_31086_h = 0;
- private int field_31085_i = 0;
- private int field_31084_j = 0;
- private int field_31083_k = 0;
- private int field_31082_l = 0;
- private boolean field_22385_e;
- private float field_22384_f;
- private float field_22383_g;
- private float field_22382_h;
- private float field_22381_i;
- private float field_22380_j;
- private float field_22379_k;
- private float field_22378_l;
- private float field_22377_m;
- private float field_22376_n;
- private float field_22375_o;
- private float field_22374_p;
- private float field_22373_q;
- private float field_22372_r;
- private float field_22371_s;
- private float field_22370_t;
- private float field_22369_u;
- private float field_22368_v;
- private float field_22367_w;
- private float field_22366_x;
- private float field_22365_y;
- private float field_22364_z;
- private float field_22362_A;
- private float field_22360_B;
- private float field_22358_C;
- private float field_22356_D;
- private float field_22354_E;
- private float field_22353_F;
- private int field_35936_P;
- private int field_35935_Q;
- private int field_35938_R;
- private int field_35937_S;
- private int field_35932_T;
- private int field_35931_U;
- private int field_35934_V;
- private int field_35933_W;
- private int field_35940_X;
- private int field_35939_Y;
- private int field_35941_Z;
- private int field_35951_aa;
- private int field_35952_ab;
- private int field_35949_ac;
- private int field_35950_ad;
- private int field_35955_ae;
- private int field_35956_af;
- private int field_35953_ag;
- private int field_35954_ah;
- private int field_35945_ai;
- private int field_35946_aj = 1;
- private int field_35943_ak;
- private int field_35944_al;
- private int field_35947_am;
- private int field_35948_an;
- private float field_22351_H;
- private float field_22350_I;
- private float field_22349_J;
- private float field_22348_K;
- private float field_22347_L;
- private float field_22346_M;
- private float field_22345_N;
- private float field_22344_O;
- private float field_22343_P;
- private float field_22342_Q;
- private float field_22341_R;
- private float field_22340_S;
- private boolean field_22339_T;
- private boolean field_22338_U;
- private boolean field_22337_V;
- private boolean field_22336_W;
- private boolean field_22335_X;
- private boolean field_22334_Y;
- private boolean field_22333_Z;
- private boolean field_22363_aa;
- private boolean field_22361_ab;
- private boolean field_22359_ac;
- private boolean field_22357_ad;
- private boolean field_22355_ae;
+ public int field_31087_g = 0;
+ public int field_31086_h = 0;
+ public int field_31085_i = 0;
+ public int field_31084_j = 0;
+ public int field_31083_k = 0;
+ public int field_31082_l = 0;
+ public boolean field_22385_e;
+ public float field_22384_f;
+ public float field_22383_g;
+ public float field_22382_h;
+ public float field_22381_i;
+ public float field_22380_j;
+ public float field_22379_k;
+ public float field_22378_l;
+ public float field_22377_m;
+ public float field_22376_n;
+ public float field_22375_o;
+ public float field_22374_p;
+ public float field_22373_q;
+ public float field_22372_r;
+ public float field_22371_s;
+ public float field_22370_t;
+ public float field_22369_u;
+ public float field_22368_v;
+ public float field_22367_w;
+ public float field_22366_x;
+ public float field_22365_y;
+ public float field_22364_z;
+ public float field_22362_A;
+ public float field_22360_B;
+ public float field_22358_C;
+ public float field_22356_D;
+ public float field_22354_E;
+ public float field_22353_F;
+ public int field_35936_P;
+ public int field_35935_Q;
+ public int field_35938_R;
+ public int field_35937_S;
+ public int field_35932_T;
+ public int field_35931_U;
+ public int field_35934_V;
+ public int field_35933_W;
+ public int field_35940_X;
+ public int field_35939_Y;
+ public int field_35941_Z;
+ public int field_35951_aa;
+ public int field_35952_ab;
+ public int field_35949_ac;
+ public int field_35950_ad;
+ public int field_35955_ae;
+ public int field_35956_af;
+ public int field_35953_ag;
+ public int field_35954_ah;
+ public int field_35945_ai;
+ public int field_35946_aj = 1;
+ public int field_35943_ak;
+ public int field_35944_al;
+ public int field_35947_am;
+ public int field_35948_an;
+ public float field_22351_H;
+ public float field_22350_I;
+ public float field_22349_J;
+ public float field_22348_K;
+ public float field_22347_L;
+ public float field_22346_M;
+ public float field_22345_N;
+ public float field_22344_O;
+ public float field_22343_P;
+ public float field_22342_Q;
+ public float field_22341_R;
+ public float field_22340_S;
+ public boolean field_22339_T;
+ public boolean field_22338_U;
+ public boolean field_22337_V;
+ public boolean field_22336_W;
+ public boolean field_22335_X;
+ public boolean field_22334_Y;
+ public boolean field_22333_Z;
+ public boolean field_22363_aa;
+ public boolean field_22361_ab;
+ public boolean field_22359_ac;
+ public boolean field_22357_ad;
+ public boolean field_22355_ae;
public RenderBlocks(IBlockAccess p_i647_1_)
{
@@ -126,10 +129,74 @@
{
int var5 = p_1234_1_.func_210_f();
p_1234_1_.func_238_a(this.field_1772_a, p_1234_2_, p_1234_3_, p_1234_4_);
- return var5 == 0 ? this.func_1228_k(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 4 ? this.func_1222_j(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 13 ? this.func_1233_l(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 1 ? this.func_1226_h(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 19 ? this.func_1232_i(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 23 ? this.func_40726_m(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 6 ? this.func_35930_l(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 2 ? this.func_1241_b(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 3 ? this.func_1235_d(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 5 ? this.func_1242_e(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 8 ? this.func_1221_g(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 7 ? this.func_1218_o(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 9 ? this.func_1216_f((BlockRail)p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 10 ? this.func_1214_n(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 27 ? this.func_41088_a((BlockDragonEgg)p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 11 ? this.func_35925_a((BlockFence)p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 12 ? this.func_1229_c(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 29 ? this.func_57334_f(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 30 ? this.func_57336_g(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 14 ? this.func_22331_p(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 15 ? this.func_22332_q(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 16 ? this.func_31074_b(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_, false) : (var5 == 17 ? this.func_31080_c(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_, true) : (var5 == 18 ? this.func_35922_a((BlockPane)p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 20 ? this.func_35929_i(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 21 ? this.func_35923_a((BlockFenceGate)p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 24 ? this.func_40728_a((BlockCauldron)p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 25 ? this.func_40730_a((BlockBrewingStand)p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 26 ? this.func_40729_s(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : (var5 == 28 ? this.func_57333_a((BlockCocoa)p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_) : false)))))))))))))))))))))))))))));
+ switch (var5)
+ {
+ case 0:
+ return this.func_1228_k(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 4:
+ return this.func_1222_j(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 13:
+ return this.func_1233_l(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 1:
+ return this.func_1226_h(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 19:
+ return this.func_1232_i(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 23:
+ return this.func_40726_m(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 6:
+ return this.func_35930_l(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 2:
+ return this.func_1241_b(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 3:
+ return this.func_1235_d(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 5:
+ return this.func_1242_e(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 8:
+ return this.func_1221_g(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 7:
+ return this.func_1218_o(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 9:
+ return this.func_1216_f((BlockRail) p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 10:
+ return this.func_1214_n(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 27:
+ return this.func_41088_a((BlockDragonEgg) p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 11:
+ return this.func_35925_a((BlockFence) p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 12:
+ return this.func_1229_c(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 29:
+ return this.func_57334_f(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 30:
+ return this.func_57336_g(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 14:
+ return this.func_22331_p(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 15:
+ return this.func_22332_q(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 16:
+ return this.func_31074_b(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_, false);
+ case 17:
+ return this.func_31080_c(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_, true);
+ case 18:
+ return this.func_35922_a((BlockPane) p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 20:
+ return this.func_35929_i(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 21:
+ return this.func_35923_a((BlockFenceGate) p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 24:
+ return this.func_40728_a((BlockCauldron) p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 25:
+ return this.func_40730_a((BlockBrewingStand) p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 26:
+ return this.func_40729_s(p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ case 28:
+ return this.func_57333_a((BlockCocoa) p_1234_1_, p_1234_2_, p_1234_3_, p_1234_4_);
+ default:
+ return FMLClientHandler.instance().renderWorldBlock(this, field_1772_a, p_1234_2_, p_1234_3_, p_1234_4_, p_1234_1_, var5);
+ }
}
- private boolean func_40729_s(Block p_40729_1_, int p_40729_2_, int p_40729_3_, int p_40729_4_)
+ public boolean func_40729_s(Block p_40729_1_, int p_40729_2_, int p_40729_3_, int p_40729_4_)
{
int var5 = this.field_1772_a.func_602_e(p_40729_2_, p_40729_3_, p_40729_4_);
int var6 = var5 & 3;
@@ -169,7 +236,7 @@
}
}
- private boolean func_22331_p(Block p_22331_1_, int p_22331_2_, int p_22331_3_, int p_22331_4_)
+ public boolean func_22331_p(Block p_22331_1_, int p_22331_2_, int p_22331_3_, int p_22331_4_)
{
Tessellator var5 = Tessellator.field_1512_a;
int var6 = this.field_1772_a.func_602_e(p_22331_2_, p_22331_3_, p_22331_4_);
@@ -310,7 +377,7 @@
return true;
}
- private boolean func_40730_a(BlockBrewingStand p_40730_1_, int p_40730_2_, int p_40730_3_, int p_40730_4_)
+ public boolean func_40730_a(BlockBrewingStand p_40730_1_, int p_40730_2_, int p_40730_3_, int p_40730_4_)
{
p_40730_1_.func_213_a(0.4375F, 0.0F, 0.4375F, 0.5625F, 0.875F, 0.5625F);
this.func_1228_k(p_40730_1_, p_40730_2_, p_40730_3_, p_40730_4_);
@@ -384,7 +451,7 @@
return true;
}
- private boolean func_40728_a(BlockCauldron p_40728_1_, int p_40728_2_, int p_40728_3_, int p_40728_4_)
+ public boolean func_40728_a(BlockCauldron p_40728_1_, int p_40728_2_, int p_40728_3_, int p_40728_4_)
{
this.func_1228_k(p_40728_1_, p_40728_2_, p_40728_3_, p_40728_4_);
Tessellator var5 = Tessellator.field_1512_a;
@@ -467,7 +534,7 @@
return true;
}
- private boolean func_22332_q(Block p_22332_1_, int p_22332_2_, int p_22332_3_, int p_22332_4_)
+ public boolean func_22332_q(Block p_22332_1_, int p_22332_2_, int p_22332_3_, int p_22332_4_)
{
int var5 = this.field_1772_a.func_602_e(p_22332_2_, p_22332_3_, p_22332_4_);
int var6 = var5 & 3;
@@ -557,7 +624,7 @@
this.field_1773_d = false;
}
- private boolean func_31074_b(Block p_31074_1_, int p_31074_2_, int p_31074_3_, int p_31074_4_, boolean p_31074_5_)
+ public boolean func_31074_b(Block p_31074_1_, int p_31074_2_, int p_31074_3_, int p_31074_4_, boolean p_31074_5_)
{
int var6 = this.field_1772_a.func_602_e(p_31074_2_, p_31074_3_, p_31074_4_);
boolean var7 = p_31074_5_ || (var6 & 8) != 0;
@@ -660,7 +727,7 @@
return true;
}
- private void func_31076_a(double p_31076_1_, double p_31076_3_, double p_31076_5_, double p_31076_7_, double p_31076_9_, double p_31076_11_, float p_31076_13_, double p_31076_14_)
+ public void func_31076_a(double p_31076_1_, double p_31076_3_, double p_31076_5_, double p_31076_7_, double p_31076_9_, double p_31076_11_, float p_31076_13_, double p_31076_14_)
{
int var16 = 108;
@@ -683,7 +750,7 @@
var19.func_983_a(p_31076_3_, p_31076_7_, p_31076_11_, var24, var26);
}
- private void func_31081_b(double p_31081_1_, double p_31081_3_, double p_31081_5_, double p_31081_7_, double p_31081_9_, double p_31081_11_, float p_31081_13_, double p_31081_14_)
+ public void func_31081_b(double p_31081_1_, double p_31081_3_, double p_31081_5_, double p_31081_7_, double p_31081_9_, double p_31081_11_, float p_31081_13_, double p_31081_14_)
{
int var16 = 108;
@@ -706,7 +773,7 @@
var19.func_983_a(p_31081_3_, p_31081_7_, p_31081_11_, var24, var26);
}
- private void func_31077_c(double p_31077_1_, double p_31077_3_, double p_31077_5_, double p_31077_7_, double p_31077_9_, double p_31077_11_, float p_31077_13_, double p_31077_14_)
+ public void func_31077_c(double p_31077_1_, double p_31077_3_, double p_31077_5_, double p_31077_7_, double p_31077_9_, double p_31077_11_, float p_31077_13_, double p_31077_14_)
{
int var16 = 108;
@@ -736,7 +803,7 @@
this.field_1773_d = false;
}
- private boolean func_31080_c(Block p_31080_1_, int p_31080_2_, int p_31080_3_, int p_31080_4_, boolean p_31080_5_)
+ public boolean func_31080_c(Block p_31080_1_, int p_31080_2_, int p_31080_3_, int p_31080_4_, boolean p_31080_5_)
{
int var6 = this.field_1772_a.func_602_e(p_31080_2_, p_31080_3_, p_31080_4_);
int var7 = BlockPistonExtension.func_31050_c(var6);
@@ -3244,7 +3311,7 @@
}
}
- private float func_1224_a(int p_1224_1_, int p_1224_2_, int p_1224_3_, Material p_1224_4_)
+ public float func_1224_a(int p_1224_1_, int p_1224_2_, int p_1224_3_, Material p_1224_4_)
{
int var5 = 0;
float var6 = 0.0F;
@@ -3776,7 +3843,7 @@
var27 = p_22330_1_.func_211_a(this.field_1772_a, p_22330_2_, p_22330_3_, p_22330_4_, 2);
this.func_1220_c(p_22330_1_, (double)p_22330_2_, (double)p_22330_3_, (double)p_22330_4_, var27);
- if (field_27406_a && var27 == 3 && this.field_1771_b < 0)
+ if (cfgGrassFix && var27 == 3 && this.field_1771_b < 0)
{
this.field_22351_H *= p_22330_5_;
this.field_22350_I *= p_22330_5_;
@@ -3899,7 +3966,7 @@
var27 = p_22330_1_.func_211_a(this.field_1772_a, p_22330_2_, p_22330_3_, p_22330_4_, 3);
this.func_1225_d(p_22330_1_, (double)p_22330_2_, (double)p_22330_3_, (double)p_22330_4_, p_22330_1_.func_211_a(this.field_1772_a, p_22330_2_, p_22330_3_, p_22330_4_, 3));
- if (field_27406_a && var27 == 3 && this.field_1771_b < 0)
+ if (cfgGrassFix && var27 == 3 && this.field_1771_b < 0)
{
this.field_22351_H *= p_22330_5_;
this.field_22350_I *= p_22330_5_;
@@ -4022,7 +4089,7 @@
var27 = p_22330_1_.func_211_a(this.field_1772_a, p_22330_2_, p_22330_3_, p_22330_4_, 4);
this.func_1231_e(p_22330_1_, (double)p_22330_2_, (double)p_22330_3_, (double)p_22330_4_, var27);
- if (field_27406_a && var27 == 3 && this.field_1771_b < 0)
+ if (cfgGrassFix && var27 == 3 && this.field_1771_b < 0)
{
this.field_22351_H *= p_22330_5_;
this.field_22350_I *= p_22330_5_;
@@ -4145,7 +4212,7 @@
var27 = p_22330_1_.func_211_a(this.field_1772_a, p_22330_2_, p_22330_3_, p_22330_4_, 5);
this.func_1236_f(p_22330_1_, (double)p_22330_2_, (double)p_22330_3_, (double)p_22330_4_, var27);
- if (field_27406_a && var27 == 3 && this.field_1771_b < 0)
+ if (cfgGrassFix && var27 == 3 && this.field_1771_b < 0)
{
this.field_22351_H *= p_22330_5_;
this.field_22350_I *= p_22330_5_;
@@ -4169,7 +4236,7 @@
return var8;
}
- private int func_35924_c(int p_35924_1_, int p_35924_2_, int p_35924_3_, int p_35924_4_)
+ public int func_35924_c(int p_35924_1_, int p_35924_2_, int p_35924_3_, int p_35924_4_)
{
if (p_35924_1_ == 0)
{
@@ -4251,7 +4318,7 @@
var28 = p_4152_1_.func_211_a(this.field_1772_a, p_4152_2_, p_4152_3_, p_4152_4_, 2);
this.func_1220_c(p_4152_1_, (double)p_4152_2_, (double)p_4152_3_, (double)p_4152_4_, var28);
- if (field_27406_a && var28 == 3 && this.field_1771_b < 0)
+ if (cfgGrassFix && var28 == 3 && this.field_1771_b < 0)
{
var8.func_987_a(var18 * p_4152_5_, var21 * p_4152_6_, var24 * p_4152_7_);
this.func_1220_c(p_4152_1_, (double)p_4152_2_, (double)p_4152_3_, (double)p_4152_4_, 38);
@@ -4267,7 +4334,7 @@
var28 = p_4152_1_.func_211_a(this.field_1772_a, p_4152_2_, p_4152_3_, p_4152_4_, 3);
this.func_1225_d(p_4152_1_, (double)p_4152_2_, (double)p_4152_3_, (double)p_4152_4_, var28);
- if (field_27406_a && var28 == 3 && this.field_1771_b < 0)
+ if (cfgGrassFix && var28 == 3 && this.field_1771_b < 0)
{
var8.func_987_a(var18 * p_4152_5_, var21 * p_4152_6_, var24 * p_4152_7_);
this.func_1225_d(p_4152_1_, (double)p_4152_2_, (double)p_4152_3_, (double)p_4152_4_, 38);
@@ -4283,7 +4350,7 @@
var28 = p_4152_1_.func_211_a(this.field_1772_a, p_4152_2_, p_4152_3_, p_4152_4_, 4);
this.func_1231_e(p_4152_1_, (double)p_4152_2_, (double)p_4152_3_, (double)p_4152_4_, var28);
- if (field_27406_a && var28 == 3 && this.field_1771_b < 0)
+ if (cfgGrassFix && var28 == 3 && this.field_1771_b < 0)
{
var8.func_987_a(var19 * p_4152_5_, var22 * p_4152_6_, var25 * p_4152_7_);
this.func_1231_e(p_4152_1_, (double)p_4152_2_, (double)p_4152_3_, (double)p_4152_4_, 38);
@@ -4299,7 +4366,7 @@
var28 = p_4152_1_.func_211_a(this.field_1772_a, p_4152_2_, p_4152_3_, p_4152_4_, 5);
this.func_1236_f(p_4152_1_, (double)p_4152_2_, (double)p_4152_3_, (double)p_4152_4_, var28);
- if (field_27406_a && var28 == 3 && this.field_1771_b < 0)
+ if (cfgGrassFix && var28 == 3 && this.field_1771_b < 0)
{
var8.func_987_a(var19 * p_4152_5_, var22 * p_4152_6_, var25 * p_4152_7_);
this.func_1236_f(p_4152_1_, (double)p_4152_2_, (double)p_4152_3_, (double)p_4152_4_, 38);
@@ -5963,6 +6030,10 @@
p_1227_1_.func_213_a(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
+ else
+ {
+ FMLClientHandler.instance().renderInventoryBlock(this, p_1227_1_, p_1227_2_, var6);
+ }
}
else
{
@@ -6020,6 +6091,28 @@
public static boolean func_1219_a(int p_1219_0_)
{
- return p_1219_0_ == 0 ? true : (p_1219_0_ == 13 ? true : (p_1219_0_ == 10 ? true : (p_1219_0_ == 11 ? true : (p_1219_0_ == 27 ? true : (p_1219_0_ == 22 ? true : (p_1219_0_ == 21 ? true : (p_1219_0_ == 16 ? true : p_1219_0_ == 26)))))));
+ switch (p_1219_0_)
+ {
+ case 0:
+ return true;
+ case 13:
+ return true;
+ case 10:
+ return true;
+ case 11:
+ return true;
+ case 27:
+ return true;
+ case 22:
+ return true;
+ case 21:
+ return true;
+ case 16:
+ return true;
+ case 26:
+ return true;
+ default:
+ return FMLClientHandler.instance().renderItemAsFull3DBlock(p_1219_0_);
+ }
}
}

View File

@ -1,143 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/RenderEngine.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/RenderEngine.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,6 +1,10 @@
package net.minecraft.src;
+import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
+import static org.lwjgl.opengl.GL11.GL_TEXTURE_WIDTH;
+
import java.awt.Color;
+import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
@@ -13,9 +17,16 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
import javax.imageio.ImageIO;
+
import org.lwjgl.opengl.GL11;
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.FMLCommonHandler;
+
public class RenderEngine
{
private HashMap field_6528_b = new HashMap();
@@ -23,13 +34,14 @@
private IntHashMap field_1607_c = new IntHashMap();
private IntBuffer field_1606_d = GLAllocation.func_1125_c(1);
private ByteBuffer field_1605_e = GLAllocation.func_1127_b(16777216);
- private List field_1604_f = new ArrayList();
+ public List field_1604_f = new ArrayList();
private Map field_1603_g = new HashMap();
private GameSettings field_1602_h;
public boolean field_4281_i = false;
public boolean field_4280_j = false;
private TexturePackList field_6527_k;
private BufferedImage field_25189_l = new BufferedImage(64, 64, 2);
+ public static Logger log = FMLCommonHandler.instance().getFMLLogger();
public RenderEngine(TexturePackList p_i754_1_, GameSettings p_i754_2_)
{
@@ -94,8 +106,9 @@
this.field_28151_c.put(p_28149_1_, var7);
return var7;
}
- catch (IOException var6)
+ catch (Exception var6)
{
+ log.log(Level.INFO,String.format("An error occured reading texture file %s (getTexture)", p_28149_1_),var6);
var6.printStackTrace();
int[] var5 = this.func_28148_b(this.field_25189_l);
this.field_28151_c.put(p_28149_1_, var5);
@@ -242,6 +255,7 @@
int var3 = p_1068_1_.getWidth();
int var4 = p_1068_1_.getHeight();
+ FMLClientHandler.instance().setTextureDimensions(p_1068_2_, var3, var4, (List<TextureFX>)field_1604_f);
int[] var5 = new int[var3 * var4];
byte[] var6 = new byte[var3 * var4 * 4];
p_1068_1_.getRGB(0, 0, var3, var4, var5, 0, var3);
@@ -397,6 +411,7 @@
public void func_1066_a(TextureFX p_1066_1_)
{
+ FMLClientHandler.instance().onPreRegisterEffect(p_1066_1_);
this.field_1604_f.add(p_1066_1_);
p_1066_1_.func_783_a();
}
@@ -410,10 +425,26 @@
{
TextureFX var3 = (TextureFX)var2.next();
var3.field_1131_c = this.field_1602_h.field_1578_g;
- var3.func_783_a();
- this.field_1605_e.clear();
- this.field_1605_e.put(var3.field_1127_a);
- this.field_1605_e.position(0).limit(var3.field_1127_a.length);
+ if (!FMLClientHandler.instance().onUpdateTextureEffect(var3))
+ {
+ continue;
+ }
+
+ Dimension dim = FMLClientHandler.instance().getTextureDimensions(var3);
+ int tWidth = dim.width / 16;
+ int tHeight = dim.height / 16;
+ int tLen = tWidth * tHeight * 4;
+
+ if (var3.field_1127_a.length == tLen)
+ {
+ this.field_1605_e.clear();
+ this.field_1605_e.put(var3.field_1127_a);
+ this.field_1605_e.position(0).limit(var3.field_1127_a.length);
+ }
+ else
+ {
+ FMLClientHandler.instance().scaleTextureFXData(var3.field_1127_a, field_1605_e, tWidth, tLen);
+ }
if (var3.field_1126_b != var1)
{
@@ -423,9 +454,11 @@
for (int var4 = 0; var4 < var3.field_1129_e; ++var4)
{
+ int xOffset = var3.field_1126_b % 16 * tWidth + var4 * tWidth;
for (int var5 = 0; var5 < var3.field_1129_e; ++var5)
{
- GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, var3.field_1126_b % 16 * 16 + var4 * 16, var3.field_1126_b / 16 * 16 + var5 * 16, 16, 16, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, this.field_1605_e);
+ int yOffset = var3.field_1126_b / 16 * tHeight + var5 * tHeight;
+ GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, xOffset, yOffset, tWidth, tHeight, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, this.field_1605_e);
}
}
}
@@ -490,8 +523,9 @@
this.field_4280_j = false;
this.field_4281_i = false;
}
- catch (IOException var7)
+ catch (Exception var7)
{
+ log.log(Level.INFO,String.format("An error occured reading texture file %s (refreshTexture)", var9),var7);
var7.printStackTrace();
}
}
@@ -527,11 +561,13 @@
this.field_4280_j = false;
this.field_4281_i = false;
}
- catch (IOException var6)
+ catch (Exception var6)
{
+ log.log(Level.INFO,String.format("An error occured reading texture file data %s (refreshTexture)", var9),var6);
var6.printStackTrace();
}
}
+ FMLClientHandler.instance().onTexturePackChange(this, var1, (List<TextureFX>)field_1604_f);
}
private BufferedImage func_6526_a(InputStream p_6526_1_) throws IOException

View File

@ -1,11 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/RenderManager.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/RenderManager.java 0000-00-00 00:00:00.000000000 -0000
@@ -183,4 +183,8 @@
{
return this.field_1218_p;
}
+
+ public Map<Class<? extends Entity>, Render> getRendererList() {
+ return field_6501_o;
+ }
}

View File

@ -1,33 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/RenderPlayer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/RenderPlayer.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,5 +1,9 @@
package net.minecraft.src;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.GL11;
@@ -8,7 +12,7 @@
private ModelBiped field_209_f;
private ModelBiped field_208_g;
private ModelBiped field_207_h;
- private static final String[] field_206_i = new String[] {"cloth", "chain", "iron", "diamond", "gold"};
+ private static String[] field_206_i = new String[] {"cloth", "chain", "iron", "diamond", "gold"};
public RenderPlayer()
{
@@ -404,4 +408,11 @@
{
this.func_188_a((EntityPlayer)p_147_1_, p_147_2_, p_147_4_, p_147_6_, p_147_8_, p_147_9_);
}
+
+ public static int addNewArmourPrefix(String prefix) {
+ List<String> armours=new ArrayList(Arrays.asList(field_206_i));
+ armours.add(prefix);
+ field_206_i=armours.toArray(new String[0]);
+ return armours.indexOf(prefix);
+ }
}

View File

@ -1,37 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/ServerConfigurationManager.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/ServerConfigurationManager.java 0000-00-00 00:00:00.000000000 -0000
@@ -10,6 +10,8 @@
import java.util.Set;
import java.util.logging.Logger;
+import cpw.mods.fml.client.FMLClientHandler;
+
public abstract class ServerConfigurationManager
{
private static final SimpleDateFormat field_57132_e = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z");
@@ -70,6 +72,8 @@
}
p_57113_2_.func_56256_h();
+ FMLClientHandler.instance().handleClientLogin(p_57113_1_);
+ FMLClientHandler.instance().announceLogin(p_57113_2_);
}
public void func_57096_a(WorldServer[] p_57096_1_)
@@ -143,6 +147,7 @@
public void func_57093_e(EntityPlayerMP p_57093_1_)
{
+ FMLClientHandler.instance().announceLogout(p_57093_1_);
this.func_57118_b(p_57093_1_);
WorldServer var2 = p_57093_1_.func_56260_H();
var2.func_607_d(p_57093_1_);
@@ -354,6 +359,8 @@
p_57125_1_.field_56267_c.func_57360_a(var5);
this.func_57120_b(p_57125_1_, var5);
this.func_57124_f(p_57125_1_);
+
+ FMLClientHandler.instance().announceDimensionChange(p_57125_1_);
}
public void func_57104_b()

View File

@ -1,18 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/SlotCrafting.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/SlotCrafting.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,5 +1,7 @@
package net.minecraft.src;
+import cpw.mods.fml.client.FMLClientHandler;
+
public class SlotCrafting extends Slot
{
private final IInventory field_1125_c;
@@ -83,6 +85,7 @@
public void func_4103_a(ItemStack p_4103_1_)
{
+ FMLClientHandler.instance().onItemCrafted(field_25015_e, p_4103_1_, field_1125_c);
this.func_48434_c(p_4103_1_);
for (int var2 = 0; var2 < this.field_1125_c.func_469_c(); ++var2)

View File

@ -1,19 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/SlotFurnace.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/SlotFurnace.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,5 +1,7 @@
package net.minecraft.src;
+import cpw.mods.fml.client.FMLClientHandler;
+
public class SlotFurnace extends Slot
{
private EntityPlayer field_27011_d;
@@ -56,6 +58,8 @@
this.field_48437_f = 0;
+ FMLClientHandler.instance().onItemSmelted(field_27011_d, p_48434_1_);
+
if (p_48434_1_.field_1617_c == Item.field_223_m.field_291_aS)
{
this.field_27011_d.func_25058_a(AchievementList.field_27385_k, 1);

View File

@ -4,31 +4,31 @@
{ {
String var2 = "local"; String var2 = "local";
StringBuilder var3 = new StringBuilder(); StringBuilder var3 = new StringBuilder();
- JsonRootNode var4 = (new JdomParser()).func_27367_a(p_27177_0_); - JsonRootNode var4 = (new JdomParser()).func_74789_a(p_77453_0_);
- List var5 = var4.func_27217_b(new Object[] {"stats-change"}); - List var5 = var4.func_74612_b(new Object[] {"stats-change"});
+ JsonRootNode var4 = (new JdomParser()).parse(p_27177_0_); + JsonRootNode var4 = (new JdomParser()).parse(p_77453_0_);
+ List var5 = var4.getArrayNode(new Object[] {"stats-change"}); + List var5 = var4.getArrayNode(new Object[] {"stats-change"});
Iterator var6 = var5.iterator(); Iterator var6 = var5.iterator();
while (var6.hasNext()) while (var6.hasNext())
{ {
JsonNode var7 = (JsonNode)var6.next(); JsonNode var7 = (JsonNode)var6.next();
- Map var8 = var7.func_27214_c(); - Map var8 = var7.func_74614_d();
+ Map var8 = var7.getFields(); + Map var8 = var7.getFields();
Entry var9 = (Entry)var8.entrySet().iterator().next(); Entry var9 = (Entry)var8.entrySet().iterator().next();
- int var10 = Integer.parseInt(((JsonStringNode)var9.getKey()).func_27216_b()); - int var10 = Integer.parseInt(((JsonStringNode)var9.getKey()).func_74615_c());
- int var11 = Integer.parseInt(((JsonNode)var9.getValue()).func_27216_b()); - int var11 = Integer.parseInt(((JsonNode)var9.getValue()).func_74615_c());
+ int var10 = Integer.parseInt(((JsonStringNode)var9.getKey()).getText()); + int var10 = Integer.parseInt(((JsonStringNode)var9.getKey()).getText());
+ int var11 = Integer.parseInt(((JsonNode)var9.getValue()).getText()); + int var11 = Integer.parseInt(((JsonNode)var9.getValue()).getText());
StatBase var12 = StatList.func_27361_a(var10); StatBase var12 = StatList.func_75923_a(var10);
if (var12 == null) if (var12 == null)
@@ -152,7 +152,7 @@ @@ -152,7 +152,7 @@
MD5String var14 = new MD5String(var2); MD5String var14 = new MD5String(var2);
String var15 = var14.func_27369_a(var3.toString()); String var15 = var14.func_75899_a(var3.toString());
- if (!var15.equals(var4.func_27213_a(new Object[] {"checksum"}))) - if (!var15.equals(var4.func_74611_a(new Object[] {"checksum"})))
+ if (!var15.equals(var4.getNode(new Object[] {"checksum"}))) + if (!var15.equals(var4.getStringValue(new Object[] {"checksum"})))
{ {
System.out.println("CHECKSUM MISMATCH"); System.out.println("CHECKSUM MISMATCH");
return null; return null;

View File

@ -1,29 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/StringTranslate.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/StringTranslate.java 0000-00-00 00:00:00.000000000 -0000
@@ -7,6 +7,9 @@
import java.util.Properties;
import java.util.TreeMap;
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.FMLCommonHandler;
+
public class StringTranslate
{
private static StringTranslate field_20165_a = new StringTranslate("en_US");
@@ -77,6 +80,7 @@
}
}
}
+ FMLCommonHandler.instance().handleLanguageLoad(p_44025_1_,p_44025_2_);
}
public void func_44023_a(String p_44023_1_)
@@ -165,4 +169,8 @@
{
return "ar_SA".equals(p_46109_0_) || "he_IL".equals(p_46109_0_);
}
+
+ public Properties getTranslationTable() {
+ return field_20164_b;
+ }
}

View File

@ -1,85 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TextureCompassFX.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TextureCompassFX.java 0000-00-00 00:00:00.000000000 -0000
@@ -3,12 +3,14 @@
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
+
+import cpw.mods.fml.client.FMLTextureFX;
import net.minecraft.client.Minecraft;
-public class TextureCompassFX extends TextureFX
+public class TextureCompassFX extends FMLTextureFX
{
private Minecraft field_4231_g;
- private int[] field_4230_h = new int[256];
+ private int[] field_4230_h;
private double field_4229_i;
private double field_4228_j;
@@ -17,13 +19,20 @@
super(Item.field_4025_aO.func_27009_a(0));
this.field_4231_g = p_i617_1_;
this.field_1128_f = 1;
+ setup();
+ }
+ @Override
+ public void setup()
+ {
+ super.setup();
+ field_4230_h = new int[tileSizeSquare];
try
{
- BufferedImage var2 = ImageIO.read(Minecraft.class.getResource("/gui/items.png"));
- int var3 = this.field_1126_b % 16 * 16;
- int var4 = this.field_1126_b / 16 * 16;
- var2.getRGB(var3, var4, 16, 16, this.field_4230_h, 0, 16);
+ BufferedImage var2 = ImageIO.read(field_4231_g.field_6298_C.field_6534_a.func_6481_a("/gui/items.png"));
+ int var3 = this.field_1126_b % 16 * tileSizeBase;
+ int var4 = this.field_1126_b / 16 * tileSizeBase;
+ var2.getRGB(var3, var4, tileSizeBase, tileSizeBase, this.field_4230_h, 0, tileSizeBase);
}
catch (IOException var5)
{
@@ -33,7 +42,7 @@
public void func_783_a()
{
- for (int var1 = 0; var1 < 256; ++var1)
+ for (int var1 = 0; var1 < tileSizeSquare; ++var1)
{
int var2 = this.field_4230_h[var1] >> 24 & 255;
int var3 = this.field_4230_h[var1] >> 16 & 255;
@@ -110,11 +119,11 @@
int var19;
int var18;
- for (var9 = -4; var9 <= 4; ++var9)
+ for (var9 = -(tileSizeBase >> 2); var9 <= (tileSizeBase >> 2); ++var9)
{
- var10 = (int)(8.5D + var26 * (double)var9 * 0.3D);
- var11 = (int)(7.5D - var24 * (double)var9 * 0.3D * 0.5D);
- var12 = var11 * 16 + var10;
+ var10 = (int)((tileSizeBase >> 1) + 0.5D + var26 * (double)var9 * 0.3D);
+ var11 = (int)((tileSizeBase >> 1) - 0.5D - var24 * (double)var9 * 0.3D * 0.5D);
+ var12 = var11 * tileSizeBase + var10;
var13 = 100;
var14 = 100;
var15 = 100;
@@ -136,11 +145,11 @@
this.field_1127_a[var12 * 4 + 3] = (byte)var16;
}
- for (var9 = -8; var9 <= 16; ++var9)
+ for (var9 = -(tileSizeBase>>2); var9 <= tileSizeBase; ++var9)
{
- var10 = (int)(8.5D + var24 * (double)var9 * 0.3D);
- var11 = (int)(7.5D + var26 * (double)var9 * 0.3D * 0.5D);
- var12 = var11 * 16 + var10;
+ var10 = (int)((tileSizeBase >> 1) + 0.5D + var24 * (double)var9 * 0.3D);
+ var11 = (int)((tileSizeBase >> 1) - 0.5D + var26 * (double)var9 * 0.3D * 0.5D);
+ var12 = var11 * tileSizeBase + var10;
var13 = var9 >= 0 ? 255 : 100;
var14 = var9 >= 0 ? 20 : 100;
var15 = var9 >= 0 ? 20 : 100;

View File

@ -1,87 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TextureFlamesFX.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TextureFlamesFX.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,13 +1,28 @@
package net.minecraft.src;
-public class TextureFlamesFX extends TextureFX
+import cpw.mods.fml.client.FMLTextureFX;
+
+public class TextureFlamesFX extends FMLTextureFX
{
protected float[] field_1133_g = new float[320];
protected float[] field_1132_h = new float[320];
+ private int fireTileSize = 20;
+ private int fireGridSize = 320;
public TextureFlamesFX(int p_i474_1_)
{
super(Block.field_402_as.field_378_bb + p_i474_1_ * 16);
+ setup();
+ }
+
+ @Override
+ public void setup()
+ {
+ super.setup();
+ fireTileSize = tileSizeBase + (tileSizeBase >> 2);
+ fireGridSize = fireTileSize * tileSizeBase;
+ field_1133_g = new float[fireGridSize];
+ field_1132_h = new float[fireGridSize];
}
public void func_783_a()
@@ -16,31 +31,36 @@
float var4;
int var6;
- for (int var1 = 0; var1 < 16; ++var1)
+ float fireFactor1 = 3.0F + (float)(tileSizeBase >> 4);
+
+ float fireFactor2 = 1.01F + (0.8F / tileSizeBase);
+
+ for (int var1 = 0; var1 < tileSizeBase; ++var1)
{
- for (int var2 = 0; var2 < 20; ++var2)
+ for (int var2 = 0; var2 < fireTileSize; ++var2)
{
- var3 = 18;
- var4 = this.field_1133_g[var1 + (var2 + 1) % 20 * 16] * (float)var3;
+ var3 = fireTileSize - (tileSizeBase >> 3);
+
+ var4 = this.field_1133_g[var1 + (var2 + 1) % fireTileSize * tileSizeBase] * (float)var3;
for (int var5 = var1 - 1; var5 <= var1 + 1; ++var5)
{
for (var6 = var2; var6 <= var2 + 1; ++var6)
{
- if (var5 >= 0 && var6 >= 0 && var5 < 16 && var6 < 20)
+ if (var5 >= 0 && var6 >= 0 && var5 < tileSizeBase && var6 < fireTileSize)
{
- var4 += this.field_1133_g[var5 + var6 * 16];
+ var4 += this.field_1133_g[var5 + var6 * tileSizeBase];
}
++var3;
}
}
- this.field_1132_h[var1 + var2 * 16] = var4 / ((float)var3 * 1.0600001F);
+ this.field_1132_h[var1 + var2 * tileSizeBase] = var4 / ((float)var3 * fireFactor2);
- if (var2 >= 19)
+ if (var2 >= fireTileSize - (tileSizeBase >> 4))
{
- this.field_1132_h[var1 + var2 * 16] = (float)(Math.random() * Math.random() * Math.random() * 4.0D + Math.random() * 0.10000000149011612D + 0.20000000298023224D);
+ this.field_1132_h[var1 + var2 * tileSizeBase] = (float)(Math.random() * Math.random() * Math.random() * fireFactor1 + Math.random() * 0.1F + 0.2F);
}
}
}
@@ -49,7 +69,7 @@
this.field_1132_h = this.field_1133_g;
this.field_1133_g = var13;
- for (var3 = 0; var3 < 256; ++var3)
+ for (var3 = 0; var3 < tileSizeSquare; ++var3)
{
var4 = this.field_1133_g[var3] * 1.8F;

View File

@ -1,92 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TextureLavaFX.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TextureLavaFX.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,15 +1,28 @@
package net.minecraft.src;
-public class TextureLavaFX extends TextureFX
+import cpw.mods.fml.client.FMLTextureFX;
+
+public class TextureLavaFX extends FMLTextureFX
{
- protected float[] field_1147_g = new float[256];
- protected float[] field_1146_h = new float[256];
- protected float[] field_1145_i = new float[256];
- protected float[] field_1144_j = new float[256];
+ protected float[] field_1147_g;
+ protected float[] field_1146_h;
+ protected float[] field_1145_i;
+ protected float[] field_1144_j;
public TextureLavaFX()
{
super(Block.field_397_D.field_378_bb);
+ setup();
+ }
+
+ @Override
+ public void setup()
+ {
+ super.setup();
+ field_1147_g = new float[tileSizeSquare];
+ field_1146_h = new float[tileSizeSquare];
+ field_1145_i = new float[tileSizeSquare];
+ field_1144_j = new float[tileSizeSquare];
}
public void func_783_a()
@@ -22,9 +35,9 @@
int var8;
int var9;
- for (int var1 = 0; var1 < 16; ++var1)
+ for (int var1 = 0; var1 < tileSizeBase; ++var1)
{
- for (var2 = 0; var2 < 16; ++var2)
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
{
var3 = 0.0F;
int var4 = (int)(MathHelper.func_1106_a((float)var2 * (float)Math.PI * 2.0F / 16.0F) * 1.2F);
@@ -34,25 +47,25 @@
{
for (var7 = var2 - 1; var7 <= var2 + 1; ++var7)
{
- var8 = var6 + var4 & 15;
- var9 = var7 + var5 & 15;
- var3 += this.field_1147_g[var8 + var9 * 16];
+ var8 = var6 + var4 & tileSizeMask;
+ var9 = var7 + var5 & tileSizeMask;
+ var3 += this.field_1147_g[var8 + var9 * tileSizeBase];
}
}
- this.field_1146_h[var1 + var2 * 16] = var3 / 10.0F + (this.field_1145_i[(var1 + 0 & 15) + (var2 + 0 & 15) * 16] + this.field_1145_i[(var1 + 1 & 15) + (var2 + 0 & 15) * 16] + this.field_1145_i[(var1 + 1 & 15) + (var2 + 1 & 15) * 16] + this.field_1145_i[(var1 + 0 & 15) + (var2 + 1 & 15) * 16]) / 4.0F * 0.8F;
- this.field_1145_i[var1 + var2 * 16] += this.field_1144_j[var1 + var2 * 16] * 0.01F;
+ this.field_1146_h[var1 + var2 * tileSizeBase] = var3 / 10.0F + (this.field_1145_i[(var1 + 0 & 15) + (var2 + 0 & 15) * tileSizeBase] + this.field_1145_i[(var1 + 1 & 15) + (var2 + 0 & 15) * tileSizeBase] + this.field_1145_i[(var1 + 1 & 15) + (var2 + 1 & 15) * tileSizeBase] + this.field_1145_i[(var1 + 0 & 15) + (var2 + 1 & 15) * tileSizeBase]) / 4.0F * 0.8F;
+ this.field_1145_i[var1 + var2 * tileSizeBase] += this.field_1144_j[var1 + var2 * tileSizeBase] * 0.01F;
- if (this.field_1145_i[var1 + var2 * 16] < 0.0F)
+ if (this.field_1145_i[var1 + var2 * tileSizeBase] < 0.0F)
{
- this.field_1145_i[var1 + var2 * 16] = 0.0F;
+ this.field_1145_i[var1 + var2 * tileSizeBase] = 0.0F;
}
- this.field_1144_j[var1 + var2 * 16] -= 0.06F;
+ this.field_1144_j[var1 + var2 * tileSizeBase] -= 0.06F;
if (Math.random() < 0.005D)
{
- this.field_1144_j[var1 + var2 * 16] = 1.5F;
+ this.field_1144_j[var1 + var2 * tileSizeBase] = 1.5F;
}
}
}
@@ -61,7 +74,7 @@
this.field_1146_h = this.field_1147_g;
this.field_1147_g = var11;
- for (var2 = 0; var2 < 256; ++var2)
+ for (var2 = 0; var2 < tileSizeSquare; ++var2)
{
var3 = this.field_1147_g[var2] * 2.0F;

View File

@ -1,90 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TextureLavaFlowFX.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TextureLavaFlowFX.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,6 +1,8 @@
package net.minecraft.src;
-public class TextureLavaFlowFX extends TextureFX
+import cpw.mods.fml.client.FMLTextureFX;
+
+public class TextureLavaFlowFX extends FMLTextureFX
{
protected float[] field_1143_g = new float[256];
protected float[] field_1142_h = new float[256];
@@ -12,6 +14,18 @@
{
super(Block.field_397_D.field_378_bb + 1);
this.field_1129_e = 2;
+ setup();
+ }
+
+ @Override
+ public void setup()
+ {
+ super.setup();
+ field_1143_g = new float[tileSizeSquare];
+ field_1142_h = new float[tileSizeSquare];
+ field_1141_i = new float[tileSizeSquare];
+ field_1140_j = new float[tileSizeSquare];
+ field_1139_k = 0;
}
public void func_783_a()
@@ -25,9 +39,9 @@
int var8;
int var9;
- for (int var1 = 0; var1 < 16; ++var1)
+ for (int var1 = 0; var1 < tileSizeBase; ++var1)
{
- for (var2 = 0; var2 < 16; ++var2)
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
{
var3 = 0.0F;
int var4 = (int)(MathHelper.func_1106_a((float)var2 * (float)Math.PI * 2.0F / 16.0F) * 1.2F);
@@ -37,25 +51,25 @@
{
for (var7 = var2 - 1; var7 <= var2 + 1; ++var7)
{
- var8 = var6 + var4 & 15;
- var9 = var7 + var5 & 15;
- var3 += this.field_1143_g[var8 + var9 * 16];
+ var8 = var6 + var4 & tileSizeMask;
+ var9 = var7 + var5 & tileSizeMask;
+ var3 += this.field_1143_g[var8 + var9 * tileSizeBase];
}
}
- this.field_1142_h[var1 + var2 * 16] = var3 / 10.0F + (this.field_1141_i[(var1 + 0 & 15) + (var2 + 0 & 15) * 16] + this.field_1141_i[(var1 + 1 & 15) + (var2 + 0 & 15) * 16] + this.field_1141_i[(var1 + 1 & 15) + (var2 + 1 & 15) * 16] + this.field_1141_i[(var1 + 0 & 15) + (var2 + 1 & 15) * 16]) / 4.0F * 0.8F;
- this.field_1141_i[var1 + var2 * 16] += this.field_1140_j[var1 + var2 * 16] * 0.01F;
+ this.field_1142_h[var1 + var2 * tileSizeBase] = var3 / 10.0F + (this.field_1141_i[(var1 + 0 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_1141_i[(var1 + 1 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_1141_i[(var1 + 1 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase] + this.field_1141_i[(var1 + 0 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase]) / 4.0F * 0.8F;
+ this.field_1141_i[var1 + var2 * tileSizeBase] += this.field_1140_j[var1 + var2 * tileSizeBase] * 0.01F;
- if (this.field_1141_i[var1 + var2 * 16] < 0.0F)
+ if (this.field_1141_i[var1 + var2 * tileSizeBase] < 0.0F)
{
- this.field_1141_i[var1 + var2 * 16] = 0.0F;
+ this.field_1141_i[var1 + var2 * tileSizeBase] = 0.0F;
}
- this.field_1140_j[var1 + var2 * 16] -= 0.06F;
+ this.field_1140_j[var1 + var2 * tileSizeBase] -= 0.06F;
if (Math.random() < 0.005D)
{
- this.field_1140_j[var1 + var2 * 16] = 1.5F;
+ this.field_1140_j[var1 + var2 * tileSizeBase] = 1.5F;
}
}
}
@@ -64,9 +78,9 @@
this.field_1142_h = this.field_1143_g;
this.field_1143_g = var11;
- for (var2 = 0; var2 < 256; ++var2)
+ for (var2 = 0; var2 < tileSizeSquare; ++var2)
{
- var3 = this.field_1143_g[var2 - this.field_1139_k / 3 * 16 & 255] * 2.0F;
+ var3 = this.field_1143_g[(var2 - this.field_1139_k / 3 * tileSizeBase) & tileSizeSquareMask] * 2.0F;
if (var3 > 1.0F)
{

View File

@ -1,28 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TexturePackList.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TexturePackList.java 0000-00-00 00:00:00.000000000 -0000
@@ -8,6 +8,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+
+import cpw.mods.fml.client.FMLClientHandler;
import net.minecraft.client.Minecraft;
public class TexturePackList
@@ -18,7 +20,7 @@
private final File field_57507_d;
private List field_6533_b = new ArrayList();
private Map field_55280_f = new HashMap();
- private TexturePackBase field_6534_a;
+ public TexturePackBase field_6534_a;
private boolean field_57509_h;
public TexturePackList(File p_i1506_1_, Minecraft p_i1506_2_)
@@ -131,6 +133,7 @@
var1.add(var5);
}
}
+ FMLClientHandler.instance().onEarlyTexturePackLoad(this.field_6534_a);
this.field_6533_b.removeAll(var1);
var2 = this.field_6533_b.iterator();

View File

@ -1,78 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TexturePortalFX.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TexturePortalFX.java 0000-00-00 00:00:00.000000000 -0000
@@ -2,31 +2,41 @@
import java.util.Random;
-public class TexturePortalFX extends TextureFX
+import cpw.mods.fml.client.FMLTextureFX;
+
+public class TexturePortalFX extends FMLTextureFX
{
private int field_4227_g = 0;
- private byte[][] field_4226_h = new byte[32][1024];
+ private byte[][] field_4226_h;
public TexturePortalFX()
{
super(Block.field_4047_bf.field_378_bb);
+ setup();
+ }
+
+ @Override
+ public void setup()
+ {
+ super.setup();
+ field_4226_h = new byte[32][tileSizeSquare << 4];
Random var1 = new Random(100L);
for (int var2 = 0; var2 < 32; ++var2)
{
- for (int var3 = 0; var3 < 16; ++var3)
+ for (int var3 = 0; var3 < tileSizeBase; ++var3)
{
- for (int var4 = 0; var4 < 16; ++var4)
+ for (int var4 = 0; var4 < tileSizeBase; ++var4)
{
float var5 = 0.0F;
int var6;
for (var6 = 0; var6 < 2; ++var6)
{
- float var7 = (float)(var6 * 16) * 0.5F;
- float var8 = (float)(var6 * 16) * 0.5F;
- float var9 = ((float)var3 - var7) / 16.0F * 2.0F;
- float var10 = ((float)var4 - var8) / 16.0F * 2.0F;
+ float var7 = (float)(var6 * tileSizeBase) * 0.5F;
+ float var8 = (float)(var6 * tileSizeBase) * 0.5F;
+ float var9 = ((float)var3 - var7) / (float)tileSizeBase * 2.0F;
+ float var10 = ((float)var4 - var8) / (float)tileSizeBase * 2.0F;
if (var9 < -1.0F)
{
@@ -60,7 +70,7 @@
int var13 = (int)(var5 * var5 * 200.0F + 55.0F);
int var14 = (int)(var5 * var5 * var5 * var5 * 255.0F);
int var15 = (int)(var5 * 100.0F + 155.0F);
- int var16 = var4 * 16 + var3;
+ int var16 = var4 * tileSizeBase + var3;
this.field_4226_h[var2][var16 * 4 + 0] = (byte)var13;
this.field_4226_h[var2][var16 * 4 + 1] = (byte)var14;
this.field_4226_h[var2][var16 * 4 + 2] = (byte)var6;
@@ -68,6 +78,7 @@
}
}
}
+ field_4227_g = 0;
}
public void func_783_a()
@@ -75,7 +86,7 @@
++this.field_4227_g;
byte[] var1 = this.field_4226_h[this.field_4227_g & 31];
- for (int var2 = 0; var2 < 256; ++var2)
+ for (int var2 = 0; var2 < tileSizeSquare; ++var2)
{
int var3 = var1[var2 * 4 + 0] & 255;
int var4 = var1[var2 * 4 + 1] & 255;

View File

@ -1,94 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TextureWatchFX.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TextureWatchFX.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,11 +1,18 @@
package net.minecraft.src;
+import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
+import java.awt.image.ImageObserver;
import java.io.IOException;
+import java.util.logging.Level;
+
import javax.imageio.ImageIO;
+
+import cpw.mods.fml.client.FMLTextureFX;
+import cpw.mods.fml.common.FMLCommonHandler;
import net.minecraft.client.Minecraft;
-public class TextureWatchFX extends TextureFX
+public class TextureWatchFX extends FMLTextureFX
{
private Minecraft field_4225_g;
private int[] field_4224_h = new int[256];
@@ -18,19 +25,36 @@
super(Item.field_4023_aQ.func_27009_a(0));
this.field_4225_g = p_i364_1_;
this.field_1128_f = 1;
+ setup();
+ }
+ @Override
+ public void setup()
+ {
+ super.setup();
+ field_4224_h = new int[tileSizeSquare];
+ field_4223_i = new int[tileSizeSquare];
try
{
- BufferedImage var2 = ImageIO.read(Minecraft.class.getResource("/gui/items.png"));
- int var3 = this.field_1126_b % 16 * 16;
- int var4 = this.field_1126_b / 16 * 16;
- var2.getRGB(var3, var4, 16, 16, this.field_4224_h, 0, 16);
- var2 = ImageIO.read(Minecraft.class.getResource("/misc/dial.png"));
- var2.getRGB(0, 0, 16, 16, this.field_4223_i, 0, 16);
+ BufferedImage var2 = ImageIO.read(field_4225_g.field_6298_C.field_6534_a.func_6481_a("/gui/items.png"));
+ int var3 = this.field_1126_b % 16 * tileSizeBase;
+ int var4 = this.field_1126_b / 16 * tileSizeBase;
+ var2.getRGB(var3, var4, tileSizeBase, tileSizeBase, this.field_4224_h, 0, tileSizeBase);
+ var2 = ImageIO.read(field_4225_g.field_6298_C.field_6534_a.func_6481_a("/misc/dial.png"));
+ if (var2.getWidth() != tileSizeBase)
+ {
+ BufferedImage tmp = new BufferedImage(tileSizeBase, tileSizeBase, 6);
+ Graphics2D gfx = tmp.createGraphics();
+ gfx.drawImage(var2, 0, 0, tileSizeBase, tileSizeBase, 0, 0, var2.getWidth(), var2.getHeight(), (ImageObserver)null);
+ gfx.dispose();
+ var2 = tmp;
+ }
+ var2.getRGB(0, 0, tileSizeBase, tileSizeBase, this.field_4223_i, 0, tileSizeBase);
}
- catch (IOException var5)
+ catch (Exception var5)
{
- var5.printStackTrace();
+ log.log(Level.WARNING, String.format("A problem occurred with the watch texture: animation will be disabled"), var5);
+ setErrored(true);
}
}
@@ -77,7 +101,7 @@
double var5 = Math.sin(this.field_4222_j);
double var7 = Math.cos(this.field_4222_j);
- for (int var9 = 0; var9 < 256; ++var9)
+ for (int var9 = 0; var9 < tileSizeSquare; ++var9)
{
int var10 = this.field_4224_h[var9] >> 24 & 255;
int var11 = this.field_4224_h[var9] >> 16 & 255;
@@ -86,12 +110,12 @@
if (var11 == var13 && var12 == 0 && var13 > 0)
{
- double var14 = -((double)(var9 % 16) / 15.0D - 0.5D);
- double var16 = (double)(var9 / 16) / 15.0D - 0.5D;
+ double var14 = -((double)(var9 % tileSizeBase) / tileSizeMask - 0.5D);
+ double var16 = (double)(var9 / tileSizeBase) / tileSizeMask - 0.5D;
int var18 = var11;
- int var19 = (int)((var14 * var7 + var16 * var5 + 0.5D) * 16.0D);
- int var20 = (int)((var16 * var7 - var14 * var5 + 0.5D) * 16.0D);
- int var21 = (var19 & 15) + (var20 & 15) * 16;
+ int var19 = (int)((var14 * var7 + var16 * var5 + 0.5D) * tileSizeBase);
+ int var20 = (int)((var16 * var7 - var14 * var5 + 0.5D) * tileSizeBase);
+ int var21 = (var19 & tileSizeMask) + (var20 & tileSizeMask) * tileSizeBase;
var10 = this.field_4223_i[var21] >> 24 & 255;
var11 = (this.field_4223_i[var21] >> 16 & 255) * var11 / 255;
var12 = (this.field_4223_i[var21] >> 8 & 255) * var18 / 255;

View File

@ -1,95 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TextureWaterFX.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TextureWaterFX.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,6 +1,8 @@
package net.minecraft.src;
-public class TextureWaterFX extends TextureFX
+import cpw.mods.fml.client.FMLTextureFX;
+
+public class TextureWaterFX extends FMLTextureFX
{
protected float[] field_1158_g = new float[256];
protected float[] field_1157_h = new float[256];
@@ -11,8 +13,20 @@
public TextureWaterFX()
{
super(Block.field_401_B.field_378_bb);
+ setup();
}
+ @Override
+ public void setup()
+ {
+ super.setup();
+ field_1158_g = new float[tileSizeSquare];
+ field_1157_h = new float[tileSizeSquare];
+ field_1156_i = new float[tileSizeSquare];
+ field_1155_j = new float[tileSizeSquare];
+ field_1154_k = 0;
+ }
+
public void func_783_a()
{
++this.field_1154_k;
@@ -22,39 +36,39 @@
int var5;
int var6;
- for (var1 = 0; var1 < 16; ++var1)
+ for (var1 = 0; var1 < tileSizeBase; ++var1)
{
- for (var2 = 0; var2 < 16; ++var2)
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
{
var3 = 0.0F;
for (int var4 = var1 - 1; var4 <= var1 + 1; ++var4)
{
- var5 = var4 & 15;
- var6 = var2 & 15;
- var3 += this.field_1158_g[var5 + var6 * 16];
+ var5 = var4 & tileSizeMask;
+ var6 = var2 & tileSizeMask;
+ var3 += this.field_1158_g[var5 + var6 * tileSizeBase];
}
- this.field_1157_h[var1 + var2 * 16] = var3 / 3.3F + this.field_1156_i[var1 + var2 * 16] * 0.8F;
+ this.field_1157_h[var1 + var2 * tileSizeBase] = var3 / 3.3F + this.field_1156_i[var1 + var2 * tileSizeBase] * 0.8F;
}
}
- for (var1 = 0; var1 < 16; ++var1)
+ for (var1 = 0; var1 < tileSizeBase; ++var1)
{
- for (var2 = 0; var2 < 16; ++var2)
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
{
- this.field_1156_i[var1 + var2 * 16] += this.field_1155_j[var1 + var2 * 16] * 0.05F;
+ this.field_1156_i[var1 + var2 * tileSizeBase] += this.field_1155_j[var1 + var2 * tileSizeBase] * 0.05F;
- if (this.field_1156_i[var1 + var2 * 16] < 0.0F)
+ if (this.field_1156_i[var1 + var2 * tileSizeBase] < 0.0F)
{
- this.field_1156_i[var1 + var2 * 16] = 0.0F;
+ this.field_1156_i[var1 + var2 * tileSizeBase] = 0.0F;
}
- this.field_1155_j[var1 + var2 * 16] -= 0.1F;
+ this.field_1155_j[var1 + var2 * tileSizeBase] -= 0.1F;
if (Math.random() < 0.05D)
{
- this.field_1155_j[var1 + var2 * 16] = 0.5F;
+ this.field_1155_j[var1 + var2 * tileSizeBase] = 0.5F;
}
}
}
@@ -63,7 +77,7 @@
this.field_1157_h = this.field_1158_g;
this.field_1158_g = var12;
- for (var2 = 0; var2 < 256; ++var2)
+ for (var2 = 0; var2 < tileSizeSquare; ++var2)
{
var3 = this.field_1158_g[var2];

View File

@ -1,98 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TextureWaterFlowFX.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TextureWaterFlowFX.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,6 +1,8 @@
package net.minecraft.src;
-public class TextureWaterFlowFX extends TextureFX
+import cpw.mods.fml.client.FMLTextureFX;
+
+public class TextureWaterFlowFX extends FMLTextureFX
{
protected float[] field_1138_g = new float[256];
protected float[] field_1137_h = new float[256];
@@ -12,6 +14,18 @@
{
super(Block.field_401_B.field_378_bb + 1);
this.field_1129_e = 2;
+ setup();
+ }
+
+ @Override
+ public void setup()
+ {
+ super.setup();
+ field_1138_g = new float[tileSizeSquare];
+ field_1137_h = new float[tileSizeSquare];
+ field_1136_i = new float[tileSizeSquare];
+ field_1135_j = new float[tileSizeSquare];
+ field_1134_k = 0;
}
public void func_783_a()
@@ -22,40 +36,40 @@
float var3;
int var5;
int var6;
-
- for (var1 = 0; var1 < 16; ++var1)
+
+ for (var1 = 0; var1 < tileSizeBase; ++var1)
{
- for (var2 = 0; var2 < 16; ++var2)
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
{
var3 = 0.0F;
for (int var4 = var2 - 2; var4 <= var2; ++var4)
{
- var5 = var1 & 15;
- var6 = var4 & 15;
- var3 += this.field_1138_g[var5 + var6 * 16];
+ var5 = var1 & tileSizeMask;
+ var6 = var4 & tileSizeMask;
+ var3 += this.field_1138_g[var5 + var6 * tileSizeBase];
}
- this.field_1137_h[var1 + var2 * 16] = var3 / 3.2F + this.field_1136_i[var1 + var2 * 16] * 0.8F;
+ this.field_1137_h[var1 + var2 * tileSizeBase] = var3 / 3.2F + this.field_1136_i[var1 + var2 * tileSizeBase] * 0.8F;
}
}
- for (var1 = 0; var1 < 16; ++var1)
+ for (var1 = 0; var1 < tileSizeBase; ++var1)
{
- for (var2 = 0; var2 < 16; ++var2)
+ for (var2 = 0; var2 < tileSizeBase; ++var2)
{
- this.field_1136_i[var1 + var2 * 16] += this.field_1135_j[var1 + var2 * 16] * 0.05F;
+ this.field_1136_i[var1 + var2 * tileSizeBase] += this.field_1135_j[var1 + var2 * tileSizeBase] * 0.05F;
- if (this.field_1136_i[var1 + var2 * 16] < 0.0F)
+ if (this.field_1136_i[var1 + var2 * tileSizeBase] < 0.0F)
{
- this.field_1136_i[var1 + var2 * 16] = 0.0F;
+ this.field_1136_i[var1 + var2 * tileSizeBase] = 0.0F;
}
- this.field_1135_j[var1 + var2 * 16] -= 0.3F;
+ this.field_1135_j[var1 + var2 * tileSizeBase] -= 0.3F;
if (Math.random() < 0.2D)
{
- this.field_1135_j[var1 + var2 * 16] = 0.5F;
+ this.field_1135_j[var1 + var2 * tileSizeBase] = 0.5F;
}
}
}
@@ -64,9 +78,9 @@
this.field_1137_h = this.field_1138_g;
this.field_1138_g = var12;
- for (var2 = 0; var2 < 256; ++var2)
+ for (var2 = 0; var2 < tileSizeSquare; ++var2)
{
- var3 = this.field_1138_g[var2 - this.field_1134_k * 16 & 255];
+ var3 = this.field_1138_g[var2 - this.field_1134_k * tileSizeBase & tileSizeSquareMask];
if (var3 > 1.0F)
{

View File

@ -1,11 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TileEntity.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TileEntity.java 0000-00-00 00:00:00.000000000 -0000
@@ -179,4 +179,8 @@
func_476_a(TileEntityEnchantmentTable.class, "EnchantTable");
func_476_a(TileEntityEndPortal.class, "Airportal");
}
+
+ public static void addNewTileEntityMapping(Class<? extends TileEntity> tileEntityClass, String id) {
+ func_476_a(tileEntityClass, id);
+ }
}

View File

@ -1,29 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,5 +1,8 @@
package net.minecraft.src;
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.FMLCommonHandler;
+
public class TileEntityFurnace extends TileEntity implements IInventory
{
private ItemStack[] field_833_a = new ItemStack[3];
@@ -268,8 +271,15 @@
return 300;
}
}
-
- return var2 instanceof ItemTool && ((ItemTool)var2).func_56820_c().equals("WOOD") ? 200 : (var2 instanceof ItemSword && ((ItemSword)var2).func_56828_d().equals("WOOD") ? 200 : (var2 instanceof ItemHoe && ((ItemHoe)var2).func_56829_d().equals("WOOD") ? 200 : (var1 == Item.field_266_B.field_291_aS ? 100 : (var1 == Item.field_225_k.field_291_aS ? 1600 : (var1 == Item.field_258_aw.field_291_aS ? 20000 : (var1 == Block.field_333_z.field_376_bc ? 100 : (var1 == Item.field_40417_bo.field_291_aS ? 2400 : 0)))))));
+ if (var2 instanceof ItemTool && ((ItemTool) var2).func_56820_c().equals("WOOD")) return 200;
+ if (var2 instanceof ItemSword && ((ItemSword) var2).func_56828_d().equals("WOOD")) return 200;
+ if (var2 instanceof ItemHoe && ((ItemHoe) var2).func_56829_d().equals("WOOD")) return 200;
+ if (var1 == Item.field_266_B.field_291_aS) return 100;
+ if (var1 == Item.field_225_k.field_291_aS) return 1600;
+ if (var1 == Item.field_258_aw.field_291_aS) return 20000;
+ if (var1 == Block.field_333_z.field_376_bc) return 100;
+ if (var1 == Item.field_40417_bo.field_291_aS) return 2400;
+ return FMLCommonHandler.instance().fuelLookup(var1, p_488_0_.func_21179_h());
}
}

View File

@ -1,12 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/TileEntityRenderer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/TileEntityRenderer.java 0000-00-00 00:00:00.000000000 -0000
@@ -123,4 +123,9 @@
{
return this.field_1541_n;
}
+
+ public static void setTileEntityRenderer(Class<? extends TileEntity> tileEntityClass, TileEntitySpecialRenderer renderer) {
+ field_1554_a.field_6517_m.put(tileEntityClass,renderer);
+ renderer.func_928_a(field_1554_a);
+ }
}

View File

@ -1,11 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/World.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/World.java 0000-00-00 00:00:00.000000000 -0000
@@ -3322,7 +3322,7 @@
public double func_46068_G()
{
- return this.field_22145_q.func_46133_t() == WorldType.field_48636_c ? 0.0D : 63.0D;
+ return this.field_22145_q.func_46133_t().getHorizon(this);
}
public CrashReport func_55266_a(CrashReport p_55266_1_)

View File

@ -1,45 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/WorldProvider.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/WorldProvider.java 0000-00-00 00:00:00.000000000 -0000
@@ -32,19 +32,12 @@
protected void func_4098_a()
{
- if (this.field_4216_a.func_22144_v().func_46133_t() == WorldType.field_48636_c)
- {
- this.field_4215_b = new WorldChunkManagerHell(BiomeGenBase.field_35485_c, 0.5F, 0.5F);
- }
- else
- {
- this.field_4215_b = new WorldChunkManager(this.field_4216_a);
- }
+ this.field_4215_b=this.field_46067_b.getChunkManager(field_4216_a);
}
public IChunkProvider func_4094_c()
{
- return (IChunkProvider)(this.field_46067_b == WorldType.field_48636_c ? new ChunkProviderFlat(this.field_4216_a, this.field_4216_a.func_22138_q(), this.field_4216_a.func_22144_v().func_35917_r()) : new ChunkProviderGenerate(this.field_4216_a, this.field_4216_a.func_22138_q(), this.field_4216_a.func_22144_v().func_35917_r()));
+ return this.field_46067_b.getChunkGenerator(field_4216_a);
}
public boolean func_4102_a(int p_4102_1_, int p_4102_2_)
@@ -157,17 +150,17 @@
public int func_46066_g()
{
- return this.field_46067_b == WorldType.field_48636_c ? 4 : 64;
+ return this.field_46067_b.getMinimumSpawnHeight(field_4216_a);
}
public boolean func_46064_i()
{
- return this.field_46067_b != WorldType.field_48636_c && !this.field_6478_e;
+ return this.field_46067_b.hasVoidParticles(this.field_6478_e);
}
public double func_46065_j()
{
- return this.field_46067_b == WorldType.field_48636_c ? 1.0D : 0.03125D;
+ return this.field_46067_b.voidFadeMagnitude();
}
public boolean func_48218_b(int p_48218_1_, int p_48218_2_)

View File

@ -1,111 +0,0 @@
--- ../src-base/minecraft/net/minecraft/src/WorldType.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft/net/minecraft/src/WorldType.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,5 +1,9 @@
package net.minecraft.src;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
public class WorldType
{
public static final WorldType[] field_48637_a = new WorldType[16];
@@ -12,17 +16,26 @@
private boolean field_48633_g;
private boolean field_48638_h;
- private WorldType(int p_i1080_1_, String p_i1080_2_)
+ protected BiomeGenBase[] biomesForWorldType;
+
+ protected WorldType(int p_i1080_1_, String p_i1080_2_)
{
this(p_i1080_1_, p_i1080_2_, 0);
}
- private WorldType(int p_i1081_1_, String p_i1081_2_, int p_i1081_3_)
+ protected WorldType(int p_i1081_1_, String p_i1081_2_, int p_i1081_3_)
{
this.field_46139_c = p_i1081_2_;
this.field_48632_f = p_i1081_3_;
this.field_48633_g = true;
field_48637_a[p_i1081_1_] = this;
+ switch (p_i1081_1_) {
+ case 8:
+ biomesForWorldType = new BiomeGenBase[] {BiomeGenBase.field_4249_h, BiomeGenBase.field_4253_d, BiomeGenBase.field_35483_e, BiomeGenBase.field_4255_b, BiomeGenBase.field_35485_c, BiomeGenBase.field_4250_g};
+ break;
+ default:
+ biomesForWorldType = new BiomeGenBase[] {BiomeGenBase.field_4249_h, BiomeGenBase.field_4253_d, BiomeGenBase.field_35483_e, BiomeGenBase.field_4255_b, BiomeGenBase.field_35485_c, BiomeGenBase.field_4250_g, BiomeGenBase.field_48416_w};
+ }
}
public String func_48628_a()
@@ -84,4 +97,69 @@
return null;
}
+
+ public WorldChunkManager getChunkManager(World var1)
+ {
+ return this == field_48636_c ? new WorldChunkManagerHell(BiomeGenBase.field_35485_c, 0.5F, 0.5F) : new WorldChunkManager(var1);
+ }
+
+ public IChunkProvider getChunkGenerator(World var1)
+ {
+ return this == field_48636_c ? new ChunkProviderFlat(var1, var1.func_22138_q(), var1.func_22144_v().func_35917_r()) : new ChunkProviderGenerate(var1, var1.func_22138_q(), var1.func_22144_v().func_35917_r());
+ }
+
+ /**
+ * @deprecated Use {@link #getMinimumSpawnHeight(World)} instead
+ */
+ public int getSeaLevel(World var1)
+ {
+ return getMinimumSpawnHeight(var1);
+ }
+
+ public int getMinimumSpawnHeight(World world)
+ {
+ return this == field_48636_c ? 4 : 64;
+ }
+
+ public double getHorizon(World world)
+ {
+ return this == field_48636_c ? 0.0D : 63.0D;
+ }
+
+ public boolean hasVoidParticles(boolean var1)
+ {
+ return this != field_48636_c && !var1;
+ }
+
+ public double voidFadeMagnitude()
+ {
+ return this == field_48636_c ? 1.0D : 0.03125D;
+ }
+
+ public BiomeGenBase[] getBiomesForWorldType() {
+ return biomesForWorldType;
+ }
+
+ public void addNewBiome(BiomeGenBase biome) {
+ List<BiomeGenBase> newBiomesForWorld = new ArrayList<BiomeGenBase>();
+ newBiomesForWorld.addAll(Arrays.asList(biomesForWorldType));
+
+ if (!newBiomesForWorld.contains(biome))
+ newBiomesForWorld.add(biome);
+ biomesForWorldType = newBiomesForWorld.toArray(new BiomeGenBase[0]);
+ }
+
+ public void removeBiome(BiomeGenBase biome) {
+ List<BiomeGenBase> newBiomesForWorld = new ArrayList<BiomeGenBase>();
+ newBiomesForWorld.addAll(Arrays.asList(biomesForWorldType));
+
+ newBiomesForWorld.remove(biome);
+ biomesForWorldType = newBiomesForWorld.toArray(new BiomeGenBase[0]);
+ }
+
+ /**
+ * Called when 'Create New World' button is pressed before starting game
+ */
+ public void onGUICreateWorldPress() { }
+
}

View File

@ -1,51 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/server/MinecraftServer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/server/MinecraftServer.java 0000-00-00 00:00:00.000000000 -0000
@@ -11,6 +11,9 @@
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.server.FMLServerHandler;
import net.minecraft.src.AnvilSaveConverter;
import net.minecraft.src.AxisAlignedBB;
import net.minecraft.src.CallableMCS5;
@@ -350,6 +353,8 @@
{
long var1 = System.currentTimeMillis();
+ FMLCommonHandler.instance().onWorldLoadTick();
+
for (long var50 = 0L; this.field_6025_n; this.field_56215_O = true)
{
long var5 = System.currentTimeMillis();
@@ -440,9 +445,11 @@
protected void func_56174_n()
{
+ FMLCommonHandler.instance().rescheduleTicks();
long var1 = System.nanoTime();
AxisAlignedBB.func_58089_a().func_58066_a();
Vec3.func_58052_a().func_58075_a();
+ FMLCommonHandler.instance().onPreServerTick();
++this.field_9014_h;
this.func_56160_o();
@@ -472,6 +479,7 @@
{
this.field_56221_m.func_56622_b();
}
+ FMLCommonHandler.instance().onPostServerTick();
}
public void func_56160_o()
@@ -489,7 +497,9 @@
this.field_6033_f.func_28169_a(new Packet4UpdateTime(var4.func_22080_k()), var4.field_4272_q.field_6165_g);
}
+ FMLCommonHandler.instance().onPreWorldTick(var4);
var4.func_22077_g();
+ FMLCommonHandler.instance().onPostWorldTick(var4);
while (true)
{

View File

@ -1,24 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/BlockDispenser.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/BlockDispenser.java 0000-00-00 00:00:00.000000000 -0000
@@ -2,6 +2,8 @@
import java.util.Random;
+import cpw.mods.fml.server.FMLServerHandler;
+
public class BlockDispenser extends BlockContainer
{
private Random field_28032_a = new Random();
@@ -259,7 +261,11 @@
float var15 = 1.1F;
byte var16 = 6;
- if (p_56353_2_.field_855_c == Item.field_4148_j.field_234_aS)
+ if (FMLServerHandler.instance().tryDispensingEntity(p_56353_1_, p_56353_9_, p_56353_11_, p_56353_13_, p_56353_7_, p_56353_8_, p_56353_2_))
+ {
+ return 1;
+ }
+ else if (p_56353_2_.field_855_c == Item.field_4148_j.field_234_aS)
{
EntityArrow var28 = new EntityArrow(p_56353_1_, p_56353_9_, p_56353_11_, p_56353_13_);
var28.func_177_a((double)p_56353_7_, 0.10000000149011612D, (double)p_56353_8_, var15, (float)var16);

View File

@ -1,19 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/ChunkProviderServer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/ChunkProviderServer.java 0000-00-00 00:00:00.000000000 -0000
@@ -7,6 +7,8 @@
import java.util.List;
import java.util.Set;
+import cpw.mods.fml.server.FMLServerHandler;
+
public class ChunkProviderServer implements IChunkProvider
{
private Set field_725_a = new HashSet();
@@ -177,6 +179,7 @@
if (this.field_730_c != null)
{
this.field_730_c.func_4055_a(p_4055_1_, p_4055_2_, p_4055_3_);
+ FMLServerHandler.instance().onChunkPopulate(p_4055_1_, p_4055_2_, p_4055_3_, this.field_726_g, this.field_730_c);
var4.func_336_e();
}
}

View File

@ -1,27 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/DedicatedServer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/DedicatedServer.java 0000-00-00 00:00:00.000000000 -0000
@@ -8,6 +8,8 @@
import java.util.List;
import java.util.Random;
import java.util.logging.Level;
+
+import cpw.mods.fml.server.FMLServerHandler;
import net.minecraft.server.MinecraftServer;
public class DedicatedServer extends MinecraftServer implements IServer
@@ -34,6 +36,7 @@
var1.start();
ConsoleLogManager.func_641_a();
field_6038_a.info("Starting minecraft server version 12w26a");
+ FMLServerHandler.instance().onPreLoad(this);
if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L)
{
@@ -99,6 +102,7 @@
field_6038_a.warning("To change this, set \"online-mode\" to \"true\" in the server.properties file.");
}
+ FMLServerHandler.instance().onLoadComplete();
this.func_56197_a(new DedicatedPlayerList(this));
long var4 = System.nanoTime();

View File

@ -1,11 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/Entity.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/Entity.java 0000-00-00 00:00:00.000000000 -0000
@@ -1539,4 +1539,8 @@
{
return String.format("%s[\'%s\'/%d, l=\'%s\', x=%.2f, y=%.2f, z=%.2f]", new Object[] {this.getClass().getSimpleName(), this.func_35150_Y(), Integer.valueOf(this.field_331_c), this.field_9093_l == null ? "~NULL~" : this.field_9093_l.func_22081_n().func_55310_h(), Double.valueOf(this.field_322_l), Double.valueOf(this.field_321_m), Double.valueOf(this.field_320_n)});
}
+
+ public static int getNextId() {
+ return field_384_a++;
+ }
}

View File

@ -1,19 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/EntityItem.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/EntityItem.java 0000-00-00 00:00:00.000000000 -0000
@@ -2,6 +2,8 @@
import java.util.Iterator;
+import cpw.mods.fml.server.FMLServerHandler;
+
public class EntityItem extends Entity
{
public ItemStack field_429_a;
@@ -198,6 +200,7 @@
if (this.field_433_ad == 0 && p_6093_1_.field_416_aj.func_201_a(this.field_429_a))
{
+ FMLServerHandler.instance().notifyItemPickup(this,p_6093_1_);
if (this.field_429_a.field_855_c == Block.field_582_K.field_573_bc)
{
p_6093_1_.func_27017_a(AchievementList.field_25131_c);

View File

@ -1,20 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/EntityList.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/EntityList.java 0000-00-00 00:00:00.000000000 -0000
@@ -168,4 +168,17 @@
func_46122_a(EntityVillager.class, "Villager", 120, 5651507, 12422002);
func_563_a(EntityEnderCrystal.class, "EnderCrystal", 200);
}
+
+ public static void addNewEntityListMapping(Class<? extends Entity> entityClass, String entityName, int id) {
+ func_563_a(entityClass,entityName,id);
+ }
+
+ public static void addNewEntityListMapping(Class<? extends Entity> entityClass, String entityName, int id, int backgroundEggColour, int foregroundEggColour) {
+ func_46122_a(entityClass,entityName,id,backgroundEggColour,foregroundEggColour);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static Map<String,Class<? extends Entity>> getEntityToClassMapping() {
+ return field_849_a;
+ }
}

View File

@ -1,31 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/EntityPlayer.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/EntityPlayer.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,8 +1,12 @@
package net.minecraft.src;
+import java.util.EnumSet;
import java.util.Iterator;
import java.util.List;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.TickType;
+
public abstract class EntityPlayer extends EntityLiving implements ICommandSender
{
public InventoryPlayer field_416_aj = new InventoryPlayer(this);
@@ -105,6 +109,7 @@
public void func_106_b_()
{
+ FMLCommonHandler.instance().tickStart(EnumSet.of(TickType.PLAYER), this, this.field_9093_l);
if (this.field_34908_d != null)
{
ItemStack var1 = this.field_416_aj.func_213_b();
@@ -228,6 +233,7 @@
{
this.field_35217_m.func_35584_a(this);
}
+ FMLCommonHandler.instance().tickEnd(EnumSet.of(TickType.PLAYER), this, this.field_9093_l);
}
protected void func_35208_b(ItemStack p_35208_1_, int p_35208_2_)

View File

@ -1,17 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/GenLayerBiome.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/GenLayerBiome.java 0000-00-00 00:00:00.000000000 -0000
@@ -7,13 +7,8 @@
public GenLayerBiome(long p_i1078_1_, GenLayer p_i1078_3_, WorldType p_i1078_4_)
{
super(p_i1078_1_);
- this.field_35029_b = new BiomeGenBase[] {BiomeGenBase.field_4293_h, BiomeGenBase.field_4297_d, BiomeGenBase.field_35518_e, BiomeGenBase.field_4299_b, BiomeGenBase.field_35520_c, BiomeGenBase.field_4294_g, BiomeGenBase.field_48443_w};
+ this.field_35029_b = p_i1078_4_.getBiomesForWorldType();
this.field_35023_a = p_i1078_3_;
-
- if (p_i1078_4_ == WorldType.field_48456_d)
- {
- this.field_35029_b = new BiomeGenBase[] {BiomeGenBase.field_4293_h, BiomeGenBase.field_4297_d, BiomeGenBase.field_35518_e, BiomeGenBase.field_4299_b, BiomeGenBase.field_35520_c, BiomeGenBase.field_4294_g};
- }
}
public int[] func_35018_a(int p_35018_1_, int p_35018_2_, int p_35018_3_, int p_35018_4_)

View File

@ -1,35 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/NetServerHandler.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/NetServerHandler.java 0000-00-00 00:00:00.000000000 -0000
@@ -7,6 +7,8 @@
import java.util.Iterator;
import java.util.Random;
import java.util.logging.Logger;
+
+import cpw.mods.fml.server.FMLServerHandler;
import net.minecraft.server.MinecraftServer;
public class NetServerHandler extends NetHandler
@@ -602,7 +604,10 @@
}
}
- if (var2.startsWith("/"))
+ if (FMLServerHandler.instance().handleChatPacket(p_23_1_,field_16_e)) {
+ // We handled it
+ }
+ else if (var2.startsWith("/"))
{
this.func_4010_d(var2);
}
@@ -1014,4 +1019,11 @@
}
}
}
+//TODO
+ /*
+ @Override
+ public void func_44001_a(Packet250CustomPayload p_44001_1_) {
+ FMLServerHandler.instance().handlePacket250(p_44001_1_, field_16_e);
+ }
+ */
}

View File

@ -1,37 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/ServerConfigurationManager.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/ServerConfigurationManager.java 0000-00-00 00:00:00.000000000 -0000
@@ -9,6 +9,8 @@
import java.util.List;
import java.util.Set;
import java.util.logging.Logger;
+
+import cpw.mods.fml.server.FMLServerHandler;
import net.minecraft.server.MinecraftServer;
public abstract class ServerConfigurationManager
@@ -71,6 +73,8 @@
}
p_56432_2_.func_20057_k();
+ FMLServerHandler.instance().handleClientLogin(p_56432_1_);
+ FMLServerHandler.instance().announceLogin(p_56432_2_);
}
public void func_618_a(WorldServer[] p_618_1_)
@@ -144,6 +148,7 @@
public void func_616_c(EntityPlayerMP p_616_1_)
{
+ FMLServerHandler.instance().announceLogout(p_616_1_);
this.func_56430_b(p_616_1_);
WorldServer var2 = p_616_1_.func_55080_H();
var2.func_22085_d(p_616_1_);
@@ -355,6 +360,8 @@
p_28168_1_.field_425_ad.func_35694_a(var5);
this.func_28170_a(p_28168_1_, var5);
this.func_30008_g(p_28168_1_);
+
+ FMLServerHandler.instance().announceDimensionChange(p_28168_1_);
}
public void func_637_b()

View File

@ -1,21 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/ServerGUI.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/ServerGUI.java 0000-00-00 00:00:00.000000000 -0000
@@ -3,6 +3,7 @@
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
+import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComponent;
import javax.swing.JFrame;
@@ -79,7 +80,9 @@
{
JPanel var1 = new JPanel(new BorderLayout());
JTextArea var2 = new JTextArea();
- field_22_a.addHandler(new GuiLogOutputHandler(var2));
+ GuiLogOutputHandler guihandler=new GuiLogOutputHandler(var2);
+ guihandler.setLevel(Level.FINE);
+ field_22_a.addHandler(guihandler);
JScrollPane var3 = new JScrollPane(var2, 22, 30);
var2.setEditable(false);
JTextField var4 = new JTextField();

View File

@ -1,18 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/SlotCrafting.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/SlotCrafting.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,5 +1,7 @@
package net.minecraft.src;
+import cpw.mods.fml.server.FMLServerHandler;
+
public class SlotCrafting extends Slot
{
private final IInventory field_20103_a;
@@ -83,6 +85,7 @@
public void func_20091_b(ItemStack p_20091_1_)
{
+ FMLServerHandler.instance().onItemCrafted(field_25004_e, p_20091_1_, field_20103_a);
this.func_48416_b(p_20091_1_);
for (int var2 = 0; var2 < this.field_20103_a.func_83_a(); ++var2)

View File

@ -1,19 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/SlotFurnace.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/SlotFurnace.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,5 +1,7 @@
package net.minecraft.src;
+import cpw.mods.fml.server.FMLServerHandler;
+
public class SlotFurnace extends Slot
{
private EntityPlayer field_27007_d;
@@ -56,6 +58,8 @@
this.field_48419_f = 0;
+ FMLServerHandler.instance().onItemSmelted(field_27007_d, p_48416_1_);
+
if (p_48416_1_.field_855_c == Item.field_166_m.field_234_aS)
{
this.field_27007_d.func_25046_a(AchievementList.field_27108_k, 1);

View File

@ -1,11 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/StatBase.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/StatBase.java 0000-00-00 00:00:00.000000000 -0000
@@ -55,4 +55,8 @@
{
return StatCollector.func_25136_a(this.field_25062_e);
}
+
+ public String getName() {
+ return field_25062_e;
+ }
}

View File

@ -1,33 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/StringTranslate.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/StringTranslate.java 0000-00-00 00:00:00.000000000 -0000
@@ -7,6 +7,8 @@
import java.util.Properties;
import java.util.TreeMap;
+import cpw.mods.fml.common.FMLCommonHandler;
+
public class StringTranslate
{
private static StringTranslate field_25082_a = new StringTranslate("en_US");
@@ -77,6 +79,7 @@
}
}
}
+ FMLCommonHandler.instance().handleLanguageLoad(p_44011_1_, p_44011_2_);
}
public void func_44010_a(String p_44010_1_)
@@ -145,4 +148,13 @@
String var3 = this.field_25081_b.getProperty(p_25078_1_, p_25078_1_);
return String.format(var3, p_25078_2_);
}
+
+ public String getCurrentLanguage() {
+ return this.field_44012_d;
+ }
+
+ public Properties getCurrentLanguageTable()
+ {
+ return this.field_25081_b;
+ }
}

View File

@ -1,11 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/TileEntity.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/TileEntity.java 0000-00-00 00:00:00.000000000 -0000
@@ -156,4 +156,8 @@
func_187_a(TileEntityEnchantmentTable.class, "EnchantTable");
func_187_a(TileEntityEndPortal.class, "Airportal");
}
+
+ public static void addNewTileEntityMapping(Class<? extends TileEntity> tileEntityClass, String id) {
+ func_187_a(tileEntityClass, id);
+ }
}

View File

@ -1,27 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,5 +1,7 @@
package net.minecraft.src;
+import cpw.mods.fml.common.FMLCommonHandler;
+
public class TileEntityFurnace extends TileEntity implements IInventory
{
private ItemStack[] field_489_e = new ItemStack[3];
@@ -254,7 +256,15 @@
}
}
- return var2 instanceof ItemTool && ((ItemTool)var2).func_56458_b().equals("WOOD") ? 200 : (var2 instanceof ItemSword && ((ItemSword)var2).func_56462_b().equals("WOOD") ? 200 : (var2 instanceof ItemHoe && ((ItemHoe)var2).func_56463_b().equals("WOOD") ? 200 : (var1 == Item.field_209_B.field_234_aS ? 100 : (var1 == Item.field_168_k.field_234_aS ? 1600 : (var1 == Item.field_201_aw.field_234_aS ? 20000 : (var1 == Block.field_6047_y.field_573_bc ? 100 : (var1 == Item.field_40239_bm.field_234_aS ? 2400 : 0)))))));
+ if (var2 instanceof ItemTool && ((ItemTool) var2).func_56458_b().equals("WOOD")) return 200;
+ if (var2 instanceof ItemSword && ((ItemSword) var2).func_56462_b().equals("WOOD")) return 200;
+ if (var2 instanceof ItemHoe && ((ItemHoe) var2).func_56463_b().equals("WOOD")) return 200;
+ if (var1 == Item.field_209_B.field_234_aS) return 100;
+ if (var1 == Item.field_168_k.field_234_aS) return 1600;
+ if (var1 == Item.field_201_aw.field_234_aS) return 20000;
+ if (var1 == Block.field_6047_y.field_573_bc) return 100;
+ if (var1 == Item.field_40239_bm.field_234_aS) return 2400;
+ return FMLCommonHandler.instance().fuelLookup(var1, p_194_0_.func_21125_h());
}
}

View File

@ -1,32 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/WorldProvider.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/WorldProvider.java 0000-00-00 00:00:00.000000000 -0000
@@ -32,19 +32,12 @@
protected void func_4090_a()
{
- if (this.field_4302_a.func_22081_n().func_46069_q() == WorldType.field_48458_c)
- {
- this.field_4301_b = new WorldChunkManagerHell(BiomeGenBase.field_35520_c, 0.5F, 0.5F);
- }
- else
- {
- this.field_4301_b = new WorldChunkManager(this.field_4302_a);
- }
+ this.field_4301_b = this.field_4302_a.func_22081_n().func_46069_q().getChunkManager(field_4302_a);
}
public IChunkProvider func_4087_c()
{
- return (IChunkProvider)(this.field_46120_b == WorldType.field_48458_c ? new ChunkProviderFlat(this.field_4302_a, this.field_4302_a.func_22079_j(), this.field_4302_a.func_22081_n().func_35499_o()) : new ChunkProviderGenerate(this.field_4302_a, this.field_4302_a.func_22079_j(), this.field_4302_a.func_22081_n().func_35499_o()));
+ return this.field_46120_b.getChunkGenerator(this.field_4302_a);
}
public boolean func_4092_a(int p_4092_1_, int p_4092_2_)
@@ -96,6 +89,6 @@
public int func_46119_e()
{
- return this.field_46120_b == WorldType.field_48458_c ? 4 : 64;
+ return this.field_46120_b.getMinimumSpawnHeight(field_4302_a);
}
}

View File

@ -1,85 +0,0 @@
--- ../src-base/minecraft_server/net/minecraft/src/WorldType.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src-work/minecraft_server/net/minecraft/src/WorldType.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,5 +1,9 @@
package net.minecraft.src;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
public class WorldType
{
public static final WorldType[] field_48459_a = new WorldType[16];
@@ -12,17 +16,28 @@
private boolean field_48455_g;
private boolean field_48460_h;
- private WorldType(int p_i1025_1_, String p_i1025_2_)
+ protected BiomeGenBase[] biomesForWorldType;
+
+ protected WorldType(int p_i1025_1_, String p_i1025_2_)
{
this(p_i1025_1_, p_i1025_2_, 0);
}
- private WorldType(int p_i1026_1_, String p_i1026_2_, int p_i1026_3_)
+ protected WorldType(int p_i1026_1_, String p_i1026_2_, int p_i1026_3_)
{
this.field_46052_c = p_i1026_2_;
this.field_48454_f = p_i1026_3_;
this.field_48455_g = true;
field_48459_a[p_i1026_1_] = this;
+ switch (p_i1026_1_) {
+ case 8:
+ biomesForWorldType = new BiomeGenBase[] { BiomeGenBase.field_4293_h, BiomeGenBase.field_4297_d, BiomeGenBase.field_35518_e,
+ BiomeGenBase.field_4299_b, BiomeGenBase.field_35520_c, BiomeGenBase.field_4294_g };
+ break;
+ default:
+ biomesForWorldType = new BiomeGenBase[] { BiomeGenBase.field_4293_h, BiomeGenBase.field_4297_d, BiomeGenBase.field_35518_e,
+ BiomeGenBase.field_4299_b, BiomeGenBase.field_35520_c, BiomeGenBase.field_4294_g, BiomeGenBase.field_48443_w };
+ }
}
public String func_48449_a()
@@ -74,4 +89,41 @@
return null;
}
+
+ public WorldChunkManager getChunkManager(World world)
+ {
+ return this == field_48458_c ? new WorldChunkManagerHell(BiomeGenBase.field_35520_c, 0.5F, 0.5F) : new WorldChunkManager(world);
+ }
+
+ public IChunkProvider getChunkGenerator(World var1)
+ {
+ return this == field_48458_c ? new ChunkProviderFlat(var1, var1.func_22079_j(), var1.func_22081_n().func_35499_o()) : new ChunkProviderGenerate(var1, var1.func_22079_j(), var1.func_22081_n().func_35499_o());
+ }
+
+ public int getMinimumSpawnHeight(World world)
+ {
+ return this == field_48458_c ? 4 : 64;
+ }
+
+ public BiomeGenBase[] getBiomesForWorldType() {
+ return biomesForWorldType;
+ }
+
+ public void addNewBiome(BiomeGenBase biome) {
+ List<BiomeGenBase> newBiomesForWorld = new ArrayList<BiomeGenBase>();
+ newBiomesForWorld.addAll(Arrays.asList(biomesForWorldType));
+
+ if (!newBiomesForWorld.contains(biome))
+ newBiomesForWorld.add(biome);
+ biomesForWorldType = newBiomesForWorld.toArray(new BiomeGenBase[0]);
+ }
+
+ public void removeBiome(BiomeGenBase biome) {
+ List<BiomeGenBase> newBiomesForWorld = new ArrayList<BiomeGenBase>();
+ newBiomesForWorld.addAll(Arrays.asList(biomesForWorldType));
+
+ newBiomesForWorld.remove(biome);
+ biomesForWorldType = newBiomesForWorld.toArray(new BiomeGenBase[0]);
+ }
+
}