Sentiment enum

Пакет: com.hypixel.hytale.server.npc.config

Файл: com/hypixel/hytale/server/npc/config/ItemAttitudeGroup.java

implements: Supplier<String>

Поля (1)

МодификаторыТипИмя
private final Attitude attitude

Методы (3)

МодификаторыВозвратСигнатура
abstract Love Love(Attitude.REVERED)
public String getpublic String get()
public Attitude getAttitudepublic Attitude getAttitude()

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.EnumMapCodec;
class="kw">import com.hypixel.hytale.server.core.asset.type.attitude.Attitude;
class="kw">import java.util.Collections;
class="kw">import java.util.EnumMap;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;

class="kw">public class ItemAttitudeGroup class="kw">implements JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, ItemAttitudeGroup>> {
   class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, ItemAttitudeGroup> CODEC = AssetBuilderCodec.<String, ItemAttitudeGroup>builder(
         ItemAttitudeGroup.class,
         ItemAttitudeGroup::new,
         Codec.STRING,
         (var0, var1) -> var0.id = var1,
         var0 -> var0.id,
         (var0, var1) -> var0.data = var1,
         var0 -> var0.data
      )
      .documentation("Defines attitudes towards specific items by tag.")
      .<Map<ItemAttitudeGroup.Sentiment, String[]>>append(
         new KeyedCodec<>("Attitudes", new EnumMapCodec<>(ItemAttitudeGroup.Sentiment.class, Codec.STRING_ARRAY)),
         (var0, var1) -> var0.sentiments = var1,
         var0 -> var0.sentiments
      )
      .documentation("A map of attitudes to item tags.")
      .add()
      .afterDecode(var0 -> {
         if (!var0.sentiments.isEmpty()) {
            var0.attitudes = new EnumMap<>(Attitude.class);

            for (Entry var2 : var0.sentiments.entrySet()) {
               var0.attitudes.put(var2.getKey().attitude, var2.getValue());
            }
         }
      })
      .build();
   class="kw">private class="kw">static IndexedLookupTableAssetMap<String, ItemAttitudeGroup> ASSET_MAP;
   class="kw">protected AssetExtraInfo.Data data;
   class="kw">protected String id;
   class="kw">protected Map<ItemAttitudeGroup.Sentiment, String[]> sentiments = Collections.emptyMap();
   @Nonnull
   class="kw">protected Map<Attitude, String[]> attitudes = Collections.emptyMap();

   class="kw">public class="kw">static IndexedLookupTableAssetMap<String, ItemAttitudeGroup> getAssetMap() {
      if (ASSET_MAP == null) {
         ASSET_MAP = (IndexedLookupTableAssetMap<String, ItemAttitudeGroup>)AssetRegistry.getAssetStore(ItemAttitudeGroup.class).getAssetMap();
      }

      class="kw">return ASSET_MAP;
   }

   class="kw">public ItemAttitudeGroup(String var1) {
      this.id = var1;
   }

   class="kw">protected ItemAttitudeGroup() {
   }

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

   @Nonnull
   class="kw">public Map<Attitude, String[]> getAttitudes() {
      class="kw">return this.attitudes;
   }

   class="kw">public enum Sentiment class="kw">implements Supplier<String> {
      Ignore(Attitude.IGNORE),
      Dislike(Attitude.HOSTILE),
      Neutral(Attitude.NEUTRAL),
      Like(Attitude.FRIENDLY),
      Love(Attitude.REVERED);

      class="kw">private class="kw">final Attitude attitude;

      Sentiment(Attitude nullxx) {
         this.attitude = nullxx;
      }

      @Nonnull
      class="kw">public String get() {
         class="kw">return this.name();
      }

      class="kw">public Attitude getAttitude() {
         class="kw">return this.attitude;
      }
   }
}