*/ private $lightEmitters; /** * @param \SplFixedArray|int[] $lightFilters * @param \SplFixedArray|int[] $lightEmitters * @phpstan-param \SplFixedArray $lightFilters * @phpstan-param \SplFixedArray $lightEmitters */ public function __construct(ChunkManager $world, \SplFixedArray $lightFilters, \SplFixedArray $lightEmitters){ parent::__construct($world, $lightFilters); $this->lightEmitters = $lightEmitters; } protected function updateLightArrayRef() : void{ $this->currentLightArray = $this->subChunkHandler->currentSubChunk->getBlockLightArray(); } public function recalculateNode(int $x, int $y, int $z) : void{ if($this->subChunkHandler->moveTo($x, $y, $z, false)){ $block = $this->subChunkHandler->currentSubChunk->getFullBlock($x & 0xf, $y & 0xf, $z & 0xf); $this->setAndUpdateLight($x, $y, $z, max($this->lightEmitters[$block], $this->getHighestAdjacentLight($x, $y, $z) - $this->lightFilters[$block])); } } }