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