NPCMemoryProvider class
Пакет: com.hypixel.hytale.builtin.adventure.memories.memories.npc
Файл: com/hypixel/hytale/builtin/adventure/memories/memories/npc/NPCMemoryProvider.java
extends: MemoryProvider<NPCMemory>
Поля (20)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
double |
DEFAULT_RADIUS |
|
Map |
var1 |
|
Int2ObjectMap |
var2 |
|
ExecutionContext |
var2 |
|
ExecutionContext |
var2 |
|
ExecutionContext |
var2 |
|
ExecutionContext |
var2 |
|
ObjectIterator |
var3 |
|
Scope |
var3 |
|
Scope |
var3 |
|
Scope |
var3 |
|
Scope |
var3 |
|
BuilderInfo |
var4 |
|
Builder |
var5 |
|
String |
var6 |
|
NPCMemory |
var7 |
|
|
var7 |
|
|
var7 |
|
String |
var8 |
|
String |
var9 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(var6 != null) |
|
|
if if(var0 instanceof ISpawnableWithModel var1) |
|
|
if if(var0 instanceof ISpawnableWithModel var1) |
|
|
if if(var0 instanceof ISpawnableWithModel var1) |
|
|
if if(var0 instanceof ISpawnableWithModel var1) |
static |
boolean |
isMemoryboolean isMemory(@Nonnull Builder<?> var0) |
abstract |
|
super super("NPC", NPCMemory.CODEC, 10.0) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.memories.memories.npc;
class="kw">import com.hypixel.hytale.builtin.adventure.memories.MemoriesPlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.memories.memories.Memory;
class="kw">import com.hypixel.hytale.builtin.adventure.memories.memories.MemoryProvider;
class="kw">import com.hypixel.hytale.logger.sentry.SkipSentryException;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Builder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderInfo;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.Scope;
class="kw">import com.hypixel.hytale.server.spawning.ISpawnableWithModel;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectIterator;
class="kw">import java.util.HashSet;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class NPCMemoryProvider class="kw">extends MemoryProvider<NPCMemory> {
class="kw">public class="kw">static class="kw">final double DEFAULT_RADIUS = 10.0;
class="kw">public NPCMemoryProvider() {
super("NPC", NPCMemory.CODEC, 10.0);
}
@Nonnull
@Override
class="kw">public Map<String, Set<Memory>> getAllMemories() {
Map var1 = new Object2ObjectOpenHashMap();
Int2ObjectMap var2 = NPCPlugin.get().getBuilderManager().getAllBuilders();
ObjectIterator var3 = var2.values().iterator();
while (var3.hasNext()) {
BuilderInfo var4 = (BuilderInfo)var3.next();
try {
Builder var5 = var4.getBuilder();
if (var5.isSpawnable() && !var5.isDeprecated() && var4.isValid() && isMemory(var5)) {
String var6 = getCategory(var5);
if (var6 != null) {
String var8 = getMemoriesNameOverride(var5);
String var9 = getNPCNameTranslationKey(var5);
NPCMemory var7;
if (var8 != null && !var8.isEmpty()) {
var7 = new NPCMemory(var8, var9);
} else {
var7 = new NPCMemory(var4.getKeyName(), var9);
}
var1.computeIfAbsent(var6, var0 -> new HashSet<>()).add(var7);
}
}
} catch (SkipSentryException var10) {
MemoriesPlugin.get().getLogger().at(Level.SEVERE).log("%s", var10.getMessage());
}
}
class="kw">return var1;
}
@Nullable
class="kw">private class="kw">static String getCategory(@Nonnull Builder<?> var0) {
if (var0 class="kw">instanceof ISpawnableWithModel var1) {
ExecutionContext var2 = new ExecutionContext();
var2.setScope(var1.createExecutionScope());
Scope var3 = var1.createModifierScope(var2);
class="kw">return var1.getMemoriesCategory(var2, var3);
} else {
class="kw">return "Other";
}
}
class="kw">private class="kw">static boolean isMemory(@Nonnull Builder<?> var0) {
if (var0 class="kw">instanceof ISpawnableWithModel var1) {
ExecutionContext var2 = new ExecutionContext();
var2.setScope(var1.createExecutionScope());
Scope var3 = var1.createModifierScope(var2);
class="kw">return var1.isMemory(var2, var3);
} else {
class="kw">return false;
}
}
@Nullable
class="kw">private class="kw">static String getMemoriesNameOverride(@Nonnull Builder<?> var0) {
if (var0 class="kw">instanceof ISpawnableWithModel var1) {
ExecutionContext var2 = new ExecutionContext();
var2.setScope(var1.createExecutionScope());
Scope var3 = var1.createModifierScope(var2);
class="kw">return var1.getMemoriesNameOverride(var2, var3);
} else {
class="kw">return null;
}
}
@Nonnull
class="kw">private class="kw">static String getNPCNameTranslationKey(@Nonnull Builder<?> var0) {
if (var0 class="kw">instanceof ISpawnableWithModel var1) {
ExecutionContext var2 = new ExecutionContext();
var2.setScope(var1.createExecutionScope());
Scope var3 = var1.createModifierScope(var2);
class="kw">return var1.getNameTranslationKey(var2, var3);
} else {
throw new SkipSentryException(new IllegalStateException("Cannot get translation key for a non spawnable NPC role!"));
}
}
}