CollisionTracker class
Пакет: com.hypixel.hytale.server.core.modules.collision
Файл: com/hypixel/hytale/server/core/modules/collision/CollisionTracker.java
extends: BlockTracker
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
|
int |
var1 |
|
int |
var1 |
|
int |
var2 |
|
BlockData |
var3 |
|
BlockContactData |
var4 |
|
int |
var4 |
|
BlockContactData |
var6 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var1 = 0; var1 < 4; var1++) |
|
|
for for(int var2 = 0; var2 < var1; var2++) |
|
|
for for(int var2 = this.count; var2 < var1; var2++) |
public |
BlockData |
getBlockDataBlockData getBlockData(int var1) |
public |
BlockContactData |
getContactDataBlockContactData getContactData(int var1) |
|
|
if if(this.count == 0) |
public |
boolean |
trackboolean track(int var1, int var2, int var3, @Nonnull BlockContactData var4, @Nonnull BlockData var5) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.collision;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class CollisionTracker class="kw">extends BlockTracker {
@Nonnull
class="kw">protected BlockData[] blockData = new BlockData[4];
@Nonnull
class="kw">protected BlockContactData[] contactData = new BlockContactData[4];
class="kw">public CollisionTracker() {
for (int var1 = 0; var1 < 4; var1++) {
this.blockData[var1] = new BlockData();
this.contactData[var1] = new BlockContactData();
}
}
class="kw">public BlockData getBlockData(int var1) {
class="kw">return this.blockData[var1];
}
class="kw">public BlockContactData getContactData(int var1) {
class="kw">return this.contactData[var1];
}
@Override
class="kw">public void reset() {
int var1 = this.count;
super.reset();
for (int var2 = 0; var2 < var1; var2++) {
this.blockData[var2].clear();
this.contactData[var2].clear();
}
}
class="kw">public boolean track(int var1, int var2, int var3, @Nonnull BlockContactData var4, @Nonnull BlockData var5) {
if (this.isTracked(var1, var2, var3)) {
class="kw">return true;
}
this.trackNew(var1, var2, var3, var4, var5);
class="kw">return false;
}
@Nonnull
class="kw">public BlockContactData trackNew(int var1, int var2, int var3, @Nonnull BlockContactData var4, @Nonnull BlockData var5) {
super.trackNew(var1, var2, var3);
this.blockData[this.count - 1].assign(var5);
BlockContactData var6 = this.contactData[this.count - 1];
var6.assign(var4);
class="kw">return var6;
}
@Override
class="kw">public void untrack(int var1) {
super.untrack(var1);
if (this.count == 0) {
this.blockData[0].clear();
this.contactData[0].clear();
} else {
int var2 = this.count - var1;
BlockData var3 = this.blockData[var1];
var3.clear();
System.arraycopy(this.blockData, var1 + 1, this.blockData, var1, var2);
this.blockData[this.count] = var3;
BlockContactData var4 = this.contactData[var1];
var4.clear();
System.arraycopy(this.contactData, var1 + 1, this.contactData, var1, var2);
this.contactData[this.count] = var4;
}
}
@Nullable
class="kw">public BlockContactData getContactData(int var1, int var2, int var3) {
int var4 = this.getIndex(var1, var2, var3);
class="kw">return var4 == -1 ? null : this.contactData[var4];
}
@Override
class="kw">protected void alloc() {
super.alloc();
int var1 = this.blockData.length + 4;
this.blockData = Arrays.copyOf(this.blockData, var1);
this.contactData = Arrays.copyOf(this.contactData, var1);
for (int var2 = this.count; var2 < var1; var2++) {
this.blockData[var2] = new BlockData();
this.contactData[var2] = new BlockContactData();
}
}
}