PocketMine-MP
5.32.2 git-1ebd7d3960d713d56f77f610fe0c15cdee201069
Loading...
Searching...
No Matches
BoolProperty.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
33
final
class
BoolProperty
implements
Property
{
38
public
function
__construct
(
39
private
string
$name,
40
private
\Closure $getter,
41
private
\Closure $setter,
42
private
bool
$inverted =
false
//we don't *need* this, but it avoids accidentally forgetting a ! in the getter/setter closures (and makes it analysable)
43
){}
44
48
public
static
function
unused
(
string
$name,
bool
$serializedValue) : self{
49
return new self($name, fn() => $serializedValue, fn() => null);
50
}
51
52
public
function
getName() : string{ return $this->name; }
53
57
public
function
deserialize
(
object
$block,
BlockStateReader
$in) : void{
58
$raw = $in->readBool($this->name);
59
$value = $raw !== $this->inverted;
60
($this->setter)($block, $value);
61
}
62
66
public
function
serialize
(
object
$block,
BlockStateWriter
$out) : void{
67
$value = ($this->getter)($block);
68
$raw = $value !== $this->inverted;
69
$out->
writeBool
($this->name, $raw);
70
}
71
}
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\writeBool
writeBool(string $name, bool $value)
Definition
BlockStateWriter.php:49
pocketmine\data\bedrock\block\convert\property\BoolProperty
Definition
BoolProperty.php:33
pocketmine\data\bedrock\block\convert\property\BoolProperty\serialize
serialize(object $block, BlockStateWriter $out)
Definition
BoolProperty.php:66
pocketmine\data\bedrock\block\convert\property\BoolProperty\unused
static unused(string $name, bool $serializedValue)
Definition
BoolProperty.php:48
pocketmine\data\bedrock\block\convert\property\BoolProperty\__construct
__construct(private string $name, private \Closure $getter, private \Closure $setter, private bool $inverted=false)
Definition
BoolProperty.php:38
pocketmine\data\bedrock\block\convert\property\BoolProperty\deserialize
deserialize(object $block, BlockStateReader $in)
Definition
BoolProperty.php:57
pocketmine\data\bedrock\block\convert\property\Property
Definition
Property.php:32
src
data
bedrock
block
convert
property
BoolProperty.php
Generated by
1.12.0