GenisysPro  for Minecraft PE/Windows 10 v1.1.x
Feature-rich server software for Minecraft PE and Windows 10 Edition
DoubleChestInventory Class Reference

Public Member Functions

 __construct (Chest $left, Chest $right)
 
 getInventory ()
 
 getHolder ()
 
 getItem ($index)
 
 setItem ($index, Item $item, $send=true)
 
 clear ($index, $send=true)
 
 getContents ($withAir=false)
 
 setContents (array $items, $send=true)
 
 onOpen (Player $who)
 
 onClose (Player $who)
 
 getLeftSide ()
 
 getRightSide ()
 
- Public Member Functions inherited from ChestInventory
 __construct (Chest $tile)
 
 getHolder ()
 
 getContents ($withAir=false)
 
- Public Member Functions inherited from ContainerInventory
 onOpen (Player $who)
 
 onClose (Player $who)
 
- Public Member Functions inherited from BaseInventory
 __construct (InventoryHolder $holder, InventoryType $type, array $items=[], $overrideSize=null, $overrideTitle=null)
 
 __destruct ()
 
 getSize ()
 
 getHotbarSize ()
 
 setSize ($size)
 
 getMaxStackSize ()
 
 getName ()
 
 getTitle ()
 
 getItem ($index)
 
 getContents ()
 
 setContents (array $items, $send=true)
 
 setItem ($index, Item $item, $send=true)
 
 contains (Item $item)
 
 slotContains ($slot, Item $item, $matchCount=false)
 
 all (Item $item)
 
 remove (Item $item, $send=true)
 
 first (Item $item)
 
 firstEmpty ()
 
 firstOccupied ()
 
 canAddItem (Item $item)
 
 clear ($index, $send=true)
 
 clearAll ($send=true)
 
 getViewers ()
 
 getHolder ()
 
 setMaxStackSize ($size)
 
 open (Player $who)
 
 close (Player $who)
 
 onOpen (Player $who)
 
 onClose (Player $who)
 
 onSlotChange ($index, $before, $send)
 
 processSlotChange (Transaction $transaction)
 
 sendContents ($target)
 
 sendSlot ($index, $target)
 
 getType ()
 
- Public Member Functions inherited from Inventory
 setItem ($index, Item $item)
 
 addItem (... $slots)
 
 removeItem (... $slots)
 
 setContents (array $items)
 
 remove (Item $item)
 
 clear ($index)
 
 clearAll ()
 

Additional Inherited Members

- Data Fields inherited from Inventory
const MAX_STACK = 64
 
- Protected Attributes inherited from BaseInventory
 $type
 
 $maxStackSize = Inventory::MAX_STACK
 
 $size
 
 $name
 
 $title
 
 $slots = []
 
 $viewers = []
 
 $holder
 

Constructor & Destructor Documentation

◆ __construct()

__construct ( Chest  $left,
Chest  $right 
)

DoubleChestInventory constructor.

Parameters
Chest$left
Chest$right
42  {
43  $this->left = $left->getRealInventory();
44  $this->right = $right->getRealInventory();
45  $items = array_merge($this->left->getContents(true), $this->right->getContents(true));
47  }

Member Function Documentation

◆ clear()

clear (   $index,
  $send = true 
)
Parameters
int$index
bool$send
Returns
bool
89  {
90  return $index < $this->left->getSize() ? $this->left->clear($index) : $this->right->clear($index - $this->right->getSize());
91  }

◆ getContents()

getContents (   $withAir = false)
Parameters
bool$withAir
Returns
array
97  {
98  $contents = [];
99  for($i = 0; $i < $this->getSize(); ++$i){
100  $contents[$i] = $this->getItem($i);
101  }
102 
103  return $contents;
104  }

◆ getHolder()

getHolder ( )
Returns
Chest

Implements Inventory.

59  {
60  return $this->left->getHolder();
61  }

◆ getInventory()

getInventory ( )
Returns
$this

Implements InventoryHolder.

52  {
53  return $this;
54  }

◆ getItem()

getItem (   $index)
Parameters
int$index
Returns
Item

Implements Inventory.

68  {
69  return $index < $this->left->getSize() ? $this->left->getItem($index) : $this->right->getItem($index - $this->right->getSize());
70  }

◆ getLeftSide()

getLeftSide ( )
Returns
ChestInventory
171  {
172  return $this->left;
173  }

◆ getRightSide()

getRightSide ( )
Returns
ChestInventory
178  {
179  return $this->right;
180  }

◆ onClose()

onClose ( Player  $who)
Parameters
Player$who

Implements Inventory.

153  {
154  if(count($this->getViewers()) === 1){
155  $pk = new BlockEventPacket();
156  $pk->x = $this->right->getHolder()->getX();
157  $pk->y = $this->right->getHolder()->getY();
158  $pk->z = $this->right->getHolder()->getZ();
159  $pk->case1 = 1;
160  $pk->case2 = 0;
161  if(($level = $this->right->getHolder()->getLevel()) instanceof Level){
162  $level->addChunkPacket($this->right->getHolder()->getX() >> 4, $this->right->getHolder()->getZ() >> 4, $pk);
163  }
164  }
165  parent::onClose($who);
166  }

◆ onOpen()

onOpen ( Player  $who)
Parameters
Player$who

Implements Inventory.

134  {
135  parent::onOpen($who);
136 
137  if(count($this->getViewers()) === 1){
138  $pk = new BlockEventPacket();
139  $pk->x = $this->right->getHolder()->getX();
140  $pk->y = $this->right->getHolder()->getY();
141  $pk->z = $this->right->getHolder()->getZ();
142  $pk->case1 = 1;
143  $pk->case2 = 2;
144  if(($level = $this->right->getHolder()->getLevel()) instanceof Level){
145  $level->addChunkPacket($this->right->getHolder()->getX() >> 4, $this->right->getHolder()->getZ() >> 4, $pk);
146  }
147  }
148  }

◆ setContents()

setContents ( array  $items,
  $send = true 
)
Parameters
Item[]$items
bool$send
110  {
111  if(count($items) > $this->size){
112  $items = array_slice($items, 0, $this->size, true);
113  }
114 
115 
116  for($i = 0; $i < $this->size; ++$i){
117  if(!isset($items[$i])){
118  if($i < $this->left->size){
119  if(isset($this->left->slots[$i])){
120  $this->clear($i);
121  }
122  }elseif(isset($this->right->slots[$i - $this->left->size])){
123  $this->clear($i);
124  }
125  }elseif(!$this->setItem($i, $items[$i])){
126  $this->clear($i);
127  }
128  }
129  }

◆ setItem()

setItem (   $index,
Item  $item,
  $send = true 
)
Parameters
int$index
Item$item
bool$send
Returns
bool
79  {
80  return $index < $this->left->getSize() ? $this->left->setItem($index, $item) : $this->right->setItem($index - $this->right->getSize(), $item);
81  }

The documentation for this class was generated from the following file: