PocketMine-MP 5.35.1 git-e32e836dad793a3a3c8ddd8927c00e112b1e576a
Loading...
Searching...
No Matches
BiomeDefinitionChunkGenData.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;
20
22
23 public function __construct(
24 private ?BiomeClimateData $climate,
25 private ?BiomeConsolidatedFeaturesData $consolidatedFeatures,
26 private ?BiomeMountainParamsData $mountainParams,
27 private ?BiomeSurfaceMaterialAdjustmentData $surfaceMaterialAdjustment,
28 private ?BiomeSurfaceMaterialData $surfaceMaterial,
29 private bool $defaultOverworldSurface,
30 private bool $swampSurface,
31 private bool $frozenOceanSurface,
32 private bool $theEndSurface,
33 private ?BiomeMesaSurfaceData $mesaSurface,
34 private ?BiomeCappedSurfaceData $cappedSurface,
35 private ?BiomeOverworldGenRulesData $overworldGenRules,
36 private ?BiomeMultinoiseGenRulesData $multinoiseGenRules,
37 private ?BiomeLegacyWorldGenRulesData $legacyWorldGenRules,
38 ){}
39
40 public function getClimate() : ?BiomeClimateData{ return $this->climate; }
41
42 public function getConsolidatedFeatures() : ?BiomeConsolidatedFeaturesData{ return $this->consolidatedFeatures; }
43
44 public function getMountainParams() : ?BiomeMountainParamsData{ return $this->mountainParams; }
45
46 public function getSurfaceMaterialAdjustment() : ?BiomeSurfaceMaterialAdjustmentData{ return $this->surfaceMaterialAdjustment; }
47
48 public function getSurfaceMaterial() : ?BiomeSurfaceMaterialData{ return $this->surfaceMaterial; }
49
50 public function hasDefaultOverworldSurface() : bool{ return $this->defaultOverworldSurface; }
51
52 public function hasSwampSurface() : bool{ return $this->swampSurface; }
53
54 public function hasFrozenOceanSurface() : bool{ return $this->frozenOceanSurface; }
55
56 public function hasTheEndSurface() : bool{ return $this->theEndSurface; }
57
58 public function getMesaSurface() : ?BiomeMesaSurfaceData{ return $this->mesaSurface; }
59
60 public function getCappedSurface() : ?BiomeCappedSurfaceData{ return $this->cappedSurface; }
61
62 public function getOverworldGenRules() : ?BiomeOverworldGenRulesData{ return $this->overworldGenRules; }
63
64 public function getMultinoiseGenRules() : ?BiomeMultinoiseGenRulesData{ return $this->multinoiseGenRules; }
65
66 public function getLegacyWorldGenRules() : ?BiomeLegacyWorldGenRulesData{ return $this->legacyWorldGenRules; }
67
68 public static function read(ByteBufferReader $in) : self{
69 $climate = CommonTypes::readOptional($in, fn() => BiomeClimateData::read($in));
70 $consolidatedFeatures = CommonTypes::readOptional($in, fn() => BiomeConsolidatedFeaturesData::read($in));
71 $mountainParams = CommonTypes::readOptional($in, fn() => BiomeMountainParamsData::read($in));
72 $surfaceMaterialAdjustment = CommonTypes::readOptional($in, fn() => BiomeSurfaceMaterialAdjustmentData::read($in));
73 $surfaceMaterial = CommonTypes::readOptional($in, fn() => BiomeSurfaceMaterialData::read($in));
74 $defaultOverworldSurface = CommonTypes::getBool($in);
75 $swampSurface = CommonTypes::getBool($in);
76 $frozenOceanSurface = CommonTypes::getBool($in);
77 $theEndSurface = CommonTypes::getBool($in);
78 $mesaSurface = CommonTypes::readOptional($in, fn() => BiomeMesaSurfaceData::read($in));
79 $cappedSurface = CommonTypes::readOptional($in, fn() => BiomeCappedSurfaceData::read($in));
80 $overworldGenRules = CommonTypes::readOptional($in, fn() => BiomeOverworldGenRulesData::read($in));
81 $multinoiseGenRules = CommonTypes::readOptional($in, fn() => BiomeMultinoiseGenRulesData::read($in));
82 $legacyWorldGenRules = CommonTypes::readOptional($in, fn() => BiomeLegacyWorldGenRulesData::read($in));
83
84 return new self(
85 $climate,
86 $consolidatedFeatures,
87 $mountainParams,
88 $surfaceMaterialAdjustment,
89 $surfaceMaterial,
90 $defaultOverworldSurface,
91 $swampSurface,
92 $frozenOceanSurface,
93 $theEndSurface,
94 $mesaSurface,
95 $cappedSurface,
96 $overworldGenRules,
97 $multinoiseGenRules,
98 $legacyWorldGenRules
99 );
100 }
101
102 public function write(ByteBufferWriter $out) : void{
103 CommonTypes::writeOptional($out, $this->climate, fn(ByteBufferWriter $out, BiomeClimateData $v) => $v->write($out));
104 CommonTypes::writeOptional($out, $this->consolidatedFeatures, fn(ByteBufferWriter $out, BiomeConsolidatedFeaturesData $v) => $v->write($out));
105 CommonTypes::writeOptional($out, $this->mountainParams, fn(ByteBufferWriter $out, BiomeMountainParamsData $v) => $v->write($out));
106 CommonTypes::writeOptional($out, $this->surfaceMaterialAdjustment, fn(ByteBufferWriter $out, BiomeSurfaceMaterialAdjustmentData $v) => $v->write($out));
107 CommonTypes::writeOptional($out, $this->surfaceMaterial, fn(ByteBufferWriter $out, BiomeSurfaceMaterialData $v) => $v->write($out));
108 CommonTypes::putBool($out, $this->defaultOverworldSurface);
109 CommonTypes::putBool($out, $this->swampSurface);
110 CommonTypes::putBool($out, $this->frozenOceanSurface);
111 CommonTypes::putBool($out, $this->theEndSurface);
112 CommonTypes::writeOptional($out, $this->mesaSurface, fn(ByteBufferWriter $out, BiomeMesaSurfaceData $v) => $v->write($out));
113 CommonTypes::writeOptional($out, $this->cappedSurface, fn(ByteBufferWriter $out, BiomeCappedSurfaceData $v) => $v->write($out));
114 CommonTypes::writeOptional($out, $this->overworldGenRules, fn(ByteBufferWriter $out, BiomeOverworldGenRulesData $v) => $v->write($out));
115 CommonTypes::writeOptional($out, $this->multinoiseGenRules, fn(ByteBufferWriter $out, BiomeMultinoiseGenRulesData $v) => $v->write($out));
116 CommonTypes::writeOptional($out, $this->legacyWorldGenRules, fn(ByteBufferWriter $out, BiomeLegacyWorldGenRulesData $v) => $v->write($out));
117 }
118}