Explicit checks for missing tags, fix issues with converted worlds, close #212

This commit is contained in:
Dylan K. Taylor 2016-12-30 10:36:26 +00:00
parent 0c3780de40
commit b263d81baf
3 changed files with 14 additions and 14 deletions

View File

@ -140,10 +140,10 @@ class Anvil extends McRegion{
$chunk["xPos"],
$chunk["zPos"],
$subChunks,
$chunk->Entities->getValue(),
$chunk->TileEntities->getValue(),
isset($chunk->Entities) ? $chunk->Entities->getValue() : [],
isset($chunk->TileEntities) ? $chunk->TileEntities->getValue() : [],
$biomeIds,
$chunk->HeightMap->getValue()
isset($chunk->HeightMap) ? $chunk->HeightMap->getValue() : []
);
$result->setLightPopulated(isset($chunk->LightPopulated) ? ((bool) $chunk->LightPopulated->getValue()) : false);
$result->setPopulated(isset($chunk->TerrainPopulated) ? ((bool) $chunk->TerrainPopulated->getValue()) : false);

View File

@ -135,10 +135,10 @@ class McRegion extends BaseLevelProvider{
$chunk = $chunk->Level;
$subChunks = [];
$fullIds = $chunk->Blocks instanceof ByteArrayTag ? $chunk->Blocks->getValue() : str_repeat("\x00", 32768);
$fullData = $chunk->Data instanceof ByteArrayTag ? $chunk->Data->getValue() : ($half = str_repeat("\x00", 16384));
$fullBlockLight = $chunk->BlockLight instanceof ByteArrayTag ? $chunk->BlockLight->getValue() : $half;
$fullSkyLight = $chunk->SkyLight instanceof ByteArrayTag ? $chunk->SkyLight->getValue() : str_repeat("\xff", 16384);
$fullIds = isset($chunk->Blocks) ? $chunk->Blocks->getValue() : str_repeat("\x00", 32768);
$fullData = isset($chunk->Data) ? $chunk->Data->getValue() : ($half = str_repeat("\x00", 16384));
$fullBlockLight = isset($chunk->BlockLight) ? $chunk->BlockLight->getValue() : $half;
$fullSkyLight = isset($chunk->SkyLight) ? $chunk->SkyLight->getValue() : str_repeat("\xff", 16384);
for($y = 0; $y < 8; ++$y){
$offset = ($y << 4);
@ -181,10 +181,10 @@ class McRegion extends BaseLevelProvider{
$chunk["xPos"],
$chunk["zPos"],
$subChunks,
$chunk->Entities->getValue(),
$chunk->TileEntities->getValue(),
isset($chunk->Entities) ? $chunk->Entities->getValue() : [],
isset($chunk->TileEntities) ? $chunk->TileEntities->getValue() : [],
$biomeIds,
$chunk->HeightMap->getValue()
isset($chunk->HeightMap) ? $chunk->HeightMap->getValue() : [] //this shouldn't exist in normal mcregion worlds anyway...
);
$result->setLightPopulated(isset($chunk->LightPopulated) ? ((bool) $chunk->LightPopulated->getValue()) : false);
$result->setPopulated(isset($chunk->TerrainPopulated) ? ((bool) $chunk->TerrainPopulated->getValue()) : false);

View File

@ -136,10 +136,10 @@ class PMAnvil extends Anvil{
$chunk["xPos"],
$chunk["zPos"],
$subChunks,
$chunk->Entities->getValue(),
$chunk->TileEntities->getValue(),
$chunk->Biomes->getValue(),
$chunk->HeightMap->getValue()
isset($chunk->Entities) ? $chunk->Entities->getValue() : [],
isset($chunk->TileEntities) ? $chunk->TileEntities->getValue() : [],
isset($chunk->Biomes) ? $chunk->Biomes->getValue() : "",
isset($chunk->HeightMap) ? $chunk->HeightMap->getValue() : []
);
$result->setLightPopulated(isset($chunk->LightPopulated) ? ((bool) $chunk->LightPopulated->getValue()) : false);
$result->setPopulated(isset($chunk->TerrainPopulated) ? ((bool) $chunk->TerrainPopulated->getValue()) : false);