Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-7473

LC value used in client may not reflect the LC value calculated by server

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Resolution: Incomplete
    • Affects Version/s: Minecraft 1.4.6, Minecraft 1.4.7, Snapshot 13w02a, Snapshot 13w02b, Minecraft 1.5, Snapshot 13w11a, Minecraft 1.5.1, Snapshot 13w16a, Minecraft 1.5.2, Minecraft 1.6.1, Minecraft 1.6.2, Minecraft 1.6.4, Minecraft 13w39b, Minecraft 13w41a, Minecraft 13w41b, Minecraft 13w42a, Minecraft 13w42b, Minecraft 1.7.4, Minecraft 14w04b
    • Fix Version/s: None
    • Labels:
      None
    • Confirmation Status:
      Community Consensus

      Description

      The LC parameter which shows when you have debug enabled, is an index of the upper y coordinate of the chunk section which has the highest non-air block for that chunk. This parameter is important in the calculations for entity spawning. When you place a block above that section or remove every non-air block out of that section, the section should be unloaded or loaded as applicable and the LC parameter should correctly reflect this change.

      What happens when you remove a section:
      When you remove a section of a chunk, e.g. by removing all non-air blocks. The section stays loaded and the server still uses these empty sections for calculations like mobspawning. This does not change if you reload the world! However, if you reload the world, the client's LC parameter will reflect that it has been recalculated (even though the section has not been unloaded on the server).

      What should happen:
      When a section is completely empty it should not be loaded, the LC parameter should reflect that it is not loaded. And any calculations for mob spawning etc, should use the correct LC value. The client should always show the correct LC value.

      How to fix:
      There is a method in the Chunk class (abw.class) which checks for the topmost filled section in a chunk (int h()). Don't just check that the section is not null, but also that it is not empty.

      This video details the problem and the fix
      http://youtu.be/LIDNyB-Ys8w

      This bug has existed for a long time, let's get it fixed !

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                bbinme Bryan Brown
              • Votes:
                213 Vote for this issue
                Watchers:
                24 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  CHK: