Remove technical limitation of ILayeredRenderer
This commit is contained in:
parent
32c2932a6a
commit
3c0bd56b0a
@ -78,8 +78,8 @@ fun main() {
|
|||||||
reader.skipBytes(1) // Foreground hue shift
|
reader.skipBytes(1) // Foreground hue shift
|
||||||
reader.skipBytes(1) // Foreground color variant
|
reader.skipBytes(1) // Foreground color variant
|
||||||
|
|
||||||
val modifier = reader.readShort()
|
val modifier = reader.readUnsignedShort()
|
||||||
val getModifier = Starbound.tileModifiersByIDAccess[modifier.toInt()]
|
val getModifier = Starbound.tileModifiersByIDAccess[modifier]
|
||||||
|
|
||||||
if (getModifier != null && getMat != null) {
|
if (getModifier != null && getMat != null) {
|
||||||
chunk.foreground[x, y]?.modifier = getModifier
|
chunk.foreground[x, y]?.modifier = getModifier
|
||||||
@ -98,8 +98,8 @@ fun main() {
|
|||||||
reader.skipBytes(1) // Background hue shift
|
reader.skipBytes(1) // Background hue shift
|
||||||
reader.skipBytes(1) // Background color variant
|
reader.skipBytes(1) // Background color variant
|
||||||
|
|
||||||
val modifier2 = reader.readShort()
|
val modifier2 = reader.readUnsignedShort()
|
||||||
val getModifier2 = Starbound.tileModifiersByIDAccess[modifier2.toInt()]
|
val getModifier2 = Starbound.tileModifiersByIDAccess[modifier2]
|
||||||
|
|
||||||
if (getModifier2 != null && getMat2 != null) {
|
if (getModifier2 != null && getMat2 != null) {
|
||||||
chunk.background[x, y]?.modifier = getModifier2
|
chunk.background[x, y]?.modifier = getModifier2
|
||||||
|
@ -252,7 +252,7 @@ class ClientChunk(world: ClientWorld, pos: ChunkPos) : Chunk<ClientWorld, Client
|
|||||||
|
|
||||||
override fun renderLayerFromStack(zPos: Int, stack: Matrix4fStack): Int {
|
override fun renderLayerFromStack(zPos: Int, stack: Matrix4fStack): Int {
|
||||||
if (layerQueue.isEmpty())
|
if (layerQueue.isEmpty())
|
||||||
return -1
|
return Int.MIN_VALUE
|
||||||
|
|
||||||
stack.push().translateWithMultiplication(x = origin.x * CHUNK_SIZEf, y = origin.y * CHUNK_SIZEf)
|
stack.push().translateWithMultiplication(x = origin.x * CHUNK_SIZEf, y = origin.y * CHUNK_SIZEf)
|
||||||
var pair = layerQueue.last()
|
var pair = layerQueue.last()
|
||||||
@ -264,7 +264,7 @@ class ClientChunk(world: ClientWorld, pos: ChunkPos) : Chunk<ClientWorld, Client
|
|||||||
|
|
||||||
if (layerQueue.isEmpty()) {
|
if (layerQueue.isEmpty()) {
|
||||||
stack.pop()
|
stack.pop()
|
||||||
return -1
|
return Int.MIN_VALUE
|
||||||
}
|
}
|
||||||
|
|
||||||
pair = layerQueue.last()
|
pair = layerQueue.last()
|
||||||
@ -276,7 +276,7 @@ class ClientChunk(world: ClientWorld, pos: ChunkPos) : Chunk<ClientWorld, Client
|
|||||||
|
|
||||||
override fun bottomMostZLevel(): Int {
|
override fun bottomMostZLevel(): Int {
|
||||||
if (layerQueue.isEmpty()) {
|
if (layerQueue.isEmpty()) {
|
||||||
return -1
|
return Int.MIN_VALUE
|
||||||
}
|
}
|
||||||
|
|
||||||
return layerQueue.last().second
|
return layerQueue.last().second
|
||||||
|
@ -19,7 +19,7 @@ interface ILayeredRenderer {
|
|||||||
*
|
*
|
||||||
* Возвращается zNew следующего слоя (такой, что [zPos] > zNew).
|
* Возвращается zNew следующего слоя (такой, что [zPos] > zNew).
|
||||||
*
|
*
|
||||||
* Если следующего слоя нет, вернуть -1, и данный объект
|
* Если следующего слоя нет, вернуть [Int.MIN_VALUE], и данный объект
|
||||||
* будет считаться отрисованным.
|
* будет считаться отрисованным.
|
||||||
*/
|
*/
|
||||||
fun renderLayerFromStack(zPos: Int, stack: Matrix4fStack): Int
|
fun renderLayerFromStack(zPos: Int, stack: Matrix4fStack): Int
|
||||||
@ -27,7 +27,7 @@ interface ILayeredRenderer {
|
|||||||
/**
|
/**
|
||||||
* Возвращает наибольшее zPos в данной стопке.
|
* Возвращает наибольшее zPos в данной стопке.
|
||||||
*
|
*
|
||||||
* Если стопка пуста, то необходимо вернуть -1.
|
* Если стопка пуста, то необходимо вернуть [Int.MIN_VALUE].
|
||||||
*
|
*
|
||||||
* В зависимости от сцены, которую необходимо отрисовать,
|
* В зависимости от сцены, которую необходимо отрисовать,
|
||||||
* [renderLayerFromStack] может быть вызван сразу с этим же значением,
|
* [renderLayerFromStack] может быть вызван сразу с этим же значением,
|
||||||
@ -62,7 +62,7 @@ fun renderLayeredList(transform: Matrix4fStack, potentialRenderers: List<ILayere
|
|||||||
|
|
||||||
renderCalls++
|
renderCalls++
|
||||||
|
|
||||||
if (newLevel <= -1) {
|
if (newLevel == Int.MIN_VALUE) {
|
||||||
renderers.removeAt(i)
|
renderers.removeAt(i)
|
||||||
} else {
|
} else {
|
||||||
newBottom = newBottom.coerceAtLeast(newLevel)
|
newBottom = newBottom.coerceAtLeast(newLevel)
|
||||||
|
Loading…
Reference in New Issue
Block a user