PixelBufferView class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.engine.views
Файл: com/hypixel/hytale/builtin/hytalegenerator/engine/views/PixelBufferView.java
implements: VoxelSpace<T>
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
Y_LEVEL_BUFFER_GRID |
|
PixelBuffer |
var2 |
|
Vector3i |
var2 |
|
PixelBuffer |
var3 |
|
Vector3i |
var3 |
|
Vector3i |
var4 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
UnsupportedOperationExceptionthrow new UnsupportedOperationException() |
Исходный код
Показать/скрыть
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.PixelBuffer;
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 PixelBufferView<T> class="kw">implements VoxelSpace<T> {
class="kw">public class="kw">static class="kw">final int Y_LEVEL_BUFFER_GRID = 0;
class="kw">public class="kw">static class="kw">final int Y_LEVEL_VOXEL_GRID = 0;
@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 PixelBufferView(@Nonnull BufferBundle.Access.View var1, @Nonnull Class<T> var2) {
assert var1.getBounds_bufferGrid().min.y <= 0 && var1.getBounds_bufferGrid().max.y > 0;
this.bufferAccess = var1;
this.voxelType = var2;
this.bounds_voxelGrid = var1.getBounds_bufferGrid();
GridUtils.toVoxelGrid_fromBufferGrid(this.bounds_voxelGrid);
this.bounds_voxelGrid.min.y = 0;
this.bounds_voxelGrid.max.y = 1;
this.size_voxelGrid = this.bounds_voxelGrid.getSize();
}
@Override
class="kw">public void set(T var1, int var2, int var3, int var4) {
this.set(var1, new Vector3i(var2, var3, var4));
}
@Override
class="kw">public void set(T var1, @Nonnull Vector3i var2) {
assert this.bounds_voxelGrid.contains(var2);
PixelBuffer var3 = this.getBuffer(var2);
Vector3i var4 = new Vector3i(var2);
GridUtils.toVoxelGridInsideBuffer_fromWorldGrid(var4);
var3.setPixelContent(var4, var1);
}
@Override
class="kw">public void setAll(T var1) {
throw new UnsupportedOperationException();
}
@Nullable
@Override
class="kw">public T get(int var1, int var2, int var3) {
class="kw">return this.get(new Vector3i(var1, var2, var3));
}
@Nullable
@Override
class="kw">public T get(@Nonnull Vector3i var1) {
assert this.bounds_voxelGrid.contains(var1);
PixelBuffer var2 = this.getBuffer(var1);
Vector3i var3 = new Vector3i(var1);
GridUtils.toVoxelGridInsideBuffer_fromWorldGrid(var3);
class="kw">return var2.getPixelContent(var3);
}
@Nonnull
class="kw">private PixelBuffer<T> getBuffer(@Nonnull Vector3i var1) {
assert this.bounds_voxelGrid.contains(var1);
Vector3i var2 = new Vector3i(var1);
GridUtils.toBufferGrid_fromVoxelGrid(var2);
class="kw">return (PixelBuffer<T>)this.bufferAccess.getBuffer(var2).buffer();
}
@Nonnull
@Override
class="kw">public Bounds3i getBounds() {
class="kw">return this.bounds_voxelGrid;
}
}