Entry class

Пакет: com.hypixel.hytale.builtin.adventure.worldevents.condition.manager

Файл: com/hypixel/hytale/builtin/adventure/worldevents/condition/manager/ConditionMap.java

Поля (5)

МодификаторыТипИмя
public final EventCondition.Type conditionType
public final ObjectList<T> conditions
public float timer_s
int var2
int var2

Методы (5)

МодификаторыВозвратСигнатура
public void addpublic void add(@Nonnull T var1)
if if(var2 == -1)
if if(var2 != -1)
public void removepublic void remove(@Nonnull T var1)
abstract this this(var1.type, var1.conditionType)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.worldevents.condition.manager;

class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.EventCondition;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectList;
class="kw">import it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class ConditionMap<T> {
   class="kw">protected class="kw">final ObjectList<ConditionMap.Entry<T>> entries = new ObjectArrayList();
   class="kw">protected class="kw">final Reference2IntOpenHashMap<Class<?>> types = new Reference2IntOpenHashMap();

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

   class="kw">public int size() {
      class="kw">return this.entries.size();
   }

   @Nullable
   class="kw">public ConditionMap.Entry<T> get(int var1) {
      class="kw">return (ConditionMap.Entry<T>)this.entries.get(var1);
   }

   @Nullable
   class="kw">public ConditionMap.Entry<T> get(@Nonnull Class<?> var1) {
      int var2 = this.types.getOrDefault(var1, -1);
      class="kw">return var2 == -1 ? null : (ConditionMap.Entry)this.entries.get(var2);
   }

   @Nonnull
   class="kw">public ConditionMap.Entry<T> ensure(@Nonnull Class<?> var1, @Nonnull EventCondition.Type var2) {
      int var3 = this.types.getOrDefault(var1, -1);
      if (var3 != -1) {
         class="kw">return (ConditionMap.Entry<T>)this.entries.get(var3);
      }

      int var4 = this.types.size();
      ConditionMap.Entry var5 = new ConditionMap.Entry<>(var1, var2);
      this.types.put(var1, var4);
      this.entries.add(var5);
      class="kw">return var5;
   }

   class="kw">public void remove(@Nonnull Class<?> var1) {
      if (this.types.containsKey(var1)) {
         int var2 = this.types.removeInt(var1);
         int var3 = this.entries.size() - 1;
         if (var2 < var3) {
            ConditionMap.Entry var4 = (ConditionMap.Entry<T>)this.entries.get(var3);
            this.entries.set(var2, var4);
            this.types.put(var4.type, var2);
         }

         this.entries.remove(var3);
      }
   }

   class="kw">public void copy(@Nonnull ConditionMap<T> var1) {
      this.types.clear();
      this.entries.clear();
      this.types.putAll(var1.types);

      for (int var2 = 0; var2 < var1.entries.size(); var2++) {
         ConditionMap.Entry var3 = (ConditionMap.Entry<T>)var1.entries.get(var2);
         this.entries.add(new ConditionMap.Entry<>(var3));
      }
   }

   class="kw">public class="kw">static class Entry<T> {
      class="kw">public float timer_s = 0.0F;
      @Nonnull
      class="kw">public class="kw">final Class<?> type;
      @Nonnull
      class="kw">public class="kw">final EventCondition.Type conditionType;
      @Nonnull
      class="kw">public class="kw">final ObjectList<T> conditions = new ObjectArrayList();

      class="kw">protected Entry(@Nonnull Class<?> var1, @Nonnull EventCondition.Type var2) {
         this.type = var1;
         this.conditionType = var2;
      }

      class="kw">protected Entry(@Nonnull ConditionMap.Entry<T> var1) {
         this(var1.type, var1.conditionType);
         this.timer_s = var1.timer_s;
         this.conditions.addAll(var1.conditions);
      }

      class="kw">public void add(@Nonnull T var1) {
         int var2 = this.conditions.indexOf(var1);
         if (var2 == -1) {
            this.conditions.add(var1);
         }
      }

      class="kw">public void remove(@Nonnull T var1) {
         int var2 = this.conditions.indexOf(var1);
         if (var2 != -1) {
            this.conditions.set(var2, this.conditions.getLast());
            this.conditions.removeLast();
         }
      }
   }
}