mirror of
https://gitlab.com/2009scape/rt4-client.git
synced 2025-12-11 09:00:26 -07:00
KondoKit v1.0 Plugin
This commit is contained in:
parent
8462065bcf
commit
80960edaeb
20 changed files with 133161 additions and 77 deletions
|
|
@ -0,0 +1,112 @@
|
|||
package KondoKit
|
||||
|
||||
import rt4.GlIndexedSprite
|
||||
import rt4.GlSprite
|
||||
import rt4.SoftwareIndexedSprite
|
||||
import rt4.SoftwareSprite
|
||||
import java.awt.image.BufferedImage
|
||||
|
||||
object SpriteToBufferedImage {
|
||||
/**
|
||||
* Converts a SoftwareSprite back into a BufferedImage.
|
||||
*
|
||||
* @param sprite The sprite to be converted.
|
||||
* @return The BufferedImage created from the sprite.
|
||||
*/
|
||||
fun convertToBufferedImage(sprite: SoftwareSprite): BufferedImage {
|
||||
val width = sprite.width
|
||||
val height = sprite.height
|
||||
val pixels = sprite.pixels
|
||||
|
||||
// Create a BufferedImage with ARGB color model
|
||||
val image = BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB)
|
||||
|
||||
// Manually set pixels and print the pixel data
|
||||
for (y in 0 until height) {
|
||||
for (x in 0 until width) {
|
||||
val pixel = pixels[y * width + x]
|
||||
image.setRGB(x, y, pixel)
|
||||
}
|
||||
}
|
||||
return image
|
||||
}
|
||||
|
||||
fun convertToBufferedImage(sprite: SoftwareIndexedSprite): BufferedImage {
|
||||
val width = sprite.width
|
||||
val height = sprite.height
|
||||
val pixels = sprite.pixels // byte[]
|
||||
val palette = sprite.pallet
|
||||
|
||||
// Create a BufferedImage with ARGB color model
|
||||
val image = BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB)
|
||||
|
||||
// Manually set pixels using the palette
|
||||
for (y in 0 until height) {
|
||||
for (x in 0 until width) {
|
||||
// Get the index from the sprite's pixel array
|
||||
val index = pixels[y * width + x].toInt() and 0xFF
|
||||
// Map the index to a color in the palette
|
||||
val color = palette[index]
|
||||
// Set the ARGB color in the BufferedImage
|
||||
image.setRGB(x, y, color)
|
||||
}
|
||||
}
|
||||
return image
|
||||
}
|
||||
|
||||
fun convertToBufferedImage(sprite: GlIndexedSprite): BufferedImage {
|
||||
val width = sprite.width
|
||||
val height = sprite.height
|
||||
val pixels = sprite.pixels // byte[]
|
||||
val palette = sprite.pallet
|
||||
|
||||
// Create a BufferedImage with ARGB color model
|
||||
val image = BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB)
|
||||
|
||||
// Manually set pixels using the palette
|
||||
for (y in 0 until height) {
|
||||
for (x in 0 until width) {
|
||||
// Get the index from the sprite's pixel array
|
||||
val index = pixels[y * width + x].toInt() and 0xFF
|
||||
// Map the index to a color in the palette
|
||||
val color = palette[index]
|
||||
// Set the ARGB color in the BufferedImage
|
||||
image.setRGB(x, y, color)
|
||||
}
|
||||
}
|
||||
return image
|
||||
}
|
||||
|
||||
|
||||
fun convertToBufferedImage(sprite: GlSprite): BufferedImage {
|
||||
val width = sprite.width
|
||||
val height = sprite.height
|
||||
val pixels = sprite.pixels
|
||||
|
||||
// Create a BufferedImage with ARGB color model
|
||||
val image = BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB)
|
||||
|
||||
if(pixels == null) {
|
||||
return image
|
||||
}
|
||||
|
||||
// Manually set pixels and print the pixel data
|
||||
for (y in 0 until height) {
|
||||
for (x in 0 until width) {
|
||||
val pixel = pixels[y * width + x]
|
||||
image.setRGB(x, y, pixel)
|
||||
}
|
||||
}
|
||||
return image
|
||||
}
|
||||
|
||||
fun getBufferedImageFromSprite(sprite: Any?) : BufferedImage {
|
||||
return when(sprite){
|
||||
is GlSprite -> convertToBufferedImage(sprite)
|
||||
is SoftwareSprite -> convertToBufferedImage(sprite)
|
||||
is SoftwareIndexedSprite -> convertToBufferedImage(sprite)
|
||||
is GlIndexedSprite -> convertToBufferedImage(sprite)
|
||||
else -> BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue