Consolidated MCPE network binary handling methods into one class, remove protocol-specific methods from BinaryStream

Remove MCPE-network specific stuff from BinaryStream, added NetworkBinaryStream
This removes dependencies of BinaryStream on core code, while providing some consolidation of network handling code.
This commit is contained in:
Dylan K. Taylor
2018-01-11 12:28:56 +00:00
parent 7daca754b1
commit e6bd12dc2f
5 changed files with 557 additions and 518 deletions

View File

@ -30,8 +30,8 @@ use pocketmine\inventory\FurnaceRecipe;
use pocketmine\inventory\ShapedRecipe;
use pocketmine\inventory\ShapelessRecipe;
use pocketmine\item\Item;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\utils\BinaryStream;
class CraftingDataPacket extends DataPacket{
public const NETWORK_ID = ProtocolInfo::CRAFTING_DATA_PACKET;
@ -114,7 +114,7 @@ class CraftingDataPacket extends DataPacket{
$this->getBool(); //cleanRecipes
}
private static function writeEntry($entry, BinaryStream $stream){
private static function writeEntry($entry, NetworkBinaryStream $stream){
if($entry instanceof ShapelessRecipe){
return self::writeShapelessRecipe($entry, $stream);
}elseif($entry instanceof ShapedRecipe){
@ -127,7 +127,7 @@ class CraftingDataPacket extends DataPacket{
return -1;
}
private static function writeShapelessRecipe(ShapelessRecipe $recipe, BinaryStream $stream){
private static function writeShapelessRecipe(ShapelessRecipe $recipe, NetworkBinaryStream $stream){
$stream->putUnsignedVarInt($recipe->getIngredientCount());
foreach($recipe->getIngredientList() as $item){
$stream->putSlot($item);
@ -144,7 +144,7 @@ class CraftingDataPacket extends DataPacket{
return CraftingDataPacket::ENTRY_SHAPELESS;
}
private static function writeShapedRecipe(ShapedRecipe $recipe, BinaryStream $stream){
private static function writeShapedRecipe(ShapedRecipe $recipe, NetworkBinaryStream $stream){
$stream->putVarInt($recipe->getWidth());
$stream->putVarInt($recipe->getHeight());
@ -165,7 +165,7 @@ class CraftingDataPacket extends DataPacket{
return CraftingDataPacket::ENTRY_SHAPED;
}
private static function writeFurnaceRecipe(FurnaceRecipe $recipe, BinaryStream $stream){
private static function writeFurnaceRecipe(FurnaceRecipe $recipe, NetworkBinaryStream $stream){
if(!$recipe->getInput()->hasAnyDamageValue()){ //Data recipe
$stream->putVarInt($recipe->getInput()->getId());
$stream->putVarInt($recipe->getInput()->getDamage());
@ -195,7 +195,7 @@ class CraftingDataPacket extends DataPacket{
protected function encodePayload(){
$this->putUnsignedVarInt(count($this->entries));
$writer = new BinaryStream();
$writer = new NetworkBinaryStream();
foreach($this->entries as $d){
$entryType = self::writeEntry($d, $writer);
if($entryType >= 0){