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);
}
}