InteractionConfiguration class

Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config

Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/InteractionConfiguration.java

implements: NetworkSerializable<com.hypixel.hytale.protocol.InteractionConfiguration>

Поля (4)

МодификаторыТипИмя
final InteractionConfiguration DEFAULT
com.hypixel.hytale.protocol.InteractionConfiguration var1
Object2ObjectOpenHashMap var2
InteractionPriority var3

Методы (3)

МодификаторыВозвратСигнатура
public int getPriorityForint getPriorityFor(InteractionType var1, PrioritySlot var2)
public float getUseDistancefloat getUseDistance(GameMode var1)
if if(this.priorities == null)

Исходный код

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

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.map.EnumMapCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.protocol.GameMode;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.PrioritySlot;
class="kw">import com.hypixel.hytale.server.core.io.NetworkSerializable;
class="kw">import it.unimi.dsi.fastutil.objects.Object2FloatMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2FloatMaps;
class="kw">import it.unimi.dsi.fastutil.objects.Object2FloatOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class InteractionConfiguration class="kw">implements NetworkSerializable<com.hypixel.hytale.protocol.InteractionConfiguration> {
   class="kw">public class="kw">static class="kw">final InteractionConfiguration DEFAULT = new InteractionConfiguration();
   class="kw">public class="kw">static class="kw">final InteractionConfiguration DEFAULT_WEAPON = new InteractionConfiguration(false);
   class="kw">private class="kw">static class="kw">final Object2FloatMap<GameMode> DEFAULT_USE_DISTANCE = new Object2FloatOpenHashMap();
   class="kw">public class="kw">static class="kw">final BuilderCodec<InteractionConfiguration> CODEC = BuilderCodec.builder(InteractionConfiguration.class, InteractionConfiguration::new)
      .appendInherited(
         new KeyedCodec<>("DisplayOutlines", Codec.BOOLEAN),
         (var0, var1) -> var0.displayOutlines = var1,
         var0 -> var0.displayOutlines,
         (var0, var1) -> var0.displayOutlines = var1.displayOutlines
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("DebugOutlines", Codec.BOOLEAN),
         (var0, var1) -> var0.debugOutlines = var1,
         var0 -> var0.debugOutlines,
         (var0, var1) -> var0.debugOutlines = var1.debugOutlines
      )
      .add()
      .<Map<GameMode, Float>>appendInherited(
         new KeyedCodec<>("UseDistance", new EnumMapCodec<>(GameMode.class, Codec.FLOAT, () -> new Object2FloatOpenHashMap(DEFAULT_USE_DISTANCE), false)),
         (var0, var1) -> var0.useDistance = Object2FloatMaps.unmodifiable((Object2FloatOpenHashMap)var1),
         var0 -> var0.useDistance,
         (var0, var1) -> var0.useDistance = var1.useDistance
      )
      .addValidator(Validators.nonNull())
      .add()
      .appendInherited(
         new KeyedCodec<>("AllEntities", Codec.BOOLEAN),
         (var0, var1) -> var0.allEntities = var1,
         var0 -> var0.allEntities,
         (var0, var1) -> var0.allEntities = var1.allEntities
      )
      .add()
      .<Map<InteractionType, InteractionPriority>>appendInherited(
         new KeyedCodec<>("Priorities", new EnumMapCodec<>(InteractionType.class, InteractionPriority.CODEC, Object2ObjectOpenHashMap::new, false)),
         (var0, var1) -> var0.priorities = var1,
         var0 -> var0.priorities,
         (var0, var1) -> var0.priorities = var1.priorities
      )
      .documentation("Configures the priority values for given interaction types on this item when two or more items are equipped.")
      .add()
      .build();
   class="kw">protected boolean displayOutlines = true;
   class="kw">protected boolean debugOutlines;
   class="kw">protected Object2FloatMap<GameMode> useDistance = DEFAULT_USE_DISTANCE;
   class="kw">protected boolean allEntities;
   @Nullable
   class="kw">protected Map<InteractionType, InteractionPriority> priorities;

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

   class="kw">public InteractionConfiguration(boolean var1) {
      this.displayOutlines = var1;
   }

   class="kw">public int getPriorityFor(InteractionType var1, PrioritySlot var2) {
      if (this.priorities == null) {
         class="kw">return 0;
      }

      InteractionPriority var3 = this.priorities.get(var1);
      class="kw">return var3 == null ? 0 : var3.getPriority(var2);
   }

   class="kw">public float getUseDistance(GameMode var1) {
      class="kw">return this.useDistance == null ? DEFAULT_USE_DISTANCE.getOrDefault(var1, 1.0F) : this.useDistance.getOrDefault(var1, 1.0F);
   }

   @Nonnull
   class="kw">public com.hypixel.hytale.protocol.InteractionConfiguration toPacket() {
      com.hypixel.hytale.protocol.InteractionConfiguration var1 = new com.hypixel.hytale.protocol.InteractionConfiguration();
      var1.displayOutlines = this.displayOutlines;
      var1.debugOutlines = this.debugOutlines;
      var1.useDistance = this.useDistance;
      var1.allEntities = this.allEntities;
      if (this.priorities != null && !this.priorities.isEmpty()) {
         Object2ObjectOpenHashMap var2 = new Object2ObjectOpenHashMap();

         for (Entry var4 : this.priorities.entrySet()) {
            var2.put(var4.getKey(), var4.getValue().toPacket());
         }

         var1.priorities = var2;
      }

      class="kw">return var1;
   }

   class="kw">static {
      DEFAULT_USE_DISTANCE.put(GameMode.Adventure, 5.0F);
      DEFAULT_USE_DISTANCE.put(GameMode.Creative, 6.0F);
   }
}