Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public Chunk provideChunk( int x, int z )
- {
- long lx = ( long ) x;
- long lz = ( long ) z;
- short[] id = new short[ 16 * 256 * 16 ];
- byte[] meta = new byte[ 16 * 256 * 16 ];
- generateBase( id, meta );
- addCaves( x, z, id, meta );
- Chunk chunk = makeChunk( x, z, id, meta );
- chunk.generateSkylightMap();
- return chunk;
- }
- private Chunk makeChunk( int x, int z, short[] id, byte[] meta )
- {
- Chunk chunk = new Chunk( world, x, z );
- ExtendedBlockStorage[] storage = chunk.getBlockStorageArray();
- int height = id.length / ( 16 * 16 );
- for ( int ix = 0; ix < 16; ++ix )
- {
- for ( int iz = 0; iz < 16; ++iz )
- {
- for ( int iy = 0; iy < height; ++iy )
- {
- int index = 0;
- index |= ix << 12;
- index |= iz << 8;
- index |= iy;
- int storageIndex = iy >> 4;
- if( storage[ storageIndex ] == null )
- {
- storage[ storageIndex ] = new ExtendedBlockStorage( storageIndex << 4, false );
- }
- storage[ storageIndex ].setExtBlockID( ix, iy & 0xf, iz, id[ index ] );
- storage[ storageIndex ].setExtBlockMetadata( ix, iy & 0xf, iz, meta[ index ] );
- }
- }
- }
- return chunk;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement