diff --git a/.gradle/7.4.2/executionHistory/executionHistory.bin b/.gradle/7.4.2/executionHistory/executionHistory.bin index 1ff66bd..1312d58 100644 Binary files a/.gradle/7.4.2/executionHistory/executionHistory.bin and b/.gradle/7.4.2/executionHistory/executionHistory.bin differ diff --git a/.gradle/7.4.2/executionHistory/executionHistory.lock b/.gradle/7.4.2/executionHistory/executionHistory.lock index 42baaca..630e577 100644 Binary files a/.gradle/7.4.2/executionHistory/executionHistory.lock and b/.gradle/7.4.2/executionHistory/executionHistory.lock differ diff --git a/.gradle/7.4.2/fileHashes/fileHashes.bin b/.gradle/7.4.2/fileHashes/fileHashes.bin index 289dc47..a58de39 100644 Binary files a/.gradle/7.4.2/fileHashes/fileHashes.bin and b/.gradle/7.4.2/fileHashes/fileHashes.bin differ diff --git a/.gradle/7.4.2/fileHashes/fileHashes.lock b/.gradle/7.4.2/fileHashes/fileHashes.lock index 9c2b0d7..1c3ff1a 100644 Binary files a/.gradle/7.4.2/fileHashes/fileHashes.lock and b/.gradle/7.4.2/fileHashes/fileHashes.lock differ diff --git a/.gradle/7.4.2/fileHashes/resourceHashesCache.bin b/.gradle/7.4.2/fileHashes/resourceHashesCache.bin index 5e2e0f3..8f88aa9 100644 Binary files a/.gradle/7.4.2/fileHashes/resourceHashesCache.bin and b/.gradle/7.4.2/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 63b6ca7..8e67fb8 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/build/classes/java/main/com/mojang/minecraft/renderer/Textures.class b/build/classes/java/main/com/mojang/minecraft/renderer/Textures.class index dba1040..41d52c8 100644 Binary files a/build/classes/java/main/com/mojang/minecraft/renderer/Textures.class and b/build/classes/java/main/com/mojang/minecraft/renderer/Textures.class differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index d96a609..2995b0a 100644 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/src/main/java/com/mojang/minecraft/renderer/Textures.java b/src/main/java/com/mojang/minecraft/renderer/Textures.java index 8d082f3..f04b9ec 100644 --- a/src/main/java/com/mojang/minecraft/renderer/Textures.java +++ b/src/main/java/com/mojang/minecraft/renderer/Textures.java @@ -1,66 +1,83 @@ package com.mojang.minecraft.renderer; import com.mojang.minecraft.renderer.texture.TextureFX; -import java.awt.image.BufferedImage; + +import net.PeytonPlayz585.opengl.LWJGLMain; +import net.PeytonPlayz585.opengl.MinecraftImageData; + import java.io.IOException; import java.nio.ByteBuffer; import java.nio.IntBuffer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import javax.imageio.ImageIO; import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL11; +import org.lwjgl.GLAllocation; public class Textures { - private HashMap idMap = new HashMap(); - public IntBuffer idBuffer = BufferUtils.createIntBuffer(1); + public static HashMap textureMap = new HashMap(); + private IntBuffer singleIntBuffer = GLAllocation.createDirectIntBuffer(1); public ByteBuffer textureBuffer = BufferUtils.createByteBuffer(262144); public List textureList = new ArrayList(); public final int getTextureId(String var1) { + Integer integer = (Integer) textureMap.get(var1); + if (integer != null) { + return integer.intValue(); + } try { - if(this.idMap.containsKey(var1)) { - return ((Integer)this.idMap.get(var1)).intValue(); - } else { - int var2 = this.addTexture(ImageIO.read(Textures.class.getResourceAsStream(var1))); - this.idMap.put(var1, Integer.valueOf(var2)); - return var2; - } - } catch (IOException var3) { + singleIntBuffer.clear(); + GLAllocation.generateTextureNames(singleIntBuffer); + int i = singleIntBuffer.get(0); + addTexture(readTextureImage(LWJGLMain.loadResourceBytes(var1)), i); + textureMap.put(var1, Integer.valueOf(i)); + return i; + } catch (IOException ioexception) { throw new RuntimeException("!!"); } } - public final int addTexture(BufferedImage var1) { - this.idBuffer.clear(); - GL11.glGenTextures(); - int var2 = this.idBuffer.get(0); - GL11.glBindTexture(GL11.GL_TEXTURE_2D, var2); - GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST); - GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST); - int var3 = var1.getWidth(); - int var4 = var1.getHeight(); - int[] var5 = new int[var3 * var4]; - byte[] var6 = new byte[var3 * var4 << 2]; - var1.getRGB(0, 0, var3, var4, var5, 0, var3); - - for(int var11 = 0; var11 < var5.length; ++var11) { - int var7 = var5[var11] >>> 24; - int var8 = var5[var11] >> 16 & 255; - int var9 = var5[var11] >> 8 & 255; - int var10 = var5[var11] & 255; - var6[var11 << 2] = (byte)var8; - var6[(var11 << 2) + 1] = (byte)var9; - var6[(var11 << 2) + 2] = (byte)var10; - var6[(var11 << 2) + 3] = (byte)var7; + public final void addTexture(MinecraftImageData bufferedimage, int i) { + // if(alpha) { + // GL11.glAlphaFunc(516, 0.1F); + // } + bindTexture(i); + 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 */); + GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, 10242 /* GL_TEXTURE_WRAP_S */, 10497 /* GL_REPEAT */); + GL11.glTexParameteri(3553 /* GL_TEXTURE_2D */, 10243 /* GL_TEXTURE_WRAP_T */, 10497 /* GL_REPEAT */); + int j = bufferedimage.w; + int k = bufferedimage.h; + int ai[] = bufferedimage.data; + byte abyte0[] = new byte[j * k * 4]; + for (int l = 0; l < ai.length; l++) { + int j1 = ai[l] >> 24 & 0xff; + int l1 = ai[l] >> 16 & 0xff; + int j2 = ai[l] >> 8 & 0xff; + int l2 = ai[l] >> 0 & 0xff; + abyte0[l * 4 + 0] = (byte) l1; + abyte0[l * 4 + 1] = (byte) j2; + abyte0[l * 4 + 2] = (byte) l2; + abyte0[l * 4 + 3] = (byte) j1; } + textureBuffer.clear(); + textureBuffer.put(abyte0); + textureBuffer.position(0).limit(abyte0.length); + GL11.glTexImage2D(3553 /* GL_TEXTURE_2D */, 0, GL11.GL_RGBA /* GL_RGBA */, j, k, 0, GL11.GL_RGBA /* GL_RGBA */, 5121 /* GL_UNSIGNED_BYTE */, textureBuffer); + } - this.textureBuffer.clear(); - this.textureBuffer.put(var6); - this.textureBuffer.position(0).limit(var6.length); - GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, var3, var4, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, (ByteBuffer)this.textureBuffer); - return var2; + public void bindTexture(int i) { + if (i < 0) { + return; + } else { + GL11.glBindTexture(3553 /* GL_TEXTURE_2D */, i); + return; + } + } + + private MinecraftImageData readTextureImage(byte[] inputstream) throws IOException { + return LWJGLMain.loadPNG(inputstream); } public final void registerTextureFX(TextureFX var1) {