PocketMine-MP 5.42.1 git-443151900a14fe9dc682cbf786fa441be1294fab
Loading...
Searching...
No Matches
AttributeValueColorArray.php
1<?php
2
3/*
4 * This file is part of BedrockProtocol.
5 * Copyright (C) 2014-2022 PocketMine Team <https://github.com/pmmp/BedrockProtocol>
6 *
7 * BedrockProtocol is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 */
12
13declare(strict_types=1);
14
15namespace pocketmine\network\mcpe\protocol\types;
16
17use pmmp\encoding\ByteBufferReader;
18use pmmp\encoding\ByteBufferWriter;
19use pmmp\encoding\LE;
21
26 public const ID = AttributeValueColorType::ARRAY;
27
28 public function __construct(
29 private Color $value
30 ){}
31
32 public function getTypeId() : int{
33 return self::ID;
34 }
35
36 public function getValue() : Color{ return $this->value; }
37
38 public static function read(ByteBufferReader $in) : self{
39 $r = LE::readUnsignedInt($in);
40 $g = LE::readUnsignedInt($in);
41 $b = LE::readUnsignedInt($in);
42 $a = LE::readUnsignedInt($in);
43
44 return new self(
45 new Color($r, $g, $b, $a)
46 );
47 }
48
49 public function write(ByteBufferWriter $out) : void{
50 LE::writeUnsignedInt($out, $this->value->getR());
51 LE::writeUnsignedInt($out, $this->value->getG());
52 LE::writeUnsignedInt($out, $this->value->getB());
53 LE::writeUnsignedInt($out, $this->value->getA());
54 }
55}