mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-15 10:25:06 -04:00
some fixes
This commit is contained in:
parent
ff2de678a1
commit
5f9058e44a
@ -24,6 +24,10 @@ object BlockPositionUtil {
|
||||
return hash shr 16
|
||||
}
|
||||
|
||||
inline fun assertPosition(condition: Boolean, message: String) {
|
||||
if (!DebugOptions.VERIFY_COORDINATES) return
|
||||
if (!condition) throw AssertionError("Position assert failed: $message")
|
||||
}
|
||||
inline fun assertPosition(condition: Boolean) {
|
||||
if (!DebugOptions.VERIFY_COORDINATES) return
|
||||
if (!condition) throw AssertionError("Position assert failed!")
|
||||
|
@ -40,7 +40,7 @@ value class InSectionPosition(
|
||||
|
||||
|
||||
inline fun plusX(): InSectionPosition {
|
||||
assertPosition(this.x < ProtocolDefinition.SECTION_MAX_X)
|
||||
assertPosition(this.x < ProtocolDefinition.SECTION_MAX_X, "x < max")
|
||||
return InSectionPosition(index + X * 1)
|
||||
}
|
||||
|
||||
@ -50,12 +50,12 @@ value class InSectionPosition(
|
||||
}
|
||||
|
||||
inline fun minusX(): InSectionPosition {
|
||||
assertPosition(this.x > 0)
|
||||
assertPosition(this.x > 0, "x > 0")
|
||||
return InSectionPosition(index - X * 1)
|
||||
}
|
||||
|
||||
inline fun plusY(): InSectionPosition {
|
||||
assertPosition(this.y < ProtocolDefinition.SECTION_MAX_Y)
|
||||
assertPosition(this.y < ProtocolDefinition.SECTION_MAX_Y, "y < max")
|
||||
return InSectionPosition(index + Y * 1)
|
||||
}
|
||||
|
||||
@ -65,12 +65,12 @@ value class InSectionPosition(
|
||||
}
|
||||
|
||||
inline fun minusY(): InSectionPosition {
|
||||
assertPosition(this.y > 0)
|
||||
assertPosition(this.y > 0, "y > 0")
|
||||
return InSectionPosition(index - Y * 1)
|
||||
}
|
||||
|
||||
inline fun plusZ(): InSectionPosition {
|
||||
assertPosition(this.z < ProtocolDefinition.SECTION_MAX_Z)
|
||||
assertPosition(this.z < ProtocolDefinition.SECTION_MAX_Z, "z < max")
|
||||
return InSectionPosition(index + Z * 1)
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ value class InSectionPosition(
|
||||
}
|
||||
|
||||
inline fun minusZ(): InSectionPosition {
|
||||
assertPosition(this.z > 0)
|
||||
assertPosition(this.z > 0, "z > 0")
|
||||
return InSectionPosition(index - Z * 1)
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ object AmbientOcclusionUtil {
|
||||
|
||||
val EMPTY = IntArray(LEVELS) { LEVEL_NONE }
|
||||
|
||||
fun ChunkSection?.trace(x: Int, y: Int, z: Int): Int {
|
||||
fun ChunkSection?.trace(x: Int, y: Int, z: Int): Int { // TODO: use packed and direction
|
||||
if (this == null) return 0
|
||||
var x = x
|
||||
var y = y
|
||||
@ -163,7 +163,7 @@ object AmbientOcclusionUtil {
|
||||
}
|
||||
|
||||
fun applyWest(section: ChunkSection, position: InSectionPosition, ao: IntArray): IntArray {
|
||||
if (position.z == 0) {
|
||||
if (position.x == 0) {
|
||||
return setX(section.neighbours?.get(O_WEST), position.with(x = ProtocolDefinition.SECTION_MAX_X), true, ao)
|
||||
} else {
|
||||
return setX(section, position.minusX(), false, ao)
|
||||
@ -171,7 +171,7 @@ object AmbientOcclusionUtil {
|
||||
}
|
||||
|
||||
fun applyEast(section: ChunkSection, position: InSectionPosition, ao: IntArray): IntArray {
|
||||
if (position.z == ProtocolDefinition.SECTION_MAX_X) {
|
||||
if (position.x == ProtocolDefinition.SECTION_MAX_X) {
|
||||
return setX(section.neighbours?.get(O_EAST), position.with(x = 0), true, ao)
|
||||
} else {
|
||||
return setX(section, position.plusX(), true, ao)
|
||||
|
@ -28,7 +28,7 @@ class CloudLayer(
|
||||
val index: Int,
|
||||
var height: IntRange,
|
||||
) {
|
||||
private var position = ChunkPosition(Int.MIN_VALUE, Int.MIN_VALUE)
|
||||
private var position = ChunkPosition(-ChunkPosition.MAX_X, -ChunkPosition.MAX_Z)
|
||||
private val arrays: Array<CloudArray> = arrayOfNulls<CloudArray?>(3 * 3).unsafeCast()
|
||||
private var offset = 0.0f
|
||||
var movement = true
|
||||
|
Loading…
x
Reference in New Issue
Block a user