IChunkBounds interface
Пакет: com.hypixel.hytale.server.worldgen.util.bounds
Файл: com/hypixel/hytale/server/worldgen/util/bounds/IChunkBounds.java
Методы (20)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
default |
double |
fractionXdouble fractionX(double var1) |
default |
double |
fractionZdouble fractionZ(double var1) |
default |
int |
getHighBoundXint getHighBoundX(@Nonnull PrefabRotation var1) |
abstract |
int |
getHighBoundXint getHighBoundX() |
default |
int |
getHighBoundZint getHighBoundZ(@Nonnull PrefabRotation var1) |
abstract |
int |
getHighBoundZint getHighBoundZ() |
default |
int |
getHighChunkXint getHighChunkX() |
default |
int |
getHighChunkZint getHighChunkZ() |
default |
int |
getLowBoundXint getLowBoundX(@Nonnull PrefabRotation var1) |
abstract |
int |
getLowBoundXint getLowBoundX() |
default |
int |
getLowBoundZint getLowBoundZ(@Nonnull PrefabRotation var1) |
abstract |
int |
getLowBoundZint getLowBoundZ() |
default |
int |
getLowChunkXint getLowChunkX() |
default |
int |
getLowChunkZint getLowChunkZ() |
static |
int |
getRandomOffsetint getRandomOffset(int var0, int var1, @Nonnull Random var2) |
default |
boolean |
intersectsChunkboolean intersectsChunk(long var1) |
default |
boolean |
intersectsChunkboolean intersectsChunk(int var1, int var2) |
default |
boolean |
isValidboolean isValid() |
default |
int |
randomXint randomX(@Nonnull Random var1) |
default |
int |
randomZint randomZ(@Nonnull Random var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.util.bounds;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.server.core.prefab.PrefabRotation;
class="kw">import java.util.Random;
class="kw">import javax.annotation.Nonnull;
class="kw">public class="kw">interface IChunkBounds {
int getLowBoundX();
int getLowBoundZ();
int getHighBoundX();
int getHighBoundZ();
class="kw">default int getLowBoundX(@Nonnull PrefabRotation var1) {
class="kw">return Math.min(var1.getX(this.getLowBoundX(), this.getLowBoundZ()), var1.getX(this.getHighBoundX(), this.getHighBoundZ()));
}
class="kw">default int getLowBoundZ(@Nonnull PrefabRotation var1) {
class="kw">return Math.min(var1.getZ(this.getLowBoundX(), this.getLowBoundZ()), var1.getZ(this.getHighBoundX(), this.getHighBoundZ()));
}
class="kw">default int getHighBoundX(@Nonnull PrefabRotation var1) {
class="kw">return Math.max(var1.getX(this.getLowBoundX(), this.getLowBoundZ()), var1.getX(this.getHighBoundX(), this.getHighBoundZ()));
}
class="kw">default int getHighBoundZ(@Nonnull PrefabRotation var1) {
class="kw">return Math.max(var1.getZ(this.getLowBoundX(), this.getLowBoundZ()), var1.getZ(this.getHighBoundX(), this.getHighBoundZ()));
}
class="kw">default boolean intersectsChunk(long var1) {
class="kw">return this.intersectsChunk(ChunkUtil.xOfChunkIndex(var1), ChunkUtil.zOfChunkIndex(var1));
}
class="kw">default boolean intersectsChunk(int var1, int var2) {
class="kw">return ChunkUtil.maxBlock(var1) >= this.getLowBoundX()
&& ChunkUtil.minBlock(var1) <= this.getHighBoundX()
&& ChunkUtil.maxBlock(var2) >= this.getLowBoundZ()
&& ChunkUtil.minBlock(var2) <= this.getHighBoundZ();
}
class="kw">default int randomX(@Nonnull Random var1) {
class="kw">return getRandomOffset(this.getLowBoundX(), this.getHighBoundX(), var1);
}
class="kw">default int randomZ(@Nonnull Random var1) {
class="kw">return getRandomOffset(this.getLowBoundZ(), this.getHighBoundZ(), var1);
}
class="kw">default double fractionX(double var1) {
class="kw">return (this.getHighBoundX() - this.getLowBoundX()) * var1 + this.getLowBoundX();
}
class="kw">default double fractionZ(double var1) {
class="kw">return (this.getHighBoundZ() - this.getLowBoundZ()) * var1 + this.getLowBoundZ();
}
class="kw">default int getLowChunkX() {
class="kw">return ChunkUtil.chunkCoordinate(this.getLowBoundX());
}
class="kw">default int getLowChunkZ() {
class="kw">return ChunkUtil.chunkCoordinate(this.getLowBoundZ());
}
class="kw">default int getHighChunkX() {
class="kw">return ChunkUtil.chunkCoordinate(this.getHighBoundX());
}
class="kw">default int getHighChunkZ() {
class="kw">return ChunkUtil.chunkCoordinate(this.getHighBoundZ());
}
class="kw">default boolean isValid() {
class="kw">return this.getHighBoundX() > this.getLowBoundX() && this.getHighBoundZ() > this.getLowBoundZ();
}
class="kw">static int getRandomOffset(int var0, int var1, @Nonnull Random var2) {
assert var1 > var0 : "Invalid bounds: " + var0 + " to " + var1;
class="kw">return var1 <= var0 ? var0 : var2.nextInt(var1 - var0) + var0;
}
}