Little bit of rewriting
This commit is contained in:
@@ -1,141 +1,102 @@
|
|||||||
package net.runelite.cache.definitions;
|
package net.runelite.cache.definitions;
|
||||||
|
|
||||||
import net.runelite.cache.io.InputStream;
|
import net.runelite.cache.definitions.loaders.SpriteLoader;
|
||||||
|
|
||||||
/**
|
public class SpriteDefinition
|
||||||
* Created by Allen Kinzalow on 3/15/2015.
|
{
|
||||||
*/
|
private SpriteLoader loader;
|
||||||
public class SpriteDefinition extends Definition {
|
private int offsetX;
|
||||||
|
private int offsetY;
|
||||||
|
private int width;
|
||||||
|
private int height;
|
||||||
|
private byte[] pixels;
|
||||||
|
private int maxWidth;
|
||||||
|
private int maxHeight;
|
||||||
|
|
||||||
int offsetX;
|
public SpriteDefinition(SpriteLoader loader)
|
||||||
int offsetY;
|
{
|
||||||
int width;
|
this.loader = loader;
|
||||||
int height;
|
}
|
||||||
int[] palette;
|
|
||||||
byte[] pixels;
|
|
||||||
int maxWidth;
|
|
||||||
int maxHeight;
|
|
||||||
|
|
||||||
public static int paletteChildCount;
|
public SpriteLoader getLoader()
|
||||||
public static int[] loadedSpriteOffsetX;
|
{
|
||||||
public static int[] loadedSpriteOffsetY;
|
return loader;
|
||||||
public static int[] loadedSpriteWidth;
|
}
|
||||||
public static int[] loadedSpriteHeight;
|
|
||||||
public static byte[][] loadedSpritePixels;
|
|
||||||
public static int[] loadedPalette;
|
|
||||||
public static int loadedSpriteMaxWidth;
|
|
||||||
public static int loadedSpriteMaxHeight;
|
|
||||||
|
|
||||||
public SpriteDefinition(int definitionID) {
|
public void setLoader(SpriteLoader loader)
|
||||||
super(definitionID);
|
{
|
||||||
}
|
this.loader = loader;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
public int getOffsetX()
|
||||||
public void decode(InputStream stream) {
|
{
|
||||||
stream.setOffset(stream.getLength() - 2);
|
return offsetX;
|
||||||
paletteChildCount = stream.readUnsignedShort();
|
}
|
||||||
loadedSpriteOffsetX = new int[paletteChildCount ];
|
|
||||||
loadedSpriteOffsetY = new int[paletteChildCount];
|
|
||||||
loadedSpriteWidth = new int[paletteChildCount];
|
|
||||||
loadedSpriteHeight = new int[paletteChildCount];
|
|
||||||
loadedSpritePixels = new byte[paletteChildCount][];
|
|
||||||
stream.setOffset(stream.getLength() - 7 - paletteChildCount * 8);
|
|
||||||
loadedSpriteMaxWidth = stream.readUnsignedShort();
|
|
||||||
loadedSpriteMaxHeight = stream.readUnsignedShort();
|
|
||||||
int var3 = (stream.readUnsignedByte() & 255) + 1;
|
|
||||||
|
|
||||||
int spriteIndex;
|
public void setOffsetX(int offsetX)
|
||||||
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
{
|
||||||
loadedSpriteOffsetX[spriteIndex] = stream.readUnsignedShort();
|
this.offsetX = offsetX;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
public int getOffsetY()
|
||||||
loadedSpriteOffsetY[spriteIndex] = stream.readUnsignedShort();
|
{
|
||||||
}
|
return offsetY;
|
||||||
|
}
|
||||||
|
|
||||||
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
public void setOffsetY(int offsetY)
|
||||||
loadedSpriteWidth[spriteIndex] = stream.readUnsignedShort();
|
{
|
||||||
}
|
this.offsetY = offsetY;
|
||||||
|
}
|
||||||
|
|
||||||
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
public int getWidth()
|
||||||
loadedSpriteHeight[spriteIndex] = stream.readUnsignedShort();
|
{
|
||||||
}
|
return width;
|
||||||
|
}
|
||||||
|
|
||||||
stream.setOffset(stream.getLength() - 7 - paletteChildCount * 8 - (var3 - 1) * 3);
|
public void setWidth(int width)
|
||||||
loadedPalette = new int[var3];
|
{
|
||||||
|
this.width = width;
|
||||||
|
}
|
||||||
|
|
||||||
for(spriteIndex = 1; spriteIndex < var3; ++spriteIndex) {
|
public int getHeight()
|
||||||
loadedPalette[spriteIndex] = stream.read24BitInt();
|
{
|
||||||
if(0 == loadedPalette[spriteIndex]) {
|
return height;
|
||||||
loadedPalette[spriteIndex] = 1;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stream.setOffset(0);
|
public void setHeight(int height)
|
||||||
|
{
|
||||||
|
this.height = height;
|
||||||
|
}
|
||||||
|
|
||||||
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
public byte[] getPixels()
|
||||||
int width = loadedSpriteWidth[spriteIndex];
|
{
|
||||||
int height = loadedSpriteHeight[spriteIndex];
|
return pixels;
|
||||||
int dimmension = width * height;
|
}
|
||||||
byte[] loadPixels = new byte[dimmension];
|
|
||||||
loadedSpritePixels[spriteIndex] = loadPixels;
|
|
||||||
int var4 = stream.readUnsignedByte();
|
|
||||||
int var5;
|
|
||||||
if(var4 == 0) {
|
|
||||||
for(var5 = 0; var5 < dimmension; ++var5) {
|
|
||||||
loadPixels[var5] = (byte)stream.readByte();
|
|
||||||
}
|
|
||||||
} else if(1 == var4) {
|
|
||||||
for(var5 = 0; var5 < width; ++var5) {
|
|
||||||
for(int var8 = 0; var8 < height; ++var8) {
|
|
||||||
loadPixels[width * var8 + var5] = (byte)stream.readByte();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SpriteDefinition getLastLoadedPaletteSprite() {
|
public void setPixels(byte[] pixels)
|
||||||
SpriteDefinition paletteSprite = new SpriteDefinition(0);
|
{
|
||||||
paletteSprite.maxWidth = loadedSpriteMaxWidth;
|
this.pixels = pixels;
|
||||||
paletteSprite.maxHeight = loadedSpriteMaxHeight;
|
}
|
||||||
paletteSprite.offsetX = loadedSpriteOffsetX[0];
|
|
||||||
paletteSprite.offsetY = loadedSpriteOffsetY[0];
|
|
||||||
paletteSprite.width = loadedSpriteWidth[0];
|
|
||||||
paletteSprite.height = loadedSpriteHeight[0];
|
|
||||||
paletteSprite.palette = loadedPalette;
|
|
||||||
paletteSprite.pixels = loadedSpritePixels[0];
|
|
||||||
resetLastPaletteValues();
|
|
||||||
return paletteSprite;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void resetLastPaletteValues() {
|
public int getMaxWidth()
|
||||||
loadedSpriteOffsetX = null;
|
{
|
||||||
loadedSpriteOffsetY = null;
|
return maxWidth;
|
||||||
loadedSpriteWidth = null;
|
}
|
||||||
loadedSpriteHeight = null;
|
|
||||||
loadedPalette = null;
|
|
||||||
loadedSpritePixels = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SpriteDefinition[] loadPaletteSpriteSet() {
|
public void setMaxWidth(int maxWidth)
|
||||||
SpriteDefinition[] palettes = new SpriteDefinition[paletteChildCount];
|
{
|
||||||
for (int paletteIndex = 0; paletteIndex < paletteChildCount; ++paletteIndex) {
|
this.maxWidth = maxWidth;
|
||||||
SpriteDefinition palette = palettes[paletteIndex] = new SpriteDefinition(0);
|
}
|
||||||
palette.maxWidth = loadedSpriteMaxWidth;
|
|
||||||
palette.maxHeight = loadedSpriteMaxHeight;
|
public int getMaxHeight()
|
||||||
palette.offsetX = loadedSpriteOffsetX[paletteIndex];
|
{
|
||||||
palette.offsetY = loadedSpriteOffsetY[paletteIndex];
|
return maxHeight;
|
||||||
palette.width = loadedSpriteWidth[paletteIndex];
|
}
|
||||||
palette.height = loadedSpriteHeight[paletteIndex];
|
|
||||||
palette.palette = loadedPalette;
|
public void setMaxHeight(int maxHeight)
|
||||||
palette.pixels = loadedSpritePixels[paletteIndex];
|
{
|
||||||
}
|
this.maxHeight = maxHeight;
|
||||||
|
}
|
||||||
|
|
||||||
resetLastPaletteValues();
|
|
||||||
return palettes;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void decodeValues(int opcode, InputStream stream) { }
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,141 @@
|
|||||||
package net.runelite.cache.definitions.loaders;
|
package net.runelite.cache.definitions.loaders;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import net.runelite.cache.definitions.SpriteDefinition;
|
||||||
|
import net.runelite.cache.io.InputStream;
|
||||||
|
|
||||||
public class SpriteLoader
|
public class SpriteLoader
|
||||||
{
|
{
|
||||||
fff
|
private SpriteDefinition[] sprites;
|
||||||
|
//private List<SpriteDefinition> sprites = new HashSet<>();
|
||||||
|
// public int paletteChildCount;
|
||||||
|
// public int[] loadedSpriteOffsetX;
|
||||||
|
// public int[] loadedSpriteOffsetY;
|
||||||
|
// public int[] loadedSpriteWidth;
|
||||||
|
// public int[] loadedSpriteHeight;
|
||||||
|
// public byte[][] loadedSpritePixels;
|
||||||
|
public int[] loadedPalette;
|
||||||
|
public int loadedSpriteMaxWidth;
|
||||||
|
public int loadedSpriteMaxHeight;
|
||||||
|
|
||||||
|
//@Override
|
||||||
|
public void decode(InputStream stream)
|
||||||
|
{
|
||||||
|
stream.setOffset(stream.getLength() - 2);
|
||||||
|
int paletteChildCount = stream.readUnsignedShort();
|
||||||
|
sprites = new SpriteDefinition[paletteChildCount];
|
||||||
|
for (int i = 0; i < paletteChildCount; ++i)
|
||||||
|
sprites[i] = new SpriteDefinition(this);
|
||||||
|
//loadedSpriteOffsetX = new int[paletteChildCount ];
|
||||||
|
//loadedSpriteOffsetY = new int[paletteChildCount];
|
||||||
|
//loadedSpriteWidth = new int[paletteChildCount];
|
||||||
|
//loadedSpriteHeight = new int[paletteChildCount];
|
||||||
|
//loadedSpritePixels = new byte[paletteChildCount][];
|
||||||
|
stream.setOffset(stream.getLength() - 7 - paletteChildCount * 8);
|
||||||
|
loadedSpriteMaxWidth = stream.readUnsignedShort();
|
||||||
|
loadedSpriteMaxHeight = stream.readUnsignedShort();
|
||||||
|
int var3 = (stream.readUnsignedByte() & 255) + 1;
|
||||||
|
|
||||||
|
int spriteIndex;
|
||||||
|
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
||||||
|
sprites[spriteIndex].setOffsetX(stream.readUnsignedShort());
|
||||||
|
}
|
||||||
|
|
||||||
|
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
||||||
|
sprites[spriteIndex].setOffsetY(stream.readUnsignedShort());
|
||||||
|
}
|
||||||
|
|
||||||
|
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
||||||
|
sprites[spriteIndex].setWidth(stream.readUnsignedShort());
|
||||||
|
}
|
||||||
|
|
||||||
|
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
||||||
|
sprites[spriteIndex].setHeight(stream.readUnsignedShort());
|
||||||
|
}
|
||||||
|
|
||||||
|
stream.setOffset(stream.getLength() - 7 - paletteChildCount * 8 - (var3 - 1) * 3);
|
||||||
|
loadedPalette = new int[var3];
|
||||||
|
|
||||||
|
for(spriteIndex = 1; spriteIndex < var3; ++spriteIndex) {
|
||||||
|
loadedPalette[spriteIndex] = stream.read24BitInt();
|
||||||
|
if(0 == loadedPalette[spriteIndex]) {
|
||||||
|
loadedPalette[spriteIndex] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stream.setOffset(0);
|
||||||
|
|
||||||
|
for(spriteIndex = 0; spriteIndex < paletteChildCount; ++spriteIndex) {
|
||||||
|
SpriteDefinition def = sprites[spriteIndex];
|
||||||
|
int width = def.getWidth();
|
||||||
|
int height = def.getHeight();
|
||||||
|
int dimmension = width * height;
|
||||||
|
byte[] loadPixels = new byte[dimmension];
|
||||||
|
//loadedSpritePixels[spriteIndex] = loadPixels;
|
||||||
|
int var4 = stream.readUnsignedByte();
|
||||||
|
int var5;
|
||||||
|
if(var4 == 0) {
|
||||||
|
for(var5 = 0; var5 < dimmension; ++var5) {
|
||||||
|
loadPixels[var5] = (byte)stream.readByte();
|
||||||
|
}
|
||||||
|
} else if(1 == var4) {
|
||||||
|
for(var5 = 0; var5 < width; ++var5) {
|
||||||
|
for(int var8 = 0; var8 < height; ++var8) {
|
||||||
|
loadPixels[width * var8 + var5] = (byte)stream.readByte();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
def.setPixels(loadPixels);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// public static SpriteDefinition getLastLoadedPaletteSprite() {
|
||||||
|
// SpriteDefinition paletteSprite = new SpriteDefinition(0);
|
||||||
|
// paletteSprite.maxWidth = loadedSpriteMaxWidth;
|
||||||
|
// paletteSprite.maxHeight = loadedSpriteMaxHeight;
|
||||||
|
// paletteSprite.offsetX = loadedSpriteOffsetX[0];
|
||||||
|
// paletteSprite.offsetY = loadedSpriteOffsetY[0];
|
||||||
|
// paletteSprite.width = loadedSpriteWidth[0];
|
||||||
|
// paletteSprite.height = loadedSpriteHeight[0];
|
||||||
|
// paletteSprite.palette = loadedPalette;
|
||||||
|
// paletteSprite.pixels = loadedSpritePixels[0];
|
||||||
|
// resetLastPaletteValues();
|
||||||
|
// return paletteSprite;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public static void resetLastPaletteValues() {
|
||||||
|
// loadedSpriteOffsetX = null;
|
||||||
|
// loadedSpriteOffsetY = null;
|
||||||
|
// loadedSpriteWidth = null;
|
||||||
|
// loadedSpriteHeight = null;
|
||||||
|
// loadedPalette = null;
|
||||||
|
// loadedSpritePixels = null;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public static SpriteDefinition[] loadPaletteSpriteSet() {
|
||||||
|
// SpriteDefinition[] palettes = new SpriteDefinition[paletteChildCount];
|
||||||
|
// for (int paletteIndex = 0; paletteIndex < paletteChildCount; ++paletteIndex) {
|
||||||
|
// SpriteDefinition palette = palettes[paletteIndex] = new SpriteDefinition(0);
|
||||||
|
// palette.maxWidth = loadedSpriteMaxWidth;
|
||||||
|
// palette.maxHeight = loadedSpriteMaxHeight;
|
||||||
|
// palette.offsetX = loadedSpriteOffsetX[paletteIndex];
|
||||||
|
// palette.offsetY = loadedSpriteOffsetY[paletteIndex];
|
||||||
|
// palette.width = loadedSpriteWidth[paletteIndex];
|
||||||
|
// palette.height = loadedSpriteHeight[paletteIndex];
|
||||||
|
// palette.palette = loadedPalette;
|
||||||
|
// palette.pixels = loadedSpritePixels[paletteIndex];
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// resetLastPaletteValues();
|
||||||
|
// return palettes;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
public SpriteDefinition[] getSprites()
|
||||||
|
{
|
||||||
|
return sprites;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,20 +4,16 @@ package net.runelite.cache.renderable;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.image.*;
|
import java.awt.image.*;
|
||||||
import net.runelite.cache.definitions.SpriteDefinition;
|
import net.runelite.cache.definitions.SpriteDefinition;
|
||||||
import net.runelite.cache.fs.Store;
|
|
||||||
|
|
||||||
/**
|
public class RGBSprite
|
||||||
* Created by Allen Kinzalow on 3/14/2015.
|
{
|
||||||
*/
|
public int offsetY;
|
||||||
public class RGBSprite /*extends Rasterizer2D*/ {
|
public int spriteWidth;
|
||||||
|
public int spriteHeight;
|
||||||
public int offsetY;
|
public int offsetX;
|
||||||
public int spriteWidth;
|
public int maxHeight;
|
||||||
public int spriteHeight;
|
public int maxWidth;
|
||||||
public int offsetX;
|
public int[] pixels;
|
||||||
public int maxHeight;
|
|
||||||
public int maxWidth;
|
|
||||||
public int[] pixels;
|
|
||||||
|
|
||||||
// public static RGBSprite getRGBSprite(Store store, int archiveId, int fileId, byte var3) {
|
// public static RGBSprite getRGBSprite(Store store, int archiveId, int fileId, byte var3) {
|
||||||
// if(!SpriteDefinition.loadPaletteSprite(store, archiveId, fileId, -1593817854)) {
|
// if(!SpriteDefinition.loadPaletteSprite(store, archiveId, fileId, -1593817854)) {
|
||||||
@@ -43,25 +39,50 @@ public class RGBSprite /*extends Rasterizer2D*/ {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public static RGBSprite getRGBSprite(int index) {
|
public static RGBSprite fromSpriteDefinition(SpriteDefinition def)
|
||||||
RGBSprite sprite = new RGBSprite();
|
{
|
||||||
sprite.maxWidth = SpriteDefinition.loadedSpriteMaxWidth;
|
RGBSprite sprite = new RGBSprite();
|
||||||
sprite.maxHeight = SpriteDefinition.loadedSpriteMaxHeight;
|
|
||||||
sprite.offsetX = SpriteDefinition.loadedSpriteOffsetX[index];
|
|
||||||
sprite.offsetY = SpriteDefinition.loadedSpriteOffsetY[index];
|
|
||||||
sprite.spriteWidth = SpriteDefinition.loadedSpriteWidth[index];
|
|
||||||
sprite.spriteHeight = SpriteDefinition.loadedSpriteHeight[index];
|
|
||||||
int dimmension = sprite.spriteWidth * sprite.spriteHeight;
|
|
||||||
byte[] var6 = SpriteDefinition.loadedSpritePixels[index];
|
|
||||||
sprite.pixels = new int[dimmension];
|
|
||||||
|
|
||||||
for(int pos = 0; pos < dimmension; ++pos) {
|
sprite.maxWidth = def.getMaxWidth();
|
||||||
sprite.pixels[pos] = SpriteDefinition.loadedPalette[var6[pos] & 255];
|
sprite.maxHeight = def.getMaxHeight();
|
||||||
}
|
sprite.offsetX = def.getOffsetX();
|
||||||
|
sprite.offsetY = def.getOffsetY();
|
||||||
|
sprite.spriteWidth = def.getWidth();
|
||||||
|
sprite.spriteHeight = def.getHeight();
|
||||||
|
|
||||||
//SpriteDefinition.resetLastPaletteValues();
|
int dimmension = sprite.spriteWidth * sprite.spriteHeight;
|
||||||
return sprite;
|
byte[] pixels = def.getPixels();
|
||||||
}
|
int[] palette = def.getLoader().loadedPalette;
|
||||||
|
|
||||||
|
sprite.pixels = new int[dimmension];
|
||||||
|
|
||||||
|
for (int pos = 0; pos < dimmension; ++pos)
|
||||||
|
{
|
||||||
|
sprite.pixels[pos] = palette[pixels[pos] & 255];
|
||||||
|
}
|
||||||
|
|
||||||
|
return sprite;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// public static RGBSprite getRGBSprite(int index) {
|
||||||
|
// RGBSprite sprite = new RGBSprite();
|
||||||
|
// sprite.maxWidth = SpriteDefinition.loadedSpriteMaxWidth;
|
||||||
|
// sprite.maxHeight = SpriteDefinition.loadedSpriteMaxHeight;
|
||||||
|
// sprite.offsetX = SpriteDefinition.loadedSpriteOffsetX[index];
|
||||||
|
// sprite.offsetY = SpriteDefinition.loadedSpriteOffsetY[index];
|
||||||
|
// sprite.spriteWidth = SpriteDefinition.loadedSpriteWidth[index];
|
||||||
|
// sprite.spriteHeight = SpriteDefinition.loadedSpriteHeight[index];
|
||||||
|
// int dimmension = sprite.spriteWidth * sprite.spriteHeight;
|
||||||
|
// byte[] var6 = SpriteDefinition.loadedSpritePixels[index];
|
||||||
|
// sprite.pixels = new int[dimmension];
|
||||||
|
//
|
||||||
|
// for(int pos = 0; pos < dimmension; ++pos) {
|
||||||
|
// sprite.pixels[pos] = SpriteDefinition.loadedPalette[var6[pos] & 255];
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// //SpriteDefinition.resetLastPaletteValues();
|
||||||
|
// return sprite;
|
||||||
|
// }
|
||||||
|
|
||||||
public BufferedImage getBufferedImage() {
|
public BufferedImage getBufferedImage() {
|
||||||
BufferedImage bi = new BufferedImage(spriteWidth, spriteHeight, BufferedImage.TYPE_INT_RGB);
|
BufferedImage bi = new BufferedImage(spriteWidth, spriteHeight, BufferedImage.TYPE_INT_RGB);
|
||||||
@@ -1435,25 +1456,25 @@ public class RGBSprite /*extends Rasterizer2D*/ {
|
|||||||
this.offsetX = this.maxWidth - this.spriteWidth - this.offsetX;
|
this.offsetX = this.maxWidth - this.spriteWidth - this.offsetX;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
//
|
||||||
public RGBSprite(byte[] var1, Component var2) {
|
// public RGBSprite(byte[] var1, Component var2) {
|
||||||
try {
|
// try {
|
||||||
Image var3 = Toolkit.getDefaultToolkit().createImage(var1);
|
// Image var3 = Toolkit.getDefaultToolkit().createImage(var1);
|
||||||
MediaTracker var4 = new MediaTracker(var2);
|
// MediaTracker var4 = new MediaTracker(var2);
|
||||||
var4.addImage(var3, 0);
|
// var4.addImage(var3, 0);
|
||||||
var4.waitForAll();
|
// var4.waitForAll();
|
||||||
this.spriteWidth = var3.getWidth(var2);
|
// this.spriteWidth = var3.getWidth(var2);
|
||||||
this.spriteHeight = var3.getHeight(var2);
|
// this.spriteHeight = var3.getHeight(var2);
|
||||||
this.maxWidth = this.spriteWidth;
|
// this.maxWidth = this.spriteWidth;
|
||||||
this.maxHeight = this.spriteHeight;
|
// this.maxHeight = this.spriteHeight;
|
||||||
this.offsetX = 0;
|
// this.offsetX = 0;
|
||||||
this.offsetY = 0;
|
// this.offsetY = 0;
|
||||||
this.pixels = new int[this.spriteWidth * this.spriteHeight];
|
// this.pixels = new int[this.spriteWidth * this.spriteHeight];
|
||||||
PixelGrabber var5 = new PixelGrabber(var3, 0, 0, this.spriteWidth, this.spriteHeight, this.pixels, 0, this.spriteWidth);
|
// PixelGrabber var5 = new PixelGrabber(var3, 0, 0, this.spriteWidth, this.spriteHeight, this.pixels, 0, this.spriteWidth);
|
||||||
var5.grabPixels();
|
// var5.grabPixels();
|
||||||
} catch (InterruptedException var6) {
|
// } catch (InterruptedException var6) {
|
||||||
;
|
// ;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import javax.imageio.ImageIO;
|
|||||||
import net.runelite.cache.IndexType;
|
import net.runelite.cache.IndexType;
|
||||||
import net.runelite.cache.StoreLocation;
|
import net.runelite.cache.StoreLocation;
|
||||||
import net.runelite.cache.definitions.SpriteDefinition;
|
import net.runelite.cache.definitions.SpriteDefinition;
|
||||||
|
import net.runelite.cache.definitions.loaders.SpriteLoader;
|
||||||
import net.runelite.cache.fs.Archive;
|
import net.runelite.cache.fs.Archive;
|
||||||
import net.runelite.cache.fs.File;
|
import net.runelite.cache.fs.File;
|
||||||
import net.runelite.cache.fs.Index;
|
import net.runelite.cache.fs.Index;
|
||||||
@@ -37,12 +38,20 @@ public class SpriteLoaderTest
|
|||||||
File file = files.get(0);
|
File file = files.get(0);
|
||||||
byte[] contents = file.getContents();
|
byte[] contents = file.getContents();
|
||||||
|
|
||||||
SpriteDefinition def = new SpriteDefinition(42);
|
SpriteLoader loader = new SpriteLoader();
|
||||||
def.decode(new InputStream(contents));
|
loader.decode(new InputStream(contents));
|
||||||
|
|
||||||
RGBSprite sp = RGBSprite.getRGBSprite(0);
|
SpriteDefinition[] defs = loader.getSprites();
|
||||||
|
// Assert.assertEquals(1, defs.length);
|
||||||
|
//SpriteDefinition def = new SpriteDefinition(42);
|
||||||
|
//def.decode(new InputStream(contents));
|
||||||
|
|
||||||
|
RGBSprite sp = RGBSprite.fromSpriteDefinition(defs[0]);
|
||||||
|
|
||||||
|
// I don't know why this happens
|
||||||
if (sp.spriteHeight <= 0 || sp.spriteWidth <= 0)
|
if (sp.spriteHeight <= 0 || sp.spriteWidth <= 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
BufferedImage image = sp.getBufferedImage();
|
BufferedImage image = sp.getBufferedImage();
|
||||||
java.io.File targ = new java.io.File(base, "sprites/" + a.getArchiveId() + ".png");
|
java.io.File targ = new java.io.File(base, "sprites/" + a.getArchiveId() + ".png");
|
||||||
targ.mkdirs();
|
targ.mkdirs();
|
||||||
|
|||||||
Reference in New Issue
Block a user