RegionLoader: do a full check for chunk overlaps during initial load

This commit is contained in:
Dylan K. Taylor
2020-06-14 22:39:01 +01:00
parent 087ba0cc1d
commit e05bee5ffb
3 changed files with 78 additions and 0 deletions

View File

@ -76,4 +76,17 @@ class RegionLocationTableEntry{
public function isNull() : bool{
return $this->firstSector === 0 or $this->sectorCount === 0;
}
public function overlaps(RegionLocationTableEntry $other) : bool{
$overlapCheck = static function(RegionLocationTableEntry $entry1, RegionLocationTableEntry $entry2) : bool{
$entry1Last = $entry1->getLastSector();
$entry2Last = $entry2->getLastSector();
return (
($entry2->firstSector >= $entry1->firstSector and $entry2->firstSector <= $entry1Last) or
($entry2Last >= $entry1->firstSector and $entry2Last <= $entry1Last)
);
};
return $overlapCheck($this, $other) or $overlapCheck($other, $this);
}
}