openrune: Sprite -> SpritePixels

This commit is contained in:
therealunull
2020-12-13 12:44:10 -05:00
parent 98d2a16798
commit c300358468
20 changed files with 84 additions and 84 deletions

View File

@@ -34,9 +34,9 @@ import org.junit.rules.TemporaryFolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SpriteManagerTest
public class SpritePixelsManagerTest
{
private static final Logger logger = LoggerFactory.getLogger(SpriteManagerTest.class);
private static final Logger logger = LoggerFactory.getLogger(SpritePixelsManagerTest.class);
@Rule
public TemporaryFolder folder = StoreLocation.getTemporaryFolder();

View File

@@ -205,11 +205,11 @@ public interface Actor extends Entity, Locatable
* Gets the point at which a sprite should be drawn, relative to the
* current location with the given z-axis offset.
*
* @param sprite the sprite to draw
* @param spritePixels the sprite to draw
* @param zOffset the z-axis offset
* @return the sprite drawing location
*/
Point getCanvasSpriteLocation(Sprite sprite, int zOffset);
Point getCanvasSpriteLocation(SpritePixels spritePixels, int zOffset);
/**
* Gets a point on the canvas of where this actors mini-map indicator

View File

@@ -401,7 +401,7 @@ public interface Client extends GameShell
* @return the created sprite
*/
@Nullable
Sprite createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale);
SpritePixels createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale);
/**
* Loads and creates the sprite images of the passed archive and file IDs.
@@ -412,7 +412,7 @@ public interface Client extends GameShell
* @return the sprite image of the file
*/
@Nullable
Sprite[] getSprites(IndexDataBase source, int archiveId, int fileId);
SpritePixels[] getSprites(IndexDataBase source, int archiveId, int fileId);
/**
* Gets the sprite index.
@@ -962,7 +962,7 @@ public interface Client extends GameShell
*
* @return all mini-map dots
*/
Sprite[] getMapDots();
SpritePixels[] getMapDots();
/**
* Gets the local clients game cycle.
@@ -978,7 +978,7 @@ public interface Client extends GameShell
*
* @return the map icons
*/
Sprite[] getMapIcons();
SpritePixels[] getMapIcons();
/**
* Gets an array of mod icon sprites.
@@ -1010,7 +1010,7 @@ public interface Client extends GameShell
* @param height the height
* @return the sprite image
*/
Sprite createSprite(int[] pixels, int width, int height);
SpritePixels createSprite(int[] pixels, int width, int height);
/**
* Gets the location of the local player.
@@ -1339,7 +1339,7 @@ public interface Client extends GameShell
* @param z the plane
* @return the map sprite
*/
Sprite drawInstanceMap(int z);
SpritePixels drawInstanceMap(int z);
/**
* Executes a client script from the cache
@@ -1662,7 +1662,7 @@ public interface Client extends GameShell
* The key value in the map corresponds to the ID of the sprite,
* and the value the sprite to replace it with.
*/
Map<Integer, Sprite> getSpriteOverrides();
Map<Integer, SpritePixels> getSpriteOverrides();
/**
* Gets a mapping of widget sprites to override.
@@ -1670,14 +1670,14 @@ public interface Client extends GameShell
* The key value in the map corresponds to the packed widget ID,
* and the value the sprite to replace the widgets sprite with.
*/
Map<Integer, Sprite> getWidgetSpriteOverrides();
Map<Integer, SpritePixels> getWidgetSpriteOverrides();
/**
* Sets the compass sprite.
*
* @param Sprite the new sprite
* @param SpritePixels the new sprite
*/
void setCompass(Sprite Sprite);
void setCompass(SpritePixels SpritePixels);
/**
* Sets whether inventory quantity is verbose.
@@ -1829,7 +1829,7 @@ public interface Client extends GameShell
/**
* Returns the array of cross sprites that appear and animate when left-clicking
*/
Sprite[] getCrossSprites();
SpritePixels[] getCrossSprites();
EnumDefinition getEnum(int id);
@@ -1954,7 +1954,7 @@ public interface Client extends GameShell
* @param pixelWidth pretty much horizontal scale
* @param pixelHeight pretty much vertical scale
* @param oldWidth old width
* @see net.runelite.client.util.ImageUtil#resizeSprite(Client, Sprite, int, int)
* @see net.runelite.client.util.ImageUtil#resizeSprite(Client, SpritePixels, int, int)
*/
void scaleSprite(int[] canvas, int[] pixels, int color, int pixelX, int pixelY, int canvasIdx, int canvasOffset, int newWidth, int newHeight, int pixelWidth, int pixelHeight, int oldWidth);
@@ -2048,7 +2048,7 @@ public interface Client extends GameShell
* If the image is larger than half the width of fixed mode,
* it won't get mirrored to the other side of the screen
*/
void setLoginScreen(Sprite pixels);
void setLoginScreen(SpritePixels pixels);
/**
* Sets whether the flames on the login screen should be rendered

View File

@@ -26,9 +26,9 @@ package net.runelite.api;
public interface HealthBar
{
Sprite getHealthBarFrontSprite();
SpritePixels getHealthBarFrontSprite();
Sprite getHealthBarBackSprite();
SpritePixels getHealthBarBackSprite();
int getHealthBarFrontSpriteId();

View File

@@ -35,5 +35,5 @@ public interface MapElementConfig
* @param unused unused value
* @return the sprite icon to display on the world map
*/
Sprite getMapIcon(boolean unused);
SpritePixels getMapIcon(boolean unused);
}

