SoilConfig class

Пакет: com.hypixel.hytale.server.core.asset.type.blocktype.config.farming

Файл: com/hypixel/hytale/server/core/asset/type/blocktype/config/farming/FarmingData.java

Поля (3)

МодификаторыТипИмя
public static final BuilderCodec<FarmingData.SoilConfig> CODEC
protected Rangef lifetime
protected String targetBlock

Методы (2)

МодификаторыВозвратСигнатура
public Rangef getLifetimepublic Rangef getLifetime()
public String getTargetBlockpublic String getTargetBlock()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.blocktype.config.farming;

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.MapCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.protocol.Rangef;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.codec.ProtocolCodecs;
class="kw">import java.util.Arrays;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class FarmingData {
   @Nonnull
   class="kw">public class="kw">static class="kw">final Codec<FarmingData> CODEC = BuilderCodec.builder(FarmingData.class, FarmingData::new)
      .append(
         new KeyedCodec<>("Stages", new MapCodec<>(new ArrayCodec<>(FarmingStageData.CODEC, FarmingStageData[]::new), HashMap::new)),
         (var0, var1) -> var0.stages = var1,
         var0 -> var0.stages
      )
      .add()
      .append(new KeyedCodec<>("StartingStageSet", Codec.STRING), (var0, var1) -> var0.startingStageSet = var1, var0 -> var0.startingStageSet)
      .add()
      .append(new KeyedCodec<>("StageSetAfterHarvest", Codec.STRING), (var0, var1) -> var0.stageSetAfterHarvest = var1, var0 -> var0.stageSetAfterHarvest)
      .add()
      .append(
         new KeyedCodec<>("ActiveGrowthModifiers", GrowthModifierAsset.CHILD_ASSET_CODEC_ARRAY),
         (var0, var1) -> var0.growthModifiers = var1,
         var0 -> var0.growthModifiers
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("SoilConfig", FarmingData.SoilConfig.CODEC),
         (var0, var1) -> var0.soilConfig = var1,
         var0 -> var0.soilConfig,
         (var0, var1) -> var0.soilConfig = var1.soilConfig
      )
      .add()
      .afterDecode(var0 -> {
         if (var0 != null && var0.getStages() != null) {
            if (!var0.getStages().containsKey(var0.startingStageSet)) {
               throw new IllegalArgumentException("Invalid StartingStageSet " + var0.startingStageSet);
            }

            if (var0.stageSetAfterHarvest != null && !var0.getStages().containsKey(var0.stageSetAfterHarvest)) {
               throw new IllegalArgumentException("Invalid StageSetAfterHarvest " + var0.startingStageSet);
            }
         }
      })
      .build();
   class="kw">protected Map<String, FarmingStageData[]> stages;
   class="kw">protected String startingStageSet = "Default";
   class="kw">protected String stageSetAfterHarvest;
   class="kw">protected String[] growthModifiers;
   @Nullable
   class="kw">protected FarmingData.SoilConfig soilConfig;

   class="kw">public FarmingData() {
   }

   @Nullable
   class="kw">public Map<String, FarmingStageData[]> getStages() {
      class="kw">return this.stages;
   }

   @Nullable
   class="kw">public String getStartingStageSet() {
      class="kw">return this.startingStageSet;
   }

   class="kw">public String getStageSetAfterHarvest() {
      class="kw">return this.stageSetAfterHarvest;
   }

   class="kw">public String[] getGrowthModifiers() {
      class="kw">return this.growthModifiers;
   }

   @Nullable
   class="kw">public FarmingData.SoilConfig getSoilConfig() {
      class="kw">return this.soilConfig;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "FarmingData{stages="
         + this.stages
         + ", startingStageSet='"
         + this.startingStageSet
         + "', stageSetAfterHarvest='"
         + this.stageSetAfterHarvest
         + "', growthModifiers="
         + Arrays.toString(this.growthModifiers)
         + "}";
   }

   class="kw">public class="kw">static class SoilConfig {
      @Nonnull
      class="kw">public class="kw">static class="kw">final BuilderCodec<FarmingData.SoilConfig> CODEC = BuilderCodec.builder(FarmingData.SoilConfig.class, FarmingData.SoilConfig::new)
         .appendInherited(
            new KeyedCodec<>("TargetBlock", Codec.STRING),
            (var0, var1) -> var0.targetBlock = var1,
            var0 -> var0.targetBlock,
            (var0, var1) -> var0.targetBlock = var1.targetBlock
         )
         .addValidatorLate(() -> BlockType.VALIDATOR_CACHE.getValidator().late())
         .addValidator(Validators.nonNull())
         .add()
         .<Rangef>appendInherited(
            new KeyedCodec<>("Lifetime", ProtocolCodecs.RANGEF),
            (var0, var1) -> var0.lifetime = var1,
            var0 -> var0.lifetime,
            (var0, var1) -> var0.lifetime = var1.lifetime
         )
         .addValidator(Validators.nonNull())
         .add()
         .build();
      class="kw">protected String targetBlock;
      class="kw">protected Rangef lifetime;

      class="kw">public SoilConfig() {
      }

      class="kw">public String getTargetBlock() {
         class="kw">return this.targetBlock;
      }

      class="kw">public Rangef getLifetime() {
         class="kw">return this.lifetime;
      }
   }
}