| package com.daichmff.SAOII; |
| |
| import java.awt.Toolkit; |
| import java.awt.datatransfer.ClipboardOwner; |
| import java.awt.datatransfer.DataFlavor; |
| import java.awt.datatransfer.StringSelection; |
| import java.awt.datatransfer.Transferable; |
| import java.io.BufferedReader; |
| import java.io.Closeable; |
| import java.io.File; |
| import java.io.IOException; |
| import java.io.InputStreamReader; |
| import java.net.URI; |
| import java.net.URISyntaxException; |
| import java.nio.charset.StandardCharsets; |
| import java.util.Arrays; |
| import java.util.Calendar; |
| import java.util.Date; |
| import java.util.List; |
| import java.util.Locale; |
| import java.util.Random; |
| import java.util.Set; |
| |
| import org.apache.commons.io.IOUtils; |
| import org.apache.commons.lang3.StringUtils; |
| import org.apache.logging.log4j.LogManager; |
| import org.apache.logging.log4j.Logger; |
| import org.lwjgl.input.Keyboard; |
| import org.lwjgl.input.Mouse; |
| import org.lwjgl.opengl.GLContext; |
| import org.lwjgl.util.glu.Project; |
| |
| import com.google.common.base.Splitter; |
| import com.google.common.collect.Lists; |
| import com.google.common.collect.Sets; |
| import com.google.common.util.concurrent.Runnables; |
| |
| import net.minecraft.client.Minecraft; |
| import net.minecraft.client.gui.FontRenderer; |
| import net.minecraft.client.gui.GuiButton; |
| import net.minecraft.client.gui.GuiButtonLanguage; |
| import net.minecraft.client.gui.GuiConfirmOpenLink; |
| import net.minecraft.client.gui.GuiLabel; |
| 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.GuiWinGame; |
| import net.minecraft.client.gui.GuiWorldSelection; |
| import net.minecraft.client.gui.GuiYesNo; |
| import net.minecraft.client.renderer.BufferBuilder; |
| import net.minecraft.client.renderer.EntityRenderer; |
| import net.minecraft.client.renderer.GlStateManager; |
| import net.minecraft.client.renderer.OpenGlHelper; |
| import net.minecraft.client.renderer.RenderHelper; |
| import net.minecraft.client.renderer.RenderItem; |
| import net.minecraft.client.renderer.Tessellator; |
| 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.client.settings.GameSettings; |
| import net.minecraft.client.util.ITooltipFlag; |
| import net.minecraft.crash.CrashReport; |
| import net.minecraft.crash.CrashReportCategory; |
| import net.minecraft.crash.ICrashReportDetail; |
| import net.minecraft.item.ItemStack; |
| import net.minecraft.nbt.JsonToNBT; |
| import net.minecraft.nbt.NBTBase; |
| import net.minecraft.nbt.NBTException; |
| import net.minecraft.nbt.NBTTagCompound; |
| import net.minecraft.util.ReportedException; |
| import net.minecraft.util.ResourceLocation; |
| import net.minecraft.util.math.MathHelper; |
| import net.minecraft.util.text.ITextComponent; |
| import net.minecraft.util.text.TextFormatting; |
| import net.minecraft.util.text.event.ClickEvent; |
| import net.minecraft.util.text.event.HoverEvent; |
| import net.minecraft.world.WorldServerDemo; |
| import net.minecraft.world.storage.ISaveFormat; |
| import net.minecraft.world.storage.WorldInfo; |
| import net.minecraftforge.client.event.GuiScreenEvent; |
| import net.minecraftforge.common.MinecraftForge; |
| |
| public class GuiCustomMainMenu extends GuiScreen { |
| private static final Logger LOGGER = LogManager.getLogger(); |
| private static final Random RANDOM = new Random(); |
| |
| |
| |
| |
| |
| private final float minceraftRoll; |
| |
| private String splashText; |
| private GuiButton buttonResetDemo; |
| |
| private float panoramaTimer; |
| |
| private DynamicTexture viewportTexture; |
| |
| private final Object threadLock = new Object(); |
| public static final String MORE_INFO_TEXT = "Please click " + TextFormatting.UNDERLINE + "here" + TextFormatting.RESET + " for more information."; |
| |
| private int openGLWarning2Width; |
| |
| private int openGLWarning1Width; |
| |
| private int openGLWarningX1; |
| |
| private int openGLWarningY1; |
| |
| private int openGLWarningX2; |
| |
| private int openGLWarningY2; |
| |
| private String openGLWarning1; |
| |
| private String openGLWarning2; |
| |
| 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"); |
| private static final ResourceLocation field_194400_H = new ResourceLocation("textures/gui/title/edition.png"); |
| |
| private static final ResourceLocation[] TITLE_PANORAMA_PATHS = new ResourceLocation[] {new ResourceLocation("sao2:textures/gui/title/background/panorama.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama_1.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama_2.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama.png")}; |
| private ResourceLocation backgroundTexture; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| private int widthCopyright; |
| private int widthCopyrightRest; |
| private GuiButton modButton; |
| private net.minecraftforge.client.gui.NotificationModUpdateScreen modUpdateNotification; |
| |
| 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(), StandardCharsets.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 = list.get(RANDOM.nextInt(list.size())); |
| |
| if (this.splashText.hashCode() != 125780783) |
| { |
| break; |
| } |
| } |
| } |
| } |
| catch (IOException var8) |
| { |
| ; |
| } |
| finally |
| { |
| IOUtils.closeQuietly((Closeable)iresource); |
| } |
| |
| this.minceraftRoll = RANDOM.nextFloat(); |
| this.openGLWarning1 = ""; |
| |
| if (!GLContext.getCapabilities().OpenGL20 && !OpenGlHelper.areShadersSupported()) |
| { |
| this.openGLWarning1 = I18n.format("title.oldgl1"); |
| this.openGLWarning2 = I18n.format("title.oldgl2"); |
| this.openGLWarningLink = "https://help.mojang.com/customer/portal/articles/325948?ref=game"; |
| } |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| public void updateScreen() |
| { |
| |
| } |
| |
| |
| |
| |
| public boolean doesGuiPauseGame() |
| { |
| return false; |
| } |
| |
| |
| |
| |
| |
| protected void keyTyped(char typedChar, int keyCode) throws IOException |
| { |
| } |
| |
| |
| |
| |
| |
| public void initGui() |
| { |
| this.viewportTexture = new DynamicTexture(256, 256); |
| this.backgroundTexture = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture); |
| this.widthCopyright = this.fontRenderer.getStringWidth("Copyright Mojang AB. Do not distribute!"); |
| this.widthCopyrightRest = this.width - this.widthCopyright - 2; |
| 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"))); |
| this.buttonList.add(new GuiButton(4, this.width / 2 + 2, j + 72 + 12, 98, 20, I18n.format("menu.quit"))); |
| 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 = (this.buttonList.get(0)).y - 24; |
| this.openGLWarningX2 = this.openGLWarningX1 + k; |
| this.openGLWarningY2 = this.openGLWarningY1 + 24; |
| } |
| |
| |
| |
| } |
| |
| |
| |
| |
| 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"))); |
| this.buttonList.add(new GuiButton(2, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.format("menu.multiplayer"))); |
| |
| } |
| |
| |
| |
| |
| 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"))); |
| this.buttonResetDemo = this.addButton(new GuiButton(12, this.width / 2 - 100, p_73972_1_ + p_73972_2_ * 1, I18n.format("menu.resetdemo"))); |
| ISaveFormat isaveformat = this.mc.getSaveLoader(); |
| WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World"); |
| |
| if (worldinfo == null) |
| { |
| this.buttonResetDemo.enabled = false; |
| } |
| } |
| |
| |
| |
| |
| 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", WorldServerDemo.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"), "'" + worldinfo.getWorldName() + "' " + I18n.format("selectWorld.deleteWarning"), I18n.format("selectWorld.deleteButton"), I18n.format("gui.cancel"), 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").invoke((Object)null); |
| oclass.getMethod("browse", URI.class).invoke(object, new URI(this.openGLWarningLink)); |
| } |
| catch (Throwable throwable) |
| { |
| LOGGER.error("Couldn't open link", throwable); |
| } |
| } |
| |
| this.mc.displayGuiScreen(this); |
| } |
| } |
| |
| |
| |
| |
| private void drawPanorama(int mouseX, int mouseY, float partialTicks) |
| { |
| Tessellator tessellator = Tessellator.getInstance(); |
| BufferBuilder bufferbuilder = 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(this.panoramaTimer / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F, 0.0F); |
| GlStateManager.rotate(-this.panoramaTimer * 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]); |
| bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); |
| int l = 255 / (j + 1); |
| float f3 = 0.0F; |
| bufferbuilder.pos(-1.0D, -1.0D, 1.0D).tex(0.0D, 0.0D).color(255, 255, 255, l).endVertex(); |
| bufferbuilder.pos(1.0D, -1.0D, 1.0D).tex(1.0D, 0.0D).color(255, 255, 255, l).endVertex(); |
| bufferbuilder.pos(1.0D, 1.0D, 1.0D).tex(1.0D, 1.0D).color(255, 255, 255, l).endVertex(); |
| bufferbuilder.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); |
| } |
| |
| bufferbuilder.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(); |
| } |
| |
| |
| |
| |
| private void rotateAndBlurSkybox() |
| { |
| 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(); |
| BufferBuilder bufferbuilder = tessellator.getBuffer(); |
| bufferbuilder.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; |
| bufferbuilder.pos((double)k, (double)l, (double)this.zLevel).tex((double)(0.0F + f1), 1.0D).color(1.0F, 1.0F, 1.0F, f).endVertex(); |
| bufferbuilder.pos((double)k, 0.0D, (double)this.zLevel).tex((double)(1.0F + f1), 1.0D).color(1.0F, 1.0F, 1.0F, f).endVertex(); |
| bufferbuilder.pos(0.0D, 0.0D, (double)this.zLevel).tex((double)(1.0F + f1), 0.0D).color(1.0F, 1.0F, 1.0F, f).endVertex(); |
| bufferbuilder.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); |
| } |
| |
| |
| |
| |
| 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(); |
| this.rotateAndBlurSkybox(); |
| this.rotateAndBlurSkybox(); |
| this.rotateAndBlurSkybox(); |
| this.rotateAndBlurSkybox(); |
| this.rotateAndBlurSkybox(); |
| this.rotateAndBlurSkybox(); |
| 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(); |
| BufferBuilder bufferbuilder = tessellator.getBuffer(); |
| bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); |
| bufferbuilder.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(); |
| bufferbuilder.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(); |
| bufferbuilder.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(); |
| bufferbuilder.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(); |
| } |
| |
| |
| |
| |
| public void drawScreen(int mouseX, int mouseY, float partialTicks) |
| { |
| this.panoramaTimer += 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.minceraftRoll < 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); |
| } |
| |
| this.mc.getTextureManager().bindTexture(field_194400_H); |
| drawModalRectWithCustomSizedTexture(j + 88, 67, 0.0F, 0.0F, 98, 14, 128.0F, 16.0F); |
| |
| |
| |
| 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 = "GunGaleOnline 0.1"; |
| |
| 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); |
| } |
| } |
| |
| this.drawString(this.fontRenderer, "Copyright Mojang AB. Do not distribute!", this.widthCopyrightRest, this.height - 10, -1); |
| this.drawString(this.fontRenderer, "<Kirito>:What?!!!,<Mojang AB>:Hello!,<Microsoft Corp>:Hello!!,<Kirito>:I'am in GGO?,<Mojang AB>:You are ine Minecraft Java Edition(forge),<Microsoft>:I hate FORGE!!!!,Connect to GGO button has Spawned!", this.widthCopyrightRest, this.height - 13, 0); |
| |
| if (mouseX > this.widthCopyrightRest && mouseX < this.widthCopyrightRest + this.widthCopyright && mouseY > this.height - 10 && mouseY < this.height && Mouse.isInsideWindow()) |
| { |
| drawRect(this.widthCopyrightRest, this.height - 1, this.widthCopyrightRest + this.widthCopyright, this.height, -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, (this.buttonList.get(0)).y - 12, -1); |
| } |
| |
| super.drawScreen(mouseX, mouseY, partialTicks); |
| |
| } |
| |
| |
| |
| |
| protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException |
| { |
| super.mouseClicked(mouseX, mouseY, mouseButton); |
| |
| synchronized (this.threadLock) |
| { |
| if (!this.openGLWarning1.isEmpty() && !StringUtils.isEmpty(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); |
| } |
| } |
| |
| |
| |
| if (mouseX > this.widthCopyrightRest && mouseX < this.widthCopyrightRest + this.widthCopyright && mouseY > this.height - 10 && mouseY < this.height) |
| { |
| this.mc.displayGuiScreen(new GuiWinGame(false, Runnables.doNothing())); |
| } |
| } |
| |
| |
| |
| |
| public static void drawScreen(GuiScreen screen, int mouseX, int mouseY, float partialTicks) |
| { |
| if (!MinecraftForge.EVENT_BUS.post(new GuiScreenEvent.DrawScreenEvent.Pre(screen, mouseX, mouseY, partialTicks))) |
| screen.drawScreen(mouseX, mouseY, partialTicks); |
| MinecraftForge.EVENT_BUS.post(new GuiScreenEvent.DrawScreenEvent.Post(screen, mouseX, mouseY, partialTicks)); |
| } |
| { |
| if (this.mc.currentScreen != null) |
| { |
| GlStateManager.clear(256); |
| |
| try |
| { |
| net.minecraftforge.client.ForgeHooksClient.drawScreen(this.mc.currentScreen, height, width, this.mc.getTickLength()); |
| } |
| catch (Throwable throwable) |
| { |
| |
| } |
| } |
| } |
| { |
| } |
| } |
| |