Got it to compile with TeaVM!
This commit is contained in:
parent
508e2aea20
commit
624eb42878
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -152,7 +152,7 @@ public final class Minecraft implements Runnable {
|
||||||
GL11.glLoadIdentity();
|
GL11.glLoadIdentity();
|
||||||
GL11.glMatrixMode(GL11.GL_MODELVIEW);
|
GL11.glMatrixMode(GL11.GL_MODELVIEW);
|
||||||
checkGlError("Startup");
|
checkGlError("Startup");
|
||||||
this.font = new Font("/default.png", this.textures);
|
this.font = new Font("/default.png");
|
||||||
IntBuffer var7 = BufferUtils.createIntBuffer(256);
|
IntBuffer var7 = BufferUtils.createIntBuffer(256);
|
||||||
var7.clear().limit(256);
|
var7.clear().limit(256);
|
||||||
GL11.glViewport(0, 0, this.width, this.height);
|
GL11.glViewport(0, 0, this.width, this.height);
|
||||||
|
|
|
@ -1,55 +1,101 @@
|
||||||
package com.mojang.minecraft.gui;
|
package com.mojang.minecraft.gui;
|
||||||
|
|
||||||
|
import java.nio.IntBuffer;
|
||||||
|
|
||||||
import com.mojang.minecraft.renderer.Tesselator;
|
import com.mojang.minecraft.renderer.Tesselator;
|
||||||
import com.mojang.minecraft.renderer.Textures;
|
import com.mojang.minecraft.renderer.Textures;
|
||||||
import java.awt.image.BufferedImage;
|
import com.mojang.minecraft.renderer.TextureLocation;
|
||||||
|
|
||||||
|
import net.PeytonPlayz585.opengl.LWJGLMain;
|
||||||
|
import net.PeytonPlayz585.opengl.MinecraftImageData;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import javax.imageio.ImageIO;
|
|
||||||
|
import org.lwjgl.GLAllocation;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
public final class Font {
|
public final class Font {
|
||||||
private int[] charWidths = new int[256];
|
private int charWidths[];
|
||||||
private int fontTexture = 0;
|
public String fontTextureName;
|
||||||
|
private int fontDisplayLists;
|
||||||
|
private IntBuffer buffer;
|
||||||
|
|
||||||
|
public static final char formatChar = '\247';
|
||||||
|
|
||||||
public Font(String var1, Textures var2) {
|
|
||||||
BufferedImage var3;
|
|
||||||
try {
|
|
||||||
var3 = ImageIO.read(Textures.class.getResourceAsStream(var1));
|
|
||||||
} catch (IOException var13) {
|
|
||||||
throw new RuntimeException(var13);
|
|
||||||
}
|
|
||||||
|
|
||||||
int var4 = var3.getWidth();
|
public Font(String var1) {
|
||||||
int var5 = var3.getHeight();
|
charWidths = new int[256];
|
||||||
int[] var6 = new int[var4 * var5];
|
fontTextureName = null;
|
||||||
var3.getRGB(0, 0, var4, var5, var6, 0, var4);
|
MinecraftImageData bufferedimage = GL11.loadPNG(GL11.loadResourceBytes(var1));
|
||||||
|
int i = bufferedimage.w;
|
||||||
for(int var14 = 0; var14 < 128; ++var14) {
|
int j = bufferedimage.h;
|
||||||
var5 = var14 % 16;
|
int ai[] = bufferedimage.data;
|
||||||
int var7 = var14 / 16;
|
for (int k = 0; k < 256; k++) {
|
||||||
int var8 = 0;
|
int l = k % 16;
|
||||||
|
int k1 = k / 16;
|
||||||
for(boolean var9 = false; var8 < 8 && !var9; ++var8) {
|
int j2 = 7;
|
||||||
int var10 = (var5 << 3) + var8;
|
do {
|
||||||
var9 = true;
|
if (j2 < 0) {
|
||||||
|
break;
|
||||||
for(int var11 = 0; var11 < 8 && var9; ++var11) {
|
}
|
||||||
int var12 = ((var7 << 3) + var11) * var4;
|
int i3 = l * 8 + j2;
|
||||||
var12 = var6[var10 + var12] & 255;
|
boolean flag = true;
|
||||||
if(var12 > 128) {
|
for (int l3 = 0; l3 < 8 && flag; l3++) {
|
||||||
var9 = false;
|
int i4 = (k1 * 8 + l3) * i;
|
||||||
|
int k4 = ai[i3 + i4] & 0xff;
|
||||||
|
if (k4 > 0) {
|
||||||
|
flag = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if(var14 == 32) {
|
if (!flag) {
|
||||||
var8 = 4;
|
break;
|
||||||
|
}
|
||||||
|
j2--;
|
||||||
|
} while (true);
|
||||||
|
if (k == 32) {
|
||||||
|
j2 = 2;
|
||||||
}
|
}
|
||||||
|
charWidths[k] = j2 + 2;
|
||||||
this.charWidths[var14] = var8;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.fontTexture = var2.getTextureId(var1);
|
fontTextureName = var1;
|
||||||
|
fontDisplayLists = GLAllocation.generateDisplayLists(288);
|
||||||
|
Tesselator tessellator = Tesselator.instance;
|
||||||
|
for (int i1 = 0; i1 < 256; i1++) {
|
||||||
|
GL11.glNewList(fontDisplayLists + i1, 4864 /* GL_COMPILE */);
|
||||||
|
tessellator.begin(7);
|
||||||
|
int l1 = (i1 % 16) * 8;
|
||||||
|
int k2 = (i1 / 16) * 8;
|
||||||
|
float f = 7.99F;
|
||||||
|
float f1 = 0.0F;
|
||||||
|
float f2 = 0.0F;
|
||||||
|
tessellator.vertexUV(0.0D, 0.0F + f, 0.0D, (float) l1 / 128F + f1, ((float) k2 + f) / 128F + f2);
|
||||||
|
tessellator.vertexUV(0.0F + f, 0.0F + f, 0.0D, ((float) l1 + f) / 128F + f1, ((float) k2 + f) / 128F + f2);
|
||||||
|
tessellator.vertexUV(0.0F + f, 0.0D, 0.0D, ((float) l1 + f) / 128F + f1, (float) k2 / 128F + f2);
|
||||||
|
tessellator.vertexUV(0.0D, 0.0D, 0.0D, (float) l1 / 128F + f1, (float) k2 / 128F + f2);
|
||||||
|
tessellator.end();
|
||||||
|
GL11.glEndList();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int j1 = 0; j1 < 32; j1++) {
|
||||||
|
int i2 = (j1 >> 3 & 1) * 85;
|
||||||
|
int l2 = (j1 >> 2 & 1) * 170 + i2;
|
||||||
|
int j3 = (j1 >> 1 & 1) * 170 + i2;
|
||||||
|
int k3 = (j1 >> 0 & 1) * 170 + i2;
|
||||||
|
if (j1 == 6) {
|
||||||
|
l2 += 85;
|
||||||
|
}
|
||||||
|
boolean flag1 = j1 >= 16;
|
||||||
|
if (flag1) {
|
||||||
|
l2 /= 4;
|
||||||
|
j3 /= 4;
|
||||||
|
k3 /= 4;
|
||||||
|
}
|
||||||
|
GL11.glNewList(fontDisplayLists + 256 + j1, 4864 /* GL_COMPILE */);
|
||||||
|
GL11.glColor3f((float) l2 / 255F, (float) j3 / 255F, (float) k3 / 255F);
|
||||||
|
GL11.glEndList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void drawShadow(String var1, int var2, int var3, int var4) {
|
public final void drawShadow(String var1, int var2, int var3, int var4) {
|
||||||
|
@ -61,87 +107,63 @@ public final class Font {
|
||||||
this.draw(var1, var2, var3, var4, false);
|
this.draw(var1, var2, var3, var4, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void draw(String var1, int var2, int var3, int var4, boolean var5) {
|
private void draw(String s, int i, int j, int k, boolean flag) {
|
||||||
if(var1 != null) {
|
if (s == null) {
|
||||||
char[] var12 = var1.toCharArray();
|
return;
|
||||||
if(var5) {
|
|
||||||
var4 = (var4 & 16579836) >> 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
|
||||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.fontTexture);
|
|
||||||
Tesselator var6 = Tesselator.instance;
|
|
||||||
var6.begin();
|
|
||||||
var6.color(var4);
|
|
||||||
int var7 = 0;
|
|
||||||
|
|
||||||
for(int var8 = 0; var8 < var12.length; ++var8) {
|
|
||||||
int var9;
|
|
||||||
if(var12[var8] == 38 && var12.length > var8 + 1) {
|
|
||||||
var4 = "0123456789abcdef".indexOf(var12[var8 + 1]);
|
|
||||||
if(var4 < 0) {
|
|
||||||
var4 = 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
var9 = (var4 & 8) << 3;
|
|
||||||
int var10 = (var4 & 1) * 191 + var9;
|
|
||||||
int var11 = ((var4 & 2) >> 1) * 191 + var9;
|
|
||||||
var4 = ((var4 & 4) >> 2) * 191 + var9;
|
|
||||||
var4 = var4 << 16 | var11 << 8 | var10;
|
|
||||||
var8 += 2;
|
|
||||||
if(var5) {
|
|
||||||
var4 = (var4 & 16579836) >> 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
var6.color(var4);
|
|
||||||
}
|
|
||||||
|
|
||||||
var4 = var12[var8] % 16 << 3;
|
|
||||||
var9 = var12[var8] / 16 << 3;
|
|
||||||
float var13 = 7.99F;
|
|
||||||
var6.vertexUV((float)(var2 + var7), (float)var3 + var13, 0.0F, (float)var4 / 128.0F, ((float)var9 + var13) / 128.0F);
|
|
||||||
var6.vertexUV((float)(var2 + var7) + var13, (float)var3 + var13, 0.0F, ((float)var4 + var13) / 128.0F, ((float)var9 + var13) / 128.0F);
|
|
||||||
var6.vertexUV((float)(var2 + var7) + var13, (float)var3, 0.0F, ((float)var4 + var13) / 128.0F, (float)var9 / 128.0F);
|
|
||||||
var6.vertexUV((float)(var2 + var7), (float)var3, 0.0F, (float)var4 / 128.0F, (float)var9 / 128.0F);
|
|
||||||
var7 += this.charWidths[var12[var8]];
|
|
||||||
}
|
|
||||||
|
|
||||||
var6.end();
|
|
||||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
|
||||||
}
|
}
|
||||||
|
if (flag) {
|
||||||
|
int l = k & 0xff000000;
|
||||||
|
k = (k & 0xfcfcfc) >> 2;
|
||||||
|
k += l;
|
||||||
|
}
|
||||||
|
new TextureLocation(fontTextureName).bindTexture();
|
||||||
|
float f = (float) (k >> 16 & 0xff) / 255F;
|
||||||
|
float f1 = (float) (k >> 8 & 0xff) / 255F;
|
||||||
|
float f2 = (float) (k & 0xff) / 255F;
|
||||||
|
float f3 = (float) (k >> 24 & 0xff) / 255F;
|
||||||
|
if (f3 == 0.0F) {
|
||||||
|
f3 = 1.0F;
|
||||||
|
}
|
||||||
|
GL11.glColor4f(f, f1, f2, f3);
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslatef(i, j, 0.0F);
|
||||||
|
for (int i1 = 0; i1 < s.length(); i1++) {
|
||||||
|
for (; s.length() > i1 + 1 && s.charAt(i1) == '\247'; i1 += 2) {
|
||||||
|
int j1 = "0123456789abcdef".indexOf(s.toLowerCase().charAt(i1 + 1));
|
||||||
|
if (j1 < 0 || j1 > 15) {
|
||||||
|
j1 = 15;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i1 < s.length()) {
|
||||||
|
int k1 = FontAllowedCharacters.isAllowed(s.charAt(i1));
|
||||||
|
if (k1 >= 0) {
|
||||||
|
GL11.glCallList(fontDisplayLists + k1 + 32);
|
||||||
|
GL11.glTranslatef(charWidths[k1 + 32], 0.0F, 0.0F);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
public final int width(String var1) {
|
public final int width(String s) {
|
||||||
if(var1 == null) {
|
if (s == null) {
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
|
||||||
char[] var4 = var1.toCharArray();
|
|
||||||
int var2 = 0;
|
|
||||||
|
|
||||||
for(int var3 = 0; var3 < var4.length; ++var3) {
|
|
||||||
if(var4[var3] == 38) {
|
|
||||||
++var3;
|
|
||||||
} else {
|
|
||||||
var2 += this.charWidths[var4[var3]];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return var2;
|
|
||||||
}
|
}
|
||||||
}
|
int i = 0;
|
||||||
|
for (int j = 0; j < s.length(); j++) {
|
||||||
public static String removeColorCodes(String var0) {
|
if (s.charAt(j) == '\247') {
|
||||||
char[] var3 = var0.toCharArray();
|
j++;
|
||||||
String var1 = "";
|
continue;
|
||||||
|
}
|
||||||
for(int var2 = 0; var2 < var3.length; ++var2) {
|
int k = FontAllowedCharacters.isAllowed(s.charAt(j));
|
||||||
if(var3[var2] == 38) {
|
if (k >= 0) {
|
||||||
++var2;
|
i += charWidths[k + 32];
|
||||||
} else {
|
|
||||||
var1 = var1 + var3[var2];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return var1;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.mojang.minecraft.gui;
|
||||||
|
|
||||||
|
public class FontAllowedCharacters {
|
||||||
|
|
||||||
|
public static int isAllowed(char c) {
|
||||||
|
int cc = (int) c;
|
||||||
|
for(int i = 0; i < allowedChars.length; ++i) {
|
||||||
|
if(cc == allowedChars[i]) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final int[] allowedChars = new int[]{
|
||||||
|
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,
|
||||||
|
59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,
|
||||||
|
86,87,88,89,90,91,92,93,94,95,39,97,98,99,100,101,102,103,104,105,106,107,108,109,
|
||||||
|
110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,8962,199,252,
|
||||||
|
233,226,228,224,229,231,234,235,232,239,238,236,196,197,201,230,198,244,246,242,
|
||||||
|
251,249,255,214,220,248,163,216,215,402,225,237,243,250,241,209,170,186,191,174,
|
||||||
|
172,189,188,161,171,187
|
||||||
|
};
|
||||||
|
|
||||||
|
public static final char field_22286_b[] = { '/', '\n', '\r', '\t', '\0', '\f', '`', '?', '*', '\\', '<', '>', '|', '"', ':' };
|
||||||
|
|
||||||
|
}
|
|
@ -7,8 +7,8 @@ import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.ObjectInputStream;
|
//import java.io.ObjectInputStream;
|
||||||
import java.io.ObjectOutputStream;
|
//import java.io.ObjectOutputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
@ -23,219 +23,224 @@ public final class LevelIO {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final boolean save(Level var1, String var2, String var3, String var4, String var5, int var6) {
|
public final boolean save(Level var1, String var2, String var3, String var4, String var5, int var6) {
|
||||||
if(var4 == null) {
|
// if(var4 == null) {
|
||||||
var4 = "";
|
// var4 = "";
|
||||||
}
|
// }
|
||||||
|
|
||||||
if(this.a != null && this.a != null) {
|
// if(this.a != null && this.a != null) {
|
||||||
this.a.beginLevelLoading("Saving level");
|
// this.a.beginLevelLoading("Saving level");
|
||||||
}
|
// }
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
if(this.a != null && this.a != null) {
|
// if(this.a != null && this.a != null) {
|
||||||
this.a.levelLoadUpdate("Compressing..");
|
// this.a.levelLoadUpdate("Compressing..");
|
||||||
}
|
// }
|
||||||
|
|
||||||
ByteArrayOutputStream var7 = new ByteArrayOutputStream();
|
// ByteArrayOutputStream var7 = new ByteArrayOutputStream();
|
||||||
save(var1, var7);
|
// save(var1, var7);
|
||||||
var7.close();
|
// var7.close();
|
||||||
byte[] var10 = var7.toByteArray();
|
// byte[] var10 = var7.toByteArray();
|
||||||
if(this.a != null && this.a != null) {
|
// if(this.a != null && this.a != null) {
|
||||||
this.a.levelLoadUpdate("Connecting..");
|
// this.a.levelLoadUpdate("Connecting..");
|
||||||
}
|
// }
|
||||||
|
|
||||||
URL var12 = new URL("http://" + var2 + "/level/save.html");
|
// URL var12 = new URL("http://" + var2 + "/level/save.html");
|
||||||
HttpURLConnection var13 = (HttpURLConnection)var12.openConnection();
|
// HttpURLConnection var13 = (HttpURLConnection)var12.openConnection();
|
||||||
var13.setDoInput(true);
|
// var13.setDoInput(true);
|
||||||
var13.setDoOutput(true);
|
// var13.setDoOutput(true);
|
||||||
var13.setRequestMethod("POST");
|
// var13.setRequestMethod("POST");
|
||||||
DataOutputStream var14 = new DataOutputStream(var13.getOutputStream());
|
// DataOutputStream var14 = new DataOutputStream(var13.getOutputStream());
|
||||||
var14.writeUTF(var3);
|
// var14.writeUTF(var3);
|
||||||
var14.writeUTF(var4);
|
// var14.writeUTF(var4);
|
||||||
var14.writeUTF(var5);
|
// var14.writeUTF(var5);
|
||||||
var14.writeByte(var6);
|
// var14.writeByte(var6);
|
||||||
var14.writeInt(var10.length);
|
// var14.writeInt(var10.length);
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.levelLoadUpdate("Saving..");
|
// this.a.levelLoadUpdate("Saving..");
|
||||||
}
|
// }
|
||||||
|
|
||||||
var14.write(var10);
|
// var14.write(var10);
|
||||||
var14.close();
|
// var14.close();
|
||||||
BufferedReader var11 = new BufferedReader(new InputStreamReader(var13.getInputStream()));
|
// BufferedReader var11 = new BufferedReader(new InputStreamReader(var13.getInputStream()));
|
||||||
var2 = var11.readLine();
|
// var2 = var11.readLine();
|
||||||
if(!var2.equalsIgnoreCase("ok")) {
|
// if(!var2.equalsIgnoreCase("ok")) {
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.levelLoadUpdate("Failed: " + var11.readLine());
|
// this.a.levelLoadUpdate("Failed: " + var11.readLine());
|
||||||
}
|
// }
|
||||||
|
|
||||||
var11.close();
|
// var11.close();
|
||||||
Thread.sleep(1000L);
|
// Thread.sleep(1000L);
|
||||||
return false;
|
// return false;
|
||||||
} else {
|
// } else {
|
||||||
var11.close();
|
// var11.close();
|
||||||
return true;
|
// return true;
|
||||||
}
|
// }
|
||||||
} catch (Exception var9) {
|
// } catch (Exception var9) {
|
||||||
var9.printStackTrace();
|
// var9.printStackTrace();
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.levelLoadUpdate("Failed!");
|
// this.a.levelLoadUpdate("Failed!");
|
||||||
}
|
// }
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
Thread.sleep(1000L);
|
// Thread.sleep(1000L);
|
||||||
} catch (InterruptedException var8) {
|
// } catch (InterruptedException var8) {
|
||||||
}
|
// }
|
||||||
|
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final Level load(String var1, String var2, int var3) {
|
public final Level load(String var1, String var2, int var3) {
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.beginLevelLoading("Loading level");
|
// this.a.beginLevelLoading("Loading level");
|
||||||
}
|
// }
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.levelLoadUpdate("Connecting..");
|
// this.a.levelLoadUpdate("Connecting..");
|
||||||
}
|
// }
|
||||||
|
|
||||||
URL var6 = new URL("http://" + var1 + "/level/load.html?id=" + var3 + "&user=" + var2);
|
// URL var6 = new URL("http://" + var1 + "/level/load.html?id=" + var3 + "&user=" + var2);
|
||||||
HttpURLConnection var7 = (HttpURLConnection)var6.openConnection();
|
// HttpURLConnection var7 = (HttpURLConnection)var6.openConnection();
|
||||||
var7.setDoInput(true);
|
// var7.setDoInput(true);
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.levelLoadUpdate("Loading..");
|
// this.a.levelLoadUpdate("Loading..");
|
||||||
}
|
// }
|
||||||
|
|
||||||
DataInputStream var8 = new DataInputStream(var7.getInputStream());
|
// DataInputStream var8 = new DataInputStream(var7.getInputStream());
|
||||||
var2 = var8.readUTF();
|
// var2 = var8.readUTF();
|
||||||
if(var2.equalsIgnoreCase("ok")) {
|
// if(var2.equalsIgnoreCase("ok")) {
|
||||||
return this.load(var8);
|
// return this.load(var8);
|
||||||
} else {
|
// } else {
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.levelLoadUpdate("Failed: " + var8.readUTF());
|
// this.a.levelLoadUpdate("Failed: " + var8.readUTF());
|
||||||
}
|
// }
|
||||||
|
|
||||||
var8.close();
|
// var8.close();
|
||||||
Thread.sleep(1000L);
|
// Thread.sleep(1000L);
|
||||||
return null;
|
// return null;
|
||||||
}
|
// }
|
||||||
} catch (Exception var5) {
|
// } catch (Exception var5) {
|
||||||
var5.printStackTrace();
|
// var5.printStackTrace();
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.levelLoadUpdate("Failed!");
|
// this.a.levelLoadUpdate("Failed!");
|
||||||
}
|
// }
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
Thread.sleep(3000L);
|
// Thread.sleep(3000L);
|
||||||
} catch (InterruptedException var4) {
|
// } catch (InterruptedException var4) {
|
||||||
}
|
// }
|
||||||
|
|
||||||
return null;
|
// return null;
|
||||||
}
|
// }
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final Level load(InputStream var1) {
|
public final Level load(InputStream var1) {
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.beginLevelLoading("Loading level");
|
// this.a.beginLevelLoading("Loading level");
|
||||||
}
|
// }
|
||||||
|
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.levelLoadUpdate("Reading..");
|
// this.a.levelLoadUpdate("Reading..");
|
||||||
}
|
// }
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
DataInputStream var10 = new DataInputStream(new GZIPInputStream(var1));
|
// DataInputStream var10 = new DataInputStream(new GZIPInputStream(var1));
|
||||||
int var12 = var10.readInt();
|
// int var12 = var10.readInt();
|
||||||
if(var12 != 656127880) {
|
// if(var12 != 656127880) {
|
||||||
return null;
|
// return null;
|
||||||
} else {
|
// } else {
|
||||||
byte var13 = var10.readByte();
|
// byte var13 = var10.readByte();
|
||||||
if(var13 > 2) {
|
// if(var13 > 2) {
|
||||||
return null;
|
// return null;
|
||||||
} else if(var13 <= 1) {
|
// } else if(var13 <= 1) {
|
||||||
System.out.println("Version is 1!");
|
// System.out.println("Version is 1!");
|
||||||
String var15 = var10.readUTF();
|
// String var15 = var10.readUTF();
|
||||||
String var16 = var10.readUTF();
|
// String var16 = var10.readUTF();
|
||||||
long var7 = var10.readLong();
|
// long var7 = var10.readLong();
|
||||||
short var3 = var10.readShort();
|
// short var3 = var10.readShort();
|
||||||
short var4 = var10.readShort();
|
// short var4 = var10.readShort();
|
||||||
short var5 = var10.readShort();
|
// short var5 = var10.readShort();
|
||||||
byte[] var6 = new byte[var3 * var4 * var5];
|
// byte[] var6 = new byte[var3 * var4 * var5];
|
||||||
var10.readFully(var6);
|
// var10.readFully(var6);
|
||||||
var10.close();
|
// var10.close();
|
||||||
Level var11 = new Level();
|
// Level var11 = new Level();
|
||||||
var11.setData(var3, var5, var4, var6);
|
// var11.setData(var3, var5, var4, var6);
|
||||||
var11.name = var15;
|
// var11.name = var15;
|
||||||
var11.creator = var16;
|
// var11.creator = var16;
|
||||||
var11.createTime = var7;
|
// var11.createTime = var7;
|
||||||
return var11;
|
// return var11;
|
||||||
} else {
|
// } else {
|
||||||
ObjectInputStream var14 = new ObjectInputStream(var10);
|
// ObjectInputStream var14 = new ObjectInputStream(var10);
|
||||||
Level var2 = (Level)var14.readObject();
|
// Level var2 = (Level)var14.readObject();
|
||||||
var2.initTransient();
|
// var2.initTransient();
|
||||||
var14.close();
|
// var14.close();
|
||||||
return var2;
|
// return var2;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
} catch (Exception var9) {
|
// } catch (Exception var9) {
|
||||||
var9.printStackTrace();
|
// var9.printStackTrace();
|
||||||
(new StringBuilder()).append("Failed to load level: ").append(var9.toString()).toString();
|
// (new StringBuilder()).append("Failed to load level: ").append(var9.toString()).toString();
|
||||||
return null;
|
// return null;
|
||||||
}
|
// }
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final Level loadLegacy(InputStream var1) {
|
public final Level loadLegacy(InputStream var1) {
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.beginLevelLoading("Loading level");
|
// this.a.beginLevelLoading("Loading level");
|
||||||
}
|
// }
|
||||||
|
|
||||||
if(this.a != null) {
|
// if(this.a != null) {
|
||||||
this.a.levelLoadUpdate("Reading..");
|
// this.a.levelLoadUpdate("Reading..");
|
||||||
}
|
// }
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
DataInputStream var5 = new DataInputStream(new GZIPInputStream(var1));
|
// DataInputStream var5 = new DataInputStream(new GZIPInputStream(var1));
|
||||||
String var7 = "--";
|
// String var7 = "--";
|
||||||
String var2 = "unknown";
|
// String var2 = "unknown";
|
||||||
byte[] var3 = new byte[256 << 8 << 6];
|
// byte[] var3 = new byte[256 << 8 << 6];
|
||||||
var5.readFully(var3);
|
// var5.readFully(var3);
|
||||||
var5.close();
|
// var5.close();
|
||||||
Level var6 = new Level();
|
// Level var6 = new Level();
|
||||||
var6.setData(256, 64, 256, var3);
|
// var6.setData(256, 64, 256, var3);
|
||||||
var6.name = var7;
|
// var6.name = var7;
|
||||||
var6.creator = var2;
|
// var6.creator = var2;
|
||||||
var6.createTime = 0L;
|
// var6.createTime = 0L;
|
||||||
return var6;
|
// return var6;
|
||||||
} catch (Exception var4) {
|
// } catch (Exception var4) {
|
||||||
var4.printStackTrace();
|
// var4.printStackTrace();
|
||||||
(new StringBuilder()).append("Failed to load level: ").append(var4.toString()).toString();
|
// (new StringBuilder()).append("Failed to load level: ").append(var4.toString()).toString();
|
||||||
return null;
|
// return null;
|
||||||
}
|
// }
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void save(Level var0, OutputStream var1) {
|
public static void save(Level var0, OutputStream var1) {
|
||||||
try {
|
// try {
|
||||||
DataOutputStream var3 = new DataOutputStream(new GZIPOutputStream(var1));
|
// DataOutputStream var3 = new DataOutputStream(new GZIPOutputStream(var1));
|
||||||
var3.writeInt(656127880);
|
// var3.writeInt(656127880);
|
||||||
var3.writeByte(2);
|
// var3.writeByte(2);
|
||||||
ObjectOutputStream var4 = new ObjectOutputStream(var3);
|
// ObjectOutputStream var4 = new ObjectOutputStream(var3);
|
||||||
var4.writeObject(var0);
|
// var4.writeObject(var0);
|
||||||
var4.close();
|
// var4.close();
|
||||||
} catch (Exception var2) {
|
// } catch (Exception var2) {
|
||||||
var2.printStackTrace();
|
// var2.printStackTrace();
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] loadBlocks(InputStream var0) {
|
public static byte[] loadBlocks(InputStream var0) {
|
||||||
try {
|
// try {
|
||||||
DataInputStream var3 = new DataInputStream(new GZIPInputStream(var0));
|
// DataInputStream var3 = new DataInputStream(new GZIPInputStream(var0));
|
||||||
byte[] var1 = new byte[var3.readInt()];
|
// byte[] var1 = new byte[var3.readInt()];
|
||||||
var3.readFully(var1);
|
// var3.readFully(var1);
|
||||||
var3.close();
|
// var3.close();
|
||||||
return var1;
|
// return var1;
|
||||||
} catch (Exception var2) {
|
// } catch (Exception var2) {
|
||||||
throw new RuntimeException(var2);
|
// throw new RuntimeException(var2);
|
||||||
}
|
// }
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
package com.mojang.minecraft.renderer;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class TextureLocation {
|
||||||
|
|
||||||
|
private String path;
|
||||||
|
private int glObject;
|
||||||
|
|
||||||
|
public TextureLocation(String path) {
|
||||||
|
this.path = path;
|
||||||
|
this.glObject = -1;
|
||||||
|
locations.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void freeTextures() {
|
||||||
|
for (TextureLocation l : locations) {
|
||||||
|
l.glObject = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTexturePointer() {
|
||||||
|
Textures t = new Textures();
|
||||||
|
if (glObject == -1) {
|
||||||
|
glObject = t.getTextureId(path);
|
||||||
|
if (glObject == -1) {
|
||||||
|
System.err.println("could not load: " + path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return glObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int bindTexture() {
|
||||||
|
Textures t = new Textures();
|
||||||
|
int i = getTexturePointer();
|
||||||
|
if(i != -1) {
|
||||||
|
t.bindTexture(i);
|
||||||
|
}
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final ArrayList<TextureLocation> locations = new ArrayList();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user