mojira.dev
MC-190

Misaligned textures on south and east faces for non-full blocks

Description:

Texture on all non-full width non-symmetrical blocks on south and east sides are misaligned, like :

  • Door

  • trapdoor

  • Fences

  • Fencegates

  • Wall

  • Buttons

  • Levers

  • Stairs

  • hopper

  • Tripwire hook

This does not affect some blocks like cocoa, because they don't use the standard block method.

With that bug, it's very difficult to make HD texture pack since these details are near invisible with 16x packs but not on 64x packs for example.

Expected:

Having textures correctly aligned, like on Ax.png screenshots.

Actual:

Textures are misaligned, like on Bx.png screenshots.

Solution:

RenderBlocks.java

public class RenderBlocks {
    public void renderEastFace(Block par1Block, double par2, double par4, double par6, Icon texture) {
        Tessellator tessellator = Tessellator.instance;
        if (this.hasOverrideBlockTexture()) {
            texture = this.overrideBlockTexture;
        }
        /* START OF OLD CODE *
        double var10 = (double)texture.getInterpolatedU(this.renderMinX * 16.0D);
        double var12 = (double)texture.getInterpolatedU(this.renderMaxX * 16.0D);
        * END OF OLD CODE */
        /* START OF NEW CODE */
        double var10 = (double)texture.getInterpolatedU(16.0D - this.renderMaxX * 16.0D);
        double var12 = (double)texture.getInterpolatedU(16.0D - this.renderMinX * 16.0D);
        /* END OF NEW CODE */
        double var14 = (double)texture.getInterpolatedV(16.0D - this.renderMaxY * 16.0D);
        double var16 = (double)texture.getInterpolatedV(16.0D - this.renderMinY * 16.0D);
        /* ... */
    }
    public void renderSouthFace(Block par1Block, double par2, double par4, double par6, Icon texture) {
        Tessellator tessellator = Tessellator.instance;
        if (this.hasOverrideBlockTexture()) {
            texture = this.overrideBlockTexture;
        }
        /* START OF OLD CODE *
        double var10 = (double)texture.getInterpolatedU(this.renderMinZ * 16.0D);
        double var12 = (double)texture.getInterpolatedU(this.renderMaxZ * 16.0D);
        * END OF OLD CODE */
        /* START OF NEW CODE */
        double var10 = (double)texture.getInterpolatedU(16.0D - this.renderMaxZ * 16.0D);
        double var12 = (double)texture.getInterpolatedU(16.0D - this.renderMinZ * 16.0D);
        /* END OF NEW CODE */
        double var14 = (double)texture.getInterpolatedV(16.0D - this.renderMaxY * 16.0D);
        double var16 = (double)texture.getInterpolatedV(16.0D - this.renderMinY * 16.0D);
        /* ... */
    }
}

Linked issues

Attachments

Comments

Ezekiel

Whats wrong

Tails

Is this still a concern in the current Minecraft version? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.

Yoann Petremann

The problem is still present in 13w02b, I have created a version of the texture pack for version 13w02a and above

Yoann Petremann

Texture Pack for version > 13w02a

Yoann Petremann

Concern 13w10a ...

Yoann Petremann

Still concern latest 13w18c and 1.5.2 versions ...

Yoann Petremann

I've posted a valid and tested solution for that problem, it does not seem to cause new glitches and it seems to fixes a common problem with all blocks that contain part that not 1 block width :

  • stairs

  • fences

  • wall

  • fence gate

  • button

  • levers

  • trapdoors
    ...

_zombiehunter

Would be nice to have this fixed. As you already mentioned, it's not very conspicuous in most 16x16 packs, but HD packs really would profit of better aligned textures on fences, etc. ...

Yoann Petremann

Texture pack to fully test texture alignement.

Yoann Petremann

Remplaced old screenshot with new ones

Yoann Petremann

Added screenshot for stairs

kbk

@Yoann
Good job, thank you very much.

Yoann Petremann

Still not resolved since the solution is explained ...

Yoann Petremann

Confirmed for 13w26a !

Yoann Petremann

With that bug, we know where are stairs.

Ezekiel

Is this still a concern in the latest Minecraft version 13w42b? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.

Yoann Petremann

Ezekiel : This still concern the latest Minecraft version 13w42b, and supect that it would concern Minecraft version 1.7 because neither dinnerbone or jeb or anyone at Mojang is able to apply the proposed functionning solution. They know about the bug because dinnerbone have answer me on twitter but they thing they are not able to fix the problem, but I've already fixed the problem.

Yoann Petremann

bkw.class is a bugfix modification for Minecraft 13w42b for MC-15189 and MC-190

Please make a custom 13w42b version and install that file in the jar file

Erik Broes

The solution is actually wrong, but I've fixed the issue nevertheless 😉

_zombiehunter

Thanks for fixing this, Grum 🙂

Yoann Petremann

I don't see why my solution is wrong, please show me by screenshots .

My patcher said that the bug has not been fixed.

I fact we don't see it anymore because you has inverted all textures for these faces, but your solution cause all textures to be inverted like beds sides ...

In all cases, for me the bug is not fixed because your fix cause another bug.

Yoann Petremann

And finally Grum, Since for 6 month I used to play with my fixed version of minecraft, I've not seen any bugs depending to this problem after fixing.

Yoann Petremann

On obfuscated class, my patch apply on the methods c(Lxxx;DDDLyyy;)V and f(Lxxx;DDDLyyy;)V, so respectively the third and last renderFace methods.

Yoann Petremann

Please reopen since it has returned with the fix for MC-37106 (which was an effect to the fix of this).

Mog (Ryan Holtz)

Fixed properly for 1.7.3

Yoann Petremann

Can't wait for the snapshot to see, thanks in advance ...

Yoann Petremann

migrated

Confirmed

rendering, texture

Minecraft 1.4.2, Snapshot 13w02b, Snapshot 13w10a, Minecraft 1.5, Snapshot 13w18c, ..., Minecraft 13w41a, Minecraft 13w42b, Minecraft 13w43a, Minecraft 1.7.1, Minecraft 13w47c

Minecraft 13w48a

Retrieved