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
*
* The FML entry point is {@link #onPreLoad(MinecraftServer)} called from
* The FML entry point is {@link #beginMinecraftLoading(MinecraftServer)} called from
* {@link MinecraftServer}
*
* 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;
/**
* A handy list of the default overworld biomes
*/
private BiomeGenBase[] defaultOverworldBiomes;
private int nextRenderId = 30;
private TexturePackBase fallbackTexturePack;
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;
/**
* Called to start the whole game off from
@ -172,14 +156,15 @@ public class FMLClientHandler implements IFMLSidedHandler
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.");
haltGame("FML will not run in demo mode", new RuntimeException());
return;
}
client = minecraft;
ObfuscationReflectionHelper.detectObfuscation(World.class);
FMLCommonHandler.instance().beginLoading(this);
@ -211,7 +196,7 @@ public class FMLClientHandler implements IFMLSidedHandler
@Override
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);
}
/**
@ -237,45 +222,21 @@ public class FMLClientHandler implements IFMLSidedHandler
// r.func_4009_a(RenderManager.field_1233_a);
// }
// }
KeyBindingRegistry.uploadKeyBindingsToGame(client.field_71474_y);
// Mark this as a "first tick"
KeyBindingRegistry.uploadKeyBindingsToGame(client.field_6304_y);
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)
{
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)
@ -283,10 +244,10 @@ public class FMLClientHandler implements IFMLSidedHandler
if (!guiLoaded)
{
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;
}
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
@ -307,68 +268,6 @@ public class FMLClientHandler implements IFMLSidedHandler
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
*/
@ -377,231 +276,6 @@ public class FMLClientHandler implements IFMLSidedHandler
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
*/
@ -610,82 +284,26 @@ public class FMLClientHandler implements IFMLSidedHandler
{
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
* @return
*/
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 gui
*/
public void displayGuiScreen(EntityPlayer player, GuiScreen gui)
{
if (client.field_22009_h==player && gui != null) {
client.func_6272_a(gui);
if (client.field_71439_g==player && gui != null) {
client.func_71373_a(gui);
}
}
@ -699,338 +317,14 @@ public class FMLClientHandler implements IFMLSidedHandler
ModLoaderModContainer mlmc=ModLoaderHelper.registerKeyHelper(mod);
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
public void profileStart(String profileLabel) {
Profiler.func_40663_a(profileLabel);
client.field_71424_I.func_76320_a(profileLabel);
}
@Override
public void profileEnd() {
Profiler.func_40662_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);
}
client.field_71424_I.func_76319_b();
}
/* (non-Javadoc)
@ -1089,29 +383,26 @@ public class FMLClientHandler implements IFMLSidedHandler
return null;
}
/**
* @param biome
*/
public void removeBiomeFromDefaultWorldGenerator(BiomeGenBase biome)
@Override
public String getCurrentLanguage()
{
WorldType.field_48635_b.removeBiome(biome);
return null;
}
/**
* Handle a login
*
* @param loginPacket
* @param networkManager
*/
public void handleClientLogin(NetworkManager networkManager)
@Override
public Properties getCurrentLanguageTable()
{
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);
}
return null;
}
@Override
public String getObjectName(Object minecraftObject)
{
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 boolean errored = false;
protected Logger log = FMLCommonHandler.instance().getFMLLogger();
public FMLTextureFX(int icon)
{
super(icon);
}
@Override public void setErrored(boolean err){ errored = err; }
@Override public boolean getErrored(){ return errored; }
@Override
@Override
public void onTexturePackChanged(RenderEngine engine, TexturePackBase texturepack, Dimension dimensions)
{
onTextureDimensionsUpdate(dimensions.width, dimensions.height);
}
@Override
@Override
public void onTextureDimensionsUpdate(int width, int height)
{
tileSizeBase = width >> 4;
@ -58,9 +58,9 @@ public class FMLTextureFX extends TextureFX implements ITextureFX
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)
{
effects.remove(this);

View File

@ -39,7 +39,6 @@ import net.minecraft.src.Tessellator;
*/
public class GuiModList extends GuiScreen
{
private GuiScreen mainMenu;
private GuiSlotModList modList;
private int selected = -1;
@ -62,66 +61,70 @@ public class GuiModList extends GuiScreen
mods.add(mod);
}
}
public void func_6448_a()
@Override
public void func_73866_w_()
{
for (ModContainer mod : mods) {
listWidth=Math.max(listWidth,getFontRenderer().func_871_a(mod.getName()) + 10);
listWidth=Math.max(listWidth,getFontRenderer().func_871_a(mod.getVersion()) + 10);
listWidth=Math.max(listWidth,getFontRenderer().func_78256_a(mod.getName()) + 10);
listWidth=Math.max(listWidth,getFontRenderer().func_78256_a(mod.getVersion()) + 10);
}
listWidth=Math.min(listWidth, 150);
StringTranslate translations = StringTranslate.func_20162_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")));
StringTranslate translations = StringTranslate.func_74808_a();
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.registerScrollButtons(this.field_949_e, 7, 8);
this.modList.registerScrollButtons(this.field_73887_h, 7, 8);
}
protected void func_572_a(GuiButton button) {
if (button.field_937_g)
@Override
protected void func_73875_a(GuiButton button) {
if (button.field_73742_g)
{
switch (button.field_938_f)
switch (button.field_73741_f)
{
case 6:
this.field_945_b.func_6272_a(this.mainMenu);
this.field_73882_e.func_71373_a(this.mainMenu);
return;
}
}
super.func_572_a(button);
super.func_73875_a(button);
}
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;
}
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.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;
if (selectedMod != null) {
if (!selectedMod.getMetadata().autogenerated) {
int shifty = 35;
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);
this.field_945_b.field_6315_n.func_1076_b(texture);
Dimension dim = FMLClientHandler.instance().getTextureDimensions(texture);
this.field_73882_e.field_71446_o.func_78342_b(texture);
Dimension dim = TextureFXManager.instance().getTextureDimensions(texture);
int top = 32;
Tessellator tess = Tessellator.field_1512_a;
tess.func_977_b();
tess.func_983_a(offset, top + dim.height, field_923_k, 0, 1);
tess.func_983_a(offset + dim.width, top + dim.height, field_923_k, 1, 1);
tess.func_983_a(offset + dim.width, top, field_923_k, 1, 0);
tess.func_983_a(offset, top, field_923_k, 0, 0);
tess.func_982_a();
Tessellator tess = Tessellator.field_78398_a;
tess.func_78382_b();
tess.func_78374_a(offset, top + dim.height, field_73735_i, 0, 1);
tess.func_78374_a(offset + dim.width, top + dim.height, field_73735_i, 1, 1);
tess.func_78374_a(offset + dim.width, top, field_73735_i, 1, 0);
tess.func_78374_a(offset, top, field_73735_i, 0, 0);
tess.func_78381_a();
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 = 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);
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("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);
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 {
offset = ( this.listWidth + this.field_951_c ) / 2;
this.func_548_a(this.field_6451_g, selectedMod.getName(), offset, 35, 0xFFFFFF);
this.func_548_a(this.field_6451_g, 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_548_a(this.field_6451_g, "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);
offset = ( this.listWidth + this.field_73880_f ) / 2;
this.func_73732_a(this.field_73886_k, selectedMod.getName(), offset, 35, 0xFFFFFF);
this.func_73732_a(this.field_73886_k, String.format("Version: %s",selectedMod.getVersion()), offset, 45, 0xFFFFFF);
this.func_73732_a(this.field_73886_k, String.format("Mod State: %s",Loader.instance().getModState(selectedMod)), offset, 55, 0xFFFFFF);
this.func_73732_a(this.field_73886_k, "No mod information found", offset, 65, 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() {
return field_945_b;
return field_73882_e;
}
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)
{
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.initialMouseClickY = -2.0F;
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.initialMouseClickY = -2.0F;
@ -249,17 +249,17 @@ public abstract class GuiScrollingList
this.applyScrollLimits();
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_FOG);
Tessellator var18 = Tessellator.field_1512_a;
GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.client.field_6315_n.func_1070_a("/gui/background.png"));
Tessellator var18 = Tessellator.field_78398_a;
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);
float var17 = 32.0F;
var18.func_977_b();
var18.func_990_b(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_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_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_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_982_a();
var18.func_78382_b();
var18.func_78378_d(2105376);
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_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_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_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_78381_a();
// boxRight = this.listWidth / 2 - 92 - 16;
var10 = this.top + 4 - (int)this.scrollDistance;
@ -283,18 +283,18 @@ public abstract class GuiScrollingList
int var15 = boxRight;
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glDisable(GL11.GL_TEXTURE_2D);
var18.func_977_b();
var18.func_990_b(8421504);
var18.func_983_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_983_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_990_b(0);
var18.func_983_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_983_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_982_a();
var18.func_78382_b();
var18.func_78378_d(8421504);
var18.func_78374_a((double)var14, (double)(var19 + var13 + 2), 0.0D, 0.0D, 1.0D);
var18.func_78374_a((double)var15, (double)(var19 + var13 + 2), 0.0D, 1.0D, 1.0D);
var18.func_78374_a((double)var15, (double)(var19 - 2), 0.0D, 1.0D, 0.0D);
var18.func_78374_a((double)var14, (double)(var19 - 2), 0.0D, 0.0D, 0.0D);
var18.func_78378_d(0);
var18.func_78374_a((double)(var14 + 1), (double)(var19 + var13 + 1), 0.0D, 0.0D, 1.0D);
var18.func_78374_a((double)(var15 - 1), (double)(var19 + var13 + 1), 0.0D, 1.0D, 1.0D);
var18.func_78374_a((double)(var15 - 1), (double)(var19 - 1), 0.0D, 1.0D, 0.0D);
var18.func_78374_a((double)(var14 + 1), (double)(var19 - 1), 0.0D, 0.0D, 0.0D);
var18.func_78381_a();
GL11.glEnable(GL11.GL_TEXTURE_2D);
}
@ -311,22 +311,22 @@ public abstract class GuiScrollingList
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glDisable(GL11.GL_TEXTURE_2D);
var18.func_977_b();
var18.func_6513_a(0, 0);
var18.func_983_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_6513_a(0, 255);
var18.func_983_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_982_a();
var18.func_977_b();
var18.func_6513_a(0, 255);
var18.func_983_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_6513_a(0, 0);
var18.func_983_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_982_a();
var18.func_78382_b();
var18.func_78384_a(0, 0);
var18.func_78374_a((double)this.left, (double)(this.top + var20), 0.0D, 0.0D, 1.0D);
var18.func_78374_a((double)this.right, (double)(this.top + var20), 0.0D, 1.0D, 1.0D);
var18.func_78384_a(0, 255);
var18.func_78374_a((double)this.right, (double)this.top, 0.0D, 1.0D, 0.0D);
var18.func_78374_a((double)this.left, (double)this.top, 0.0D, 0.0D, 0.0D);
var18.func_78381_a();
var18.func_78382_b();
var18.func_78384_a(0, 255);
var18.func_78374_a((double)this.left, (double)this.bottom, 0.0D, 0.0D, 1.0D);
var18.func_78374_a((double)this.right, (double)this.bottom, 0.0D, 1.0D, 1.0D);
var18.func_78384_a(0, 0);
var18.func_78374_a((double)this.right, (double)(this.bottom - var20), 0.0D, 1.0D, 0.0D);
var18.func_78374_a((double)this.left, (double)(this.bottom - var20), 0.0D, 0.0D, 0.0D);
var18.func_78381_a();
var19 = this.getContentHeight() - (this.bottom - this.top - 4);
if (var19 > 0)
@ -350,27 +350,27 @@ public abstract class GuiScrollingList
var14 = this.top;
}
var18.func_977_b();
var18.func_6513_a(0, 255);
var18.func_983_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_983_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_982_a();
var18.func_977_b();
var18.func_6513_a(8421504, 255);
var18.func_983_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_983_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_982_a();
var18.func_977_b();
var18.func_6513_a(12632256, 255);
var18.func_983_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_983_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_982_a();
var18.func_78382_b();
var18.func_78384_a(0, 255);
var18.func_78374_a((double)scrollBarXStart, (double)this.bottom, 0.0D, 0.0D, 1.0D);
var18.func_78374_a((double)scrollBarXEnd, (double)this.bottom, 0.0D, 1.0D, 1.0D);
var18.func_78374_a((double)scrollBarXEnd, (double)this.top, 0.0D, 1.0D, 0.0D);
var18.func_78374_a((double)scrollBarXStart, (double)this.top, 0.0D, 0.0D, 0.0D);
var18.func_78381_a();
var18.func_78382_b();
var18.func_78384_a(8421504, 255);
var18.func_78374_a((double)scrollBarXStart, (double)(var14 + var13), 0.0D, 0.0D, 1.0D);
var18.func_78374_a((double)scrollBarXEnd, (double)(var14 + var13), 0.0D, 1.0D, 1.0D);
var18.func_78374_a((double)scrollBarXEnd, (double)var14, 0.0D, 1.0D, 0.0D);
var18.func_78374_a((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D);
var18.func_78381_a();
var18.func_78382_b();
var18.func_78384_a(12632256, 255);
var18.func_78374_a((double)scrollBarXStart, (double)(var14 + var13 - 1), 0.0D, 0.0D, 1.0D);
var18.func_78374_a((double)(scrollBarXEnd - 1), (double)(var14 + var13 - 1), 0.0D, 1.0D, 1.0D);
var18.func_78374_a((double)(scrollBarXEnd - 1), (double)var14, 0.0D, 1.0D, 0.0D);
var18.func_78374_a((double)scrollBarXStart, (double)var14, 0.0D, 0.0D, 0.0D);
var18.func_78381_a();
}
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_)
{
Tessellator var5 = Tessellator.field_1512_a;
GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.client.field_6315_n.func_1070_a("/gui/background.png"));
Tessellator var5 = Tessellator.field_78398_a;
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);
float var6 = 32.0F;
var5.func_977_b();
var5.func_6513_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_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_6513_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_983_a(0.0D, (double)p_22239_1_, 0.0D, 0.0D, (double)((float)p_22239_1_ / var6));
var5.func_982_a();
var5.func_78382_b();
var5.func_78384_a(4210752, p_22239_4_);
var5.func_78374_a(0.0D, (double)p_22239_2_, 0.0D, 0.0D, (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_78384_a(4210752, p_22239_3_);
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_78374_a(0.0D, (double)p_22239_1_, 0.0D, 0.0D, (double)((float)p_22239_1_ / var6));
var5.func_78381_a();
}
}

