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();
   }
}