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