Javadoc updates
Fixes BUKKIT-1653, Fixes BUKKIT-1383 and Fixes BUKKIT-1644 By: feildmaster <admin@feildmaster.com>
This commit is contained in:
@@ -38,8 +38,8 @@ public abstract class ChunkGenerator {
|
||||
}
|
||||
@Deprecated
|
||||
/**
|
||||
* Shapes the chunk for the given coordinates.<br />
|
||||
* <br />
|
||||
* Shapes the chunk for the given coordinates.
|
||||
* <p />
|
||||
* This method should return a byte[32768] in the following format:
|
||||
*
|
||||
* <pre>
|
||||
@@ -51,10 +51,10 @@ public abstract class ChunkGenerator {
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* <p />
|
||||
* Note that this method should <b>never</b> attempt to get the Chunk at
|
||||
* the passed coordinates, as doing so may cause an infinite loop
|
||||
*
|
||||
* <p />
|
||||
* Note this deprecated method will only be called when both generateExtBlockSections()
|
||||
* and generateBlockSections() are unimplemented and return null.
|
||||
|
||||
@@ -70,20 +70,40 @@ public abstract class ChunkGenerator {
|
||||
|
||||
/**
|
||||
* Shapes the chunk for the given coordinates, with extended block IDs supported (0-4095).
|
||||
* <p>
|
||||
* <p />
|
||||
* As of 1.2, chunks are represented by a vertical array of chunk sections, each of which is 16 x 16 x 16 blocks. If a section
|
||||
* is empty (all zero), the section does not need to be supplied, reducing memory usage.
|
||||
* <p>
|
||||
* <p />
|
||||
* This method must return a short[][] array in the following format:
|
||||
* <pre>
|
||||
* short[][] result = new short[world-height / 16][];
|
||||
* </pre>
|
||||
* </pre>
|
||||
* Each section (sectionID = (Y>>4)) that has blocks needs to be allocated space for the 4096 blocks in that section:
|
||||
* <pre>
|
||||
* result[sectionID] = new short[4096];
|
||||
* </pre>
|
||||
* while sections that are not populated can be left null.
|
||||
* <p>
|
||||
* <p />
|
||||
* Setting a block at X, Y, Z within the chunk can be done with the following mapping function:
|
||||
* <pre>
|
||||
* void setBlock(short[][] result, int x, int y, int z, short blkid) {
|
||||
* if (result[y >> 4] == null) {
|
||||
* result[y >> 4] = new short[4096];
|
||||
* }
|
||||
* result[y >> 4][((y & 0xF) << 8) | (z << 4) | x] = blkid;
|
||||
* }
|
||||
* </pre>
|
||||
* while reading a block ID can be done with the following mapping function:
|
||||
* <pre>
|
||||
* short getBlock(short[][] result, int x, int y, int z) {
|
||||
* if (result[y >> 4] == null) {
|
||||
* return (short)0;
|
||||
* }
|
||||
* return result[y >> 4][((y & 0xF) << 8) | (z << 4) | x];
|
||||
* }
|
||||
* </pre>
|
||||
* while sections that are not populated can be left null.
|
||||
* <p />
|
||||
* Setting a block at X, Y, Z within the chunk can be done with the following mapping function:
|
||||
* <pre>
|
||||
* void setBlock(short[][] result, int x, int y, int z, short blkid) {
|
||||
@@ -102,10 +122,10 @@ public abstract class ChunkGenerator {
|
||||
* return result[y >> 4][((y & 0xF) << 8) | (z << 4) | x];
|
||||
* }
|
||||
* </pre>
|
||||
* <p>
|
||||
* <p />
|
||||
* Note that this method should <b>never</b> attempt to get the Chunk at
|
||||
* the passed coordinates, as doing so may cause an infinite loop
|
||||
* <p>
|
||||
* <p />
|
||||
* Note generators that do not return block IDs above 255 should not implement
|
||||
* this method, or should have it return null (which will result in the
|
||||
* generateBlockSections() method being called).
|
||||
@@ -123,20 +143,20 @@ public abstract class ChunkGenerator {
|
||||
|
||||
/**
|
||||
* Shapes the chunk for the given coordinates.
|
||||
* <p>
|
||||
* <p />
|
||||
* As of 1.2, chunks are represented by a vertical array of chunk sections, each of which is 16 x 16 x 16 blocks. If a section
|
||||
* is empty (all zero), the section does not need to be supplied, reducing memory usage.
|
||||
* <p>
|
||||
* <p />
|
||||
* This method must return a byte[][] array in the following format:
|
||||
* <pre>
|
||||
* byte[][] result = new byte[world-height / 16][];
|
||||
* </pre>
|
||||
* </pre>
|
||||
* Each section (sectionID = (Y>>4)) that has blocks needs to be allocated space for the 4096 blocks in that section:
|
||||
* <pre>
|
||||
* result[sectionID] = new byte[4096];
|
||||
* </pre>
|
||||
* while sections that are not populated can be left null.
|
||||
* <p>
|
||||
* <p />
|
||||
* Setting a block at X, Y, Z within the chunk can be done with the following mapping function:
|
||||
* <pre>
|
||||
* void setBlock(byte[][] result, int x, int y, int z, byte blkid) {
|
||||
|
||||
Reference in New Issue
Block a user