PocketMine-MP 5.28.1 git-88cdc2eb67c40075559c3ef51418b418cd5488e9
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
18use function count;
19
21
31 public function __construct(
32 private array $hillTransformations,
33 private array $mutateTransformations,
34 private array $riverTransformations,
35 private array $shoreTransformations,
36 private array $preHillsEdges,
37 private array $postShoreEdges,
38 private array $climates,
39 ){}
40
44 public function getHillTransformations() : array{ return $this->hillTransformations; }
45
49 public function getMutateTransformations() : array{ return $this->mutateTransformations; }
50
54 public function getRiverTransformations() : array{ return $this->riverTransformations; }
55
59 public function getShoreTransformations() : array{ return $this->shoreTransformations; }
60
64 public function getPreHillsEdges() : array{ return $this->preHillsEdges; }
65
69 public function getPostShoreEdges() : array{ return $this->postShoreEdges; }
70
74 public function getClimates() : array{ return $this->climates; }
75
76 public static function read(PacketSerializer $in) : self{
77 $hillTransformations = [];
78 for($i = 0, $count = $in->getUnsignedVarInt(); $i < $count; ++$i){
79 $hillTransformations[] = BiomeWeightedData::read($in);
80 }
81
82 $mutateTransformations = [];
83 for($i = 0, $count = $in->getUnsignedVarInt(); $i < $count; ++$i){
84 $mutateTransformations[] = BiomeWeightedData::read($in);
85 }
86
87 $riverTransformations = [];
88 for($i = 0, $count = $in->getUnsignedVarInt(); $i < $count; ++$i){
89 $riverTransformations[] = BiomeWeightedData::read($in);
90 }
91
92 $shoreTransformations = [];
93 for($i = 0, $count = $in->getUnsignedVarInt(); $i < $count; ++$i){
94 $shoreTransformations[] = BiomeWeightedData::read($in);
95 }
96
97 $preHillsEdges = [];
98 for($i = 0, $count = $in->getUnsignedVarInt(); $i < $count; ++$i){
99 $preHillsEdges[] = BiomeConditionalTransformationData::read($in);
100 }
101
102 $postShoreEdges = [];
103 for($i = 0, $count = $in->getUnsignedVarInt(); $i < $count; ++$i){
104 $postShoreEdges[] = BiomeConditionalTransformationData::read($in);
105 }
106
107 $climates = [];
108 for($i = 0, $count = $in->getUnsignedVarInt(); $i < $count; ++$i){
109 $climates[] = BiomeWeightedTemperatureData::read($in);
110 }
111
112 return new self(
113 $hillTransformations,
114 $mutateTransformations,
115 $riverTransformations,
116 $shoreTransformations,
117 $preHillsEdges,
118 $postShoreEdges,
119 $climates
120 );
121 }
122
123 public function write(PacketSerializer $out) : void{
124 $out->putUnsignedVarInt(count($this->hillTransformations));
125 foreach($this->hillTransformations as $transformation){
126 $transformation->write($out);
127 }
128
129 $out->putUnsignedVarInt(count($this->mutateTransformations));
130 foreach($this->mutateTransformations as $transformation){
131 $transformation->write($out);
132 }
133
134 $out->putUnsignedVarInt(count($this->riverTransformations));
135 foreach($this->riverTransformations as $transformation){
136 $transformation->write($out);
137 }
138
139 $out->putUnsignedVarInt(count($this->shoreTransformations));
140 foreach($this->shoreTransformations as $transformation){
141 $transformation->write($out);
142 }
143
144 $out->putUnsignedVarInt(count($this->preHillsEdges));
145 foreach($this->preHillsEdges as $edge){
146 $edge->write($out);
147 }
148
149 $out->putUnsignedVarInt(count($this->postShoreEdges));
150 foreach($this->postShoreEdges as $edge){
151 $edge->write($out);
152 }
153
154 $out->putUnsignedVarInt(count($this->climates));
155 foreach($this->climates as $climate){
156 $climate->write($out);
157 }
158 }
159}
__construct(private array $hillTransformations, private array $mutateTransformations, private array $riverTransformations, private array $shoreTransformations, private array $preHillsEdges, private array $postShoreEdges, private array $climates,)