EntityBufferView class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.engine.views

Файл: com/hypixel/hytale/builtin/hytalegenerator/engine/views/EntityBufferView.java

implements: EntityFunnel

Поля (11)

МодификаторыТипИмя
Vector3i var2
Bounds3i var2
Vector3d var2
EntityBuffer var3
Vector3i var3
TransformComponent var3
EntityBuffer var4
Vector3d var4
EntityBuffer var5
Vector3i var5
EntityBuffer var6

Методы (8)

МодификаторыВозвратСигнатура
public void copyFromvoid copyFrom(@Nonnull EntityBufferView var1)
for for(var2.x = this.bounds_bufferGrid.min.x; var2.x < this.bounds_bufferGrid.max.x; var2.x++)
for for(var2.z = this.bounds_bufferGrid.min.z; var2.z < this.bounds_bufferGrid.max.z; var2.z++)
for for(var2.y = this.bounds_bufferGrid.min.y; var2.y < this.bounds_bufferGrid.max.y; var2.y++)
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++)
public void forEachvoid forEach(@Nonnull Consumer<EntityPlacementData> var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.engine.views;

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.EntityPlacementData;
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.EntityBuffer;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.entityfunnel.EntityFunnel;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import java.util.function.Consumer;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class EntityBufferView class="kw">implements EntityFunnel {
   @Nonnull
   class="kw">private class="kw">final BufferBundle.Access.View access;
   @Nonnull
   class="kw">private class="kw">final Bounds3i bounds_voxelGrid;
   @Nonnull
   class="kw">private class="kw">final Bounds3i bounds_bufferGrid;

   class="kw">public EntityBufferView(@Nonnull BufferBundle.Access.View var1) {
      this.access = var1;
      this.bounds_bufferGrid = var1.getBounds_bufferGrid();
      this.bounds_voxelGrid = var1.getBounds_bufferGrid();
      GridUtils.toVoxelGrid_fromBufferGrid(this.bounds_voxelGrid);
   }

   class="kw">public void forEach(@Nonnull Consumer<EntityPlacementData> var1) {
      Vector3i var2 = new Vector3i(this.bounds_voxelGrid.min);

      for (var2.x = this.bounds_bufferGrid.min.x; var2.x < this.bounds_bufferGrid.max.x; var2.x++) {
         for (var2.z = this.bounds_bufferGrid.min.z; var2.z < this.bounds_bufferGrid.max.z; var2.z++) {
            for (var2.y = this.bounds_bufferGrid.min.y; var2.y < this.bounds_bufferGrid.max.y; var2.y++) {
               EntityBuffer var3 = this.getBuffer_fromBufferGrid(var2);
               var3.forEach(var1);
            }
         }
      }
   }

   @Nonnull
   class="kw">private EntityBuffer getBuffer_fromBufferGrid(@Nonnull Vector3i var1) {
      class="kw">return (EntityBuffer)this.access.getBuffer(var1).buffer();
   }

   class="kw">public void copyFrom(@Nonnull EntityBufferView var1) {
      assert var1.bounds_voxelGrid.contains(this.bounds_voxelGrid);
      Bounds3i var2 = this.access.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++) {
               EntityBuffer var4 = var1.getBuffer_fromBufferGrid(var3);
               EntityBuffer var5 = this.getBuffer_fromBufferGrid(var3);
               var5.copyFrom(var4);
            }
         }
      }
   }

   @Override
   class="kw">public void addEntity(@Nonnull EntityPlacementData var1) {
      Vector3d var2 = Vector3iUtil.toVector3d(var1.getOffset());
      TransformComponent var3 = var1.getEntityHolder().getComponent(TransformComponent.getComponentType());
      assert var3 != null;
      Vector3d var4 = var3.getPosition();
      var2.add(var4);
      Vector3i var5 = GridUtils.toIntegerGrid_fromDecimalGrid(var2);
      assert this.bounds_voxelGrid.contains(var5);
      GridUtils.toBufferGrid_fromVoxelGrid(var5);
      EntityBuffer var6 = (EntityBuffer)this.access.getBuffer(var5).buffer();
      var6.addEntity(var1);
   }

   @Nonnull
   @Override
   class="kw">public Bounds3i getBounds() {
      class="kw">return this.bounds_voxelGrid;
   }
}