ArrayVoxelSpace class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.voxelspace
Файл: com/hypixel/hytale/builtin/hytalegenerator/voxelspace/ArrayVoxelSpace.java
implements: VoxelSpace<T>
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Vector3i |
var2 |
|
int |
var3 |
|
int |
var4 |
|
int |
var5 |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var2 = this.bounds.min.x; var2 < this.bounds.max.x; var2++) |
|
|
for for(int var3 = this.bounds.min.y; var3 < this.bounds.max.y; var3++) |
|
|
for for(int var4 = this.bounds.min.z; var4 < this.bounds.max.z; var4++) |
public |
void |
offsetvoid offset(@Nonnull Vector3i var1) |
public |
void |
offsetOppositevoid offsetOpposite(@Nonnull Vector3i var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.voxelspace;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.GridUtils;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3i;
class="kw">public class ArrayVoxelSpace<T> class="kw">implements VoxelSpace<T> {
@Nonnull
class="kw">private class="kw">final Bounds3i bounds;
@Nonnull
class="kw">private class="kw">final T[] contents;
class="kw">public ArrayVoxelSpace(@Nonnull Bounds3i var1) {
this.bounds = var1.clone();
Vector3i var2 = var1.getSize();
int var3 = var2.x * var2.y * var2.z;
this.contents = (T[])(new Object[var3]);
}
class="kw">public void offset(@Nonnull Vector3i var1) {
this.bounds.offset(var1);
}
class="kw">public void offsetOpposite(@Nonnull Vector3i var1) {
this.bounds.offsetOpposite(var1);
}
@Override
class="kw">public void set(T var1, int var2, int var3, int var4) {
assert this.bounds.contains(var2, var3, var4);
int var5 = GridUtils.toIndexFromPositionYXZ(var2, var3, var4, this.bounds);
this.contents[var5] = var1;
}
@Override
class="kw">public void set(T var1, @Nonnull Vector3i var2) {
this.set(var1, var2.x, var2.y, var2.z);
}
@Override
class="kw">public void setAll(T var1) {
for (int var2 = this.bounds.min.x; var2 < this.bounds.max.x; var2++) {
for (int var3 = this.bounds.min.y; var3 < this.bounds.max.y; var3++) {
for (int var4 = this.bounds.min.z; var4 < this.bounds.max.z; var4++) {
this.set(var1, var2, var3, var4);
}
}
}
}
@Override
class="kw">public T get(int var1, int var2, int var3) {
assert this.bounds.contains(var1, var2, var3);
int var4 = GridUtils.toIndexFromPositionYXZ(var1, var2, var3, this.bounds);
class="kw">return this.contents[var4];
}
@Nullable
@Override
class="kw">public T get(@Nonnull Vector3i var1) {
class="kw">return this.get(var1.x, var1.y, var1.z);
}
@Nonnull
@Override
class="kw">public Bounds3i getBounds() {
class="kw">return this.bounds;
}
}