VoxelBufferView class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.engine.views
Файл: com/hypixel/hytale/builtin/hytalegenerator/engine/views/VoxelBufferView.java
implements: VoxelSpace<T>
Поля (26)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Bounds3i |
var2 |
|
int |
var2 |
|
Vector3i |
var2 |
|
Vector3i |
var3 |
|
int |
var3 |
|
int |
var3 |
|
VoxelBuffer |
var4 |
|
int |
var4 |
|
VoxelBuffer |
var4 |
|
int |
var4 |
|
int |
var4 |
|
VoxelBuffer |
var5 |
|
VoxelBuffer |
var5 |
|
int |
var5 |
|
int |
var5 |
|
VoxelBuffer |
var5 |
|
int |
var5 |
|
int |
var6 |
|
VoxelBuffer |
var6 |
|
int |
var6 |
|
Vector3i |
var6 |
|
int |
var6 |
|
int |
var7 |
|
int |
var7 |
|
Object |
var7 |
|
int |
var8 |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
UnsupportedOperationExceptionthrow new UnsupportedOperationException() |
public |
void |
copyFromvoid copyFrom(@Nonnull VoxelBufferView<T> var1) |
|
|
for for(var3.x = var2.min.x; var3.x < var2.max.x; var3.x++) |
|
|
for for(var3.y = var2.min.y; var3.y < var2.max.y; var3.y++) |
|
|
for for(var3.z = var2.min.z; var3.z < var2.max.z; var3.z++) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.engine.views;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.GridUtils;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.bufferbundle.BufferBundle;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.bufferbundle.buffers.VoxelBuffer;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.voxelspace.VoxelSpace;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3i;
class="kw">public class VoxelBufferView<T> class="kw">implements VoxelSpace<T> {
@Nonnull
class="kw">private class="kw">final Class<T> voxelType;
@Nonnull
class="kw">private class="kw">final BufferBundle.Access.View bufferAccess;
@Nonnull
class="kw">private class="kw">final Bounds3i bounds_voxelGrid;
@Nonnull
class="kw">private class="kw">final Vector3i size_voxelGrid;
class="kw">public VoxelBufferView(@Nonnull BufferBundle.Access.View var1, @Nonnull Class<T> var2) {
this.bufferAccess = var1;
this.voxelType = var2;
this.bounds_voxelGrid = var1.getBounds_bufferGrid();
GridUtils.toVoxelGrid_fromBufferGrid(this.bounds_voxelGrid);
this.size_voxelGrid = this.bounds_voxelGrid.getSize();
}
class="kw">public void copyFrom(@Nonnull VoxelBufferView<T> var1) {
assert var1.bounds_voxelGrid.contains(this.bounds_voxelGrid);
Bounds3i var2 = this.bufferAccess.getBounds_bufferGrid();
Vector3i var3 = new Vector3i();
for (var3.x = var2.min.x; var3.x < var2.max.x; var3.x++) {
for (var3.y = var2.min.y; var3.y < var2.max.y; var3.y++) {
for (var3.z = var2.min.z; var3.z < var2.max.z; var3.z++) {
VoxelBuffer var4 = var1.getBuffer_fromBufferGrid(var3);
VoxelBuffer var5 = this.getBuffer_fromBufferGrid(var3);
var5.reference(var4);
}
}
}
}
@Override
class="kw">public void set(T var1, int var2, int var3, int var4) {
assert this.bounds_voxelGrid.contains(var2, var3, var4);
VoxelBuffer var5 = this.getBuffer_fromVoxelGrid(var2, var3, var4);
int var6 = GridUtils.toXVoxelGridInsideBuffer_fromWorldGrid(var2);
int var7 = GridUtils.toYVoxelGridInsideBuffer_fromWorldGrid(var3);
int var8 = GridUtils.toZVoxelGridInsideBuffer_fromWorldGrid(var4);
var5.setVoxelContent(var6, var7, var8, var1);
}
@Override
class="kw">public void set(T var1, @Nonnull Vector3i var2) {
assert this.bounds_voxelGrid.contains(var2);
int var3 = var2.x;
int var4 = var2.y;
int var5 = var2.z;
VoxelBuffer var6 = this.getBuffer_fromVoxelGrid(var2);
GridUtils.toVoxelGridInsideBuffer_fromWorldGrid(var2);
var6.setVoxelContent(var2, var1);
var2.set(var3, var4, var5);
}
@Override
class="kw">public void setAll(T var1) {
throw new UnsupportedOperationException();
}
@Nullable
@Override
class="kw">public T get(int var1, int var2, int var3) {
assert this.bounds_voxelGrid.contains(var1, var2, var3);
VoxelBuffer var4 = this.getBuffer_fromVoxelGrid(var1, var2, var3);
int var5 = GridUtils.toXVoxelGridInsideBuffer_fromWorldGrid(var1);
int var6 = GridUtils.toYVoxelGridInsideBuffer_fromWorldGrid(var2);
int var7 = GridUtils.toZVoxelGridInsideBuffer_fromWorldGrid(var3);
class="kw">return var4.getVoxelContent(var5, var6, var7);
}
@Nullable
@Override
class="kw">public T get(@Nonnull Vector3i var1) {
assert this.bounds_voxelGrid.contains(var1);
int var2 = var1.x;
int var3 = var1.y;
int var4 = var1.z;
VoxelBuffer var5 = this.getBuffer_fromVoxelGrid(var1);
Vector3i var6 = var1;
GridUtils.toVoxelGridInsideBuffer_fromWorldGrid(var6);
Object var7 = var5.getVoxelContent(var6);
var1.set(var2, var3, var4);
class="kw">return var7;
}
@Nonnull
@Override
class="kw">public Bounds3i getBounds() {
class="kw">return this.bounds_voxelGrid;
}
@Nonnull
class="kw">private VoxelBuffer<T> getBuffer_fromVoxelGrid(int var1, int var2, int var3) {
int var4 = GridUtils.toBufferGrid_fromVoxelGrid(var1);
int var5 = GridUtils.toBufferGrid_fromVoxelGrid(var2);
int var6 = GridUtils.toBufferGrid_fromVoxelGrid(var3);
class="kw">return this.getBuffer_fromBufferGrid(var4, var5, var6);
}
@Nonnull
class="kw">private VoxelBuffer<T> getBuffer_fromVoxelGrid(@Nonnull Vector3i var1) {
Vector3i var2 = new Vector3i(var1);
GridUtils.toBufferGrid_fromVoxelGrid(var2);
class="kw">return this.getBuffer_fromBufferGrid(var2);
}
@Nonnull
class="kw">private VoxelBuffer<T> getBuffer_fromBufferGrid(int var1, int var2, int var3) {
class="kw">return (VoxelBuffer<T>)this.bufferAccess.getBuffer(var1, var2, var3).buffer();
}
@Nonnull
class="kw">private VoxelBuffer<T> getBuffer_fromBufferGrid(@Nonnull Vector3i var1) {
class="kw">return (VoxelBuffer<T>)this.bufferAccess.getBuffer(var1).buffer();
}
}