CollisionDataArray class
Пакет: com.hypixel.hytale.server.core.modules.collision
Файл: com/hypixel/hytale/server/core/modules/collision/CollisionDataArray.java
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Object |
var1 |
|
|
var1 |
|
|
var1 |
|
int |
var1 |
|
int |
var2 |
|
int |
var2 |
|
Object |
var3 |
|
Object |
var5 |
Методы (12)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
T |
allocT alloc() |
|
|
for for(int var4 = 0; var4 < var1; var4++) |
|
|
for for(int var2 = 0; var2 < var1; var2++) |
public |
T |
getT get(int var1) |
public |
int |
getCountint getCount() |
|
|
if if(var1 > 0) |
|
|
if if(this.dispose != null) |
public |
boolean |
isEmptyboolean isEmpty() |
public |
void |
removevoid remove(int var1) |
public |
void |
resetvoid reset() |
public |
int |
sizeint size() |
public |
void |
sortvoid sort(Comparator<? super T> var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.collision;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Comparator;
class="kw">import java.util.List;
class="kw">import java.util.Objects;
class="kw">import java.util.function.Consumer;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class CollisionDataArray<T> {
@Nonnull
class="kw">private class="kw">final List<T> array = new ObjectArrayList();
class="kw">private class="kw">final Supplier<T> supplier;
@Nullable
class="kw">private class="kw">final Consumer<T> dispose;
class="kw">private class="kw">final List<T> freeList;
class="kw">private int head;
class="kw">public CollisionDataArray(Supplier<T> var1, @Nullable Consumer<T> var2, List<T> var3) {
Objects.requireNonNull(var1, "Must provide supplier for CollisionDataArray");
this.supplier = var1;
this.dispose = var2;
this.freeList = var3;
this.head = 0;
}
class="kw">public int getCount() {
class="kw">return this.array.size() - this.head;
}
class="kw">public T alloc() {
Object var1;
if (this.freeList.isEmpty()) {
var1 = this.supplier.get();
} else {
int var2 = this.freeList.size() - 1;
var1 = this.freeList.get(var2);
this.freeList.remove(var2);
}
this.array.add(var1);
class="kw">return var1;
}
class="kw">public void reset() {
int var1 = this.array.size();
if (var1 > 0) {
if (this.dispose != null) {
for (int var4 = 0; var4 < var1; var4++) {
Object var5 = this.array.get(var4);
this.dispose.accept(var5);
this.freeList.add(var5);
}
} else {
for (int var2 = 0; var2 < var1; var2++) {
Object var3 = this.array.get(var2);
this.freeList.add(var3);
}
}
this.array.clear();
this.head = 0;
}
}
@Nullable
class="kw">public T getFirst() {
class="kw">return this.head < this.array.size() ? this.array.get(this.head) : null;
}
@Nullable
class="kw">public T forgetFirst() {
this.head++;
class="kw">return this.getFirst();
}
class="kw">public boolean isEmpty() {
class="kw">return this.array.isEmpty();
}
class="kw">public void sort(Comparator<? super T> var1) {
this.array.sort(var1);
}
class="kw">public void remove(int var1) {
int var2 = this.head + var1;
if (var2 < this.array.size()) {
this.freeList.add(this.array.get(var2));
this.array.remove(var2);
}
}
class="kw">public int size() {
class="kw">return this.array.size() - this.head;
}
class="kw">public T get(int var1) {
class="kw">return this.array.get(this.head + var1);
}
}