PocketMine-MP
5.32.2 git-1ebd7d3960d713d56f77f610fe0c15cdee201069
Loading...
Searching...
No Matches
ValueFromIntProperty.php
1
<?php
2
3
/*
4
*
5
* ____ _ _ __ __ _ __ __ ____
6
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
7
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
8
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
9
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU Lesser General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* @author PocketMine Team
17
* @link http://www.pocketmine.net/
18
*
19
*
20
*/
21
22
declare(strict_types=1);
23
24
namespace
pocketmine\data\bedrock\block\convert\property;
25
26
use
pocketmine\data\bedrock\block\convert\BlockStateReader
;
27
use
pocketmine\data\bedrock\block\convert\BlockStateWriter
;
28
use
function
array_keys;
29
35
final
class
ValueFromIntProperty
implements
Property
{
36
42
public
function
__construct
(
43
private
string
$name,
44
private
StateMap
$map,
45
private
\Closure $getter,
46
private
\Closure $setter
47
){}
48
49
public
function
getName() : string{ return $this->name; }
50
55
public
function
getPossibleValues
() : array{
56
return array_keys($this->map->getRawToValueMap());
57
}
58
59
public
function
deserialize
(
object
$block,
BlockStateReader
$in) : void{
60
$raw = $in->readInt($this->name);
61
$value = $this->map->rawToValue($raw);
62
63
if
($value ===
null
){
64
throw
$in->badValueException($this->name, (
string
) $raw);
65
}
66
($this->setter)($block, $value);
67
}
68
69
public
function
serialize
(
object
$block,
BlockStateWriter
$out) : void{
70
$value = ($this->getter)($block);
71
$raw = $this->map->valueToRaw($value);
72
73
$out->
writeInt
($this->name, $raw);
74
}
75
}
pocketmine\data\bedrock\block\convert\BlockStateReader
Definition
BlockStateReader.php:37
pocketmine\data\bedrock\block\convert\BlockStateWriter
Definition
BlockStateWriter.php:32
pocketmine\data\bedrock\block\convert\BlockStateWriter\writeInt
writeInt(string $name, int $value)
Definition
BlockStateWriter.php:55
pocketmine\data\bedrock\block\convert\property\ValueFromIntProperty
Definition
ValueFromIntProperty.php:35
pocketmine\data\bedrock\block\convert\property\ValueFromIntProperty\serialize
serialize(object $block, BlockStateWriter $out)
Definition
ValueFromIntProperty.php:69
pocketmine\data\bedrock\block\convert\property\ValueFromIntProperty\getPossibleValues
getPossibleValues()
Definition
ValueFromIntProperty.php:55
pocketmine\data\bedrock\block\convert\property\ValueFromIntProperty\__construct
__construct(private string $name, private StateMap $map, private \Closure $getter, private \Closure $setter)
Definition
ValueFromIntProperty.php:42
pocketmine\data\bedrock\block\convert\property\ValueFromIntProperty\deserialize
deserialize(object $block, BlockStateReader $in)
Definition
ValueFromIntProperty.php:59
pocketmine\data\bedrock\block\convert\property\Property
Definition
Property.php:32
pocketmine\data\bedrock\block\convert\property\StateMap
Definition
StateMap.php:30
src
data
bedrock
block
convert
property
ValueFromIntProperty.php
Generated by
1.12.0