From f8378c09ba36a15b520043be90ab405615312fd9 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Tue, 30 Sep 2014 13:13:31 +0200 Subject: [PATCH] Fixed entities getting OnGround default to true --- src/pocketmine/Player.php | 2 +- src/pocketmine/Server.php | 2 +- src/pocketmine/entity/Arrow.php | 10 ---------- src/pocketmine/entity/Entity.php | 2 +- src/pocketmine/level/Level.php | 6 +++--- src/pocketmine/resources/pocketmine.yml | 2 +- 6 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index c60e0163c..70525303a 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -1171,7 +1171,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ $hasUpdate = $this->entityBaseTick(); foreach($this->getLevel()->getNearbyEntities($this->boundingBox->grow(1, 1, 1), $this) as $entity){ - if($entity instanceof Arrow and $entity->onGround){ + if($entity instanceof Arrow and $entity->onGround and $this->motionX == 0 and $this->motionY == 0 and $this->motionZ == 0){ if($entity->dead !== true){ $item = Item::get(Item::ARROW, 0, 1); if($this->isSurvival() and !$this->inventory->canAddItem($item)){ diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index 8eacc583f..fd902ac99 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -1526,7 +1526,7 @@ class Server{ $this->logger->info("Advanced cache enabled"); } - Level::$COMPRESSION_LEVEL = $this->getProperty("chunk-sending.compression-level", 7); + Level::$COMPRESSION_LEVEL = $this->getProperty("chunk-sending.compression-level", 8); if(defined("pocketmine\\DEBUG") and \pocketmine\DEBUG >= 0){ @cli_set_process_title($this->getName() . " " . $this->getPocketMineVersion()); diff --git a/src/pocketmine/entity/Arrow.php b/src/pocketmine/entity/Arrow.php index de1224719..491880341 100644 --- a/src/pocketmine/entity/Arrow.php +++ b/src/pocketmine/entity/Arrow.php @@ -130,16 +130,6 @@ class Arrow extends Projectile{ $this->move($this->motionX, $this->motionY, $this->motionZ); - $friction = 1 - $this->drag; - - if($this->onGround){ - $friction = $this->getLevel()->getBlock(new Vector3($this->getFloorX(), $this->getFloorY() - 1, $this->getFloorZ()))->frictionFactor * $friction; - } - - $this->motionX *= $friction; - $this->motionY *= 1 - $this->drag; - $this->motionZ *= $friction; - if($this->onGround){ $this->motionX = 0; $this->motionY = 0; diff --git a/src/pocketmine/entity/Entity.php b/src/pocketmine/entity/Entity.php index 5aac09992..45f4e1f7a 100644 --- a/src/pocketmine/entity/Entity.php +++ b/src/pocketmine/entity/Entity.php @@ -198,7 +198,7 @@ abstract class Entity extends Position implements Metadatable{ $this->airTicks = $this->namedtag["Air"]; if(!isset($this->namedtag->OnGround)){ - $this->namedtag->OnGround = new Byte("OnGround", 1); + $this->namedtag->OnGround = new Byte("OnGround", 0); } $this->onGround = $this->namedtag["OnGround"] > 0 ? true : false; diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 208d6d2ee..7d5996729 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -99,7 +99,7 @@ use pocketmine\utils\TextFormat; class Level implements ChunkManager, Metadatable{ private static $levelIdCounter = 1; - public static $COMPRESSION_LEVEL = 7; + public static $COMPRESSION_LEVEL = 8; const BLOCK_UPDATE_NORMAL = 1; @@ -433,7 +433,7 @@ class Level implements ChunkManager, Metadatable{ $pk->time = (int) $this->time; $pk->started = $this->stopTime == false; foreach($this->players as $player){ - $player->directDataPacket($pk); + $player->dataPacket($pk); } } @@ -920,7 +920,7 @@ class Level implements ChunkManager, Metadatable{ foreach($this->getUsingChunk($pos->x >> 4, $pos->z >> 4) as $player){ /** @var Player $player */ - $player->directDataPacket($pk); + $player->dataPacket($pk); } }else{ if(!($pos instanceof Position)){ diff --git a/src/pocketmine/resources/pocketmine.yml b/src/pocketmine/resources/pocketmine.yml index 4d697013e..a14af2d26 100644 --- a/src/pocketmine/resources/pocketmine.yml +++ b/src/pocketmine/resources/pocketmine.yml @@ -33,7 +33,7 @@ chunk-sending: #Amount of chunks sent to players per tick per-tick: 4 #Compression level used when sending chunks. Higher = more CPU, less bandwidth usage - compression-level: 7 + compression-level: 8 #Amount of chunks loaded around a player by the server, min. 56 as MC: PE 0.9.5 #Increasing this more than 96 (as of MC: PE 0.9.5) can cause issues with the client ignoring chunks max-chunks: 96