PocketMine-MP 5.35.1 git-e32e836dad793a3a3c8ddd8927c00e112b1e576a
Loading...
Searching...
No Matches
BiomeOverworldGenRulesData.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\biome\chunkgen;
16
17use pmmp\encoding\ByteBufferReader;
18use pmmp\encoding\ByteBufferWriter;
19use pmmp\encoding\VarInt;
20use function count;
21
23
33 public function __construct(
34 private array $hillTransformations,
35 private array $mutateTransformations,
36 private array $riverTransformations,
37 private array $shoreTransformations,
38 private array $preHillsEdges,
39 private array $postShoreEdges,
40 private array $climates,
41 ){}
42
46 public function getHillTransformations() : array{ return $this->hillTransformations; }
47
51 public function getMutateTransformations() : array{ return $this->mutateTransformations; }
52
56 public function getRiverTransformations() : array{ return $this->riverTransformations; }
57
61 public function getShoreTransformations() : array{ return $this->shoreTransformations; }
62
66 public function getPreHillsEdges() : array{ return $this->preHillsEdges; }
67
71 public function getPostShoreEdges() : array{ return $this->postShoreEdges; }
72
76 public function getClimates() : array{ return $this->climates; }
77
78 public static function read(ByteBufferReader $in) : self{
79 $hillTransformations = [];
80 for($i = 0, $count = VarInt::readUnsignedInt($in); $i < $count; ++$i){
81 $hillTransformations[] = BiomeWeightedData::read($in);
82 }
83
84 $mutateTransformations = [];
85 for($i = 0, $count = VarInt::readUnsignedInt($in); $i < $count; ++$i){
86 $mutateTransformations[] = BiomeWeightedData::read($in);
87 }
88
89 $riverTransformations = [];
90 for($i = 0, $count = VarInt::readUnsignedInt($in); $i < $count; ++$i){
91 $riverTransformations[] = BiomeWeightedData::read($in);
92 }
93
94 $shoreTransformations = [];
95 for($i = 0, $count = VarInt::readUnsignedInt($in); $i < $count; ++$i){
96 $shoreTransformations[] = BiomeWeightedData::read($in);
97 }
98
99 $preHillsEdges = [];
100 for($i = 0, $count = VarInt::readUnsignedInt($in); $i < $count; ++$i){
101 $preHillsEdges[] = BiomeConditionalTransformationData::read($in);
102 }
103
104 $postShoreEdges = [];
105 for($i = 0, $count = VarInt::readUnsignedInt($in); $i < $count; ++$i){
106 $postShoreEdges[] = BiomeConditionalTransformationData::read($in);
107 }
108
109 $climates = [];
110 for($i = 0, $count = VarInt::readUnsignedInt($in); $i < $count; ++$i){
111 $climates[] = BiomeWeightedTemperatureData::read($in);
112 }
113
114 return new self(
115 $hillTransformations,
116 $mutateTransformations,
117 $riverTransformations,
118 $shoreTransformations,
119 $preHillsEdges,
120 $postShoreEdges,
121 $climates
122 );
123 }
124
125 public function write(ByteBufferWriter $out) : void{
126 VarInt::writeUnsignedInt($out, count($this->hillTransformations));
127 foreach($this->hillTransformations as $transformation){
128 $transformation->write($out);
129 }
130
131 VarInt::writeUnsignedInt($out, count($this->mutateTransformations));
132 foreach($this->mutateTransformations as $transformation){
133 $transformation->write($out);
134 }
135
136 VarInt::writeUnsignedInt($out, count($this->riverTransformations));
137 foreach($this->riverTransformations as $transformation){
138 $transformation->write($out);
139 }
140
141 VarInt::writeUnsignedInt($out, count($this->shoreTransformations));
142 foreach($this->shoreTransformations as $transformation){
143 $transformation->write($out);
144 }
145
146 VarInt::writeUnsignedInt($out, count($this->preHillsEdges));
147 foreach($this->preHillsEdges as $edge){
148 $edge->write($out);
149 }
150
151 VarInt::writeUnsignedInt($out, count($this->postShoreEdges));
152 foreach($this->postShoreEdges as $edge){
153 $edge->write($out);
154 }
155
156 VarInt::writeUnsignedInt($out, count($this->climates));
157 foreach($this->climates as $climate){
158 $climate->write($out);
159 }
160 }
161}
__construct(private array $hillTransformations, private array $mutateTransformations, private array $riverTransformations, private array $shoreTransformations, private array $preHillsEdges, private array $postShoreEdges, private array $climates,)