Client-side multiplayer bugs, fix compass texture
This commit is contained in:
parent
39b23c9949
commit
f734fb3059
|
@ -757,8 +757,7 @@ public class EaglerAdapterImpl2 {
|
|||
try {
|
||||
BufferedImage img = ImageIO.read(new ByteArrayInputStream(data));
|
||||
int[] pxls = img.getRGB(0, 0, img.getWidth(), img.getHeight(), null, 0, img.getWidth());
|
||||
IntBuffer buffer = IntBuffer.wrap(pxls);
|
||||
return new EaglerImage(buffer, img.getWidth(), img.getHeight(), true);
|
||||
return new EaglerImage(img.getWidth(), img.getHeight(), pxls, true);
|
||||
} catch (IOException e) {
|
||||
System.err.println("Could not load PNG file:");
|
||||
e.printStackTrace();
|
||||
|
@ -916,6 +915,10 @@ public class EaglerAdapterImpl2 {
|
|||
|
||||
}));
|
||||
}
|
||||
|
||||
public static String forcedUser = null;
|
||||
public static String forcedServer = null;
|
||||
public static boolean joinServerOnLaunch = false;
|
||||
|
||||
public static final void destroyContext() {
|
||||
Display.destroy();
|
||||
|
|
|
@ -334,10 +334,10 @@ public class Tessellator {
|
|||
*/
|
||||
public void setNormal(float par1, float par2, float par3) {
|
||||
this.hasNormals = true;
|
||||
float len = (float) Math.sqrt(par1 * par1 + par2 * par2 + par3 * par3);
|
||||
int var4 = (int) ((par1 / len) * 127.0F) + 127;
|
||||
int var5 = (int) ((par2 / len) * 127.0F) + 127;
|
||||
int var6 = (int) ((par3 / len) * 127.0F) + 127;
|
||||
//float len = (float) Math.sqrt(par1 * par1 + par2 * par2 + par3 * par3);
|
||||
int var4 = (int) ((par1) * 127.0F) + 127;
|
||||
int var5 = (int) ((par2) * 127.0F) + 127;
|
||||
int var6 = (int) ((par3) * 127.0F) + 127;
|
||||
this.normal = var4 & 255 | (var5 & 255) << 8 | (var6 & 255) << 16;
|
||||
}
|
||||
|
||||
|
|
|
@ -580,6 +580,11 @@ public class EaglerAdapterGL30 extends EaglerAdapterImpl2 {
|
|||
_wglBindTexture(_wGL_TEXTURE_2D, t);
|
||||
}
|
||||
|
||||
public static final void glBindTexture(int p2) {
|
||||
TextureGL t = texObjects.get(p2);
|
||||
_wglBindTexture(_wGL_TEXTURE_2D, t);
|
||||
}
|
||||
|
||||
public static final void glBindTexture(int p1, TextureGL p2) {
|
||||
_wglBindTexture(_wGL_TEXTURE_2D, p2);
|
||||
}
|
||||
|
|
|
@ -1,55 +1,59 @@
|
|||
package net.lax1dude.eaglercraft;
|
||||
|
||||
import java.nio.IntBuffer;
|
||||
|
||||
public class EaglerImage {
|
||||
|
||||
public final IntBuffer data;
|
||||
public final int w;
|
||||
public final int h;
|
||||
public final boolean alpha;
|
||||
private final int wh;
|
||||
|
||||
public EaglerImage(int pw, int ph, boolean palpha) {
|
||||
this.w = pw;
|
||||
this.h = ph;
|
||||
this.alpha = palpha;
|
||||
this.data = IntBuffer.allocate(pw * ph);
|
||||
this.wh = pw * ph;
|
||||
}
|
||||
|
||||
public EaglerImage(IntBuffer pdata, int pw, int ph, boolean palpha) {
|
||||
if (pdata.capacity() != pw * ph) {
|
||||
throw new IllegalArgumentException("buffer capacity does not equal image size");
|
||||
}
|
||||
w = pw;
|
||||
h = ph;
|
||||
alpha = palpha;
|
||||
wh = pw * ph;
|
||||
if (!alpha) {
|
||||
for (int i = 0; i < wh; ++i) {
|
||||
pdata.put(i, pdata.get(i) | 0xFF000000);
|
||||
}
|
||||
pdata.rewind();
|
||||
}
|
||||
data = pdata;
|
||||
}
|
||||
|
||||
public EaglerImage getSubImage(int x, int y, int pw, int ph) {
|
||||
int start = y * w + x;
|
||||
IntBuffer subBuffer = data.slice();
|
||||
subBuffer.position(start);
|
||||
subBuffer.limit(start + pw * ph);
|
||||
int[] temp = new int[pw * ph];
|
||||
subBuffer.get(temp);
|
||||
IntBuffer newBuffer = IntBuffer.wrap(temp);
|
||||
return new EaglerImage(newBuffer, pw, ph, alpha);
|
||||
}
|
||||
public final int[] data;
|
||||
public final int w;
|
||||
public final int h;
|
||||
public final boolean alpha;
|
||||
|
||||
public EaglerImage(int width, int height, int[] pixels, boolean alpha) {
|
||||
this.w = width;
|
||||
this.h = height;
|
||||
this.data = pixels;
|
||||
this.alpha = alpha;
|
||||
}
|
||||
|
||||
public EaglerImage(int width, int height, boolean alpha) {
|
||||
this.w = width;
|
||||
this.h = height;
|
||||
this.data = new int[width * height];
|
||||
this.alpha = alpha;
|
||||
}
|
||||
|
||||
public EaglerImage getSubImage(int x, int y, int pw, int ph) {
|
||||
int[] img = new int[pw * ph];
|
||||
for(int i = 0; i < ph; ++i) {
|
||||
System.arraycopy(data, (i + y) * this.w + x, img, i * pw, pw);
|
||||
}
|
||||
return new EaglerImage(pw, ph, img, alpha);
|
||||
}
|
||||
|
||||
public int[] data() {
|
||||
int[] array = new int[wh];
|
||||
data.rewind();
|
||||
data.get(array);
|
||||
return array;
|
||||
}
|
||||
return this.data;
|
||||
}
|
||||
|
||||
public int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize) {
|
||||
if (startX < 0 || startY < 0 || w <= 0 || h <= 0 ||
|
||||
startX + w > this.w || startY + h > this.h ||
|
||||
rgbArray.length < offset + w * h) {
|
||||
throw new IllegalArgumentException("Suck my dick nigga");
|
||||
}
|
||||
|
||||
for (int y = startY; y < startY + h; y++) {
|
||||
for (int x = startX; x < startX + w; x++) {
|
||||
int imageDataIndex = y * this.w + x;
|
||||
int argb = data[imageDataIndex];
|
||||
int alpha = (argb >> 24) & 0xff;
|
||||
int red = (argb >> 16) & 0xff;
|
||||
int green = (argb >> 8) & 0xff;
|
||||
int blue = argb & 0xff;
|
||||
int rgb = (alpha << 24) | (red << 16) | (green << 8) | blue;
|
||||
|
||||
rgbArray[offset + (y - startY) * scansize + (x - startX)] = rgb;
|
||||
}
|
||||
}
|
||||
|
||||
return rgbArray;
|
||||
}
|
||||
}
|
|
@ -1,17 +1,24 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.PeytonPlayz585.opengl.GL11;
|
||||
import net.lax1dude.eaglercraft.EaglerImage;
|
||||
|
||||
public class ColorizerFoliage {
|
||||
private static int field_6529_a[] = null;
|
||||
private static final int[] field_6529_a = new int[65536];
|
||||
|
||||
public static int func_4146_a(double var0, double var2) {
|
||||
if(field_6529_a == null) {
|
||||
field_6529_a = GL11.loadPNG(GL11.loadResourceBytes("/misc/foliagecolor.png")).data();
|
||||
}
|
||||
var2 *= var0;
|
||||
int var4 = (int)((1.0D - var0) * 255.0D);
|
||||
int var5 = (int)((1.0D - var2) * 255.0D);
|
||||
return field_6529_a[var5 << 8 | var4];
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
try {
|
||||
EaglerImage var0 = GL11.loadPNG(GL11.loadResourceBytes("/misc/foliagecolor.png"));
|
||||
var0.getRGB(0, 0, 256, 256, field_6529_a, 0, 256);
|
||||
} catch (Exception var1) {
|
||||
var1.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,17 +1,25 @@
|
|||
package net.minecraft.src;
|
||||
|
||||
import net.PeytonPlayz585.opengl.GL11;
|
||||
import net.lax1dude.eaglercraft.EaglerImage;
|
||||
|
||||
public class ColorizerGrass {
|
||||
private static int[] field_6540_a = null;
|
||||
private static final int[] field_6540_a = new int[65536];
|
||||
|
||||
public static int func_4147_a(double var0, double var2) {
|
||||
if(field_6540_a == null) {
|
||||
field_6540_a = GL11.loadPNG(GL11.loadResourceBytes("/misc/grasscolor.png")).data();
|
||||
}
|
||||
var2 *= var0;
|
||||
int var4 = (int)((1.0D - var0) * 255.0D);
|
||||
int var5 = (int)((1.0D - var2) * 255.0D);
|
||||
return field_6540_a[var5 << 8 | var4];
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
try {
|
||||
EaglerImage var0 = GL11.loadPNG(GL11.loadResourceBytes("/misc/grasscolor.png"));
|
||||
var0.getRGB(0, 0, 256, 256, field_6540_a, 0, 256);
|
||||
} catch (Exception var1) {
|
||||
var1.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -176,10 +176,14 @@ public class NetworkManager {
|
|||
oldChunkBuffer = null;
|
||||
}
|
||||
|
||||
} else {
|
||||
if(this.timeSinceLastRead++ == 1200) {
|
||||
this.networkShutdown("Timed out");
|
||||
}
|
||||
}
|
||||
|
||||
if(this.timeSinceLastRead++ == 1200) {
|
||||
this.networkShutdown("Timed out");
|
||||
}
|
||||
|
||||
if(!isConnectionOpen() && !this.isTerminating) {
|
||||
this.networkShutdown("Lost connection!");
|
||||
}
|
||||
|
||||
if(this.isTerminating && this.readChunks.isEmpty()) {
|
||||
|
@ -206,15 +210,15 @@ public class NetworkManager {
|
|||
static boolean isRunning(NetworkManager var0) {
|
||||
return var0.isRunning;
|
||||
}
|
||||
|
||||
static boolean isConnectionOpen() {
|
||||
return GL11.connectionOpen();
|
||||
}
|
||||
|
||||
static boolean isServerTerminating(NetworkManager var0) {
|
||||
return var0.isServerTerminating;
|
||||
}
|
||||
|
||||
// static void readNetworkPacket(NetworkManager var0) {
|
||||
// var0.readPacket();
|
||||
// }
|
||||
|
||||
static void sendNetworkPacket(NetworkManager var0) {
|
||||
var0.sendPacket();
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@ public class RenderEngine {
|
|||
textureNameToImageMap = new HashMap<Integer, EaglerImage>();
|
||||
singleIntBuffer = GLAllocation.createDirectIntBuffer(1);
|
||||
imageDataB1 = GLAllocation.createDirectByteBuffer(0x100000);
|
||||
imageDataB2 = GLAllocation.createDirectByteBuffer(0x100000);
|
||||
textureList = new ArrayList<TextureFX>();
|
||||
clampTexture = false;
|
||||
blurTexture = false;
|
||||
|
@ -47,6 +46,7 @@ public class RenderEngine {
|
|||
blurTexture = false;
|
||||
} else {
|
||||
setupTexture(readTextureImage(var2.func_6481_a(s)), i);
|
||||
useMipmaps = false;
|
||||
}
|
||||
textureMap.put(s, Integer.valueOf(i));
|
||||
return i;
|
||||
|
@ -81,12 +81,13 @@ public class RenderEngine {
|
|||
|
||||
public void setupTexture(EaglerImage bufferedimage, int i) {
|
||||
bindTexture(i);
|
||||
GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, 10241 /* GL_TEXTURE_MIN_FILTER */, GL11.GL_NEAREST_MIPMAP_LINEAR);
|
||||
GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, 10240 /* GL_TEXTURE_MAG_FILTER */, GL11.GL_NEAREST /* GL_LINEAR */);
|
||||
GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, GL11.GL_TEXTURE_MAX_LEVEL, 4);
|
||||
if (blurTexture) {
|
||||
GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, 10241 /* GL_TEXTURE_MIN_FILTER */, 9729 /* GL_LINEAR */);
|
||||
GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, 10240 /* GL_TEXTURE_MAG_FILTER */, 9729 /* GL_LINEAR */);
|
||||
if (useMipmaps) {
|
||||
GL11.glTexParameteri(3553, 10241, GL11.GL_NEAREST_MIPMAP_LINEAR);
|
||||
GL11.glTexParameteri(3553, 10240, GL11.GL_NEAREST);
|
||||
GL11.glTexParameteri(3553, GL11.GL_TEXTURE_MAX_LEVEL, 4);
|
||||
} else {
|
||||
GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, 10241 /* GL_TEXTURE_MIN_FILTER */, 9728 /* GL_NEAREST */);
|
||||
GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, 10240 /* GL_TEXTURE_MAG_FILTER */, 9728 /* GL_NEAREST */);
|
||||
}
|
||||
if (clampTexture) {
|
||||
GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, 10242 /* GL_TEXTURE_WRAP_S */, 10496 /* GL_CLAMP */);
|
||||
|
@ -122,28 +123,6 @@ public class RenderEngine {
|
|||
imageDataB1.position(0).limit(abyte0.length);
|
||||
GL11.glTexImage2D(3553 /* GL_TEXTURE_2D */, 0, 6408 /* GL_RGBA */, j, k, 0, 6408 /* GL_RGBA */,
|
||||
5121 /* GL_UNSIGNED_BYTE */, imageDataB1);
|
||||
for (int i1 = 1; i1 <= 4; i1++) {
|
||||
int k1 = j >> i1 - 1;
|
||||
int i2 = j >> i1;
|
||||
int k2 = k >> i1;
|
||||
imageDataB2.clear();
|
||||
for (int i3 = 0; i3 < i2; i3++) {
|
||||
for (int k3 = 0; k3 < k2; k3++) {
|
||||
int i4 = imageDataB1.getInt((i3 * 2 + 0 + (k3 * 2 + 0) * k1) * 4);
|
||||
int k4 = imageDataB1.getInt((i3 * 2 + 1 + (k3 * 2 + 0) * k1) * 4);
|
||||
int l4 = imageDataB1.getInt((i3 * 2 + 1 + (k3 * 2 + 1) * k1) * 4);
|
||||
int i5 = imageDataB1.getInt((i3 * 2 + 0 + (k3 * 2 + 1) * k1) * 4);
|
||||
int j5 = averageColor(averageColor(i4, k4), averageColor(l4, i5));
|
||||
imageDataB2.putInt((i3 + k3 * i2) * 4, j5);
|
||||
}
|
||||
}
|
||||
|
||||
GL11.glTexImage2D(3553 /* GL_TEXTURE_2D */, i1, 6408 /* GL_RGBA */, i2, k2, 0, 6408 /* GL_RGBA */,
|
||||
5121 /* GL_UNSIGNED_BYTE */, imageDataB2);
|
||||
ByteBuffer tmp = imageDataB1;
|
||||
imageDataB1 = imageDataB2;
|
||||
imageDataB2 = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteTexture(int i) {
|
||||
|
@ -234,12 +213,12 @@ public class RenderEngine {
|
|||
|
||||
}
|
||||
|
||||
public static boolean useMipmaps = false;
|
||||
private static HashMap<String, Integer> textureMap;
|
||||
private TexturePackList field_6527_k;
|
||||
private HashMap<Integer, EaglerImage> textureNameToImageMap;
|
||||
public IntBuffer singleIntBuffer;
|
||||
private ByteBuffer imageDataB1;
|
||||
private ByteBuffer imageDataB2;
|
||||
private java.util.List<TextureFX> textureList;
|
||||
private GameSettings options;
|
||||
private boolean clampTexture;
|
||||
|
|
|
@ -1024,4 +1024,4 @@ public class RenderGlobal implements IWorldAccess {
|
|||
|
||||
public void func_935_a(int var1, int var2, int var3, TileEntity var4) {
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,87 +0,0 @@
|
|||
//package net.minecraft.src;
|
||||
//
|
||||
//import java.awt.image.BufferedImage;
|
||||
//import java.io.IOException;
|
||||
//import java.util.Arrays;
|
||||
//import javax.imageio.ImageIO;
|
||||
//
|
||||
//public class TerrainTextureManager {
|
||||
// private float[] field_1181_a = new float[768];
|
||||
// private int[] field_1180_b = new int[5120];
|
||||
// private int[] field_1186_c = new int[5120];
|
||||
// private int[] field_1185_d = new int[5120];
|
||||
// private int[] field_1184_e = new int[5120];
|
||||
// private int[] field_1183_f = new int[34];
|
||||
// private int[] field_1182_g = new int[768];
|
||||
//
|
||||
// public TerrainTextureManager() {
|
||||
// try {
|
||||
// BufferedImage var1 = ImageIO.read(TerrainTextureManager.class.getResource("/terrain.png"));
|
||||
// int[] var2 = new int[65536];
|
||||
// var1.getRGB(0, 0, 256, 256, var2, 0, 256);
|
||||
//
|
||||
// for(int var3 = 0; var3 < 256; ++var3) {
|
||||
// int var4 = 0;
|
||||
// int var5 = 0;
|
||||
// int var6 = 0;
|
||||
// int var7 = var3 % 16 * 16;
|
||||
// int var8 = var3 / 16 * 16;
|
||||
// int var9 = 0;
|
||||
//
|
||||
// for(int var10 = 0; var10 < 16; ++var10) {
|
||||
// for(int var11 = 0; var11 < 16; ++var11) {
|
||||
// int var12 = var2[var11 + var7 + (var10 + var8) * 256];
|
||||
// int var13 = var12 >> 24 & 255;
|
||||
// if(var13 > 128) {
|
||||
// var4 += var12 >> 16 & 255;
|
||||
// var5 += var12 >> 8 & 255;
|
||||
// var6 += var12 & 255;
|
||||
// ++var9;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if(var9 == 0) {
|
||||
// ++var9;
|
||||
// }
|
||||
//
|
||||
// this.field_1181_a[var3 * 3 + 0] = (float)(var4 / var9);
|
||||
// this.field_1181_a[var3 * 3 + 1] = (float)(var5 / var9);
|
||||
// this.field_1181_a[var3 * 3 + 2] = (float)(var6 / var9);
|
||||
// }
|
||||
// }
|
||||
// } catch (IOException var14) {
|
||||
// var14.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// for(int var15 = 0; var15 < 256; ++var15) {
|
||||
// if(Block.blocksList[var15] != null) {
|
||||
// this.field_1182_g[var15 * 3 + 0] = Block.blocksList[var15].getBlockTextureFromSide(1);
|
||||
// this.field_1182_g[var15 * 3 + 1] = Block.blocksList[var15].getBlockTextureFromSide(2);
|
||||
// this.field_1182_g[var15 * 3 + 2] = Block.blocksList[var15].getBlockTextureFromSide(3);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// private void func_800_a() {
|
||||
// for(int var1 = 0; var1 < 32; ++var1) {
|
||||
// for(int var2 = 0; var2 < 160; ++var2) {
|
||||
// int var3 = var1 + var2 * 32;
|
||||
// if(this.field_1186_c[var3] == 0) {
|
||||
// this.field_1180_b[var3] = 0;
|
||||
// }
|
||||
//
|
||||
// if(this.field_1185_d[var3] > this.field_1186_c[var3]) {
|
||||
// int var4 = this.field_1180_b[var3] >> 24 & 255;
|
||||
// this.field_1180_b[var3] = ((this.field_1180_b[var3] & 16711422) >> 1) + this.field_1184_e[var3];
|
||||
// if(var4 < 128) {
|
||||
// this.field_1180_b[var3] = Integer.MIN_VALUE + this.field_1184_e[var3] * 2;
|
||||
// } else {
|
||||
// this.field_1180_b[var3] |= -16777216;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//}
|
|
@ -1,228 +1,140 @@
|
|||
//package net.minecraft.src;
|
||||
//
|
||||
//import java.awt.image.BufferedImage;
|
||||
//import java.io.IOException;
|
||||
//import javax.imageio.ImageIO;
|
||||
//import net.minecraft.client.Minecraft;
|
||||
//
|
||||
//public class TextureCompassFX extends TextureFX {
|
||||
// private Minecraft mc;
|
||||
// private int[] field_4230_h = new int[256];
|
||||
// private double field_4229_i;
|
||||
// private double field_4228_j;
|
||||
//
|
||||
// public TextureCompassFX(Minecraft var1) {
|
||||
// super(Item.compass.getIconIndex((ItemStack)null));
|
||||
// this.mc = var1;
|
||||
// this.field_1128_f = 1;
|
||||
//
|
||||
// try {
|
||||
// BufferedImage var2 = ImageIO.read(Minecraft.class.getResource("/gui/items.png"));
|
||||
// int var3 = this.field_1126_b % 16 * 16;
|
||||
// int var4 = this.field_1126_b / 16 * 16;
|
||||
// var2.getRGB(var3, var4, 16, 16, this.field_4230_h, 0, 16);
|
||||
// } catch (IOException var5) {
|
||||
// var5.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// public void func_783_a() {
|
||||
// for(int var1 = 0; var1 < 256; ++var1) {
|
||||
// int var2 = this.field_4230_h[var1] >> 24 & 255;
|
||||
// int var3 = this.field_4230_h[var1] >> 16 & 255;
|
||||
// int var4 = this.field_4230_h[var1] >> 8 & 255;
|
||||
// int var5 = this.field_4230_h[var1] >> 0 & 255;
|
||||
// if(this.field_1131_c) {
|
||||
// int var6 = (var3 * 30 + var4 * 59 + var5 * 11) / 100;
|
||||
// int var7 = (var3 * 30 + var4 * 70) / 100;
|
||||
// int var8 = (var3 * 30 + var5 * 70) / 100;
|
||||
// var3 = var6;
|
||||
// var4 = var7;
|
||||
// var5 = var8;
|
||||
// }
|
||||
//
|
||||
// this.field_1127_a[var1 * 4 + 0] = (byte)var3;
|
||||
// this.field_1127_a[var1 * 4 + 1] = (byte)var4;
|
||||
// this.field_1127_a[var1 * 4 + 2] = (byte)var5;
|
||||
// this.field_1127_a[var1 * 4 + 3] = (byte)var2;
|
||||
// }
|
||||
//
|
||||
// double var20 = 0.0D;
|
||||
// double var21;
|
||||
// double var22;
|
||||
// if(this.mc.theWorld != null && this.mc.thePlayer != null) {
|
||||
// var21 = (double)this.mc.theWorld.spawnX - this.mc.thePlayer.posX;
|
||||
// var22 = (double)this.mc.theWorld.spawnZ - this.mc.thePlayer.posZ;
|
||||
// var20 = (double)(this.mc.thePlayer.rotationYaw - 90.0F) * Math.PI / 180.0D - Math.atan2(var22, var21);
|
||||
// if(this.mc.theWorld.worldProvider.field_4220_c) {
|
||||
// var20 = Math.random() * (double)((float)Math.PI) * 2.0D;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// for(var21 = var20 - this.field_4229_i; var21 < -Math.PI; var21 += Math.PI * 2.0D) {
|
||||
// }
|
||||
//
|
||||
// while(var21 >= Math.PI) {
|
||||
// var21 -= Math.PI * 2.0D;
|
||||
// }
|
||||
//
|
||||
// if(var21 < -1.0D) {
|
||||
// var21 = -1.0D;
|
||||
// }
|
||||
//
|
||||
// if(var21 > 1.0D) {
|
||||
// var21 = 1.0D;
|
||||
// }
|
||||
//
|
||||
// this.field_4228_j += var21 * 0.1D;
|
||||
// this.field_4228_j *= 0.8D;
|
||||
// this.field_4229_i += this.field_4228_j;
|
||||
// var22 = Math.sin(this.field_4229_i);
|
||||
// double var23 = Math.cos(this.field_4229_i);
|
||||
//
|
||||
// int var9;
|
||||
// int var10;
|
||||
// int var11;
|
||||
// int var12;
|
||||
// int var13;
|
||||
// int var14;
|
||||
// int var15;
|
||||
// short var16;
|
||||
// int var17;
|
||||
// int var18;
|
||||
// int var19;
|
||||
// for(var9 = -4; var9 <= 4; ++var9) {
|
||||
// var10 = (int)(8.5D + var23 * (double)var9 * 0.3D);
|
||||
// var11 = (int)(7.5D - var22 * (double)var9 * 0.3D * 0.5D);
|
||||
// var12 = var11 * 16 + var10;
|
||||
// var13 = 100;
|
||||
// var14 = 100;
|
||||
// var15 = 100;
|
||||
// var16 = 255;
|
||||
// if(this.field_1131_c) {
|
||||
// var17 = (var13 * 30 + var14 * 59 + var15 * 11) / 100;
|
||||
// var18 = (var13 * 30 + var14 * 70) / 100;
|
||||
// var19 = (var13 * 30 + var15 * 70) / 100;
|
||||
// var13 = var17;
|
||||
// var14 = var18;
|
||||
// var15 = var19;
|
||||
// }
|
||||
//
|
||||
// this.field_1127_a[var12 * 4 + 0] = (byte)var13;
|
||||
// this.field_1127_a[var12 * 4 + 1] = (byte)var14;
|
||||
// this.field_1127_a[var12 * 4 + 2] = (byte)var15;
|
||||
// this.field_1127_a[var12 * 4 + 3] = (byte)var16;
|
||||
// }
|
||||
//
|
||||
// for(var9 = -8; var9 <= 16; ++var9) {
|
||||
// var10 = (int)(8.5D + var22 * (double)var9 * 0.3D);
|
||||
// var11 = (int)(7.5D + var23 * (double)var9 * 0.3D * 0.5D);
|
||||
// var12 = var11 * 16 + var10;
|
||||
// var13 = var9 >= 0 ? 255 : 100;
|
||||
// var14 = var9 >= 0 ? 20 : 100;
|
||||
// var15 = var9 >= 0 ? 20 : 100;
|
||||
// var16 = 255;
|
||||
// if(this.field_1131_c) {
|
||||
// var17 = (var13 * 30 + var14 * 59 + var15 * 11) / 100;
|
||||
// var18 = (var13 * 30 + var14 * 70) / 100;
|
||||
// var19 = (var13 * 30 + var15 * 70) / 100;
|
||||
// var13 = var17;
|
||||
// var14 = var18;
|
||||
// var15 = var19;
|
||||
// }
|
||||
//
|
||||
// this.field_1127_a[var12 * 4 + 0] = (byte)var13;
|
||||
// this.field_1127_a[var12 * 4 + 1] = (byte)var14;
|
||||
// this.field_1127_a[var12 * 4 + 2] = (byte)var15;
|
||||
// this.field_1127_a[var12 * 4 + 3] = (byte)var16;
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//}
|
||||
|
||||
package net.minecraft.src;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import net.PeytonPlayz585.opengl.GL11;
|
||||
import net.lax1dude.eaglercraft.EaglerImage;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
||||
public class TextureCompassFX extends TextureFX {
|
||||
private final int[] compassSpriteSheet;
|
||||
private final int compassSpriteSheetLength;
|
||||
private float angleDelta = 0.0f;
|
||||
private float currentAngle = 0.0f;
|
||||
private Minecraft mc;
|
||||
private int[] field_4230_h = new int[256];
|
||||
private double field_4229_i;
|
||||
private double field_4228_j;
|
||||
|
||||
public TextureCompassFX(Minecraft var1) {
|
||||
super(Item.compass.getIconIndex(null));
|
||||
field_1128_f = 1;
|
||||
this.compassSpriteSheet = GL11.loadPNG(GL11.loadResourceBytes("/gui/items.png")).data();
|
||||
this.compassSpriteSheetLength = compassSpriteSheet.length / 256;
|
||||
super(Item.compass.getIconIndex((ItemStack)null));
|
||||
this.mc = var1;
|
||||
this.field_1128_f = 1;
|
||||
|
||||
try {
|
||||
EaglerImage var2 = GL11.loadPNG(GL11.loadResourceBytes("/gui/items.png"));
|
||||
int var3 = this.field_1126_b % 16 * 16;
|
||||
int var4 = this.field_1126_b / 16 * 16;
|
||||
var2.getRGB(var3, var4, 16, 16, this.field_4230_h, 0, 16);
|
||||
} catch (Exception var5) {
|
||||
var5.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void func_783_a() {
|
||||
Minecraft var1 = Minecraft.getMinecraft();
|
||||
if (var1.theWorld != null && var1.thePlayer != null) {
|
||||
this.updateCompass(var1.theWorld, var1.thePlayer.posX, var1.thePlayer.posZ, (double) var1.thePlayer.rotationYaw, false, false);
|
||||
} else {
|
||||
this.updateCompass((World) null, 0.0D, 0.0D, 0.0D, true, false);
|
||||
for(int var1 = 0; var1 < 256; ++var1) {
|
||||
int var2 = this.field_4230_h[var1] >> 24 & 255;
|
||||
int var3 = this.field_4230_h[var1] >> 16 & 255;
|
||||
int var4 = this.field_4230_h[var1] >> 8 & 255;
|
||||
int var5 = this.field_4230_h[var1] >> 0 & 255;
|
||||
if(this.field_1131_c) {
|
||||
int var6 = (var3 * 30 + var4 * 59 + var5 * 11) / 100;
|
||||
int var7 = (var3 * 30 + var4 * 70) / 100;
|
||||
int var8 = (var3 * 30 + var5 * 70) / 100;
|
||||
var3 = var6;
|
||||
var4 = var7;
|
||||
var5 = var8;
|
||||
}
|
||||
|
||||
this.field_1127_a[var1 * 4 + 0] = (byte)var3;
|
||||
this.field_1127_a[var1 * 4 + 1] = (byte)var4;
|
||||
this.field_1127_a[var1 * 4 + 2] = (byte)var5;
|
||||
this.field_1127_a[var1 * 4 + 3] = (byte)var2;
|
||||
}
|
||||
}
|
||||
|
||||
public void updateCompass(World par1World, double par2, double par4, double par6, boolean par8, boolean par9) {
|
||||
double var10 = 0.0D;
|
||||
|
||||
if (par1World != null && !par8) {
|
||||
double var13 = (double)par1World.spawnX - par2;
|
||||
double var15 = (double)par1World.spawnZ - par4;
|
||||
par6 %= 360.0D;
|
||||
var10 = -((par6 - 90.0D) * Math.PI / 180.0D - Math.atan2(var15, var13));
|
||||
|
||||
if (!par1World.worldProvider.field_4220_c) {
|
||||
var10 = Math.random() * Math.PI * 2.0D;
|
||||
double var20 = 0.0D;
|
||||
double var21;
|
||||
double var22;
|
||||
if(this.mc.theWorld != null && this.mc.thePlayer != null) {
|
||||
var21 = (double)this.mc.theWorld.spawnX - this.mc.thePlayer.posX;
|
||||
var22 = (double)this.mc.theWorld.spawnZ - this.mc.thePlayer.posZ;
|
||||
var20 = (double)(this.mc.thePlayer.rotationYaw - 90.0F) * Math.PI / 180.0D - Math.atan2(var22, var21);
|
||||
if(this.mc.theWorld.worldProvider.field_4220_c) {
|
||||
var20 = Math.random() * (double)((float)Math.PI) * 2.0D;
|
||||
}
|
||||
}
|
||||
|
||||
if (par9) {
|
||||
this.currentAngle = (float) var10;
|
||||
} else {
|
||||
double var17;
|
||||
|
||||
for (var17 = var10 - this.currentAngle; var17 < -Math.PI; var17 += (Math.PI * 2D)) {
|
||||
;
|
||||
}
|
||||
|
||||
while (var17 >= Math.PI) {
|
||||
var17 -= (Math.PI * 2D);
|
||||
}
|
||||
|
||||
if (var17 < -1.0D) {
|
||||
var17 = -1.0D;
|
||||
}
|
||||
|
||||
if (var17 > 1.0D) {
|
||||
var17 = 1.0D;
|
||||
}
|
||||
|
||||
this.angleDelta += var17 * 0.1D;
|
||||
this.angleDelta *= 0.8D;
|
||||
this.currentAngle += this.angleDelta;
|
||||
for(var21 = var20 - this.field_4229_i; var21 < -Math.PI; var21 += Math.PI * 2.0D) {
|
||||
}
|
||||
|
||||
while(var21 >= Math.PI) {
|
||||
var21 -= Math.PI * 2.0D;
|
||||
}
|
||||
|
||||
if(var21 < -1.0D) {
|
||||
var21 = -1.0D;
|
||||
}
|
||||
|
||||
if(var21 > 1.0D) {
|
||||
var21 = 1.0D;
|
||||
}
|
||||
|
||||
this.field_4228_j += var21 * 0.1D;
|
||||
this.field_4228_j *= 0.8D;
|
||||
this.field_4229_i += this.field_4228_j;
|
||||
var22 = Math.sin(this.field_4229_i);
|
||||
double var23 = Math.cos(this.field_4229_i);
|
||||
|
||||
int var9;
|
||||
int var10;
|
||||
int var11;
|
||||
int var12;
|
||||
int var13;
|
||||
int var14;
|
||||
int var15;
|
||||
short var16;
|
||||
int var17;
|
||||
int var18;
|
||||
int var19;
|
||||
for(var9 = -4; var9 <= 4; ++var9) {
|
||||
var10 = (int)(8.5D + var23 * (double)var9 * 0.3D);
|
||||
var11 = (int)(7.5D - var22 * (double)var9 * 0.3D * 0.5D);
|
||||
var12 = var11 * 16 + var10;
|
||||
var13 = 100;
|
||||
var14 = 100;
|
||||
var15 = 100;
|
||||
var16 = 255;
|
||||
if(this.field_1131_c) {
|
||||
var17 = (var13 * 30 + var14 * 59 + var15 * 11) / 100;
|
||||
var18 = (var13 * 30 + var14 * 70) / 100;
|
||||
var19 = (var13 * 30 + var15 * 70) / 100;
|
||||
var13 = var17;
|
||||
var14 = var18;
|
||||
var15 = var19;
|
||||
}
|
||||
|
||||
for (var18 = (int) ((this.currentAngle / (Math.PI * 2D) + 1.0D) * (double) compassSpriteSheetLength) % compassSpriteSheetLength; var18 < 0; var18 = (var18 + compassSpriteSheetLength) % compassSpriteSheetLength) {
|
||||
;
|
||||
this.field_1127_a[var12 * 4 + 0] = (byte)var13;
|
||||
this.field_1127_a[var12 * 4 + 1] = (byte)var14;
|
||||
this.field_1127_a[var12 * 4 + 2] = (byte)var15;
|
||||
this.field_1127_a[var12 * 4 + 3] = (byte)var16;
|
||||
}
|
||||
|
||||
int offset = var18 * 256;
|
||||
for(int i = 0; i < 256; ++i) {
|
||||
this.field_1127_a[i * 4] = (byte)((compassSpriteSheet[offset + i] >> 16) & 0xFF);
|
||||
this.field_1127_a[i * 4 + 1] = (byte)((compassSpriteSheet[offset + i] >> 8) & 0xFF);
|
||||
this.field_1127_a[i * 4 + 2] = (byte)((compassSpriteSheet[offset + i]) & 0xFF);
|
||||
this.field_1127_a[i * 4 + 3] = (byte)((compassSpriteSheet[offset + i] >> 24) & 0xFF);
|
||||
|
||||
for(var9 = -8; var9 <= 16; ++var9) {
|
||||
var10 = (int)(8.5D + var22 * (double)var9 * 0.3D);
|
||||
var11 = (int)(7.5D + var23 * (double)var9 * 0.3D * 0.5D);
|
||||
var12 = var11 * 16 + var10;
|
||||
var13 = var9 >= 0 ? 255 : 100;
|
||||
var14 = var9 >= 0 ? 20 : 100;
|
||||
var15 = var9 >= 0 ? 20 : 100;
|
||||
var16 = 255;
|
||||
if(this.field_1131_c) {
|
||||
var17 = (var13 * 30 + var14 * 59 + var15 * 11) / 100;
|
||||
var18 = (var13 * 30 + var14 * 70) / 100;
|
||||
var19 = (var13 * 30 + var15 * 70) / 100;
|
||||
var13 = var17;
|
||||
var14 = var18;
|
||||
var15 = var19;
|
||||
}
|
||||
|
||||
this.field_1127_a[var12 * 4 + 0] = (byte)var13;
|
||||
this.field_1127_a[var12 * 4 + 1] = (byte)var14;
|
||||
this.field_1127_a[var12 * 4 + 2] = (byte)var15;
|
||||
this.field_1127_a[var12 * 4 + 3] = (byte)var16;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -5,81 +5,94 @@ import net.lax1dude.eaglercraft.EaglerImage;
|
|||
import net.minecraft.client.Minecraft;
|
||||
|
||||
public class TextureWatchFX extends TextureFX {
|
||||
private Minecraft field_4225_g;
|
||||
private int[] field_4224_h = new int[256];
|
||||
private int[] field_4223_i = new int[256];
|
||||
private double field_4222_j;
|
||||
private double field_4221_k;
|
||||
|
||||
public TextureWatchFX(Minecraft var1) {
|
||||
super(Item.pocketSundial.getIconIndex((ItemStack)null));
|
||||
this.field_4225_g = var1;
|
||||
this.field_1128_f = 1;
|
||||
|
||||
try {
|
||||
EaglerImage var2 = GL11.loadPNG(GL11.loadResourceBytes("/gui/items.png"));
|
||||
int var3 = this.field_1126_b % 16 * 16;
|
||||
int var4 = this.field_1126_b / 16 * 16;
|
||||
var2.getRGB(var3, var4, 16, 16, this.field_4224_h, 0, 16);
|
||||
var2 = GL11.loadPNG(GL11.loadResourceBytes("/misc/dial.png"));
|
||||
var2.getRGB(0, 0, 16, 16, this.field_4223_i, 0, 16);
|
||||
} catch (Exception var5) {
|
||||
var5.printStackTrace();
|
||||
}
|
||||
|
||||
public TextureWatchFX(Minecraft minecraft) {
|
||||
super(Item.pocketSundial.getIconIndex(null));
|
||||
field_4224_h = new int[256];
|
||||
field_4223_i = new int[256];
|
||||
field_4225_g = minecraft;
|
||||
field_1128_f = 1;
|
||||
EaglerImage bufferedimage = GL11.loadPNG(GL11.loadResourceBytes("/gui/items.png"));
|
||||
int i = (field_1126_b % 16) * 16;
|
||||
int j = (field_1126_b / 16) * 16;
|
||||
field_4224_h = bufferedimage.getSubImage(i, j, 16, 16).data();
|
||||
field_4223_i = GL11.loadPNG(GL11.loadResourceBytes("/misc/dial.png")).data();
|
||||
}
|
||||
|
||||
public void func_783_a() {
|
||||
double d = 0.0D;
|
||||
if (field_4225_g.theWorld != null && field_4225_g.thePlayer != null) {
|
||||
float f = field_4225_g.theWorld.getCelestialAngle(1.0F);
|
||||
d = -f * 3.141593F * 2.0F;
|
||||
if (field_4225_g.theWorld.worldProvider.field_4220_c) {
|
||||
d = Math.random() * 3.1415927410125732D * 2D;
|
||||
double var1 = 0.0D;
|
||||
if(this.field_4225_g.theWorld != null && this.field_4225_g.thePlayer != null) {
|
||||
float var3 = this.field_4225_g.theWorld.getCelestialAngle(1.0F);
|
||||
var1 = (double)(-var3 * (float)Math.PI * 2.0F);
|
||||
if(this.field_4225_g.theWorld.worldProvider.field_4220_c) {
|
||||
var1 = Math.random() * (double)((float)Math.PI) * 2.0D;
|
||||
}
|
||||
}
|
||||
double d1;
|
||||
for (d1 = d - field_4222_j; d1 < -3.1415926535897931D; d1 += 6.2831853071795862D) {
|
||||
|
||||
double var22;
|
||||
for(var22 = var1 - this.field_4222_j; var22 < -Math.PI; var22 += Math.PI * 2.0D) {
|
||||
}
|
||||
for (; d1 >= 3.1415926535897931D; d1 -= 6.2831853071795862D) {
|
||||
|
||||
while(var22 >= Math.PI) {
|
||||
var22 -= Math.PI * 2.0D;
|
||||
}
|
||||
if (d1 < -1D) {
|
||||
d1 = -1D;
|
||||
|
||||
if(var22 < -1.0D) {
|
||||
var22 = -1.0D;
|
||||
}
|
||||
if (d1 > 1.0D) {
|
||||
d1 = 1.0D;
|
||||
|
||||
if(var22 > 1.0D) {
|
||||
var22 = 1.0D;
|
||||
}
|
||||
field_4221_k += d1 * 0.10000000000000001D;
|
||||
field_4221_k *= 0.80000000000000004D;
|
||||
field_4222_j += field_4221_k;
|
||||
double d2 = Math.sin(field_4222_j);
|
||||
double d3 = Math.cos(field_4222_j);
|
||||
for (int i = 0; i < 256; i++) {
|
||||
int j = field_4224_h[i] >> 24 & 0xff;
|
||||
int k = field_4224_h[i] >> 16 & 0xff;
|
||||
int l = field_4224_h[i] >> 8 & 0xff;
|
||||
int i1 = field_4224_h[i] >> 0 & 0xff;
|
||||
if (k == i1 && l == 0 && i1 > 0) {
|
||||
double d4 = -((double) (i % 16) / 15D - 0.5D);
|
||||
double d5 = (double) (i / 16) / 15D - 0.5D;
|
||||
int i2 = k;
|
||||
int j2 = (int) ((d4 * d3 + d5 * d2 + 0.5D) * 16D);
|
||||
int k2 = (int) (((d5 * d3 - d4 * d2) + 0.5D) * 16D);
|
||||
int l2 = (j2 & 0xf) + (k2 & 0xf) * 16;
|
||||
j = field_4223_i[l2] >> 24 & 0xff;
|
||||
k = ((field_4223_i[l2] >> 16 & 0xff) * i2) / 255;
|
||||
l = ((field_4223_i[l2] >> 8 & 0xff) * i2) / 255;
|
||||
i1 = ((field_4223_i[l2] >> 0 & 0xff) * i2) / 255;
|
||||
|
||||
this.field_4221_k += var22 * 0.1D;
|
||||
this.field_4221_k *= 0.8D;
|
||||
this.field_4222_j += this.field_4221_k;
|
||||
double var5 = Math.sin(this.field_4222_j);
|
||||
double var7 = Math.cos(this.field_4222_j);
|
||||
|
||||
for(int var9 = 0; var9 < 256; ++var9) {
|
||||
int var10 = this.field_4224_h[var9] >> 24 & 255;
|
||||
int var11 = this.field_4224_h[var9] >> 16 & 255;
|
||||
int var12 = this.field_4224_h[var9] >> 8 & 255;
|
||||
int var13 = this.field_4224_h[var9] >> 0 & 255;
|
||||
if(var11 == var13 && var12 == 0 && var13 > 0) {
|
||||
double var14 = -((double)(var9 % 16) / 15.0D - 0.5D);
|
||||
double var16 = (double)(var9 / 16) / 15.0D - 0.5D;
|
||||
int var18 = var11;
|
||||
int var19 = (int)((var14 * var7 + var16 * var5 + 0.5D) * 16.0D);
|
||||
int var20 = (int)((var16 * var7 - var14 * var5 + 0.5D) * 16.0D);
|
||||
int var21 = (var19 & 15) + (var20 & 15) * 16;
|
||||
var10 = this.field_4223_i[var21] >> 24 & 255;
|
||||
var11 = (this.field_4223_i[var21] >> 16 & 255) * var11 / 255;
|
||||
var12 = (this.field_4223_i[var21] >> 8 & 255) * var18 / 255;
|
||||
var13 = (this.field_4223_i[var21] >> 0 & 255) * var18 / 255;
|
||||
}
|
||||
if (field_1131_c) {
|
||||
int j1 = (k * 30 + l * 59 + i1 * 11) / 100;
|
||||
int k1 = (k * 30 + l * 70) / 100;
|
||||
int l1 = (k * 30 + i1 * 70) / 100;
|
||||
k = j1;
|
||||
l = k1;
|
||||
i1 = l1;
|
||||
|
||||
if(this.field_1131_c) {
|
||||
int var23 = (var11 * 30 + var12 * 59 + var13 * 11) / 100;
|
||||
int var15 = (var11 * 30 + var12 * 70) / 100;
|
||||
int var24 = (var11 * 30 + var13 * 70) / 100;
|
||||
var11 = var23;
|
||||
var12 = var15;
|
||||
var13 = var24;
|
||||
}
|
||||
field_1127_a[i * 4 + 0] = (byte) k;
|
||||
field_1127_a[i * 4 + 1] = (byte) l;
|
||||
field_1127_a[i * 4 + 2] = (byte) i1;
|
||||
field_1127_a[i * 4 + 3] = (byte) j;
|
||||
|
||||
this.field_1127_a[var9 * 4 + 0] = (byte)var11;
|
||||
this.field_1127_a[var9 * 4 + 1] = (byte)var12;
|
||||
this.field_1127_a[var9 * 4 + 2] = (byte)var13;
|
||||
this.field_1127_a[var9 * 4 + 3] = (byte)var10;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Minecraft field_4225_g;
|
||||
private int field_4224_h[];
|
||||
private int field_4223_i[];
|
||||
private double field_4222_j;
|
||||
private double field_4221_k;
|
||||
}
|
Loading…
Reference in New Issue
Block a user