mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-07 10:22:56 +00:00
phpstan: use more class-string
This commit is contained in:
@ -44,7 +44,10 @@ final class TileFactory{
|
||||
* @phpstan-var array<class-string<Tile>, list<string>>
|
||||
*/
|
||||
private static $saveNames = [];
|
||||
/** @var string[] base class => overridden class */
|
||||
/**
|
||||
* @var string[] base class => overridden class
|
||||
* @phpstan-var array<class-string<Tile>, class-string<Tile>>
|
||||
*/
|
||||
private static $classMapping = [];
|
||||
|
||||
private function __construct(){
|
||||
@ -119,6 +122,10 @@ final class TileFactory{
|
||||
* @param string $baseClass Already-registered tile class to override
|
||||
* @param string $newClass Class which extends the base class
|
||||
*
|
||||
* TODO: use an explicit template for param1
|
||||
* @phpstan-param class-string<Tile> $baseClass
|
||||
* @phpstan-param class-string<Tile> $newClass
|
||||
*
|
||||
* @throws \InvalidArgumentException if the base class is not a registered tile
|
||||
*/
|
||||
public static function override(string $baseClass, string $newClass) : void{
|
||||
@ -131,7 +138,12 @@ final class TileFactory{
|
||||
}
|
||||
|
||||
/**
|
||||
* @phpstan-template TTile of Tile
|
||||
* @phpstan-param class-string<TTile> $baseClass
|
||||
*
|
||||
* @return Tile (will be an instanceof $baseClass)
|
||||
* @phpstan-return TTile
|
||||
*
|
||||
* @throws \InvalidArgumentException if the specified class is not a registered tile
|
||||
*/
|
||||
public static function create(string $baseClass, World $world, Vector3 $pos) : Tile{
|
||||
@ -140,6 +152,7 @@ final class TileFactory{
|
||||
assert(is_a($class, $baseClass, true));
|
||||
/**
|
||||
* @var Tile $tile
|
||||
* @phpstan-var TTile $tile
|
||||
* @see Tile::__construct()
|
||||
*/
|
||||
$tile = new $class($world, $pos);
|
||||
@ -170,6 +183,9 @@ final class TileFactory{
|
||||
return $tile;
|
||||
}
|
||||
|
||||
/**
|
||||
* @phpstan-param class-string<Tile> $class
|
||||
*/
|
||||
public static function getSaveId(string $class) : string{
|
||||
if(isset(self::$saveNames[$class])){
|
||||
return reset(self::$saveNames[$class]);
|
||||
|
Reference in New Issue
Block a user