Rename Container(Trait) -> ContainerTile(Trait)

this allows introducing block variations of these without name conflicts
This commit is contained in:
Dylan K. Taylor 2024-12-06 15:34:32 +00:00
parent 6578d65cd8
commit ce4d3aef9e
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
10 changed files with 28 additions and 28 deletions

View File

@ -29,9 +29,9 @@ use pocketmine\math\Vector3;
use pocketmine\nbt\tag\CompoundTag; use pocketmine\nbt\tag\CompoundTag;
use pocketmine\world\World; use pocketmine\world\World;
class Barrel extends Spawnable implements Container, Nameable{ class Barrel extends Spawnable implements ContainerTile, Nameable{
use NameableTrait; use NameableTrait;
use ContainerTrait; use ContainerTileTrait;
protected Inventory $inventory; protected Inventory $inventory;

View File

@ -41,11 +41,11 @@ use pocketmine\world\World;
use function array_map; use function array_map;
use function count; use function count;
class BrewingStand extends Spawnable implements Container, Nameable{ class BrewingStand extends Spawnable implements ContainerTile, Nameable{
use NameableTrait { use NameableTrait {
addAdditionalSpawnData as addNameSpawnData; addAdditionalSpawnData as addNameSpawnData;
} }
use ContainerTrait; use ContainerTileTrait;
public const BREW_TIME_TICKS = 400; // Brew time in ticks public const BREW_TIME_TICKS = 400; // Brew time in ticks

View File

@ -34,8 +34,8 @@ use pocketmine\nbt\tag\IntTag;
use pocketmine\network\mcpe\convert\TypeConverter; use pocketmine\network\mcpe\convert\TypeConverter;
use pocketmine\world\World; use pocketmine\world\World;
class Campfire extends Spawnable implements Container{ class Campfire extends Spawnable implements ContainerTile{
use ContainerTrait; use ContainerTileTrait;
private const TAG_FIRST_INPUT_ITEM = "Item1"; //TAG_Compound private const TAG_FIRST_INPUT_ITEM = "Item1"; //TAG_Compound
private const TAG_SECOND_INPUT_ITEM = "Item2"; //TAG_Compound private const TAG_SECOND_INPUT_ITEM = "Item2"; //TAG_Compound

View File

@ -33,11 +33,11 @@ use pocketmine\world\format\Chunk;
use pocketmine\world\World; use pocketmine\world\World;
use function abs; use function abs;
class Chest extends Spawnable implements Container, Nameable{ class Chest extends Spawnable implements ContainerTile, Nameable{
use NameableTrait { use NameableTrait {
addAdditionalSpawnData as addNameSpawnData; addAdditionalSpawnData as addNameSpawnData;
} }
use ContainerTrait { use ContainerTileTrait {
onBlockDestroyedHook as containerTraitBlockDestroyedHook; onBlockDestroyedHook as containerTraitBlockDestroyedHook;
} }

View File

@ -37,8 +37,8 @@ use pocketmine\nbt\tag\StringTag;
use pocketmine\world\World; use pocketmine\world\World;
use function count; use function count;
class ChiseledBookshelf extends Tile implements Container{ class ChiseledBookshelf extends Tile implements ContainerTile{
use ContainerTrait; use ContainerTileTrait;
private const TAG_LAST_INTERACTED_SLOT = "LastInteractedSlot"; //TAG_Int private const TAG_LAST_INTERACTED_SLOT = "LastInteractedSlot"; //TAG_Int
@ -82,7 +82,7 @@ class ChiseledBookshelf extends Tile implements Container{
} }
protected function loadItems(CompoundTag $tag) : void{ protected function loadItems(CompoundTag $tag) : void{
if(($inventoryTag = $tag->getTag(Container::TAG_ITEMS)) instanceof ListTag && $inventoryTag->getTagType() === NBT::TAG_Compound){ if(($inventoryTag = $tag->getTag(ContainerTile::TAG_ITEMS)) instanceof ListTag && $inventoryTag->getTagType() === NBT::TAG_Compound){
$inventory = $this->inventory; $inventory = $this->inventory;
$listeners = $inventory->getListeners()->toArray(); $listeners = $inventory->getListeners()->toArray();
$inventory->getListeners()->remove(...$listeners); //prevent any events being fired by initialization $inventory->getListeners()->remove(...$listeners); //prevent any events being fired by initialization
@ -107,7 +107,7 @@ class ChiseledBookshelf extends Tile implements Container{
$inventory->getListeners()->add(...$listeners); $inventory->getListeners()->add(...$listeners);
} }
if(($lockTag = $tag->getTag(Container::TAG_LOCK)) instanceof StringTag){ if(($lockTag = $tag->getTag(ContainerTile::TAG_LOCK)) instanceof StringTag){
$this->lock = $lockTag->getValue(); $this->lock = $lockTag->getValue();
} }
} }
@ -126,10 +126,10 @@ class ChiseledBookshelf extends Tile implements Container{
} }
} }
$tag->setTag(Container::TAG_ITEMS, new ListTag($items, NBT::TAG_Compound)); $tag->setTag(ContainerTile::TAG_ITEMS, new ListTag($items, NBT::TAG_Compound));
if($this->lock !== null){ if($this->lock !== null){
$tag->setString(Container::TAG_LOCK, $this->lock); $tag->setString(ContainerTile::TAG_LOCK, $this->lock);
} }
} }
} }

View File

@ -25,7 +25,7 @@ namespace pocketmine\block\tile;
use pocketmine\inventory\InventoryHolder; use pocketmine\inventory\InventoryHolder;
interface Container extends InventoryHolder{ interface ContainerTile extends InventoryHolder{
public const TAG_ITEMS = "Items"; public const TAG_ITEMS = "Items";
public const TAG_LOCK = "Lock"; public const TAG_LOCK = "Lock";

View File

@ -33,14 +33,14 @@ use pocketmine\nbt\tag\StringTag;
use pocketmine\world\Position; use pocketmine\world\Position;
/** /**
* This trait implements most methods in the {@link Container} interface. It should only be used by Tiles. * This trait implements most methods in the {@link ContainerTile} interface. It should only be used by Tiles.
*/ */
trait ContainerTrait{ trait ContainerTileTrait{
/** @var string|null */ /** @var string|null */
private $lock = null; private $lock = null;
protected function loadItems(CompoundTag $tag) : void{ protected function loadItems(CompoundTag $tag) : void{
if(($inventoryTag = $tag->getTag(Container::TAG_ITEMS)) instanceof ListTag && $inventoryTag->getTagType() === NBT::TAG_Compound){ if(($inventoryTag = $tag->getTag(ContainerTile::TAG_ITEMS)) instanceof ListTag && $inventoryTag->getTagType() === NBT::TAG_Compound){
$inventory = $this->getInventory(); $inventory = $this->getInventory();
$listeners = $inventory->getListeners()->toArray(); $listeners = $inventory->getListeners()->toArray();
$inventory->getListeners()->remove(...$listeners); //prevent any events being fired by initialization $inventory->getListeners()->remove(...$listeners); //prevent any events being fired by initialization
@ -61,7 +61,7 @@ trait ContainerTrait{
$inventory->getListeners()->add(...$listeners); $inventory->getListeners()->add(...$listeners);
} }
if(($lockTag = $tag->getTag(Container::TAG_LOCK)) instanceof StringTag){ if(($lockTag = $tag->getTag(ContainerTile::TAG_LOCK)) instanceof StringTag){
$this->lock = $lockTag->getValue(); $this->lock = $lockTag->getValue();
} }
} }
@ -72,15 +72,15 @@ trait ContainerTrait{
$items[] = $item->nbtSerialize($slot); $items[] = $item->nbtSerialize($slot);
} }
$tag->setTag(Container::TAG_ITEMS, new ListTag($items, NBT::TAG_Compound)); $tag->setTag(ContainerTile::TAG_ITEMS, new ListTag($items, NBT::TAG_Compound));
if($this->lock !== null){ if($this->lock !== null){
$tag->setString(Container::TAG_LOCK, $this->lock); $tag->setString(ContainerTile::TAG_LOCK, $this->lock);
} }
} }
/** /**
* @see Container::canOpenWith() * @see ContainerTile::canOpenWith()
*/ */
public function canOpenWith(string $key) : bool{ public function canOpenWith(string $key) : bool{
return $this->lock === null || $this->lock === $key; return $this->lock === null || $this->lock === $key;

View File

@ -41,9 +41,9 @@ use pocketmine\world\World;
use function array_map; use function array_map;
use function max; use function max;
abstract class Furnace extends Spawnable implements Container, Nameable{ abstract class Furnace extends Spawnable implements ContainerTile, Nameable{
use NameableTrait; use NameableTrait;
use ContainerTrait; use ContainerTileTrait;
public const TAG_BURN_TIME = "BurnTime"; public const TAG_BURN_TIME = "BurnTime";
public const TAG_COOK_TIME = "CookTime"; public const TAG_COOK_TIME = "CookTime";

View File

@ -29,9 +29,9 @@ use pocketmine\math\Vector3;
use pocketmine\nbt\tag\CompoundTag; use pocketmine\nbt\tag\CompoundTag;
use pocketmine\world\World; use pocketmine\world\World;
class Hopper extends Spawnable implements Container, Nameable{ class Hopper extends Spawnable implements ContainerTile, Nameable{
use ContainerTrait; use ContainerTileTrait;
use NameableTrait; use NameableTrait;
private const TAG_TRANSFER_COOLDOWN = "TransferCooldown"; private const TAG_TRANSFER_COOLDOWN = "TransferCooldown";

View File

@ -35,11 +35,11 @@ use pocketmine\math\Vector3;
use pocketmine\nbt\tag\CompoundTag; use pocketmine\nbt\tag\CompoundTag;
use pocketmine\world\World; use pocketmine\world\World;
class ShulkerBox extends Spawnable implements Container, Nameable{ class ShulkerBox extends Spawnable implements ContainerTile, Nameable{
use NameableTrait { use NameableTrait {
addAdditionalSpawnData as addNameSpawnData; addAdditionalSpawnData as addNameSpawnData;
} }
use ContainerTrait; use ContainerTileTrait;
public const TAG_FACING = "facing"; public const TAG_FACING = "facing";