@Override protected void actionPerformed(GuiButton button) throws IOException { switch (button.id) { case 0: // Means Done ErrorHandling.CleanErrors(); /* Closes the text editor, saves the .oc file and attempts to compile and load it */ mc.thePlayer.closeScreen(); text.deleteCharAt(cursorLocation); saveFile(); try { Compiler.main( String.format(System.getProperty("user.dir") + "/ObsidiCode/Test/SimpleMiner.oc")); } catch (Exception e) { e.printStackTrace(); } ArrayList<String> currentErrors = (ArrayList<String>) ErrorHandling.GetErrors().clone(); if (currentErrors.size() == 0) { loadRobot(); } else { ErrorBook eb = ObsidiSkriveMaskineMod.errorBook(); ObsidiCodingMachine.dropErrorLog(eb); } break; case 1: // Means reset // Resets the text on the screen. text = text.delete(0, text.toString().length()); cursorLocation = 0; break; default: break; } super.actionPerformed(button); }
@Override public void initGui() { obsidiFile = new File(System.getProperty("user.dir") + "/ObsidiCode/Test/SimpleMiner.oc"); this.buttonList.add( new GuiButton( saveButton, this.width / 2 + 5, this.height / 2 + 125, 100, 20, "Save and Exit")); this.buttonList.add( new GuiButton(resetButton, this.width / 2 - 105, this.height / 2 + 125, 100, 20, "Reset")); loadFile(); if (!text.toString().contains("_") && text.toString().equals("")) text.append(cursor); cursorLocation = text.length() - 1; super.initGui(); }
@Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { this.drawDefaultBackground(); mc.getTextureManager().bindTexture(skrivemaskinegui); this.drawTexturedModalRect(this.width / 2 - 128, this.height / 2 - 128, 0, 0, 256, 256); /* this is where the editor reads keys and writes to the screen */ if (org.lwjgl.input.Keyboard.getEventKeyState()) { // if (isAllowedDeletion()) { text.deleteCharAt(cursorLocation); cursorLocation--; text.deleteCharAt(cursorLocation); text.insert(cursorLocation, cursor); // moving cursor } else if (isAllowedNewLine()) { text.deleteCharAt(cursorLocation); text.insert(cursorLocation, '\n'); cursorLocation++; text.insert(cursorLocation, cursor); // moving cursor } else if (isAllowedLeftArrowNavigation()) { text.deleteCharAt(cursorLocation); cursorLocation--; text.insert(cursorLocation, cursor); // moving cursor } else if (isAllowedRightArrowNavigation()) { text.deleteCharAt(cursorLocation); cursorLocation++; text.insert(cursorLocation, cursor); // moving cursor } else if (Keyboard.getEventKey() == Keyboard.KEY_TAB) { text.deleteCharAt(cursorLocation); for (int i = 0; i < 3; i++) { text.insert(cursorLocation, " "); cursorLocation++; } text.insert(cursorLocation, cursor); // moving cursor } else { if (isAllowedCharacters()) { // System.out.println(org.lwjgl.input.Keyboard.getEventKey()); text.deleteCharAt(cursorLocation); text.insert(cursorLocation, org.lwjgl.input.Keyboard.getEventCharacter()); cursorLocation++; text.insert(cursorLocation, cursor); // moving cursor } } org.lwjgl.input.Keyboard.destroy(); } else if (!org.lwjgl.input.Keyboard.isCreated()) { try { org.lwjgl.input.Keyboard.create(); } catch (Exception e) { } } /* writes the text string to the screen */ renderer.drawSplitString( text.toString(), this.width / 2 - 118, this.height / 2 - 119, 238, 0xFFFFF0); super.drawScreen(mouseX, mouseY, partialTicks); }
/** Called when the mouse is clicked. */ protected void mouseClicked(int par1, int par2, int par3) { super.mouseClicked(par1, par2, par3); synchronized (field_104025_t) { if (field_92025_p.length() > 0 && par1 >= field_92022_t && par1 <= field_92020_v && par2 >= field_92021_u && par2 <= field_92019_w) { GuiConfirmOpenLink guiconfirmopenlink = new GuiConfirmOpenLink(this, field_104024_v, 13, true); guiconfirmopenlink.func_92026_h(); mc.displayGuiScreen(guiconfirmopenlink); } } }
/** Draws the screen and all the components in it. */ public void drawScreen(int par1, int par2, float par3) { if (panorama) { renderSkybox(par1, par2, par3); } else { drawDefaultBackground(); } Tessellator tessellator = Tessellator.instance; if (oldlogo) { drawLogo(par3); } char c = 274; int i = width / 2 - c / 2; byte byte0 = 30; if (panorama) { drawGradientRect(0, 0, width, height, 0x80ffffff, 0xffffff); drawGradientRect(0, 0, width, height, 0, 0x80000000); } if (!oldlogo) { mc.func_110434_K().func_110577_a(field_110352_y); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); if ((double) updateCounter < 0.0001D) { drawTexturedModalRect(i + 0, byte0 + 0, 0, 0, 99, 44); drawTexturedModalRect(i + 99, byte0 + 0, 129, 0, 27, 44); drawTexturedModalRect(i + 99 + 26, byte0 + 0, 126, 0, 3, 44); drawTexturedModalRect(i + 99 + 26 + 3, byte0 + 0, 99, 0, 26, 44); drawTexturedModalRect(i + 155, byte0 + 0, 0, 45, 155, 44); } else { drawTexturedModalRect(i + 0, byte0 + 0, 0, 0, 155, 44); drawTexturedModalRect(i + 155, byte0 + 0, 0, 45, 155, 44); } } tessellator.setColorOpaque_I(0xffffff); GL11.glPushMatrix(); GL11.glTranslatef(width / 2 + 90, 70F, 0.0F); GL11.glRotatef(-20F, 0.0F, 0.0F, 1.0F); float f = 1.8F - MathHelper.abs( MathHelper.sin( ((float) (Minecraft.getSystemTime() % 1000L) / 1000F) * (float) Math.PI * 2.0F) * 0.1F); f = (f * 100F) / (float) (fontRenderer.getStringWidth(splashText) + 32); GL11.glScalef(f, f, f); drawCenteredString(fontRenderer, splashText, 0, -8, 0xffff00); GL11.glPopMatrix(); String s = version.contains(":") ? version.split(":", 2)[1] : version; if (s.equals("OFF")) { s = "Minecraft " + (new CallableMinecraftVersion(null)).minecraftVersion(); } if (mc.isDemo()) { s = (new StringBuilder()).append(s).append(" Demo").toString(); } if (panorama) { drawString(fontRenderer, s, 2, height - 10, 0xffffff); } else { drawString(fontRenderer, s, 2, 2, 0x505050); } String s1 = "Copyright Mojang AB. Do not distribute!"; drawString( fontRenderer, s1, width - fontRenderer.getStringWidth(s1) - 2, height - 10, 0xffffff); if (field_92025_p != null && field_92025_p.length() > 0) { drawRect( field_92022_t - 2, field_92021_u - 2, field_92020_v + 2, field_92019_w - 1, 0x55200000); drawString(fontRenderer, field_92025_p, field_92022_t, field_92021_u, 0xffffff); drawString( fontRenderer, field_96138_a, (width - field_92024_r) / 2, ((GuiButton) buttonList.get(0)).yPosition - 12, 0xffffff); } super.drawScreen(par1, par2, par3); }