EnvironmentStage class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.engine.stages
Файл: com/hypixel/hytale/builtin/hytalegenerator/engine/stages/EnvironmentStage.java
implements: Stage
Поля (12)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Integer |
var10 |
|
Biome |
var11 |
|
EnvironmentProvider |
var12 |
|
int |
var13 |
|
BufferBundle.Access.View |
var2 |
|
PixelBufferView |
var3 |
|
BufferBundle.Access.View |
var4 |
|
VoxelBufferView |
var5 |
|
Bounds3i |
var6 |
|
Vector3i |
var7 |
|
EnvironmentProvider.Context |
var8 |
|
Registry |
var9 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(var7.x = var6.min.x; var7.x < var6.max.x; var7.x++) |
|
|
for for(var7.z = var6.min.z; var7.z < var6.max.z; var7.z++) |
|
|
for for(var7.y = var6.min.y; var7.y < var6.max.y; var7.y++) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.engine.stages;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.GridUtils;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.Registry;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.biome.Biome;
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.CountedPixelBuffer;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.bufferbundle.buffers.VoxelBuffer;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.bufferbundle.buffers.type.BufferType;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.bufferbundle.buffers.type.ParametrizedBufferType;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.views.PixelBufferView;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.views.VoxelBufferView;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.environmentproviders.EnvironmentProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.workerindexer.WorkerIndexer;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.worldstructure.WorldStructure;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;
class="kw">public class EnvironmentStage class="kw">implements Stage {
@Nonnull
class="kw">public class="kw">static class="kw">final Class<CountedPixelBuffer> biomeBufferClass = CountedPixelBuffer.class;
@Nonnull
class="kw">public class="kw">static class="kw">final Class<Integer> biomeTypeClass = Integer.class;
@Nonnull
class="kw">public class="kw">static class="kw">final Class<VoxelBuffer> environmentBufferClass = VoxelBuffer.class;
@Nonnull
class="kw">public class="kw">static class="kw">final Class<Integer> environmentClass = Integer.class;
@Nonnull
class="kw">private class="kw">final ParametrizedBufferType biomeInputBufferType;
@Nonnull
class="kw">private class="kw">final ParametrizedBufferType environmentOutputBufferType;
@Nonnull
class="kw">private class="kw">final Bounds3i inputBounds_bufferGrid;
@Nonnull
class="kw">private class="kw">final String stageName;
@Nonnull
class="kw">private class="kw">final WorkerIndexer.Data<WorldStructure> worldStructure_workerData;
class="kw">public EnvironmentStage(
@Nonnull String var1, @Nonnull ParametrizedBufferType var2, @Nonnull ParametrizedBufferType var3, @Nonnull WorkerIndexer.Data<WorldStructure> var4
) {
assert var2.isValidType(biomeBufferClass, biomeTypeClass);
assert var3.isValidType(environmentBufferClass, environmentClass);
this.biomeInputBufferType = var2;
this.environmentOutputBufferType = var3;
this.stageName = var1;
this.worldStructure_workerData = var4;
this.inputBounds_bufferGrid = GridUtils.createUnitBounds3i(Vector3iUtil.ZERO);
}
@Override
class="kw">public void run(@Nonnull Stage.Context var1) {
BufferBundle.Access.View var2 = var1.bufferAccess.get(this.biomeInputBufferType);
PixelBufferView var3 = new PixelBufferView<>(var2, biomeTypeClass);
BufferBundle.Access.View var4 = var1.bufferAccess.get(this.environmentOutputBufferType);
VoxelBufferView var5 = new VoxelBufferView<>(var4, environmentClass);
Bounds3i var6 = var5.getBounds();
Vector3i var7 = new Vector3i(var6.min);
EnvironmentProvider.Context var8 = new EnvironmentProvider.Context(var7);
Registry var9 = this.worldStructure_workerData.get(var1.workerId).getBiomeRegistry();
for (var7.x = var6.min.x; var7.x < var6.max.x; var7.x++) {
for (var7.z = var6.min.z; var7.z < var6.max.z; var7.z++) {
Integer var10 = var3.get(var7.x, 0, var7.z);
assert var10 != null;
Biome var11 = var9.getObject(var10);
assert var11 != null;
EnvironmentProvider var12 = var11.getEnvironmentProvider();
for (var7.y = var6.min.y; var7.y < var6.max.y; var7.y++) {
int var13 = var12.getValue(var8);
var5.set(var13, var7);
}
}
}
}
@Nonnull
@Override
class="kw">public Map<BufferType, Bounds3i> getInputTypesAndBounds_bufferGrid() {
class="kw">return Map.of(this.biomeInputBufferType, this.inputBounds_bufferGrid);
}
@Nonnull
@Override
class="kw">public List<BufferType> getOutputTypes() {
class="kw">return List.of(this.environmentOutputBufferType);
}
@Nonnull
@Override
class="kw">public String getName() {
class="kw">return this.stageName;
}
}