BaseBanner: use ColoredTrait

This commit is contained in:
Dylan K. Taylor 2021-06-30 15:59:39 +01:00
parent a888ab0257
commit 9e79d48aeb
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D

View File

@ -25,6 +25,7 @@ namespace pocketmine\block;
use pocketmine\block\tile\Banner as TileBanner; use pocketmine\block\tile\Banner as TileBanner;
use pocketmine\block\utils\BannerPatternLayer; use pocketmine\block\utils\BannerPatternLayer;
use pocketmine\block\utils\ColoredTrait;
use pocketmine\block\utils\DyeColor; use pocketmine\block\utils\DyeColor;
use pocketmine\data\bedrock\DyeColorIdMap; use pocketmine\data\bedrock\DyeColorIdMap;
use pocketmine\item\Banner as ItemBanner; use pocketmine\item\Banner as ItemBanner;
@ -40,8 +41,7 @@ use function assert;
use function count; use function count;
abstract class BaseBanner extends Transparent{ abstract class BaseBanner extends Transparent{
use ColoredTrait;
protected DyeColor $baseColor;
/** /**
* @var BannerPatternLayer[] * @var BannerPatternLayer[]
@ -50,15 +50,15 @@ abstract class BaseBanner extends Transparent{
protected array $patterns = []; protected array $patterns = [];
public function __construct(BlockIdentifier $idInfo, string $name, BlockBreakInfo $breakInfo){ public function __construct(BlockIdentifier $idInfo, string $name, BlockBreakInfo $breakInfo){
$this->color = DyeColor::BLACK();
parent::__construct($idInfo, $name, $breakInfo); parent::__construct($idInfo, $name, $breakInfo);
$this->baseColor = DyeColor::BLACK();
} }
public function readStateFromWorld() : void{ public function readStateFromWorld() : void{
parent::readStateFromWorld(); parent::readStateFromWorld();
$tile = $this->pos->getWorld()->getTile($this->pos); $tile = $this->pos->getWorld()->getTile($this->pos);
if($tile instanceof TileBanner){ if($tile instanceof TileBanner){
$this->baseColor = $tile->getBaseColor(); $this->color = $tile->getBaseColor();
$this->setPatterns($tile->getPatterns()); $this->setPatterns($tile->getPatterns());
} }
} }
@ -67,7 +67,7 @@ abstract class BaseBanner extends Transparent{
parent::writeStateToWorld(); parent::writeStateToWorld();
$tile = $this->pos->getWorld()->getTile($this->pos); $tile = $this->pos->getWorld()->getTile($this->pos);
assert($tile instanceof TileBanner); assert($tile instanceof TileBanner);
$tile->setBaseColor($this->baseColor); $tile->setBaseColor($this->color);
$tile->setPatterns($this->patterns); $tile->setPatterns($this->patterns);
} }
@ -75,13 +75,6 @@ abstract class BaseBanner extends Transparent{
return false; return false;
} }
/**
* TODO: interface method? this is only the BASE colour...
*/
public function getColor() : DyeColor{
return $this->baseColor;
}
/** /**
* @return BannerPatternLayer[] * @return BannerPatternLayer[]
* @phpstan-return list<BannerPatternLayer> * @phpstan-return list<BannerPatternLayer>
@ -114,7 +107,7 @@ abstract class BaseBanner extends Transparent{
public function place(BlockTransaction $tx, Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{ public function place(BlockTransaction $tx, Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
if($item instanceof ItemBanner){ if($item instanceof ItemBanner){
$this->baseColor = $item->getColor(); $this->color = $item->getColor();
$this->setPatterns($item->getPatterns()); $this->setPatterns($item->getPatterns());
} }
@ -130,7 +123,7 @@ abstract class BaseBanner extends Transparent{
} }
public function asItem() : Item{ public function asItem() : Item{
return ItemFactory::getInstance()->get(ItemIds::BANNER, DyeColorIdMap::getInstance()->toInvertedId($this->baseColor)); return ItemFactory::getInstance()->get(ItemIds::BANNER, DyeColorIdMap::getInstance()->toInvertedId($this->color));
} }
public function getDropsForCompatibleTool(Item $item) : array{ public function getDropsForCompatibleTool(Item $item) : array{