View File

@ -37,7 +37,7 @@ public class GuiSlotModList extends GuiScrollingList
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.mods=mods;
}
@ -63,7 +63,7 @@ public class GuiSlotModList extends GuiScrollingList
@Override
protected void drawBackground()
{
this.parent.func_578_i();
this.parent.func_73873_v_();
}
@Override
@ -71,22 +71,22 @@ public class GuiSlotModList extends GuiScrollingList
{
return (this.getSize()) * 35 + 1;
}
@Override
protected void drawSlot(int listIndex, int var2, int var3, int var4, Tessellator var5)
{
ModContainer mc=mods.get(listIndex);
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_873_b(this.parent.getFontRenderer().func_50107_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(mc.getName(), listWidth - 11), this.left + 3 , var3 + 2, 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_78276_b(this.parent.getFontRenderer().func_78269_a("DISABLED", listWidth - 11), this.left + 3 , var3 + 22, 0xFF2222);
}
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_873_b(this.parent.getFontRenderer().func_50107_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.getName(), listWidth - 11), this.left + 3 , var3 + 2, 0xFFFFFF);
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_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);
}
@Override
public void keyDown(EnumSet<TickType> type, boolean end, boolean repeats)
{
@ -99,6 +99,6 @@ public class ModLoaderKeyBindingHandler extends KeyBindingRegistry.KeyHandler
@Override
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 boolean keyDown;
protected boolean repeating;
public KeyHandler(KeyBinding keyBinding, boolean repeating)
{
this.keyBinding = keyBinding;
this.repeating = repeating;
}
public KeyBinding getKeyBinding()
{
return this.keyBinding;
}
@Override
public final void tickStart(EnumSet<TickType> type, Object... tickData)
{
keyTick(type, false);
}
@Override
public final void tickEnd(EnumSet<TickType> type, Object... tickData)
{
keyTick(type, true);
}
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));
if (state != keyDown || (state && repeating))
{
@ -64,17 +64,17 @@ public class KeyBindingRegistry
keyDown = state;
}
}
public abstract void keyDown(EnumSet<TickType> types, boolean tickEnd, boolean isRepeat);
public abstract void keyUp(EnumSet<TickType> types, boolean tickEnd);
}
private static List<KeyHandler> keyHandlers = Lists.newArrayList();
public static void registerKeyBinding(KeyHandler handler) {
keyHandlers.add(handler);
}
public static void uploadKeyBindingsToGame(GameSettings settings)
{
ArrayList<KeyBinding> harvestedBindings = Lists.newArrayList();
@ -83,10 +83,10 @@ public class KeyBindingRegistry
harvestedBindings.add(key.keyBinding);
}
KeyBinding[] modKeyBindings = harvestedBindings.toArray(new KeyBinding[harvestedBindings.size()]);
KeyBinding[] allKeys = new KeyBinding[settings.field_1564_t.length + modKeyBindings.length];
System.arraycopy(settings.field_1564_t, 0, allKeys, 0, settings.field_1564_t.length);
System.arraycopy(modKeyBindings, 0, allKeys, settings.field_1564_t.length, modKeyBindings.length);
settings.field_1564_t = allKeys;
settings.func_6519_a();
KeyBinding[] allKeys = new KeyBinding[settings.field_74324_K.length + modKeyBindings.length];
System.arraycopy(settings.field_74324_K, 0, allKeys, 0, settings.field_74324_K.length);
System.arraycopy(modKeyBindings, 0, allKeys, settings.field_74324_K.length, modKeyBindings.length);
settings.field_74324_K = allKeys;
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;
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;
}
@ -97,7 +97,7 @@ public abstract class BaseMod implements cpw.mods.fml.common.modloader.BaseMod
@Override
public final boolean onChat(Object... data)
{
receiveChatPacket(((Packet3Chat)data[0]).field_517_a);
receiveChatPacket(((Packet3Chat)data[0]).field_73476_b);
return true;
}
@ -140,7 +140,7 @@ public abstract class BaseMod implements cpw.mods.fml.common.modloader.BaseMod
{
EntityItem item = (EntityItem) pickupData[0];
EntityPlayer player = (EntityPlayer) pickupData[1];
onItemPickup(player, item.field_801_a);
onItemPickup(player, item.field_70294_a);
}
@Override

