mirror of
https://gitlab.com/2009scape/tools/rs09-thanos-tool.git
synced 2026-08-01 14:39:20 -06:00
36 lines
No EOL
1 KiB
Kotlin
36 lines
No EOL
1 KiB
Kotlin
package cacheops.cache.definition.data
|
|
|
|
import java.awt.image.BufferedImage
|
|
|
|
@Suppress("ArrayInDataClass")
|
|
data class IndexedSprite(
|
|
var offsetX: Int = 0,
|
|
var offsetY: Int = 0,
|
|
var width: Int = 0,
|
|
var height: Int = 0,
|
|
var deltaHeight: Int = 0,
|
|
var deltaWidth: Int = 0,
|
|
var alpha: ByteArray? = null
|
|
) {
|
|
lateinit var raster: ByteArray
|
|
lateinit var palette: IntArray
|
|
|
|
fun toBufferedImage(): BufferedImage {
|
|
val bi = BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB)
|
|
for (x in 0 until width) {
|
|
for (y in 0 until height) {
|
|
val i = x + y * width
|
|
if (alpha == null) {
|
|
val colour = palette[raster[i].toInt() and 255]
|
|
if (colour != 0) {
|
|
bi.setRGB(x, y, -16777216 or colour)
|
|
}
|
|
} else {
|
|
bi.setRGB(x, y, palette[raster[i].toInt() and 255] or (alpha!![i].toInt() shl 24))
|
|
}
|
|
}
|
|
}
|
|
return bi
|
|
}
|
|
|
|
} |