34        private bool $defaultOverworldSurface,
 
   35        private bool $swampSurface,
 
   36        private bool $frozenOceanSurface,
 
   37        private bool $theEndSurface,
 
   43        private ?array $replacementsData,
 
 
   48    public function getConsolidatedFeatures() : ?BiomeConsolidatedFeaturesData{ return $this->consolidatedFeatures; }
 
   50    public function getMountainParams() : ?BiomeMountainParamsData{ return $this->mountainParams; }
 
   52    public function getSurfaceMaterialAdjustment() : ?BiomeSurfaceMaterialAdjustmentData{ return $this->surfaceMaterialAdjustment; }
 
   54    public function getSurfaceMaterial() : ?BiomeSurfaceMaterialData{ return $this->surfaceMaterial; }
 
   56    public function hasDefaultOverworldSurface() : bool{ return $this->defaultOverworldSurface; }
 
   58    public function hasSwampSurface() : bool{ return $this->swampSurface; }
 
   60    public function hasFrozenOceanSurface() : bool{ return $this->frozenOceanSurface; }
 
   62    public function hasTheEndSurface() : bool{ return $this->theEndSurface; }
 
   64    public function getMesaSurface() : ?BiomeMesaSurfaceData{ return $this->mesaSurface; }
 
   66    public function getCappedSurface() : ?BiomeCappedSurfaceData{ return $this->cappedSurface; }
 
   68    public function getOverworldGenRules() : ?BiomeOverworldGenRulesData{ return $this->overworldGenRules; }
 
   70    public function getMultinoiseGenRules() : ?BiomeMultinoiseGenRulesData{ return $this->multinoiseGenRules; }
 
   72    public function getLegacyWorldGenRules() : ?BiomeLegacyWorldGenRulesData{ return $this->legacyWorldGenRules; }
 
   79    public static function read(ByteBufferReader $in) : self{
 
   81        $consolidatedFeatures = CommonTypes::readOptional($in, fn() => BiomeConsolidatedFeaturesData::read($in));
 
   82        $mountainParams = CommonTypes::readOptional($in, fn() => BiomeMountainParamsData::read($in));
 
   83        $surfaceMaterialAdjustment = CommonTypes::readOptional($in, fn() => BiomeSurfaceMaterialAdjustmentData::read($in));
 
   84        $surfaceMaterial = CommonTypes::readOptional($in, fn() => BiomeSurfaceMaterialData::read($in));
 
   85        $defaultOverworldSurface = CommonTypes::getBool($in);
 
   86        $swampSurface = CommonTypes::getBool($in);
 
   87        $frozenOceanSurface = CommonTypes::getBool($in);
 
   88        $theEndSurface = CommonTypes::getBool($in);
 
   89        $mesaSurface = CommonTypes::readOptional($in, fn() => BiomeMesaSurfaceData::read($in));
 
   90        $cappedSurface = CommonTypes::readOptional($in, fn() => BiomeCappedSurfaceData::read($in));
 
   91        $overworldGenRules = CommonTypes::readOptional($in, fn() => BiomeOverworldGenRulesData::read($in));
 
   92        $multinoiseGenRules = CommonTypes::readOptional($in, fn() => BiomeMultinoiseGenRulesData::read($in));
 
   93        $legacyWorldGenRules = CommonTypes::readOptional($in, fn() => BiomeLegacyWorldGenRulesData::read($in));
 
   94        $replacementsData = CommonTypes::readOptional($in, 
function(ByteBufferReader $in) : array{
 
   95            $count = VarInt::readUnsignedInt($in);
 
   97            for($i = 0; $i < $count; ++$i){
 
   98                $result[] = BiomeReplacementData::read($in);
 
  105            $consolidatedFeatures,
 
  107            $surfaceMaterialAdjustment,
 
  109            $defaultOverworldSurface,
 
  117            $legacyWorldGenRules,
 
  122    public function write(ByteBufferWriter $out) : void{
 
  123        CommonTypes::writeOptional($out, $this->climate, fn(ByteBufferWriter $out, BiomeClimateData $v) => $v->write($out));
 
  124        CommonTypes::writeOptional($out, $this->consolidatedFeatures, fn(ByteBufferWriter $out, BiomeConsolidatedFeaturesData $v) => $v->write($out));
 
  125        CommonTypes::writeOptional($out, $this->mountainParams, fn(ByteBufferWriter $out, BiomeMountainParamsData $v) => $v->write($out));
 
  126        CommonTypes::writeOptional($out, $this->surfaceMaterialAdjustment, fn(ByteBufferWriter $out, BiomeSurfaceMaterialAdjustmentData $v) => $v->write($out));
 
  127        CommonTypes::writeOptional($out, $this->surfaceMaterial, fn(ByteBufferWriter $out, BiomeSurfaceMaterialData $v) => $v->write($out));
 
  128        CommonTypes::putBool($out, $this->defaultOverworldSurface);
 
  129        CommonTypes::putBool($out, $this->swampSurface);
 
  130        CommonTypes::putBool($out, $this->frozenOceanSurface);
 
  131        CommonTypes::putBool($out, $this->theEndSurface);
 
  132        CommonTypes::writeOptional($out, $this->mesaSurface, fn(ByteBufferWriter $out, BiomeMesaSurfaceData $v) => $v->write($out));
 
  133        CommonTypes::writeOptional($out, $this->cappedSurface, fn(ByteBufferWriter $out, BiomeCappedSurfaceData $v) => $v->write($out));
 
  134        CommonTypes::writeOptional($out, $this->overworldGenRules, fn(ByteBufferWriter $out, BiomeOverworldGenRulesData $v) => $v->write($out));
 
  135        CommonTypes::writeOptional($out, $this->multinoiseGenRules, fn(ByteBufferWriter $out, BiomeMultinoiseGenRulesData $v) => $v->write($out));
 
  136        CommonTypes::writeOptional($out, $this->legacyWorldGenRules, fn(ByteBufferWriter $out, BiomeLegacyWorldGenRulesData $v) => $v->write($out));
 
  137        CommonTypes::writeOptional($out, $this->replacementsData, 
function(ByteBufferWriter $out, array $v) : 
void{
 
  138            VarInt::writeUnsignedInt($out, count($v));
 
  139            foreach($v as $item){
 
 
__construct(private ?BiomeClimateData $climate, private ?BiomeConsolidatedFeaturesData $consolidatedFeatures, private ?BiomeMountainParamsData $mountainParams, private ?BiomeSurfaceMaterialAdjustmentData $surfaceMaterialAdjustment, private ?BiomeSurfaceMaterialData $surfaceMaterial, private bool $defaultOverworldSurface, private bool $swampSurface, private bool $frozenOceanSurface, private bool $theEndSurface, private ?BiomeMesaSurfaceData $mesaSurface, private ?BiomeCappedSurfaceData $cappedSurface, private ?BiomeOverworldGenRulesData $overworldGenRules, private ?BiomeMultinoiseGenRulesData $multinoiseGenRules, private ?BiomeLegacyWorldGenRulesData $legacyWorldGenRules, private ?array $replacementsData,)