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