View File

@@ -557,14 +557,14 @@ public class Perspective
*
* @param client the game client
* @param localLocation local location of the tile
* @param sprite SpritePixel for size measurement
* @param spritePixels SpritePixel for size measurement
* @param zOffset offset from ground plane
* @return a {@link Point} on screen corresponding to the given localLocation.
*/
public static Point getCanvasSpriteLocation(
@Nonnull Client client,
@Nonnull LocalPoint localLocation,
@Nonnull Sprite sprite,
@Nonnull SpritePixels spritePixels,
int zOffset)
{
int plane = client.getPlane();
@@ -576,8 +576,8 @@ public class Perspective
return null;
}
int xOffset = p.getX() - sprite.getWidth() / 2;
int yOffset = p.getY() - sprite.getHeight() / 2;
int xOffset = p.getX() - spritePixels.getWidth() / 2;
int yOffset = p.getY() - spritePixels.getHeight() / 2;
return new Point(xOffset, yOffset);
}

View File

@@ -30,7 +30,7 @@ import java.awt.image.BufferedImage;
/**
* Represents data about the pixels of a sprite image.
*/
public interface Sprite
public interface SpritePixels
{
int DEFAULT_SHADOW_COLOR = 3153952;

View File

@@ -28,7 +28,7 @@ import java.awt.Rectangle;
import java.util.Collection;
import net.runelite.api.FontTypeFace;
import net.runelite.api.Point;
import net.runelite.api.Sprite;
import net.runelite.api.SpritePixels;
/**
* Represents an on-screen UI element that is drawn on the canvas.
@@ -988,7 +988,7 @@ public interface Widget
/**
* Gets the image which is (or should be) drawn on this widget
*/
Sprite getSprite();
SpritePixels getSprite();
/**
* {@link net.runelite.api.VarPlayer}s that triggers this widgets varTransmitListener

View File

@@ -25,7 +25,7 @@
package net.runelite.mixins;
import net.runelite.api.GameState;
import net.runelite.api.Sprite;
import net.runelite.api.SpritePixels;
import net.runelite.api.mixins.FieldHook;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
@@ -42,7 +42,7 @@ public abstract class LoginScreenMixin implements RSClient
private static boolean shouldRenderLoginScreenFire = true;
@Inject
private static Sprite loginScreenBackground;
private static SpritePixels loginScreenBackground;
@Inject
public void setShouldRenderLoginScreenFire(boolean shouldRender)
@@ -57,7 +57,7 @@ public abstract class LoginScreenMixin implements RSClient
}
@Inject
public void setLoginScreen(Sprite background)
public void setLoginScreen(SpritePixels background)
{
assert client.isClientThread() : "setLoginScreen must be called on client thread";
@@ -80,7 +80,7 @@ public abstract class LoginScreenMixin implements RSClient
@FieldHook("leftTitleSprite")
static void setLeftTitleSprite(int idx)
{
Sprite loginscreen = loginScreenBackground;
SpritePixels loginscreen = loginScreenBackground;
if (loginscreen != null)
{
@@ -92,7 +92,7 @@ public abstract class LoginScreenMixin implements RSClient
@FieldHook("rightTitleSprite")
static void setRightTitleSprite(int idx)
{
Sprite loginscreen = loginScreenBackground;
SpritePixels loginscreen = loginScreenBackground;
if (loginscreen != null && loginscreen.getWidth() > 383)
{

View File

@@ -29,17 +29,17 @@ import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSScene;
import net.runelite.rs.api.RSSprite;
import net.runelite.rs.api.RSSpritePixels;
@Mixin(RSClient.class)
public abstract class MinimapMixin implements RSClient
{
@Inject
@Override
public RSSprite drawInstanceMap(int z)
public RSSpritePixels drawInstanceMap(int z)
{
RSSprite ourSprite = createSprite(new int[512 * 512], 512, 512);
RSSprite theirSprite = getMinimapSprite();
RSSpritePixels ourSprite = createSprite(new int[512 * 512], 512, 512);
RSSpritePixels theirSprite = getMinimapSprite();
RSScene scene = getScene();
int[] pixels = ourSprite.getPixels();

View File

@@ -31,7 +31,7 @@ import net.runelite.api.NPCDefinition;
import net.runelite.api.Perspective;
import net.runelite.api.Player;
import net.runelite.api.Point;
import net.runelite.api.Sprite;
import net.runelite.api.SpritePixels;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldArea;
import net.runelite.api.coords.WorldPoint;
@@ -172,9 +172,9 @@ public abstract class RSActorMixin implements RSActor
@Inject
@Override
public Point getCanvasSpriteLocation(Sprite sprite, int zOffset)
public Point getCanvasSpriteLocation(SpritePixels spritePixels, int zOffset)
{
return Perspective.getCanvasSpriteLocation(client, getLocalLocation(), sprite, zOffset);
return Perspective.getCanvasSpriteLocation(client, getLocalLocation(), spritePixels, zOffset);
}
@Inject

View File

@@ -74,7 +74,7 @@ import net.runelite.api.Point;
import net.runelite.api.Prayer;
import net.runelite.api.Projectile;
import net.runelite.api.Skill;
import net.runelite.api.Sprite;
import net.runelite.api.SpritePixels;
import net.runelite.api.Tile;
import net.runelite.api.VarPlayer;
import net.runelite.api.Varbits;
@@ -135,7 +135,7 @@ import net.runelite.rs.api.RSNodeHashTable;
import net.runelite.rs.api.RSPacketBuffer;
import net.runelite.rs.api.RSPlayer;
import net.runelite.rs.api.RSScene;
import net.runelite.rs.api.RSSprite;
import net.runelite.rs.api.RSSpritePixels;
import net.runelite.rs.api.RSTile;
import net.runelite.rs.api.RSTileItem;
import net.runelite.rs.api.RSUsername;
@@ -946,7 +946,7 @@ public abstract class RSClientMixin implements RSClient
}
@Inject
public RSSprite createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted)
public RSSpritePixels createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted)
{
assert isClientThread() : "createItemSprite must be called on client thread";
return createRSItemSprite(itemId, quantity, border, shadowColor, stackable, noted);
@@ -955,7 +955,7 @@ public abstract class RSClientMixin implements RSClient
@Inject
@Override
public Sprite createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale)
public SpritePixels createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale)
{
assert isClientThread();
int zoom = get3dZoom();
@@ -1622,7 +1622,7 @@ public abstract class RSClientMixin implements RSClient
@Inject
@Override
public RSSprite[] getSprites(IndexDataBase source, int archiveId, int fileId)
public RSSpritePixels[] getSprites(IndexDataBase source, int archiveId, int fileId)
{
RSAbstractArchive rsSource = (RSAbstractArchive) source;
byte[] configData = rsSource.getConfigData(archiveId, fileId);
@@ -1643,7 +1643,7 @@ public abstract class RSClientMixin implements RSClient
byte[][] spritePixelsArray = getSpritePixels();
int[] indexedSpritePalette = getIndexedSpritePalette();
RSSprite[] array = new RSSprite[indexedSpriteCount];
RSSpritePixels[] array = new RSSpritePixels[indexedSpriteCount];
for (int i = 0; i < indexedSpriteCount; ++i)
{
@@ -1653,7 +1653,7 @@ public abstract class RSClientMixin implements RSClient
byte[] pixelArray = spritePixelsArray[i];
int[] pixels = new int[width * height];
RSSprite spritePixels = createSprite(pixels, width, height);
RSSpritePixels spritePixels = createSprite(pixels, width, height);
spritePixels.setMaxHeight(maxHeight);
spritePixels.setMaxWidth(maxWidth);
spritePixels.setOffsetX(offsetX[i]);

View File

@@ -32,10 +32,10 @@ import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Replace;
import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSSprite;
import net.runelite.rs.api.RSSpritePixels;
@Mixin(RSSprite.class)
public abstract class RSSpriteMixin implements RSSprite
@Mixin(RSSpritePixels.class)
public abstract class RSSpritePixelsMixin implements RSSpritePixels
{
private static final int ALPHA = 0xFF000000;

View File

@@ -2,47 +2,47 @@ package net.runelite.mixins;
import java.util.HashMap;
import java.util.Map;
import net.runelite.api.Sprite;
import net.runelite.api.SpritePixels;
import net.runelite.api.mixins.Copy;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Replace;
import net.runelite.rs.api.RSAbstractArchive;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSSprite;
import net.runelite.rs.api.RSSpritePixels;
@Mixin(RSClient.class)
public abstract class SpriteMixin implements RSClient
{
@Inject
private static final Map<Integer, Sprite> spriteOverrides = new HashMap<Integer, Sprite>();
private static final Map<Integer, SpritePixels> spriteOverrides = new HashMap<Integer, SpritePixels>();
@Inject
private static final Map<Integer, Sprite> widgetSpriteOverrides = new HashMap<Integer, Sprite>();
private static final Map<Integer, SpritePixels> widgetSpriteOverrides = new HashMap<Integer, SpritePixels>();
@Inject
@Override
public Map<Integer, Sprite> getSpriteOverrides()
public Map<Integer, SpritePixels> getSpriteOverrides()
{
return spriteOverrides;
}
@Inject
@Override
public Map<Integer, Sprite> getWidgetSpriteOverrides()
public Map<Integer, SpritePixels> getWidgetSpriteOverrides()
{
return widgetSpriteOverrides;
}
@Copy("SpriteBuffer_getSprite")
@Replace("SpriteBuffer_getSprite")
public static RSSprite copy$loadSprite(RSAbstractArchive var0, int var1, int var2)
public static RSSpritePixels copy$loadSprite(RSAbstractArchive var0, int var1, int var2)
{
Sprite sprite = spriteOverrides.get(var1);
SpritePixels spritePixels = spriteOverrides.get(var1);
if (sprite != null)
if (spritePixels != null)
{
return (RSSprite) sprite;
return (RSSpritePixels) spritePixels;
}
return copy$loadSprite(var0, var1, var2);

View File

@@ -1,32 +1,32 @@
package net.runelite.mixins;
import net.runelite.api.Sprite;
import net.runelite.api.SpritePixels;
import java.util.Map;
import net.runelite.api.mixins.Copy;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Replace;
import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSSprite;
import net.runelite.rs.api.RSSpritePixels;
import net.runelite.rs.api.RSWidget;
@Mixin(RSWidget.class)
public abstract class WidgetSpriteMixin implements RSWidget
{
@Shadow("widgetSpriteOverrides")
private static Map<Integer, Sprite> widgetSpriteOverrides;
private static Map<Integer, SpritePixels> widgetSpriteOverrides;
@Copy("getSprite")
@Replace("getSprite")
public RSSprite copy$getWidgetSprite(boolean var1)
public RSSpritePixels copy$getWidgetSprite(boolean var1)
{
if (getSpriteId() != -1)
{
Sprite sprite = widgetSpriteOverrides.get(getId());
SpritePixels spritePixels = widgetSpriteOverrides.get(getId());
if (sprite != null)
if (spritePixels != null)
{
return (RSSprite) sprite;
return (RSSpritePixels) spritePixels;
}
}
@@ -35,7 +35,7 @@ public abstract class WidgetSpriteMixin implements RSWidget
@Inject
@Override
public Sprite getSprite()
public SpritePixels getSprite()
{
return getSprite(false);
}

View File

@@ -27,7 +27,7 @@ package net.runelite.rs.api;
import java.math.BigInteger;
import java.util.Map;
import net.runelite.api.Client;
import net.runelite.api.Sprite;
import net.runelite.api.SpritePixels;
import net.runelite.api.World;
import net.runelite.api.widgets.Widget;
import net.runelite.mapping.Construct;
@@ -405,7 +405,7 @@ public interface RSClient extends RSGameShell, Client
RSItemDefinition getRSItemDefinition(int itemId);
@Import("getItemSprite")
RSSprite createRSItemSprite(int itemId, int quantity, int thickness, int borderColor, int stackable, boolean noted);
RSSpritePixels createRSItemSprite(int itemId, int quantity, int thickness, int borderColor, int stackable, boolean noted);
@Import("menuAction")
void sendMenuAction(int n2, int n3, int n4, int n5, String string, String string2, int n6, int n7);
@@ -559,10 +559,10 @@ public interface RSClient extends RSGameShell, Client
@Import("mapIcons")
@Override
RSSprite[] getMapIcons();
RSSpritePixels[] getMapIcons();
@Import("mapDotSprites")
RSSprite[] getMapDots();
RSSpritePixels[] getMapDots();
@Import("AbstractFont_modIconSprites")
@Override
@@ -577,7 +577,7 @@ public interface RSClient extends RSGameShell, Client
@Construct
@Override
RSSprite createSprite(int[] pixels, int width, int height);
RSSpritePixels createSprite(int[] pixels, int width, int height);
@Import("destinationX")
int getDestinationX();
@@ -776,10 +776,10 @@ public interface RSClient extends RSGameShell, Client
RSFrames getFrames(int frameId);
@Import("sceneMinimapSprite")
RSSprite getMinimapSprite();
RSSpritePixels getMinimapSprite();
@Import("sceneMinimapSprite")
void setMinimapSprite(Sprite spritePixels);
void setMinimapSprite(SpritePixels spritePixels);
@Import("drawObject")
void drawObject(int z, int x, int y, int randomColor1, int randomColor2);
@@ -841,7 +841,7 @@ public interface RSClient extends RSGameShell, Client
int getFlags();
@Import("compass")
void setCompass(Sprite spritePixels);
void setCompass(SpritePixels spritePixels);
@Import("Widget_cachedSprites")
@Override
@@ -1113,7 +1113,7 @@ public interface RSClient extends RSGameShell, Client
@Import("crossSprites")
@Override
RSSprite[] getCrossSprites();
RSSpritePixels[] getCrossSprites();
void setModulus(BigInteger modulus);
@@ -1265,10 +1265,10 @@ public interface RSClient extends RSGameShell, Client
void clearLoginScreen(boolean shouldClear);
@Import("leftTitleSprite")
void setLeftTitleSprite(Sprite background);
void setLeftTitleSprite(SpritePixels background);
@Import("rightTitleSprite")
void setRightTitleSprite(Sprite background);
void setRightTitleSprite(SpritePixels background);
@Construct
RSBuffer newBuffer(byte[] bytes);

View File

@@ -13,10 +13,10 @@ public interface RSHealthBarDefinition extends RSDualNode, HealthBar
int getHealthBarFrontSpriteId();
@Import("getFrontSprite")
RSSprite getHealthBarFrontSprite();
RSSpritePixels getHealthBarFrontSprite();
@Import("getBackSprite")
RSSprite getHealthBarBackSprite();
RSSpritePixels getHealthBarBackSprite();
@Import("widthPadding")
@Override

View File

@@ -1,9 +1,9 @@
package net.runelite.rs.api;
import net.runelite.api.Sprite;
import net.runelite.api.SpritePixels;
import net.runelite.mapping.Import;
public interface RSSprite extends Sprite
public interface RSSpritePixels extends SpritePixels
{
@Import("drawTransBgAt")
@Override

View File

@@ -553,7 +553,7 @@ public interface RSWidget extends Widget
boolean containsMouse();
@Import("getSprite")
RSSprite getSprite(boolean b);
RSSpritePixels getSprite(boolean b);
@Import("onRelease")
@Override

View File

@@ -7,5 +7,5 @@ public interface RSWorldMapElement extends RSDualNode, MapElementConfig
{
@Import("getSpriteBool")
@Override
RSSprite getMapIcon(boolean var1);
RSSpritePixels getMapIcon(boolean var1);
}