diff --git a/fml/client/net/minecraft/src/FMLRenderAccessLibrary.java b/fml/client/net/minecraft/src/FMLRenderAccessLibrary.java index 3e0b5fa0a1..7e7ce94b86 100644 --- a/fml/client/net/minecraft/src/FMLRenderAccessLibrary.java +++ b/fml/client/net/minecraft/src/FMLRenderAccessLibrary.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.RenderEngine; +import net.minecraft.client.renderer.texture.Texture; import net.minecraft.client.texturepacks.ITexturePack; import net.minecraft.world.IBlockAccess; @@ -70,4 +71,9 @@ public class FMLRenderAccessLibrary { return RenderingRegistry.instance().renderItemAsFull3DBlock(modelId); } + + public static void doTextureCopy(Texture atlas, Texture source, int targetX, int targetY) + { + TextureFXManager.instance().getHelper().doTextureCopy(atlas, source, targetX, targetY); + } } diff --git a/fml/patches/minecraft/net/minecraft/client/renderer/texture/Texture.java.patch b/fml/patches/minecraft/net/minecraft/client/renderer/texture/Texture.java.patch index 75e6304ce7..6d55075e1e 100644 --- a/fml/patches/minecraft/net/minecraft/client/renderer/texture/Texture.java.patch +++ b/fml/patches/minecraft/net/minecraft/client/renderer/texture/Texture.java.patch @@ -7,72 +7,47 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.awt.image.BufferedImage; -@@ -206,6 +207,7 @@ +@@ -9,6 +10,8 @@ + import javax.imageio.ImageIO; + import net.minecraft.client.Minecraft; + import net.minecraft.client.renderer.OpenGlHelper; ++import net.minecraft.src.FMLRenderAccessLibrary; ++ + import org.lwjgl.opengl.GL11; + import org.lwjgl.opengl.GL12; + +@@ -206,6 +209,12 @@ { if (this.field_94300_h != 32879) { -+ if (!field_94303_q) { ++ if (field_94303_q && !p_94281_4_) ++ { ++ FMLRenderAccessLibrary.doTextureCopy(this, p_94281_3_, p_94281_1_, p_94281_2_); ++ return; ++ } ++ ByteBuffer bytebuffer = p_94281_3_.func_94273_h(); this.field_94302_r.position(0); bytebuffer.position(0); -@@ -216,21 +218,21 @@ - int i1 = k * p_94281_3_.func_94275_d() * 4; - int j1 = l * this.field_94289_d * 4; +@@ -218,7 +227,7 @@ -- if (p_94281_4_) -- { -- l = p_94281_2_ + (p_94281_3_.func_94276_e() - k); -- } -- -+// if (p_94281_4_) -+// { -+// l = p_94281_2_ + (p_94281_3_.func_94276_e() - k); -+// } -+// - for (int k1 = 0; k1 < p_94281_3_.func_94275_d(); ++k1) + if (p_94281_4_) { - int l1 = j1 + (k1 + p_94281_1_) * 4; - int i2 = i1 + k1 * 4; +- l = p_94281_2_ + (p_94281_3_.func_94276_e() - k); ++ l = p_94281_1_ + (p_94281_3_.func_94276_e() - k - 1); //BUGFIX: targetY -> targetX and -1 + } -- if (p_94281_4_) -- { + for (int k1 = 0; k1 < p_94281_3_.func_94275_d(); ++k1) +@@ -228,7 +237,7 @@ + + if (p_94281_4_) + { - l1 = p_94281_1_ + k1 * this.field_94289_d * 4 + l * 4; -- } -- -+// if (p_94281_4_) -+// { -+// l1 = p_94281_1_ + k1 * this.field_94289_d * 4 + l * 4; -+// } -+// ++ l1 = (p_94281_2_ + k1) * this.field_94289_d * 4 + l * 4; //BUGFIX: targetX -> targetY and parens + } + this.field_94302_r.put(l1 + 0, bytebuffer.get(i2 + 0)); - this.field_94302_r.put(l1 + 1, bytebuffer.get(i2 + 1)); - this.field_94302_r.put(l1 + 2, bytebuffer.get(i2 + 2)); -@@ -239,15 +241,20 @@ - } - - this.field_94302_r.position(this.field_94289_d * this.field_94290_e * 4); -+ } -+ else -+ { -+ TextureFXManager.instance().getHelper().doTextureCopy(this, p_94281_3_, p_94281_1_, p_94281_2_); -+ } - - if (this.field_94304_p) - { - this.func_94285_g(); - } -- else -- { -- this.field_94303_q = false; -- } -+// else -+// { -+// this.field_94303_q = false; -+// } - } - } - -@@ -371,4 +378,13 @@ +@@ -371,4 +380,13 @@ { return this.field_94302_r; } diff --git a/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureClock.java.patch b/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureClock.java.patch new file mode 100644 index 0000000000..d7716a38b2 --- /dev/null +++ b/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureClock.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/client/renderer/texture/TextureClock.java ++++ ../src-work/minecraft/net/minecraft/client/renderer/texture/TextureClock.java +@@ -66,7 +66,7 @@ + if (i != this.field_94222_f) + { + this.field_94222_f = i; +- this.field_94228_a.func_94281_a(this.field_94224_d, this.field_94225_e, (Texture)this.field_94226_b.get(this.field_94222_f), this.field_94227_c); ++ this.field_94228_a.func_94281_a(this.field_94224_d, this.field_94225_e, (Texture)this.field_94226_b.get(this.field_94222_f), false); //FML: We rotate the textures in init. + } + } + } diff --git a/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureCompass.java.patch b/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureCompass.java.patch new file mode 100644 index 0000000000..9ba4dc009d --- /dev/null +++ b/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureCompass.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/client/renderer/texture/TextureCompass.java ++++ ../src-work/minecraft/net/minecraft/client/renderer/texture/TextureCompass.java +@@ -94,7 +94,7 @@ + if (i != this.field_94222_f) + { + this.field_94222_f = i; +- this.field_94228_a.func_94281_a(this.field_94224_d, this.field_94225_e, (Texture)this.field_94226_b.get(this.field_94222_f), this.field_94227_c); ++ this.field_94228_a.func_94281_a(this.field_94224_d, this.field_94225_e, (Texture)this.field_94226_b.get(this.field_94222_f), false); //FML: We rotate the textures in init. + } + } + } diff --git a/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureStitched.java.patch b/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureStitched.java.patch index 94d49565b8..f6841adf3a 100644 --- a/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureStitched.java.patch +++ b/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureStitched.java.patch @@ -19,6 +19,24 @@ } public void func_94217_a(TextureStitched p_94217_1_) +@@ -137,7 +143,7 @@ + + if (i != j && j >= 0 && j < this.field_94226_b.size()) + { +- this.field_94228_a.func_94281_a(this.field_94224_d, this.field_94225_e, (Texture)this.field_94226_b.get(j), this.field_94227_c); ++ this.field_94228_a.func_94281_a(this.field_94224_d, this.field_94225_e, (Texture)this.field_94226_b.get(j), false); //FML: We rotate the textures in init. + } + } + } +@@ -148,7 +154,7 @@ + + if (k != this.field_94222_f) + { +- this.field_94228_a.func_94281_a(this.field_94224_d, this.field_94225_e, (Texture)this.field_94226_b.get(this.field_94222_f), this.field_94227_c); ++ this.field_94228_a.func_94281_a(this.field_94224_d, this.field_94225_e, (Texture)this.field_94226_b.get(this.field_94222_f), false); //FML: We rotate the textures in init. + } + } + } @@ -198,4 +204,12 @@ this.field_94236_i = arraylist; }