PositionsFrameworkAsset class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.framework

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/framework/PositionsFrameworkAsset.java

extends: FrameworkAsset

Поля (7)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, PositionsFrameworkAsset.EntryAsset> CODEC
private AssetExtraInfo.Data data
private String id
private String name
private PositionProviderAsset positionProviderAsset
PositionsFrameworkAsset.Entries var2
PositionsFrameworkAsset.Entries var3

Методы (6)

МодификаторыВозвратСигнатура
public Entriespublic Entries()
public EntryAssetpublic EntryAsset()
for for(PositionsFrameworkAsset.EntryAsset var7 : this.entryAssets)
public static PositionsFrameworkAsset.Entries getpublic static PositionsFrameworkAsset.Entries get(@Nonnull ReferenceBundle var0)
public static PositionProviderAsset getpublic static PositionProviderAsset get(@Nonnull String var0, @Nonnull ReferenceBundle var1)
public String getIdpublic String getId()

Исходный код

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

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.positionproviders.ListPositionProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.positionproviders.PositionProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.worldstructures.WorldStructureAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.referencebundle.ReferenceBundle;
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 java.util.HashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class PositionsFrameworkAsset class="kw">extends FrameworkAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final String NAME = "Positions";
   @Nonnull
   class="kw">public class="kw">static class="kw">final Class<PositionsFrameworkAsset.Entries> CLASS = PositionsFrameworkAsset.Entries.class;
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<PositionsFrameworkAsset> CODEC = BuilderCodec.builder(
         PositionsFrameworkAsset.class, PositionsFrameworkAsset::new, FrameworkAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>("Entries", new ArrayCodec<>(PositionsFrameworkAsset.EntryAsset.CODEC, PositionsFrameworkAsset.EntryAsset[]::new), true),
         (var0, var1) -> var0.entryAssets = var1,
         var0 -> var0.entryAssets
      )
      .add()
      .build();
   class="kw">private String id;
   class="kw">private AssetExtraInfo.Data data;
   class="kw">private PositionsFrameworkAsset.EntryAsset[] entryAssets = new PositionsFrameworkAsset.EntryAsset[0];

   class="kw">private PositionsFrameworkAsset() {
   }

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

   @Override
   class="kw">public void build(@Nonnull WorldStructureAsset.Argument var1, @Nonnull ReferenceBundle var2) {
      PositionsFrameworkAsset.Entries var3 = new PositionsFrameworkAsset.Entries();

      for (PositionsFrameworkAsset.EntryAsset var7 : this.entryAssets) {
         var3.put(var7.name, var7.positionProviderAsset);
      }

      var2.put("Positions", var3, CLASS);
   }

   class="kw">public class="kw">static class Entries class="kw">extends HashMap<String, PositionProviderAsset> {
      class="kw">public Entries() {
      }

      @Nullable
      class="kw">public class="kw">static PositionsFrameworkAsset.Entries get(@Nonnull ReferenceBundle var0) {
         class="kw">return var0.get("Positions", PositionsFrameworkAsset.CLASS);
      }

      @Nullable
      class="kw">public class="kw">static PositionProviderAsset get(@Nonnull String var0, @Nonnull ReferenceBundle var1) {
         PositionsFrameworkAsset.Entries var2 = get(var1);
         class="kw">return var2 == null ? null : var2.get(var0);
      }
   }

   class="kw">public class="kw">static class EntryAsset class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, PositionsFrameworkAsset.EntryAsset>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, PositionsFrameworkAsset.EntryAsset> CODEC = AssetBuilderCodec.builder(
            PositionsFrameworkAsset.EntryAsset.class,
            PositionsFrameworkAsset.EntryAsset::new,
            Codec.STRING,
            (var0, var1) -> var0.id = var1,
            var0 -> var0.id,
            (var0, var1) -> var0.data = var1,
            var0 -> var0.data
         )
         .append(new KeyedCodec<>("Name", Codec.STRING, true), (var0, var1) -> var0.name = var1, var0 -> var0.name)
         .add()
         .append(
            new KeyedCodec<>("Positions", PositionProviderAsset.CODEC, true),
            (var0, var1) -> var0.positionProviderAsset = var1,
            var0 -> var0.positionProviderAsset
         )
         .add()
         .build();
      class="kw">private String id;
      class="kw">private AssetExtraInfo.Data data;
      class="kw">private String name = "";
      class="kw">private PositionProviderAsset positionProviderAsset = ListPositionProviderAsset.INSTANCE;

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

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