Instantly share code, notes, and snippets.
-
Save robin4002/0bb5f14f0967e78bc5aa0c795410f355 to your computer and use it in GitHub Desktop.
Code du menu après correction des erreurs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package fr.minecraftforgefrance.tutorial.client; | |
import java.io.BufferedReader; | |
import java.io.Closeable; | |
import java.io.IOException; | |
import java.io.InputStreamReader; | |
import java.net.URI; | |
import java.util.Calendar; | |
import java.util.Date; | |
import java.util.List; | |
import java.util.Random; | |
import org.apache.commons.io.Charsets; | |
import org.apache.commons.io.IOUtils; | |
import org.apache.logging.log4j.LogManager; | |
import org.apache.logging.log4j.Logger; | |
import org.lwjgl.opengl.GLContext; | |
import org.lwjgl.util.glu.Project; | |
import com.google.common.collect.Lists; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.GuiButton; | |
import net.minecraft.client.gui.GuiButtonLanguage; | |
import net.minecraft.client.gui.GuiConfirmOpenLink; | |
import net.minecraft.client.gui.GuiLanguage; | |
import net.minecraft.client.gui.GuiMultiplayer; | |
import net.minecraft.client.gui.GuiOptions; | |
import net.minecraft.client.gui.GuiScreen; | |
import net.minecraft.client.gui.GuiWorldSelection; | |
import net.minecraft.client.gui.GuiYesNo; | |
import net.minecraft.client.renderer.GlStateManager; | |
import net.minecraft.client.renderer.OpenGlHelper; | |
import net.minecraft.client.renderer.Tessellator; | |
import net.minecraft.client.renderer.VertexBuffer; | |
import net.minecraft.client.renderer.texture.DynamicTexture; | |
import net.minecraft.client.renderer.vertex.DefaultVertexFormats; | |
import net.minecraft.client.resources.I18n; | |
import net.minecraft.client.resources.IResource; | |
import net.minecraft.util.ResourceLocation; | |
import net.minecraft.util.StringUtils; | |
import net.minecraft.util.math.MathHelper; | |
import net.minecraft.util.text.TextFormatting; | |
import net.minecraft.world.demo.DemoWorldServer; | |
import net.minecraft.world.storage.ISaveFormat; | |
import net.minecraft.world.storage.WorldInfo; | |
public class GuiCustomMainMenu extends GuiScreen | |
{ | |
private static final Logger LOGGER = LogManager.getLogger(); | |
private static final Random RANDOM = new Random(); | |
/** Counts the number of screen updates. */ | |
private final float updateCounter; | |
/** The splash message. */ | |
private String splashText; | |
private GuiButton buttonResetDemo; | |
/** Timer used to rotate the panorama, increases every tick. */ | |
private int panoramaTimer; | |
/** Texture allocated for the current viewport of the main menu's panorama background. */ | |
private DynamicTexture viewportTexture; | |
/** The Object object utilized as a thread lock when performing non thread-safe operations */ | |
private final Object threadLock = new Object(); | |
public static final String MORE_INFO_TEXT = "Please click " + TextFormatting.UNDERLINE + "here" + TextFormatting.RESET + " for more information."; | |
/** Width of openGLWarning2 */ | |
private int openGLWarning2Width; | |
/** Width of openGLWarning1 */ | |
private int openGLWarning1Width; | |
/** Left x coordinate of the OpenGL warning */ | |
private int openGLWarningX1; | |
/** Top y coordinate of the OpenGL warning */ | |
private int openGLWarningY1; | |
/** Right x coordinate of the OpenGL warning */ | |
private int openGLWarningX2; | |
/** Bottom y coordinate of the OpenGL warning */ | |
private int openGLWarningY2; | |
/** OpenGL graphics card warning. */ | |
private String openGLWarning1; | |
/** OpenGL graphics card warning. */ | |
private String openGLWarning2; | |
/** Link to the Mojang Support about minimum requirements */ | |
private String openGLWarningLink; | |
private static final ResourceLocation SPLASH_TEXTS = new ResourceLocation("texts/splashes.txt"); | |
private static final ResourceLocation MINECRAFT_TITLE_TEXTURES = new ResourceLocation("textures/gui/title/minecraft.png"); | |
/** An array of all the paths to the panorama pictures. */ | |
private static final ResourceLocation[] TITLE_PANORAMA_PATHS = 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")}; | |
private ResourceLocation backgroundTexture; | |
private GuiButton modButton; | |
public GuiCustomMainMenu() | |
{ | |
this.openGLWarning2 = MORE_INFO_TEXT; | |
this.splashText = "missingno"; | |
IResource iresource = null; | |
try | |
{ | |
List<String> list = Lists.<String>newArrayList(); | |
iresource = Minecraft.getMinecraft().getResourceManager().getResource(SPLASH_TEXTS); | |
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(iresource.getInputStream(), Charsets.UTF_8)); | |
String s; | |
while ((s = bufferedreader.readLine()) != null) | |
{ | |
s = s.trim(); | |
if (!s.isEmpty()) | |
{ | |
list.add(s); | |
} | |
} | |
if (!list.isEmpty()) | |
{ | |
while (true) | |
{ | |
this.splashText = (String)list.get(RANDOM.nextInt(list.size())); | |
if (this.splashText.hashCode() != 125780783) | |
{ | |
break; | |
} | |
} | |
} | |
} | |
catch (IOException var8) | |
{ | |
; | |
} | |
finally | |
{ | |
IOUtils.closeQuietly((Closeable)iresource); | |
} | |
this.updateCounter = RANDOM.nextFloat(); | |
this.openGLWarning1 = ""; | |
if (!GLContext.getCapabilities().OpenGL20 && !OpenGlHelper.areShadersSupported()) | |
{ | |
this.openGLWarning1 = I18n.format("title.oldgl1", new Object[0]); | |
this.openGLWarning2 = I18n.format("title.oldgl2", new Object[0]); | |
this.openGLWarningLink = "https://help.mojang.com/customer/portal/articles/325948?ref=game"; | |
} | |
String s1 = System.getProperty("java.version"); | |
if (s1 != null && (s1.startsWith("1.6") || s1.startsWith("1.7"))) | |
{ | |
this.openGLWarning1 = I18n.format("title.oldjava1", new Object[0]); | |
this.openGLWarning2 = I18n.format("title.oldjava2", new Object[0]); | |
this.openGLWarningLink = "https://help.mojang.com/customer/portal/articles/2636196?ref=game"; | |
} | |
} | |
/** | |
* Called from the main game loop to update the screen. | |
*/ | |
public void updateScreen() | |
{ | |
++this.panoramaTimer; | |
} | |
/** | |
* Returns true if this GUI should pause the game when it is displayed in single-player | |
*/ | |
public boolean doesGuiPauseGame() | |
{ | |
return false; | |
} | |
/** | |
* Fired when a key is typed (except F11 which toggles full screen). This is the equivalent of | |
* KeyListener.keyTyped(KeyEvent e). Args : character (character on the key), keyCode (lwjgl Keyboard key code) | |
*/ | |
protected void keyTyped(char typedChar, int keyCode) throws IOException | |
{ | |
} | |
/** | |
* Adds the buttons (and other controls) to the screen in question. Called when the GUI is displayed and when the | |
* window resizes, the buttonList is cleared beforehand. | |
*/ | |
public void initGui() | |
{ | |
this.viewportTexture = new DynamicTexture(256, 256); | |
this.backgroundTexture = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture); | |
Calendar calendar = Calendar.getInstance(); | |
calendar.setTime(new Date()); | |
if (calendar.get(2) + 1 == 12 && calendar.get(5) == 24) | |
{ | |
this.splashText = "Merry X-mas!"; | |
} | |
else if (calendar.get(2) + 1 == 1 && calendar.get(5) == 1) | |
{ | |
this.splashText = "Happy new year!"; | |
} | |
else if (calendar.get(2) + 1 == 10 && calendar.get(5) == 31) | |
{ | |
this.splashText = "OOoooOOOoooo! Spooky!"; | |
} | |
int i = 24; | |
int j = this.height / 4 + 48; | |
if (this.mc.isDemo()) | |
{ | |
this.addDemoButtons(j, 24); | |
} | |
else | |
{ | |
this.addSingleplayerMultiplayerButtons(j, 24); | |
} | |
this.buttonList.add(new GuiButton(0, this.width / 2 - 100, j + 72 + 12, 98, 20, I18n.format("menu.options", new Object[0]))); | |
this.buttonList.add(new GuiButton(4, this.width / 2 + 2, j + 72 + 12, 98, 20, I18n.format("menu.quit", new Object[0]))); | |
this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, j + 72 + 12)); | |
synchronized (this.threadLock) | |
{ | |
this.openGLWarning1Width = this.fontRenderer.getStringWidth(this.openGLWarning1); | |
this.openGLWarning2Width = this.fontRenderer.getStringWidth(this.openGLWarning2); | |
int k = Math.max(this.openGLWarning1Width, this.openGLWarning2Width); | |
this.openGLWarningX1 = (this.width - k) / 2; | |
this.openGLWarningY1 = ((GuiButton)this.buttonList.get(0)).yPosition - 24; | |
this.openGLWarningX2 = this.openGLWarningX1 + k; | |
this.openGLWarningY2 = this.openGLWarningY1 + 24; | |
} | |
this.mc.setConnectedToRealms(false); | |
} | |
/** | |
* Adds Singleplayer and Multiplayer buttons on Main Menu for players who have bought the game. | |
*/ | |
private void addSingleplayerMultiplayerButtons(int p_73969_1_, int p_73969_2_) | |
{ | |
this.buttonList.add(new GuiButton(1, this.width / 2 - 100, p_73969_1_, I18n.format("menu.singleplayer", new Object[0]))); | |
this.buttonList.add(new GuiButton(2, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.format("menu.multiplayer", new Object[0]))); | |
this.buttonList.add(modButton = new GuiButton(6, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.format("fml.menu.mods"))); | |
} | |
/** | |
* Adds Demo buttons on Main Menu for players who are playing Demo. | |
*/ | |
private void addDemoButtons(int p_73972_1_, int p_73972_2_) | |
{ | |
this.buttonList.add(new GuiButton(11, this.width / 2 - 100, p_73972_1_, I18n.format("menu.playdemo", new Object[0]))); | |
this.buttonResetDemo = this.addButton(new GuiButton(12, this.width / 2 - 100, p_73972_1_ + p_73972_2_ * 1, I18n.format("menu.resetdemo", new Object[0]))); | |
ISaveFormat isaveformat = this.mc.getSaveLoader(); | |
WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World"); | |
if (worldinfo == null) | |
{ | |
this.buttonResetDemo.enabled = false; | |
} | |
} | |
/** | |
* Called by the controls from the buttonList when activated. (Mouse pressed for buttons) | |
*/ | |
protected void actionPerformed(GuiButton button) throws IOException | |
{ | |
if (button.id == 0) | |
{ | |
this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings)); | |
} | |
if (button.id == 5) | |
{ | |
this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager())); | |
} | |
if (button.id == 1) | |
{ | |
this.mc.displayGuiScreen(new GuiWorldSelection(this)); | |
} | |
if (button.id == 2) | |
{ | |
this.mc.displayGuiScreen(new GuiMultiplayer(this)); | |
} | |
if (button.id == 4) | |
{ | |
this.mc.shutdown(); | |
} | |
if (button.id == 6) | |
{ | |
this.mc.displayGuiScreen(new net.minecraftforge.fml.client.GuiModList(this)); | |
} | |
if (button.id == 11) | |
{ | |
this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.DEMO_WORLD_SETTINGS); | |
} | |
if (button.id == 12) | |
{ | |
ISaveFormat isaveformat = this.mc.getSaveLoader(); | |
WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World"); | |
if (worldinfo != null) | |
{ | |
this.mc.displayGuiScreen(new GuiYesNo(this, I18n.format("selectWorld.deleteQuestion", new Object[0]), "\'" + worldinfo.getWorldName() + "\' " + I18n.format("selectWorld.deleteWarning", new Object[0]), I18n.format("selectWorld.deleteButton", new Object[0]), I18n.format("gui.cancel", new Object[0]), 12)); | |
} | |
} | |
} | |
public void confirmClicked(boolean result, int id) | |
{ | |
if (result && id == 12) | |
{ | |
ISaveFormat isaveformat = this.mc.getSaveLoader(); | |
isaveformat.flushCache(); | |
isaveformat.deleteWorldDirectory("Demo_World"); | |
this.mc.displayGuiScreen(this); | |
} | |
else if (id == 12) | |
{ | |
this.mc.displayGuiScreen(this); | |
} | |
else if (id == 13) | |
{ | |
if (result) | |
{ | |
try | |
{ | |
Class<?> oclass = Class.forName("java.awt.Desktop"); | |
Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]); | |
oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI(this.openGLWarningLink)}); | |
} | |
catch (Throwable throwable) | |
{ | |
LOGGER.error("Couldn\'t open link", throwable); | |
} | |
} | |
this.mc.displayGuiScreen(this); | |
} | |
} | |
/** | |
* Draws the main menu panorama | |
*/ | |
private void drawPanorama(int mouseX, int mouseY, float partialTicks) | |
{ | |
Tessellator tessellator = Tessellator.getInstance(); | |
VertexBuffer vertexbuffer = tessellator.getBuffer(); | |
GlStateManager.matrixMode(5889); | |
GlStateManager.pushMatrix(); | |
GlStateManager.loadIdentity(); | |
Project.gluPerspective(120.0F, 1.0F, 0.05F, 10.0F); | |
GlStateManager.matrixMode(5888); | |
GlStateManager.pushMatrix(); | |
GlStateManager.loadIdentity(); | |
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); | |
GlStateManager.rotate(180.0F, 1.0F, 0.0F, 0.0F); | |
GlStateManager.rotate(90.0F, 0.0F, 0.0F, 1.0F); | |
GlStateManager.enableBlend(); | |
GlStateManager.disableAlpha(); | |
GlStateManager.disableCull(); | |
GlStateManager.depthMask(false); | |
GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); | |
int i = 8; | |
for (int j = 0; j < 64; ++j) | |
{ | |
GlStateManager.pushMatrix(); | |
float f = ((float)(j % 8) / 8.0F - 0.5F) / 64.0F; | |
float f1 = ((float)(j / 8) / 8.0F - 0.5F) / 64.0F; | |
float f2 = 0.0F; | |
GlStateManager.translate(f, f1, 0.0F); | |
GlStateManager.rotate(MathHelper.sin(((float)this.panoramaTimer + partialTicks) / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F, 0.0F); | |
GlStateManager.rotate(-((float)this.panoramaTimer + partialTicks) * 0.1F, 0.0F, 1.0F, 0.0F); | |
for (int k = 0; k < 6; ++k) | |
{ | |
GlStateManager.pushMatrix(); | |
if (k == 1) | |
{ | |
GlStateManager.rotate(90.0F, 0.0F, 1.0F, 0.0F); | |
} | |
if (k == 2) | |
{ | |
GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F); | |
} | |
if (k == 3) | |
{ | |
GlStateManager.rotate(-90.0F, 0.0F, 1.0F, 0.0F); | |
} | |
if (k == 4) | |
{ | |
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F); | |
} | |
if (k == 5) | |
{ | |
GlStateManager.rotate(-90.0F, 1.0F, 0.0F, 0.0F); | |
} | |
this.mc.getTextureManager().bindTexture(TITLE_PANORAMA_PATHS[k]); | |
vertexbuffer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); | |
int l = 255 / (j + 1); | |
float f3 = 0.0F; | |
vertexbuffer.pos(-1.0D, -1.0D, 1.0D).tex(0.0D, 0.0D).color(255, 255, 255, l).endVertex(); | |
vertexbuffer.pos(1.0D, -1.0D, 1.0D).tex(1.0D, 0.0D).color(255, 255, 255, l).endVertex(); | |
vertexbuffer.pos(1.0D, 1.0D, 1.0D).tex(1.0D, 1.0D).color(255, 255, 255, l).endVertex(); | |
vertexbuffer.pos(-1.0D, 1.0D, 1.0D).tex(0.0D, 1.0D).color(255, 255, 255, l).endVertex(); | |
tessellator.draw(); | |
GlStateManager.popMatrix(); | |
} | |
GlStateManager.popMatrix(); | |
GlStateManager.colorMask(true, true, true, false); | |
} | |
vertexbuffer.setTranslation(0.0D, 0.0D, 0.0D); | |
GlStateManager.colorMask(true, true, true, true); | |
GlStateManager.matrixMode(5889); | |
GlStateManager.popMatrix(); | |
GlStateManager.matrixMode(5888); | |
GlStateManager.popMatrix(); | |
GlStateManager.depthMask(true); | |
GlStateManager.enableCull(); | |
GlStateManager.enableDepth(); | |
} | |
/** | |
* Rotate and blurs the skybox view in the main menu | |
*/ | |
private void rotateAndBlurSkybox(float partialTicks) | |
{ | |
this.mc.getTextureManager().bindTexture(this.backgroundTexture); | |
GlStateManager.glTexParameteri(3553, 10241, 9729); | |
GlStateManager.glTexParameteri(3553, 10240, 9729); | |
GlStateManager.glCopyTexSubImage2D(3553, 0, 0, 0, 0, 0, 256, 256); | |
GlStateManager.enableBlend(); | |
GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); | |
GlStateManager.colorMask(true, true, true, false); | |
Tessellator tessellator = Tessellator.getInstance(); | |
VertexBuffer vertexbuffer = tessellator.getBuffer(); | |
vertexbuffer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); | |
GlStateManager.disableAlpha(); | |
int i = 3; | |
for (int j = 0; j < 3; ++j) | |
{ | |
float f = 1.0F / (float)(j + 1); | |
int k = this.width; | |
int l = this.height; | |
float f1 = (float)(j - 1) / 256.0F; | |
vertexbuffer.pos((double)k, (double)l, (double)this.zLevel).tex((double)(0.0F + f1), 1.0D).color(1.0F, 1.0F, 1.0F, f).endVertex(); | |
vertexbuffer.pos((double)k, 0.0D, (double)this.zLevel).tex((double)(1.0F + f1), 1.0D).color(1.0F, 1.0F, 1.0F, f).endVertex(); | |
vertexbuffer.pos(0.0D, 0.0D, (double)this.zLevel).tex((double)(1.0F + f1), 0.0D).color(1.0F, 1.0F, 1.0F, f).endVertex(); | |
vertexbuffer.pos(0.0D, (double)l, (double)this.zLevel).tex((double)(0.0F + f1), 0.0D).color(1.0F, 1.0F, 1.0F, f).endVertex(); | |
} | |
tessellator.draw(); | |
GlStateManager.enableAlpha(); | |
GlStateManager.colorMask(true, true, true, true); | |
} | |
/** | |
* Renders the skybox in the main menu | |
*/ | |
private void renderSkybox(int mouseX, int mouseY, float partialTicks) | |
{ | |
this.mc.getFramebuffer().unbindFramebuffer(); | |
GlStateManager.viewport(0, 0, 256, 256); | |
this.drawPanorama(mouseX, mouseY, partialTicks); | |
this.rotateAndBlurSkybox(partialTicks); | |
this.rotateAndBlurSkybox(partialTicks); | |
this.rotateAndBlurSkybox(partialTicks); | |
this.rotateAndBlurSkybox(partialTicks); | |
this.rotateAndBlurSkybox(partialTicks); | |
this.rotateAndBlurSkybox(partialTicks); | |
this.rotateAndBlurSkybox(partialTicks); | |
this.mc.getFramebuffer().bindFramebuffer(true); | |
GlStateManager.viewport(0, 0, this.mc.displayWidth, this.mc.displayHeight); | |
float f = 120.0F / (float)(this.width > this.height ? this.width : this.height); | |
float f1 = (float)this.height * f / 256.0F; | |
float f2 = (float)this.width * f / 256.0F; | |
int i = this.width; | |
int j = this.height; | |
Tessellator tessellator = Tessellator.getInstance(); | |
VertexBuffer vertexbuffer = tessellator.getBuffer(); | |
vertexbuffer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); | |
vertexbuffer.pos(0.0D, (double)j, (double)this.zLevel).tex((double)(0.5F - f1), (double)(0.5F + f2)).color(1.0F, 1.0F, 1.0F, 1.0F).endVertex(); | |
vertexbuffer.pos((double)i, (double)j, (double)this.zLevel).tex((double)(0.5F - f1), (double)(0.5F - f2)).color(1.0F, 1.0F, 1.0F, 1.0F).endVertex(); | |
vertexbuffer.pos((double)i, 0.0D, (double)this.zLevel).tex((double)(0.5F + f1), (double)(0.5F - f2)).color(1.0F, 1.0F, 1.0F, 1.0F).endVertex(); | |
vertexbuffer.pos(0.0D, 0.0D, (double)this.zLevel).tex((double)(0.5F + f1), (double)(0.5F + f2)).color(1.0F, 1.0F, 1.0F, 1.0F).endVertex(); | |
tessellator.draw(); | |
} | |
/** | |
* Draws the screen and all the components in it. | |
*/ | |
public void drawScreen(int mouseX, int mouseY, float partialTicks) | |
{ | |
GlStateManager.disableAlpha(); | |
this.renderSkybox(mouseX, mouseY, partialTicks); | |
GlStateManager.enableAlpha(); | |
int i = 274; | |
int j = this.width / 2 - 137; | |
int k = 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(MINECRAFT_TITLE_TEXTURES); | |
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); | |
if ((double)this.updateCounter < 1.0E-4D) | |
{ | |
this.drawTexturedModalRect(j + 0, 30, 0, 0, 99, 44); | |
this.drawTexturedModalRect(j + 99, 30, 129, 0, 27, 44); | |
this.drawTexturedModalRect(j + 99 + 26, 30, 126, 0, 3, 44); | |
this.drawTexturedModalRect(j + 99 + 26 + 3, 30, 99, 0, 26, 44); | |
this.drawTexturedModalRect(j + 155, 30, 0, 45, 155, 44); | |
} | |
else | |
{ | |
this.drawTexturedModalRect(j + 0, 30, 0, 0, 155, 44); | |
this.drawTexturedModalRect(j + 155, 30, 0, 45, 155, 44); | |
} | |
GlStateManager.pushMatrix(); | |
GlStateManager.translate((float)(this.width / 2 + 90), 70.0F, 0.0F); | |
GlStateManager.rotate(-20.0F, 0.0F, 0.0F, 1.0F); | |
float f = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * ((float)Math.PI * 2F)) * 0.1F); | |
f = f * 100.0F / (float)(this.fontRenderer.getStringWidth(this.splashText) + 32); | |
GlStateManager.scale(f, f, f); | |
this.drawCenteredString(this.fontRenderer, this.splashText, 0, -8, -256); | |
GlStateManager.popMatrix(); | |
String s = "Minecraft 1.11.2"; | |
if (this.mc.isDemo()) | |
{ | |
s = s + " Demo"; | |
} | |
else | |
{ | |
s = s + ("release".equalsIgnoreCase(this.mc.getVersionType()) ? "" : "/" + this.mc.getVersionType()); | |
} | |
java.util.List<String> brandings = com.google.common.collect.Lists.reverse(net.minecraftforge.fml.common.FMLCommonHandler.instance().getBrandings(true)); | |
for (int brdline = 0; brdline < brandings.size(); brdline++) | |
{ | |
String brd = brandings.get(brdline); | |
if (!com.google.common.base.Strings.isNullOrEmpty(brd)) | |
{ | |
this.drawString(this.fontRenderer, brd, 2, this.height - ( 10 + brdline * (this.fontRenderer.FONT_HEIGHT + 1)), 16777215); | |
} | |
} | |
String s1 = "Copyright Mojang AB. Do not distribute!"; | |
this.drawString(this.fontRenderer, "Copyright Mojang AB. Do not distribute!", this.width - this.fontRenderer.getStringWidth("Copyright Mojang AB. Do not distribute!") - 2, this.height - 10, -1); | |
if (this.openGLWarning1 != null && !this.openGLWarning1.isEmpty()) | |
{ | |
drawRect(this.openGLWarningX1 - 2, this.openGLWarningY1 - 2, this.openGLWarningX2 + 2, this.openGLWarningY2 - 1, 1428160512); | |
this.drawString(this.fontRenderer, this.openGLWarning1, this.openGLWarningX1, this.openGLWarningY1, -1); | |
this.drawString(this.fontRenderer, this.openGLWarning2, (this.width - this.openGLWarning2Width) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1); | |
} | |
super.drawScreen(mouseX, mouseY, partialTicks); | |
} | |
/** | |
* Called when the mouse is clicked. Args : mouseX, mouseY, clickedButton | |
*/ | |
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException | |
{ | |
super.mouseClicked(mouseX, mouseY, mouseButton); | |
synchronized (this.threadLock) | |
{ | |
if (!this.openGLWarning1.isEmpty() && !StringUtils.isNullOrEmpty(this.openGLWarningLink) && mouseX >= this.openGLWarningX1 && mouseX <= this.openGLWarningX2 && mouseY >= this.openGLWarningY1 && mouseY <= this.openGLWarningY2) | |
{ | |
GuiConfirmOpenLink guiconfirmopenlink = new GuiConfirmOpenLink(this, this.openGLWarningLink, 13, true); | |
guiconfirmopenlink.disableSecurityWarning(); | |
this.mc.displayGuiScreen(guiconfirmopenlink); | |
} | |
} | |
net.minecraftforge.client.ForgeHooksClient.mainMenuMouseClick(mouseX, mouseY, mouseButton, this.fontRenderer, this.width); | |
} | |
/** | |
* Called when the screen is unloaded. Used to disable keyboard repeat events | |
*/ | |
public void onGuiClosed() | |
{ | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment