Package cn.nukkit.level.format.anvil
Class ChunkSection
java.lang.Object
cn.nukkit.level.format.anvil.ChunkSection
- All Implemented Interfaces:
ChunkSection
,ChunkSection3DBiome
@ParametersAreNonnullByDefault
public class ChunkSection
extends Object
implements ChunkSection, ChunkSection3DBiome
- Author:
- MagicDroidX (Nukkit Project)
-
Field Summary
Modifier and TypeFieldDescriptionprotected byte[]
protected byte[]
protected byte[]
protected boolean
protected boolean
protected boolean
static final int
protected final ReentrantReadWriteLock
protected byte[]
static final int
-
Constructor Summary
ConstructorDescriptionChunkSection
(int y) ChunkSection
(CompoundTag nbt) ChunkSection
(CompoundTag nbt, byte[] default2DBiomeId) -
Method Summary
Modifier and TypeMethodDescriptionboolean
compress()
void
copy()
void
byte[]
getAndSetBlock
(int x, int y, int z, int layer, Block block) getAndSetBlock
(int x, int y, int z, Block block) getAndSetBlockState
(int x, int y, int z, int layer, BlockState state) int
getBiomeId
(int x, int y, int z) 获取子区块中某个特定位置的生物群系idint
getBlockChangeStateAbove
(int x, int y, int z) int
getBlockData
(int x, int y, int z) Deprecated.int
getBlockData
(int x, int y, int z, int layer) Deprecated.int
getBlockId
(int x, int y, int z) int
getBlockId
(int x, int y, int z, int layer) int
getBlockLight
(int x, int y, int z) int
getBlockSkyLight
(int x, int y, int z) getBlockState
(int x, int y, int z, int layer) int
int
getFullBlock
(int x, int y, int z) Deprecated.int
getFullBlock
(int x, int y, int z, int layer) Deprecated.byte[]
int
byte[]
int
getY()
boolean
boolean
isEmpty()
scanBlocks
(LevelProvider provider, int offsetX, int offsetZ, BlockVector3 min, BlockVector3 max, BiPredicate<BlockVector3, BlockState> condition) void
set3DBiomeDataArray
(byte[] data) 设置3D生物群系字节数据void
setBiomeId
(int x, int y, int z, byte id) 设置子区块中某个特定位置的生物群系idboolean
setBlock
(int x, int y, int z, int blockId) boolean
setBlock
(int x, int y, int z, int blockId, int meta) Deprecated.boolean
setBlockAtLayer
(int x, int y, int z, int layer, int blockId) boolean
setBlockAtLayer
(int x, int y, int z, int layer, int blockId, int meta) Deprecated.void
setBlockData
(int x, int y, int z, int data) Deprecated.void
setBlockData
(int x, int y, int z, int layer, int data) Deprecated.void
setBlockId
(int x, int y, int z, int id) void
setBlockId
(int x, int y, int z, int layer, int id) void
setBlockLight
(int x, int y, int z, int level) void
setBlockSkyLight
(int x, int y, int z, int level) boolean
setBlockStateAtLayer
(int x, int y, int z, int layer, BlockState state) void
setContentVersion
(int contentVersion) boolean
setFullBlockId
(int x, int y, int z, int fullId) Deprecated.boolean
setFullBlockId
(int x, int y, int z, int layer, int fullId) Deprecated.void
toNBT()
toString()
void
writeObfuscatedTo
(BinaryStream stream, Level level) 以混淆方式将子区块写入二进制流,通常用于反矿透void
writeTo
(BinaryStream stream) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface cn.nukkit.level.format.ChunkSection
getAndSetBlockState, getBlockState, setBlockState
-
Field Details
-
STREAM_STORAGE_VERSION
- See Also:
-
SAVE_STORAGE_VERSION
- See Also:
-
sectionLock
-
biomeId
protected byte[] biomeId -
blockLight
protected byte[] blockLight -
skyLight
protected byte[] skyLight -
compressedLight
protected byte[] compressedLight -
hasBlockLight
protected boolean hasBlockLight -
hasSkyLight
protected boolean hasSkyLight -
invalidCustomBlockWhenLoad
-
-
Constructor Details
-
ChunkSection
public ChunkSection(int y) -
ChunkSection
-
ChunkSection
-
-
Method Details
-
getY
public int getY()- Specified by:
getY
in interfaceChunkSection
-
getBlockId
public int getBlockId(int x, int y, int z) - Specified by:
getBlockId
in interfaceChunkSection
-
getBlockId
- Specified by:
getBlockId
in interfaceChunkSection
-
setBlockId
public void setBlockId(int x, int y, int z, int id) - Specified by:
setBlockId
in interfaceChunkSection
-
setBlockId
- Specified by:
setBlockId
in interfaceChunkSection
-
setFullBlockId
@Deprecated @DeprecationDetails(reason="The meta is limited to 32 bits", since="1.4.0.0-PN") public boolean setFullBlockId(int x, int y, int z, int fullId) Deprecated.- Specified by:
setFullBlockId
in interfaceChunkSection
-
setFullBlockId
@Deprecated @DeprecationDetails(reason="The meta is limited to 32 bits", since="1.4.0.0-PN") @PowerNukkitOnly public boolean setFullBlockId(int x, int y, int z, int layer, int fullId) Deprecated.- Specified by:
setFullBlockId
in interfaceChunkSection
-
getBlockData
@Deprecated @DeprecationDetails(reason="The data is limited to 32 bits", replaceWith="getBlockState", since="1.4.0.0-PN") public int getBlockData(int x, int y, int z) Deprecated.- Specified by:
getBlockData
in interfaceChunkSection
-
getBlockData
@Deprecated @DeprecationDetails(reason="The data is limited to 32 bits", replaceWith="getBlockState", since="1.4.0.0-PN") @PowerNukkitOnly public int getBlockData(int x, int y, int z, int layer) Deprecated.- Specified by:
getBlockData
in interfaceChunkSection
-
setBlockData
@Deprecated @DeprecationDetails(reason="The data is limited to 32 bits", replaceWith="getBlockState", since="1.4.0.0-PN") public void setBlockData(int x, int y, int z, int data) Deprecated.- Specified by:
setBlockData
in interfaceChunkSection
-
setBlockData
@Deprecated @DeprecationDetails(reason="The data is limited to 32 bits", replaceWith="getBlockState", since="1.4.0.0-PN") @PowerNukkitOnly public void setBlockData(int x, int y, int z, int layer, int data) Deprecated.- Specified by:
setBlockData
in interfaceChunkSection
-
getFullBlock
@Deprecated @DeprecationDetails(reason="The data is limited to 32 bits", replaceWith="getBlockState", since="1.4.0.0-PN") public int getFullBlock(int x, int y, int z) Deprecated.- Specified by:
getFullBlock
in interfaceChunkSection
-
getBlockState
- Specified by:
getBlockState
in interfaceChunkSection
-
getFullBlock
@PowerNukkitOnly @Deprecated @DeprecationDetails(reason="The data is limited to 32 bits", replaceWith="getBlockState", since="1.4.0.0-PN") public int getFullBlock(int x, int y, int z, int layer) Deprecated.- Specified by:
getFullBlock
in interfaceChunkSection
-
setBlock
public boolean setBlock(int x, int y, int z, int blockId) - Specified by:
setBlock
in interfaceChunkSection
-
setBlockAtLayer
- Specified by:
setBlockAtLayer
in interfaceChunkSection
-
getAndSetBlock
- Specified by:
getAndSetBlock
in interfaceChunkSection
-
getAndSetBlock
- Specified by:
getAndSetBlock
in interfaceChunkSection
-
getAndSetBlockState
@PowerNukkitOnly @Since("1.4.0.0-PN") public BlockState getAndSetBlockState(int x, int y, int z, int layer, BlockState state) - Specified by:
getAndSetBlockState
in interfaceChunkSection
-
setBlock
@Deprecated @DeprecationDetails(reason="The data is limited to 32 bits", replaceWith="getBlockState", since="1.4.0.0-PN") public boolean setBlock(int x, int y, int z, int blockId, int meta) Deprecated.- Specified by:
setBlock
in interfaceChunkSection
-
setBlockAtLayer
@Deprecated @DeprecationDetails(reason="The data is limited to 32 bits", replaceWith="getBlockState", since="1.4.0.0-PN") @PowerNukkitOnly public boolean setBlockAtLayer(int x, int y, int z, int layer, int blockId, int meta) Deprecated.- Specified by:
setBlockAtLayer
in interfaceChunkSection
-
setBlockStateAtLayer
@PowerNukkitOnly public boolean setBlockStateAtLayer(int x, int y, int z, int layer, BlockState state) - Specified by:
setBlockStateAtLayer
in interfaceChunkSection
-
getBlockChangeStateAbove
- Specified by:
getBlockChangeStateAbove
in interfaceChunkSection
-
delayPaletteUpdates
- Specified by:
delayPaletteUpdates
in interfaceChunkSection
-
getBlockSkyLight
public int getBlockSkyLight(int x, int y, int z) - Specified by:
getBlockSkyLight
in interfaceChunkSection
-
setBlockSkyLight
public void setBlockSkyLight(int x, int y, int z, int level) - Specified by:
setBlockSkyLight
in interfaceChunkSection
-
getBlockLight
public int getBlockLight(int x, int y, int z) - Specified by:
getBlockLight
in interfaceChunkSection
-
setBlockLight
public void setBlockLight(int x, int y, int z, int level) - Specified by:
setBlockLight
in interfaceChunkSection
-
getSkyLightArray
public byte[] getSkyLightArray()- Specified by:
getSkyLightArray
in interfaceChunkSection
-
getLightArray
public byte[] getLightArray()- Specified by:
getLightArray
in interfaceChunkSection
-
isEmpty
public boolean isEmpty()- Specified by:
isEmpty
in interfaceChunkSection
-
writeTo
- Specified by:
writeTo
in interfaceChunkSection
-
writeObfuscatedTo
Description copied from interface:ChunkSection
以混淆方式将子区块写入二进制流,通常用于反矿透- Specified by:
writeObfuscatedTo
in interfaceChunkSection
- Parameters:
stream
- 二进制流level
- 子区块所在世界,包含混淆所用数据
-
toNBT
- Specified by:
toNBT
in interfaceChunkSection
-
compressStorageLayers
- Specified by:
compressStorageLayers
in interfaceChunkSection
-
compress
public boolean compress() -
scanBlocks
@Since("1.4.0.0-PN") @PowerNukkitOnly public List<Block> scanBlocks(LevelProvider provider, int offsetX, int offsetZ, BlockVector3 min, BlockVector3 max, BiPredicate<BlockVector3, BlockState> condition) - Specified by:
scanBlocks
in interfaceChunkSection
-
copy
- Specified by:
copy
in interfaceChunkSection
-
getMaximumLayer
- Specified by:
getMaximumLayer
in interfaceChunkSection
-
getContentVersion
@PowerNukkitOnly("Needed for level backward compatibility") @Since("1.3.0.0-PN") public int getContentVersion()- Specified by:
getContentVersion
in interfaceChunkSection
-
setContentVersion
@PowerNukkitOnly("Needed for level backward compatibility") @Since("1.3.1.0-PN") public void setContentVersion(int contentVersion) - Specified by:
setContentVersion
in interfaceChunkSection
-
hasBlocks
- Specified by:
hasBlocks
in interfaceChunkSection
-
getBiomeId
public int getBiomeId(int x, int y, int z) Description copied from interface:ChunkSection3DBiome
获取子区块中某个特定位置的生物群系id- Specified by:
getBiomeId
in interfaceChunkSection3DBiome
- Parameters:
x
- [0, 16)y
- [0, 16)z
- [0, 16)- Returns:
- 特定位置的生物群系id
-
setBiomeId
public void setBiomeId(int x, int y, int z, byte id) Description copied from interface:ChunkSection3DBiome
设置子区块中某个特定位置的生物群系id- Specified by:
setBiomeId
in interfaceChunkSection3DBiome
- Parameters:
x
- [0, 16)y
- [0, 16)z
- [0, 16)id
- 生物群系id
-
get3DBiomeDataArray
public byte[] get3DBiomeDataArray()- Specified by:
get3DBiomeDataArray
in interfaceChunkSection3DBiome
- Returns:
- 3D生物群系字节数据
-
set3DBiomeDataArray
public void set3DBiomeDataArray(byte[] data) Description copied from interface:ChunkSection3DBiome
设置3D生物群系字节数据- Specified by:
set3DBiomeDataArray
in interfaceChunkSection3DBiome
-
setNeedReObfuscate
- Specified by:
setNeedReObfuscate
in interfaceChunkSection
-
toString
-