Avoid more $this refs on long-life closures

This commit is contained in:
Dylan K. Taylor 2021-05-06 14:27:56 +01:00
parent c356abb917
commit 7b2c6c5ceb
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
4 changed files with 11 additions and 8 deletions

View File

@ -54,8 +54,8 @@ class BrewingStand extends Spawnable implements Container, Nameable{
public function __construct(World $world, Vector3 $pos){
parent::__construct($world, $pos);
$this->inventory = new BrewingStandInventory($this->pos);
$this->inventory->getListeners()->add(CallbackInventoryListener::onAnyChange(function(Inventory $unused) : void{
$this->pos->getWorld()->scheduleDelayedBlockUpdate($this->pos, 1);
$this->inventory->getListeners()->add(CallbackInventoryListener::onAnyChange(static function(Inventory $unused) use ($world, $pos) : void{
$world->scheduleDelayedBlockUpdate($pos, 1);
}));
}

View File

@ -58,8 +58,8 @@ class Furnace extends Spawnable implements Container, Nameable{
parent::__construct($world, $pos);
$this->inventory = new FurnaceInventory($this->pos);
$this->inventory->getListeners()->add(CallbackInventoryListener::onAnyChange(
function(Inventory $unused) : void{
$this->pos->getWorld()->scheduleDelayedBlockUpdate($this->pos, 1);
static function(Inventory $unused) use ($world, $pos) : void{
$world->scheduleDelayedBlockUpdate($pos, 1);
})
);
}

View File

@ -49,8 +49,10 @@ class CraftingManager{
public function __construct(){
$this->recipeRegisteredCallbacks = new ObjectSet();
$this->furnaceRecipeManager = new FurnaceRecipeManager();
$this->furnaceRecipeManager->getRecipeRegisteredCallbacks()->add(function(FurnaceRecipe $recipe) : void{
foreach($this->recipeRegisteredCallbacks as $callback){
$recipeRegisteredCallbacks = $this->recipeRegisteredCallbacks;
$this->furnaceRecipeManager->getRecipeRegisteredCallbacks()->add(static function(FurnaceRecipe $recipe) use ($recipeRegisteredCallbacks) : void{
foreach($recipeRegisteredCallbacks as $callback){
$callback();
}
});

View File

@ -447,8 +447,9 @@ class World implements ChunkManager{
unset($this->generatorRegisteredWorkers[$workerId]);
}
});
$this->addOnUnloadCallback(function() use ($workerStartHook) : void{
$this->workerPool->removeWorkerStartHook($workerStartHook);
$workerPool = $this->workerPool;
$this->addOnUnloadCallback(static function() use ($workerPool, $workerStartHook) : void{
$workerPool->removeWorkerStartHook($workerStartHook);
});
}