001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 006 @SideOnly(Side.CLIENT) 007 public class GuiProgress extends GuiScreen implements IProgressUpdate 008 { 009 private String progressMessage = ""; 010 private String workingMessage = ""; 011 private int currentProgress = 0; 012 private boolean noMoreProgress; 013 014 /** 015 * "Saving level", or the loading,or downloading equivelent 016 */ 017 public void displayProgressMessage(String par1Str) 018 { 019 this.resetProgressAndMessage(par1Str); 020 } 021 022 /** 023 * this string, followed by "working..." and then the "% complete" are the 3 lines shown. This resets progress to 0, 024 * and the WorkingString to "working...". 025 */ 026 public void resetProgressAndMessage(String par1Str) 027 { 028 this.progressMessage = par1Str; 029 this.resetProgresAndWorkingMessage("Working..."); 030 } 031 032 /** 033 * This is called with "Working..." by resetProgressAndMessage 034 */ 035 public void resetProgresAndWorkingMessage(String par1Str) 036 { 037 this.workingMessage = par1Str; 038 this.setLoadingProgress(0); 039 } 040 041 /** 042 * Updates the progress bar on the loading screen to the specified amount. Args: loadProgress 043 */ 044 public void setLoadingProgress(int par1) 045 { 046 this.currentProgress = par1; 047 } 048 049 /** 050 * called when there is no more progress to be had, both on completion and failure 051 */ 052 public void onNoMoreProgress() 053 { 054 this.noMoreProgress = true; 055 } 056 057 /** 058 * Draws the screen and all the components in it. 059 */ 060 public void drawScreen(int par1, int par2, float par3) 061 { 062 if (this.noMoreProgress) 063 { 064 this.mc.displayGuiScreen((GuiScreen)null); 065 } 066 else 067 { 068 this.drawDefaultBackground(); 069 this.drawCenteredString(this.fontRenderer, this.progressMessage, this.width / 2, 70, 16777215); 070 this.drawCenteredString(this.fontRenderer, this.workingMessage + " " + this.currentProgress + "%", this.width / 2, 90, 16777215); 071 super.drawScreen(par1, par2, par3); 072 } 073 } 074 }