[MC-61758] Vines no longer spread correctly in corners Created: 12/Jul/14  Updated: 24/May/15  Resolved: 17/Apr/15

Status: Resolved
Project: Minecraft: Java Edition
Component/s: None
Affects Version/s: Minecraft 14w28b, Minecraft 14w30c, Minecraft 14w34b, Minecraft 1.8-pre1, Minecraft 1.8-pre2, Minecraft 1.8-pre3, Minecraft 1.8, Minecraft 1.8.1-pre2, Minecraft 1.8.2-pre1, Minecraft 1.8.2-pre3, Minecraft 1.8.3
Fix Version/s: Minecraft 1.8.4

Type: Bug
Reporter: [Helper] Anomie X Assignee: [Mojang] Dinnerbone (Nathan Adams)
Resolution: Fixed Votes: 3
Labels: None

Attachments: PNG File 2014-07-12_14.29.01.png     PNG File 2014-07-12_14.34.59.png     PNG File 2014-07-12_14.36.57.png    
CHK:
Confirmation Status: Community Consensus

 Description   

In 14w21b, starting with the layout in the first screenshot (and /gamerule randomTickSpeed 1000) will quickly fill in the corner as shown in the second screenshot.

Loading this into 14w25b and later versions initially loads correctly, but the corner vines eventually (probably as they're ticked for growth) will lose one or the other side, as in the third screenshot. Starting with the layout in the first screenshot in these versions will give similar results, the corner blocks don't have vines on both sides.



 Comments   
Comment by [Helper] Anomie X [ 18/Aug/14 ]

Bug still exists in 14w34b.

Comment by [Helper] Anomie X [ 22/Aug/14 ]

Still present in 1.8-pre1. This one makes me sad, since it makes the corners of one of my builds look ratty.

Comment by [Helper] Anomie X [ 25/Aug/14 ]

Still present in 1.8-pre2.

Comment by [Helper] Anomie X [ 28/Aug/14 ]

Still present in 1.8-pre3.

Comment by [Helper] Anomie X [ 02/Sep/14 ]

Still present in 1.8.

Comment by [Helper] Anomie X [ 20/Oct/14 ]

Still present in 1.8.1-pre2.

Comment by [Helper] Anomie X [ 21/Dec/14 ]

Still present in 1.8.2-pre1

Comment by [Helper] Anomie X [ 03/Jan/15 ]

I dug into this a bit more today. When a vine block attempts to grow downwards and the block below has vines, then:

  1. Any sides of the block below that don't have a vine on the block above will lose their vines.
  2. Any other sides have a 50% chance of losing their vines.

But the update is skipped if the above results in none of the horizontal sides having vines.

The logic here looks something like this:

newBlockState = bottomBlockState;
while ( sideIterator.hasNext() ) {
    facing = sideIterator.next();
    PropertyBool prop = this.propertyForFacing( facing );
    if ( rand.nextBoolean() || !topBlockState.getValue( prop ).booleanValue() ) {
        newBlockState = newBlockState.withProperty( prop, false );
    }
}

It would make more sense for the code to be 50% chance of setting sides that are set on the block above, rather than clearing sides:

newBlockState = bottomBlockState;
while ( sideIterator.hasNext() ) {
    facing = sideIterator.next();
    PropertyBool prop = this.propertyForFacing( facing );
    if ( rand.nextBoolean() && topBlockState.getValue( prop ).booleanValue() ) {
        newBlockState = newBlockState.withProperty( prop, true );
    }
}
Comment by [Helper] Anomie X [ 15/Jan/15 ]

Still present in 1.8.2-pre3.

Comment by [Helper] Anomie X [ 22/Feb/15 ]

Still present in 1.8.3.

Comment by Thomas Tom [ 23/May/15 ]

I am encountering the same problem.

Comment by Sonic [ 23/May/15 ]

in what version?

Comment by [Mod] Kumasasa [ 24/May/15 ]

@Thomas Tom: This was fixed in 1.8.4

Generated at Tue Sep 26 09:54:15 CDT 2017 using JIRA 7.2.8#72010-sha1:dc33de34ffa065bef267bff4768b99ca94e2c00c.