diff --git a/.gradle/8.0/executionHistory/executionHistory.bin b/.gradle/8.0/executionHistory/executionHistory.bin index 9fae2c8..546530c 100644 Binary files a/.gradle/8.0/executionHistory/executionHistory.bin and b/.gradle/8.0/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.0/executionHistory/executionHistory.lock b/.gradle/8.0/executionHistory/executionHistory.lock index 3f3b5a3..5d54d44 100644 Binary files a/.gradle/8.0/executionHistory/executionHistory.lock and b/.gradle/8.0/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.0/fileHashes/fileHashes.bin b/.gradle/8.0/fileHashes/fileHashes.bin index 2b28f09..1034bbb 100644 Binary files a/.gradle/8.0/fileHashes/fileHashes.bin and b/.gradle/8.0/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.0/fileHashes/fileHashes.lock b/.gradle/8.0/fileHashes/fileHashes.lock index b121d3f..c292282 100644 Binary files a/.gradle/8.0/fileHashes/fileHashes.lock and b/.gradle/8.0/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.0/fileHashes/resourceHashesCache.bin b/.gradle/8.0/fileHashes/resourceHashesCache.bin index c7f2307..dd91332 100644 Binary files a/.gradle/8.0/fileHashes/resourceHashesCache.bin and b/.gradle/8.0/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 25a6883..9688acd 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/build/classes/java/main/net/lax1dude/eaglercraft/GuiScreenSingleplayerException.class b/build/classes/java/main/net/lax1dude/eaglercraft/GuiScreenSingleplayerException.class deleted file mode 100644 index 661d87d..0000000 Binary files a/build/classes/java/main/net/lax1dude/eaglercraft/GuiScreenSingleplayerException.class and /dev/null differ diff --git a/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacket15ThrowException.class b/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacket15ThrowException.class deleted file mode 100644 index ca1b892..0000000 Binary files a/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacket15ThrowException.class and /dev/null differ diff --git a/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacketBase.class b/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacketBase.class deleted file mode 100644 index 67798b9..0000000 Binary files a/build/classes/java/main/net/lax1dude/eaglercraft/sp/ipc/IPCPacketBase.class and /dev/null differ diff --git a/build/classes/java/main/net/minecraft/src/Gui.class b/build/classes/java/main/net/minecraft/src/Gui.class deleted file mode 100644 index 3f44988..0000000 Binary files a/build/classes/java/main/net/minecraft/src/Gui.class and /dev/null differ diff --git a/build/classes/java/main/net/minecraft/src/GuiButton.class b/build/classes/java/main/net/minecraft/src/GuiButton.class deleted file mode 100644 index 83bfb7f..0000000 Binary files a/build/classes/java/main/net/minecraft/src/GuiButton.class and /dev/null differ diff --git a/build/classes/java/main/net/minecraft/src/GuiScreen.class b/build/classes/java/main/net/minecraft/src/GuiScreen.class deleted file mode 100644 index f9c9405..0000000 Binary files a/build/classes/java/main/net/minecraft/src/GuiScreen.class and /dev/null differ diff --git a/build/classes/java/main/net/minecraft/src/ResourceLocation.class b/build/classes/java/main/net/minecraft/src/ResourceLocation.class deleted file mode 100644 index f651227..0000000 Binary files a/build/classes/java/main/net/minecraft/src/ResourceLocation.class and /dev/null differ diff --git a/src/main/java/net/minecraft/src/AbstractClientPlayer.java b/src/main/java/net/minecraft/src/AbstractClientPlayer.java deleted file mode 100644 index 453153a..0000000 --- a/src/main/java/net/minecraft/src/AbstractClientPlayer.java +++ /dev/null @@ -1,98 +0,0 @@ -package net.minecraft.src; - -public abstract class AbstractClientPlayer extends EntityPlayer -{ - public static final ResourceLocation locationStevePng = new ResourceLocation("textures/entity/steve.png"); - private ThreadDownloadImageData downloadImageSkin; - private ThreadDownloadImageData downloadImageCape; - private ResourceLocation locationSkin; - private ResourceLocation locationCape; - - public AbstractClientPlayer(World par1World, String par2Str) - { - super(par1World, par2Str); - this.setupCustomSkin(); - } - - protected void setupCustomSkin() - { - System.out.println("Setting up custom skins"); - - if (this.username != null && !this.username.isEmpty()) - { - this.locationSkin = getLocationSkin(this.username); - this.locationCape = getLocationCape(this.username); - this.downloadImageSkin = getDownloadImageSkin(this.locationSkin, this.username); - this.downloadImageCape = getDownloadImageCape(this.locationCape, this.username); - } - } - - public ThreadDownloadImageData getTextureSkin() - { - return this.downloadImageSkin; - } - - public ThreadDownloadImageData getTextureCape() - { - return this.downloadImageCape; - } - - public ResourceLocation getLocationSkin() - { - return this.locationSkin; - } - - public ResourceLocation getLocationCape() - { - return this.locationCape; - } - - public static ThreadDownloadImageData getDownloadImageSkin(ResourceLocation par0ResourceLocation, String par1Str) - { - return getDownloadImage(par0ResourceLocation, getSkinUrl(par1Str), locationStevePng, new ImageBufferDownload()); - } - - public static ThreadDownloadImageData getDownloadImageCape(ResourceLocation par0ResourceLocation, String par1Str) - { - return getDownloadImage(par0ResourceLocation, getCapeUrl(par1Str), (ResourceLocation)null, (IImageBuffer)null); - } - - private static ThreadDownloadImageData getDownloadImage(ResourceLocation par0ResourceLocation, String par1Str, ResourceLocation par2ResourceLocation, IImageBuffer par3IImageBuffer) - { - TextureManager var4 = Minecraft.getMinecraft().getTextureManager(); - Object var5 = var4.getTexture(par0ResourceLocation); - - if (var5 == null) - { - var5 = new ThreadDownloadImageData(par1Str, par2ResourceLocation, par3IImageBuffer); - var4.loadTexture(par0ResourceLocation, (TextureObject)var5); - } - - return (ThreadDownloadImageData)var5; - } - - public static String getSkinUrl(String par0Str) - { - return String.format("http://skins.minecraft.net/MinecraftSkins/%s.png", new Object[] {StringUtils.stripControlCodes(par0Str)}); - } - - public static String getCapeUrl(String par0Str) - { - return String.format("http://skins.minecraft.net/MinecraftCloaks/%s.png", new Object[] {StringUtils.stripControlCodes(par0Str)}); - } - - public static ResourceLocation getLocationSkin(String par0Str) - { - return new ResourceLocation("skins/" + StringUtils.stripControlCodes(par0Str)); - } - - public static ResourceLocation getLocationCape(String par0Str) - { - return new ResourceLocation("cloaks/" + StringUtils.stripControlCodes(par0Str)); - } - - public static ResourceLocation getLocationSkull(String par0Str) - { - return new ResourceLocation("skull/" + StringUtils.stripControlCodes(par0Str)); - } -} diff --git a/src/main/java/net/minecraft/src/DemoWorldManager.java b/src/main/java/net/minecraft/src/DemoWorldManager.java deleted file mode 100644 index 426db2b..0000000 --- a/src/main/java/net/minecraft/src/DemoWorldManager.java +++ /dev/null @@ -1,139 +0,0 @@ -package net.minecraft.src; - -public class DemoWorldManager extends ItemInWorldManager -{ - private boolean field_73105_c; - private boolean demoTimeExpired; - private int field_73104_e; - private int field_73102_f; - - public DemoWorldManager(World par1World) - { - super(par1World); - } - - public void updateBlockRemoving() - { - super.updateBlockRemoving(); - ++this.field_73102_f; - long var1 = this.theWorld.getTotalWorldTime(); - long var3 = var1 / 24000L + 1L; - - if (!this.field_73105_c && this.field_73102_f > 20) - { - this.field_73105_c = true; - this.thisPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet70GameEvent(5, 0)); - } - - this.demoTimeExpired = var1 > 120500L; - - if (this.demoTimeExpired) - { - ++this.field_73104_e; - } - - if (var1 % 24000L == 500L) - { - if (var3 <= 6L) - { - this.thisPlayerMP.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("demo.day." + var3)); - } - } - else if (var3 == 1L) - { - if (var1 == 100L) - { - this.thisPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet70GameEvent(5, 101)); - } - else if (var1 == 175L) - { - this.thisPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet70GameEvent(5, 102)); - } - else if (var1 == 250L) - { - this.thisPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet70GameEvent(5, 103)); - } - } - else if (var3 == 5L && var1 % 24000L == 22000L) - { - this.thisPlayerMP.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("demo.day.warning")); - } - } - - /** - * Sends a message to the player reminding them that this is the demo version - */ - private void sendDemoReminder() - { - if (this.field_73104_e > 100) - { - this.thisPlayerMP.sendChatToPlayer(ChatMessageComponent.createFromTranslationKey("demo.reminder")); - this.field_73104_e = 0; - } - } - - /** - * if not creative, it calls destroyBlockInWorldPartially untill the block is broken first. par4 is the specific - * side. tryHarvestBlock can also be the result of this call - */ - public void onBlockClicked(int par1, int par2, int par3, int par4) - { - if (this.demoTimeExpired) - { - this.sendDemoReminder(); - } - else - { - super.onBlockClicked(par1, par2, par3, par4); - } - } - - public void uncheckedTryHarvestBlock(int par1, int par2, int par3) - { - if (!this.demoTimeExpired) - { - super.uncheckedTryHarvestBlock(par1, par2, par3); - } - } - - /** - * Attempts to harvest a block at the given coordinate - */ - public boolean tryHarvestBlock(int par1, int par2, int par3) - { - return this.demoTimeExpired ? false : super.tryHarvestBlock(par1, par2, par3); - } - - /** - * Attempts to right-click use an item by the given EntityPlayer in the given World - */ - public boolean tryUseItem(EntityPlayer par1EntityPlayer, World par2World, ItemStack par3ItemStack) - { - if (this.demoTimeExpired) - { - this.sendDemoReminder(); - return false; - } - else - { - return super.tryUseItem(par1EntityPlayer, par2World, par3ItemStack); - } - } - - /** - * Activate the clicked on block, otherwise use the held item. Args: player, world, itemStack, x, y, z, side, - * xOffset, yOffset, zOffset - */ - public boolean activateBlockOrUseItem(EntityPlayer par1EntityPlayer, World par2World, ItemStack par3ItemStack, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - if (this.demoTimeExpired) - { - this.sendDemoReminder(); - return false; - } - else - { - return super.activateBlockOrUseItem(par1EntityPlayer, par2World, par3ItemStack, par4, par5, par6, par7, par8, par9, par10); - } - } -} diff --git a/src/main/java/net/minecraft/src/DemoWorldServer.java b/src/main/java/net/minecraft/src/DemoWorldServer.java deleted file mode 100644 index ff3aabb..0000000 --- a/src/main/java/net/minecraft/src/DemoWorldServer.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.minecraft.src; - -import net.minecraft.server.MinecraftServer; - -public class DemoWorldServer extends WorldServer -{ - private static final long demoWorldSeed = (long)"North Carolina".hashCode(); - public static final WorldSettings demoWorldSettings = (new WorldSettings(demoWorldSeed, EnumGameType.SURVIVAL, true, false, WorldType.DEFAULT)).enableBonusChest(); - - public DemoWorldServer(MinecraftServer par1MinecraftServer, ISaveHandler par2ISaveHandler, String par3Str, int par4, Profiler par5Profiler, ILogAgent par6ILogAgent) - { - super(par1MinecraftServer, par2ISaveHandler, par3Str, par4, demoWorldSettings, par5Profiler, par6ILogAgent); - } -} diff --git a/src/main/java/net/minecraft/src/EffectRenderer.java b/src/main/java/net/minecraft/src/EffectRenderer.java index 91292ab..ffd09ee 100644 --- a/src/main/java/net/minecraft/src/EffectRenderer.java +++ b/src/main/java/net/minecraft/src/EffectRenderer.java @@ -3,11 +3,13 @@ package net.minecraft.src; import java.util.ArrayList; import java.util.List; import java.util.Random; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class EffectRenderer { - private static final ResourceLocation particleTextures = new ResourceLocation("textures/particle/particles.png"); + private static final TextureLocation particleTextures = new TextureLocation("textures/particle/particles.png"); /** Reference to the World object. */ protected World worldObj; @@ -83,15 +85,15 @@ public class EffectRenderer { case 0: default: - this.renderer.bindTexture(particleTextures); + particleTextures.bindTexture(); break; case 1: - this.renderer.bindTexture(TextureMap.locationBlocksTexture); + TextureMap.locationBlocksTexture.bindTexture(); break; case 2: - this.renderer.bindTexture(TextureMap.locationItemsTexture); + TextureMap.locationItemsTexture.bindTexture(); } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/java/net/minecraft/src/EntityFootStepFX.java b/src/main/java/net/minecraft/src/EntityFootStepFX.java index 8c1bc20..a317d20 100644 --- a/src/main/java/net/minecraft/src/EntityFootStepFX.java +++ b/src/main/java/net/minecraft/src/EntityFootStepFX.java @@ -1,10 +1,11 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class EntityFootStepFX extends EntityFX { - private static final ResourceLocation field_110126_a = new ResourceLocation("textures/particle/footprint.png"); + private static final TextureLocation field_110126_a = new TextureLocation("textures/particle/footprint.png"); private int footstepAge; private int footstepMaxAge; private TextureManager currentFootSteps; @@ -35,7 +36,7 @@ public class EntityFootStepFX extends EntityFX float var12 = (float)(this.posY - interpPosY); float var13 = (float)(this.posZ - interpPosZ); float var14 = this.worldObj.getLightBrightness(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ)); - this.currentFootSteps.bindTexture(field_110126_a); + field_110126_a.bindTexture(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); par1Tessellator.startDrawingQuads(); diff --git a/src/main/java/net/minecraft/src/EntityLargeExplodeFX.java b/src/main/java/net/minecraft/src/EntityLargeExplodeFX.java index e1e1425..0868d01 100644 --- a/src/main/java/net/minecraft/src/EntityLargeExplodeFX.java +++ b/src/main/java/net/minecraft/src/EntityLargeExplodeFX.java @@ -1,10 +1,11 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class EntityLargeExplodeFX extends EntityFX { - private static final ResourceLocation field_110127_a = new ResourceLocation("textures/entity/explosion.png"); + private static final TextureLocation field_110127_a = new TextureLocation("textures/entity/explosion.png"); private int field_70581_a; private int field_70584_aq; @@ -27,7 +28,7 @@ public class EntityLargeExplodeFX extends EntityFX if (var8 <= 15) { - this.theRenderEngine.bindTexture(field_110127_a); + field_110127_a.bindTexture(); float var9 = (float)(var8 % 4) / 4.0F; float var10 = var9 + 0.24975F; float var11 = (float)(var8 / 4) / 4.0F; diff --git a/src/main/java/net/minecraft/src/EntityRenderer.java b/src/main/java/net/minecraft/src/EntityRenderer.java index eb13ae4..8a2ed88 100644 --- a/src/main/java/net/minecraft/src/EntityRenderer.java +++ b/src/main/java/net/minecraft/src/EntityRenderer.java @@ -3,6 +3,9 @@ package net.minecraft.src; import java.nio.FloatBuffer; import java.util.List; import java.util.Random; + +import net.lax1dude.eaglercraft.EaglerImage; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.Display; import org.lwjgl.opengl.GL11; @@ -11,8 +14,8 @@ import org.lwjgl.util.glu.Project; public class EntityRenderer { - private static final ResourceLocation locationRainPng = new ResourceLocation("textures/environment/rain.png"); - private static final ResourceLocation locationSnowPng = new ResourceLocation("textures/environment/snow.png"); + private static final TextureLocation locationRainPng = new TextureLocation("textures/environment/rain.png"); + private static final TextureLocation locationSnowPng = new TextureLocation("textures/environment/snow.png"); public static boolean anaglyphEnable; /** Anaglyph field (0=R, 1=GB) */ @@ -79,7 +82,7 @@ public class EntityRenderer * Colors computed in updateLightmap() and loaded into the lightmap emptyTexture */ private final int[] lightmapColors; - private final ResourceLocation locationLightMap; + private final TextureLocation locationLightMap; /** FOV modifier hand */ private float fovModifierHand; @@ -159,7 +162,7 @@ public class EntityRenderer this.mc = par1Minecraft; this.itemRenderer = new ItemRenderer(par1Minecraft); this.lightmapTexture = new DynamicTexture(16, 16); - this.locationLightMap = par1Minecraft.getTextureManager().getDynamicTextureLocation("lightMap", this.lightmapTexture); + this.locationLightMap = par1Minecraft.renderEngine.allocateAndSetupTexture(new EaglerImage(16, 16, true)); this.lightmapColors = this.lightmapTexture.getTextureData(); } diff --git a/src/main/java/net/minecraft/src/FontRenderer.java b/src/main/java/net/minecraft/src/FontRenderer.java index 0925cc0..8208ec7 100644 --- a/src/main/java/net/minecraft/src/FontRenderer.java +++ b/src/main/java/net/minecraft/src/FontRenderer.java @@ -1,41 +1,40 @@ package net.minecraft.src; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.io.InputStream; -import java.text.Bidi; import java.util.Arrays; import java.util.Iterator; import java.util.List; -import java.util.Random; -import javax.imageio.ImageIO; -import org.lwjgl.opengl.GL11; -public class FontRenderer implements ResourceManagerReloadListener -{ - private static final ResourceLocation[] unicodePageLocations = new ResourceLocation[256]; +import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.EaglerImage; +import net.lax1dude.eaglercraft.EaglercraftRandom; +import net.lax1dude.eaglercraft.TextureLocation; +import net.lax1dude.eaglercraft.adapter.Tessellator; +import net.minecraft.src.Minecraft; +public class FontRenderer { /** Array of width of all the characters in default.png */ private int[] charWidth = new int[256]; /** the height in pixels of default text */ public int FONT_HEIGHT = 9; - public Random fontRandom = new Random(); + public EaglercraftRandom fontRandom = new EaglercraftRandom(); /** - * Array of the start/end column (in upper/lower nibble) for every glyph in the /font directory. + * Array of the start/end column (in upper/lower nibble) for every glyph in the + * /font directory. */ private byte[] glyphWidth = new byte[65536]; /** - * Array of RGB triplets defining the 16 standard chat colors followed by 16 darker version of the same colors for - * drop shadows. + * Array of RGB triplets defining the 16 standard chat colors followed by 16 + * darker version of the same colors for drop shadows. */ private int[] colorCode = new int[32]; - private final ResourceLocation locationFontTexture; + private final TextureLocation fontTexture; + private final String fontTextureName; /** The RenderEngine used to load and setup glyph textures. */ - private final TextureManager renderEngine; + private final RenderEngine renderEngine; /** Current X coordinate at which to draw the next character. */ private float posX; @@ -44,12 +43,14 @@ public class FontRenderer implements ResourceManagerReloadListener private float posY; /** - * If true, strings should be rendered with Unicode fonts instead of the default.png font + * If true, strings should be rendered with Unicode fonts instead of the + * default.png font */ private boolean unicodeFlag; /** - * If true, the Unicode Bidirectional Algorithm should be run before rendering any string. + * If true, the Unicode Bidirectional Algorithm should be run before rendering + * any string. */ private boolean bidiFlag; @@ -69,45 +70,43 @@ public class FontRenderer implements ResourceManagerReloadListener private int textColor; /** Set if the "k" style (random) is active in currently rendering string */ - private boolean randomStyle; + private boolean randomStyle = false; /** Set if the "l" style (bold) is active in currently rendering string */ - private boolean boldStyle; + private boolean boldStyle = false; /** Set if the "o" style (italic) is active in currently rendering string */ - private boolean italicStyle; + private boolean italicStyle = false; /** * Set if the "n" style (underlined) is active in currently rendering string */ - private boolean underlineStyle; + private boolean underlineStyle = false; /** * Set if the "m" style (strikethrough) is active in currently rendering string */ - private boolean strikethroughStyle; + private boolean strikethroughStyle = false; - public FontRenderer(GameSettings par1GameSettings, ResourceLocation par2ResourceLocation, TextureManager par3TextureManager, boolean par4) - { - this.locationFontTexture = par2ResourceLocation; - this.renderEngine = par3TextureManager; + public FontRenderer(GameSettings par1GameSettings, String par2Str, RenderEngine par3RenderEngine, boolean par4) { + this.fontTexture = new TextureLocation(par2Str); + this.fontTextureName = par2Str; + this.renderEngine = par3RenderEngine; this.unicodeFlag = par4; - par3TextureManager.bindTexture(this.locationFontTexture); + this.readFontData(); + fontTexture.bindTexture(); - for (int var5 = 0; var5 < 32; ++var5) - { + for (int var5 = 0; var5 < 32; ++var5) { int var6 = (var5 >> 3 & 1) * 85; int var7 = (var5 >> 2 & 1) * 170 + var6; int var8 = (var5 >> 1 & 1) * 170 + var6; int var9 = (var5 >> 0 & 1) * 170 + var6; - if (var5 == 6) - { + if (var5 == 6) { var7 += 85; } - if (par1GameSettings.anaglyph) - { + if (par1GameSettings.anaglyph) { int var10 = (var7 * 30 + var8 * 59 + var9 * 11) / 100; int var11 = (var7 * 30 + var8 * 70) / 100; int var12 = (var7 * 30 + var9 * 70) / 100; @@ -116,8 +115,7 @@ public class FontRenderer implements ResourceManagerReloadListener var9 = var12; } - if (var5 >= 16) - { + if (var5 >= 16) { var7 /= 4; var8 /= 4; var9 /= 4; @@ -125,175 +123,122 @@ public class FontRenderer implements ResourceManagerReloadListener this.colorCode[var5] = (var7 & 255) << 16 | (var8 & 255) << 8 | var9 & 255; } + } + public void readFontData() { this.readGlyphSizes(); + this.readFontTexture(this.fontTextureName); } - public void onResourceManagerReload(ResourceManager par1ResourceManager) - { - this.readFontTexture(); - } + private void readFontTexture(String par1Str) { + //EaglerImage e = EaglerImage.loadImage(EaglerAdapter.loadResourceBytes(par1Str)); + EaglerImage e = EaglerAdapter.loadPNG(Minecraft.getMinecraft().texturePackList.getSelectedTexturePack().getResourceAsBytes(par1Str)); + int[] var5 = e.data; + int var3 = e.w; + int var4 = e.h; + int var6 = 0; - private void readFontTexture() - { - BufferedImage var1; + while (var6 < 256) { + int var7 = var6 % 16; + int var8 = var6 / 16; + int var9 = 7; - try - { - var1 = ImageIO.read(Minecraft.getMinecraft().getResourceManager().getResource(this.locationFontTexture).getInputStream()); - } - catch (IOException var17) - { - throw new RuntimeException(var17); - } + while (true) { + if (var9 >= 0) { + int var10 = var7 * 8 + var9; + boolean var11 = true; - int var2 = var1.getWidth(); - int var3 = var1.getHeight(); - int[] var4 = new int[var2 * var3]; - var1.getRGB(0, 0, var2, var3, var4, 0, var2); - int var5 = var3 / 16; - int var6 = var2 / 16; - byte var7 = 1; - float var8 = 8.0F / (float)var6; - int var9 = 0; + for (int var12 = 0; var12 < 8 && var11; ++var12) { + int var13 = (var8 * 8 + var12) * var3; + int var14 = var5[var10 + var13] & 255; - while (var9 < 256) - { - int var10 = var9 % 16; - int var11 = var9 / 16; - - if (var9 == 32) - { - this.charWidth[var9] = 3 + var7; - } - - int var12 = var6 - 1; - - while (true) - { - if (var12 >= 0) - { - int var13 = var10 * var6 + var12; - boolean var14 = true; - - for (int var15 = 0; var15 < var5 && var14; ++var15) - { - int var16 = (var11 * var6 + var15) * var2; - - if ((var4[var13 + var16] >> 24 & 255) != 0) - { - var14 = false; + if (var14 > 0) { + var11 = false; } } - if (var14) - { - --var12; + if (var11) { + --var9; continue; } } - ++var12; - this.charWidth[var9] = (int)(0.5D + (double)((float)var12 * var8)) + var7; - ++var9; + if (var6 == 32) { + var9 = 2; + } + + this.charWidth[var6] = var9 + 2; + ++var6; break; } } } - private void readGlyphSizes() - { - try - { - InputStream var1 = Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("font/glyph_sizes.bin")).getInputStream(); - var1.read(this.glyphWidth); - } - catch (IOException var2) - { - throw new RuntimeException(var2); - } + private void readGlyphSizes() { + this.glyphWidth = Minecraft.getMinecraft().texturePackList.getSelectedTexturePack().getResourceAsBytes("/font/glyph_sizes.bin"); } /** * Pick how to render a single character and return the width used. */ - private float renderCharAtPos(int par1, char par2, boolean par3) - { + private float renderCharAtPos(int par1, char par2, boolean par3) { return par2 == 32 ? 4.0F : (par1 > 0 && !this.unicodeFlag ? this.renderDefaultChar(par1 + 32, par3) : this.renderUnicodeChar(par2, par3)); } /** - * Render a single character with the default.png font at current (posX,posY) location... + * Render a single character with the default.png font at current (posX,posY) + * location... */ - private float renderDefaultChar(int par1, boolean par2) - { - float var3 = (float)(par1 % 16 * 8); - float var4 = (float)(par1 / 16 * 8); + private float renderDefaultChar(int par1, boolean par2) { + float var3 = (float) (par1 % 16 * 8); + float var4 = (float) (par1 / 16 * 8); float var5 = par2 ? 1.0F : 0.0F; - this.renderEngine.bindTexture(this.locationFontTexture); - float var6 = (float)this.charWidth[par1] - 0.01F; - GL11.glBegin(GL11.GL_TRIANGLE_STRIP); - GL11.glTexCoord2f(var3 / 128.0F, var4 / 128.0F); - GL11.glVertex3f(this.posX + var5, this.posY, 0.0F); - GL11.glTexCoord2f(var3 / 128.0F, (var4 + 7.99F) / 128.0F); - GL11.glVertex3f(this.posX - var5, this.posY + 7.99F, 0.0F); - GL11.glTexCoord2f((var3 + var6 - 1.0F) / 128.0F, var4 / 128.0F); - GL11.glVertex3f(this.posX + var6 - 1.0F + var5, this.posY, 0.0F); - GL11.glTexCoord2f((var3 + var6 - 1.0F) / 128.0F, (var4 + 7.99F) / 128.0F); - GL11.glVertex3f(this.posX + var6 - 1.0F - var5, this.posY + 7.99F, 0.0F); - GL11.glEnd(); - return (float)this.charWidth[par1]; - } - - private ResourceLocation getUnicodePageLocation(int par1) - { - if (unicodePageLocations[par1] == null) - { - unicodePageLocations[par1] = new ResourceLocation(String.format("textures/font/unicode_page_%02x.png", new Object[] {Integer.valueOf(par1)})); - } - - return unicodePageLocations[par1]; + float var6 = (float) this.charWidth[par1] - 0.02F; + Tessellator t = Tessellator.instance; + t.addVertexWithUV(this.posX + 0.01F + var5, this.posY + 0.01F, 0.0F, (var3 + 0.02F) / 128.0F, (var4 + 0.02F) / 128.0F); + t.addVertexWithUV(this.posX + 0.01F - var5, this.posY + 7.99F, 0.0F, (var3 + 0.02F) / 128.0F, (var4 + 7.96F) / 128.0F); + t.addVertexWithUV(this.posX + var6 - var5, this.posY + 7.99F, 0.0F, (var3 + var6) / 128.0F, (var4 + 7.96F) / 128.0F); + t.addVertexWithUV(this.posX + var6 + var5, this.posY + 0.01F, 0.0F, (var3 + var6) / 128.0F, (var4 + 0.02F) / 128.0F); + return (float) this.charWidth[par1]; } /** - * Load one of the /font/glyph_XX.png into a new GL texture and store the texture ID in glyphTextureName array. + * Load one of the /font/glyph_XX.png into a new GL texture and store the + * texture ID in glyphTextureName array. */ - private void loadGlyphTexture(int par1) - { - this.renderEngine.bindTexture(this.getUnicodePageLocation(par1)); + private void loadGlyphTexture(int par1) { + String var2 = String.format("/font/glyph_%02X.png", new Object[] { Integer.valueOf(par1) }); + this.renderEngine.bindTexture(var2); } /** - * Render a single Unicode character at current (posX,posY) location using one of the /font/glyph_XX.png files... + * Render a single Unicode character at current (posX,posY) location using one + * of the /font/glyph_XX.png files... */ - private float renderUnicodeChar(char par1, boolean par2) - { - if (this.glyphWidth[par1] == 0) - { + private float renderUnicodeChar(char par1, boolean par2) { + if (this.glyphWidth[par1] == 0) { return 0.0F; - } - else - { + } else { + Tessellator t = Tessellator.instance; + t.draw(); int var3 = par1 / 256; this.loadGlyphTexture(var3); int var4 = this.glyphWidth[par1] >>> 4; int var5 = this.glyphWidth[par1] & 15; - float var6 = (float)var4; - float var7 = (float)(var5 + 1); - float var8 = (float)(par1 % 16 * 16) + var6; - float var9 = (float)((par1 & 255) / 16 * 16); + float var6 = (float) var4; + float var7 = (float) (var5 + 1); + float var8 = (float) (par1 % 16 * 16) + var6; + float var9 = (float) ((par1 & 255) / 16 * 16); float var10 = var7 - var6 - 0.02F; float var11 = par2 ? 1.0F : 0.0F; - GL11.glBegin(GL11.GL_TRIANGLE_STRIP); - GL11.glTexCoord2f(var8 / 256.0F, var9 / 256.0F); - GL11.glVertex3f(this.posX + var11, this.posY, 0.0F); - GL11.glTexCoord2f(var8 / 256.0F, (var9 + 15.98F) / 256.0F); - GL11.glVertex3f(this.posX - var11, this.posY + 7.99F, 0.0F); - GL11.glTexCoord2f((var8 + var10) / 256.0F, var9 / 256.0F); - GL11.glVertex3f(this.posX + var10 / 2.0F + var11, this.posY, 0.0F); - GL11.glTexCoord2f((var8 + var10) / 256.0F, (var9 + 15.98F) / 256.0F); - GL11.glVertex3f(this.posX + var10 / 2.0F - var11, this.posY + 7.99F, 0.0F); - GL11.glEnd(); + t.startDrawing(EaglerAdapter.GL_TRIANGLE_STRIP); + t.addVertexWithUV(this.posX + 0.01F + var11, this.posY + 0.01F, 0.0F, (var8 + 0.02F) / 256.0F, (var9 + 0.02F) / 256.0F); + t.addVertexWithUV(this.posX + 0.01F - var11, this.posY + 7.99F, 0.0F, (var8 + 0.02F) / 256.0F, (var9 + 15.98F) / 256.0F); + t.addVertexWithUV(this.posX + var10 / 2.0F + var11, this.posY + 0.01F, 0.0F, (var8 + var10) / 256.0F, (var9 + 0.02F) / 256.0F); + t.addVertexWithUV(this.posX + var10 / 2.0F - var11, this.posY + 7.99F, 0.0F, (var8 + var10) / 256.0F, (var9 + 15.98F) / 256.0F); + t.draw(); + this.fontTexture.bindTexture(); + t.startDrawingQuads(); return (var7 - var6) / 2.0F + 1.0F; } } @@ -301,40 +246,29 @@ public class FontRenderer implements ResourceManagerReloadListener /** * Draws the specified string with a shadow. */ - public int drawStringWithShadow(String par1Str, int par2, int par3, int par4) - { + public int drawStringWithShadow(String par1Str, int par2, int par3, int par4) { return this.drawString(par1Str, par2, par3, par4, true); } /** * Draws the specified string. */ - public int drawString(String par1Str, int par2, int par3, int par4) - { + public int drawString(String par1Str, int par2, int par3, int par4) { return this.drawString(par1Str, par2, par3, par4, false); } /** * Draws the specified string. Args: string, x, y, color, dropShadow */ - public int drawString(String par1Str, int par2, int par3, int par4, boolean par5) - { + public int drawString(String par1Str, int par2, int par3, int par4, boolean par5) { this.resetStyles(); - if (this.bidiFlag) - { - par1Str = this.bidiReorder(par1Str); - } - int var6; - if (par5) - { + if (par5) { var6 = this.renderString(par1Str, par2 + 1, par3 + 1, par4, true); var6 = Math.max(var6, this.renderString(par1Str, par2, par3, par4, false)); - } - else - { + } else { var6 = this.renderString(par1Str, par2, par3, par4, false); } @@ -342,91 +276,10 @@ public class FontRenderer implements ResourceManagerReloadListener } /** - * Apply Unicode Bidirectional Algorithm to string and return a new possibly reordered string for visual rendering. + * Reset all style flag fields in the class to false; called at the start of + * string rendering */ - private String bidiReorder(String par1Str) - { - if (par1Str != null && Bidi.requiresBidi(par1Str.toCharArray(), 0, par1Str.length())) - { - Bidi var2 = new Bidi(par1Str, -2); - byte[] var3 = new byte[var2.getRunCount()]; - String[] var4 = new String[var3.length]; - int var7; - - for (int var5 = 0; var5 < var3.length; ++var5) - { - int var6 = var2.getRunStart(var5); - var7 = var2.getRunLimit(var5); - int var8 = var2.getRunLevel(var5); - String var9 = par1Str.substring(var6, var7); - var3[var5] = (byte)var8; - var4[var5] = var9; - } - - String[] var11 = (String[])var4.clone(); - Bidi.reorderVisually(var3, 0, var4, 0, var3.length); - StringBuilder var12 = new StringBuilder(); - var7 = 0; - - while (var7 < var4.length) - { - byte var13 = var3[var7]; - int var14 = 0; - - while (true) - { - if (var14 < var11.length) - { - if (!var11[var14].equals(var4[var7])) - { - ++var14; - continue; - } - - var13 = var3[var14]; - } - - if ((var13 & 1) == 0) - { - var12.append(var4[var7]); - } - else - { - for (var14 = var4[var7].length() - 1; var14 >= 0; --var14) - { - char var10 = var4[var7].charAt(var14); - - if (var10 == 40) - { - var10 = 41; - } - else if (var10 == 41) - { - var10 = 40; - } - - var12.append(var10); - } - } - - ++var7; - break; - } - } - - return var12.toString(); - } - else - { - return par1Str; - } - } - - /** - * Reset all style flag fields in the class to false; called at the start of string rendering - */ - private void resetStyles() - { + private void resetStyles() { this.randomStyle = false; this.boldStyle = false; this.italicStyle = false; @@ -437,110 +290,91 @@ public class FontRenderer implements ResourceManagerReloadListener /** * Render a single line string at the current (posX,posY) and update posX */ - private void renderStringAtPos(String par1Str, boolean par2) - { - for (int var3 = 0; var3 < par1Str.length(); ++var3) - { + private void renderStringAtPos(String par1Str, boolean par2) { + Tessellator t = Tessellator.instance; + this.fontTexture.bindTexture(); + t.startDrawingQuads(); + for (int var3 = 0; var3 < par1Str.length(); ++var3) { char var4 = par1Str.charAt(var3); int var5; int var6; - if (var4 == 167 && var3 + 1 < par1Str.length()) - { - var5 = "0123456789abcdefklmnor".indexOf(par1Str.toLowerCase().charAt(var3 + 1)); + if (var4 == '\u00a7' && var3 + 1 < par1Str.length()) { + var5 = "0123456789abcdefklmnor".indexOf((char)Character.toLowerCase(par1Str.charAt(var3 + 1))); - if (var5 < 16) - { + if (var5 < 16) { this.randomStyle = false; this.boldStyle = false; this.strikethroughStyle = false; this.underlineStyle = false; this.italicStyle = false; - if (var5 < 0 || var5 > 15) - { + if (var5 < 0 || var5 > 15) { var5 = 15; } - if (par2) - { + if (par2) { var5 += 16; } + t.draw(); + t.startDrawingQuads(); + var6 = this.colorCode[var5]; this.textColor = var6; - GL11.glColor4f((float)(var6 >> 16) / 255.0F, (float)(var6 >> 8 & 255) / 255.0F, (float)(var6 & 255) / 255.0F, this.alpha); - } - else if (var5 == 16) - { + EaglerAdapter.glColor4f((float) ((var6 >> 16) & 255) / 255.0F, (float) ((var6 >> 8) & 255) / 255.0F, (float) (var6 & 255) / 255.0F, this.alpha); + } else if (var5 == 16) { this.randomStyle = true; - } - else if (var5 == 17) - { + } else if (var5 == 17) { this.boldStyle = true; - } - else if (var5 == 18) - { + } else if (var5 == 18) { this.strikethroughStyle = true; - } - else if (var5 == 19) - { + } else if (var5 == 19) { this.underlineStyle = true; - } - else if (var5 == 20) - { + } else if (var5 == 20) { this.italicStyle = true; - } - else if (var5 == 21) - { + } else if (var5 == 21) { this.randomStyle = false; this.boldStyle = false; this.strikethroughStyle = false; this.underlineStyle = false; this.italicStyle = false; - GL11.glColor4f(this.red, this.blue, this.green, this.alpha); + t.draw(); + t.startDrawingQuads(); + EaglerAdapter.glColor4f(this.red, this.blue, this.green, this.alpha); } ++var3; - } - else - { + } else { var5 = ChatAllowedCharacters.allowedCharacters.indexOf(var4); - if (this.randomStyle && var5 > 0) - { - do - { + if (this.randomStyle && var5 > 0) { + do { var6 = this.fontRandom.nextInt(ChatAllowedCharacters.allowedCharacters.length()); - } - while (this.charWidth[var5 + 32] != this.charWidth[var6 + 32]); + } while (this.charWidth[var5 + 32] != this.charWidth[var6 + 32]); var5 = var6; } - float var11 = this.unicodeFlag ? 0.5F : 1.0F; + float var11 = this.unicodeFlag ? 0.48F : 0.98F; boolean var7 = (var5 <= 0 || this.unicodeFlag) && par2; - if (var7) - { + if (var7) { this.posX -= var11; this.posY -= var11; } float var8 = this.renderCharAtPos(var5, var4, this.italicStyle); - if (var7) - { + if (var7) { this.posX += var11; this.posY += var11; } - if (this.boldStyle) - { + if (this.boldStyle) { this.posX += var11; - if (var7) - { + if (var7) { this.posX -= var11; this.posY -= var11; } @@ -548,8 +382,7 @@ public class FontRenderer implements ResourceManagerReloadListener this.renderCharAtPos(var5, var4, this.italicStyle); this.posX -= var11; - if (var7) - { + if (var7) { this.posX += var11; this.posY += var11; } @@ -559,119 +392,100 @@ public class FontRenderer implements ResourceManagerReloadListener Tessellator var9; - if (this.strikethroughStyle) - { + if (this.strikethroughStyle) { var9 = Tessellator.instance; - GL11.glDisable(GL11.GL_TEXTURE_2D); - var9.startDrawingQuads(); - var9.addVertex((double)this.posX, (double)(this.posY + (float)(this.FONT_HEIGHT / 2)), 0.0D); - var9.addVertex((double)(this.posX + var8), (double)(this.posY + (float)(this.FONT_HEIGHT / 2)), 0.0D); - var9.addVertex((double)(this.posX + var8), (double)(this.posY + (float)(this.FONT_HEIGHT / 2) - 1.0F), 0.0D); - var9.addVertex((double)this.posX, (double)(this.posY + (float)(this.FONT_HEIGHT / 2) - 1.0F), 0.0D); var9.draw(); - GL11.glEnable(GL11.GL_TEXTURE_2D); + EaglerAdapter.glDisable(EaglerAdapter.GL_TEXTURE_2D); + var9.startDrawingQuads(); + var9.addVertex((double) this.posX, (double) (this.posY + (float) (this.FONT_HEIGHT / 2)), 0.0D); + var9.addVertex((double) (this.posX + var8), (double) (this.posY + (float) (this.FONT_HEIGHT / 2)), 0.0D); + var9.addVertex((double) (this.posX + var8), (double) (this.posY + (float) (this.FONT_HEIGHT / 2) - 1.0F), 0.0D); + var9.addVertex((double) this.posX, (double) (this.posY + (float) (this.FONT_HEIGHT / 2) - 1.0F), 0.0D); + var9.draw(); + var9.startDrawingQuads(); + EaglerAdapter.glEnable(EaglerAdapter.GL_TEXTURE_2D); } - if (this.underlineStyle) - { + if (this.underlineStyle) { var9 = Tessellator.instance; - GL11.glDisable(GL11.GL_TEXTURE_2D); + var9.draw(); + EaglerAdapter.glDisable(EaglerAdapter.GL_TEXTURE_2D); var9.startDrawingQuads(); int var10 = this.underlineStyle ? -1 : 0; - var9.addVertex((double)(this.posX + (float)var10), (double)(this.posY + (float)this.FONT_HEIGHT), 0.0D); - var9.addVertex((double)(this.posX + var8), (double)(this.posY + (float)this.FONT_HEIGHT), 0.0D); - var9.addVertex((double)(this.posX + var8), (double)(this.posY + (float)this.FONT_HEIGHT - 1.0F), 0.0D); - var9.addVertex((double)(this.posX + (float)var10), (double)(this.posY + (float)this.FONT_HEIGHT - 1.0F), 0.0D); + var9.addVertex((double) (this.posX + (float) var10), (double) (this.posY + (float) this.FONT_HEIGHT), 0.0D); + var9.addVertex((double) (this.posX + var8), (double) (this.posY + (float) this.FONT_HEIGHT), 0.0D); + var9.addVertex((double) (this.posX + var8), (double) (this.posY + (float) this.FONT_HEIGHT - 1.0F), 0.0D); + var9.addVertex((double) (this.posX + (float) var10), (double) (this.posY + (float) this.FONT_HEIGHT - 1.0F), 0.0D); var9.draw(); - GL11.glEnable(GL11.GL_TEXTURE_2D); + var9.startDrawingQuads(); + EaglerAdapter.glEnable(EaglerAdapter.GL_TEXTURE_2D); } - this.posX += (float)((int)var8); + this.posX += (float) ((int) var8); } } + t.draw(); } /** * Render string either left or right aligned depending on bidiFlag */ - private int renderStringAligned(String par1Str, int par2, int par3, int par4, int par5, boolean par6) - { - if (this.bidiFlag) - { - par1Str = this.bidiReorder(par1Str); - int var7 = this.getStringWidth(par1Str); - par2 = par2 + par4 - var7; - } - + private int renderStringAligned(String par1Str, int par2, int par3, int par4, int par5, boolean par6) { return this.renderString(par1Str, par2, par3, par5, par6); } /** - * Render single line string by setting GL color, current (posX,posY), and calling renderStringAtPos() + * Render single line string by setting GL color, current (posX,posY), and + * calling renderStringAtPos() */ - private int renderString(String par1Str, int par2, int par3, int par4, boolean par5) - { - if (par1Str == null) - { + private int renderString(String par1Str, int par2, int par3, int par4, boolean par5) { + if (par1Str == null) { return 0; - } - else - { - if ((par4 & -67108864) == 0) - { + } else { + if ((par4 & -67108864) == 0) { par4 |= -16777216; } - if (par5) - { + if (par5) { par4 = (par4 & 16579836) >> 2 | par4 & -16777216; } - this.red = (float)(par4 >> 16 & 255) / 255.0F; - this.blue = (float)(par4 >> 8 & 255) / 255.0F; - this.green = (float)(par4 & 255) / 255.0F; - this.alpha = (float)(par4 >> 24 & 255) / 255.0F; - GL11.glColor4f(this.red, this.blue, this.green, this.alpha); - this.posX = (float)par2; - this.posY = (float)par3; + this.red = (float) (par4 >> 16 & 255) / 255.0F; + this.blue = (float) (par4 >> 8 & 255) / 255.0F; + this.green = (float) (par4 & 255) / 255.0F; + this.alpha = (float) (par4 >> 24 & 255) / 255.0F; + EaglerAdapter.glColor4f(this.red, this.blue, this.green, this.alpha); + this.posX = (float) par2; + this.posY = (float) par3; this.renderStringAtPos(par1Str, par5); - return (int)this.posX; + return (int) this.posX; } } /** - * Returns the width of this string. Equivalent of FontMetrics.stringWidth(String s). + * Returns the width of this string. Equivalent of + * FontMetrics.stringWidth(String s). */ - public int getStringWidth(String par1Str) - { - if (par1Str == null) - { + public int getStringWidth(String par1Str) { + if (par1Str == null) { return 0; - } - else - { + } else { int var2 = 0; boolean var3 = false; - for (int var4 = 0; var4 < par1Str.length(); ++var4) - { + for (int var4 = 0; var4 < par1Str.length(); ++var4) { char var5 = par1Str.charAt(var4); int var6 = this.getCharWidth(var5); - if (var6 < 0 && var4 < par1Str.length() - 1) - { + if (var6 < 0 && var4 < par1Str.length() - 1) { ++var4; var5 = par1Str.charAt(var4); - if (var5 != 108 && var5 != 76) - { - if (var5 == 114 || var5 == 82) - { + if (var5 != 108 && var5 != 76) { + if (var5 == 114 || var5 == 82) { var3 = false; } - } - else - { + } else { var3 = true; } @@ -680,8 +494,7 @@ public class FontRenderer implements ResourceManagerReloadListener var2 += var6; - if (var3) - { + if (var3) { ++var2; } } @@ -693,40 +506,28 @@ public class FontRenderer implements ResourceManagerReloadListener /** * Returns the width of this character as rendered. */ - public int getCharWidth(char par1) - { - if (par1 == 167) - { + public int getCharWidth(char par1) { + if (par1 == 167) { return -1; - } - else if (par1 == 32) - { + } else if (par1 == 32) { return 4; - } - else - { + } else { int var2 = ChatAllowedCharacters.allowedCharacters.indexOf(par1); - if (var2 >= 0 && !this.unicodeFlag) - { + if (var2 >= 0 && !this.unicodeFlag) { return this.charWidth[var2 + 32]; - } - else if (this.glyphWidth[par1] != 0) - { + } else if (this.glyphWidth[par1] != 0) { int var3 = this.glyphWidth[par1] >>> 4; int var4 = this.glyphWidth[par1] & 15; - if (var4 > 7) - { + if (var4 > 7) { var4 = 15; var3 = 0; } ++var4; return (var4 - var3) / 2 + 1; - } - else - { + } else { return 0; } } @@ -735,16 +536,14 @@ public class FontRenderer implements ResourceManagerReloadListener /** * Trims a string to fit a specified Width. */ - public String trimStringToWidth(String par1Str, int par2) - { + public String trimStringToWidth(String par1Str, int par2) { return this.trimStringToWidth(par1Str, par2, false); } /** * Trims a string to a specified width, and will reverse it if par3 is set. */ - public String trimStringToWidth(String par1Str, int par2, boolean par3) - { + public String trimStringToWidth(String par1Str, int par2, boolean par3) { StringBuilder var4 = new StringBuilder(); int var5 = 0; int var6 = par3 ? par1Str.length() - 1 : 0; @@ -752,52 +551,37 @@ public class FontRenderer implements ResourceManagerReloadListener boolean var8 = false; boolean var9 = false; - for (int var10 = var6; var10 >= 0 && var10 < par1Str.length() && var5 < par2; var10 += var7) - { + for (int var10 = var6; var10 >= 0 && var10 < par1Str.length() && var5 < par2; var10 += var7) { char var11 = par1Str.charAt(var10); int var12 = this.getCharWidth(var11); - if (var8) - { + if (var8) { var8 = false; - if (var11 != 108 && var11 != 76) - { - if (var11 == 114 || var11 == 82) - { + if (var11 != 108 && var11 != 76) { + if (var11 == 114 || var11 == 82) { var9 = false; } - } - else - { + } else { var9 = true; } - } - else if (var12 < 0) - { + } else if (var12 < 0) { var8 = true; - } - else - { + } else { var5 += var12; - if (var9) - { + if (var9) { ++var5; } } - if (var5 > par2) - { + if (var5 > par2) { break; } - if (par3) - { + if (par3) { var4.insert(0, var11); - } - else - { + } else { var4.append(var11); } } @@ -808,10 +592,8 @@ public class FontRenderer implements ResourceManagerReloadListener /** * Remove all newline characters from the end of the string */ - private String trimStringNewline(String par1Str) - { - while (par1Str != null && par1Str.endsWith("\n")) - { + private String trimStringNewline(String par1Str) { + while (par1Str != null && par1Str.endsWith("\n")) { par1Str = par1Str.substring(0, par1Str.length() - 1); } @@ -821,8 +603,7 @@ public class FontRenderer implements ResourceManagerReloadListener /** * Splits and draws a String with wordwrap (maximum length is parameter k) */ - public void drawSplitString(String par1Str, int par2, int par3, int par4, int par5) - { + public void drawSplitString(String par1Str, int par2, int par3, int par4, int par5) { this.resetStyles(); this.textColor = par5; par1Str = this.trimStringNewline(par1Str); @@ -830,16 +611,14 @@ public class FontRenderer implements ResourceManagerReloadListener } /** - * Perform actual work of rendering a multi-line string with wordwrap and with darker drop shadow color if flag is - * set + * Perform actual work of rendering a multi-line string with wordwrap and with + * darker drop shadow color if flag is set */ - private void renderSplitString(String par1Str, int par2, int par3, int par4, boolean par5) - { + private void renderSplitString(String par1Str, int par2, int par3, int par4, boolean par5) { List var6 = this.listFormattedStringToWidth(par1Str, par4); - for (Iterator var7 = var6.iterator(); var7.hasNext(); par3 += this.FONT_HEIGHT) - { - String var8 = (String)var7.next(); + for (Iterator var7 = var6.iterator(); var7.hasNext(); par3 += this.FONT_HEIGHT) { + String var8 = (String) var7.next(); this.renderStringAligned(var8, par2, par3, par4, this.textColor, par5); } } @@ -847,58 +626,51 @@ public class FontRenderer implements ResourceManagerReloadListener /** * Returns the width of the wordwrapped String (maximum length is parameter k) */ - public int splitStringWidth(String par1Str, int par2) - { + public int splitStringWidth(String par1Str, int par2) { return this.FONT_HEIGHT * this.listFormattedStringToWidth(par1Str, par2).size(); } /** - * Set unicodeFlag controlling whether strings should be rendered with Unicode fonts instead of the default.png - * font. + * Set unicodeFlag controlling whether strings should be rendered with Unicode + * fonts instead of the default.png font. */ - public void setUnicodeFlag(boolean par1) - { + public void setUnicodeFlag(boolean par1) { this.unicodeFlag = par1; } /** - * Get unicodeFlag controlling whether strings should be rendered with Unicode fonts instead of the default.png - * font. + * Get unicodeFlag controlling whether strings should be rendered with Unicode + * fonts instead of the default.png font. */ - public boolean getUnicodeFlag() - { + public boolean getUnicodeFlag() { return this.unicodeFlag; } /** - * Set bidiFlag to control if the Unicode Bidirectional Algorithm should be run before rendering any string. + * Set bidiFlag to control if the Unicode Bidirectional Algorithm should be run + * before rendering any string. */ - public void setBidiFlag(boolean par1) - { + public void setBidiFlag(boolean par1) { this.bidiFlag = par1; } /** * Breaks a string into a list of pieces that will fit a specified width. */ - public List listFormattedStringToWidth(String par1Str, int par2) - { + public List listFormattedStringToWidth(String par1Str, int par2) { return Arrays.asList(this.wrapFormattedStringToWidth(par1Str, par2).split("\n")); } /** - * Inserts newline and formatting into a string to wrap it within the specified width. + * Inserts newline and formatting into a string to wrap it within the specified + * width. */ - String wrapFormattedStringToWidth(String par1Str, int par2) - { + String wrapFormattedStringToWidth(String par1Str, int par2) { int var3 = this.sizeStringToWidth(par1Str, par2); - if (par1Str.length() <= var3) - { + if (par1Str.length() <= var3) { return par1Str; - } - else - { + } else { String var4 = par1Str.substring(0, var3); char var5 = par1Str.charAt(var3); boolean var6 = var5 == 32 || var5 == 10; @@ -908,40 +680,33 @@ public class FontRenderer implements ResourceManagerReloadListener } /** - * Determines how many characters from the string will fit into the specified width. + * Determines how many characters from the string will fit into the specified + * width. */ - private int sizeStringToWidth(String par1Str, int par2) - { + private int sizeStringToWidth(String par1Str, int par2) { int var3 = par1Str.length(); int var4 = 0; int var5 = 0; int var6 = -1; - for (boolean var7 = false; var5 < var3; ++var5) - { + for (boolean var7 = false; var5 < var3; ++var5) { char var8 = par1Str.charAt(var5); - switch (var8) - { + switch (var8) { case 10: --var5; break; case 167: - if (var5 < var3 - 1) - { + if (var5 < var3 - 1) { ++var5; char var9 = par1Str.charAt(var5); - if (var9 != 108 && var9 != 76) - { - if (var9 == 114 || var9 == 82 || isFormatColor(var9)) - { + if (var9 != 108 && var9 != 76) { + if (var9 == 114 || var9 == 82 || isFormatColor(var9)) { var7 = false; } - } - else - { + } else { var7 = true; } } @@ -954,21 +719,18 @@ public class FontRenderer implements ResourceManagerReloadListener default: var4 += this.getCharWidth(var8); - if (var7) - { + if (var7) { ++var4; } } - if (var8 == 10) - { + if (var8 == 10) { ++var5; var6 = var5; break; } - if (var4 > par2) - { + if (var4 > par2) { break; } } @@ -979,40 +741,33 @@ public class FontRenderer implements ResourceManagerReloadListener /** * Checks if the char code is a hexadecimal character, used to set colour. */ - private static boolean isFormatColor(char par0) - { + private static boolean isFormatColor(char par0) { return par0 >= 48 && par0 <= 57 || par0 >= 97 && par0 <= 102 || par0 >= 65 && par0 <= 70; } /** * Checks if the char code is O-K...lLrRk-o... used to set special formatting. */ - private static boolean isFormatSpecial(char par0) - { + private static boolean isFormatSpecial(char par0) { return par0 >= 107 && par0 <= 111 || par0 >= 75 && par0 <= 79 || par0 == 114 || par0 == 82; } /** - * Digests a string for nonprinting formatting characters then returns a string containing only that formatting. + * Digests a string for nonprinting formatting characters then returns a string + * containing only that formatting. */ - private static String getFormatFromString(String par0Str) - { + private static String getFormatFromString(String par0Str) { String var1 = ""; int var2 = -1; int var3 = par0Str.length(); - while ((var2 = par0Str.indexOf(167, var2 + 1)) != -1) - { - if (var2 < var3 - 1) - { + while ((var2 = par0Str.indexOf(167, var2 + 1)) != -1) { + if (var2 < var3 - 1) { char var4 = par0Str.charAt(var2 + 1); - if (isFormatColor(var4)) - { + if (isFormatColor(var4)) { var1 = "\u00a7" + var4; - } - else if (isFormatSpecial(var4)) - { + } else if (isFormatSpecial(var4)) { var1 = var1 + "\u00a7" + var4; } } @@ -1022,10 +777,10 @@ public class FontRenderer implements ResourceManagerReloadListener } /** - * Get bidiFlag that controls if the Unicode Bidirectional Algorithm should be run before rendering any string + * Get bidiFlag that controls if the Unicode Bidirectional Algorithm should be + * run before rendering any string */ - public boolean getBidiFlag() - { + public boolean getBidiFlag() { return this.bidiFlag; } } diff --git a/src/main/java/net/minecraft/src/GLAllocation.java b/src/main/java/net/minecraft/src/GLAllocation.java index 5401a0a..89c0829 100644 --- a/src/main/java/net/minecraft/src/GLAllocation.java +++ b/src/main/java/net/minecraft/src/GLAllocation.java @@ -10,49 +10,53 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import org.lwjgl.opengl.GL11; -public class GLAllocation -{ +import net.lax1dude.eaglercraft.EaglerAdapter; + +public class GLAllocation { private static final Map field_74531_a = new HashMap(); private static final List field_74530_b = new ArrayList(); /** * Generates the specified number of display lists and returns the first index. */ - public static synchronized int generateDisplayLists(int par0) - { - int var1 = GL11.glGenLists(par0); + public static int generateDisplayLists(int par0) { + int var1 = EaglerAdapter.glGenLists(par0); field_74531_a.put(Integer.valueOf(var1), Integer.valueOf(par0)); return var1; } - public static synchronized void deleteDisplayLists(int par0) - { - GL11.glDeleteLists(par0, ((Integer)field_74531_a.remove(Integer.valueOf(par0))).intValue()); + /** + * Generates texture names and stores them in the specified buffer. + */ + public static int generateTextureNames() { + int var0 = EaglerAdapter.glGenTextures(); + field_74530_b.add(Integer.valueOf(var0)); + return var0; } - public static synchronized void func_98302_b() - { - for (int var0 = 0; var0 < field_74530_b.size(); ++var0) - { - GL11.glDeleteTextures(((Integer)field_74530_b.get(var0)).intValue()); + public static void deleteDisplayLists(int par0) { + EaglerAdapter.glDeleteLists(par0, ((Integer) field_74531_a.remove(Integer.valueOf(par0))).intValue()); + } + + public static void func_98302_b() { + for (int var0 = 0; var0 < field_74530_b.size(); ++var0) { + EaglerAdapter.glDeleteTextures(((Integer) field_74530_b.get(var0)).intValue()); } field_74530_b.clear(); } /** - * Deletes all textures and display lists. Called when Minecraft is shutdown to free up resources. + * Deletes all textures and display lists. Called when Minecraft is shutdown to + * free up resources. */ - public static synchronized void deleteTexturesAndDisplayLists() - { + public static void deleteTexturesAndDisplayLists() { Iterator var0 = field_74531_a.entrySet().iterator(); - while (var0.hasNext()) - { - Entry var1 = (Entry)var0.next(); - GL11.glDeleteLists(((Integer)var1.getKey()).intValue(), ((Integer)var1.getValue()).intValue()); + while (var0.hasNext()) { + Entry var1 = (Entry) var0.next(); + EaglerAdapter.glDeleteLists(((Integer) var1.getKey()).intValue(), ((Integer) var1.getValue()).intValue()); } field_74531_a.clear(); @@ -60,27 +64,26 @@ public class GLAllocation } /** - * Creates and returns a direct byte buffer with the specified capacity. Applies native ordering to speed up access. + * Creates and returns a direct byte buffer with the specified capacity. Applies + * native ordering to speed up access. */ - public static synchronized ByteBuffer createDirectByteBuffer(int par0) - { - return ByteBuffer.allocateDirect(par0).order(ByteOrder.nativeOrder()); + public static ByteBuffer createDirectByteBuffer(int par0) { + return EaglerAdapter.isWebGL ? ByteBuffer.wrap(new byte[par0]) : ByteBuffer.allocateDirect(par0).order(ByteOrder.nativeOrder()); } /** - * Creates and returns a direct int buffer with the specified capacity. Applies native ordering to speed up access. + * Creates and returns a direct int buffer with the specified capacity. Applies + * native ordering to speed up access. */ - public static IntBuffer createDirectIntBuffer(int par0) - { - return createDirectByteBuffer(par0 << 2).asIntBuffer(); + public static IntBuffer createDirectIntBuffer(int par0) { + return EaglerAdapter.isWebGL ? IntBuffer.wrap(new int[par0]) : createDirectByteBuffer(par0 << 2).asIntBuffer(); } /** - * Creates and returns a direct float buffer with the specified capacity. Applies native ordering to speed up - * access. + * Creates and returns a direct float buffer with the specified capacity. + * Applies native ordering to speed up access. */ - public static FloatBuffer createDirectFloatBuffer(int par0) - { - return createDirectByteBuffer(par0 << 2).asFloatBuffer(); + public static FloatBuffer createDirectFloatBuffer(int par0) { + return EaglerAdapter.isWebGL ? FloatBuffer.wrap(new float[par0]) : createDirectByteBuffer(par0 << 2).asFloatBuffer(); } -} +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/src/Gui.java b/src/main/java/net/minecraft/src/Gui.java index 5ef265f..e425409 100644 --- a/src/main/java/net/minecraft/src/Gui.java +++ b/src/main/java/net/minecraft/src/Gui.java @@ -1,12 +1,13 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class Gui { - public static final ResourceLocation optionsBackground = new ResourceLocation("textures/gui/options_background.png"); - public static final ResourceLocation statIcons = new ResourceLocation("textures/gui/container/stats_icons.png"); - public static final ResourceLocation icons = new ResourceLocation("textures/gui/icons.png"); + public static final TextureLocation optionsBackground = new TextureLocation("textures/gui/options_background.png"); + public static final TextureLocation statIcons = new TextureLocation("textures/gui/container/stats_icons.png"); + public static final TextureLocation icons = new TextureLocation("textures/gui/icons.png"); protected float zLevel; protected void drawHorizontalLine(int par1, int par2, int par3, int par4) diff --git a/src/main/java/net/minecraft/src/GuiAchievement.java b/src/main/java/net/minecraft/src/GuiAchievement.java index 80ec8c8..3e80ec1 100644 --- a/src/main/java/net/minecraft/src/GuiAchievement.java +++ b/src/main/java/net/minecraft/src/GuiAchievement.java @@ -1,11 +1,12 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public class GuiAchievement extends Gui { - private static final ResourceLocation achievementTextures = new ResourceLocation("textures/gui/achievement/achievement_background.png"); + private static final TextureLocation achievementTextures = new TextureLocation("textures/gui/achievement/achievement_background.png"); /** Holds the instance of the game (Minecraft) */ private Minecraft theGame; @@ -121,7 +122,7 @@ public class GuiAchievement extends Gui int var6 = 0 - (int)(var3 * 36.0D); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glEnable(GL11.GL_TEXTURE_2D); - this.theGame.getTextureManager().bindTexture(achievementTextures); + achievementTextures.bindTexture(); GL11.glDisable(GL11.GL_LIGHTING); this.drawTexturedModalRect(var5, var6, 96, 202, 160, 32); diff --git a/src/main/java/net/minecraft/src/GuiAchievements.java b/src/main/java/net/minecraft/src/GuiAchievements.java index f03aa1e..8545281 100644 --- a/src/main/java/net/minecraft/src/GuiAchievements.java +++ b/src/main/java/net/minecraft/src/GuiAchievements.java @@ -1,6 +1,8 @@ package net.minecraft.src; import java.util.Random; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; @@ -18,7 +20,7 @@ public class GuiAchievements extends GuiScreen /** The right y coordinate of the achievement map */ private static final int guiMapRight = AchievementList.maxDisplayRow * 24 - 77; - private static final ResourceLocation achievementTextures = new ResourceLocation("textures/gui/achievement/achievement_background.png"); + private static final TextureLocation achievementTextures = new TextureLocation("textures/gui/achievement/achievement_background.png"); protected int achievementsPaneWidth = 256; protected int achievementsPaneHeight = 202; @@ -284,7 +286,7 @@ public class GuiAchievements extends GuiScreen var24 = Block.bedrock.getIcon(0, 0); } - this.mc.getTextureManager().bindTexture(TextureMap.locationBlocksTexture); + TextureMap.locationBlocksTexture.bindTexture(); this.drawTexturedModelRectFromIcon(var8 + var22 * 16 - var12, var9 + var20 * 16 - var13, var24, 16, 16); } } @@ -360,7 +362,7 @@ public class GuiAchievements extends GuiScreen GL11.glColor4f(var36, var36, var36, 1.0F); } - this.mc.getTextureManager().bindTexture(achievementTextures); + achievementTextures.bindTexture(); var38 = var8 + var37; var39 = var9 + var25; @@ -402,7 +404,7 @@ public class GuiAchievements extends GuiScreen GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_BLEND); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(achievementTextures); + achievementTextures.bindTexture(); this.drawTexturedModalRect(var6, var7, 0, 0, this.achievementsPaneWidth, this.achievementsPaneHeight); GL11.glPopMatrix(); this.zLevel = 0.0F; diff --git a/src/main/java/net/minecraft/src/GuiBeacon.java b/src/main/java/net/minecraft/src/GuiBeacon.java index 63501cf..83a3b85 100644 --- a/src/main/java/net/minecraft/src/GuiBeacon.java +++ b/src/main/java/net/minecraft/src/GuiBeacon.java @@ -3,11 +3,13 @@ package net.minecraft.src; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.util.Iterator; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class GuiBeacon extends GuiContainer { - private static final ResourceLocation beaconGuiTextures = new ResourceLocation("textures/gui/container/beacon.png"); + private static final TextureLocation beaconGuiTextures = new TextureLocation("textures/gui/container/beacon.png"); private TileEntityBeacon beacon; private GuiBeaconButtonConfirm beaconConfirmButton; private boolean buttonsNotDrawn; @@ -193,7 +195,7 @@ public class GuiBeacon extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(beaconGuiTextures); + beaconGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); @@ -205,7 +207,7 @@ public class GuiBeacon extends GuiContainer itemRenderer.zLevel = 0.0F; } - static ResourceLocation getBeaconGuiTextures() + static TextureLocation getBeaconGuiTextures() { return beaconGuiTextures; } diff --git a/src/main/java/net/minecraft/src/GuiBeaconButton.java b/src/main/java/net/minecraft/src/GuiBeaconButton.java index ff860d7..a229bdf 100644 --- a/src/main/java/net/minecraft/src/GuiBeaconButton.java +++ b/src/main/java/net/minecraft/src/GuiBeaconButton.java @@ -1,16 +1,17 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; class GuiBeaconButton extends GuiButton { /** Texture for this button. */ - private final ResourceLocation buttonTexture; + private final TextureLocation buttonTexture; private final int field_82257_l; private final int field_82258_m; private boolean field_82256_n; - protected GuiBeaconButton(int par1, int par2, int par3, ResourceLocation par4ResourceLocation, int par5, int par6) + protected GuiBeaconButton(int par1, int par2, int par3, TextureLocation par4ResourceLocation, int par5, int par6) { super(par1, par2, par3, 22, 22, ""); this.buttonTexture = par4ResourceLocation; @@ -25,7 +26,7 @@ class GuiBeaconButton extends GuiButton { if (this.drawButton) { - par1Minecraft.getTextureManager().bindTexture(GuiBeacon.getBeaconGuiTextures()); + GuiBeacon.getBeaconGuiTextures().bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.field_82253_i = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; short var4 = 219; @@ -48,7 +49,7 @@ class GuiBeaconButton extends GuiButton if (!GuiBeacon.getBeaconGuiTextures().equals(this.buttonTexture)) { - par1Minecraft.getTextureManager().bindTexture(this.buttonTexture); + this.buttonTexture.bindTexture(); } this.drawTexturedModalRect(this.xPosition + 2, this.yPosition + 2, this.field_82257_l, this.field_82258_m, 18, 18); diff --git a/src/main/java/net/minecraft/src/GuiBrewingStand.java b/src/main/java/net/minecraft/src/GuiBrewingStand.java index a91cd62..79b17f7 100644 --- a/src/main/java/net/minecraft/src/GuiBrewingStand.java +++ b/src/main/java/net/minecraft/src/GuiBrewingStand.java @@ -1,10 +1,11 @@ package net.minecraft.src; import org.lwjgl.opengl.GL11; +import net.lax1dude.eaglercraft.TextureLocation; public class GuiBrewingStand extends GuiContainer { - private static final ResourceLocation brewingStandGuiTextures = new ResourceLocation("textures/gui/container/brewing_stand.png"); + private static final TextureLocation brewingStandGuiTextures = new TextureLocation("textures/gui/container/brewing_stand.png"); private TileEntityBrewingStand brewingStand; public GuiBrewingStand(InventoryPlayer par1InventoryPlayer, TileEntityBrewingStand par2TileEntityBrewingStand) @@ -29,7 +30,7 @@ public class GuiBrewingStand extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(brewingStandGuiTextures); + brewingStandGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); diff --git a/src/main/java/net/minecraft/src/GuiButtonMerchant.java b/src/main/java/net/minecraft/src/GuiButtonMerchant.java index 840acf1..5862ae7 100644 --- a/src/main/java/net/minecraft/src/GuiButtonMerchant.java +++ b/src/main/java/net/minecraft/src/GuiButtonMerchant.java @@ -22,7 +22,7 @@ class GuiButtonMerchant extends GuiButton { if (this.drawButton) { - par1Minecraft.getTextureManager().bindTexture(GuiMerchant.func_110417_h()); + GuiMerchant.func_110417_h().bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); boolean var4 = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; int var5 = 0; diff --git a/src/main/java/net/minecraft/src/GuiButtonNextPage.java b/src/main/java/net/minecraft/src/GuiButtonNextPage.java index 0f93db9..555185b 100644 --- a/src/main/java/net/minecraft/src/GuiButtonNextPage.java +++ b/src/main/java/net/minecraft/src/GuiButtonNextPage.java @@ -24,7 +24,7 @@ class GuiButtonNextPage extends GuiButton { boolean var4 = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - par1Minecraft.getTextureManager().bindTexture(GuiScreenBook.func_110404_g()); + GuiScreenBook.func_110404_g().bindTexture(); int var5 = 0; int var6 = 192; diff --git a/src/main/java/net/minecraft/src/GuiChest.java b/src/main/java/net/minecraft/src/GuiChest.java index 49f365e..1ac7a6e 100644 --- a/src/main/java/net/minecraft/src/GuiChest.java +++ b/src/main/java/net/minecraft/src/GuiChest.java @@ -1,10 +1,11 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class GuiChest extends GuiContainer { - private static final ResourceLocation field_110421_t = new ResourceLocation("textures/gui/container/generic_54.png"); + private static final TextureLocation field_110421_t = new TextureLocation("textures/gui/container/generic_54.png"); private IInventory upperChestInventory; private IInventory lowerChestInventory; @@ -40,7 +41,7 @@ public class GuiChest extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(field_110421_t); + field_110421_t.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.inventoryRows * 18 + 17); diff --git a/src/main/java/net/minecraft/src/GuiContainer.java b/src/main/java/net/minecraft/src/GuiContainer.java index 402ef41..ec726f7 100644 --- a/src/main/java/net/minecraft/src/GuiContainer.java +++ b/src/main/java/net/minecraft/src/GuiContainer.java @@ -5,13 +5,15 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public abstract class GuiContainer extends GuiScreen { - protected static final ResourceLocation field_110408_a = new ResourceLocation("textures/gui/container/inventory.png"); + protected static final TextureLocation field_110408_a = new TextureLocation("textures/gui/container/inventory.png"); /** Stacks renderer. Icons, stack size, health, etc... */ protected static RenderItem itemRenderer = new RenderItem(); @@ -372,7 +374,7 @@ public abstract class GuiContainer extends GuiScreen if (var9 != null) { GL11.glDisable(GL11.GL_LIGHTING); - this.mc.getTextureManager().bindTexture(TextureMap.locationItemsTexture); + TextureMap.locationItemsTexture.bindTexture(); this.drawTexturedModelRectFromIcon(var2, var3, var9, 16, 16); GL11.glEnable(GL11.GL_LIGHTING); var6 = true; diff --git a/src/main/java/net/minecraft/src/GuiContainerCreative.java b/src/main/java/net/minecraft/src/GuiContainerCreative.java index 6220232..18c8849 100644 --- a/src/main/java/net/minecraft/src/GuiContainerCreative.java +++ b/src/main/java/net/minecraft/src/GuiContainerCreative.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; @@ -11,7 +13,7 @@ import org.lwjgl.opengl.GL12; public class GuiContainerCreative extends InventoryEffectRenderer { - private static final ResourceLocation field_110424_t = new ResourceLocation("textures/gui/container/creative_inventory/tabs.png"); + private static final TextureLocation field_110424_t = new TextureLocation("textures/gui/container/creative_inventory/tabs.png"); private static InventoryBasic inventory = new InventoryBasic("tmp", true, 45); /** Currently selected creative inventory tab index. */ @@ -720,7 +722,7 @@ public class GuiContainerCreative extends InventoryEffectRenderer for (var7 = 0; var7 < var6; ++var7) { CreativeTabs var8 = var5[var7]; - this.mc.getTextureManager().bindTexture(field_110424_t); + field_110424_t.bindTexture(); if (var8.getTabIndex() != selectedTabIndex) { @@ -728,14 +730,14 @@ public class GuiContainerCreative extends InventoryEffectRenderer } } - this.mc.getTextureManager().bindTexture(new ResourceLocation("textures/gui/container/creative_inventory/tab_" + var4.getBackgroundImageName())); + new TextureLocation("textures/gui/container/creative_inventory/tab_" + var4.getBackgroundImageName()).bindTexture(); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize); this.searchField.drawTextBox(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); int var9 = this.guiLeft + 175; var6 = this.guiTop + 18; var7 = var6 + 112; - this.mc.getTextureManager().bindTexture(field_110424_t); + field_110424_t.bindTexture(); if (var4.shouldHidePlayerInventory()) { diff --git a/src/main/java/net/minecraft/src/GuiCrafting.java b/src/main/java/net/minecraft/src/GuiCrafting.java index 5538469..4165de9 100644 --- a/src/main/java/net/minecraft/src/GuiCrafting.java +++ b/src/main/java/net/minecraft/src/GuiCrafting.java @@ -1,10 +1,11 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class GuiCrafting extends GuiContainer { - private static final ResourceLocation craftingTableGuiTextures = new ResourceLocation("textures/gui/container/crafting_table.png"); + private static final TextureLocation craftingTableGuiTextures = new TextureLocation("textures/gui/container/crafting_table.png"); public GuiCrafting(InventoryPlayer par1InventoryPlayer, World par2World, int par3, int par4, int par5) { @@ -26,7 +27,7 @@ public class GuiCrafting extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(craftingTableGuiTextures); + craftingTableGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); diff --git a/src/main/java/net/minecraft/src/GuiCreateFlatWorldListSlot.java b/src/main/java/net/minecraft/src/GuiCreateFlatWorldListSlot.java index 7364699..2574dfb 100644 --- a/src/main/java/net/minecraft/src/GuiCreateFlatWorldListSlot.java +++ b/src/main/java/net/minecraft/src/GuiCreateFlatWorldListSlot.java @@ -40,7 +40,7 @@ class GuiCreateFlatWorldListSlot extends GuiSlot private void func_82450_b(int par1, int par2, int par3, int par4) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.createFlatWorldGui.mc.getTextureManager().bindTexture(Gui.statIcons); + Gui.statIcons.bindTexture(); float var5 = 0.0078125F; float var6 = 0.0078125F; boolean var7 = true; diff --git a/src/main/java/net/minecraft/src/GuiDispenser.java b/src/main/java/net/minecraft/src/GuiDispenser.java index efc99c4..e76788e 100644 --- a/src/main/java/net/minecraft/src/GuiDispenser.java +++ b/src/main/java/net/minecraft/src/GuiDispenser.java @@ -1,10 +1,11 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class GuiDispenser extends GuiContainer { - private static final ResourceLocation dispenserGuiTextures = new ResourceLocation("textures/gui/container/dispenser.png"); + private static final TextureLocation dispenserGuiTextures = new TextureLocation("textures/gui/container/dispenser.png"); public TileEntityDispenser theDispenser; public GuiDispenser(InventoryPlayer par1InventoryPlayer, TileEntityDispenser par2TileEntityDispenser) @@ -29,7 +30,7 @@ public class GuiDispenser extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(dispenserGuiTextures); + dispenserGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); diff --git a/src/main/java/net/minecraft/src/GuiEnchantment.java b/src/main/java/net/minecraft/src/GuiEnchantment.java index bab9c26..6845e5a 100644 --- a/src/main/java/net/minecraft/src/GuiEnchantment.java +++ b/src/main/java/net/minecraft/src/GuiEnchantment.java @@ -1,14 +1,16 @@ package net.minecraft.src; import java.util.Random; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import org.lwjgl.util.glu.Project; public class GuiEnchantment extends GuiContainer { - private static final ResourceLocation enchantingTableGuiTextures = new ResourceLocation("textures/gui/container/enchanting_table.png"); - private static final ResourceLocation enchantingTableBookTextures = new ResourceLocation("textures/entity/enchanting_table_book.png"); + private static final TextureLocation enchantingTableGuiTextures = new TextureLocation("textures/gui/container/enchanting_table.png"); + private static final TextureLocation enchantingTableBookTextures = new TextureLocation("textures/entity/enchanting_table_book.png"); /** The book model used on the GUI. */ private static final ModelBook bookModel = new ModelBook(); @@ -78,7 +80,7 @@ public class GuiEnchantment extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(enchantingTableGuiTextures); + enchantingTableGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); @@ -99,7 +101,7 @@ public class GuiEnchantment extends GuiContainer float var8 = 5.0F; GL11.glScalef(var8, var8, var8); GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - this.mc.getTextureManager().bindTexture(enchantingTableBookTextures); + enchantingTableBookTextures.bindTexture(); GL11.glRotatef(20.0F, 1.0F, 0.0F, 0.0F); float var9 = this.field_74208_u + (this.field_74209_t - this.field_74208_u) * par1; GL11.glTranslatef((1.0F - var9) * 0.2F, (1.0F - var9) * 0.1F, (1.0F - var9) * 0.25F); @@ -147,7 +149,7 @@ public class GuiEnchantment extends GuiContainer { String var13 = EnchantmentNameParts.instance.generateRandomEnchantName(); this.zLevel = 0.0F; - this.mc.getTextureManager().bindTexture(enchantingTableGuiTextures); + enchantingTableGuiTextures.bindTexture(); int var14 = this.containerEnchantment.enchantLevels[var12]; GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/java/net/minecraft/src/GuiFlatPresetsListSlot.java b/src/main/java/net/minecraft/src/GuiFlatPresetsListSlot.java index d15f3aa..0f8b483 100644 --- a/src/main/java/net/minecraft/src/GuiFlatPresetsListSlot.java +++ b/src/main/java/net/minecraft/src/GuiFlatPresetsListSlot.java @@ -35,7 +35,7 @@ class GuiFlatPresetsListSlot extends GuiSlot private void func_82455_b(int par1, int par2, int par3, int par4) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.flatPresetsGui.mc.getTextureManager().bindTexture(Gui.statIcons); + Gui.statIcons.bindTexture(); float var5 = 0.0078125F; float var6 = 0.0078125F; boolean var7 = true; diff --git a/src/main/java/net/minecraft/src/GuiFurnace.java b/src/main/java/net/minecraft/src/GuiFurnace.java index c6817ab..457a4a5 100644 --- a/src/main/java/net/minecraft/src/GuiFurnace.java +++ b/src/main/java/net/minecraft/src/GuiFurnace.java @@ -1,10 +1,11 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class GuiFurnace extends GuiContainer { - private static final ResourceLocation furnaceGuiTextures = new ResourceLocation("textures/gui/container/furnace.png"); + private static final TextureLocation furnaceGuiTextures = new TextureLocation("textures/gui/container/furnace.png"); private TileEntityFurnace furnaceInventory; public GuiFurnace(InventoryPlayer par1InventoryPlayer, TileEntityFurnace par2TileEntityFurnace) @@ -29,7 +30,7 @@ public class GuiFurnace extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(furnaceGuiTextures); + furnaceGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); diff --git a/src/main/java/net/minecraft/src/GuiHopper.java b/src/main/java/net/minecraft/src/GuiHopper.java index 173900f..5f82fcf 100644 --- a/src/main/java/net/minecraft/src/GuiHopper.java +++ b/src/main/java/net/minecraft/src/GuiHopper.java @@ -1,10 +1,11 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class GuiHopper extends GuiContainer { - private static final ResourceLocation hopperGuiTextures = new ResourceLocation("textures/gui/container/hopper.png"); + private static final TextureLocation hopperGuiTextures = new TextureLocation("textures/gui/container/hopper.png"); private IInventory field_94081_r; private IInventory field_94080_s; @@ -32,7 +33,7 @@ public class GuiHopper extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(hopperGuiTextures); + hopperGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); diff --git a/src/main/java/net/minecraft/src/GuiIngame.java b/src/main/java/net/minecraft/src/GuiIngame.java index a1ead66..fd3dac6 100644 --- a/src/main/java/net/minecraft/src/GuiIngame.java +++ b/src/main/java/net/minecraft/src/GuiIngame.java @@ -5,14 +5,16 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Random; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public class GuiIngame extends Gui { - private static final ResourceLocation vignetteTexPath = new ResourceLocation("textures/misc/vignette.png"); - private static final ResourceLocation widgetsTexPath = new ResourceLocation("textures/gui/widgets.png"); - private static final ResourceLocation pumpkinBlurTexPath = new ResourceLocation("textures/misc/pumpkinblur.png"); + private static final TextureLocation vignetteTexPath = new TextureLocation("textures/misc/vignette.png"); + private static final TextureLocation widgetsTexPath = new TextureLocation("textures/gui/widgets.png"); + private static final TextureLocation pumpkinBlurTexPath = new TextureLocation("textures/misc/pumpkinblur.png"); private static final RenderItem itemRenderer = new RenderItem(); private final Random rand = new Random(); private final Minecraft mc; @@ -88,12 +90,12 @@ public class GuiIngame extends Gui if (!this.mc.playerController.enableEverythingIsScrewedUpMode()) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(widgetsTexPath); + widgetsTexPath.bindTexture(); InventoryPlayer var31 = this.mc.thePlayer.inventory; this.zLevel = -90.0F; this.drawTexturedModalRect(var6 / 2 - 91, var7 - 22, 0, 0, 182, 22); this.drawTexturedModalRect(var6 / 2 - 91 - 1 + var31.currentItem * 20, var7 - 22 - 1, 0, 22, 24, 22); - this.mc.getTextureManager().bindTexture(icons); + icons.bindTexture(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_ONE_MINUS_DST_COLOR, GL11.GL_ONE_MINUS_SRC_COLOR); this.drawTexturedModalRect(var6 / 2 - 7, var7 / 2 - 7, 0, 0, 16, 16); @@ -159,7 +161,7 @@ public class GuiIngame extends Gui if (this.mc.thePlayer.isRidingHorse()) { this.mc.mcProfiler.startSection("jumpBar"); - this.mc.getTextureManager().bindTexture(Gui.icons); + Gui.icons.bindTexture(); var34 = this.mc.thePlayer.getHorseJumpPower(); var35 = 182; var14 = (int)(var34 * (float)(var35 + 1)); @@ -176,7 +178,7 @@ public class GuiIngame extends Gui else if (this.mc.playerController.func_78763_f()) { this.mc.mcProfiler.startSection("expBar"); - this.mc.getTextureManager().bindTexture(Gui.icons); + Gui.icons.bindTexture(); var12 = this.mc.thePlayer.xpBarCap(); if (var12 > 0) @@ -414,7 +416,7 @@ public class GuiIngame extends Gui } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(icons); + icons.bindTexture(); byte var51 = 0; boolean var52 = false; byte var53; @@ -807,7 +809,7 @@ public class GuiIngame extends Gui String var8 = BossStatus.bossName; var1.drawStringWithShadow(var8, var3 / 2 - var1.getStringWidth(var8) / 2, var7 - 10, 16777215); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(icons); + icons.bindTexture(); } } @@ -818,7 +820,7 @@ public class GuiIngame extends Gui GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_ALPHA_TEST); - this.mc.getTextureManager().bindTexture(pumpkinBlurTexPath); + pumpkinBlurTexPath.bindTexture(); Tessellator var3 = Tessellator.instance; var3.startDrawingQuads(); var3.addVertexWithUV(0.0D, (double)par2, -90.0D, 0.0D, 1.0D); @@ -854,7 +856,7 @@ public class GuiIngame extends Gui GL11.glDepthMask(false); GL11.glBlendFunc(GL11.GL_ZERO, GL11.GL_ONE_MINUS_SRC_COLOR); GL11.glColor4f(this.prevVignetteBrightness, this.prevVignetteBrightness, this.prevVignetteBrightness, 1.0F); - this.mc.getTextureManager().bindTexture(vignetteTexPath); + vignetteTexPath.bindTexture(); Tessellator var4 = Tessellator.instance; var4.startDrawingQuads(); var4.addVertexWithUV(0.0D, (double)par3, -90.0D, 0.0D, 1.0D); @@ -883,7 +885,7 @@ public class GuiIngame extends Gui GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, par1); Icon var4 = Block.portal.getBlockTextureFromSide(1); - this.mc.getTextureManager().bindTexture(TextureMap.locationBlocksTexture); + TextureMap.locationBlocksTexture.bindTexture(); float var5 = var4.getMinU(); float var6 = var4.getMinV(); float var7 = var4.getMaxU(); diff --git a/src/main/java/net/minecraft/src/GuiInventory.java b/src/main/java/net/minecraft/src/GuiInventory.java index fbf467b..791c188 100644 --- a/src/main/java/net/minecraft/src/GuiInventory.java +++ b/src/main/java/net/minecraft/src/GuiInventory.java @@ -74,7 +74,7 @@ public class GuiInventory extends InventoryEffectRenderer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(field_110408_a); + field_110408_a.bindTexture(); int var4 = this.guiLeft; int var5 = this.guiTop; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); diff --git a/src/main/java/net/minecraft/src/GuiMainMenu.java b/src/main/java/net/minecraft/src/GuiMainMenu.java index f9237ac..b88a302 100644 --- a/src/main/java/net/minecraft/src/GuiMainMenu.java +++ b/src/main/java/net/minecraft/src/GuiMainMenu.java @@ -1,611 +1,707 @@ package net.minecraft.src; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URI; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; -import java.util.Random; -import org.apache.commons.io.Charsets; -import org.lwjgl.opengl.GL11; -import org.lwjgl.util.glu.Project; +import java.util.List; + +import net.lax1dude.eaglercraft.ConfigConstants; +import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.EaglercraftRandom; +import net.lax1dude.eaglercraft.GuiScreenEditProfile; +import net.lax1dude.eaglercraft.GuiScreenSingleplayerLoading; +import net.lax1dude.eaglercraft.IntegratedServer; +import net.lax1dude.eaglercraft.LocalStorageManager; +import net.lax1dude.eaglercraft.TextureLocation; +import net.lax1dude.eaglercraft.EaglerMisc; +import net.lax1dude.eaglercraft.adapter.Tessellator; +import net.minecraft.src.Minecraft; + +public class GuiMainMenu extends GuiScreen { -public class GuiMainMenu extends GuiScreen -{ /** The RNG used by the Main Menu Screen. */ - private static final Random rand = new Random(); - - /** Counts the number of screen updates. */ - private float updateCounter; + private static final EaglercraftRandom rand = new EaglercraftRandom(); /** The splash message. */ - private String splashText = "missingno"; + public String splashText = null; private GuiButton buttonResetDemo; - /** Timer used to rotate the panorama, increases every tick. */ - private int panoramaTimer; + private static boolean showingEndian = true; + private static final int showRandomItem; + + static { + if(ConfigConstants.mainMenuItemLink != null) { + EaglercraftRandom rand = new EaglercraftRandom(); + int itm = 0; + do { + itm = rand.nextInt(256) + 256; + }while(Item.itemsList[itm] == null); + showRandomItem = itm; + }else { + showRandomItem = -1; + } + } + + private long start; /** - * Texture allocated for the current viewport of the main menu's panorama background. + * Texture allocated for the current viewport of the main menu's panorama + * background. */ - private DynamicTexture viewportTexture; + private static int viewportTexture = -1; private boolean field_96141_q = true; - private static boolean field_96140_r; - private static boolean field_96139_s; + private static boolean field_96140_r = false; + private static boolean field_96139_s = false; private final Object field_104025_t = new Object(); private String field_92025_p; private String field_104024_v; - private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt"); - private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("textures/gui/title/minecraft.png"); /** An array of all the paths to the panorama pictures. */ - private static final ResourceLocation[] titlePanoramaPaths = new ResourceLocation[] {new ResourceLocation("textures/gui/title/background/panorama_0.png"), new ResourceLocation("textures/gui/title/background/panorama_1.png"), new ResourceLocation("textures/gui/title/background/panorama_2.png"), new ResourceLocation("textures/gui/title/background/panorama_3.png"), new ResourceLocation("textures/gui/title/background/panorama_4.png"), new ResourceLocation("textures/gui/title/background/panorama_5.png")}; - public static final String field_96138_a = "Please click " + EnumChatFormatting.UNDERLINE + "here" + EnumChatFormatting.RESET + " for more information."; + private static final TextureLocation[] titlePanoramaPaths = new TextureLocation[] { new TextureLocation("/title/bg/panorama0.png"), new TextureLocation("/title/bg/panorama1.png"), new TextureLocation("/title/bg/panorama2.png"), new TextureLocation("/title/bg/panorama3.png"), new TextureLocation("/title/bg/panorama4.png"), new TextureLocation("/title/bg/panorama5.png") }; + public static final String field_96138_a = ""; private int field_92024_r; private int field_92023_s; private int field_92022_t; private int field_92021_u; private int field_92020_v; private int field_92019_w; - private ResourceLocation field_110351_G; - private GuiButton minecraftRealmsButton; - public GuiMainMenu() - { - BufferedReader var1 = null; - String var3; + private int scrollPosition = 0; + private static final int visibleLines = 21; - try - { - ArrayList var2 = new ArrayList(); - var1 = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8)); + private int dragstart = -1; + private int dragstartI = -1; - while ((var3 = var1.readLine()) != null) - { - var3 = var3.trim(); + private ArrayList ackLines; - if (!var3.isEmpty()) - { - var2.add(var3); - } - } + public boolean showAck = false; - do - { - this.splashText = (String)var2.get(rand.nextInt(var2.size())); - } - while (this.splashText.hashCode() == 125780783); - } - catch (IOException var12) - { - ; - } - finally - { - if (var1 != null) - { - try - { - var1.close(); - } - catch (IOException var11) - { - ; - } + public GuiMainMenu() { + List lst = ConfigConstants.splashTexts; + if (lst != null) { + if(lst.size() > 0) { + EaglercraftRandom rand = new EaglercraftRandom(); + this.splashText = lst.get(rand.nextInt(lst.size())); + }else { + this.splashText = "missingno"; } } + this.field_92025_p = "Eaglercraft 1.5.2 Service Pack #2"; + this.start = EaglerAdapter.steadyTimeMillis(); + this.start += this.start % 10000l; + this.ackLines = new ArrayList(); - this.updateCounter = rand.nextFloat(); - this.field_92025_p = ""; - String var14 = System.getProperty("os_architecture"); - var3 = System.getProperty("java_version"); - - if ("ppc".equalsIgnoreCase(var14)) - { - this.field_92025_p = "" + EnumChatFormatting.BOLD + "Notice!" + EnumChatFormatting.RESET + " PowerPC compatibility will be dropped in Minecraft 1.6"; - this.field_104024_v = "http://tinyurl.com/javappc"; - } - else if (var3 != null && var3.startsWith("1.5")) - { - this.field_92025_p = "" + EnumChatFormatting.BOLD + "Notice!" + EnumChatFormatting.RESET + " Java 1.5 compatibility will be dropped in Minecraft 1.6"; - this.field_104024_v = "http://tinyurl.com/javappc"; + if(!LocalStorageManager.gameSettingsStorage.getBoolean("seenAcknowledgementsSP2")) { + this.showAck = true; } } /** - * Called from the main game loop to update the screen. + * Returns true if this GUI should pause the game when it is displayed in + * single-player */ - public void updateScreen() - { - ++this.panoramaTimer; - } - - /** - * Returns true if this GUI should pause the game when it is displayed in single-player - */ - public boolean doesGuiPauseGame() - { + public boolean doesGuiPauseGame() { return false; } + public void handleMouseInput() { + super.handleMouseInput(); + if(showAck) { + int var1 = EaglerAdapter.mouseGetEventDWheel(); + if(var1 < 0) { + scrollPosition += 3; + } + if(var1 > 0) { + scrollPosition -= 3; + } + } + } + /** - * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e). + * Fired when a key is typed. This is the equivalent of + * KeyListener.keyTyped(KeyEvent e). */ - protected void keyTyped(char par1, int par2) {} + protected void keyTyped(char par1, int par2) { + if(par2 == 1) { + hideAck(); + } + } + + private void hideAck() { + if(!LocalStorageManager.gameSettingsStorage.getBoolean("seenAcknowledgementsSP2")) { + LocalStorageManager.gameSettingsStorage.setBoolean("seenAcknowledgementsSP2", true); + LocalStorageManager.saveStorageG(); + } + showAck = false; + } /** * Adds the buttons (and other controls) to the screen in question. */ - public void initGui() - { - this.viewportTexture = new DynamicTexture(256, 256); - this.field_110351_G = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture); + public void initGui() { + if(viewportTexture == -1) viewportTexture = this.mc.renderEngine.makeViewportTexture(256, 256); Calendar var1 = Calendar.getInstance(); var1.setTime(new Date()); - if (var1.get(2) + 1 == 11 && var1.get(5) == 9) - { - this.splashText = "Happy birthday, ez!"; - } - else if (var1.get(2) + 1 == 6 && var1.get(5) == 1) - { - this.splashText = "Happy birthday, Notch!"; - } - else if (var1.get(2) + 1 == 12 && var1.get(5) == 24) - { - this.splashText = "Merry X-mas!"; - } - else if (var1.get(2) + 1 == 1 && var1.get(5) == 1) - { - this.splashText = "Happy new year!"; - } - else if (var1.get(2) + 1 == 10 && var1.get(5) == 31) - { - this.splashText = "OOoooOOOoooo! Spooky!"; - } + StringTranslate var2 = StringTranslate.getInstance(); + int var4 = this.height / 4 + 48; - boolean var2 = true; - int var3 = this.height / 4 + 48; - - if (this.mc.isDemo()) - { - this.addDemoButtons(var3, 24); - } - else - { - this.addSingleplayerMultiplayerButtons(var3, 24); + if(EaglerAdapter.isIntegratedServerAvailable()) { + this.buttonList.add(new GuiButton(1, this.width / 2 - 100, var4, var2.translateKey("menu.singleplayer"))); + this.buttonList.add(new GuiButton(2, this.width / 2 - 100, var4 + 24 * 1, var2.translateKey("menu.multiplayer"))); + this.buttonList.add(new GuiButton(3, this.width / 2 - 100, var4 + 24 * 2, var2.translateKey("menu.forkme"))); + }else { + this.buttonList.add(new GuiButton(2, this.width / 2 - 100, var4, var2.translateKey("menu.multiplayer"))); + this.buttonList.add(new GuiButton(3, this.width / 2 - 100, var4 + 24, var2.translateKey("menu.forkme"))); } + ((GuiButton)this.buttonList.get(this.buttonList.size() - 1)).enabled = false; - this.func_130020_g(); - this.buttonList.add(new GuiButton(0, this.width / 2 - 100, var3 + 72 + 12, 98, 20, I18n.getString("menu.options"))); - this.buttonList.add(new GuiButton(4, this.width / 2 + 2, var3 + 72 + 12, 98, 20, I18n.getString("menu.quit"))); - this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, var3 + 72 + 12)); - Object var4 = this.field_104025_t; + this.buttonList.add(new GuiButton(0, this.width / 2 - 100, var4 + 72 + 12, 98, 20, var2.translateKey("menu.options"))); + this.buttonList.add(new GuiButton(4, this.width / 2 + 2, var4 + 72 + 12, 98, 20, var2.translateKey("menu.editprofile"))); - synchronized (this.field_104025_t) - { + this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, var4 + 72 + 12)); + Object var5 = this.field_104025_t; + + synchronized (this.field_104025_t) { this.field_92023_s = this.fontRenderer.getStringWidth(this.field_92025_p); this.field_92024_r = this.fontRenderer.getStringWidth(field_96138_a); - int var5 = Math.max(this.field_92023_s, this.field_92024_r); - this.field_92022_t = (this.width - var5) / 2; - this.field_92021_u = ((GuiButton)this.buttonList.get(0)).yPosition - 24; - this.field_92020_v = this.field_92022_t + var5; - this.field_92019_w = this.field_92021_u + 24; + int var6 = Math.max(this.field_92023_s, this.field_92024_r); + this.field_92022_t = (this.width - var6) / 2; + this.field_92021_u = 82; + this.field_92020_v = this.field_92022_t + var6; + this.field_92019_w = this.field_92021_u + 12; } + + ConfigConstants.panoramaBlur = mc.texturePackList.getSelectedTexturePack().getResourceAsBytes("/title/no-pano-blur.flag") == null; + + if(this.ackLines.isEmpty()) { + int width = 315; + String file = EaglerMisc.bytesToString(Minecraft.getMinecraft().texturePackList.getSelectedTexturePack().getResourceAsBytes("/credits.txt")); + if(file == null) { + for(int i = 0; i < 30; ++i) { + this.ackLines.add(" -- file not found -- "); + } + }else { + String[] lines = file.split("\n"); + for(String s : lines) { + String s2 = s.trim(); + if(s2.isEmpty()) { + this.ackLines.add(""); + }else { + String[] words = s2.split(" "); + String currentLine = " "; + for(String s3 : words) { + String cCurrentLine = currentLine + s3 + " "; + if(this.mc.fontRenderer.getStringWidth(cCurrentLine) < width) { + currentLine = cCurrentLine; + }else { + this.ackLines.add(currentLine); + currentLine = s3 + " "; + } + } + this.ackLines.add(currentLine); + } + } + } + + } + } - private void func_130020_g() - { - if (this.field_96141_q) - { - if (!field_96140_r) - { - field_96140_r = true; - (new RunnableTitleScreen(this)).start(); + protected void mouseClicked(int par1, int par2, int par3) { + if(!showAck) { + super.mouseClicked(par1, par2, par3); + if (par3 == 0) { + int w = this.fontRenderer.getStringWidth("eaglercraft readme.txt") * 3 / 4; + if(par1 >= (this.width - w - 4) && par1 <= this.width && par2 >= 0 && par2 <= 9) { + showAck = true; + return; + } + w = this.fontRenderer.getStringWidth("debug console") * 3 / 4; + if(par1 >= 0 && par1 <= (w + 4) && par2 >= 0 && par2 <= 9) { + /* + EaglerAdapter.openConsole(); + */ + } + if(ConfigConstants.mainMenuItemLink != null) { + //drawRect((this.width - w - 4), 0, this.width, 9, 0x55200000); + + int posX = this.width / 2 - 170 - this.width / 10; + int posY = this.height / 4 + 70; + int ww = 66; + int hh = 46; + int ln0w = ConfigConstants.mainMenuItemLine0 == null ? 0 : fontRenderer.getStringWidth(ConfigConstants.mainMenuItemLine0); + ww = ww < ln0w ? ln0w : ww; + hh = hh < ln0w ? hh + 12 : hh; + int ln1w = ConfigConstants.mainMenuItemLine1 == null ? 0 : fontRenderer.getStringWidth(ConfigConstants.mainMenuItemLine1); + ww = ww < ln1w ? ln1w : ww; + hh = hh < ln1w ? hh + 12 : hh; + int ln2w = ConfigConstants.mainMenuItemLine2 == null ? 0 : fontRenderer.getStringWidth(ConfigConstants.mainMenuItemLine2); + ww = ww < ln2w ? ln2w : ww; + hh = hh < ln2w ? hh + 12 : hh; + + ww += 20; + hh += 20; + + if(par1 > posX && par1 < posX + (ww / 4 * 3) && par2 > posY && par2 < posY + (hh / 4 * 3)) { + EaglerAdapter.openLink(ConfigConstants.mainMenuItemLink); + return; + } + } } - else if (field_96139_s) - { - this.func_130022_h(); + }else { + if(par3 == 0) { + int x = (this.width - 345) / 2; + int y = (this.height - 230) / 2; + if(par1 >= (x + 323) && par1 <= (x + 323 + 13) && par2 >= (y + 7) && par2 <= (y + 7 + 13)) { + this.mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); + hideAck(); + } + int trackHeight = 193; + int offset = trackHeight * scrollPosition / this.ackLines.size(); + if(par1 >= (x + 326) && par1 <= (x + 334) && par2 >= (y + 27 + offset) && par2 <= (y + 27 + offset + (visibleLines * trackHeight / this.ackLines.size()) + 1)) { + dragstart = par2; + dragstartI = scrollPosition; + } } } } - private void func_130022_h() - { - this.minecraftRealmsButton.drawButton = true; - } - /** - * Adds Singleplayer and Multiplayer buttons on Main Menu for players who have bought the game. + * Fired when a control is clicked. This is the equivalent of + * ActionListener.actionPerformed(ActionEvent e). */ - private void addSingleplayerMultiplayerButtons(int par1, int par2) - { - this.buttonList.add(new GuiButton(1, this.width / 2 - 100, par1, I18n.getString("menu.singleplayer"))); - this.buttonList.add(new GuiButton(2, this.width / 2 - 100, par1 + par2 * 1, I18n.getString("menu.multiplayer"))); - this.buttonList.add(this.minecraftRealmsButton = new GuiButton(14, this.width / 2 - 100, par1 + par2 * 2, I18n.getString("menu.online"))); - this.minecraftRealmsButton.drawButton = false; - } - - /** - * Adds Demo buttons on Main Menu for players who are playing Demo. - */ - private void addDemoButtons(int par1, int par2) - { - this.buttonList.add(new GuiButton(11, this.width / 2 - 100, par1, I18n.getString("menu.playdemo"))); - this.buttonList.add(this.buttonResetDemo = new GuiButton(12, this.width / 2 - 100, par1 + par2 * 1, I18n.getString("menu.resetdemo"))); - ISaveFormat var3 = this.mc.getSaveLoader(); - WorldInfo var4 = var3.getWorldInfo("Demo_World"); - - if (var4 == null) - { - this.buttonResetDemo.enabled = false; - } - } - - /** - * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). - */ - protected void actionPerformed(GuiButton par1GuiButton) - { - if (par1GuiButton.id == 0) - { + protected void actionPerformed(GuiButton par1GuiButton) { + if (par1GuiButton.id == 0) { + showingEndian = false; this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings)); } - if (par1GuiButton.id == 5) - { - this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager())); + if (par1GuiButton.id == 1) { + if(EaglerAdapter.isIntegratedServerAvailable()) { + if(!IntegratedServer.isAlive()) { + IntegratedServer.begin(); + this.mc.displayGuiScreen(new GuiScreenSingleplayerLoading(new GuiSelectWorld(this), "starting up integrated server", () -> IntegratedServer.isReady())); + }else { + this.mc.displayGuiScreen(new GuiSelectWorld(this)); + } + } } - if (par1GuiButton.id == 1) - { - this.mc.displayGuiScreen(new GuiSelectWorld(this)); + if (par1GuiButton.id == 5) { + showingEndian = false; + this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, null)); } - if (par1GuiButton.id == 2) - { + if (par1GuiButton.id == 2) { + showingEndian = false; this.mc.displayGuiScreen(new GuiMultiplayer(this)); } - if (par1GuiButton.id == 14 && this.minecraftRealmsButton.drawButton) - { - this.func_140005_i(); + if (par1GuiButton.id == 3) { + //this.mc.displayGuiScreen(new GuiScreenVoiceChannel(this)); + EaglerAdapter.openLink(ConfigConstants.forkMe); } - if (par1GuiButton.id == 4) - { - this.mc.shutdown(); - } - - if (par1GuiButton.id == 11) - { - this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings); - } - - if (par1GuiButton.id == 12) - { - ISaveFormat var2 = this.mc.getSaveLoader(); - WorldInfo var3 = var2.getWorldInfo("Demo_World"); - - if (var3 != null) - { - GuiYesNo var4 = GuiSelectWorld.getDeleteWorldScreen(this, var3.getWorldName(), 12); - this.mc.displayGuiScreen(var4); - } - } - } - - private void func_140005_i() - { - McoClient var1 = new McoClient(this.mc.getSession()); - - try - { - if (var1.func_140054_c().booleanValue()) - { - this.mc.displayGuiScreen(new GuiScreenClientOutdated(this)); - } - else - { - this.mc.displayGuiScreen(new GuiScreenOnlineServers(this)); - } - } - catch (ExceptionMcoService var3) - { - this.mc.getLogAgent().logSevere(var3.toString()); - } - catch (IOException var4) - { - this.mc.getLogAgent().logSevere(var4.getLocalizedMessage()); - } - } - - public void confirmClicked(boolean par1, int par2) - { - if (par1 && par2 == 12) - { - ISaveFormat var6 = this.mc.getSaveLoader(); - var6.flushCache(); - var6.deleteWorldDirectory("Demo_World"); - this.mc.displayGuiScreen(this); - } - else if (par2 == 13) - { - if (par1) - { - try - { - Class var3 = Class.forName("java.awt.Desktop"); - Object var4 = var3.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]); - var3.getMethod("browse", new Class[] {URI.class}).invoke(var4, new Object[] {new URI(this.field_104024_v)}); - } - catch (Throwable var5) - { - var5.printStackTrace(); - } - } - - this.mc.displayGuiScreen(this); + if (par1GuiButton.id == 4) { + showingEndian = false; + this.mc.displayGuiScreen(new GuiScreenEditProfile(this)); } } /** * Draws the main menu panorama */ - private void drawPanorama(int par1, int par2, float par3) - { + private void drawPanorama(int par1, int par2, float par3) { Tessellator var4 = Tessellator.instance; - GL11.glMatrixMode(GL11.GL_PROJECTION); - GL11.glPushMatrix(); - GL11.glLoadIdentity(); - Project.gluPerspective(120.0F, 1.0F, 0.05F, 10.0F); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glPushMatrix(); - GL11.glLoadIdentity(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); - GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - byte var5 = 8; + EaglerAdapter.glMatrixMode(EaglerAdapter.GL_PROJECTION); + EaglerAdapter.glPushMatrix(); + EaglerAdapter.glLoadIdentity(); + if (ConfigConstants.panoramaBlur) { + EaglerAdapter.gluPerspective(120.0F, 1.0F, 0.05F, 10.0F); + } else { + EaglerAdapter.gluPerspective(120.0F, (float)this.mc.displayWidth / (float)this.mc.displayHeight, 0.05F, 10.0F); + } + EaglerAdapter.glMatrixMode(EaglerAdapter.GL_MODELVIEW); + EaglerAdapter.glPushMatrix(); + EaglerAdapter.glLoadIdentity(); + EaglerAdapter.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + EaglerAdapter.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); + EaglerAdapter.glEnable(EaglerAdapter.GL_BLEND); + EaglerAdapter.glDisable(EaglerAdapter.GL_ALPHA_TEST); + EaglerAdapter.glDisable(EaglerAdapter.GL_CULL_FACE); + EaglerAdapter.glDepthMask(false); + EaglerAdapter.glBlendFunc(EaglerAdapter.GL_SRC_ALPHA, EaglerAdapter.GL_ONE_MINUS_SRC_ALPHA); + byte var5 = ConfigConstants.panoramaBlur ? (byte)8 : (byte)1; - for (int var6 = 0; var6 < var5 * var5; ++var6) - { - GL11.glPushMatrix(); - float var7 = ((float)(var6 % var5) / (float)var5 - 0.5F) / 64.0F; - float var8 = ((float)(var6 / var5) / (float)var5 - 0.5F) / 64.0F; - float var9 = 0.0F; - GL11.glTranslatef(var7, var8, var9); - GL11.glRotatef(MathHelper.sin(((float)this.panoramaTimer + par3) / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-((float)this.panoramaTimer + par3) * 0.1F, 0.0F, 1.0F, 0.0F); + for (int var6 = 0; var6 < var5 * var5; ++var6) { + if (ConfigConstants.panoramaBlur) { + EaglerAdapter.glPushMatrix(); + float var7 = ((float) (var6 % var5) / (float) var5 - 0.5F) / 64.0F; + float var8 = ((float) (var6 / var5) / (float) var5 - 0.5F) / 64.0F; + float var9 = 0.0F; + EaglerAdapter.glTranslatef(var7, var8, var9); - for (int var10 = 0; var10 < 6; ++var10) - { - GL11.glPushMatrix(); - - if (var10 == 1) - { - GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); - } - - if (var10 == 2) - { - GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); - } - - if (var10 == 3) - { - GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); - } - - if (var10 == 4) - { - GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); - } - - if (var10 == 5) - { - GL11.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F); - } - - this.mc.getTextureManager().bindTexture(titlePanoramaPaths[var10]); - var4.startDrawingQuads(); - var4.setColorRGBA_I(16777215, 255 / (var6 + 1)); - float var11 = 0.0F; - var4.addVertexWithUV(-1.0D, -1.0D, 1.0D, (double)(0.0F + var11), (double)(0.0F + var11)); - var4.addVertexWithUV(1.0D, -1.0D, 1.0D, (double)(1.0F - var11), (double)(0.0F + var11)); - var4.addVertexWithUV(1.0D, 1.0D, 1.0D, (double)(1.0F - var11), (double)(1.0F - var11)); - var4.addVertexWithUV(-1.0D, 1.0D, 1.0D, (double)(0.0F + var11), (double)(1.0F - var11)); - var4.draw(); - GL11.glPopMatrix(); + float panTimer = (float)(EaglerAdapter.steadyTimeMillis() - start) * 0.03f; + EaglerAdapter.glRotatef(MathHelper.sin(panTimer / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F, 0.0F); + EaglerAdapter.glRotatef(-(panTimer) * 0.1F, 0.0F, 1.0F, 0.0F); } - GL11.glPopMatrix(); - GL11.glColorMask(true, true, true, false); + for (int var10 = 0; var10 < 6; ++var10) { + EaglerAdapter.glPushMatrix(); + + if (var10 == 1) { + EaglerAdapter.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + } + + if (var10 == 2) { + EaglerAdapter.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); + } + + if (var10 == 3) { + EaglerAdapter.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); + } + + if (var10 == 4) { + EaglerAdapter.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); + } + + if (var10 == 5) { + EaglerAdapter.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F); + } + + titlePanoramaPaths[var10].bindTexture(); + var4.startDrawingQuads(); + if (ConfigConstants.panoramaBlur) { + var4.setColorRGBA_I(16777215, 255 / (var6 + 1)); + } else { + var4.setColorRGBA_I(16777215, 255); + } + float var11 = 0.0F; + var4.addVertexWithUV(-1.0D, -1.0D, 1.0D, (double) (0.0F + var11), (double) (0.0F + var11)); + var4.addVertexWithUV(1.0D, -1.0D, 1.0D, (double) (1.0F - var11), (double) (0.0F + var11)); + var4.addVertexWithUV(1.0D, 1.0D, 1.0D, (double) (1.0F - var11), (double) (1.0F - var11)); + var4.addVertexWithUV(-1.0D, 1.0D, 1.0D, (double) (0.0F + var11), (double) (1.0F - var11)); + var4.draw(); + EaglerAdapter.glPopMatrix(); + } + + if (ConfigConstants.panoramaBlur) { + EaglerAdapter.glPopMatrix(); + } + EaglerAdapter.glColorMask(true, true, true, false); } var4.setTranslation(0.0D, 0.0D, 0.0D); - GL11.glColorMask(true, true, true, true); - GL11.glMatrixMode(GL11.GL_PROJECTION); - GL11.glPopMatrix(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glPopMatrix(); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_DEPTH_TEST); + EaglerAdapter.glColorMask(true, true, true, true); + EaglerAdapter.glMatrixMode(EaglerAdapter.GL_PROJECTION); + EaglerAdapter.glPopMatrix(); + EaglerAdapter.glMatrixMode(EaglerAdapter.GL_MODELVIEW); + EaglerAdapter.glPopMatrix(); + EaglerAdapter.glDepthMask(true); + EaglerAdapter.glEnable(EaglerAdapter.GL_CULL_FACE); + EaglerAdapter.glEnable(EaglerAdapter.GL_ALPHA_TEST); + EaglerAdapter.glEnable(EaglerAdapter.GL_DEPTH_TEST); } /** * Rotate and blurs the skybox view in the main menu */ - private void rotateAndBlurSkybox(float par1) - { - this.mc.getTextureManager().bindTexture(this.field_110351_G); - GL11.glCopyTexSubImage2D(GL11.GL_TEXTURE_2D, 0, 0, 0, 0, 0, 256, 256); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColorMask(true, true, true, false); + private void rotateAndBlurSkybox(float par1) { + EaglerAdapter.glBindTexture(EaglerAdapter.GL_TEXTURE_2D, viewportTexture); + this.mc.renderEngine.resetBoundTexture(); + EaglerAdapter.glCopyTexSubImage2D(EaglerAdapter.GL_TEXTURE_2D, 0, 0, 0, 0, 0, 256, 256); + EaglerAdapter.glEnable(EaglerAdapter.GL_BLEND); + EaglerAdapter.glBlendFunc(EaglerAdapter.GL_SRC_ALPHA, EaglerAdapter.GL_ONE_MINUS_SRC_ALPHA); + EaglerAdapter.glColorMask(true, true, true, true); Tessellator var2 = Tessellator.instance; var2.startDrawingQuads(); byte var3 = 3; - for (int var4 = 0; var4 < var3; ++var4) - { - var2.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F / (float)(var4 + 1)); + for (int var4 = 0; var4 < var3; ++var4) { + var2.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F / (float) (var4 + 1)); int var5 = this.width; int var6 = this.height; - float var7 = (float)(var4 - var3 / 2) / 256.0F; - var2.addVertexWithUV((double)var5, (double)var6, (double)this.zLevel, (double)(0.0F + var7), 0.0D); - var2.addVertexWithUV((double)var5, 0.0D, (double)this.zLevel, (double)(1.0F + var7), 0.0D); - var2.addVertexWithUV(0.0D, 0.0D, (double)this.zLevel, (double)(1.0F + var7), 1.0D); - var2.addVertexWithUV(0.0D, (double)var6, (double)this.zLevel, (double)(0.0F + var7), 1.0D); + float var7 = (float) (var4 - var3 / 2) / 256.0F; + var2.addVertexWithUV((double) var5, (double) var6, (double) this.zLevel, (double) (0.0F + var7), 0.0D); + var2.addVertexWithUV((double) var5, 0.0D, (double) this.zLevel, (double) (1.0F + var7), 0.0D); + var2.addVertexWithUV(0.0D, 0.0D, (double) this.zLevel, (double) (1.0F + var7), 1.0D); + var2.addVertexWithUV(0.0D, (double) var6, (double) this.zLevel, (double) (0.0F + var7), 1.0D); } var2.draw(); - GL11.glColorMask(true, true, true, true); + EaglerAdapter.glColorMask(true, true, true, true); + this.mc.renderEngine.resetBoundTexture(); } /** * Renders the skybox in the main menu */ - private void renderSkybox(int par1, int par2, float par3) - { - GL11.glViewport(0, 0, 256, 256); - this.drawPanorama(par1, par2, par3); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_TEXTURE_2D); - this.rotateAndBlurSkybox(par3); - this.rotateAndBlurSkybox(par3); - this.rotateAndBlurSkybox(par3); - this.rotateAndBlurSkybox(par3); - this.rotateAndBlurSkybox(par3); - this.rotateAndBlurSkybox(par3); - this.rotateAndBlurSkybox(par3); - this.rotateAndBlurSkybox(par3); - GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight); - Tessellator var4 = Tessellator.instance; - var4.startDrawingQuads(); - float var5 = this.width > this.height ? 120.0F / (float)this.width : 120.0F / (float)this.height; - float var6 = (float)this.height * var5 / 256.0F; - float var7 = (float)this.width * var5 / 256.0F; - GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR); - GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); - var4.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F); - int var8 = this.width; - int var9 = this.height; - var4.addVertexWithUV(0.0D, (double)var9, (double)this.zLevel, (double)(0.5F - var6), (double)(0.5F + var7)); - var4.addVertexWithUV((double)var8, (double)var9, (double)this.zLevel, (double)(0.5F - var6), (double)(0.5F - var7)); - var4.addVertexWithUV((double)var8, 0.0D, (double)this.zLevel, (double)(0.5F + var6), (double)(0.5F - var7)); - var4.addVertexWithUV(0.0D, 0.0D, (double)this.zLevel, (double)(0.5F + var6), (double)(0.5F + var7)); - var4.draw(); + private void renderSkybox(int par1, int par2, float par3) { + if (ConfigConstants.panoramaBlur) { + EaglerAdapter.glViewport(0, 0, 256, 256); + this.drawPanorama(par1, par2, par3); + EaglerAdapter.glDisable(EaglerAdapter.GL_TEXTURE_2D); + EaglerAdapter.glEnable(EaglerAdapter.GL_TEXTURE_2D); + this.rotateAndBlurSkybox(par3); + this.rotateAndBlurSkybox(par3); + this.rotateAndBlurSkybox(par3); + this.rotateAndBlurSkybox(par3); + this.rotateAndBlurSkybox(par3); + this.rotateAndBlurSkybox(par3); + this.rotateAndBlurSkybox(par3); + this.rotateAndBlurSkybox(par3); + EaglerAdapter.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight); + Tessellator var4 = Tessellator.instance; + var4.startDrawingQuads(); + float var5 = this.width > this.height ? 120.0F / (float) this.width : 120.0F / (float) this.height; + float var6 = (float) this.height * var5 / 256.0F; + float var7 = (float) this.width * var5 / 256.0F; + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_MIN_FILTER, EaglerAdapter.GL_LINEAR); + EaglerAdapter.glTexParameteri(EaglerAdapter.GL_TEXTURE_2D, EaglerAdapter.GL_TEXTURE_MAG_FILTER, EaglerAdapter.GL_LINEAR); + var4.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F); + int var8 = this.width; + int var9 = this.height; + var4.addVertexWithUV(0.0D, (double) var9, (double) this.zLevel, (double) (0.5F - var6), (double) (0.5F + var7)); + var4.addVertexWithUV((double) var8, (double) var9, (double) this.zLevel, (double) (0.5F - var6), (double) (0.5F - var7)); + var4.addVertexWithUV((double) var8, 0.0D, (double) this.zLevel, (double) (0.5F + var6), (double) (0.5F - var7)); + var4.addVertexWithUV(0.0D, 0.0D, (double) this.zLevel, (double) (0.5F + var6), (double) (0.5F + var7)); + var4.draw(); + } else { + EaglerAdapter.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight); + this.drawPanorama(par1, par2, par3); + } } + private static final TextureLocation mclogo = new TextureLocation("/title/mclogo.png"); + private static final TextureLocation eag = new TextureLocation("/title/eag.png"); + private static final TextureLocation ackbk = new TextureLocation("/gui/demo_bg.png"); + private static final TextureLocation beaconx = new TextureLocation("/gui/beacon.png"); + private static final TextureLocation items = new TextureLocation("/gui/items.png"); + /** * Draws the screen and all the components in it. */ - public void drawScreen(int par1, int par2, float par3) - { + public void drawScreen(int par1, int par2, float par3) { + mousex = par1; + mousey = par2; this.renderSkybox(par1, par2, par3); Tessellator var4 = Tessellator.instance; short var5 = 274; int var6 = this.width / 2 - var5 / 2; byte var7 = 30; - this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215); - this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE); - this.mc.getTextureManager().bindTexture(minecraftTitleTextures); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - if ((double)this.updateCounter < 1.0E-4D) - { - this.drawTexturedModalRect(var6 + 0, var7 + 0, 0, 0, 99, 44); - this.drawTexturedModalRect(var6 + 99, var7 + 0, 129, 0, 27, 44); - this.drawTexturedModalRect(var6 + 99 + 26, var7 + 0, 126, 0, 3, 44); - this.drawTexturedModalRect(var6 + 99 + 26 + 3, var7 + 0, 99, 0, 26, 44); - this.drawTexturedModalRect(var6 + 155, var7 + 0, 0, 45, 155, 44); - } - else - { - this.drawTexturedModalRect(var6 + 0, var7 + 0, 0, 0, 155, 44); - this.drawTexturedModalRect(var6 + 155, var7 + 0, 0, 45, 155, 44); + if (ConfigConstants.panoramaBlur) { + this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215); + this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE); } - var4.setColorOpaque_I(16777215); - GL11.glPushMatrix(); - GL11.glTranslatef((float)(this.width / 2 + 90), 70.0F, 0.0F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - float var8 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F); - var8 = var8 * 100.0F / (float)(this.fontRenderer.getStringWidth(this.splashText) + 32); - GL11.glScalef(var8, var8, var8); - this.drawCenteredString(this.fontRenderer, this.splashText, 0, -8, 16776960); - GL11.glPopMatrix(); - String var9 = "Minecraft 1.6.4"; - - if (this.mc.isDemo()) - { - var9 = var9 + " Demo"; + if(ConfigConstants.eaglercraftTitleLogo) { + eag.bindTexture(); + }else { + mclogo.bindTexture(); } - this.drawString(this.fontRenderer, var9, 2, this.height - 10, 16777215); - String var10 = "Copyright Mojang AB. Do not distribute!"; + this.drawTexturedModalRect(var6 + 0, var7 + 0, 0, 0, 155, 44); + this.drawTexturedModalRect(var6 + 155, var7 + 0, 0, 45, 155, 44); + + this.drawString(this.fontRenderer, "minecraft 1.5.2", 2, this.height - 20, 16777215); + this.drawString(this.fontRenderer, ConfigConstants.mainMenuString + " official", 2, this.height - 10, 16777215); + + //String var10 = "Copyright " + Calendar.getInstance().get(Calendar.YEAR) + " Mojang AB."; + String var10 = "copyright 2013 Mojang AB"; this.drawString(this.fontRenderer, var10, this.width - this.fontRenderer.getStringWidth(var10) - 2, this.height - 10, 16777215); - if (this.field_92025_p != null && this.field_92025_p.length() > 0) - { + var10 = "site resources are"; + this.drawString(this.fontRenderer, var10, this.width - this.fontRenderer.getStringWidth(var10) - 2, this.height - 20, 16777215); + + if(showingEndian && EaglerAdapter.isBigEndian()) { + this.drawCenteredString(fontRenderer, "(BIG Endian)", this.width / 2, this.height - 10, 0xFFFFBBBB); + } + + if (this.field_92025_p != null && this.field_92025_p.length() > 0) { drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512); this.drawString(this.fontRenderer, this.field_92025_p, this.field_92022_t, this.field_92021_u, 16777215); - this.drawString(this.fontRenderer, field_96138_a, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, 16777215); + // this.drawString(this.fontRenderer, field_96138_a, (this.width - + // this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, + // 16777215); } + if (this.splashText != null) { + var4.setColorOpaque_I(16777215); + EaglerAdapter.glPushMatrix(); + EaglerAdapter.glTranslatef((float) (this.width / 2 + 90), 70.0F, 0.0F); + EaglerAdapter.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); + float var8 = 1.8F - MathHelper.abs(MathHelper.sin((float) (Minecraft.getSystemTime() % 1000L) / 1000.0F * (float) Math.PI * 2.0F) * 0.1F); + var8 = var8 * 100.0F / (float) (this.fontRenderer.getStringWidth(this.splashText) + 32); + EaglerAdapter.glScalef(var8, var8, var8); + this.drawCenteredString(this.fontRenderer, this.splashText, 0, -8, 16776960); + EaglerAdapter.glPopMatrix(); + } + /* + String lid = "(login is disabled, this copy violates Mojang's terms of service)"; + int sl = this.fontRenderer.getStringWidth(lid); - super.drawScreen(par1, par2, par3); - } + EaglerAdapter.glPushMatrix(); + float k = ((this.width - sl) * 3 / 4) < 80 ? 0.5f : 0.75f; + EaglerAdapter.glScalef(k, k, k); + EaglerAdapter.glEnable(EaglerAdapter.GL_BLEND); + EaglerAdapter.glBlendFunc(EaglerAdapter.GL_SRC_ALPHA, EaglerAdapter.GL_ONE_MINUS_SRC_ALPHA); + this.drawString(fontRenderer, lid, (int)(this.width / k - sl) / 2, (int)((this.height - 19) / k), 0x88999999); + EaglerAdapter.glDisable(EaglerAdapter.GL_BLEND); + EaglerAdapter.glPopMatrix(); + */ + var10 = "eaglercraft readme.txt"; + int w = this.fontRenderer.getStringWidth(var10) * 3 / 4; + if(!showAck && par1 >= (this.width - w - 4) && par1 <= this.width && par2 >= 0 && par2 <= 9) { + drawRect((this.width - w - 4), 0, this.width, 9, 0x55000099); + }else { + drawRect((this.width - w - 4), 0, this.width, 9, 0x55200000); + } + EaglerAdapter.glPushMatrix(); + EaglerAdapter.glTranslatef((this.width - w - 2), 1.0f, 0.0f); + EaglerAdapter.glScalef(0.75f, 0.75f, 0.75f); + this.drawString(this.fontRenderer, var10, 0, 0, 16777215); + EaglerAdapter.glPopMatrix(); - /** - * Called when the mouse is clicked. - */ - protected void mouseClicked(int par1, int par2, int par3) - { - super.mouseClicked(par1, par2, par3); - Object var4 = this.field_104025_t; + /* + var10 = "debug console"; + w = this.fontRenderer.getStringWidth(var10) * 3 / 4; + if(!showAck && par1 >= 0 && par1 <= (w + 4) && par2 >= 0 && par2 <= 9) { + drawRect(0, 0, w + 4, 9, 0x55000099); + }else { + drawRect(0, 0, w + 4, 9, 0x55200000); + } + EaglerAdapter.glPushMatrix(); + EaglerAdapter.glTranslatef(2.0f, 1.0f, 0.0f); + EaglerAdapter.glScalef(0.75f, 0.75f, 0.75f); + this.drawString(this.fontRenderer, var10, 0, 0, 16777215); + EaglerAdapter.glPopMatrix(); + */ - synchronized (this.field_104025_t) - { - if (this.field_92025_p.length() > 0 && par1 >= this.field_92022_t && par1 <= this.field_92020_v && par2 >= this.field_92021_u && par2 <= this.field_92019_w) - { - GuiConfirmOpenLink var5 = new GuiConfirmOpenLink(this, this.field_104024_v, 13, true); - var5.func_92026_h(); - this.mc.displayGuiScreen(var5); + if(ConfigConstants.mainMenuItemLink != null) { + //drawRect((this.width - w - 4), 0, this.width, 9, 0x55200000); + + int posX = this.width / 2 - 170 - this.width / 10; + int posY = this.height / 4 + 70; + int ww = 66; + int hh = 46; + int ln0w = ConfigConstants.mainMenuItemLine0 == null ? 0 : fontRenderer.getStringWidth(ConfigConstants.mainMenuItemLine0); + ww = ww < ln0w ? ln0w : ww; + hh = ln0w > 0 ? hh + 12 : hh; + int ln1w = ConfigConstants.mainMenuItemLine1 == null ? 0 : fontRenderer.getStringWidth(ConfigConstants.mainMenuItemLine1); + ww = ww < ln1w ? ln1w : ww; + hh = ln1w > 0 ? hh + 12 : hh; + int ln2w = ConfigConstants.mainMenuItemLine2 == null ? 0 : fontRenderer.getStringWidth(ConfigConstants.mainMenuItemLine2); + ww = ww < ln2w ? ln2w : ww; + hh = ln2w > 0 ? hh + 12 : hh; + + ww += 20; + hh += 20; + + boolean over = par1 > posX && par1 < posX + (ww / 4 * 3) && par2 > posY && par2 < posY + (hh / 4 * 3); + + int iconSize = 45; + + if(over) { + EaglerAdapter.glPushMatrix(); + EaglerAdapter.glTranslatef(posX, posY, 0.0f); + EaglerAdapter.glScalef(0.75f, 0.75f, 0.75f); + + drawRect(0, 0, ww, hh, 0x44000022); + + drawRect(3, 3, ww - 3, 4, 0x99999999); + drawRect(3, hh - 4, ww - 3, hh - 3, 0x99999999); + drawRect(3, 4, 4, hh - 4, 0x99999999); + drawRect(ww - 4, 4, ww - 3, hh - 4, 0x99999999); + + int i = 10; + + if(ln0w > 0) { + this.drawString(this.fontRenderer, ConfigConstants.mainMenuItemLine0, (ww - ln0w) / 2, i, 0xFFFF99); + i += 12; + } + + items.bindTexture(); + + EaglerAdapter.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + this.drawTexturedModelRectFromIcon((ww - iconSize) / 2, i, Item.itemsList[showRandomItem].getIconFromDamage(0), iconSize, iconSize); + + i += iconSize + 5; + + if(ln1w > 0) { + this.drawString(this.fontRenderer, ConfigConstants.mainMenuItemLine1, (ww - ln1w) / 2, i, 0xFFFF99); + i += 12; + } + + if(ln2w > 0) { + this.drawString(this.fontRenderer, ConfigConstants.mainMenuItemLine2, (ww - ln2w) / 2, i, 0xDDDDDD); + } + + int ww75 = (ww * 4 / 3); + int hh75 = (hh * 4 / 3); + + //this.drawString(this.fontRenderer, var10, this.width - this.fontRenderer.getStringWidth(var10) - 2, this.height - 10, 16777215); + + EaglerAdapter.glPopMatrix(); + + }else { + EaglerAdapter.glEnable(EaglerAdapter.GL_BLEND); + EaglerAdapter.glBlendFunc(EaglerAdapter.GL_SRC_ALPHA, EaglerAdapter.GL_ONE_MINUS_SRC_ALPHA); + EaglerAdapter.glColor4f(0.9f, 0.9f, 0.9f, MathHelper.sin((float)(EaglerAdapter.steadyTimeMillis() % 1000000l) / 300f) * 0.17f + 0.5f); + + items.bindTexture(); + + EaglerAdapter.glPushMatrix(); + EaglerAdapter.glTranslatef(posX, posY, 0.0f); + EaglerAdapter.glScalef(0.75f, 0.75f, 0.75f); + this.drawTexturedModelRectFromIcon((ww - iconSize) / 2, ln0w > 0 ? 22 : 10, Item.itemsList[showRandomItem].getIconFromDamage(0), iconSize, iconSize); + EaglerAdapter.glPopMatrix(); + + EaglerAdapter.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + EaglerAdapter.glDisable(EaglerAdapter.GL_BLEND); } + + } + + if(showAck) { + super.drawScreen(0, 0, par3); + this.drawGradientRect(0, 0, this.width, this.height, -1072689136, -804253680); + int x = (this.width - 345) / 2; + int y = (this.height - 230) / 2; + ackbk.bindTexture(); + EaglerAdapter.glPushMatrix(); + EaglerAdapter.glTranslatef(x, y, 0.0f); + EaglerAdapter.glScalef(1.39f, 1.39f, 1.39f); + this.drawTexturedModalRect(0, 0, 0, 0, 248, 166); + EaglerAdapter.glPopMatrix(); + beaconx.bindTexture(); + this.drawTexturedModalRect(x + 323, y + 7, 114, 223, 13, 13); + int lines = this.ackLines.size(); + if(scrollPosition < 0) scrollPosition = 0; + if(scrollPosition + visibleLines > lines) scrollPosition = lines - visibleLines; + for(int i = 0; i < visibleLines; ++i) { + this.fontRenderer.drawString(this.ackLines.get(scrollPosition + i), x + 10, y + 10 + (i * 10), 0x404060); + } + int trackHeight = 193; + int offset = trackHeight * scrollPosition / lines; + drawRect(x + 326, y + 27, x + 334, y + 220, 0x33000020); + drawRect(x + 326, y + 27 + offset, x + 334, y + 27 + (visibleLines * trackHeight / lines) + offset + 1, 0x66000000); + }else { + super.drawScreen(par1, par2, par3); } } - static Minecraft func_110348_a(GuiMainMenu par0GuiMainMenu) - { - return par0GuiMainMenu.mc; + private int mousex = 0; + private int mousey = 0; + + public void updateScreen() { + if(EaglerAdapter.mouseIsButtonDown(0) && dragstart > 0) { + int trackHeight = 193; + scrollPosition = (mousey - dragstart) * this.ackLines.size() / trackHeight + dragstartI; + if(scrollPosition < 0) scrollPosition = 0; + if(scrollPosition + visibleLines > this.ackLines.size()) scrollPosition = this.ackLines.size() - visibleLines; + }else { + dragstart = -1; + } } - static void func_130021_b(GuiMainMenu par0GuiMainMenu) - { - par0GuiMainMenu.func_130022_h(); - } - - static boolean func_110349_a(boolean par0) - { - field_96139_s = par0; - return par0; - } - - static Minecraft func_130018_c(GuiMainMenu par0GuiMainMenu) - { - return par0GuiMainMenu.mc; - } - - static Minecraft func_130019_d(GuiMainMenu par0GuiMainMenu) - { - return par0GuiMainMenu.mc; - } } diff --git a/src/main/java/net/minecraft/src/GuiMerchant.java b/src/main/java/net/minecraft/src/GuiMerchant.java index 54a3650..bac6bbe 100644 --- a/src/main/java/net/minecraft/src/GuiMerchant.java +++ b/src/main/java/net/minecraft/src/GuiMerchant.java @@ -2,12 +2,14 @@ package net.minecraft.src; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public class GuiMerchant extends GuiContainer { - private static final ResourceLocation merchantGuiTextures = new ResourceLocation("textures/gui/container/villager.png"); + private static final TextureLocation merchantGuiTextures = new TextureLocation("textures/gui/container/villager.png"); /** Instance of IMerchant interface. */ private IMerchant theIMerchant; @@ -103,7 +105,7 @@ public class GuiMerchant extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(merchantGuiTextures); + merchantGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); @@ -116,7 +118,7 @@ public class GuiMerchant extends GuiContainer if (var8.func_82784_g()) { - this.mc.getTextureManager().bindTexture(merchantGuiTextures); + merchantGuiTextures.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_LIGHTING); this.drawTexturedModalRect(this.guiLeft + 83, this.guiTop + 21, 212, 0, 28, 21); @@ -191,7 +193,7 @@ public class GuiMerchant extends GuiContainer return this.theIMerchant; } - static ResourceLocation func_110417_h() + static TextureLocation func_110417_h() { return merchantGuiTextures; } diff --git a/src/main/java/net/minecraft/src/GuiRepair.java b/src/main/java/net/minecraft/src/GuiRepair.java index ec49cfd..bad8515 100644 --- a/src/main/java/net/minecraft/src/GuiRepair.java +++ b/src/main/java/net/minecraft/src/GuiRepair.java @@ -1,12 +1,14 @@ package net.minecraft.src; import java.util.List; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; public class GuiRepair extends GuiContainer implements ICrafting { - private static final ResourceLocation anvilGuiTextures = new ResourceLocation("textures/gui/container/anvil.png"); + private static final TextureLocation anvilGuiTextures = new TextureLocation("textures/gui/container/anvil.png"); private ContainerRepair repairContainer; private GuiTextField itemNameField; private InventoryPlayer field_82325_q; @@ -153,7 +155,7 @@ public class GuiRepair extends GuiContainer implements ICrafting protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(anvilGuiTextures); + anvilGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); diff --git a/src/main/java/net/minecraft/src/GuiScreenBook.java b/src/main/java/net/minecraft/src/GuiScreenBook.java index fb64af1..5f70fd1 100644 --- a/src/main/java/net/minecraft/src/GuiScreenBook.java +++ b/src/main/java/net/minecraft/src/GuiScreenBook.java @@ -2,12 +2,14 @@ package net.minecraft.src; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; public class GuiScreenBook extends GuiScreen { - private static final ResourceLocation bookGuiTextures = new ResourceLocation("textures/gui/book.png"); + private static final TextureLocation bookGuiTextures = new TextureLocation("textures/gui/book.png"); /** The player editing the book */ private final EntityPlayer editingPlayer; @@ -374,7 +376,7 @@ public class GuiScreenBook extends GuiScreen public void drawScreen(int par1, int par2, float par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(bookGuiTextures); + bookGuiTextures.bindTexture(); int var4 = (this.width - this.bookImageWidth) / 2; byte var5 = 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.bookImageWidth, this.bookImageHeight); @@ -444,7 +446,7 @@ public class GuiScreenBook extends GuiScreen super.drawScreen(par1, par2, par3); } - static ResourceLocation func_110404_g() + static TextureLocation func_110404_g() { return bookGuiTextures; } diff --git a/src/main/java/net/minecraft/src/GuiScreenDemo.java b/src/main/java/net/minecraft/src/GuiScreenDemo.java deleted file mode 100644 index 8d8373b..0000000 --- a/src/main/java/net/minecraft/src/GuiScreenDemo.java +++ /dev/null @@ -1,89 +0,0 @@ -package net.minecraft.src; - -import java.net.URI; -import org.lwjgl.opengl.GL11; - -public class GuiScreenDemo extends GuiScreen -{ - private static final ResourceLocation field_110407_a = new ResourceLocation("textures/gui/demo_background.png"); - - /** - * Adds the buttons (and other controls) to the screen in question. - */ - public void initGui() - { - this.buttonList.clear(); - byte var1 = -16; - this.buttonList.add(new GuiButton(1, this.width / 2 - 116, this.height / 2 + 62 + var1, 114, 20, I18n.getString("demo.help.buy"))); - this.buttonList.add(new GuiButton(2, this.width / 2 + 2, this.height / 2 + 62 + var1, 114, 20, I18n.getString("demo.help.later"))); - } - - /** - * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). - */ - protected void actionPerformed(GuiButton par1GuiButton) - { - switch (par1GuiButton.id) - { - case 1: - par1GuiButton.enabled = false; - - try - { - Class var2 = Class.forName("java.awt.Desktop"); - Object var3 = var2.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]); - var2.getMethod("browse", new Class[] {URI.class}).invoke(var3, new Object[] {new URI("http://www.minecraft.net/store?source=demo")}); - } - catch (Throwable var4) - { - var4.printStackTrace(); - } - - break; - - case 2: - this.mc.displayGuiScreen((GuiScreen)null); - this.mc.setIngameFocus(); - } - } - - /** - * Called from the main game loop to update the screen. - */ - public void updateScreen() - { - super.updateScreen(); - } - - /** - * Draws either a gradient over the background screen (when it exists) or a flat gradient over background.png - */ - public void drawDefaultBackground() - { - super.drawDefaultBackground(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(field_110407_a); - int var1 = (this.width - 248) / 2; - int var2 = (this.height - 166) / 2; - this.drawTexturedModalRect(var1, var2, 0, 0, 248, 166); - } - - /** - * Draws the screen and all the components in it. - */ - public void drawScreen(int par1, int par2, float par3) - { - this.drawDefaultBackground(); - int var4 = (this.width - 248) / 2 + 10; - int var5 = (this.height - 166) / 2 + 8; - this.fontRenderer.drawString(I18n.getString("demo.help.title"), var4, var5, 2039583); - var5 += 12; - GameSettings var6 = this.mc.gameSettings; - this.fontRenderer.drawString(I18n.getStringParams("demo.help.movementShort", new Object[] {GameSettings.getKeyDisplayString(var6.keyBindForward.keyCode), GameSettings.getKeyDisplayString(var6.keyBindLeft.keyCode), GameSettings.getKeyDisplayString(var6.keyBindBack.keyCode), GameSettings.getKeyDisplayString(var6.keyBindRight.keyCode)}), var4, var5, 5197647); - this.fontRenderer.drawString(I18n.getString("demo.help.movementMouse"), var4, var5 + 12, 5197647); - this.fontRenderer.drawString(I18n.getStringParams("demo.help.jump", new Object[] {GameSettings.getKeyDisplayString(var6.keyBindJump.keyCode)}), var4, var5 + 24, 5197647); - this.fontRenderer.drawString(I18n.getStringParams("demo.help.inventory", new Object[] {GameSettings.getKeyDisplayString(var6.keyBindInventory.keyCode)}), var4, var5 + 36, 5197647); - this.fontRenderer.drawSplitString(I18n.getString("demo.help.fullWrapped"), var4, var5 + 68, 218, 2039583); - super.drawScreen(par1, par2, par3); - } -} diff --git a/src/main/java/net/minecraft/src/GuiScreenHorseInventory.java b/src/main/java/net/minecraft/src/GuiScreenHorseInventory.java index 9dfd053..ec4f3aa 100644 --- a/src/main/java/net/minecraft/src/GuiScreenHorseInventory.java +++ b/src/main/java/net/minecraft/src/GuiScreenHorseInventory.java @@ -1,10 +1,11 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class GuiScreenHorseInventory extends GuiContainer { - private static final ResourceLocation horseGuiTextures = new ResourceLocation("textures/gui/container/horse.png"); + private static final TextureLocation horseGuiTextures = new TextureLocation("textures/gui/container/horse.png"); private IInventory field_110413_u; private IInventory field_110412_v; private EntityHorse field_110411_w; @@ -35,7 +36,7 @@ public class GuiScreenHorseInventory extends GuiContainer protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(horseGuiTextures); + horseGuiTextures.bindTexture(); int var4 = (this.width - this.xSize) / 2; int var5 = (this.height - this.ySize) / 2; this.drawTexturedModalRect(var4, var5, 0, 0, this.xSize, this.ySize); diff --git a/src/main/java/net/minecraft/src/GuiScreenOnlineServers.java b/src/main/java/net/minecraft/src/GuiScreenOnlineServers.java index 943ce53..82f5722 100644 --- a/src/main/java/net/minecraft/src/GuiScreenOnlineServers.java +++ b/src/main/java/net/minecraft/src/GuiScreenOnlineServers.java @@ -8,12 +8,14 @@ import java.net.InetSocketAddress; import java.net.Socket; import java.util.Iterator; import java.util.List; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; public class GuiScreenOnlineServers extends GuiScreen { - private static final ResourceLocation field_130039_a = new ResourceLocation("textures/gui/widgets.png"); + private static final TextureLocation field_130039_a = new TextureLocation("textures/gui/widgets.png"); private GuiScreen field_96188_a; private GuiSlotOnlineServerList field_96186_b; private static int field_96187_c; @@ -337,7 +339,7 @@ public class GuiScreenOnlineServers extends GuiScreen { int var3 = field_96194_t.func_130124_d(); boolean var4 = this.func_130037_c(par1, par2); - this.mc.getTextureManager().bindTexture(field_130039_a); + field_130039_a.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPushMatrix(); this.drawTexturedModalRect(this.width / 2 + 58, 15, var4 ? 166 : 182, 22, 16, 16); @@ -349,7 +351,7 @@ public class GuiScreenOnlineServers extends GuiScreen { var5 = 198 + (Math.min(var3, 6) - 1) * 8; var6 = (int)(Math.max(0.0F, Math.max(MathHelper.sin((float)(10 + this.field_104044_y) * 0.57F), MathHelper.cos((float)this.field_104044_y * 0.35F))) * -6.0F); - this.mc.getTextureManager().bindTexture(field_130039_a); + field_130039_a.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPushMatrix(); this.drawTexturedModalRect(this.width / 2 + 58 + 4, 19 + var6, var5, 22, 8, 8); @@ -391,7 +393,7 @@ public class GuiScreenOnlineServers extends GuiScreen private void func_101008_c(int par1, int par2, int par3, int par4) { - this.mc.getTextureManager().bindTexture(field_130039_a); + field_130039_a.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPushMatrix(); GL11.glScalef(0.5F, 0.5F, 0.5F); @@ -408,7 +410,7 @@ public class GuiScreenOnlineServers extends GuiScreen { if (this.field_104044_y % 20 < 10) { - this.mc.getTextureManager().bindTexture(field_130039_a); + field_130039_a.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPushMatrix(); GL11.glScalef(0.5F, 0.5F, 0.5F); @@ -435,7 +437,7 @@ public class GuiScreenOnlineServers extends GuiScreen private void func_101006_d(int par1, int par2, int par3, int par4) { - this.mc.getTextureManager().bindTexture(field_130039_a); + field_130039_a.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPushMatrix(); GL11.glScalef(0.5F, 0.5F, 0.5F); @@ -450,7 +452,7 @@ public class GuiScreenOnlineServers extends GuiScreen private void func_101001_e(int par1, int par2, int par3, int par4) { - this.mc.getTextureManager().bindTexture(field_130039_a); + field_130039_a.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPushMatrix(); GL11.glScalef(0.5F, 0.5F, 0.5F); diff --git a/src/main/java/net/minecraft/src/GuiScreenSelectLocation.java b/src/main/java/net/minecraft/src/GuiScreenSelectLocation.java index 1330212..a1a3d14 100644 --- a/src/main/java/net/minecraft/src/GuiScreenSelectLocation.java +++ b/src/main/java/net/minecraft/src/GuiScreenSelectLocation.java @@ -247,7 +247,7 @@ public abstract class GuiScreenSelectLocation GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_FOG); Tessellator var18 = Tessellator.instance; - this.field_104092_f.getTextureManager().bindTexture(Gui.optionsBackground); + Gui.optionsBackground.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); float var17 = 32.0F; var18.startDrawingQuads(); @@ -403,7 +403,7 @@ public abstract class GuiScreenSelectLocation private void func_104083_b(int par1, int par2, int par3, int par4) { Tessellator var5 = Tessellator.instance; - this.field_104092_f.getTextureManager().bindTexture(Gui.optionsBackground); + Gui.optionsBackground.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); float var6 = 32.0F; var5.startDrawingQuads(); diff --git a/src/main/java/net/minecraft/src/GuiScreenTemporaryResourcePackSelectSelectionList.java b/src/main/java/net/minecraft/src/GuiScreenTemporaryResourcePackSelectSelectionList.java index 6cf4e49..4f82bf0 100644 --- a/src/main/java/net/minecraft/src/GuiScreenTemporaryResourcePackSelectSelectionList.java +++ b/src/main/java/net/minecraft/src/GuiScreenTemporaryResourcePackSelectSelectionList.java @@ -2,13 +2,15 @@ package net.minecraft.src; import java.io.IOException; import java.util.List; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; import net.lax1dude.eaglercraft.adapter.Tessellator; class GuiScreenTemporaryResourcePackSelectSelectionList extends GuiSlot { private final ResourcePackRepository field_110511_b; - private ResourceLocation field_110513_h; + private TextureLocation field_110513_h; final GuiScreenTemporaryResourcePackSelect field_110512_a; @@ -93,7 +95,7 @@ class GuiScreenTemporaryResourcePackSelectSelectionList extends GuiSlot this.field_110513_h = var6.getDynamicTextureLocation("texturepackicon", new DynamicTexture(var12.getPackImage())); } - var6.bindTexture(this.field_110513_h); + this.field_110513_h.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); par5Tessellator.startDrawingQuads(); par5Tessellator.setColorOpaque_I(16777215); diff --git a/src/main/java/net/minecraft/src/GuiSlotOnlineServerList.java b/src/main/java/net/minecraft/src/GuiSlotOnlineServerList.java index 168b227..81e3441 100644 --- a/src/main/java/net/minecraft/src/GuiSlotOnlineServerList.java +++ b/src/main/java/net/minecraft/src/GuiSlotOnlineServerList.java @@ -134,7 +134,7 @@ class GuiSlotOnlineServerList extends GuiScreenSelectLocation } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GuiScreenOnlineServers.func_142023_q(this.field_96294_a).getTextureManager().bindTexture(Gui.icons); + Gui.icons.bindTexture(); } } } diff --git a/src/main/java/net/minecraft/src/GuiSlotServer.java b/src/main/java/net/minecraft/src/GuiSlotServer.java index 333a9dc..283f2eb 100644 --- a/src/main/java/net/minecraft/src/GuiSlotServer.java +++ b/src/main/java/net/minecraft/src/GuiSlotServer.java @@ -166,7 +166,7 @@ class GuiSlotServer extends GuiSlot } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.parentGui.mc.getTextureManager().bindTexture(Gui.icons); + Gui.icons.bindTexture(); byte var15 = 0; boolean var11 = false; String var12 = ""; diff --git a/src/main/java/net/minecraft/src/GuiWinGame.java b/src/main/java/net/minecraft/src/GuiWinGame.java index 923b156..5b6c385 100644 --- a/src/main/java/net/minecraft/src/GuiWinGame.java +++ b/src/main/java/net/minecraft/src/GuiWinGame.java @@ -5,13 +5,15 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Random; + +import net.lax1dude.eaglercraft.TextureLocation; import org.apache.commons.io.Charsets; import org.lwjgl.opengl.GL11; public class GuiWinGame extends GuiScreen { - private static final ResourceLocation minecraftLogoTexture = new ResourceLocation("textures/gui/title/minecraft.png"); - private static final ResourceLocation field_110361_b = new ResourceLocation("textures/misc/vignette.png"); + private static final TextureLocation minecraftLogoTexture = new TextureLocation("textures/gui/title/minecraft.png"); + private static final TextureLocation field_110361_b = new TextureLocation("textures/misc/vignette.png"); /** Counts the number of screen updates. */ private int updateCounter; @@ -124,7 +126,7 @@ public class GuiWinGame extends GuiScreen private void func_73986_b(int par1, int par2, float par3) { Tessellator var4 = Tessellator.instance; - this.mc.getTextureManager().bindTexture(Gui.optionsBackground); + Gui.optionsBackground.bindTexture(); var4.startDrawingQuads(); var4.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F); int var5 = this.width; @@ -168,7 +170,7 @@ public class GuiWinGame extends GuiScreen float var8 = -((float)this.updateCounter + par3) * this.field_73987_d; GL11.glPushMatrix(); GL11.glTranslatef(0.0F, var8, 0.0F); - this.mc.getTextureManager().bindTexture(minecraftLogoTexture); + minecraftLogoTexture.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.drawTexturedModalRect(var6, var7, 0, 0, 155, 44); this.drawTexturedModalRect(var6 + 155, var7, 0, 45, 155, 44); @@ -207,7 +209,7 @@ public class GuiWinGame extends GuiScreen } GL11.glPopMatrix(); - this.mc.getTextureManager().bindTexture(field_110361_b); + field_110361_b.bindTexture(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_ZERO, GL11.GL_ONE_MINUS_SRC_COLOR); var4.startDrawingQuads(); diff --git a/src/main/java/net/minecraft/src/IconRegister.java b/src/main/java/net/minecraft/src/IconRegister.java index cbca42c..eb8e732 100644 --- a/src/main/java/net/minecraft/src/IconRegister.java +++ b/src/main/java/net/minecraft/src/IconRegister.java @@ -1,6 +1,11 @@ -package net.minecraft.src; - -public interface IconRegister -{ - Icon registerIcon(String var1); -} +package net.minecraft.src; + +public interface IconRegister { + + Icon registerIcon(String var1, int w); + + default Icon registerIcon(String var1) { + return registerIcon(var1, 1); + } + +} diff --git a/src/main/java/net/minecraft/src/IntHashMap.java b/src/main/java/net/minecraft/src/IntHashMap.java index 648bbd0..a859836 100644 --- a/src/main/java/net/minecraft/src/IntHashMap.java +++ b/src/main/java/net/minecraft/src/IntHashMap.java @@ -1,245 +1,218 @@ -package net.minecraft.src; - -import java.util.HashSet; -import java.util.Set; - -public class IntHashMap -{ - /** An array of HashEntries representing the heads of hash slot lists */ - private transient IntHashMapEntry[] slots = new IntHashMapEntry[16]; - - /** The number of items stored in this map */ - private transient int count; - - /** The grow threshold */ - private int threshold = 12; - - /** The scale factor used to determine when to grow the table */ - private final float growFactor = 0.75F; - - /** A serial stamp used to mark changes */ - private transient volatile int versionStamp; - - /** The set of all the keys stored in this MCHash object */ - private Set keySet = new HashSet(); - - /** - * Makes the passed in integer suitable for hashing by a number of shifts - */ - private static int computeHash(int par0) - { - par0 ^= par0 >>> 20 ^ par0 >>> 12; - return par0 ^ par0 >>> 7 ^ par0 >>> 4; - } - - /** - * Computes the index of the slot for the hash and slot count passed in. - */ - private static int getSlotIndex(int par0, int par1) - { - return par0 & par1 - 1; - } - - /** - * Returns the object associated to a key - */ - public Object lookup(int par1) - { - int var2 = computeHash(par1); - - for (IntHashMapEntry var3 = this.slots[getSlotIndex(var2, this.slots.length)]; var3 != null; var3 = var3.nextEntry) - { - if (var3.hashEntry == par1) - { - return var3.valueEntry; - } - } - - return null; - } - - /** - * Return true if an object is associated with the given key - */ - public boolean containsItem(int par1) - { - return this.lookupEntry(par1) != null; - } - - /** - * Returns the key/object mapping for a given key as a MCHashEntry - */ - final IntHashMapEntry lookupEntry(int par1) - { - int var2 = computeHash(par1); - - for (IntHashMapEntry var3 = this.slots[getSlotIndex(var2, this.slots.length)]; var3 != null; var3 = var3.nextEntry) - { - if (var3.hashEntry == par1) - { - return var3; - } - } - - return null; - } - - /** - * Adds a key and associated value to this map - */ - public void addKey(int par1, Object par2Obj) - { - this.keySet.add(Integer.valueOf(par1)); - int var3 = computeHash(par1); - int var4 = getSlotIndex(var3, this.slots.length); - - for (IntHashMapEntry var5 = this.slots[var4]; var5 != null; var5 = var5.nextEntry) - { - if (var5.hashEntry == par1) - { - var5.valueEntry = par2Obj; - return; - } - } - - ++this.versionStamp; - this.insert(var3, par1, par2Obj, var4); - } - - /** - * Increases the number of hash slots - */ - private void grow(int par1) - { - IntHashMapEntry[] var2 = this.slots; - int var3 = var2.length; - - if (var3 == 1073741824) - { - this.threshold = Integer.MAX_VALUE; - } - else - { - IntHashMapEntry[] var4 = new IntHashMapEntry[par1]; - this.copyTo(var4); - this.slots = var4; - this.threshold = (int)((float)par1 * this.growFactor); - } - } - - /** - * Copies the hash slots to a new array - */ - private void copyTo(IntHashMapEntry[] par1ArrayOfIntHashMapEntry) - { - IntHashMapEntry[] var2 = this.slots; - int var3 = par1ArrayOfIntHashMapEntry.length; - - for (int var4 = 0; var4 < var2.length; ++var4) - { - IntHashMapEntry var5 = var2[var4]; - - if (var5 != null) - { - var2[var4] = null; - IntHashMapEntry var6; - - do - { - var6 = var5.nextEntry; - int var7 = getSlotIndex(var5.slotHash, var3); - var5.nextEntry = par1ArrayOfIntHashMapEntry[var7]; - par1ArrayOfIntHashMapEntry[var7] = var5; - var5 = var6; - } - while (var6 != null); - } - } - } - - /** - * Removes the specified object from the map and returns it - */ - public Object removeObject(int par1) - { - this.keySet.remove(Integer.valueOf(par1)); - IntHashMapEntry var2 = this.removeEntry(par1); - return var2 == null ? null : var2.valueEntry; - } - - /** - * Removes the specified entry from the map and returns it - */ - final IntHashMapEntry removeEntry(int par1) - { - int var2 = computeHash(par1); - int var3 = getSlotIndex(var2, this.slots.length); - IntHashMapEntry var4 = this.slots[var3]; - IntHashMapEntry var5; - IntHashMapEntry var6; - - for (var5 = var4; var5 != null; var5 = var6) - { - var6 = var5.nextEntry; - - if (var5.hashEntry == par1) - { - ++this.versionStamp; - --this.count; - - if (var4 == var5) - { - this.slots[var3] = var6; - } - else - { - var4.nextEntry = var6; - } - - return var5; - } - - var4 = var5; - } - - return var5; - } - - /** - * Removes all entries from the map - */ - public void clearMap() - { - ++this.versionStamp; - IntHashMapEntry[] var1 = this.slots; - - for (int var2 = 0; var2 < var1.length; ++var2) - { - var1[var2] = null; - } - - this.count = 0; - } - - /** - * Adds an object to a slot - */ - private void insert(int par1, int par2, Object par3Obj, int par4) - { - IntHashMapEntry var5 = this.slots[par4]; - this.slots[par4] = new IntHashMapEntry(par1, par2, par3Obj, var5); - - if (this.count++ >= this.threshold) - { - this.grow(2 * this.slots.length); - } - } - - /** - * Returns the hash code for a key - */ - static int getHash(int par0) - { - return computeHash(par0); - } -} +package net.minecraft.src; + +import java.util.HashSet; +import java.util.Set; + +public class IntHashMap { + /** An array of HashEntries representing the heads of hash slot lists */ + private transient IntHashMapEntry[] slots = new IntHashMapEntry[16]; + + /** The number of items stored in this map */ + private transient int count; + + /** The grow threshold */ + private int threshold = 12; + + /** The scale factor used to determine when to grow the table */ + private final float growFactor = 0.75F; + + /** A serial stamp used to mark changes */ + private transient volatile int versionStamp; + + /** The set of all the keys stored in this MCHash object */ + private Set keySet = new HashSet(); + + /** + * Makes the passed in integer suitable for hashing by a number of shifts + */ + private static int computeHash(int par0) { + par0 ^= par0 >>> 20 ^ par0 >>> 12; + return par0 ^ par0 >>> 7 ^ par0 >>> 4; + } + + /** + * Computes the index of the slot for the hash and slot count passed in. + */ + private static int getSlotIndex(int par0, int par1) { + return par0 & par1 - 1; + } + + /** + * Returns the object associated to a key + */ + public Object lookup(int par1) { + int var2 = computeHash(par1); + + for (IntHashMapEntry var3 = this.slots[getSlotIndex(var2, this.slots.length)]; var3 != null; var3 = var3.nextEntry) { + if (var3.hashEntry == par1) { + return var3.valueEntry; + } + } + + return null; + } + + /** + * Return true if an object is associated with the given key + */ + public boolean containsItem(int par1) { + return this.lookupEntry(par1) != null; + } + + /** + * Returns the key/object mapping for a given key as a MCHashEntry + */ + final IntHashMapEntry lookupEntry(int par1) { + int var2 = computeHash(par1); + + for (IntHashMapEntry var3 = this.slots[getSlotIndex(var2, this.slots.length)]; var3 != null; var3 = var3.nextEntry) { + if (var3.hashEntry == par1) { + return var3; + } + } + + return null; + } + + /** + * Adds a key and associated value to this map + */ + public void addKey(int par1, Object par2Obj) { + this.keySet.add(Integer.valueOf(par1)); + int var3 = computeHash(par1); + int var4 = getSlotIndex(var3, this.slots.length); + + for (IntHashMapEntry var5 = this.slots[var4]; var5 != null; var5 = var5.nextEntry) { + if (var5.hashEntry == par1) { + var5.valueEntry = par2Obj; + return; + } + } + + ++this.versionStamp; + this.insert(var3, par1, par2Obj, var4); + } + + /** + * Increases the number of hash slots + */ + private void grow(int par1) { + IntHashMapEntry[] var2 = this.slots; + int var3 = var2.length; + + if (var3 == 1073741824) { + this.threshold = Integer.MAX_VALUE; + } else { + IntHashMapEntry[] var4 = new IntHashMapEntry[par1]; + this.copyTo(var4); + this.slots = var4; + this.threshold = (int) ((float) par1 * this.growFactor); + } + } + + /** + * Copies the hash slots to a new array + */ + private void copyTo(IntHashMapEntry[] par1ArrayOfIntHashMapEntry) { + IntHashMapEntry[] var2 = this.slots; + int var3 = par1ArrayOfIntHashMapEntry.length; + + for (int var4 = 0; var4 < var2.length; ++var4) { + IntHashMapEntry var5 = var2[var4]; + + if (var5 != null) { + var2[var4] = null; + IntHashMapEntry var6; + + do { + var6 = var5.nextEntry; + int var7 = getSlotIndex(var5.slotHash, var3); + var5.nextEntry = par1ArrayOfIntHashMapEntry[var7]; + par1ArrayOfIntHashMapEntry[var7] = var5; + var5 = var6; + } while (var6 != null); + } + } + } + + /** + * Removes the specified object from the map and returns it + */ + public Object removeObject(int par1) { + this.keySet.remove(Integer.valueOf(par1)); + IntHashMapEntry var2 = this.removeEntry(par1); + return var2 == null ? null : var2.valueEntry; + } + + /** + * Removes the specified entry from the map and returns it + */ + final IntHashMapEntry removeEntry(int par1) { + int var2 = computeHash(par1); + int var3 = getSlotIndex(var2, this.slots.length); + IntHashMapEntry var4 = this.slots[var3]; + IntHashMapEntry var5; + IntHashMapEntry var6; + + for (var5 = var4; var5 != null; var5 = var6) { + var6 = var5.nextEntry; + + if (var5.hashEntry == par1) { + ++this.versionStamp; + --this.count; + + if (var4 == var5) { + this.slots[var3] = var6; + } else { + var4.nextEntry = var6; + } + + return var5; + } + + var4 = var5; + } + + return var5; + } + + /** + * Removes all entries from the map + */ + public void clearMap() { + ++this.versionStamp; + IntHashMapEntry[] var1 = this.slots; + + for (int var2 = 0; var2 < var1.length; ++var2) { + var1[var2] = null; + } + + this.count = 0; + } + + /** + * Adds an object to a slot + */ + private void insert(int par1, int par2, Object par3Obj, int par4) { + IntHashMapEntry var5 = this.slots[par4]; + this.slots[par4] = new IntHashMapEntry(par1, par2, par3Obj, var5); + + if (this.count++ >= this.threshold) { + this.grow(2 * this.slots.length); + } + } + + /** + * Return the Set of all keys stored in this MCHash object + */ + public Set getKeySet() { + return this.keySet; + } + + /** + * Returns the hash code for a key + */ + static int getHash(int par0) { + return computeHash(par0); + } +} diff --git a/src/main/java/net/minecraft/src/IntHashMapEntry.java b/src/main/java/net/minecraft/src/IntHashMapEntry.java index 30c75f6..9a4831d 100644 --- a/src/main/java/net/minecraft/src/IntHashMapEntry.java +++ b/src/main/java/net/minecraft/src/IntHashMapEntry.java @@ -1,77 +1,65 @@ -package net.minecraft.src; - -class IntHashMapEntry -{ - /** The hash code of this entry */ - final int hashEntry; - - /** The object stored in this entry */ - Object valueEntry; - - /** The next entry in this slot */ - IntHashMapEntry nextEntry; - - /** The id of the hash slot computed from the hash */ - final int slotHash; - - IntHashMapEntry(int par1, int par2, Object par3Obj, IntHashMapEntry par4IntHashMapEntry) - { - this.valueEntry = par3Obj; - this.nextEntry = par4IntHashMapEntry; - this.hashEntry = par2; - this.slotHash = par1; - } - - /** - * Returns the hash code for this entry - */ - public final int getHash() - { - return this.hashEntry; - } - - /** - * Returns the object stored in this entry - */ - public final Object getValue() - { - return this.valueEntry; - } - - public final boolean equals(Object par1Obj) - { - if (!(par1Obj instanceof IntHashMapEntry)) - { - return false; - } - else - { - IntHashMapEntry var2 = (IntHashMapEntry)par1Obj; - Integer var3 = Integer.valueOf(this.getHash()); - Integer var4 = Integer.valueOf(var2.getHash()); - - if (var3 == var4 || var3 != null && var3.equals(var4)) - { - Object var5 = this.getValue(); - Object var6 = var2.getValue(); - - if (var5 == var6 || var5 != null && var5.equals(var6)) - { - return true; - } - } - - return false; - } - } - - public final int hashCode() - { - return IntHashMap.getHash(this.hashEntry); - } - - public final String toString() - { - return this.getHash() + "=" + this.getValue(); - } -} +package net.minecraft.src; + +class IntHashMapEntry { + /** The hash code of this entry */ + final int hashEntry; + + /** The object stored in this entry */ + Object valueEntry; + + /** The next entry in this slot */ + IntHashMapEntry nextEntry; + + /** The id of the hash slot computed from the hash */ + final int slotHash; + + IntHashMapEntry(int par1, int par2, Object par3Obj, IntHashMapEntry par4IntHashMapEntry) { + this.valueEntry = par3Obj; + this.nextEntry = par4IntHashMapEntry; + this.hashEntry = par2; + this.slotHash = par1; + } + + /** + * Returns the hash code for this entry + */ + public final int getHash() { + return this.hashEntry; + } + + /** + * Returns the object stored in this entry + */ + public final Object getValue() { + return this.valueEntry; + } + + public final boolean equals(Object par1Obj) { + if (!(par1Obj instanceof IntHashMapEntry)) { + return false; + } else { + IntHashMapEntry var2 = (IntHashMapEntry) par1Obj; + Integer var3 = Integer.valueOf(this.getHash()); + Integer var4 = Integer.valueOf(var2.getHash()); + + if (var3 == var4 || var3 != null && var3.equals(var4)) { + Object var5 = this.getValue(); + Object var6 = var2.getValue(); + + if (var5 == var6 || var5 != null && var5.equals(var6)) { + return true; + } + } + + return false; + } + } + + public final int hashCode() { + return IntHashMap.getHash(this.hashEntry); + } + + public final String toString() { + return this.getHash() + "=" + this.getValue(); + } +} diff --git a/src/main/java/net/minecraft/src/InventoryEffectRenderer.java b/src/main/java/net/minecraft/src/InventoryEffectRenderer.java index 283ff3d..b261f23 100644 --- a/src/main/java/net/minecraft/src/InventoryEffectRenderer.java +++ b/src/main/java/net/minecraft/src/InventoryEffectRenderer.java @@ -66,7 +66,7 @@ public abstract class InventoryEffectRenderer extends GuiContainer PotionEffect var7 = (PotionEffect)var6.next(); Potion var8 = Potion.potionTypes[var7.getPotionID()]; GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(field_110408_a); + field_110408_a.bindTexture(); this.drawTexturedModalRect(var1, var2, 0, 166, 140, 32); if (var8.hasStatusIcon()) diff --git a/src/main/java/net/minecraft/src/ItemRenderer.java b/src/main/java/net/minecraft/src/ItemRenderer.java index 0874c4b..6b84aed 100644 --- a/src/main/java/net/minecraft/src/ItemRenderer.java +++ b/src/main/java/net/minecraft/src/ItemRenderer.java @@ -1,13 +1,14 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public class ItemRenderer { - private static final ResourceLocation RES_ITEM_GLINT = new ResourceLocation("textures/misc/enchanted_item_glint.png"); - private static final ResourceLocation RES_MAP_BACKGROUND = new ResourceLocation("textures/map/map_background.png"); - private static final ResourceLocation RES_UNDERWATER_OVERLAY = new ResourceLocation("textures/misc/underwater.png"); + private static final TextureLocation RES_ITEM_GLINT = new TextureLocation("textures/misc/enchanted_item_glint.png"); + private static final TextureLocation RES_MAP_BACKGROUND = new TextureLocation("textures/map/map_background.png"); + private static final TextureLocation RES_UNDERWATER_OVERLAY = new TextureLocation("textures/misc/underwater.png"); /** A reference to the Minecraft object. */ private Minecraft mc; @@ -42,7 +43,7 @@ public class ItemRenderer if (par2ItemStack.getItemSpriteNumber() == 0 && par2ItemStack.itemID < Block.blocksList.length && Block.blocksList[par2ItemStack.itemID] != null && RenderBlocks.renderItemIn3d(Block.blocksList[par2ItemStack.itemID].getRenderType())) { - var4.bindTexture(var4.getResourceLocation(0)); + var4.getResourceLocation(0).bindTexture(); this.renderBlocksInstance.renderBlockAsItem(Block.blocksList[par2ItemStack.itemID], par2ItemStack.getItemDamage(), 1.0F); } else @@ -55,7 +56,7 @@ public class ItemRenderer return; } - var4.bindTexture(var4.getResourceLocation(par2ItemStack.getItemSpriteNumber())); + var4.getResourceLocation(par2ItemStack.getItemSpriteNumber()).bindTexture(); Tessellator var6 = Tessellator.instance; float var7 = var5.getMinU(); float var8 = var5.getMaxU(); @@ -76,7 +77,7 @@ public class ItemRenderer { GL11.glDepthFunc(GL11.GL_EQUAL); GL11.glDisable(GL11.GL_LIGHTING); - var4.bindTexture(RES_ITEM_GLINT); + RES_ITEM_GLINT.bindTexture(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); float var14 = 0.76F; @@ -269,7 +270,7 @@ public class ItemRenderer GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(var21 * -85.0F, 0.0F, 0.0F, 1.0F); GL11.glEnable(GL12.GL_RESCALE_NORMAL); - this.mc.getTextureManager().bindTexture(var3.getLocationSkin()); + this.mc.getTextureManager().bindTexture(); for (var12 = 0; var12 < 2; ++var12) { @@ -527,7 +528,7 @@ public class ItemRenderer */ private void renderInsideOfBlock(float par1, Icon par2Icon) { - this.mc.getTextureManager().bindTexture(TextureMap.locationBlocksTexture); + TextureMap.locationBlocksTexture.bindTexture(); Tessellator var3 = Tessellator.instance; float var4 = 0.1F; GL11.glColor4f(var4, var4, var4, 0.5F); diff --git a/src/main/java/net/minecraft/src/MapItemRenderer.java b/src/main/java/net/minecraft/src/MapItemRenderer.java index fe395a5..14ac6d8 100644 --- a/src/main/java/net/minecraft/src/MapItemRenderer.java +++ b/src/main/java/net/minecraft/src/MapItemRenderer.java @@ -1,15 +1,17 @@ package net.minecraft.src; import java.util.Iterator; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; public class MapItemRenderer { - private static final ResourceLocation field_111277_a = new ResourceLocation("textures/map/map_icons.png"); + private static final TextureLocation field_111277_a = new TextureLocation("textures/map/map_icons.png"); private final DynamicTexture bufferedImage; private int[] intArray = new int[16384]; private GameSettings gameSettings; - private final ResourceLocation field_111276_e; + private final TextureLocation field_111276_e; public MapItemRenderer(GameSettings par1GameSettings, TextureManager par2TextureManager) { @@ -62,7 +64,7 @@ public class MapItemRenderer byte var16 = 0; Tessellator var17 = Tessellator.instance; float var18 = 0.0F; - par2TextureManager.bindTexture(this.field_111276_e); + this.field_111276_e.bindTexture(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glDisable(GL11.GL_ALPHA_TEST); @@ -74,7 +76,7 @@ public class MapItemRenderer var17.draw(); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glDisable(GL11.GL_BLEND); - par2TextureManager.bindTexture(field_111277_a); + field_111277_a.bindTexture(); int var19 = 0; for (Iterator var20 = par3MapData.playersVisibleOnMap.values().iterator(); var20.hasNext(); ++var19) diff --git a/src/main/java/net/minecraft/src/RenderGlobal.java b/src/main/java/net/minecraft/src/RenderGlobal.java index 81de61f..5053f5a 100644 --- a/src/main/java/net/minecraft/src/RenderGlobal.java +++ b/src/main/java/net/minecraft/src/RenderGlobal.java @@ -9,15 +9,17 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Random; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.ARBOcclusionQuery; import org.lwjgl.opengl.GL11; public class RenderGlobal implements IWorldAccess { - private static final ResourceLocation locationMoonPhasesPng = new ResourceLocation("textures/environment/moon_phases.png"); - private static final ResourceLocation locationSunPng = new ResourceLocation("textures/environment/sun.png"); - private static final ResourceLocation locationCloudsPng = new ResourceLocation("textures/environment/clouds.png"); - private static final ResourceLocation locationEndSkyPng = new ResourceLocation("textures/environment/end_sky.png"); + private static final TextureLocation locationMoonPhasesPng = new TextureLocation("textures/environment/moon_phases.png"); + private static final TextureLocation locationSunPng = new TextureLocation("textures/environment/sun.png"); + private static final TextureLocation locationCloudsPng = new TextureLocation("textures/environment/clouds.png"); + private static final TextureLocation locationEndSkyPng = new TextureLocation("textures/environment/end_sky.png"); public List tileEntities = new ArrayList(); private WorldClient theWorld; @@ -900,7 +902,7 @@ public class RenderGlobal implements IWorldAccess GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); RenderHelper.disableStandardItemLighting(); GL11.glDepthMask(false); - this.renderEngine.bindTexture(locationEndSkyPng); + locationEndSkyPng.bindTexture(); Tessellator var21 = Tessellator.instance; for (int var22 = 0; var22 < 6; ++var22) @@ -1036,7 +1038,7 @@ public class RenderGlobal implements IWorldAccess GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(this.theWorld.getCelestialAngle(par1) * 360.0F, 1.0F, 0.0F, 0.0F); var12 = 30.0F; - this.renderEngine.bindTexture(locationSunPng); + locationSunPng.bindTexture(); var23.startDrawingQuads(); var23.addVertexWithUV((double)(-var12), 100.0D, (double)(-var12), 0.0D, 0.0D); var23.addVertexWithUV((double)var12, 100.0D, (double)(-var12), 1.0D, 0.0D); @@ -1044,7 +1046,7 @@ public class RenderGlobal implements IWorldAccess var23.addVertexWithUV((double)(-var12), 100.0D, (double)var12, 0.0D, 1.0D); var23.draw(); var12 = 20.0F; - this.renderEngine.bindTexture(locationMoonPhasesPng); + locationMoonPhasesPng.bindTexture(); int var28 = this.theWorld.getMoonPhase(); int var29 = var28 % 4; int var30 = var28 / 4 % 2; @@ -1143,7 +1145,7 @@ public class RenderGlobal implements IWorldAccess byte var3 = 32; int var4 = 256 / var3; Tessellator var5 = Tessellator.instance; - this.renderEngine.bindTexture(locationCloudsPng); + locationCloudsPng.bindTexture(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); Vec3 var6 = this.theWorld.getCloudColour(par1); @@ -1221,7 +1223,7 @@ public class RenderGlobal implements IWorldAccess int var14 = MathHelper.floor_double(var10 / 2048.0D); var8 -= (double)(var13 * 2048); var10 -= (double)(var14 * 2048); - this.renderEngine.bindTexture(locationCloudsPng); + locationCloudsPng.bindTexture(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); Vec3 var15 = this.theWorld.getCloudColour(par1); @@ -1546,7 +1548,7 @@ public class RenderGlobal implements IWorldAccess if (!this.damagedBlocks.isEmpty()) { GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_SRC_COLOR); - this.renderEngine.bindTexture(TextureMap.locationBlocksTexture); + TextureMap.locationBlocksTexture.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.5F); GL11.glPushMatrix(); GL11.glDisable(GL11.GL_ALPHA_TEST); diff --git a/src/main/java/net/minecraft/src/RenderItem.java b/src/main/java/net/minecraft/src/RenderItem.java index 3b7bd56..7f015f2 100644 --- a/src/main/java/net/minecraft/src/RenderItem.java +++ b/src/main/java/net/minecraft/src/RenderItem.java @@ -1,12 +1,14 @@ package net.minecraft.src; import java.util.Random; + +import net.lax1dude.eaglercraft.TextureLocation; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public class RenderItem extends Render { - private static final ResourceLocation RES_ITEM_GLINT = new ResourceLocation("textures/misc/enchanted_item_glint.png"); + private static final TextureLocation RES_ITEM_GLINT = new TextureLocation("textures/misc/enchanted_item_glint.png"); private RenderBlocks itemRenderBlocks = new RenderBlocks(); /** The RNG used in RenderItem (for bobbing itemstacks on the ground) */ @@ -249,11 +251,11 @@ public class RenderItem extends Render if (var18.getItemSpriteNumber() == 0 && Block.blocksList[var18.itemID] != null) { - this.bindTexture(TextureMap.locationBlocksTexture); + TextureMap.locationBlocksTexture.bindTexture(); } else { - this.bindTexture(TextureMap.locationItemsTexture); + TextureMap.locationItemsTexture.bindTexture(); } GL11.glColor4f(par5, par6, par7, 1.0F); @@ -263,7 +265,7 @@ public class RenderItem extends Render { GL11.glDepthFunc(GL11.GL_EQUAL); GL11.glDisable(GL11.GL_LIGHTING); - this.renderManager.renderEngine.bindTexture(RES_ITEM_GLINT); + RES_ITEM_GLINT.bindTexture(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); float var21 = 0.76F; @@ -340,7 +342,7 @@ public class RenderItem extends Render if (par3ItemStack.getItemSpriteNumber() == 0 && RenderBlocks.renderItemIn3d(Block.blocksList[var6].getRenderType())) { - par2TextureManager.bindTexture(TextureMap.locationBlocksTexture); + TextureMap.locationBlocksTexture.bindTexture(); Block var16 = Block.blocksList[var6]; GL11.glPushMatrix(); GL11.glTranslatef((float)(par4 - 2), (float)(par5 + 3), -3.0F + this.zLevel); @@ -368,7 +370,7 @@ public class RenderItem extends Render else if (Item.itemsList[var6].requiresMultipleRenderPasses()) { GL11.glDisable(GL11.GL_LIGHTING); - par2TextureManager.bindTexture(TextureMap.locationItemsTexture); + TextureMap.locationItemsTexture.bindTexture(); for (int var9 = 0; var9 <= 1; ++var9) { @@ -391,8 +393,8 @@ public class RenderItem extends Render else { GL11.glDisable(GL11.GL_LIGHTING); - ResourceLocation var15 = par2TextureManager.getResourceLocation(par3ItemStack.getItemSpriteNumber()); - par2TextureManager.bindTexture(var15); + TextureLocation var15 = par2TextureManager.getResourceLocation(par3ItemStack.getItemSpriteNumber()); + var15.bindTexture(); if (var8 == null) { diff --git a/src/main/java/net/minecraft/src/ResourceLocation.java b/src/main/java/net/minecraft/src/ResourceLocation.java deleted file mode 100644 index 7a6701b..0000000 --- a/src/main/java/net/minecraft/src/ResourceLocation.java +++ /dev/null @@ -1,82 +0,0 @@ -package net.minecraft.src; - -import org.apache.commons.lang3.Validate; - -public class ResourceLocation -{ - private final String resourceDomain; - private final String resourcePath; - - public ResourceLocation(String par1Str, String par2Str) - { - Validate.notNull(par2Str); - - if (par1Str != null && par1Str.length() != 0) - { - this.resourceDomain = par1Str; - } - else - { - this.resourceDomain = "minecraft"; - } - - this.resourcePath = par2Str; - } - - public ResourceLocation(String par1Str) - { - String var2 = "minecraft"; - String var3 = par1Str; - int var4 = par1Str.indexOf(58); - - if (var4 >= 0) - { - var3 = par1Str.substring(var4 + 1, par1Str.length()); - - if (var4 > 1) - { - var2 = par1Str.substring(0, var4); - } - } - - this.resourceDomain = var2.toLowerCase(); - this.resourcePath = var3; - } - - public String getResourcePath() - { - return this.resourcePath; - } - - public String getResourceDomain() - { - return this.resourceDomain; - } - - public String toString() - { - return this.resourceDomain + ":" + this.resourcePath; - } - - public boolean equals(Object par1Obj) - { - if (this == par1Obj) - { - return true; - } - else if (!(par1Obj instanceof ResourceLocation)) - { - return false; - } - else - { - ResourceLocation var2 = (ResourceLocation)par1Obj; - return this.resourceDomain.equals(var2.resourceDomain) && this.resourcePath.equals(var2.resourcePath); - } - } - - public int hashCode() - { - return 31 * this.resourceDomain.hashCode() + this.resourcePath.hashCode(); - } -} diff --git a/src/main/java/net/minecraft/src/RunnableTitleScreen.java b/src/main/java/net/minecraft/src/RunnableTitleScreen.java deleted file mode 100644 index 31b749c..0000000 --- a/src/main/java/net/minecraft/src/RunnableTitleScreen.java +++ /dev/null @@ -1,60 +0,0 @@ -package net.minecraft.src; - -import java.io.IOException; - -class RunnableTitleScreen extends Thread -{ - final GuiMainMenu theMainMenu; - - RunnableTitleScreen(GuiMainMenu par1GuiMainMenu) - { - this.theMainMenu = par1GuiMainMenu; - } - - public void run() - { - McoClient var1 = new McoClient(GuiMainMenu.func_110348_a(this.theMainMenu).getSession()); - boolean var2 = false; - - for (int var3 = 0; var3 < 3; ++var3) - { - try - { - Boolean var4 = var1.func_96375_b(); - - if (var4.booleanValue()) - { - GuiMainMenu.func_130021_b(this.theMainMenu); - } - - GuiMainMenu.func_110349_a(var4.booleanValue()); - } - catch (ExceptionRetryCall var6) - { - var2 = true; - } - catch (ExceptionMcoService var7) - { - GuiMainMenu.func_130018_c(this.theMainMenu).getLogAgent().logSevere(var7.toString()); - } - catch (IOException var8) - { - GuiMainMenu.func_130019_d(this.theMainMenu).getLogAgent().logWarning("Realms: could not parse response"); - } - - if (!var2) - { - break; - } - - try - { - Thread.sleep(10000L); - } - catch (InterruptedException var5) - { - Thread.currentThread().interrupt(); - } - } - } -} diff --git a/src/main/java/net/minecraft/src/SelectionListBase.java b/src/main/java/net/minecraft/src/SelectionListBase.java index 769dbbf..5aead8f 100644 --- a/src/main/java/net/minecraft/src/SelectionListBase.java +++ b/src/main/java/net/minecraft/src/SelectionListBase.java @@ -185,7 +185,7 @@ public abstract class SelectionListBase GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_FOG); Tessellator var18 = Tessellator.instance; - this.mc.getTextureManager().bindTexture(Gui.optionsBackground); + Gui.optionsBackground.bindTexture(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); float var17 = 32.0F; var18.startDrawingQuads(); diff --git a/src/main/java/net/minecraft/src/StitchHolder.java b/src/main/java/net/minecraft/src/StitchHolder.java index 329c87d..0a972ac 100644 --- a/src/main/java/net/minecraft/src/StitchHolder.java +++ b/src/main/java/net/minecraft/src/StitchHolder.java @@ -1,95 +1,79 @@ -package net.minecraft.src; - -public class StitchHolder implements Comparable -{ - private final TextureAtlasSprite theTexture; - private final int width; - private final int height; - private boolean rotated; - private float scaleFactor = 1.0F; - - public StitchHolder(TextureAtlasSprite par1TextureAtlasSprite) - { - this.theTexture = par1TextureAtlasSprite; - this.width = par1TextureAtlasSprite.getIconWidth(); - this.height = par1TextureAtlasSprite.getIconHeight(); - this.rotated = this.ceil16(this.height) > this.ceil16(this.width); - } - - public TextureAtlasSprite getAtlasSprite() - { - return this.theTexture; - } - - public int getWidth() - { - return this.rotated ? this.ceil16((int)((float)this.height * this.scaleFactor)) : this.ceil16((int)((float)this.width * this.scaleFactor)); - } - - public int getHeight() - { - return this.rotated ? this.ceil16((int)((float)this.width * this.scaleFactor)) : this.ceil16((int)((float)this.height * this.scaleFactor)); - } - - public void rotate() - { - this.rotated = !this.rotated; - } - - public boolean isRotated() - { - return this.rotated; - } - - private int ceil16(int par1) - { - return (par1 >> 0) + ((par1 & 0) == 0 ? 0 : 1) << 0; - } - - public void setNewDimension(int par1) - { - if (this.width > par1 && this.height > par1) - { - this.scaleFactor = (float)par1 / (float)Math.min(this.width, this.height); - } - } - - public String toString() - { - return "Holder{width=" + this.width + ", height=" + this.height + '}'; - } - - /** - * See Comparable.compareTo. - */ - public int compareToStitchHolder(StitchHolder par1StitchHolder) - { - int var2; - - if (this.getHeight() == par1StitchHolder.getHeight()) - { - if (this.getWidth() == par1StitchHolder.getWidth()) - { - if (this.theTexture.getIconName() == null) - { - return par1StitchHolder.theTexture.getIconName() == null ? 0 : -1; - } - - return this.theTexture.getIconName().compareTo(par1StitchHolder.theTexture.getIconName()); - } - - var2 = this.getWidth() < par1StitchHolder.getWidth() ? 1 : -1; - } - else - { - var2 = this.getHeight() < par1StitchHolder.getHeight() ? 1 : -1; - } - - return var2; - } - - public int compareTo(Object par1Obj) - { - return this.compareToStitchHolder((StitchHolder)par1Obj); - } -} +package net.minecraft.src; + + + +public class StitchHolder implements Comparable { + private final Texture theTexture; + private final int width; + private final int height; + private boolean rotated; + private float scaleFactor = 1.0F; + + public StitchHolder(Texture par1Texture) { + this.theTexture = par1Texture; + this.width = par1Texture.getWidth(); + this.height = par1Texture.getHeight(); + this.rotated = this.ceil16(this.height) > this.ceil16(this.width); + } + + public Texture func_98150_a() { + return this.theTexture; + } + + public int getWidth() { + return this.rotated ? this.ceil16((int) ((float) this.height * this.scaleFactor)) : this.ceil16((int) ((float) this.width * this.scaleFactor)); + } + + public int getHeight() { + return this.rotated ? this.ceil16((int) ((float) this.width * this.scaleFactor)) : this.ceil16((int) ((float) this.height * this.scaleFactor)); + } + + public void rotate() { + this.rotated = !this.rotated; + } + + public boolean isRotated() { + return this.rotated; + } + + private int ceil16(int par1) { + return (par1 >> 0) + ((par1 & 0) == 0 ? 0 : 1) << 0; + } + + public void setNewDimension(int par1) { + if (this.width > par1 && this.height > par1) { + this.scaleFactor = (float) par1 / (float) Math.min(this.width, this.height); + } + } + + public String toString() { + return "TextureHolder{width=" + this.width + ", height=" + this.height + '}'; + } + + /** + * See Comparable.compareTo. + */ + public int compareToStitchHolder(StitchHolder par1StitchHolder) { + int var2; + + if (this.getHeight() == par1StitchHolder.getHeight()) { + if (this.getWidth() == par1StitchHolder.getWidth()) { + if (this.theTexture.getTextureName() == null) { + return par1StitchHolder.theTexture.getTextureName() == null ? 0 : -1; + } + + return this.theTexture.getTextureName().compareTo(par1StitchHolder.theTexture.getTextureName()); + } + + var2 = this.getWidth() < par1StitchHolder.getWidth() ? 1 : -1; + } else { + var2 = this.getHeight() < par1StitchHolder.getHeight() ? 1 : -1; + } + + return var2; + } + + public int compareTo(Object par1Obj) { + return this.compareToStitchHolder((StitchHolder) par1Obj); + } +} diff --git a/src/main/java/net/minecraft/src/StitchSlot.java b/src/main/java/net/minecraft/src/StitchSlot.java index 230b8f2..11b1d75 100644 --- a/src/main/java/net/minecraft/src/StitchSlot.java +++ b/src/main/java/net/minecraft/src/StitchSlot.java @@ -1,141 +1,110 @@ -package net.minecraft.src; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -public class StitchSlot -{ - private final int originX; - private final int originY; - private final int width; - private final int height; - private List subSlots; - private StitchHolder holder; - - public StitchSlot(int par1, int par2, int par3, int par4) - { - this.originX = par1; - this.originY = par2; - this.width = par3; - this.height = par4; - } - - public StitchHolder getStitchHolder() - { - return this.holder; - } - - public int getOriginX() - { - return this.originX; - } - - public int getOriginY() - { - return this.originY; - } - - public boolean addSlot(StitchHolder par1StitchHolder) - { - if (this.holder != null) - { - return false; - } - else - { - int var2 = par1StitchHolder.getWidth(); - int var3 = par1StitchHolder.getHeight(); - - if (var2 <= this.width && var3 <= this.height) - { - if (var2 == this.width && var3 == this.height) - { - this.holder = par1StitchHolder; - return true; - } - else - { - if (this.subSlots == null) - { - this.subSlots = new ArrayList(1); - this.subSlots.add(new StitchSlot(this.originX, this.originY, var2, var3)); - int var4 = this.width - var2; - int var5 = this.height - var3; - - if (var5 > 0 && var4 > 0) - { - int var6 = Math.max(this.height, var4); - int var7 = Math.max(this.width, var5); - - if (var6 >= var7) - { - this.subSlots.add(new StitchSlot(this.originX, this.originY + var3, var2, var5)); - this.subSlots.add(new StitchSlot(this.originX + var2, this.originY, var4, this.height)); - } - else - { - this.subSlots.add(new StitchSlot(this.originX + var2, this.originY, var4, var3)); - this.subSlots.add(new StitchSlot(this.originX, this.originY + var3, this.width, var5)); - } - } - else if (var4 == 0) - { - this.subSlots.add(new StitchSlot(this.originX, this.originY + var3, var2, var5)); - } - else if (var5 == 0) - { - this.subSlots.add(new StitchSlot(this.originX + var2, this.originY, var4, var3)); - } - } - - Iterator var8 = this.subSlots.iterator(); - StitchSlot var9; - - do - { - if (!var8.hasNext()) - { - return false; - } - - var9 = (StitchSlot)var8.next(); - } - while (!var9.addSlot(par1StitchHolder)); - - return true; - } - } - else - { - return false; - } - } - } - - /** - * Gets the slot and all its subslots - */ - public void getAllStitchSlots(List par1List) - { - if (this.holder != null) - { - par1List.add(this); - } - else if (this.subSlots != null) - { - Iterator var2 = this.subSlots.iterator(); - - while (var2.hasNext()) - { - StitchSlot var3 = (StitchSlot)var2.next(); - var3.getAllStitchSlots(par1List); - } - } - } - - public String toString() - { - return "Slot{originX=" + this.originX + ", originY=" + this.originY + ", width=" + this.width + ", height=" + this.height + ", texture=" + this.holder + ", subSlots=" + this.subSlots + '}'; - } -} +package net.minecraft.src; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + + + +public class StitchSlot { + private final int originX; + private final int originY; + private final int width; + private final int height; + private List subSlots; + private StitchHolder holder; + + public StitchSlot(int par1, int par2, int par3, int par4) { + this.originX = par1; + this.originY = par2; + this.width = par3; + this.height = par4; + } + + public StitchHolder getStitchHolder() { + return this.holder; + } + + public int getOriginX() { + return this.originX; + } + + public int getOriginY() { + return this.originY; + } + + public boolean func_94182_a(StitchHolder par1StitchHolder) { + if (this.holder != null) { + return false; + } else { + int var2 = par1StitchHolder.getWidth(); + int var3 = par1StitchHolder.getHeight(); + + if (var2 <= this.width && var3 <= this.height) { + if (var2 == this.width && var3 == this.height) { + this.holder = par1StitchHolder; + return true; + } else { + if (this.subSlots == null) { + this.subSlots = new ArrayList(1); + this.subSlots.add(new StitchSlot(this.originX, this.originY, var2, var3)); + int var4 = this.width - var2; + int var5 = this.height - var3; + + if (var5 > 0 && var4 > 0) { + int var6 = Math.max(this.height, var4); + int var7 = Math.max(this.width, var5); + + if (var6 >= var7) { + this.subSlots.add(new StitchSlot(this.originX, this.originY + var3, var2, var5)); + this.subSlots.add(new StitchSlot(this.originX + var2, this.originY, var4, this.height)); + } else { + this.subSlots.add(new StitchSlot(this.originX + var2, this.originY, var4, var3)); + this.subSlots.add(new StitchSlot(this.originX, this.originY + var3, this.width, var5)); + } + } else if (var4 == 0) { + this.subSlots.add(new StitchSlot(this.originX, this.originY + var3, var2, var5)); + } else if (var5 == 0) { + this.subSlots.add(new StitchSlot(this.originX + var2, this.originY, var4, var3)); + } + } + + Iterator var8 = this.subSlots.iterator(); + StitchSlot var9; + + do { + if (!var8.hasNext()) { + return false; + } + + var9 = (StitchSlot) var8.next(); + } while (!var9.func_94182_a(par1StitchHolder)); + + return true; + } + } else { + return false; + } + } + } + + /** + * Gets the slot and all its subslots + */ + public void getAllStitchSlots(List par1List) { + if (this.holder != null) { + par1List.add(this); + } else if (this.subSlots != null) { + Iterator var2 = this.subSlots.iterator(); + + while (var2.hasNext()) { + StitchSlot var3 = (StitchSlot) var2.next(); + var3.getAllStitchSlots(par1List); + } + } + } + + public String toString() { + return "Slot{originX=" + this.originX + ", originY=" + this.originY + ", width=" + this.width + ", height=" + this.height + ", texture=" + this.holder + ", subSlots=" + this.subSlots + '}'; + } +} diff --git a/src/main/java/net/minecraft/src/Stitcher.java b/src/main/java/net/minecraft/src/Stitcher.java index 9c6c66f..db6c79a 100644 --- a/src/main/java/net/minecraft/src/Stitcher.java +++ b/src/main/java/net/minecraft/src/Stitcher.java @@ -1,233 +1,198 @@ -package net.minecraft.src; - -import com.google.common.collect.Lists; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -public class Stitcher -{ - private final Set setStitchHolders; - private final List stitchSlots; - private int currentWidth; - private int currentHeight; - private final int maxWidth; - private final int maxHeight; - private final boolean forcePowerOf2; - - /** Max size (width or height) of a single tile */ - private final int maxTileDimension; - - public Stitcher(int par1, int par2, boolean par3) - { - this(par1, par2, par3, 0); - } - - public Stitcher(int par1, int par2, boolean par3, int par4) - { - this.setStitchHolders = new HashSet(256); - this.stitchSlots = new ArrayList(256); - this.maxWidth = par1; - this.maxHeight = par2; - this.forcePowerOf2 = par3; - this.maxTileDimension = par4; - } - - public int getCurrentWidth() - { - return this.currentWidth; - } - - public int getCurrentHeight() - { - return this.currentHeight; - } - - public void addSprite(TextureAtlasSprite par1TextureAtlasSprite) - { - StitchHolder var2 = new StitchHolder(par1TextureAtlasSprite); - - if (this.maxTileDimension > 0) - { - var2.setNewDimension(this.maxTileDimension); - } - - this.setStitchHolders.add(var2); - } - - public void doStitch() - { - StitchHolder[] var1 = (StitchHolder[])this.setStitchHolders.toArray(new StitchHolder[this.setStitchHolders.size()]); - Arrays.sort(var1); - StitchHolder[] var2 = var1; - int var3 = var1.length; - - for (int var4 = 0; var4 < var3; ++var4) - { - StitchHolder var5 = var2[var4]; - - if (!this.allocateSlot(var5)) - { - String var6 = String.format("Unable to fit: %s - size: %dx%d - Maybe try a lowerresolution texturepack?", new Object[] {var5.getAtlasSprite().getIconName(), Integer.valueOf(var5.getAtlasSprite().getIconWidth()), Integer.valueOf(var5.getAtlasSprite().getIconHeight())}); - throw new StitcherException(var5, var6); - } - } - - if (this.forcePowerOf2) - { - this.currentWidth = this.getCeilPowerOf2(this.currentWidth); - this.currentHeight = this.getCeilPowerOf2(this.currentHeight); - } - } - - public List getStichSlots() - { - ArrayList var1 = Lists.newArrayList(); - Iterator var2 = this.stitchSlots.iterator(); - - while (var2.hasNext()) - { - StitchSlot var3 = (StitchSlot)var2.next(); - var3.getAllStitchSlots(var1); - } - - ArrayList var7 = Lists.newArrayList(); - Iterator var8 = var1.iterator(); - - while (var8.hasNext()) - { - StitchSlot var4 = (StitchSlot)var8.next(); - StitchHolder var5 = var4.getStitchHolder(); - TextureAtlasSprite var6 = var5.getAtlasSprite(); - var6.initSprite(this.currentWidth, this.currentHeight, var4.getOriginX(), var4.getOriginY(), var5.isRotated()); - var7.add(var6); - } - - return var7; - } - - /** - * Returns power of 2 >= the specified value - */ - private int getCeilPowerOf2(int par1) - { - int var2 = par1 - 1; - var2 |= var2 >> 1; - var2 |= var2 >> 2; - var2 |= var2 >> 4; - var2 |= var2 >> 8; - var2 |= var2 >> 16; - return var2 + 1; - } - - /** - * Attempts to find space for specified tile - */ - private boolean allocateSlot(StitchHolder par1StitchHolder) - { - for (int var2 = 0; var2 < this.stitchSlots.size(); ++var2) - { - if (((StitchSlot)this.stitchSlots.get(var2)).addSlot(par1StitchHolder)) - { - return true; - } - - par1StitchHolder.rotate(); - - if (((StitchSlot)this.stitchSlots.get(var2)).addSlot(par1StitchHolder)) - { - return true; - } - - par1StitchHolder.rotate(); - } - - return this.expandAndAllocateSlot(par1StitchHolder); - } - - /** - * Expand stitched texture in order to make space for specified tile - */ - private boolean expandAndAllocateSlot(StitchHolder par1StitchHolder) - { - int var2 = Math.min(par1StitchHolder.getHeight(), par1StitchHolder.getWidth()); - boolean var3 = this.currentWidth == 0 && this.currentHeight == 0; - boolean var4; - - if (this.forcePowerOf2) - { - int var5 = this.getCeilPowerOf2(this.currentWidth); - int var6 = this.getCeilPowerOf2(this.currentHeight); - int var7 = this.getCeilPowerOf2(this.currentWidth + var2); - int var8 = this.getCeilPowerOf2(this.currentHeight + var2); - boolean var9 = var7 <= this.maxWidth; - boolean var10 = var8 <= this.maxHeight; - - if (!var9 && !var10) - { - return false; - } - - int var11 = Math.max(par1StitchHolder.getHeight(), par1StitchHolder.getWidth()); - - if (var3 && !var9 && this.getCeilPowerOf2(this.currentHeight + var11) > this.maxHeight) - { - return false; - } - - boolean var12 = var5 != var7; - boolean var13 = var6 != var8; - - if (var12 ^ var13) - { - var4 = var12 && var9; - } - else - { - var4 = var9 && var5 <= var6; - } - } - else - { - boolean var14 = this.currentWidth + var2 <= this.maxWidth; - boolean var16 = this.currentHeight + var2 <= this.maxHeight; - - if (!var14 && !var16) - { - return false; - } - - var4 = (var3 || this.currentWidth <= this.currentHeight) && var14; - } - - StitchSlot var15; - - if (var4) - { - if (par1StitchHolder.getWidth() > par1StitchHolder.getHeight()) - { - par1StitchHolder.rotate(); - } - - if (this.currentHeight == 0) - { - this.currentHeight = par1StitchHolder.getHeight(); - } - - var15 = new StitchSlot(this.currentWidth, 0, par1StitchHolder.getWidth(), this.currentHeight); - this.currentWidth += par1StitchHolder.getWidth(); - } - else - { - var15 = new StitchSlot(0, this.currentHeight, this.currentWidth, par1StitchHolder.getHeight()); - this.currentHeight += par1StitchHolder.getHeight(); - } - - var15.addSlot(par1StitchHolder); - this.stitchSlots.add(var15); - return true; - } -} +package net.minecraft.src; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import net.lax1dude.eaglercraft.EaglerAdapter; + + +public class Stitcher { + private final Set setStitchHolders; + private final List stitchSlots; + private int currentWidth; + private int currentHeight; + private final int maxWidth; + private final int maxHeight; + private final boolean forcePowerOf2; + + /** Max size (width or height) of a single tile */ + private final int maxTileDimension; + private Texture atlasTexture; + private final String textureName; + + public Stitcher(String par1Str, int par2, int par3, boolean par4) { + this(par1Str, par2, par3, par4, 0); + } + + public Stitcher(String par1, int par2, int par3, boolean par4, int par5) { + this.setStitchHolders = new HashSet(256); + this.stitchSlots = new ArrayList(256); + this.currentWidth = 0; + this.currentHeight = 0; + this.textureName = par1; + this.maxWidth = par2; + this.maxHeight = par3; + this.forcePowerOf2 = par4; + this.maxTileDimension = par5; + } + + public void addStitchHolder(StitchHolder par1StitchHolder) { + if (this.maxTileDimension > 0) { + par1StitchHolder.setNewDimension(this.maxTileDimension); + } + + this.setStitchHolders.add(par1StitchHolder); + } + + public Texture getTexture() { + if (this.forcePowerOf2) { + this.currentWidth = this.getCeilPowerOf2(this.currentWidth); + this.currentHeight = this.getCeilPowerOf2(this.currentHeight); + } + + this.atlasTexture = TextureManager.instance().createEmptyTexture(this.textureName, 1, this.currentWidth, this.currentHeight, EaglerAdapter.GL_CLAMP); + this.atlasTexture.fillRect(this.atlasTexture.getTextureRect(), -65536); + List var1 = this.getStichSlots(); + + for (int var2 = 0; var2 < var1.size(); ++var2) { + StitchSlot var3 = (StitchSlot) var1.get(var2); + StitchHolder var4 = var3.getStitchHolder(); + this.atlasTexture.copyFrom(var3.getOriginX(), var3.getOriginY(), var4.func_98150_a(), var4.isRotated()); + } + + TextureManager.instance().registerTexture(this.textureName, this.atlasTexture); + return this.atlasTexture; + } + + public void doStitch() { + StitchHolder[] var1 = (StitchHolder[]) this.setStitchHolders.toArray(new StitchHolder[this.setStitchHolders.size()]); + Arrays.sort(var1); + this.atlasTexture = null; + + for (int var2 = 0; var2 < var1.length; ++var2) { + StitchHolder var3 = var1[var2]; + + if (!this.allocateSlot(var3)) { + throw new StitcherException(var3); + } + } + } + + public List getStichSlots() { + ArrayList var1 = new ArrayList(); + Iterator var2 = this.stitchSlots.iterator(); + + while (var2.hasNext()) { + StitchSlot var3 = (StitchSlot) var2.next(); + var3.getAllStitchSlots(var1); + } + + return var1; + } + + /** + * Returns power of 2 >= the specified value + */ + private int getCeilPowerOf2(int par1) { + int var2 = par1 - 1; + var2 |= var2 >> 1; + var2 |= var2 >> 2; + var2 |= var2 >> 4; + var2 |= var2 >> 8; + var2 |= var2 >> 16; + return var2 + 1; + } + + /** + * Attempts to find space for specified tile + */ + private boolean allocateSlot(StitchHolder par1StitchHolder) { + for (int var2 = 0; var2 < this.stitchSlots.size(); ++var2) { + if (((StitchSlot) this.stitchSlots.get(var2)).func_94182_a(par1StitchHolder)) { + return true; + } + + par1StitchHolder.rotate(); + + if (((StitchSlot) this.stitchSlots.get(var2)).func_94182_a(par1StitchHolder)) { + return true; + } + + par1StitchHolder.rotate(); + } + + return this.expandAndAllocateSlot(par1StitchHolder); + } + + /** + * Expand stitched texture in order to make space for specified tile + */ + private boolean expandAndAllocateSlot(StitchHolder par1StitchHolder) { + int var2 = Math.min(par1StitchHolder.getHeight(), par1StitchHolder.getWidth()); + boolean var3 = this.currentWidth == 0 && this.currentHeight == 0; + boolean var4; + + if (this.forcePowerOf2) { + int var5 = this.getCeilPowerOf2(this.currentWidth); + int var6 = this.getCeilPowerOf2(this.currentHeight); + int var7 = this.getCeilPowerOf2(this.currentWidth + var2); + int var8 = this.getCeilPowerOf2(this.currentHeight + var2); + boolean var9 = var7 <= this.maxWidth; + boolean var10 = var8 <= this.maxHeight; + + if (!var9 && !var10) { + return false; + } + + int var11 = Math.max(par1StitchHolder.getHeight(), par1StitchHolder.getWidth()); + + if (var3 && !var9 && this.getCeilPowerOf2(this.currentHeight + var11) > this.maxHeight) { + return false; + } + + boolean var12 = var5 != var7; + boolean var13 = var6 != var8; + + if (var12 ^ var13) { + var4 = var12 && var9; + } else { + var4 = var9 && var5 <= var6; + } + } else { + boolean var14 = this.currentWidth + var2 <= this.maxWidth; + boolean var16 = this.currentHeight + var2 <= this.maxHeight; + + if (!var14 && !var16) { + return false; + } + + var4 = (var3 || this.currentWidth <= this.currentHeight) && var14; + } + + StitchSlot var15; + + if (var4) { + if (par1StitchHolder.getWidth() > par1StitchHolder.getHeight()) { + par1StitchHolder.rotate(); + } + + if (this.currentHeight == 0) { + this.currentHeight = par1StitchHolder.getHeight(); + } + + var15 = new StitchSlot(this.currentWidth, 0, par1StitchHolder.getWidth(), this.currentHeight); + this.currentWidth += par1StitchHolder.getWidth(); + } else { + var15 = new StitchSlot(0, this.currentHeight, this.currentWidth, par1StitchHolder.getHeight()); + this.currentHeight += par1StitchHolder.getHeight(); + } + + var15.func_94182_a(par1StitchHolder); + this.stitchSlots.add(var15); + return true; + } +} diff --git a/src/main/java/net/minecraft/src/StitcherException.java b/src/main/java/net/minecraft/src/StitcherException.java index c9a17f2..5f91777 100644 --- a/src/main/java/net/minecraft/src/StitcherException.java +++ b/src/main/java/net/minecraft/src/StitcherException.java @@ -1,12 +1,9 @@ -package net.minecraft.src; - -public class StitcherException extends RuntimeException -{ - private final StitchHolder field_98149_a; - - public StitcherException(StitchHolder par1StitchHolder, String par2Str) - { - super(par2Str); - this.field_98149_a = par1StitchHolder; - } -} +package net.minecraft.src; + +public class StitcherException extends RuntimeException { + private final StitchHolder field_98149_a; + + public StitcherException(StitchHolder par1StitchHolder) { + this.field_98149_a = par1StitchHolder; + } +} diff --git a/src/main/java/net/minecraft/src/TextureManager.java b/src/main/java/net/minecraft/src/TextureManager.java index 03c3aac..ea68545 100644 --- a/src/main/java/net/minecraft/src/TextureManager.java +++ b/src/main/java/net/minecraft/src/TextureManager.java @@ -1,151 +1,107 @@ -package net.minecraft.src; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -public class TextureManager implements Tickable, ResourceManagerReloadListener -{ - private static TextureManager instance; - private int nextTextureID = 0; - private final Map mapTextureObjects = Maps.newHashMap(); - private final Map mapResourceLocations = Maps.newHashMap(); - private final List listTickables = Lists.newArrayList(); - private final Map mapTextureCounters = Maps.newHashMap(); - private ResourceManager theResourceManager; - - public TextureManager(ResourceManager par1ResourceManager) - { - this.theResourceManager = par1ResourceManager; - } - - public static TextureManager instance() { - return instance; - } - - public int getNextTextureId() { - return this.nextTextureID++; - } - - public void bindTexture(ResourceLocation par1ResourceLocation) - { - Object var2 = (TextureObject)this.mapTextureObjects.get(par1ResourceLocation); - - if (var2 == null) - { - var2 = new SimpleTexture(par1ResourceLocation); - this.loadTexture(par1ResourceLocation, (TextureObject)var2); - } - - TextureUtil.bindTexture(((TextureObject)var2).getGlTextureId()); - } - - public ResourceLocation getResourceLocation(int par1) - { - return (ResourceLocation)this.mapResourceLocations.get(Integer.valueOf(par1)); - } - - public boolean loadTextureMap(ResourceLocation par1ResourceLocation, TextureMap par2TextureMap) - { - if (this.loadTickableTexture(par1ResourceLocation, par2TextureMap)) - { - this.mapResourceLocations.put(Integer.valueOf(par2TextureMap.getTextureType()), par1ResourceLocation); - return true; - } - else - { - return false; - } - } - - public boolean loadTickableTexture(ResourceLocation par1ResourceLocation, TickableTextureObject par2TickableTextureObject) - { - if (this.loadTexture(par1ResourceLocation, par2TickableTextureObject)) - { - this.listTickables.add(par2TickableTextureObject); - return true; - } - else - { - return false; - } - } - - public boolean loadTexture(ResourceLocation par1ResourceLocation, TextureObject par2TextureObject) - { - boolean var3 = true; - - try - { - ((TextureObject)par2TextureObject).loadTexture(this.theResourceManager); - } - catch (IOException var8) - { - Minecraft.getMinecraft().getLogAgent().logWarningException("Failed to load texture: " + par1ResourceLocation, var8); - par2TextureObject = TextureUtil.missingTexture; - this.mapTextureObjects.put(par1ResourceLocation, par2TextureObject); - var3 = false; - } - catch (Throwable var9) - { - CrashReport var5 = CrashReport.makeCrashReport(var9, "Registering texture"); - CrashReportCategory var6 = var5.makeCategory("Resource location being registered"); - var6.addCrashSection("Resource location", par1ResourceLocation); - var6.addCrashSectionCallable("Texture object class", new TextureManagerINNER1(this, (TextureObject)par2TextureObject)); - throw new ReportedException(var5); - } - - this.mapTextureObjects.put(par1ResourceLocation, par2TextureObject); - return var3; - } - - public TextureObject getTexture(ResourceLocation par1ResourceLocation) - { - return (TextureObject)this.mapTextureObjects.get(par1ResourceLocation); - } - - public ResourceLocation getDynamicTextureLocation(String par1Str, DynamicTexture par2DynamicTexture) - { - Integer var3 = (Integer)this.mapTextureCounters.get(par1Str); - - if (var3 == null) - { - var3 = Integer.valueOf(1); - } - else - { - var3 = Integer.valueOf(var3.intValue() + 1); - } - - this.mapTextureCounters.put(par1Str, var3); - ResourceLocation var4 = new ResourceLocation(String.format("dynamic/%s_%d", new Object[] {par1Str, var3})); - this.loadTexture(var4, par2DynamicTexture); - return var4; - } - - public void tick() - { - Iterator var1 = this.listTickables.iterator(); - - while (var1.hasNext()) - { - Tickable var2 = (Tickable)var1.next(); - var2.tick(); - } - } - - public void onResourceManagerReload(ResourceManager par1ResourceManager) - { - Iterator var2 = this.mapTextureObjects.entrySet().iterator(); - - while (var2.hasNext()) - { - Entry var3 = (Entry)var2.next(); - this.loadTexture((ResourceLocation)var3.getKey(), (TextureObject)var3.getValue()); - } - } -} +package net.minecraft.src; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.EaglerImage; +import net.minecraft.src.Minecraft; + +public class TextureManager { + private static TextureManager instance; + private int nextTextureID = 0; + private final HashMap texturesMap = new HashMap(); + private final HashMap mapNameToId = new HashMap(); + + public static void init() { + instance = new TextureManager(); + } + + public static TextureManager instance() { + return instance; + } + + public int getNextTextureId() { + return this.nextTextureID++; + } + + public void registerTexture(String par1Str, Texture par2Texture) { + this.mapNameToId.put(par1Str, Integer.valueOf(par2Texture.getTextureId())); + + if (!this.texturesMap.containsKey(Integer.valueOf(par2Texture.getTextureId()))) { + this.texturesMap.put(Integer.valueOf(par2Texture.getTextureId()), par2Texture); + } + } + + public void registerTexture(Texture par1Texture) { + if (this.texturesMap.containsValue(par1Texture)) { + System.out.println("TextureManager.registerTexture called, but this texture has already been registered. ignoring."); + } else { + this.texturesMap.put(Integer.valueOf(par1Texture.getTextureId()), par1Texture); + } + } + + public Stitcher createStitcher(String par1Str) { + int var2 = Minecraft.getGLMaximumTextureSize(); + return new Stitcher(par1Str, var2, var2, true); + } + + public List createTexture(String par1Str) { + ArrayList var2 = new ArrayList(); + ITexturePack var3 = Minecraft.getMinecraft().texturePackList.getSelectedTexturePack(); + byte[] b = var3.getResourceAsBytes("/" + par1Str); + if(b != null) { + //EaglerImage var9 = EaglerImage.loadImage(b); + EaglerImage var9 = EaglerAdapter.loadPNG(b); + int var10 = var9.w; + int var11 = var9.h; + String var12 = this.getBasename(par1Str); + + if (this.hasAnimationTxt(par1Str, var3)) { + int var13 = var10; + int var15 = var11 / var10; + + for (int var16 = 0; var16 < var15; ++var16) { + Texture var17 = this.makeTexture(var12, 2, var13, var13, EaglerAdapter.GL_CLAMP, EaglerAdapter.GL_RGBA, EaglerAdapter.GL_NEAREST, EaglerAdapter.GL_NEAREST, false, var9.getSubImage(0, var13 * var16, var13, var13)); + var2.add(var17); + } + } else if (var10 == var11) { + var2.add(this.makeTexture(var12, 2, var10, var10, EaglerAdapter.GL_CLAMP, EaglerAdapter.GL_RGBA, EaglerAdapter.GL_NEAREST, EaglerAdapter.GL_NEAREST, false, var9)); + } else { + System.out.println("TextureManager.createTexture: Skipping " + par1Str + " because of broken aspect ratio and not animation"); + } + } + + return var2; + } + + /** + * Strips directory and file extension from the specified path, returning only + * the filename + */ + private String getBasename(String par1Str) { + String name = par1Str.substring(par1Str.lastIndexOf('/') + 1); + return name.substring(0, name.lastIndexOf(46)); + } + + /** + * Returns true if specified texture pack contains animation data for the + * specified texture file + */ + private boolean hasAnimationTxt(String par1Str, ITexturePack par2ITexturePack) { + String var3 = "/" + par1Str.substring(0, par1Str.lastIndexOf(46)) + ".txt"; + boolean var4 = par2ITexturePack.func_98138_b("/" + par1Str, false); + return Minecraft.getMinecraft().texturePackList.getSelectedTexturePack().func_98138_b(var3, !var4); + } + + public Texture makeTexture(String par1Str, int par2, int par3, int par4, int par5, int par6, int par7, int par8, boolean par9, EaglerImage par10BufferedImage) { + Texture var11 = new Texture(par1Str, par2, par3, par4, par5, par6, par7, par8, par10BufferedImage); + this.registerTexture(var11); + return var11; + } + + public Texture createEmptyTexture(String par1Str, int par2, int par3, int par4, int par5) { + return this.makeTexture(par1Str, par2, par3, par4, EaglerAdapter.GL_CLAMP, par5, EaglerAdapter.GL_NEAREST, EaglerAdapter.GL_NEAREST, false, (EaglerImage) null); + } +} diff --git a/src/main/java/net/minecraft/src/TextureMap.java b/src/main/java/net/minecraft/src/TextureMap.java index 3f2691b..147d291 100644 --- a/src/main/java/net/minecraft/src/TextureMap.java +++ b/src/main/java/net/minecraft/src/TextureMap.java @@ -1,242 +1,188 @@ -package net.minecraft.src; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import java.io.IOException; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -public class TextureMap extends AbstractTexture implements TickableTextureObject, IconRegister -{ - public static final ResourceLocation locationBlocksTexture = new ResourceLocation("textures/atlas/blocks.png"); - public static final ResourceLocation locationItemsTexture = new ResourceLocation("textures/atlas/items.png"); - private final List listAnimatedSprites = Lists.newArrayList(); - private final Map mapRegisteredSprites = Maps.newHashMap(); - private final Map mapUploadedSprites = Maps.newHashMap(); - - /** 0 = terrain.png, 1 = items.png */ - private final int textureType; - private final String basePath; - private final TextureAtlasSprite missingImage = new TextureAtlasSprite("missingno"); - - public TextureMap(int par1, String par2Str) - { - this.textureType = par1; - this.basePath = par2Str; - this.registerIcons(); - } - - private void initMissingImage() - { - this.missingImage.setFramesTextureData(Lists.newArrayList(new int[][] {TextureUtil.missingTextureData})); - this.missingImage.setIconWidth(16); - this.missingImage.setIconHeight(16); - } - - public void loadTexture(ResourceManager par1ResourceManager) throws IOException - { - this.initMissingImage(); - this.loadTextureAtlas(par1ResourceManager); - } - - public void loadTextureAtlas(ResourceManager par1ResourceManager) - { - int var2 = Minecraft.getGLMaximumTextureSize(); - Stitcher var3 = new Stitcher(var2, var2, true); - this.mapUploadedSprites.clear(); - this.listAnimatedSprites.clear(); - Iterator var4 = this.mapRegisteredSprites.entrySet().iterator(); - - while (var4.hasNext()) - { - Entry var5 = (Entry)var4.next(); - ResourceLocation var6 = new ResourceLocation((String)var5.getKey()); - TextureAtlasSprite var7 = (TextureAtlasSprite)var5.getValue(); - ResourceLocation var8 = new ResourceLocation(var6.getResourceDomain(), String.format("%s/%s%s", new Object[] {this.basePath, var6.getResourcePath(), ".png"})); - - try - { - var7.loadSprite(par1ResourceManager.getResource(var8)); - } - catch (RuntimeException var13) - { - Minecraft.getMinecraft().getLogAgent().logSevere(String.format("Unable to parse animation metadata from %s: %s", new Object[] {var8, var13.getMessage()})); - continue; - } - catch (IOException var14) - { - Minecraft.getMinecraft().getLogAgent().logSevere("Using missing texture, unable to load: " + var8); - continue; - } - - var3.addSprite(var7); - } - - var3.addSprite(this.missingImage); - - try - { - var3.doStitch(); - } - catch (StitcherException var12) - { - throw var12; - } - - TextureUtil.allocateTexture(this.getGlTextureId(), var3.getCurrentWidth(), var3.getCurrentHeight()); - HashMap var15 = Maps.newHashMap(this.mapRegisteredSprites); - Iterator var16 = var3.getStichSlots().iterator(); - TextureAtlasSprite var17; - - while (var16.hasNext()) - { - var17 = (TextureAtlasSprite)var16.next(); - String var18 = var17.getIconName(); - var15.remove(var18); - this.mapUploadedSprites.put(var18, var17); - - try - { - TextureUtil.uploadTextureSub(var17.getFrameTextureData(0), var17.getIconWidth(), var17.getIconHeight(), var17.getOriginX(), var17.getOriginY(), false, false); - } - catch (Throwable var11) - { - CrashReport var9 = CrashReport.makeCrashReport(var11, "Stitching texture atlas"); - CrashReportCategory var10 = var9.makeCategory("Texture being stitched together"); - var10.addCrashSection("Atlas path", this.basePath); - var10.addCrashSection("Sprite", var17); - throw new ReportedException(var9); - } - - if (var17.hasAnimationMetadata()) - { - this.listAnimatedSprites.add(var17); - } - else - { - var17.clearFramesTextureData(); - } - } - - var16 = var15.values().iterator(); - - while (var16.hasNext()) - { - var17 = (TextureAtlasSprite)var16.next(); - var17.copyFrom(this.missingImage); - } - } - - private void registerIcons() - { - this.mapRegisteredSprites.clear(); - int var2; - int var3; - - if (this.textureType == 0) - { - Block[] var1 = Block.blocksList; - var2 = var1.length; - - for (var3 = 0; var3 < var2; ++var3) - { - Block var4 = var1[var3]; - - if (var4 != null) - { - var4.registerIcons(this); - } - } - - Minecraft.getMinecraft().renderGlobal.registerDestroyBlockIcons(this); - RenderManager.instance.updateIcons(this); - } - - Item[] var5 = Item.itemsList; - var2 = var5.length; - - for (var3 = 0; var3 < var2; ++var3) - { - Item var6 = var5[var3]; - - if (var6 != null && var6.getSpriteNumber() == this.textureType) - { - var6.registerIcons(this); - } - } - } - - public TextureAtlasSprite getAtlasSprite(String par1Str) - { - TextureAtlasSprite var2 = (TextureAtlasSprite)this.mapUploadedSprites.get(par1Str); - - if (var2 == null) - { - var2 = this.missingImage; - } - - return var2; - } - - public void updateAnimations() - { - TextureUtil.bindTexture(this.getGlTextureId()); - Iterator var1 = this.listAnimatedSprites.iterator(); - - while (var1.hasNext()) - { - TextureAtlasSprite var2 = (TextureAtlasSprite)var1.next(); - var2.updateAnimation(); - } - } - - public Icon registerIcon(String par1Str) - { - if (par1Str == null) - { - (new RuntimeException("Don\'t register null!")).printStackTrace(); - } - - Object var2 = (TextureAtlasSprite)this.mapRegisteredSprites.get(par1Str); - - if (var2 == null) - { - if (this.textureType == 1) - { - if ("clock".equals(par1Str)) - { - var2 = new TextureClock(par1Str); - } - else if ("compass".equals(par1Str)) - { - var2 = new TextureCompass(par1Str); - } - else - { - var2 = new TextureAtlasSprite(par1Str); - } - } - else - { - var2 = new TextureAtlasSprite(par1Str); - } - - this.mapRegisteredSprites.put(par1Str, var2); - } - - return (Icon)var2; - } - - public int getTextureType() - { - return this.textureType; - } - - public void tick() - { - this.updateAnimations(); - } -} +package net.minecraft.src; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.EaglerImage; +import net.lax1dude.eaglercraft.TextureLocation; +import net.minecraft.src.Minecraft; + +public class TextureMap implements IconRegister { + public static final TextureLocation locationBlocksTexture = new TextureLocation("textures/atlas/blocks.png"); + public static final TextureLocation locationItemsTexture = new TextureLocation("textures/atlas/items.png"); + + /** 0 = terrain.png, 1 = items.png */ + private final int textureType; + private final String textureName; + private final String basePath; + private final String textureExt; + private final HashMap mapTexturesStiched = new HashMap(); + private EaglerImage missingImage; + private TextureStitched missingTextureStiched; + private Texture atlasTexture; + private final List listTextureStiched = new ArrayList(); + private final Map textureStichedMap = new HashMap(); + + public TextureMap(int par1, String par2, String par3Str, EaglerImage par4BufferedImage) { + this.textureType = par1; + this.textureName = par2; + this.basePath = par3Str; + this.textureExt = ".png"; + this.missingImage = par4BufferedImage; + } + + public void refreshTextures() { + this.textureStichedMap.clear(); + int var2; + int var3; + + if (this.textureType == 0) { + Block[] var1 = Block.blocksList; + var2 = var1.length; + + for (var3 = 0; var3 < var2; ++var3) { + Block var4 = var1[var3]; + + if (var4 != null) { + var4.registerIcons(this); + } + } + + Minecraft.getMinecraft().renderGlobal.registerDestroyBlockIcons(this); + RenderManager.instance.updateIcons(this); + } + + Item[] var19 = Item.itemsList; + var2 = var19.length; + + for (var3 = 0; var3 < var2; ++var3) { + Item var23 = var19[var3]; + + if (var23 != null && var23.getSpriteNumber() == this.textureType) { + var23.registerIcons(this); + } + } + + HashMap var20 = new HashMap(); + Stitcher var21 = TextureManager.instance().createStitcher(this.textureName); + this.mapTexturesStiched.clear(); + this.listTextureStiched.clear(); + Texture var22 = TextureManager.instance().makeTexture("missingno", 2, this.missingImage.w, this.missingImage.h, EaglerAdapter.GL_CLAMP, EaglerAdapter.GL_RGBA, EaglerAdapter.GL_NEAREST, EaglerAdapter.GL_NEAREST, false, this.missingImage); + StitchHolder var24 = new StitchHolder(var22); + var21.addStitchHolder(var24); + var20.put(var24, Arrays.asList(new Texture[] { var22 })); + Iterator var5 = this.textureStichedMap.keySet().iterator(); + + while (var5.hasNext()) { + String var6 = (String) var5.next(); + String var7 = this.basePath + var6 + this.textureExt; + List var8 = TextureManager.instance().createTexture(var7); + + if (!var8.isEmpty()) { + StitchHolder var9 = new StitchHolder((Texture) var8.get(0)); + var21.addStitchHolder(var9); + var20.put(var9, var8); + } + } + + try { + var21.doStitch(); + } catch (StitcherException var18) { + throw var18; + } + + this.atlasTexture = var21.getTexture(); + var5 = var21.getStichSlots().iterator(); + + while (var5.hasNext()) { + StitchSlot var25 = (StitchSlot) var5.next(); + StitchHolder var27 = var25.getStitchHolder(); + Texture var28 = var27.func_98150_a(); + String var29 = var28.getTextureName(); + List var10 = (List) var20.get(var27); + TextureStitched var11 = (TextureStitched) this.textureStichedMap.get(var29); + boolean var12 = false; + + if (var11 == null) { + var12 = true; + var11 = TextureStitched.makeTextureStitched(var29); + + if (!var29.equals("missingno")) { + System.out.println("Couldn\'t find premade icon for " + var29 + " doing " + this.textureName); + } + } + + var11.init(this.atlasTexture, var10, var25.getOriginX(), var25.getOriginY(), var27.func_98150_a().getWidth(), var27.func_98150_a().getHeight(), var27.isRotated()); + this.mapTexturesStiched.put(var29, var11); + + if (!var12) { + this.textureStichedMap.remove(var29); + } + + if (var10.size() > 1) { + this.listTextureStiched.add(var11); + String var13 = this.basePath + var29 + ".txt"; + ITexturePack var14 = Minecraft.getMinecraft().texturePackList.getSelectedTexturePack(); + boolean var15 = !var14.func_98138_b("/" + this.basePath + var29 + ".png", false); + + if(var14.func_98138_b("/" + var13, false)) { + System.out.println("Found animation info for: " + var13); + var11.readAnimationInfo("/" + var13); + } + } + } + + this.missingTextureStiched = (TextureStitched) this.mapTexturesStiched.get("missingno"); + var5 = this.textureStichedMap.values().iterator(); + + while (var5.hasNext()) { + TextureStitched var26 = (TextureStitched) var5.next(); + var26.copyFrom(this.missingTextureStiched); + } + + this.atlasTexture.writeImage("debug.stitched_" + this.textureName + ".png"); + this.atlasTexture.uploadTexture(); + } + + public void updateAnimations() { + Iterator var1 = this.listTextureStiched.iterator(); + + while (var1.hasNext()) { + TextureStitched var2 = (TextureStitched) var1.next(); + var2.updateAnimation(); + } + } + + public Texture getTexture() { + return this.atlasTexture; + } + + public Icon registerIcon(String par1Str, int w) { + if(w != 1) { + System.err.println("Error, texture '" + par1Str + "' was registered with size " + w + ", the item texure map only supports size 1 (16px)"); + return missingTextureStiched; + }else { + if (par1Str == null) { + (new RuntimeException("Don\'t register null!")).printStackTrace(); + } + + TextureStitched var2 = (TextureStitched) this.textureStichedMap.get(par1Str); + + if (var2 == null) { + var2 = TextureStitched.makeTextureStitched(par1Str); + this.textureStichedMap.put(par1Str, var2); + } + + return var2; + } + } + + public Icon getMissingIcon() { + return this.missingTextureStiched; + } +} diff --git a/src/main/java/net/minecraft/src/TileEntitySpecialRenderer.java b/src/main/java/net/minecraft/src/TileEntitySpecialRenderer.java index 37ec036..9162e96 100644 --- a/src/main/java/net/minecraft/src/TileEntitySpecialRenderer.java +++ b/src/main/java/net/minecraft/src/TileEntitySpecialRenderer.java @@ -1,5 +1,7 @@ package net.minecraft.src; +import net.lax1dude.eaglercraft.TextureLocation; + public abstract class TileEntitySpecialRenderer { /** @@ -9,13 +11,13 @@ public abstract class TileEntitySpecialRenderer public abstract void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8); - protected void bindTexture(ResourceLocation par1ResourceLocation) + protected void bindTexture(TextureLocation par1ResourceLocation) { TextureManager var2 = this.tileEntityRenderer.renderEngine; if (var2 != null) { - var2.bindTexture(par1ResourceLocation); + par1ResourceLocation.bindTexture(); } }