22declare(strict_types=1);
26use pocketmine\block\utils\AnalogRedstoneSignalEmitterTrait;
33 use AnalogRedstoneSignalEmitterTrait;
35 private readonly
float $signalStrengthFactor;
41 parent::__construct($idInfo, $name, $typeInfo, $deactivationDelayTicks);
42 $this->signalStrengthFactor = $signalStrengthFactor;
46 return $this->signalStrength > 0;
50 $newSignalStrength = min(15, max(0,
51 (int) ceil(count($entities) * $this->signalStrengthFactor)
53 if($newSignalStrength === $this->signalStrength){
56 $wasActive = $this->signalStrength !== 0;
57 $isActive = $newSignalStrength !== 0;
59 (clone $this)->setOutputSignalStrength($newSignalStrength),
60 $wasActive !== $isActive ? $isActive : null
calculatePlateState(array $entities)
__construct(BlockIdentifier $idInfo, string $name, BlockTypeInfo $typeInfo, int $deactivationDelayTicks, float $signalStrengthFactor=1.0)