Wilderness class
Пакет: com.hypixel.hytale.builtin.adventure.wilderness.component
Файл: com/hypixel/hytale/builtin/adventure/wilderness/component/Wilderness.java
implements: Component<EntityStore>
Поля (20)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
INVALID_COORD |
|
int |
var10 |
|
int |
var11 |
|
int |
var12 |
|
int |
var13 |
|
int |
var14 |
|
int |
var15 |
|
int |
var16 |
|
int |
var17 |
|
int |
var4 |
|
int |
var4 |
|
int |
var5 |
|
long |
var5 |
|
int |
var5 |
|
int |
var6 |
|
int |
var6 |
|
int |
var7 |
|
int |
var7 |
|
int |
var8 |
|
int |
var9 |
Методы (22)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
int |
beginint begin() |
public |
boolean |
emptyboolean empty() |
|
|
for for(int var18 = var10; var18 <= var13; var18++) |
|
|
for for(int var19 = var11; var19 <= var14; var17++) |
public |
int |
getChunkXint getChunkX() |
public |
int |
getChunkYint getChunkY() |
public |
int |
getChunkZint getChunkZ() |
static |
ComponentType<EntityStore, Wilderness> |
getComponentTypeComponentType<EntityStore, Wilderness> getComponentType() |
public |
int |
getXint getX() |
public |
int |
getYint getY() |
public |
int |
getZint getZ() |
|
|
if if(var5 != this.generation || var7 != this.chunkX || var8 != this.chunkY || var9 != this.chunkZ) |
protected |
int |
indexint index(int var1, int var2, int var3) |
public |
void |
movevoid move(int var1, int var2, int var3, @Nonnull WildernessTracker var4) |
public |
int |
nextint next(int var1) |
public |
boolean |
testboolean test(int var1, int var2, int var3) |
abstract |
|
this this(0, 0) |
abstract |
|
this this(var1.radiusXZ, var1.radiusY) |
|
|
while while(var16 <= var15) |
public |
int |
xFromIndexint xFromIndex(int var1) |
public |
int |
yFromIndexint yFromIndex(int var1) |
public |
int |
zFromIndexint zFromIndex(int var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.wilderness.component;
class="kw">import com.hypixel.hytale.builtin.adventure.wilderness.WildernessPlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.wilderness.resource.WildernessTracker;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.BitSet;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3i;
class="kw">public class Wilderness class="kw">implements Component<EntityStore> {
class="kw">protected class="kw">static class="kw">final int INVALID_COORD = Integer.MIN_VALUE;
class="kw">protected long generation = Long.MIN_VALUE;
class="kw">protected int x;
class="kw">protected int y;
class="kw">protected int z;
class="kw">protected int chunkX = Integer.MIN_VALUE;
class="kw">protected int chunkY = Integer.MIN_VALUE;
class="kw">protected int chunkZ = Integer.MIN_VALUE;
class="kw">protected class="kw">final int sizeY;
class="kw">protected class="kw">final int sizeXZ;
class="kw">protected class="kw">final int sizeXZ2;
class="kw">protected class="kw">final int radiusY;
class="kw">protected class="kw">final int radiusXZ;
class="kw">protected class="kw">final BitSet chunks = new BitSet();
class="kw">protected class="kw">final class="kw">transient Vector3i vector = new Vector3i();
class="kw">public Wilderness() {
this(0, 0);
}
class="kw">public Wilderness(int var1, int var2) {
this.radiusY = var2;
this.radiusXZ = var1;
this.sizeY = 1 + 2 * this.radiusY;
this.sizeXZ = 1 + 2 * this.radiusXZ;
this.sizeXZ2 = this.sizeY * this.sizeXZ;
}
class="kw">public Wilderness(@Nonnull Wilderness var1) {
this(var1.radiusXZ, var1.radiusY);
this.generation = var1.generation;
this.x = var1.x;
this.y = var1.y;
this.z = var1.z;
this.chunkX = var1.chunkX;
this.chunkY = var1.chunkY;
this.chunkZ = var1.chunkZ;
this.chunks.or(var1.chunks);
this.vector.set(var1.vector);
}
class="kw">public int getX() {
class="kw">return this.x;
}
class="kw">public int getY() {
class="kw">return this.y;
}
class="kw">public int getZ() {
class="kw">return this.z;
}
class="kw">public int getChunkX() {
class="kw">return this.chunkX;
}
class="kw">public int getChunkY() {
class="kw">return this.chunkY;
}
class="kw">public int getChunkZ() {
class="kw">return this.chunkZ;
}
class="kw">public int begin() {
class="kw">return this.chunks.nextSetBit(0);
}
class="kw">public int next(int var1) {
class="kw">return this.chunks.nextSetBit(var1 + 1);
}
class="kw">public boolean empty() {
class="kw">return this.chunks.isEmpty();
}
class="kw">public int xFromIndex(int var1) {
class="kw">return var1 / this.sizeY % this.sizeXZ + this.chunkX - this.radiusXZ;
}
class="kw">public int yFromIndex(int var1) {
class="kw">return var1 % this.sizeY + this.chunkY - this.radiusY;
}
class="kw">public int zFromIndex(int var1) {
class="kw">return var1 / this.sizeXZ2 + this.chunkZ - this.radiusXZ;
}
class="kw">public boolean test(int var1, int var2, int var3) {
int var4 = ChunkUtil.chunkCoordinate(var1);
int var5 = ChunkUtil.chunkCoordinate(var2);
int var6 = ChunkUtil.chunkCoordinate(var3);
int var7 = this.index(var4, var5, var6);
class="kw">return var7 != -1 && this.chunks.get(var7);
}
class="kw">public void move(int var1, int var2, int var3, @Nonnull WildernessTracker var4) {
this.x = var1;
this.y = var2;
this.z = var3;
long var5 = var4.generation();
int var7 = ChunkUtil.chunkCoordinate(var1);
int var8 = ChunkUtil.chunkCoordinate(var2);
int var9 = ChunkUtil.chunkCoordinate(var3);
if (var5 != this.generation || var7 != this.chunkX || var8 != this.chunkY || var9 != this.chunkZ) {
this.chunkX = var7;
this.chunkY = var8;
this.chunkZ = var9;
this.generation = var5;
int var10 = var7 - this.radiusXZ;
int var11 = var8 - this.radiusY;
int var12 = var9 - this.radiusXZ;
int var13 = var7 + this.radiusXZ;
int var14 = var8 + this.radiusY;
int var15 = var9 + this.radiusXZ;
this.chunks.clear();
int var16 = var12;
int var17 = 0;
while (var16 <= var15) {
this.vector.z = var16;
for (int var18 = var10; var18 <= var13; var18++) {
this.vector.x = var18;
for (int var19 = var11; var19 <= var14; var17++) {
this.vector.y = var19;
this.chunks.set(var17, var4.isWildernessChunk(this.vector));
var19++;
}
}
var16++;
}
}
}
@Nullable
class="kw">public Wilderness clone() {
class="kw">return new Wilderness(this);
}
class="kw">protected int index(int var1, int var2, int var3) {
int var4 = var1 - this.chunkX + this.radiusXZ;
int var5 = var2 - this.chunkY + this.radiusY;
int var6 = var3 - this.chunkZ + this.radiusXZ;
class="kw">return var4 >= 0 && var4 < this.sizeXZ && var5 >= 0 && var5 < this.sizeY && var6 >= 0 && var6 < this.sizeXZ
? var5 + var4 * this.sizeY + var6 * this.sizeXZ2
: -1;
}
class="kw">public class="kw">static ComponentType<EntityStore, Wilderness> getComponentType() {
class="kw">return WildernessPlugin.get().getWildernessComponentType();
}
}