View File

@ -17,25 +17,25 @@ public class ClientRegistry implements IMinecraftRegistry
@Override
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
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
public void addRecipe(IRecipe recipe)
{
CraftingManager.func_1120_a().func_25193_b().add(recipe);
CraftingManager.func_77594_a().func_77592_b().add(recipe);
}
@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

View File

@ -20,17 +20,17 @@ public class EntityRendererProxy extends EntityRenderer
{
private Minecraft game;
public EntityRendererProxy(Minecraft minecraft)
{
super(minecraft);
game = minecraft;
}
@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
}
}

View File

@ -19,13 +19,15 @@ import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import cpw.mods.fml.client.BlockRenderManager;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.TextureFXManager;
import cpw.mods.fml.common.FMLCommonHandler;
/**
*
*
* A static hook library for optifine and other basemod editing code to access FML functions
*
*
* @author cpw
*
*/
@ -35,54 +37,54 @@ public class FMLRenderAccessLibrary
{
return FMLCommonHandler.instance().getFMLLogger();
}
public static void log(Level level, String message)
{
getLogger().log(level, message);
}
public static void log(Level level, String message, Throwable throwable)
{
getLogger().log(level, message, throwable);
}
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)
{
FMLClientHandler.instance().onPreRegisterEffect(textureFX);
TextureFXManager.instance().onPreRegisterEffect(textureFX);
}
public static boolean onUpdateTextureEffect(TextureFX textureFX)
{
return FMLClientHandler.instance().onUpdateTextureEffect(textureFX);
return TextureFXManager.instance().onUpdateTextureEffect(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)
{
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)
{
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)
{
FMLClientHandler.instance().renderInventoryBlock(renderer, block, metadata, modelID);
BlockRenderManager.instance().renderInventoryBlock(renderer, block, metadata, 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 cpw.mods.fml.client.BlockRenderManager;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.SpriteHelper;
import cpw.mods.fml.client.TextureFXManager;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.modloader.ModLoaderHelper;
@ -72,7 +74,7 @@ public class ModLoader
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)
{
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)
{
TileEntity te = world.func_603_b(x, y, z);
/* TileEntity te = world.func_603_b(x, y, z);
if (!(te instanceof IInventory))
{
@ -334,7 +336,7 @@ public class ModLoader
world.func_674_a(entityitem);
}
}
}
*/ }
/**
* 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)
{
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)
{
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
{
return FMLClientHandler.instance().loadImageFromTexturePack(renderEngine, path);
return TextureFXManager.instance().loadImageFromTexturePack(renderEngine, path);
}
/**
@ -659,19 +661,19 @@ public class ModLoader
@Deprecated
public static boolean renderBlockIsItemFull3D(int modelID)
{
return FMLClientHandler.instance().renderItemAsFull3DBlock(modelID);
return BlockRenderManager.instance().renderItemAsFull3DBlock(modelID);
}
@Deprecated
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
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.ZipInputStream;
import net.minecraft.src.CallableMinecraftVersion;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder;
@ -310,10 +308,6 @@ public class FMLCommonHandler
return sidedDelegate.getMinecraftLogger();
}
public File getMinecraftRootDirectory() {
return sidedDelegate.getMinecraftRootDirectory();
}
/**
* @return
*/
@ -455,9 +449,8 @@ public class FMLCommonHandler
if (brandings == null)
{
Builder brd = ImmutableList.<String>builder();
brd.add("Minecraft "+CallableMinecraftVersion.func_55337_a());
brd.add(Loader.instance().getMCVersionString());
brd.add(Loader.instance().getFMLVersionString());
brd.add(Strings.nullToEmpty((String)callForgeMethod("getVersionString")));
brd.addAll(sidedDelegate.getAdditionalBrandingInformation());
try {
Properties props=new Properties();

View File

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

View File

@ -132,6 +132,8 @@ public class Loader
private File canonicalModsDir;
private LoadController modController;
private static File minecraftDir;
public static Loader instance()
{
if (instance == null)
@ -142,33 +144,19 @@ public class Loader
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()
{
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());
}
@ -279,7 +267,6 @@ public class Loader
*/
private void initializeLoader()
{
File minecraftDir = FMLCommonHandler.instance().getMinecraftRootDirectory();
File modsDir = new File(minecraftDir, "mods");
File configDir = new File(minecraftDir, "config");
String canonicalModsPath;
@ -295,9 +282,8 @@ public class Loader
}
catch (IOException ioe)
{
FMLLog.log(Level.SEVERE,
String.format("Failed to resolve loader directories: mods : %s ; config %s", canonicalModsDir.getAbsolutePath(),
configDir.getAbsolutePath()), ioe);
FMLLog.log(Level.SEVERE, ioe, "Failed to resolve loader directories: mods : %s ; config %s", canonicalModsDir.getAbsolutePath(),
configDir.getAbsolutePath());
throw new LoaderException(ioe);
}
@ -572,4 +558,9 @@ public class Loader
{
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.
*
*
* @author cpw
*
*
*/
public class ObfuscationReflectionHelper
{
@ -38,8 +38,7 @@ public class ObfuscationReflectionHelper
}
catch (UnableToAccessFieldException e)
{
FMLCommonHandler.instance().getFMLLogger()
.log(Level.SEVERE, String.format("There was a problem getting field index %d from %s", fieldIndex, classToAccess.getName()), e);
FMLLog.log(Level.SEVERE, e, "There was a problem getting field index %d from %s", fieldIndex, classToAccess.getName());
throw e;
}
}
@ -53,14 +52,12 @@ public class ObfuscationReflectionHelper
}
catch (UnableToFindFieldException e)
{
FMLCommonHandler.instance().getFMLLogger()
.log(Level.SEVERE, String.format("Unable to locate any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName()), e);
FMLLog.log(Level.SEVERE,e,"Unable to locate any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName());
throw e;
}
catch (UnableToAccessFieldException e)
{
FMLCommonHandler.instance().getFMLLogger()
.log(Level.SEVERE, String.format("Unable to access any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName()), e);
FMLLog.log(Level.SEVERE, e, "Unable to access any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName());
throw e;
}
}
@ -79,8 +76,7 @@ public class ObfuscationReflectionHelper
}
catch (UnableToAccessFieldException e)
{
FMLCommonHandler.instance().getFMLLogger()
.log(Level.SEVERE, String.format("There was a problem setting field index %d on type %s", fieldIndex, classToAccess.getName()));
FMLLog.log(Level.SEVERE, e, "There was a problem setting field index %d on type %s", fieldIndex, classToAccess.getName());
throw e;
}
}
@ -99,14 +95,12 @@ public class ObfuscationReflectionHelper
}
catch (UnableToFindFieldException e)
{
FMLCommonHandler.instance().getFMLLogger()
.log(Level.SEVERE, String.format("Unable to locate any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName()), e);
FMLLog.log(Level.SEVERE, e, "Unable to locate any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName());
throw e;
}
catch (UnableToAccessFieldException e)
{
FMLCommonHandler.instance().getFMLLogger()
.log(Level.SEVERE, String.format("Unable to set any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName()), e);
FMLLog.log(Level.SEVERE, e, "Unable to set any field %s on type %s", Arrays.toString(fieldNames), classToAccess.getName());
throw e;
}
}

View File

@ -5,12 +5,15 @@ import java.applet.AppletStub;
import java.awt.Dialog.ModalityType;
import java.awt.HeadlessException;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URLClassLoader;
import java.util.Arrays;
import java.util.Properties;
import java.util.logging.Level;
import javax.swing.JDialog;
import javax.swing.JFrame;
@ -18,8 +21,6 @@ import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.ProgressMonitorInputStream;
import net.minecraft.src.WorldSettings;
public class FMLEmbeddingRelauncher
{
private static FMLEmbeddingRelauncher INSTANCE;
@ -74,7 +75,7 @@ public class FMLEmbeddingRelauncher
File minecraftHome = setupHome();
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
{
@ -100,7 +101,7 @@ public class FMLEmbeddingRelauncher
{
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
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
{
setupHome.invoke(null);
@ -109,9 +110,9 @@ public class FMLEmbeddingRelauncher
{
// Hmmm
}
File minecraftHome = ReflectionHelper.getPrivateValue(mcMaster, null, "field_6275_Z", "ap", "minecraftDir");
FMLLog.minecraftHome = minecraftHome;
FMLLog.info("FML relaunch active");
File minecraftHome = ReflectionHelper.getPrivateValue(mcMaster, null, "field_71463_am", "am", "minecraftDir");
FMLVersionData.build(minecraftHome, clientLoader);
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
{

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.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.math.BigInteger;
import java.net.MalformedURLException;
import java.net.URI;
@ -191,6 +192,8 @@ public class RelaunchLibraryManager
try
{
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)
{

View File

@ -96,6 +96,6 @@ public class mod_testMod extends BaseMod {
@Override
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
@@ -4,6 +4,6 @@
{
public static String func_56462_getClientModName()
public static String getClientModName()
{
- return "vanilla";
+ 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-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.util.glu.GLU;
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.relauncher.ArgsWrapper;
+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];
@@ -301,6 +306,7 @@
this.field_6315_n = new RenderEngine(this.field_6298_C, this.field_6304_y);
this.func_6257_q();
this.field_6314_o = new FontRenderer(this.field_6304_y, "/font/default.png", this.field_6315_n, false);
+ FMLClientHandler.instance().onPreLoad(this);
this.field_40007_r = new FontRenderer(this.field_6304_y, "/font/alternate.png", this.field_6315_n, false);
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)
public static byte[] field_71444_a = new byte[10485760];
@@ -305,7 +309,7 @@
this.func_71357_I();
this.field_71466_p = new FontRenderer(this.field_71474_y, "/font/default.png", this.field_71446_o, false);
this.field_71464_q = new FontRenderer(this.field_71474_y, "/font/alternate.png", this.field_71446_o, false);
-
+ FMLClientHandler.instance().beginMinecraftLoading(this);
if (this.field_71474_y.field_74363_ab != null)
{
--this.field_35001_ab;
}
+ 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 @@
StringTranslate.func_74808_a().func_74810_a(this.field_71474_y.field_74363_ab);
@@ -1883,6 +1887,12 @@
public static void main(String[] p_main_0_)
{
+ FMLEmbeddingRelauncher.relaunch(new ArgsWrapper(p_main_0_));
+ }
+
+ public static void fmlReentry(ArgsWrapper wrapper)
+ {
+ 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-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.Canvas;
import java.io.File;
+
+import cpw.mods.fml.relauncher.FMLEmbeddingRelauncher;
import net.minecraft.src.CanvasMinecraftApplet;
import net.minecraft.src.MinecraftAppletImpl;
import net.minecraft.src.Session;
@@ -16,6 +18,11 @@
@@ -15,6 +17,11 @@
public void init()
{
@ -18,10 +18,10 @@
+
+ public void fmlInitReentry()
+ {
this.field_6235_a = new CanvasMinecraftApplet(this);
this.field_71483_a = new CanvasMinecraftApplet(this);
boolean var1 = "true".equalsIgnoreCase(this.getParameter("fullscreen"));
this.field_6234_b = new MinecraftAppletImpl(this, this.field_6235_a, this, this.getWidth(), this.getHeight(), var1);
@@ -72,6 +79,11 @@
this.field_71481_b = new MinecraftAppletImpl(this, this.field_71483_a, this, this.getWidth(), this.getHeight(), var1);
@@ -60,6 +67,11 @@
public void start()
{
@ -30,6 +30,6 @@
+
+ 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-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.Calendar;
import java.util.Date;
+import java.util.List;
import java.util.Random;
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.glu.GLU;
@ -14,56 +15,45 @@
+
+import cpw.mods.fml.client.GuiModList;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.Loader;
+
public class GuiMainMenu extends GuiScreen
{
private static final Random field_6463_h = new Random();
@@ -117,7 +125,9 @@
this.func_55154_a(var4, 24, var2);
private static final Random field_73976_a = new Random();
@@ -118,7 +125,8 @@
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_949_e.add(new GuiButton(3, this.field_951_c / 2 - 100, var4 + 48, var2.func_20163_a("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_949_e.add(new GuiButton(6, this.field_951_c / 2 + 2, var4 + 48, 98, 20, "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_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, var4 + 48, 98, 20, var2.func_74805_b("menu.mods")));
+ this.field_73887_h.add(new GuiButton(6, this.field_73880_f / 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 @@
{
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();
@@ -184,6 +192,11 @@
this.field_73882_e.func_71400_g();
}
+ 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)
{
this.field_945_b.func_58039_a("Demo_World", "Demo_World", DemoWorldServer.field_56874_a);
@@ -398,8 +413,15 @@
+
if (p_73875_1_.field_73741_f == 11)
{
this.field_73882_e.func_71371_a("Demo_World", "Demo_World", DemoWorldServer.field_73071_a);
@@ -400,7 +413,14 @@
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());
+ for (int i=0; i<brandings.size(); i++) {
+ String brd = brandings.get(i);
+ 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!";
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);
super.func_571_a(p_571_1_, p_571_2_, p_571_3_);
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_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";
StringBuilder var3 = new StringBuilder();
- JsonRootNode var4 = (new JdomParser()).func_27367_a(p_27177_0_);
- List var5 = var4.func_27217_b(new Object[] {"stats-change"});
+ JsonRootNode var4 = (new JdomParser()).parse(p_27177_0_);
- JsonRootNode var4 = (new JdomParser()).func_74789_a(p_77453_0_);
- List var5 = var4.func_74612_b(new Object[] {"stats-change"});
+ JsonRootNode var4 = (new JdomParser()).parse(p_77453_0_);
+ List var5 = var4.getArrayNode(new Object[] {"stats-change"});
Iterator var6 = var5.iterator();
while (var6.hasNext())
{
JsonNode var7 = (JsonNode)var6.next();
- Map var8 = var7.func_27214_c();
- Map var8 = var7.func_74614_d();
+ Map var8 = var7.getFields();
Entry var9 = (Entry)var8.entrySet().iterator().next();
- int var10 = Integer.parseInt(((JsonStringNode)var9.getKey()).func_27216_b());
- int var11 = Integer.parseInt(((JsonNode)var9.getValue()).func_27216_b());
- int var10 = Integer.parseInt(((JsonStringNode)var9.getKey()).func_74615_c());
- int var11 = Integer.parseInt(((JsonNode)var9.getValue()).func_74615_c());
+ int var10 = Integer.parseInt(((JsonStringNode)var9.getKey()).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)
@@ -152,7 +152,7 @@
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.getNode(new Object[] {"checksum"})))
- if (!var15.equals(var4.func_74611_a(new Object[] {"checksum"})))
+ if (!var15.equals(var4.getStringValue(new Object[] {"checksum"})))
{
System.out.println("CHECKSUM MISMATCH");
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]);
+ }
+
}