fix mixins getting confused between methods

This commit is contained in:
Lucwousin
2019-08-11 06:34:03 +02:00
parent df0501f302
commit dbdb686843
35 changed files with 209 additions and 160 deletions

View File

@@ -174,4 +174,9 @@ public class Signature
return new Signature(arguments, rv);
}
}
public Signature rsApiToRsClient()
{
return new Signature(this.toString().replaceAll("net/runelite/(rs/)?api/(RS)?", ""));
}
}

View File

@@ -39,7 +39,9 @@ compileJava.doLast() {
into "$buildDir"
}
def path = sourceSets.main.runtimeClasspath
def loader = new URLClassLoader(path.collect { f -> f.toURI().toURL() } as URL[])
def loader
try {
loader = new URLClassLoader(path.collect { f -> f.toURI().toURL() } as URL[])
def inject = loader.loadClass('net.runelite.injector.Injector')
String[] jarPaths = [
deobfuscatedJar.toString(),
@@ -47,5 +49,12 @@ compileJava.doLast() {
injectedClassesPath.toString()
]
inject.main(jarPaths)
} finally {
if (loader) {
loader.close()
}
}
}
test {
}

View File

@@ -45,6 +45,16 @@ public class InjectUtil
return obfuscatedField;
}
public static ClassFile toDeobClass(final ClassFile obCf, final ClassGroup deob) throws InjectionException
{
final ClassFile wowThatWasQuick = deob.findObfuscatedName(obCf.getName());
if (wowThatWasQuick == null)
{
throw new InjectionException("It wasn't obfscated enough, or a bit too much. Whatever it was it, wasn't in deob");
}
return wowThatWasQuick;
}
public static Type getFieldType(final Field f)
{
Type type = f.getType();
@@ -97,6 +107,21 @@ public class InjectUtil
return m;
}
/**
* Find a static method in ClassGroup group. Throws exception if not found.
*/
public static Method findStaticMethod(final ClassGroup group, final String name, Signature sig) throws InjectionException
{
Method m = group.findStaticMethod(name, sig);
if (m == null)
{
throw new InjectionException(String.format("Static method \"%s\" could not be found.", name));
}
return m;
}
public static Method findMethod(Inject inject, String name) throws InjectionException
{
return findMethod(inject, name, null);

View File

@@ -60,6 +60,8 @@ import net.runelite.asm.attributes.code.instructions.PutField;
import net.runelite.asm.signature.Signature;
import net.runelite.asm.visitors.ClassFileVisitor;
import net.runelite.deob.DeobAnnotations;
import static net.runelite.injector.InjectUtil.findStaticMethod;
import static net.runelite.injector.InjectUtil.toDeobClass;
import static net.runelite.injector.InjectUtil.toObClass;
import static net.runelite.injector.InjectUtil.toObField;
import org.objectweb.asm.ClassReader;
@@ -329,9 +331,17 @@ public class MixinInjector
}
String deobMethodName = (String) copyAnnotation.getElement().getValue();
Method deobMethod;
if (method.isStatic())
{
deobMethod = findStaticMethod(inject.getDeobfuscated(), deobMethodName, method.getDescriptor().rsApiToRsClient());
}
else
{
ClassFile deobCf = toDeobClass(cf, inject.getDeobfuscated());
deobMethod = deobCf.findMethod(deobMethodName, method.getDescriptor().rsApiToRsClient());
}
ClassFile deobCf = inject.toDeobClass(cf);
Method deobMethod = findDeobMethod(deobCf, deobMethodName, method.getDescriptor());
if (deobMethod == null)
{

View File

@@ -22,7 +22,7 @@ public class RenderDraw
private static final net.runelite.asm.pool.Method renderDraw = new net.runelite.asm.pool.Method(
new Class("net.runelite.client.callback.Hooks"),
"renderDraw",
new Signature("(Lnet/runelite/api/Renderable;IIIIIIIIJ)V")
new Signature("(Lnet/runelite/api/Entity;IIIIIIIIJ)V")
);
private final Inject inject;

View File

@@ -35,7 +35,7 @@ import net.runelite.api.coords.WorldPoint;
/**
* Represents a RuneScape actor/entity.
*/
public interface Actor extends Renderable
public interface Actor extends Entity
{
/**
* Gets the combat level of the actor.

View File

@@ -40,8 +40,8 @@ public interface DecorativeObject extends TileObject
Polygon getConvexHull();
Polygon getConvexHull2();
Renderable getRenderable();
Renderable getRenderable2();
Entity getRenderable();
Entity getRenderable2();
Model getModel1();

View File

@@ -1,6 +1,6 @@
package net.runelite.api;
public interface DynamicObject extends Renderable
public interface DynamicObject extends Entity
{
int getAnimationID();
}

View File

@@ -27,7 +27,7 @@ package net.runelite.api;
/**
* Represents an object that can be rendered.
*/
public interface Renderable extends Node
public interface Entity extends Node
{
/**
* Gets the model of the object.

View File

@@ -68,7 +68,7 @@ public interface GameObject extends TileObject
*/
Angle getOrientation();
Renderable getRenderable();
Entity getRenderable();
int getRsOrientation();

View File

@@ -29,7 +29,7 @@ import net.runelite.api.coords.LocalPoint;
/**
* Represents a graphics object.
*/
public interface GraphicsObject extends Renderable
public interface GraphicsObject extends Entity
{
/**
* The graphics object ID.

View File

@@ -29,7 +29,7 @@ package net.runelite.api;
*/
public interface GroundObject extends TileObject
{
Renderable getRenderable();
Entity getRenderable();
Model getModel();
}

View File

@@ -31,7 +31,7 @@ import java.util.List;
/**
* Represents the model of an object.
*/
public interface Model extends Renderable
public interface Model extends Entity
{
/**
* Gets a list of all vertices of the model.

View File

@@ -27,7 +27,7 @@ package net.runelite.api;
/**
* Represents a projectile entity (ie. cannonball, arrow).
*/
public interface Projectile extends Renderable
public interface Projectile extends Entity
{
/**
* Gets the ID of the projectile.

View File

@@ -73,14 +73,14 @@ public interface Tile
*
* @return the paint
*/
SceneTilePaint getSceneTilePaint();
TilePaint getSceneTilePaint();
/**
* Gets the model of the tile in the scene.
*
* @return the tile model
*/
SceneTileModel getSceneTileModel();
TileModel getSceneTileModel();
/**
* Gets the location coordinate of the tile in the world.

View File

@@ -27,7 +27,7 @@ package net.runelite.api;
/**
* Represents an item inside an {@link TileItemPile}.
*/
public interface TileItem extends Renderable
public interface TileItem extends Entity
{
/**
* Gets the items ID.

View File

@@ -41,21 +41,21 @@ public interface TileItemPile extends TileObject
*
* @return the bottom item
*/
Renderable getBottom();
Entity getBottom();
/**
* Gets the item at the middle of the pile.
*
* @return the middle item
*/
Renderable getMiddle();
Entity getMiddle();
/**
* Gets the item at the top of the pile.
*
* @return the top item
*/
Renderable getTop();
Entity getTop();
Model getModelBottom();
Model getModelMiddle();

View File

@@ -27,7 +27,7 @@ package net.runelite.api;
/**
* Represents the model of a tile in the current scene.
*/
public interface SceneTileModel
public interface TileModel
{
/**
* Gets the underlay color of the tile.

View File

@@ -27,7 +27,7 @@ package net.runelite.api;
/**
* Represents the paint of a tile in the current scene.
*/
public interface SceneTilePaint
public interface TilePaint
{
/**
* Gets the RGB value of the paint.

View File

@@ -50,8 +50,8 @@ public interface WallObject extends TileObject
*/
int getConfig();
Renderable getRenderable1();
Renderable getRenderable2();
Entity getRenderable1();
Entity getRenderable2();
Model getModelA();
Model getModelB();

View File

@@ -24,22 +24,22 @@
*/
package net.runelite.api.hooks;
import net.runelite.api.Renderable;
import net.runelite.api.SceneTileModel;
import net.runelite.api.SceneTilePaint;
import net.runelite.api.Entity;
import net.runelite.api.TileModel;
import net.runelite.api.TilePaint;
import net.runelite.api.Texture;
public interface DrawCallbacks
{
void draw(Renderable renderable, int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z, long hash);
void draw(Entity entity, int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z, long hash);
void drawScenePaint(int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z,
SceneTilePaint paint, int tileZ, int tileX, int tileY,
TilePaint paint, int tileZ, int tileX, int tileY,
int zoom, int centerX, int centerY);
void drawSceneModel(int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z,
SceneTileModel model, int tileZ, int tileX, int tileY,
TileModel model, int tileZ, int tileX, int tileY,
int zoom, int centerX, int centerY);
void draw();

View File

@@ -43,10 +43,10 @@ import lombok.extern.slf4j.Slf4j;
import net.runelite.api.BufferProvider;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.Entity;
import net.runelite.api.MainBufferProvider;
import net.runelite.api.NullItemID;
import net.runelite.api.RenderOverview;
import net.runelite.api.Renderable;
import net.runelite.api.WorldMapManager;
import net.runelite.api.events.BeforeMenuRender;
import net.runelite.api.events.BeforeRender;
@@ -473,16 +473,16 @@ public class Hooks implements Callbacks
deferredEventBus.replay();
}
public static void renderDraw(Renderable renderable, int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z, long hash)
public static void renderDraw(Entity entity, int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z, long hash)
{
DrawCallbacks drawCallbacks = client.getDrawCallbacks();
if (drawCallbacks != null)
{
drawCallbacks.draw(renderable, orientation, pitchSin, pitchCos, yawSin, yawCos, x, y, z, hash);
drawCallbacks.draw(entity, orientation, pitchSin, pitchCos, yawSin, yawCos, x, y, z, hash);
}
else
{
renderable.draw(orientation, pitchSin, pitchCos, yawSin, yawCos, x, y, z, hash);
entity.draw(orientation, pitchSin, pitchCos, yawSin, yawCos, x, y, z, hash);
}
}

View File

@@ -43,6 +43,7 @@ import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.DecorativeObject;
import net.runelite.api.DynamicObject;
import net.runelite.api.Entity;
import net.runelite.api.GameObject;
import net.runelite.api.GraphicsObject;
import net.runelite.api.TileItem;
@@ -55,7 +56,6 @@ import net.runelite.api.Perspective;
import net.runelite.api.Player;
import net.runelite.api.Point;
import net.runelite.api.Projectile;
import net.runelite.api.Renderable;
import net.runelite.api.Scene;
import net.runelite.api.Tile;
import net.runelite.api.WallObject;
@@ -310,10 +310,10 @@ class DevToolsOverlay extends Overlay
{
if (player.getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= MAX_DISTANCE)
{
Renderable renderable = gameObject.getRenderable();
if (renderable instanceof DynamicObject)
Entity entity = gameObject.getRenderable();
if (entity instanceof DynamicObject)
{
OverlayUtil.renderTileOverlay(graphics, gameObject, "ID: " + gameObject.getId() + " Anim: " + ((DynamicObject) renderable).getAnimationID(), TURQOISE);
OverlayUtil.renderTileOverlay(graphics, gameObject, "ID: " + gameObject.getId() + " Anim: " + ((DynamicObject) entity).getAnimationID(), TURQOISE);
}
else
{

View File

@@ -60,10 +60,10 @@ import net.runelite.api.GameState;
import net.runelite.api.Model;
import net.runelite.api.NodeCache;
import net.runelite.api.Perspective;
import net.runelite.api.Renderable;
import net.runelite.api.Entity;
import net.runelite.api.Scene;
import net.runelite.api.SceneTileModel;
import net.runelite.api.SceneTilePaint;
import net.runelite.api.TileModel;
import net.runelite.api.TilePaint;
import net.runelite.api.Texture;
import net.runelite.api.TextureProvider;
import net.runelite.api.events.ConfigChanged;
@@ -757,7 +757,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
}
public void drawScenePaint(int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z,
SceneTilePaint paint, int tileZ, int tileX, int tileY,
TilePaint paint, int tileZ, int tileX, int tileY,
int zoom, int centerX, int centerY)
{
if (paint.getBufferLen() > 0)
@@ -783,7 +783,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
}
public void drawSceneModel(int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z,
SceneTileModel model, int tileZ, int tileX, int tileY,
TileModel model, int tileZ, int tileX, int tileY,
int zoom, int centerX, int centerY)
{
if (model.getBufferLen() > 0)
@@ -1397,9 +1397,9 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
}
/**
* Draw a renderable in the scene
* Draw a entity in the scene
*
* @param renderable
* @param entity
* @param orientation
* @param pitchSin
* @param pitchCos
@@ -1411,12 +1411,12 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
* @param hash
*/
@Override
public void draw(Renderable renderable, int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z, long hash)
public void draw(Entity entity, int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z, long hash)
{
// Model may be in the scene buffer
if (renderable instanceof Model && ((Model) renderable).getSceneId() == sceneUploader.sceneId)
if (entity instanceof Model && ((Model) entity).getSceneId() == sceneUploader.sceneId)
{
Model model = (Model) renderable;
Model model = (Model) entity;
model.calculateBoundsCylinder();
model.calculateExtreme(orientation);
@@ -1476,10 +1476,10 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
else
{
// Temporary model (animated or otherwise not a static Model on the scene)
Model model = renderable instanceof Model ? (Model) renderable : renderable.getModel();
Model model = entity instanceof Model ? (Model) entity : entity.getModel();
if (model != null)
{
// Apply height to renderable from the model
// Apply height to entity from the model
model.setModelHeight(model.getModelHeight());
model.calculateBoundsCylinder();

View File

@@ -35,10 +35,10 @@ import net.runelite.api.GroundObject;
import net.runelite.api.Model;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
import net.runelite.api.Renderable;
import net.runelite.api.Entity;
import net.runelite.api.Scene;
import net.runelite.api.SceneTileModel;
import net.runelite.api.SceneTilePaint;
import net.runelite.api.TileModel;
import net.runelite.api.TilePaint;
import net.runelite.api.Tile;
import net.runelite.api.WallObject;
import static net.runelite.client.plugins.gpu.GpuPlugin.SMALL_TRIANGLE_COUNT;
@@ -100,13 +100,13 @@ class SceneUploader
reset(bridge);
}
SceneTilePaint sceneTilePaint = tile.getSceneTilePaint();
if (sceneTilePaint != null)
TilePaint tilePaint = tile.getSceneTilePaint();
if (tilePaint != null)
{
sceneTilePaint.setBufferOffset(-1);
tilePaint.setBufferOffset(-1);
}
SceneTileModel sceneTileModel = tile.getSceneTileModel();
TileModel sceneTileModel = tile.getSceneTileModel();
if (sceneTileModel != null)
{
sceneTileModel.setBufferOffset(-1);
@@ -159,29 +159,29 @@ class SceneUploader
upload(bridge, vertexBuffer, uvBuffer);
}
SceneTilePaint sceneTilePaint = tile.getSceneTilePaint();
if (sceneTilePaint != null)
TilePaint tilePaint = tile.getSceneTilePaint();
if (tilePaint != null)
{
sceneTilePaint.setBufferOffset(offset);
if (sceneTilePaint.getTexture() != -1)
tilePaint.setBufferOffset(offset);
if (tilePaint.getTexture() != -1)
{
sceneTilePaint.setUvBufferOffset(uvoffset);
tilePaint.setUvBufferOffset(uvoffset);
}
else
{
sceneTilePaint.setUvBufferOffset(-1);
tilePaint.setUvBufferOffset(-1);
}
Point tilePoint = tile.getSceneLocation();
int len = upload(sceneTilePaint, tile.getRenderLevel(), tilePoint.getX(), tilePoint.getY(), vertexBuffer, uvBuffer);
sceneTilePaint.setBufferLen(len);
int len = upload(tilePaint, tile.getRenderLevel(), tilePoint.getX(), tilePoint.getY(), vertexBuffer, uvBuffer);
tilePaint.setBufferLen(len);
offset += len;
if (sceneTilePaint.getTexture() != -1)
if (tilePaint.getTexture() != -1)
{
uvoffset += len;
}
}
SceneTileModel sceneTileModel = tile.getSceneTileModel();
TileModel sceneTileModel = tile.getSceneTileModel();
if (sceneTileModel != null)
{
sceneTileModel.setBufferOffset(offset);
@@ -206,42 +206,42 @@ class SceneUploader
WallObject wallObject = tile.getWallObject();
if (wallObject != null)
{
Renderable renderable1 = wallObject.getRenderable1();
if (renderable1 instanceof Model)
Entity entity1 = wallObject.getRenderable1();
if (entity1 instanceof Model)
{
uploadModel((Model) renderable1, vertexBuffer, uvBuffer);
uploadModel((Model) entity1, vertexBuffer, uvBuffer);
}
Renderable renderable2 = wallObject.getRenderable2();
if (renderable2 instanceof Model)
Entity entity2 = wallObject.getRenderable2();
if (entity2 instanceof Model)
{
uploadModel((Model) renderable2, vertexBuffer, uvBuffer);
uploadModel((Model) entity2, vertexBuffer, uvBuffer);
}
}
GroundObject groundObject = tile.getGroundObject();
if (groundObject != null)
{
Renderable renderable = groundObject.getRenderable();
if (renderable instanceof Model)
Entity entity = groundObject.getRenderable();
if (entity instanceof Model)
{
uploadModel((Model) renderable, vertexBuffer, uvBuffer);
uploadModel((Model) entity, vertexBuffer, uvBuffer);
}
}
DecorativeObject decorativeObject = tile.getDecorativeObject();
if (decorativeObject != null)
{
Renderable renderable = decorativeObject.getRenderable();
if (renderable instanceof Model)
Entity entity = decorativeObject.getRenderable();
if (entity instanceof Model)
{
uploadModel((Model) renderable, vertexBuffer, uvBuffer);
uploadModel((Model) entity, vertexBuffer, uvBuffer);
}
Renderable renderable2 = decorativeObject.getRenderable2();
if (renderable2 instanceof Model)
Entity entity2 = decorativeObject.getRenderable2();
if (entity2 instanceof Model)
{
uploadModel((Model) renderable2, vertexBuffer, uvBuffer);
uploadModel((Model) entity2, vertexBuffer, uvBuffer);
}
}
@@ -253,15 +253,15 @@ class SceneUploader
continue;
}
Renderable renderable = gameObject.getRenderable();
if (renderable instanceof Model)
Entity entity = gameObject.getRenderable();
if (entity instanceof Model)
{
uploadModel((Model) gameObject.getRenderable(), vertexBuffer, uvBuffer);
}
}
}
private int upload(SceneTilePaint tile, int tileZ, int tileX, int tileY, GpuIntBuffer vertexBuffer, GpuFloatBuffer uvBuffer)
private int upload(TilePaint tile, int tileZ, int tileX, int tileY, GpuIntBuffer vertexBuffer, GpuFloatBuffer uvBuffer)
{
final int[][][] tileHeights = client.getTileHeights();
@@ -319,7 +319,7 @@ class SceneUploader
return 6;
}
private static int upload(SceneTileModel sceneTileModel, int tileX, int tileY, GpuIntBuffer vertexBuffer, GpuFloatBuffer uvBuffer)
private static int upload(TileModel sceneTileModel, int tileX, int tileY, GpuIntBuffer vertexBuffer, GpuFloatBuffer uvBuffer)
{
final int[] faceX = sceneTileModel.getFaceX();
final int[] faceY = sceneTileModel.getFaceY();

View File

@@ -33,6 +33,7 @@ import net.runelite.api.AnimationID;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.DynamicObject;
import net.runelite.api.Entity;
import net.runelite.api.GameObject;
import net.runelite.api.GraphicsObject;
import net.runelite.api.InventoryID;
@@ -43,7 +44,6 @@ import net.runelite.api.NpcID;
import net.runelite.api.ObjectID;
import net.runelite.api.Projectile;
import net.runelite.api.ProjectileID;
import net.runelite.api.Renderable;
import net.runelite.api.Tile;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
@@ -123,10 +123,10 @@ public class ZalcanoUtil
{
if (client.getLocalPlayer().getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= 2400)
{
Renderable renderable = gameObject.getRenderable();
if (renderable instanceof DynamicObject)
Entity entity = gameObject.getRenderable();
if (entity instanceof DynamicObject)
{
if (((DynamicObject) renderable).getAnimationID() == AnimationID.ZALCANO_ROCK_GLOWING)
if (((DynamicObject) entity).getAnimationID() == AnimationID.ZALCANO_ROCK_GLOWING)
{
return gameObject;
}
@@ -149,8 +149,8 @@ public class ZalcanoUtil
{
if (client.getLocalPlayer().getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= 2400)
{
Renderable renderable = gameObject.getRenderable();
if (renderable instanceof DynamicObject)
Entity entity = gameObject.getRenderable();
if (entity instanceof DynamicObject)
{
list.add(gameObject);
}

View File

@@ -1,8 +1,8 @@
package net.runelite.mixins;
import net.runelite.api.Entity;
import net.runelite.api.Model;
import net.runelite.api.Perspective;
import net.runelite.api.Renderable;
import java.awt.geom.Area;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
@@ -36,38 +36,38 @@ public abstract class RSBoundaryObjectMixin implements RSBoundaryObject
@Inject
public Model getModelA()
{
Renderable renderable = getRenderable1();
if (renderable == null)
Entity entity = getRenderable1();
if (entity == null)
{
return null;
}
if (renderable instanceof Model)
if (entity instanceof Model)
{
return (Model) renderable;
return (Model) entity;
}
else
{
return renderable.getModel();
return entity.getModel();
}
}
@Inject
public Model getModelB()
{
Renderable renderable = getRenderable2();
if (renderable == null)
Entity entity = getRenderable2();
if (entity == null)
{
return null;
}
if (renderable instanceof Model)
if (entity instanceof Model)
{
return (Model) renderable;
return (Model) entity;
}
else
{
return renderable.getModel();
return entity.getModel();
}
}

View File

@@ -2,7 +2,7 @@ package net.runelite.mixins;
import net.runelite.api.Model;
import net.runelite.api.Perspective;
import net.runelite.api.Renderable;
import net.runelite.api.Entity;
import java.awt.geom.Area;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
@@ -37,19 +37,19 @@ public abstract class RSFloorDecorationMixin implements RSFloorDecoration
@Override
public Model getModel()
{
Renderable renderable = getRenderable();
if (renderable == null)
Entity entity = getRenderable();
if (entity == null)
{
return null;
}
if (renderable instanceof Model)
if (entity instanceof Model)
{
return (Model) renderable;
return (Model) entity;
}
else
{
return renderable.getModel();
return entity.getModel();
}
}

View File

@@ -24,10 +24,10 @@
*/
package net.runelite.mixins;
import net.runelite.api.Entity;
import net.runelite.api.Perspective;
import net.runelite.api.Renderable;
import net.runelite.api.SceneTileModel;
import net.runelite.api.SceneTilePaint;
import net.runelite.api.TileModel;
import net.runelite.api.TilePaint;
import net.runelite.api.Tile;
import net.runelite.api.hooks.DrawCallbacks;
import net.runelite.api.mixins.Copy;
@@ -391,10 +391,10 @@ public abstract class RSSceneMixin implements RSScene
}
@Copy("newWallDecoration")
abstract public void rs$addBoundaryDecoration(int plane, int x, int y, int floor, Renderable var5, Renderable var6, int var7, int var8, int var9, int var10, long hash, int var12);
abstract public void rs$addBoundaryDecoration(int plane, int x, int y, int floor, Entity var5, Entity var6, int var7, int var8, int var9, int var10, long hash, int var12);
@Replace("newWallDecoration")
public void rl$addBoundaryDecoration(int plane, int x, int y, int floor, Renderable var5, Renderable var6, int var7, int var8, int var9, int var10, long hash, int var12)
public void rl$addBoundaryDecoration(int plane, int x, int y, int floor, Entity var5, Entity var6, int var7, int var8, int var9, int var10, long hash, int var12)
{
rs$addBoundaryDecoration(plane, x, y, floor, var5, var6, var7, var8, var9, var10, hash, var12);
Tile tile = getTiles()[plane][x][y];
@@ -409,10 +409,10 @@ public abstract class RSSceneMixin implements RSScene
}
@Copy("newGroundItemPile")
abstract public void rs$addItemPile(int plane, int x, int y, int hash, Renderable var5, long var6, Renderable var7, Renderable var8);
abstract public void rs$addItemPile(int plane, int x, int y, int hash, Entity var5, long var6, Entity var7, Entity var8);
@Replace("newGroundItemPile")
public void rl$addItemPile(int plane, int x, int y, int hash, Renderable var5, long var6, Renderable var7, Renderable var8)
public void rl$addItemPile(int plane, int x, int y, int hash, Entity var5, long var6, Entity var7, Entity var8)
{
rs$addItemPile(plane, x, y, hash, var5, var6, var7, var8);
Tile tile = getTiles()[plane][x][y];
@@ -427,10 +427,10 @@ public abstract class RSSceneMixin implements RSScene
}
@Copy("newFloorDecoration")
abstract public void rs$groundObjectSpawned(int plane, int x, int y, int floor, Renderable var5, long hash, int var7);
abstract public void rs$groundObjectSpawned(int plane, int x, int y, int floor, Entity var5, long hash, int var7);
@Replace("newFloorDecoration")
public void rl$groundObjectSpawned(int plane, int x, int y, int floor, Renderable var5, long hash, int var7)
public void rl$groundObjectSpawned(int plane, int x, int y, int floor, Entity var5, long hash, int var7)
{
rs$groundObjectSpawned(plane, x, y, floor, var5, hash, var7);
Tile tile = getTiles()[plane][x][y];
@@ -445,10 +445,10 @@ public abstract class RSSceneMixin implements RSScene
}
@Copy("newBoundaryObject")
abstract public void rs$addBoundary(int plane, int x, int y, int floor, Renderable var5, Renderable var6, int var7, int var8, long hash, int var10);
abstract public void rs$addBoundary(int plane, int x, int y, int floor, Entity var5, Entity var6, int var7, int var8, long hash, int var10);
@Replace("newBoundaryObject")
public void rl$addBoundary(int plane, int x, int y, int floor, Renderable var5, Renderable var6, int var7, int var8, long hash, int var10)
public void rl$addBoundary(int plane, int x, int y, int floor, Entity var5, Entity var6, int var7, int var8, long hash, int var10)
{
rs$addBoundary(plane, x, y, floor, var5, var6, var7, var8, hash, var10);
Tile tile = getTiles()[plane][x][y];
@@ -463,10 +463,10 @@ public abstract class RSSceneMixin implements RSScene
}
@Copy("drawTileUnderlay")
abstract public void rs$drawTileUnderlay(SceneTilePaint tile, int z, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y);
abstract public void rs$drawTileUnderlay(TilePaint tile, int z, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y);
@Replace("drawTileUnderlay")
public void rl$drawTileUnderlay(SceneTilePaint tile, int z, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y)
public void rl$drawTileUnderlay(TilePaint tile, int z, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y)
{
if (!client.isGpu())
{
@@ -590,10 +590,10 @@ public abstract class RSSceneMixin implements RSScene
}
@Copy("drawTileOverlay")
abstract public void rs$drawTileOverlay(SceneTileModel tile, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y);
abstract public void rs$drawTileOverlay(TileModel tile, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y);
@Replace("drawTileOverlay")
public void rl$drawTileOverlay(SceneTileModel tile, int pitchSin, int pitchCos, int yawSin, int yawCos, int tileX, int tileY)
public void rl$drawTileOverlay(TileModel tile, int pitchSin, int pitchCos, int yawSin, int yawCos, int tileX, int tileY)
{
if (!client.isGpu())
{

View File

@@ -1,8 +1,8 @@
package net.runelite.mixins;
import java.awt.geom.Area;
import net.runelite.api.Entity;
import net.runelite.api.Model;
import net.runelite.api.Renderable;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.rs.api.RSTileItemPile;
@@ -38,19 +38,19 @@ public abstract class RSTileItemPileMixin implements RSTileItemPile
@Override
public Model getModelBottom()
{
Renderable renderable = getBottom();
if (renderable == null)
Entity entity = getBottom();
if (entity == null)
{
return null;
}
if (renderable instanceof Model)
if (entity instanceof Model)
{
return (Model) renderable;
return (Model) entity;
}
else
{
return renderable.getModel();
return entity.getModel();
}
}
@@ -58,19 +58,19 @@ public abstract class RSTileItemPileMixin implements RSTileItemPile
@Override
public Model getModelMiddle()
{
Renderable renderable = getMiddle();
if (renderable == null)
Entity entity = getMiddle();
if (entity == null)
{
return null;
}
if (renderable instanceof Model)
if (entity instanceof Model)
{
return (Model) renderable;
return (Model) entity;
}
else
{
return renderable.getModel();
return entity.getModel();
}
}
@@ -78,19 +78,19 @@ public abstract class RSTileItemPileMixin implements RSTileItemPile
@Override
public Model getModelTop()
{
Renderable renderable = getTop();
if (renderable == null)
Entity entity = getTop();
if (entity == null)
{
return null;
}
if (renderable instanceof Model)
if (entity instanceof Model)
{
return (Model) renderable;
return (Model) entity;
}
else
{
return renderable.getModel();
return entity.getModel();
}
}
}

View File

@@ -1,10 +1,10 @@
package net.runelite.rs.api;
import net.runelite.api.DynamicObject;
import net.runelite.api.Renderable;
import net.runelite.api.Entity;
import net.runelite.mapping.Import;
public interface RSDynamicObject extends RSEntity, DynamicObject, Renderable
public interface RSDynamicObject extends RSEntity, DynamicObject, Entity
{
@Import("id")
int getId();

View File

@@ -24,10 +24,10 @@
*/
package net.runelite.rs.api;
import net.runelite.api.Renderable;
import net.runelite.api.Entity;
import net.runelite.mapping.Import;
public interface RSEntity extends RSNode, Renderable
public interface RSEntity extends RSNode, Entity
{
@Import("height")
int getModelHeight();

View File

@@ -4,8 +4,8 @@ import net.runelite.api.DecorativeObject;
import net.runelite.api.GameObject;
import net.runelite.api.GroundObject;
import net.runelite.api.TileItemPile;
import net.runelite.api.SceneTileModel;
import net.runelite.api.SceneTilePaint;
import net.runelite.api.TileModel;
import net.runelite.api.TilePaint;
import net.runelite.api.Tile;
import net.runelite.api.WallObject;
import net.runelite.mapping.Import;
@@ -34,11 +34,11 @@ public interface RSTile extends Tile
@Import("paint")
@Override
SceneTilePaint getSceneTilePaint();
TilePaint getSceneTilePaint();
@Import("model")
@Override
SceneTileModel getSceneTileModel();
TileModel getSceneTileModel();
@Import("x")
int getX();

View File

@@ -1,9 +1,9 @@
package net.runelite.rs.api;
import net.runelite.api.SceneTileModel;
import net.runelite.api.TileModel;
import net.runelite.mapping.Import;
public interface RSTileModel extends SceneTileModel
public interface RSTileModel extends TileModel
{
@Import("underlayRgb")
@Override

View File

@@ -1,9 +1,9 @@
package net.runelite.rs.api;
import net.runelite.api.SceneTilePaint;
import net.runelite.api.TilePaint;
import net.runelite.mapping.Import;
public interface RSTilePaint extends SceneTilePaint
public interface RSTilePaint extends TilePaint
{
@Import("rgb")
@Override