DynamicLayer class
Пакет: com.hypixel.hytale.server.worldgen.container
Файл: com/hypixel/hytale/server/worldgen/container/LayerContainer.java
extends: LayerContainer.Layer<LayerContainer.DynamicLayerEntry>
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
protected final IDoubleCoordinateSupplier |
offset |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public int |
getOffsetpublic int getOffset(int var1, int var2, int var3) |
abstract |
|
super super(var1, var2, var3) |
|
public String |
toStringpublic String toString() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.container;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.procedurallib.condition.ICoordinateCondition;
class="kw">import com.hypixel.hytale.procedurallib.supplier.IDoubleCoordinateSupplier;
class="kw">import com.hypixel.hytale.server.worldgen.util.BlockFluidEntry;
class="kw">import com.hypixel.hytale.server.worldgen.util.ListPool;
class="kw">import com.hypixel.hytale.server.worldgen.util.NoiseBlockArray;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class LayerContainer {
class="kw">public class="kw">static class="kw">final ListPool<LayerContainer.StaticLayer> STATIC_POOL = new ListPool<>(10, new LayerContainer.StaticLayer[0]);
class="kw">public class="kw">static class="kw">final ListPool<LayerContainer.DynamicLayer> DYNAMIC_POOL = new ListPool<>(10, new LayerContainer.DynamicLayer[0]);
@Nonnull
class="kw">protected class="kw">final BlockFluidEntry filling;
class="kw">protected class="kw">final int fillingEnvironment;
class="kw">protected class="kw">final LayerContainer.StaticLayer[] staticLayers;
class="kw">protected class="kw">final LayerContainer.DynamicLayer[] dynamicLayers;
class="kw">public LayerContainer(int var1, int var2, LayerContainer.StaticLayer[] var3, LayerContainer.DynamicLayer[] var4) {
this.filling = new BlockFluidEntry(var1, 0, 0);
this.fillingEnvironment = var2;
this.staticLayers = var3;
this.dynamicLayers = var4;
}
class="kw">public BlockFluidEntry getFilling() {
class="kw">return this.filling;
}
class="kw">public int getFillingEnvironment() {
class="kw">return this.fillingEnvironment;
}
class="kw">public LayerContainer.StaticLayer[] getStaticLayers() {
class="kw">return this.staticLayers;
}
class="kw">public LayerContainer.DynamicLayer[] getDynamicLayers() {
class="kw">return this.dynamicLayers;
}
class="kw">public BlockFluidEntry getTopBlockAt(int var1, int var2, int var3) {
for (LayerContainer.DynamicLayer var7 : this.dynamicLayers) {
LayerContainer.DynamicLayerEntry var8 = var7.getActiveEntry(var1, var2, var3);
if (var8 != null) {
class="kw">return var8.blockArray.getTopBlockAt(var1, var2, var3);
}
}
class="kw">return this.filling;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "LayerContainer{filling="
+ this.filling
+ ", staticLayers="
+ Arrays.toString(this.staticLayers)
+ ", dynamicLayers="
+ Arrays.toString(this.dynamicLayers)
+ "}";
}
class="kw">public class="kw">static class DynamicLayer class="kw">extends LayerContainer.Layer<LayerContainer.DynamicLayerEntry> {
class="kw">protected class="kw">final IDoubleCoordinateSupplier offset;
class="kw">public DynamicLayer(LayerContainer.DynamicLayerEntry[] var1, ICoordinateCondition var2, int var3, IDoubleCoordinateSupplier var4) {
super(var1, var2, var3);
this.offset = var4;
}
class="kw">public int getOffset(int var1, int var2, int var3) {
class="kw">return MathUtil.floor(this.offset.get(var1, var2, var3));
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "DynamicLayer{entries=" + Arrays.toString(this.entries) + ", offset=" + this.offset + "}";
}
}
class="kw">public class="kw">static class DynamicLayerEntry class="kw">extends LayerContainer.LayerEntry {
class="kw">public DynamicLayerEntry(NoiseBlockArray var1, ICoordinateCondition var2) {
super(var1, var2);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "DynamicLayerEntry{blockArray=" + this.blockArray + ", mapCondition=" + this.mapCondition + "}";
}
}
class="kw">public class="kw">static class Layer<T class="kw">extends LayerContainer.LayerEntry> {
class="kw">protected class="kw">final T[] entries;
class="kw">protected class="kw">final ICoordinateCondition mapCondition;
class="kw">protected class="kw">final int environmentId;
class="kw">public Layer(T[] var1, ICoordinateCondition var2, int var3) {
this.entries = var1;
this.mapCondition = var2;
this.environmentId = var3;
}
class="kw">public int getEnvironmentId() {
class="kw">return this.environmentId;
}
@Nullable
class="kw">public T getActiveEntry(int var1, int var2, int var3) {
if (!this.mapCondition.eval(var1, var2, var3)) {
class="kw">return null;
}
for (LayerContainer.LayerEntry var7 : this.entries) {
if (var7.isActive(var1, var2, var3)) {
class="kw">return var7;
}
}
class="kw">return null;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "Layer{entries=" + Arrays.toString(this.entries) + "}";
}
}
class="kw">public class="kw">abstract class="kw">static class LayerEntry {
class="kw">protected class="kw">final NoiseBlockArray blockArray;
class="kw">protected class="kw">final ICoordinateCondition mapCondition;
class="kw">public LayerEntry(NoiseBlockArray var1, ICoordinateCondition var2) {
this.blockArray = var1;
this.mapCondition = var2;
}
class="kw">public boolean isActive(int var1, int var2, int var3) {
class="kw">return this.mapCondition.eval(var1, var2, var3);
}
class="kw">public NoiseBlockArray getBlockArray() {
class="kw">return this.blockArray;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "LayerEntry{blockArray=" + this.blockArray + ", mapCondition=" + this.mapCondition + "}";
}
}
class="kw">public class="kw">static class StaticLayer class="kw">extends LayerContainer.Layer<LayerContainer.StaticLayerEntry> {
class="kw">public StaticLayer(LayerContainer.StaticLayerEntry[] var1, ICoordinateCondition var2, int var3) {
super(var1, var2, var3);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "StaticLayer{entries=" + Arrays.toString(this.entries) + "}";
}
}
class="kw">public class="kw">static class StaticLayerEntry class="kw">extends LayerContainer.LayerEntry {
class="kw">protected class="kw">final IDoubleCoordinateSupplier min;
class="kw">protected class="kw">final IDoubleCoordinateSupplier max;
class="kw">public StaticLayerEntry(NoiseBlockArray var1, ICoordinateCondition var2, IDoubleCoordinateSupplier var3, IDoubleCoordinateSupplier var4) {
super(var1, var2);
this.min = var3;
this.max = var4;
}
class="kw">public int getMinInt(int var1, int var2, int var3) {
class="kw">return MathUtil.floor(this.getMinValue(var1, var2, var3));
}
class="kw">public double getMinValue(int var1, int var2, int var3) {
class="kw">return this.min.get(var1, var2, var3);
}
class="kw">public int getMaxInt(int var1, int var2, int var3) {
class="kw">return MathUtil.floor(this.getMaxValue(var1, var2, var3));
}
class="kw">public double getMaxValue(int var1, int var2, int var3) {
class="kw">return this.max.get(var1, var2, var3);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "StaticLayerEntry{blockArray=" + this.blockArray + ", mapCondition=" + this.mapCondition + ", min=" + this.min + ", max=" + this.max + "}";
}
}
}