Gintarus

Untitled

Jun 30th, 2025 (edited)
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.18 KB | None | 0 0
  1. package net.minecraft.client;
  2.  
  3. import net.minecraft.client.gui.Gui;
  4. import net.minecraft.client.gui.ScaledResolution;
  5. import net.minecraft.client.renderer.OpenGlHelper;
  6. import net.minecraft.client.renderer.Tessellator;
  7. import net.minecraft.client.shader.Framebuffer;
  8. import net.minecraft.util.IProgressUpdate;
  9. import net.minecraft.util.MinecraftError;
  10. import org.lwjgl.opengl.GL11;
  11.  
  12. public class LoadingScreenRenderer implements IProgressUpdate
  13. {
  14. private String field_73727_a = "";
  15.  
  16. /** A reference to the Minecraft object. */
  17. private Minecraft mc;
  18.  
  19. /**
  20. * The text currently displayed (i.e. the argument to the last call to printText or func_73722_d)
  21. */
  22. private String currentlyDisplayedText = "";
  23. private long field_73723_d = Minecraft.getSystemTime();
  24. private boolean field_73724_e;
  25. private ScaledResolution field_146587_f;
  26. private Framebuffer field_146588_g;
  27. private static final String __OBFID = "CL_00000655";
  28.  
  29. public LoadingScreenRenderer(Minecraft p_i1017_1_)
  30. {
  31. this.mc = p_i1017_1_;
  32. this.field_146587_f = new ScaledResolution(p_i1017_1_, p_i1017_1_.displayWidth, p_i1017_1_.displayHeight);
  33. this.field_146588_g = new Framebuffer(p_i1017_1_.displayWidth, p_i1017_1_.displayHeight, false);
  34. this.field_146588_g.setFramebufferFilter(9728);
  35. }
  36.  
  37. /**
  38. * this string, followed by "working..." and then the "% complete" are the 3 lines shown. This resets progress to 0,
  39. * and the WorkingString to "working...".
  40. */
  41. public void resetProgressAndMessage(String p_73721_1_)
  42. {
  43. this.field_73724_e = false;
  44. this.func_73722_d(p_73721_1_);
  45. }
  46.  
  47. /**
  48. * "Saving level", or the loading,or downloading equivelent
  49. */
  50. public void displayProgressMessage(String p_73720_1_)
  51. {
  52. this.field_73724_e = true;
  53. this.func_73722_d(p_73720_1_);
  54. }
  55.  
  56. public void func_73722_d(String p_73722_1_)
  57. {
  58. this.currentlyDisplayedText = p_73722_1_;
  59.  
  60. if (!this.mc.running)
  61. {
  62. if (!this.field_73724_e)
  63. {
  64. throw new MinecraftError();
  65. }
  66. }
  67. else
  68. {
  69. GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT);
  70. GL11.glMatrixMode(GL11.GL_PROJECTION);
  71. GL11.glLoadIdentity();
  72.  
  73. if (OpenGlHelper.isFramebufferEnabled())
  74. {
  75. int var2 = this.field_146587_f.getScaleFactor();
  76. GL11.glOrtho(0.0D, (double)(this.field_146587_f.getScaledWidth() * var2), (double)(this.field_146587_f.getScaledHeight() * var2), 0.0D, 100.0D, 300.0D);
  77. }
  78. else
  79. {
  80. ScaledResolution var3 = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight);
  81. GL11.glOrtho(0.0D, var3.getScaledWidth_double(), var3.getScaledHeight_double(), 0.0D, 100.0D, 300.0D);
  82. }
  83.  
  84. GL11.glMatrixMode(GL11.GL_MODELVIEW);
  85. GL11.glLoadIdentity();
  86. GL11.glTranslatef(0.0F, 0.0F, -200.0F);
  87. }
  88. }
  89.  
  90. /**
  91. * This is called with "Working..." by resetProgressAndMessage
  92. */
  93. public void resetProgresAndWorkingMessage(String p_73719_1_)
  94. {
  95. if (!this.mc.running)
  96. {
  97. if (!this.field_73724_e)
  98. {
  99. throw new MinecraftError();
  100. }
  101. }
  102. else
  103. {
  104. this.field_73723_d = 0L;
  105. this.field_73727_a = p_73719_1_;
  106. this.setLoadingProgress(-1);
  107. this.field_73723_d = 0L;
  108. }
  109. }
  110.  
  111. /**
  112. * Updates the progress bar on the loading screen to the specified amount. Args: loadProgress
  113. */
  114. public void setLoadingProgress(int p_73718_1_)
  115. {
  116. if (!this.mc.running)
  117. {
  118. if (!this.field_73724_e)
  119. {
  120. throw new MinecraftError();
  121. }
  122. }
  123. else
  124. {
  125. long var2 = Minecraft.getSystemTime();
  126.  
  127. if (var2 - this.field_73723_d >= 100L)
  128. {
  129. this.field_73723_d = var2;
  130. ScaledResolution var4 = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight);
  131. int var5 = var4.getScaleFactor();
  132. int var6 = var4.getScaledWidth();
  133. int var7 = var4.getScaledHeight();
  134.  
  135. if (OpenGlHelper.isFramebufferEnabled())
  136. {
  137. this.field_146588_g.framebufferClear();
  138. }
  139. else
  140. {
  141. GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT);
  142. }
  143.  
  144. this.field_146588_g.bindFramebuffer(false);
  145. GL11.glMatrixMode(GL11.GL_PROJECTION);
  146. GL11.glLoadIdentity();
  147. GL11.glOrtho(0.0D, var4.getScaledWidth_double(), var4.getScaledHeight_double(), 0.0D, 100.0D, 300.0D);
  148. GL11.glMatrixMode(GL11.GL_MODELVIEW);
  149. GL11.glLoadIdentity();
  150. GL11.glTranslatef(0.0F, 0.0F, -200.0F);
  151.  
  152. if (!OpenGlHelper.isFramebufferEnabled())
  153. {
  154. GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
  155. }
  156.  
  157. Tessellator var8 = Tessellator.instance;
  158. this.mc.getTextureManager().bindTexture(Gui.optionsBackground);
  159. float var9 = 32.0F;
  160. var8.startDrawingQuads();
  161. var8.setColorOpaque_I(4210752);
  162. var8.addVertexWithUV(0.0D, (double)var7, 0.0D, 0.0D, (double)((float)var7 / var9));
  163. var8.addVertexWithUV((double)var6, (double)var7, 0.0D, (double)((float)var6 / var9), (double)((float)var7 / var9));
  164. var8.addVertexWithUV((double)var6, 0.0D, 0.0D, (double)((float)var6 / var9), 0.0D);
  165. var8.addVertexWithUV(0.0D, 0.0D, 0.0D, 0.0D, 0.0D);
  166. var8.draw();
  167.  
  168. if (p_73718_1_ >= 0)
  169. {
  170. byte var10 = 100;
  171. byte var11 = 2;
  172. int var12 = var6 / 2 - var10 / 2;
  173. int var13 = var7 / 2 + 16;
  174. GL11.glDisable(GL11.GL_TEXTURE_2D);
  175. var8.startDrawingQuads();
  176. var8.setColorOpaque_I(8421504);
  177. var8.addVertex((double)var12, (double)var13, 0.0D);
  178. var8.addVertex((double)var12, (double)(var13 + var11), 0.0D);
  179. var8.addVertex((double)(var12 + var10), (double)(var13 + var11), 0.0D);
  180. var8.addVertex((double)(var12 + var10), (double)var13, 0.0D);
  181. var8.setColorOpaque_I(8454016);
  182. var8.addVertex((double)var12, (double)var13, 0.0D);
  183. var8.addVertex((double)var12, (double)(var13 + var11), 0.0D);
  184. var8.addVertex((double)(var12 + p_73718_1_), (double)(var13 + var11), 0.0D);
  185. var8.addVertex((double)(var12 + p_73718_1_), (double)var13, 0.0D);
  186. var8.draw();
  187. GL11.glEnable(GL11.GL_TEXTURE_2D);
  188. }
  189.  
  190. GL11.glEnable(GL11.GL_BLEND);
  191. OpenGlHelper.glBlendFunc(770, 771, 1, 0);
  192. this.mc.fontRenderer.drawStringWithShadow(this.currentlyDisplayedText, (var6 - this.mc.fontRenderer.getStringWidth(this.currentlyDisplayedText)) / 2, var7 / 2 - 4 - 16, 16777215);
  193. this.mc.fontRenderer.drawStringWithShadow(this.field_73727_a, (var6 - this.mc.fontRenderer.getStringWidth(this.field_73727_a)) / 2, var7 / 2 - 4 + 8, 16777215);
  194. this.field_146588_g.unbindFramebuffer();
  195.  
  196. if (OpenGlHelper.isFramebufferEnabled())
  197. {
  198. this.field_146588_g.framebufferRender(var6 * var5, var7 * var5);
  199. }
  200.  
  201. this.mc.func_147120_f();
  202.  
  203. try
  204. {
  205. Thread.yield();
  206. }
  207. catch (Exception var14)
  208. {
  209. ;
  210. }
  211. }
  212. }
  213. }
  214.  
  215. public void func_146586_a() {}
  216. }
  217.  
Advertisement
Add Comment
Please, Sign In to add comment