diff --git a/src/pocketmine/command/defaults/ParticleCommand.php b/src/pocketmine/command/defaults/ParticleCommand.php index d9c67aef2..d875e7701 100644 --- a/src/pocketmine/command/defaults/ParticleCommand.php +++ b/src/pocketmine/command/defaults/ParticleCommand.php @@ -105,7 +105,7 @@ class ParticleCommand extends VanillaCommand{ $data = isset($args[8]) ? (int) $args[8] : null; - $particle = $this->getParticle($name, $pos, $xd, $yd, $zd, $data); + $particle = $this->getParticle($name, $data); if($particle === null){ $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.particle.notFound", [$name])); @@ -118,12 +118,11 @@ class ParticleCommand extends VanillaCommand{ $random = new Random((int) (microtime(true) * 1000) + mt_rand()); for($i = 0; $i < $count; ++$i){ - $particle->setComponents( - $pos->x + $random->nextSignedFloat() * $xd, - $pos->y + $random->nextSignedFloat() * $yd, - $pos->z + $random->nextSignedFloat() * $zd - ); - $level->addParticle($particle); + $level->addParticle($pos->add( + $random->nextSignedFloat() * $xd, + $random->nextSignedFloat() * $yd, + $random->nextSignedFloat() * $zd + ), $particle); } return true; @@ -131,97 +130,93 @@ class ParticleCommand extends VanillaCommand{ /** * @param string $name - * @param Vector3 $pos - * @param float $xd - * @param float $yd - * @param float $zd * @param int|null $data * * @return Particle|null */ - private function getParticle(string $name, Vector3 $pos, float $xd, float $yd, float $zd, int $data = null){ + private function getParticle(string $name, int $data = null){ switch($name){ case "explode": - return new ExplodeParticle($pos); + return new ExplodeParticle(); case "hugeexplosion": - return new HugeExplodeParticle($pos); + return new HugeExplodeParticle(); case "hugeexplosionseed": - return new HugeExplodeSeedParticle($pos); + return new HugeExplodeSeedParticle(); case "bubble": - return new BubbleParticle($pos); + return new BubbleParticle(); case "splash": - return new SplashParticle($pos); + return new SplashParticle(); case "wake": case "water": - return new WaterParticle($pos); + return new WaterParticle(); case "crit": - return new CriticalParticle($pos); + return new CriticalParticle(); case "smoke": - return new SmokeParticle($pos, $data ?? 0); + return new SmokeParticle($data ?? 0); case "spell": - return new EnchantParticle($pos); + return new EnchantParticle(); case "instantspell": - return new InstantEnchantParticle($pos); + return new InstantEnchantParticle(); case "dripwater": - return new WaterDripParticle($pos); + return new WaterDripParticle(); case "driplava": - return new LavaDripParticle($pos); + return new LavaDripParticle(); case "townaura": case "spore": - return new SporeParticle($pos); + return new SporeParticle(); case "portal": - return new PortalParticle($pos); + return new PortalParticle(); case "flame": - return new FlameParticle($pos); + return new FlameParticle(); case "lava": - return new LavaParticle($pos); + return new LavaParticle(); case "reddust": - return new RedstoneParticle($pos, $data ?? 1); + return new RedstoneParticle($data ?? 1); case "snowballpoof": - return new ItemBreakParticle($pos, ItemFactory::get(Item::SNOWBALL)); + return new ItemBreakParticle(ItemFactory::get(Item::SNOWBALL)); case "slime": - return new ItemBreakParticle($pos, ItemFactory::get(Item::SLIMEBALL)); + return new ItemBreakParticle(ItemFactory::get(Item::SLIMEBALL)); case "itembreak": if($data !== null and $data !== 0){ - return new ItemBreakParticle($pos, ItemFactory::get($data)); + return new ItemBreakParticle(ItemFactory::get($data)); } break; case "terrain": if($data !== null and $data !== 0){ - return new TerrainParticle($pos, BlockFactory::get($data)); + return new TerrainParticle(BlockFactory::get($data)); } break; case "heart": - return new HeartParticle($pos, $data ?? 0); + return new HeartParticle($data ?? 0); case "ink": - return new InkParticle($pos, $data ?? 0); + return new InkParticle($data ?? 0); case "droplet": - return new RainSplashParticle($pos); + return new RainSplashParticle(); case "enchantmenttable": - return new EnchantmentTableParticle($pos); + return new EnchantmentTableParticle(); case "happyvillager": - return new HappyVillagerParticle($pos); + return new HappyVillagerParticle(); case "angryvillager": - return new AngryVillagerParticle($pos); + return new AngryVillagerParticle(); case "forcefield": - return new BlockForceFieldParticle($pos, $data ?? 0); + return new BlockForceFieldParticle($data ?? 0); } if(strpos($name, "iconcrack_") === 0){ $d = explode("_", $name); if(count($d) === 3){ - return new ItemBreakParticle($pos, ItemFactory::get((int) $d[1], (int) $d[2])); + return new ItemBreakParticle(ItemFactory::get((int) $d[1], (int) $d[2])); } }elseif(strpos($name, "blockcrack_") === 0){ $d = explode("_", $name); if(count($d) === 2){ - return new TerrainParticle($pos, BlockFactory::get($d[1] & 0xff, $d[1] >> 12)); + return new TerrainParticle(BlockFactory::get($d[1] & 0xff, $d[1] >> 12)); } }elseif(strpos($name, "blockdust_") === 0){ $d = explode("_", $name); if(count($d) >= 4){ - return new DustParticle($pos, $d[1] & 0xff, $d[2] & 0xff, $d[3] & 0xff, isset($d[4]) ? $d[4] & 0xff : 255); + return new DustParticle($d[1] & 0xff, $d[2] & 0xff, $d[3] & 0xff, isset($d[4]) ? $d[4] & 0xff : 255); } } diff --git a/src/pocketmine/entity/object/Painting.php b/src/pocketmine/entity/object/Painting.php index 072f70ef1..c69ab5cf5 100644 --- a/src/pocketmine/entity/object/Painting.php +++ b/src/pocketmine/entity/object/Painting.php @@ -108,7 +108,7 @@ class Painting extends Entity{ //non-living entities don't have a way to create drops generically yet $this->level->dropItem($this, ItemFactory::get(Item::PAINTING)); } - $this->level->addParticle(new DestroyBlockParticle($this->add(0.5, 0.5, 0.5), BlockFactory::get(Block::PLANKS))); + $this->level->addParticle($this->add(0.5, 0.5, 0.5), new DestroyBlockParticle(BlockFactory::get(Block::PLANKS))); } protected function recalculateBoundingBox() : void{ diff --git a/src/pocketmine/entity/projectile/Egg.php b/src/pocketmine/entity/projectile/Egg.php index 21cfb5a73..70a160554 100644 --- a/src/pocketmine/entity/projectile/Egg.php +++ b/src/pocketmine/entity/projectile/Egg.php @@ -35,7 +35,7 @@ class Egg extends Throwable{ protected function onHit(ProjectileHitEvent $event) : void{ for($i = 0; $i < 6; ++$i){ - $this->level->addParticle(new ItemBreakParticle($this, ItemFactory::get(Item::EGG))); + $this->level->addParticle($this, new ItemBreakParticle(ItemFactory::get(Item::EGG))); } } } diff --git a/src/pocketmine/entity/projectile/Snowball.php b/src/pocketmine/entity/projectile/Snowball.php index 93304822b..587d98048 100644 --- a/src/pocketmine/entity/projectile/Snowball.php +++ b/src/pocketmine/entity/projectile/Snowball.php @@ -31,7 +31,7 @@ class Snowball extends Throwable{ protected function onHit(ProjectileHitEvent $event) : void{ for($i = 0; $i < 6; ++$i){ - $this->level->addParticle(new SnowballPoofParticle($this)); + $this->level->addParticle($this, new SnowballPoofParticle()); } } } diff --git a/src/pocketmine/level/Explosion.php b/src/pocketmine/level/Explosion.php index 3aaf29009..0cc56081e 100644 --- a/src/pocketmine/level/Explosion.php +++ b/src/pocketmine/level/Explosion.php @@ -256,7 +256,7 @@ class Explosion{ $pk->records = $send; $this->level->broadcastPacketToViewers($source, $pk); - $this->level->addParticle(new HugeExplodeSeedParticle($source)); + $this->level->addParticle($source, new HugeExplodeSeedParticle()); $this->level->broadcastLevelSoundEvent($source, LevelSoundEventPacket::SOUND_EXPLODE); return true; diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 0d6f05f45..7513497bf 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -466,15 +466,15 @@ class Level implements ChunkManager, Metadatable{ } } - public function addParticle(Particle $particle, array $players = null){ - $pk = $particle->encode(); + public function addParticle(Vector3 $pos, Particle $particle, array $players = null){ + $pk = $particle->encode($pos); if(!is_array($pk)){ $pk = [$pk]; } if(!empty($pk)){ if($players === null){ foreach($pk as $e){ - $this->broadcastPacketToViewers($particle, $e); + $this->broadcastPacketToViewers($pos, $e); } }else{ $this->server->broadcastPackets($players, $pk); @@ -1761,7 +1761,7 @@ class Level implements ChunkManager, Metadatable{ private function destroyBlockInternal(Block $target, Item $item, ?Player $player = null, bool $createParticles = false) : void{ if($createParticles){ - $this->addParticle(new DestroyBlockParticle($target->add(0.5, 0.5, 0.5), $target)); + $this->addParticle($target->add(0.5, 0.5, 0.5), new DestroyBlockParticle($target)); } $target->onBreak($item, $player); diff --git a/src/pocketmine/level/particle/AngryVillagerParticle.php b/src/pocketmine/level/particle/AngryVillagerParticle.php index 52c8e6762..acde51b42 100644 --- a/src/pocketmine/level/particle/AngryVillagerParticle.php +++ b/src/pocketmine/level/particle/AngryVillagerParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class AngryVillagerParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_VILLAGER_ANGRY); + public function __construct(){ + parent::__construct(Particle::TYPE_VILLAGER_ANGRY); } } diff --git a/src/pocketmine/level/particle/BlockForceFieldParticle.php b/src/pocketmine/level/particle/BlockForceFieldParticle.php index 4ad56cb77..312ff5c75 100644 --- a/src/pocketmine/level/particle/BlockForceFieldParticle.php +++ b/src/pocketmine/level/particle/BlockForceFieldParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class BlockForceFieldParticle extends GenericParticle{ - public function __construct(Vector3 $pos, int $data = 0){ - parent::__construct($pos, Particle::TYPE_BLOCK_FORCE_FIELD, $data); //TODO: proper encode/decode of data + public function __construct(int $data = 0){ + parent::__construct(Particle::TYPE_BLOCK_FORCE_FIELD, $data); //TODO: proper encode/decode of data } } diff --git a/src/pocketmine/level/particle/BubbleParticle.php b/src/pocketmine/level/particle/BubbleParticle.php index edc50afda..6bf00072a 100644 --- a/src/pocketmine/level/particle/BubbleParticle.php +++ b/src/pocketmine/level/particle/BubbleParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class BubbleParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_BUBBLE); + public function __construct(){ + parent::__construct(Particle::TYPE_BUBBLE); } } diff --git a/src/pocketmine/level/particle/CriticalParticle.php b/src/pocketmine/level/particle/CriticalParticle.php index 9ecfff529..4943527c2 100644 --- a/src/pocketmine/level/particle/CriticalParticle.php +++ b/src/pocketmine/level/particle/CriticalParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class CriticalParticle extends GenericParticle{ - public function __construct(Vector3 $pos, int $scale = 2){ - parent::__construct($pos, Particle::TYPE_CRITICAL, $scale); + public function __construct(int $scale = 2){ + parent::__construct(Particle::TYPE_CRITICAL, $scale); } } diff --git a/src/pocketmine/level/particle/DestroyBlockParticle.php b/src/pocketmine/level/particle/DestroyBlockParticle.php index 3bec46f60..d7d98548c 100644 --- a/src/pocketmine/level/particle/DestroyBlockParticle.php +++ b/src/pocketmine/level/particle/DestroyBlockParticle.php @@ -32,15 +32,14 @@ class DestroyBlockParticle extends Particle{ /** @var int */ protected $data; - public function __construct(Vector3 $pos, Block $b){ - parent::__construct($pos->x, $pos->y, $pos->z); + public function __construct(Block $b){ $this->data = $b->getRuntimeId(); } - public function encode(){ + public function encode(Vector3 $pos){ $pk = new LevelEventPacket; $pk->evid = LevelEventPacket::EVENT_PARTICLE_DESTROY; - $pk->position = $this->asVector3(); + $pk->position = $pos; $pk->data = $this->data; return $pk; diff --git a/src/pocketmine/level/particle/DustParticle.php b/src/pocketmine/level/particle/DustParticle.php index e1cb56742..dda464285 100644 --- a/src/pocketmine/level/particle/DustParticle.php +++ b/src/pocketmine/level/particle/DustParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class DustParticle extends GenericParticle{ - public function __construct(Vector3 $pos, int $r, int $g, int $b, int $a = 255){ - parent::__construct($pos, Particle::TYPE_DUST, (($a & 0xff) << 24) | (($r & 0xff) << 16) | (($g & 0xff) << 8) | ($b & 0xff)); + public function __construct(int $r, int $g, int $b, int $a = 255){ + parent::__construct(Particle::TYPE_DUST, (($a & 0xff) << 24) | (($r & 0xff) << 16) | (($g & 0xff) << 8) | ($b & 0xff)); } } diff --git a/src/pocketmine/level/particle/EnchantParticle.php b/src/pocketmine/level/particle/EnchantParticle.php index ca2e599ce..4fc625cd4 100644 --- a/src/pocketmine/level/particle/EnchantParticle.php +++ b/src/pocketmine/level/particle/EnchantParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class EnchantParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_MOB_SPELL); + public function __construct(){ + parent::__construct(Particle::TYPE_MOB_SPELL); } } diff --git a/src/pocketmine/level/particle/EnchantmentTableParticle.php b/src/pocketmine/level/particle/EnchantmentTableParticle.php index 00cd11dc2..a0756e2ad 100644 --- a/src/pocketmine/level/particle/EnchantmentTableParticle.php +++ b/src/pocketmine/level/particle/EnchantmentTableParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class EnchantmentTableParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_ENCHANTMENT_TABLE); + public function __construct(){ + parent::__construct(Particle::TYPE_ENCHANTMENT_TABLE); } } diff --git a/src/pocketmine/level/particle/EntityFlameParticle.php b/src/pocketmine/level/particle/EntityFlameParticle.php index 41e688f38..234da0052 100644 --- a/src/pocketmine/level/particle/EntityFlameParticle.php +++ b/src/pocketmine/level/particle/EntityFlameParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class EntityFlameParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_MOB_FLAME); + public function __construct(){ + parent::__construct(Particle::TYPE_MOB_FLAME); } } diff --git a/src/pocketmine/level/particle/ExplodeParticle.php b/src/pocketmine/level/particle/ExplodeParticle.php index c4c8ce002..86ef3bb25 100644 --- a/src/pocketmine/level/particle/ExplodeParticle.php +++ b/src/pocketmine/level/particle/ExplodeParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class ExplodeParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_EXPLODE); + public function __construct(){ + parent::__construct(Particle::TYPE_EXPLODE); } } diff --git a/src/pocketmine/level/particle/FlameParticle.php b/src/pocketmine/level/particle/FlameParticle.php index 89f61c39a..aa69de17b 100644 --- a/src/pocketmine/level/particle/FlameParticle.php +++ b/src/pocketmine/level/particle/FlameParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class FlameParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_FLAME); + public function __construct(){ + parent::__construct(Particle::TYPE_FLAME); } } diff --git a/src/pocketmine/level/particle/FloatingTextParticle.php b/src/pocketmine/level/particle/FloatingTextParticle.php index 4c4b511f7..521562e58 100644 --- a/src/pocketmine/level/particle/FloatingTextParticle.php +++ b/src/pocketmine/level/particle/FloatingTextParticle.php @@ -43,12 +43,10 @@ class FloatingTextParticle extends Particle{ protected $invisible = false; /** - * @param Vector3 $pos - * @param string $text - * @param string $title + * @param string $text + * @param string $title */ - public function __construct(Vector3 $pos, string $text, string $title = ""){ - parent::__construct($pos->x, $pos->y, $pos->z); + public function __construct(string $text, string $title = ""){ $this->text = $text; $this->title = $title; } @@ -77,7 +75,7 @@ class FloatingTextParticle extends Particle{ $this->invisible = $value; } - public function encode(){ + public function encode(Vector3 $pos){ $p = []; if($this->entityId === null){ @@ -102,7 +100,7 @@ class FloatingTextParticle extends Particle{ $pk->uuid = $uuid; $pk->username = $name; $pk->entityRuntimeId = $this->entityId; - $pk->position = $this->asVector3(); //TODO: check offset + $pk->position = $pos; //TODO: check offset $pk->item = ItemFactory::get(Item::AIR, 0, 0); $flags = ( diff --git a/src/pocketmine/level/particle/GenericParticle.php b/src/pocketmine/level/particle/GenericParticle.php index b14afa149..ad9ee2f28 100644 --- a/src/pocketmine/level/particle/GenericParticle.php +++ b/src/pocketmine/level/particle/GenericParticle.php @@ -32,16 +32,15 @@ class GenericParticle extends Particle{ /** @var int */ protected $data; - public function __construct(Vector3 $pos, int $id, int $data = 0){ - parent::__construct($pos->x, $pos->y, $pos->z); + public function __construct(int $id, int $data = 0){ $this->id = $id & 0xFFF; $this->data = $data; } - public function encode(){ + public function encode(Vector3 $pos){ $pk = new LevelEventPacket; $pk->evid = LevelEventPacket::EVENT_ADD_PARTICLE_MASK | $this->id; - $pk->position = $this->asVector3(); + $pk->position = $pos; $pk->data = $this->data; return $pk; diff --git a/src/pocketmine/level/particle/HappyVillagerParticle.php b/src/pocketmine/level/particle/HappyVillagerParticle.php index d4afcda09..007478e6e 100644 --- a/src/pocketmine/level/particle/HappyVillagerParticle.php +++ b/src/pocketmine/level/particle/HappyVillagerParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class HappyVillagerParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_VILLAGER_HAPPY); + public function __construct(){ + parent::__construct(Particle::TYPE_VILLAGER_HAPPY); } } diff --git a/src/pocketmine/level/particle/HeartParticle.php b/src/pocketmine/level/particle/HeartParticle.php index c25271b1d..66d6bb0a0 100644 --- a/src/pocketmine/level/particle/HeartParticle.php +++ b/src/pocketmine/level/particle/HeartParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class HeartParticle extends GenericParticle{ - public function __construct(Vector3 $pos, int $scale = 0){ - parent::__construct($pos, Particle::TYPE_HEART, $scale); + public function __construct(int $scale = 0){ + parent::__construct(Particle::TYPE_HEART, $scale); } } diff --git a/src/pocketmine/level/particle/HugeExplodeParticle.php b/src/pocketmine/level/particle/HugeExplodeParticle.php index bab01f517..4cb591517 100644 --- a/src/pocketmine/level/particle/HugeExplodeParticle.php +++ b/src/pocketmine/level/particle/HugeExplodeParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class HugeExplodeParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_HUGE_EXPLODE); + public function __construct(){ + parent::__construct(Particle::TYPE_HUGE_EXPLODE); } } diff --git a/src/pocketmine/level/particle/HugeExplodeSeedParticle.php b/src/pocketmine/level/particle/HugeExplodeSeedParticle.php index 13adce189..c8a495f75 100644 --- a/src/pocketmine/level/particle/HugeExplodeSeedParticle.php +++ b/src/pocketmine/level/particle/HugeExplodeSeedParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class HugeExplodeSeedParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_HUGE_EXPLODE_SEED); + public function __construct(){ + parent::__construct(Particle::TYPE_HUGE_EXPLODE_SEED); } } diff --git a/src/pocketmine/level/particle/InkParticle.php b/src/pocketmine/level/particle/InkParticle.php index 80fed048f..37aa82682 100644 --- a/src/pocketmine/level/particle/InkParticle.php +++ b/src/pocketmine/level/particle/InkParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class InkParticle extends GenericParticle{ - public function __construct(Vector3 $pos, int $scale = 0){ - parent::__construct($pos, Particle::TYPE_INK, $scale); + public function __construct(int $scale = 0){ + parent::__construct(Particle::TYPE_INK, $scale); } } diff --git a/src/pocketmine/level/particle/InstantEnchantParticle.php b/src/pocketmine/level/particle/InstantEnchantParticle.php index 337a89ff3..ed69f3c4b 100644 --- a/src/pocketmine/level/particle/InstantEnchantParticle.php +++ b/src/pocketmine/level/particle/InstantEnchantParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class InstantEnchantParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_MOB_SPELL_INSTANTANEOUS); + public function __construct(){ + parent::__construct(Particle::TYPE_MOB_SPELL_INSTANTANEOUS); } } diff --git a/src/pocketmine/level/particle/ItemBreakParticle.php b/src/pocketmine/level/particle/ItemBreakParticle.php index 8a5e655a0..1d4146741 100644 --- a/src/pocketmine/level/particle/ItemBreakParticle.php +++ b/src/pocketmine/level/particle/ItemBreakParticle.php @@ -24,10 +24,9 @@ declare(strict_types=1); namespace pocketmine\level\particle; use pocketmine\item\Item; -use pocketmine\math\Vector3; class ItemBreakParticle extends GenericParticle{ - public function __construct(Vector3 $pos, Item $item){ - parent::__construct($pos, Particle::TYPE_ITEM_BREAK, ($item->getId() << 16) | $item->getDamage()); + public function __construct(Item $item){ + parent::__construct(Particle::TYPE_ITEM_BREAK, ($item->getId() << 16) | $item->getDamage()); } } diff --git a/src/pocketmine/level/particle/LavaDripParticle.php b/src/pocketmine/level/particle/LavaDripParticle.php index 9d71da477..738a01da5 100644 --- a/src/pocketmine/level/particle/LavaDripParticle.php +++ b/src/pocketmine/level/particle/LavaDripParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class LavaDripParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_DRIP_LAVA); + public function __construct(){ + parent::__construct(Particle::TYPE_DRIP_LAVA); } } diff --git a/src/pocketmine/level/particle/LavaParticle.php b/src/pocketmine/level/particle/LavaParticle.php index 4d088d31d..f59210c98 100644 --- a/src/pocketmine/level/particle/LavaParticle.php +++ b/src/pocketmine/level/particle/LavaParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class LavaParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_LAVA); + public function __construct(){ + parent::__construct(Particle::TYPE_LAVA); } } diff --git a/src/pocketmine/level/particle/MobSpawnParticle.php b/src/pocketmine/level/particle/MobSpawnParticle.php index 754e59710..42a759627 100644 --- a/src/pocketmine/level/particle/MobSpawnParticle.php +++ b/src/pocketmine/level/particle/MobSpawnParticle.php @@ -32,16 +32,15 @@ class MobSpawnParticle extends Particle{ /** @var int */ protected $height; - public function __construct(Vector3 $pos, int $width = 0, int $height = 0){ - parent::__construct($pos->x, $pos->y, $pos->z); + public function __construct(int $width = 0, int $height = 0){ $this->width = $width; $this->height = $height; } - public function encode(){ + public function encode(Vector3 $pos){ $pk = new LevelEventPacket; $pk->evid = LevelEventPacket::EVENT_PARTICLE_SPAWN; - $pk->position = $this->asVector3(); + $pk->position = $pos; $pk->data = ($this->width & 0xff) + (($this->height & 0xff) << 8); return $pk; diff --git a/src/pocketmine/level/particle/Particle.php b/src/pocketmine/level/particle/Particle.php index 576e924f9..2f7aa566d 100644 --- a/src/pocketmine/level/particle/Particle.php +++ b/src/pocketmine/level/particle/Particle.php @@ -26,7 +26,7 @@ namespace pocketmine\level\particle; use pocketmine\math\Vector3; use pocketmine\network\mcpe\protocol\DataPacket; -abstract class Particle extends Vector3{ +abstract class Particle{ public const TYPE_BUBBLE = 1; public const TYPE_CRITICAL = 2; @@ -74,8 +74,10 @@ abstract class Particle extends Vector3{ public const TYPE_FOOD = 44; /** + * @param Vector3 $pos + * * @return DataPacket|DataPacket[] */ - abstract public function encode(); + abstract public function encode(Vector3 $pos); } diff --git a/src/pocketmine/level/particle/PortalParticle.php b/src/pocketmine/level/particle/PortalParticle.php index 66edf03c4..e04898146 100644 --- a/src/pocketmine/level/particle/PortalParticle.php +++ b/src/pocketmine/level/particle/PortalParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class PortalParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_PORTAL); + public function __construct(){ + parent::__construct(Particle::TYPE_PORTAL); } } diff --git a/src/pocketmine/level/particle/RainSplashParticle.php b/src/pocketmine/level/particle/RainSplashParticle.php index 159ba73c5..67e7977ae 100644 --- a/src/pocketmine/level/particle/RainSplashParticle.php +++ b/src/pocketmine/level/particle/RainSplashParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class RainSplashParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_RAIN_SPLASH); + public function __construct(){ + parent::__construct(Particle::TYPE_RAIN_SPLASH); } } diff --git a/src/pocketmine/level/particle/RedstoneParticle.php b/src/pocketmine/level/particle/RedstoneParticle.php index 7fa524115..7516e77b6 100644 --- a/src/pocketmine/level/particle/RedstoneParticle.php +++ b/src/pocketmine/level/particle/RedstoneParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class RedstoneParticle extends GenericParticle{ - public function __construct(Vector3 $pos, int $lifetime = 1){ - parent::__construct($pos, Particle::TYPE_REDSTONE, $lifetime); + public function __construct(int $lifetime = 1){ + parent::__construct(Particle::TYPE_REDSTONE, $lifetime); } } diff --git a/src/pocketmine/level/particle/SmokeParticle.php b/src/pocketmine/level/particle/SmokeParticle.php index 3653551f9..6092255b5 100644 --- a/src/pocketmine/level/particle/SmokeParticle.php +++ b/src/pocketmine/level/particle/SmokeParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class SmokeParticle extends GenericParticle{ - public function __construct(Vector3 $pos, int $scale = 0){ - parent::__construct($pos, Particle::TYPE_SMOKE, $scale); + public function __construct(int $scale = 0){ + parent::__construct(Particle::TYPE_SMOKE, $scale); } } diff --git a/src/pocketmine/level/particle/SnowballPoofParticle.php b/src/pocketmine/level/particle/SnowballPoofParticle.php index 83156d96d..6e79fa151 100644 --- a/src/pocketmine/level/particle/SnowballPoofParticle.php +++ b/src/pocketmine/level/particle/SnowballPoofParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class SnowballPoofParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, self::TYPE_SNOWBALL_POOF, 0); + public function __construct(){ + parent::__construct(self::TYPE_SNOWBALL_POOF, 0); } } diff --git a/src/pocketmine/level/particle/SplashParticle.php b/src/pocketmine/level/particle/SplashParticle.php index 8c0eea703..1001076c7 100644 --- a/src/pocketmine/level/particle/SplashParticle.php +++ b/src/pocketmine/level/particle/SplashParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class SplashParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_WATER_SPLASH); + public function __construct(){ + parent::__construct(Particle::TYPE_WATER_SPLASH); } } diff --git a/src/pocketmine/level/particle/SporeParticle.php b/src/pocketmine/level/particle/SporeParticle.php index 31328aa2a..883cc24ee 100644 --- a/src/pocketmine/level/particle/SporeParticle.php +++ b/src/pocketmine/level/particle/SporeParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class SporeParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_TOWN_AURA); + public function __construct(){ + parent::__construct(Particle::TYPE_TOWN_AURA); } } diff --git a/src/pocketmine/level/particle/TerrainParticle.php b/src/pocketmine/level/particle/TerrainParticle.php index 8295f3d1d..c602a82ac 100644 --- a/src/pocketmine/level/particle/TerrainParticle.php +++ b/src/pocketmine/level/particle/TerrainParticle.php @@ -24,10 +24,9 @@ declare(strict_types=1); namespace pocketmine\level\particle; use pocketmine\block\Block; -use pocketmine\math\Vector3; class TerrainParticle extends GenericParticle{ - public function __construct(Vector3 $pos, Block $b){ - parent::__construct($pos, Particle::TYPE_TERRAIN, $b->getRuntimeId()); + public function __construct(Block $b){ + parent::__construct(Particle::TYPE_TERRAIN, $b->getRuntimeId()); } } diff --git a/src/pocketmine/level/particle/WaterDripParticle.php b/src/pocketmine/level/particle/WaterDripParticle.php index 171937598..0aa04d79f 100644 --- a/src/pocketmine/level/particle/WaterDripParticle.php +++ b/src/pocketmine/level/particle/WaterDripParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class WaterDripParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_DRIP_WATER); + public function __construct(){ + parent::__construct(Particle::TYPE_DRIP_WATER); } } diff --git a/src/pocketmine/level/particle/WaterParticle.php b/src/pocketmine/level/particle/WaterParticle.php index 8b1feb1d6..906bbe29a 100644 --- a/src/pocketmine/level/particle/WaterParticle.php +++ b/src/pocketmine/level/particle/WaterParticle.php @@ -23,10 +23,8 @@ declare(strict_types=1); namespace pocketmine\level\particle; -use pocketmine\math\Vector3; - class WaterParticle extends GenericParticle{ - public function __construct(Vector3 $pos){ - parent::__construct($pos, Particle::TYPE_WATER_WAKE); + public function __construct(){ + parent::__construct(Particle::TYPE_WATER_WAKE); } }