GridUtils class
Пакет: com.hypixel.hytale.builtin.hytalegenerator
Файл: com/hypixel/hytale/builtin/hytalegenerator/GridUtils.java
Поля (26)
| Модификаторы | Тип | Имя |
|---|---|---|
|
return var0 >> |
3 |
final |
int |
BUFFER_COUNT_IN_CHUNK_Y |
|
Vector3i |
var1 |
|
Vector3i |
var1 |
|
Vector3i |
var1 |
|
int |
var1 |
|
Vector3i |
var1 |
|
Vector3i |
var2 |
|
Vector3i |
var2 |
|
Vector3i |
var2 |
|
Vector3i |
var2 |
|
int |
var2 |
|
int |
var2 |
|
Vector3i |
var3 |
|
Vector3i |
var3 |
|
Vector3i |
var3 |
|
Vector3i |
var3 |
|
int |
var3 |
|
Vector3i |
var4 |
|
Vector3i |
var4 |
|
Vector3i |
var4 |
|
int |
var4 |
|
int |
var4 |
|
int |
var5 |
|
int |
var5 |
|
int |
var6 |
Методы (22)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
Bounds3ireturn new Bounds3i(var3, var4) |
abstract |
return new |
Bounds3ireturn new Bounds3i() |
abstract |
return new |
Bounds3ireturn new Bounds3i(var1, var2) |
abstract |
return new |
Bounds3ireturn new Bounds3i(var2, var3) |
|
|
if if(var0.max.x % VoxelBuffer.SIZE.x == 0) |
|
|
if if(var0.max.y % VoxelBuffer.SIZE.y == 0) |
|
|
if if(var0.max.z % VoxelBuffer.SIZE.z == 0) |
static |
void |
setBoundsYToWorldHeight_bufferGridvoid setBoundsYToWorldHeight_bufferGrid(@Nonnull Bounds3i var0) |
static |
void |
setBoundsYToWorldHeight_voxelGridvoid setBoundsYToWorldHeight_voxelGrid(@Nonnull Bounds3i var0) |
static |
int |
toBufferDistanceInclusive_fromVoxelDistanceint toBufferDistanceInclusive_fromVoxelDistance(int var0) |
static |
int |
toBufferGrid_fromVoxelGridint toBufferGrid_fromVoxelGrid(int var0) |
static |
void |
toBufferGrid_fromVoxelGridvoid toBufferGrid_fromVoxelGrid(@Nonnull Vector3i var0) |
static |
void |
toBufferGrid_fromVoxelGridOverlapvoid toBufferGrid_fromVoxelGridOverlap(@Nonnull Bounds3i var0) |
static |
int |
toIndexFromPositionYXZint toIndexFromPositionYXZ(int var0, int var1, int var2, @Nonnull Bounds3i var3) |
static |
int |
toIndexFromPositionYXZint toIndexFromPositionYXZ(@Nonnull Vector3i var0, @Nonnull Bounds3i var1) |
static |
void |
toVoxelGridInsideBuffer_fromWorldGridvoid toVoxelGridInsideBuffer_fromWorldGrid(@Nonnull Vector3i var0) |
static |
void |
toVoxelGrid_fromBufferGridvoid toVoxelGrid_fromBufferGrid(@Nonnull Bounds3i var0) |
static |
void |
toVoxelGrid_fromBufferGridvoid toVoxelGrid_fromBufferGrid(@Nonnull Vector3i var0) |
static |
void |
toVoxelPosition_fromChunkPositionvoid toVoxelPosition_fromChunkPosition(@Nonnull Vector3i var0) |
static |
int |
toXVoxelGridInsideBuffer_fromWorldGridint toXVoxelGridInsideBuffer_fromWorldGrid(int var0) |
static |
int |
toYVoxelGridInsideBuffer_fromWorldGridint toYVoxelGridInsideBuffer_fromWorldGrid(int var0) |
static |
int |
toZVoxelGridInsideBuffer_fromWorldGridint toZVoxelGridInsideBuffer_fromWorldGrid(int var0) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.bufferbundle.buffers.VoxelBuffer;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.math.Calculator;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;
class="kw">import org.joml.Vector3ic;
class="kw">public class GridUtils {
class="kw">public class="kw">static class="kw">final int BUFFER_COUNT_IN_CHUNK_Y = 320 / VoxelBuffer.SIZE.y;
class="kw">public GridUtils() {
}
class="kw">public class="kw">static void toBufferGrid_fromVoxelGridOverlap(@Nonnull Bounds3i var0) {
assert var0.isCorrect();
VectorUtil.bitShiftRight(3, var0.min);
if (var0.max.x % VoxelBuffer.SIZE.x == 0) {
var0.max.x--;
}
if (var0.max.y % VoxelBuffer.SIZE.y == 0) {
var0.max.y--;
}
if (var0.max.z % VoxelBuffer.SIZE.z == 0) {
var0.max.z--;
}
var0.max.x >>= 3;
var0.max.y >>= 3;
var0.max.z >>= 3;
}
@Nonnull
class="kw">public class="kw">static Bounds3i createColumnBounds_voxelGrid(@Nonnull Vector3i var0, int var1, int var2) {
assert var1 <= var2;
Vector3i var3 = new Vector3i(var0);
VectorUtil.bitShiftLeft(3, var3);
Vector3i var4 = new Vector3i(var3).add(VoxelBuffer.SIZE);
var3.y = var1;
var4.y = var2;
class="kw">return new Bounds3i(var3, var4);
}
@Nonnull
class="kw">public class="kw">static Bounds3i createBufferBoundsInclusive_fromVoxelBounds(@Nonnull Bounds3i var0) {
assert var0.isCorrect();
if (var0.isZeroVolume()) {
class="kw">return new Bounds3i();
}
Vector3i var1 = new Vector3i(var0.min);
Vector3i var2 = new Vector3i(var0.max);
var1.x = Calculator.floor(var1.x, VoxelBuffer.SIZE.x);
var1.x >>= 3;
var1.y = Calculator.floor(var1.y, VoxelBuffer.SIZE.y);
var1.y >>= 3;
var1.z = Calculator.floor(var1.z, VoxelBuffer.SIZE.z);
var1.z >>= 3;
var2.x--;
var2.x = Calculator.ceil(var2.x, VoxelBuffer.SIZE.x);
var2.x >>= 3;
var2.x++;
var2.y--;
var2.y = Calculator.ceil(var2.y, VoxelBuffer.SIZE.y);
var2.y >>= 3;
var2.y++;
var2.z--;
var2.z = Calculator.ceil(var2.z, VoxelBuffer.SIZE.z);
var2.z >>= 3;
var2.z++;
class="kw">return new Bounds3i(var1, var2);
}
@Nonnull
class="kw">public class="kw">static Bounds3i createColumnBounds_bufferGrid(@Nonnull Vector3i var0, int var1, int var2) {
assert var1 <= var2;
Vector3i var3 = new Vector3i(var0);
Vector3i var4 = new Vector3i(var3).add(Vector3iUtil.ALL_ONES);
var3.y = var1;
var4.y = var2;
class="kw">return new Bounds3i(var3, var4);
}
@Nonnull
class="kw">public class="kw">static Bounds3i createChunkBounds_voxelGrid(int var0, int var1) {
Vector3i var2 = new Vector3i(var0 << 5, 0, var1 << 5);
Vector3i var3 = new Vector3i(var2).add(32, 320, 32);
class="kw">return new Bounds3i(var2, var3);
}
@Nonnull
class="kw">public class="kw">static Bounds3i createUnitBounds3i(@Nonnull Vector3ic var0) {
class="kw">return new Bounds3i(var0, new Vector3i(var0).add(Vector3iUtil.ALL_ONES));
}
@Nonnull
class="kw">public class="kw">static Bounds3i createBounds_fromRadius_originVoxelInclusive(int var0) {
Vector3i var1 = new Vector3i(-var0, -var0, -var0);
Vector3i var2 = new Vector3i(var0 + 1, var0 + 1, var0 + 1);
class="kw">return new Bounds3i(var1, var2);
}
@Nonnull
class="kw">public class="kw">static Bounds3i createBounds_fromVector_originVoxelInclusive(@Nonnull Vector3i var0) {
Vector3i var1 = new Vector3i(var0).negate();
Vector3i var2 = new Vector3i(var0).add(Vector3iUtil.ALL_ONES);
class="kw">return new Bounds3i(var1, var2);
}
@Nonnull
class="kw">public class="kw">static Bounds3i createChunkBounds_bufferGrid(int var0, int var1) {
int var2 = 2;
Vector3i var3 = new Vector3i(var0 << 2, 0, var1 << 2);
Vector3i var4 = new Vector3i(var0 + 1 << 2, 40, var1 + 1 << 2);
class="kw">return new Bounds3i(var3, var4);
}
class="kw">public class="kw">static void toVoxelGrid_fromBufferGrid(@Nonnull Bounds3i var0) {
assert var0.isCorrect();
VectorUtil.bitShiftLeft(3, var0.min);
VectorUtil.bitShiftLeft(3, var0.max);
}
class="kw">public class="kw">static void toVoxelGrid_fromBufferGrid(@Nonnull Vector3i var0) {
VectorUtil.bitShiftLeft(3, var0);
}
class="kw">public class="kw">static int toBufferGrid_fromVoxelGrid(int var0) {
class="kw">return var0 >> 3;
}
class="kw">public class="kw">static void toBufferGrid_fromVoxelGrid(@Nonnull Vector3i var0) {
VectorUtil.bitShiftRight(3, var0);
}
class="kw">public class="kw">static int toBufferDistanceInclusive_fromVoxelDistance(int var0) {
int var1 = var0 >> 3;
class="kw">return Calculator.wrap(var0, VoxelBuffer.SIZE.x) == 0 ? var1 : var1 + 1;
}
@Nonnull
class="kw">public class="kw">static Vector3i toIntegerGrid_fromDecimalGrid(@Nonnull Vector3d var0) {
Vector3i var1 = new Vector3i();
var1.x = Calculator.toIntFloored(var0.x);
var1.y = Calculator.toIntFloored(var0.y);
var1.z = Calculator.toIntFloored(var0.z);
class="kw">return var1;
}
class="kw">public class="kw">static int toXVoxelGridInsideBuffer_fromWorldGrid(int var0) {
class="kw">return Calculator.wrap(var0, VoxelBuffer.SIZE.x);
}
class="kw">public class="kw">static int toYVoxelGridInsideBuffer_fromWorldGrid(int var0) {
class="kw">return Calculator.wrap(var0, VoxelBuffer.SIZE.y);
}
class="kw">public class="kw">static int toZVoxelGridInsideBuffer_fromWorldGrid(int var0) {
class="kw">return Calculator.wrap(var0, VoxelBuffer.SIZE.z);
}
class="kw">public class="kw">static void toVoxelGridInsideBuffer_fromWorldGrid(@Nonnull Vector3i var0) {
var0.x = Calculator.wrap(var0.x, VoxelBuffer.SIZE.x);
var0.y = Calculator.wrap(var0.y, VoxelBuffer.SIZE.y);
var0.z = Calculator.wrap(var0.z, VoxelBuffer.SIZE.z);
}
class="kw">public class="kw">static int toIndexFromPositionYXZ(int var0, int var1, int var2, @Nonnull Bounds3i var3) {
assert var3.contains(var0, var1, var2);
var0 -= var3.min.x;
var1 -= var3.min.y;
var2 -= var3.min.z;
int var4 = var3.max.x - var3.min.x;
int var5 = var3.max.y - var3.min.y;
class="kw">return var1 + var0 * var5 + var2 * var5 * var4;
}
class="kw">public class="kw">static int toIndexFromPositionYXZ(@Nonnull Vector3i var0, @Nonnull Bounds3i var1) {
assert var1.contains(var0);
int var2 = var0.x - var1.min.x;
int var3 = var0.y - var1.min.y;
int var4 = var0.z - var1.min.z;
int var5 = var1.max.x - var1.min.x;
int var6 = var1.max.y - var1.min.y;
class="kw">return var3 + var2 * var6 + var4 * var6 * var5;
}
class="kw">public class="kw">static void setBoundsYToWorldHeight_bufferGrid(@Nonnull Bounds3i var0) {
assert var0.isCorrect();
var0.min.y = 0;
var0.max.y = 40;
}
class="kw">public class="kw">static void setBoundsYToWorldHeight_voxelGrid(@Nonnull Bounds3i var0) {
assert var0.isCorrect();
var0.min.y = 0;
var0.max.y = 320;
}
class="kw">public class="kw">static void toVoxelPosition_fromChunkPosition(@Nonnull Vector3i var0) {
var0.x <<= 5;
var0.z <<= 5;
}
}