AbstractCaveNodeShape class
Пакет: com.hypixel.hytale.server.worldgen.cave.shape
Файл: com/hypixel/hytale/server/worldgen/cave/shape/AbstractCaveNodeShape.java
implements: CaveNodeShape
Поля (43)
| Модификаторы | Тип | Имя |
|---|---|---|
|
IWorldBounds |
var10 |
|
boolean |
var11 |
|
int |
var12 |
|
int |
var13 |
|
int |
var14 |
|
int |
var15 |
|
int |
var16 |
|
int |
var17 |
|
int |
var18 |
|
int |
var19 |
|
int |
var20 |
|
int |
var21 |
|
int |
var22 |
|
int |
var24 |
|
int |
var26 |
|
int |
var27 |
|
|
var27 |
|
boolean |
var28 |
|
|
var28 |
|
int |
var29 |
|
int |
var30 |
|
|
var30 |
|
int |
var31 |
|
|
var31 |
|
|
var31 |
|
int |
var32 |
|
|
var32 |
|
int |
var34 |
|
int |
var35 |
|
boolean |
var36 |
|
BlockFluidEntry |
var37 |
|
CaveNodeType.CaveNodeCoverEntry.Entry |
var38 |
|
int |
var39 |
|
int |
var40 |
|
|
var40 |
|
|
var40 |
|
CaveNodeType.CaveNodeCoverEntry[] |
var41 |
|
BlockFluidEntry |
var43 |
|
BlockFluidEntry |
var44 |
|
GeneratedBlockChunk |
var6 |
|
BlockTypeAssetMap |
var7 |
|
CaveType |
var8 |
|
CaveNodeType |
var9 |
Методы (13)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var23 = var17; var23 <= var20; var23++) |
|
|
for for(int var25 = var19; var25 <= var22; var25++) |
|
|
for for(int var33 = var18; var33 <= var27; var33++) |
|
|
for for(CaveNodeType.CaveNodeCoverEntry var47 : var41) |
|
|
if if(var11) |
|
|
if if(var27 >= var29) |
|
|
if if(var33 < var30) |
|
|
if if(var33 > var32) |
|
|
if if(var36) |
|
|
if if(var33 < var40) |
|
|
if if(var33 > var31) |
|
|
if if(var33 < var40) |
|
|
if if(var33 > var31) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.cave.shape;
class="kw">import com.hypixel.hytale.assetstore.map.BlockTypeAssetMap;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.universe.world.worldgen.GeneratedBlockChunk;
class="kw">import com.hypixel.hytale.server.worldgen.cave.Cave;
class="kw">import com.hypixel.hytale.server.worldgen.cave.CaveNodeType;
class="kw">import com.hypixel.hytale.server.worldgen.cave.CaveType;
class="kw">import com.hypixel.hytale.server.worldgen.cave.element.CaveNode;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.ChunkGeneratorExecution;
class="kw">import com.hypixel.hytale.server.worldgen.util.BlockFluidEntry;
class="kw">import com.hypixel.hytale.server.worldgen.util.bounds.IWorldBounds;
class="kw">import java.util.Random;
class="kw">import javax.annotation.Nonnull;
class="kw">public class="kw">abstract class AbstractCaveNodeShape class="kw">implements CaveNodeShape {
class="kw">public AbstractCaveNodeShape() {
}
@Override
class="kw">public void populateChunk(int var1, @Nonnull ChunkGeneratorExecution var2, @Nonnull Cave var3, @Nonnull CaveNode var4, @Nonnull Random var5) {
GeneratedBlockChunk var6 = var2.getChunk();
BlockTypeAssetMap var7 = BlockType.getAssetMap();
CaveType var8 = var3.getCaveType();
CaveNodeType var9 = var4.getCaveNodeType();
IWorldBounds var10 = this.getBounds();
boolean var11 = var3.getCaveType().isSurfaceLimited();
int var12 = var4.getCaveNodeType().hasEnvironment() ? var4.getCaveNodeType().getEnvironment() : var8.getEnvironment();
int var13 = ChunkUtil.minBlock(var2.getX());
int var14 = ChunkUtil.minBlock(var2.getZ());
int var15 = ChunkUtil.maxBlock(var2.getX());
int var16 = ChunkUtil.maxBlock(var2.getZ());
int var17 = Math.max(var13, var10.getLowBoundX());
int var18 = var10.getLowBoundY();
int var19 = Math.max(var14, var10.getLowBoundZ());
int var20 = Math.min(var15, var10.getHighBoundX());
int var21 = var10.getHighBoundY();
int var22 = Math.min(var16, var10.getHighBoundZ());
for (int var23 = var17; var23 <= var20; var23++) {
int var24 = var23 - var13;
for (int var25 = var19; var25 <= var22; var25++) {
int var26 = var25 - var14;
int var27 = var21;
boolean var28 = false;
if (var11) {
int var29 = var6.getHeight(var24, var26);
if (var27 >= var29) {
var27 = var29;
var28 = true;
}
}
int var40 = Integer.MAX_VALUE;
int var30 = Integer.MAX_VALUE;
int var31 = Integer.MIN_VALUE;
int var32 = Integer.MIN_VALUE;
for (int var33 = var18; var33 <= var27; var33++) {
if (this.shouldReplace(var1, var23, var25, var33)) {
if (var33 < var30) {
var30 = var33;
}
if (var33 > var32) {
var32 = var33;
}
int var34 = var2.getBlock(var24, var33, var26);
int var35 = var2.getFluid(var24, var33, var26);
boolean var36 = !var11 || var34 != 0;
if (var36) {
BlockFluidEntry var37 = CaveNodeShapeUtils.getFillingBlock(var8, var9, var33, var5);
if (var8.getBlockMask().eval(var34, var35, var37.blockId(), var37.fluidId())) {
if (var2.setBlock(var24, var33, var26, (byte)6, var37, var12)) {
if (var33 < var40) {
var40 = var33;
}
if (var33 > var31) {
var31 = var33;
}
}
if (var2.setFluid(var24, var33, var26, (byte)6, var37.fluidId(), var12)) {
if (var33 < var40) {
var40 = var33;
}
if (var33 > var31) {
var31 = var33;
}
}
}
}
}
}
CaveNodeType.CaveNodeCoverEntry[] var41 = var9.getCovers();
for (CaveNodeType.CaveNodeCoverEntry var47 : var41) {
CaveNodeType.CaveNodeCoverEntry.Entry var38 = var47.get(var5);
int var39 = CaveNodeShapeUtils.getCoverHeight(var40, var30, var31, var32, var28, var47, var38);
if (var39 >= 0
&& var47.getDensityCondition().eval(var1 + var4.getSeedOffset(), var23, var25)
&& var47.getHeightCondition().eval(var1, var23, var25, var39, var5)
&& var47.getMapCondition().eval(var1, var23, var25)
&& CaveNodeShapeUtils.isCoverMatchingParent(var24, var26, var39, var2, var47)) {
var2.setBlock(var24, var39, var26, (byte)5, var38.getEntry(), var12);
var2.setFluid(var24, var39, var26, (byte)5, var38.getEntry().fluidId(), var12);
}
}
if (CaveNodeShapeUtils.invalidateCover(var24, var40 - 1, var26, CaveNodeType.CaveNodeCoverType.CEILING, var2, var7)) {
BlockFluidEntry var43 = CaveNodeShapeUtils.getFillingBlock(var8, var9, var40 - 1, var5);
var2.overrideBlock(var24, var40 - 1, var26, (byte)6, var43);
var2.overrideFluid(var24, var40 - 1, var26, (byte)6, var43.fluidId());
}
if (CaveNodeShapeUtils.invalidateCover(var24, var31 + 1, var26, CaveNodeType.CaveNodeCoverType.FLOOR, var2, var7)) {
BlockFluidEntry var44 = CaveNodeShapeUtils.getFillingBlock(var8, var9, var31 + 1, var5);
var2.overrideBlock(var24, var31 + 1, var26, (byte)6, var44);
var2.overrideFluid(var24, var31 + 1, var26, (byte)6, var44.fluidId());
}
}
}
}
}