DensityReturnTypeAsset class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.density.positions.returntypes

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/density/positions/returntypes/DensityReturnTypeAsset.java

extends: ReturnTypeAsset

Поля (10)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, DensityReturnTypeAsset.DelimiterAsset> CODEC
private AssetExtraInfo.Data data
private DensityAsset densityAsset
private double from
private String id
private double to
Density var12
DensityAsset.Argument var5
Density var6
HashMap var7

Методы (5)

МодификаторыВозвратСигнатура
public DelimiterAssetpublic DelimiterAsset()
abstract return new DensityReturnTypereturn new DensityReturnType(var12, var7, true, this.defaultValue)
for for(DensityReturnTypeAsset.DelimiterAsset var11 : this.delimiterAssets)
for for(DensityReturnTypeAsset.DelimiterAsset var4 : this.delimiterAssets)
public String getIdpublic String getId()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets.density.positions.returntypes;

class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.ThreadBridge;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.CacheDensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.ConstantDensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.DensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.materialproviders.FieldFunctionMaterialProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.MultiCacheDensity;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.positions.returntypes.DensityReturnType;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.positions.returntypes.ReturnType;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.referencebundle.ReferenceBundle;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.rng.SeedBox;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.workerindexer.WorkerIndexer;
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.math.Range;
class="kw">import java.util.HashMap;
class="kw">import javax.annotation.Nonnull;

class="kw">public class DensityReturnTypeAsset class="kw">extends ReturnTypeAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<DensityReturnTypeAsset> CODEC = BuilderCodec.builder(
         DensityReturnTypeAsset.class, DensityReturnTypeAsset::new, ReturnTypeAsset.ABSTRACT_CODEC
      )
      .append(new KeyedCodec<>("ChoiceDensity", DensityAsset.CODEC, true), (var0, var1) -> var0.choiceDensityAsset = var1, var0 -> var0.choiceDensityAsset)
      .add()
      .append(
         new KeyedCodec<>("Delimiters", new ArrayCodec<>(DensityReturnTypeAsset.DelimiterAsset.CODEC, DensityReturnTypeAsset.DelimiterAsset[]::new), true),
         (var0, var1) -> var0.delimiterAssets = var1,
         var0 -> var0.delimiterAssets
      )
      .add()
      .append(new KeyedCodec<>("DefaultValue", Codec.DOUBLE, false), (var0, var1) -> var0.defaultValue = var1, var0 -> var0.defaultValue)
      .add()
      .build();
   class="kw">private DensityAsset choiceDensityAsset = new ConstantDensityAsset();
   class="kw">private DensityReturnTypeAsset.DelimiterAsset[] delimiterAssets = new DensityReturnTypeAsset.DelimiterAsset[0];
   class="kw">private double defaultValue = 0.0;

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

   @Nonnull
   @Override
   class="kw">public ReturnType build(@Nonnull SeedBox var1, @Nonnull ReferenceBundle var2, @Nonnull WorkerIndexer.Id var3, @Nonnull ThreadBridge var4) {
      DensityAsset.Argument var5 = new DensityAsset.Argument(var1, var2, var3, var4);
      Density var6 = this.choiceDensityAsset.build(var5);
      HashMap var7 = new HashMap<>(this.delimiterAssets.length);

      for (DensityReturnTypeAsset.DelimiterAsset var11 : this.delimiterAssets) {
         var7.put(new Range((float)var11.from, (float)var11.to), var11.densityAsset.build(var5));
      }

      Density var12 = new MultiCacheDensity(var6, CacheDensityAsset.DEFAULT_CAPACITY);
      class="kw">return new DensityReturnType(var12, var7, true, this.defaultValue);
   }

   @Override
   class="kw">public void cleanUp() {
      this.choiceDensityAsset.cleanUp();

      for (DensityReturnTypeAsset.DelimiterAsset var4 : this.delimiterAssets) {
         var4.densityAsset.cleanUp();
      }
   }

   class="kw">public class="kw">static class DelimiterAsset class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, FieldFunctionMaterialProviderAsset.DelimiterAsset>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, DensityReturnTypeAsset.DelimiterAsset> CODEC = AssetBuilderCodec.builder(
            DensityReturnTypeAsset.DelimiterAsset.class,
            DensityReturnTypeAsset.DelimiterAsset::new,
            Codec.STRING,
            (var0, var1) -> var0.id = var1,
            var0 -> var0.id,
            (var0, var1) -> var0.data = var1,
            var0 -> var0.data
         )
         .append(new KeyedCodec<>("From", Codec.DOUBLE, true), (var0, var1) -> var0.from = var1, var0 -> var0.from)
         .add()
         .append(new KeyedCodec<>("To", Codec.DOUBLE, true), (var0, var1) -> var0.to = var1, var0 -> var0.to)
         .add()
         .append(new KeyedCodec<>("Density", DensityAsset.CODEC, true), (var0, var1) -> var0.densityAsset = var1, var0 -> var0.densityAsset)
         .add()
         .build();
      class="kw">private String id;
      class="kw">private AssetExtraInfo.Data data;
      class="kw">private double from = 0.0;
      class="kw">private double to = 0.0;
      class="kw">private DensityAsset densityAsset = new ConstantDensityAsset();

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

      class="kw">public String getId() {
         class="kw">return this.id;
      }
   }
}