From dbdb6868432ad7db1dc0845263179770700da0d8 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Sun, 11 Aug 2019 06:34:03 +0200 Subject: [PATCH] fix mixins getting confused between methods --- .../net/runelite/asm/signature/Signature.java | 5 ++ injector-plugin/build.gradle | 27 ++++--- .../net/runelite/injector/InjectUtil.java | 25 +++++++ .../net/runelite/injector/MixinInjector.java | 14 +++- .../net/runelite/injector/raw/RenderDraw.java | 2 +- .../src/main/java/net/runelite/api/Actor.java | 2 +- .../net/runelite/api/DecorativeObject.java | 4 +- .../java/net/runelite/api/DynamicObject.java | 2 +- .../api/{Renderable.java => Entity.java} | 2 +- .../java/net/runelite/api/GameObject.java | 2 +- .../java/net/runelite/api/GraphicsObject.java | 2 +- .../java/net/runelite/api/GroundObject.java | 2 +- .../src/main/java/net/runelite/api/Model.java | 2 +- .../java/net/runelite/api/Projectile.java | 2 +- .../src/main/java/net/runelite/api/Tile.java | 4 +- .../main/java/net/runelite/api/TileItem.java | 2 +- .../java/net/runelite/api/TileItemPile.java | 6 +- .../{SceneTileModel.java => TileModel.java} | 2 +- .../{SceneTilePaint.java => TilePaint.java} | 2 +- .../java/net/runelite/api/WallObject.java | 4 +- .../net/runelite/api/hooks/DrawCallbacks.java | 12 ++-- .../net/runelite/client/callback/Hooks.java | 8 +-- .../plugins/devtools/DevToolsOverlay.java | 8 +-- .../client/plugins/gpu/GpuPlugin.java | 24 +++---- .../client/plugins/gpu/SceneUploader.java | 72 +++++++++---------- .../client/plugins/zalcano/ZalcanoUtil.java | 12 ++-- .../mixins/RSBoundaryObjectMixin.java | 22 +++--- .../mixins/RSFloorDecorationMixin.java | 12 ++-- .../net/runelite/mixins/RSSceneMixin.java | 30 ++++---- .../runelite/mixins/RSTileItemPileMixin.java | 32 ++++----- .../net/runelite/rs/api/RSDynamicObject.java | 4 +- .../java/net/runelite/rs/api/RSEntity.java | 4 +- .../main/java/net/runelite/rs/api/RSTile.java | 8 +-- .../java/net/runelite/rs/api/RSTileModel.java | 4 +- .../java/net/runelite/rs/api/RSTilePaint.java | 4 +- 35 files changed, 209 insertions(+), 160 deletions(-) rename runelite-api/src/main/java/net/runelite/api/{Renderable.java => Entity.java} (97%) rename runelite-api/src/main/java/net/runelite/api/{SceneTileModel.java => TileModel.java} (98%) rename runelite-api/src/main/java/net/runelite/api/{SceneTilePaint.java => TilePaint.java} (98%) diff --git a/deobfuscator/src/main/java/net/runelite/asm/signature/Signature.java b/deobfuscator/src/main/java/net/runelite/asm/signature/Signature.java index c653343899..f3cd779eda 100644 --- a/deobfuscator/src/main/java/net/runelite/asm/signature/Signature.java +++ b/deobfuscator/src/main/java/net/runelite/asm/signature/Signature.java @@ -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)?", "")); + } } diff --git a/injector-plugin/build.gradle b/injector-plugin/build.gradle index 6333cfb192..9270511ff6 100644 --- a/injector-plugin/build.gradle +++ b/injector-plugin/build.gradle @@ -39,13 +39,22 @@ compileJava.doLast() { into "$buildDir" } def path = sourceSets.main.runtimeClasspath - def loader = new URLClassLoader(path.collect { f -> f.toURI().toURL() } as URL[]) - def inject = loader.loadClass('net.runelite.injector.Injector') - String[] jarPaths = [ - deobfuscatedJar.toString(), - vanillaJar.toString(), - injectedClassesPath.toString() - ] - inject.main(jarPaths) - loader.close() + 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(), + vanillaJar.toString(), + injectedClassesPath.toString() + ] + inject.main(jarPaths) + } finally { + if (loader) { + loader.close() + } + } +} +test { + } \ No newline at end of file diff --git a/injector-plugin/src/main/java/net/runelite/injector/InjectUtil.java b/injector-plugin/src/main/java/net/runelite/injector/InjectUtil.java index ff5022957e..2292b349ab 100644 --- a/injector-plugin/src/main/java/net/runelite/injector/InjectUtil.java +++ b/injector-plugin/src/main/java/net/runelite/injector/InjectUtil.java @@ -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); diff --git a/injector-plugin/src/main/java/net/runelite/injector/MixinInjector.java b/injector-plugin/src/main/java/net/runelite/injector/MixinInjector.java index 45acd543d1..bf4627c785 100644 --- a/injector-plugin/src/main/java/net/runelite/injector/MixinInjector.java +++ b/injector-plugin/src/main/java/net/runelite/injector/MixinInjector.java @@ -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) { diff --git a/injector-plugin/src/main/java/net/runelite/injector/raw/RenderDraw.java b/injector-plugin/src/main/java/net/runelite/injector/raw/RenderDraw.java index aa0851ee66..9fb206e671 100644 --- a/injector-plugin/src/main/java/net/runelite/injector/raw/RenderDraw.java +++ b/injector-plugin/src/main/java/net/runelite/injector/raw/RenderDraw.java @@ -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; diff --git a/runelite-api/src/main/java/net/runelite/api/Actor.java b/runelite-api/src/main/java/net/runelite/api/Actor.java index 2fa6ceeed8..a05dc73de0 100644 --- a/runelite-api/src/main/java/net/runelite/api/Actor.java +++ b/runelite-api/src/main/java/net/runelite/api/Actor.java @@ -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. diff --git a/runelite-api/src/main/java/net/runelite/api/DecorativeObject.java b/runelite-api/src/main/java/net/runelite/api/DecorativeObject.java index 03bfc9df44..eb9326beec 100644 --- a/runelite-api/src/main/java/net/runelite/api/DecorativeObject.java +++ b/runelite-api/src/main/java/net/runelite/api/DecorativeObject.java @@ -40,8 +40,8 @@ public interface DecorativeObject extends TileObject Polygon getConvexHull(); Polygon getConvexHull2(); - Renderable getRenderable(); - Renderable getRenderable2(); + Entity getRenderable(); + Entity getRenderable2(); Model getModel1(); diff --git a/runelite-api/src/main/java/net/runelite/api/DynamicObject.java b/runelite-api/src/main/java/net/runelite/api/DynamicObject.java index a1914605e3..3fefde5d17 100644 --- a/runelite-api/src/main/java/net/runelite/api/DynamicObject.java +++ b/runelite-api/src/main/java/net/runelite/api/DynamicObject.java @@ -1,6 +1,6 @@ package net.runelite.api; -public interface DynamicObject extends Renderable +public interface DynamicObject extends Entity { int getAnimationID(); } diff --git a/runelite-api/src/main/java/net/runelite/api/Renderable.java b/runelite-api/src/main/java/net/runelite/api/Entity.java similarity index 97% rename from runelite-api/src/main/java/net/runelite/api/Renderable.java rename to runelite-api/src/main/java/net/runelite/api/Entity.java index d8d2114a8d..035d373641 100644 --- a/runelite-api/src/main/java/net/runelite/api/Renderable.java +++ b/runelite-api/src/main/java/net/runelite/api/Entity.java @@ -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. diff --git a/runelite-api/src/main/java/net/runelite/api/GameObject.java b/runelite-api/src/main/java/net/runelite/api/GameObject.java index c12744acbb..48c5591c2d 100644 --- a/runelite-api/src/main/java/net/runelite/api/GameObject.java +++ b/runelite-api/src/main/java/net/runelite/api/GameObject.java @@ -68,7 +68,7 @@ public interface GameObject extends TileObject */ Angle getOrientation(); - Renderable getRenderable(); + Entity getRenderable(); int getRsOrientation(); diff --git a/runelite-api/src/main/java/net/runelite/api/GraphicsObject.java b/runelite-api/src/main/java/net/runelite/api/GraphicsObject.java index a9edebc90d..0ca14d9faa 100644 --- a/runelite-api/src/main/java/net/runelite/api/GraphicsObject.java +++ b/runelite-api/src/main/java/net/runelite/api/GraphicsObject.java @@ -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. diff --git a/runelite-api/src/main/java/net/runelite/api/GroundObject.java b/runelite-api/src/main/java/net/runelite/api/GroundObject.java index 828f61c8a9..0b333186e3 100644 --- a/runelite-api/src/main/java/net/runelite/api/GroundObject.java +++ b/runelite-api/src/main/java/net/runelite/api/GroundObject.java @@ -29,7 +29,7 @@ package net.runelite.api; */ public interface GroundObject extends TileObject { - Renderable getRenderable(); + Entity getRenderable(); Model getModel(); } diff --git a/runelite-api/src/main/java/net/runelite/api/Model.java b/runelite-api/src/main/java/net/runelite/api/Model.java index 04e52f9534..6adc6d3902 100644 --- a/runelite-api/src/main/java/net/runelite/api/Model.java +++ b/runelite-api/src/main/java/net/runelite/api/Model.java @@ -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. diff --git a/runelite-api/src/main/java/net/runelite/api/Projectile.java b/runelite-api/src/main/java/net/runelite/api/Projectile.java index d298135af9..f12839f43b 100644 --- a/runelite-api/src/main/java/net/runelite/api/Projectile.java +++ b/runelite-api/src/main/java/net/runelite/api/Projectile.java @@ -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. diff --git a/runelite-api/src/main/java/net/runelite/api/Tile.java b/runelite-api/src/main/java/net/runelite/api/Tile.java index 8ae1003375..053fc7ffd3 100644 --- a/runelite-api/src/main/java/net/runelite/api/Tile.java +++ b/runelite-api/src/main/java/net/runelite/api/Tile.java @@ -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. diff --git a/runelite-api/src/main/java/net/runelite/api/TileItem.java b/runelite-api/src/main/java/net/runelite/api/TileItem.java index f9aa6aa2c2..ba3d437dc6 100644 --- a/runelite-api/src/main/java/net/runelite/api/TileItem.java +++ b/runelite-api/src/main/java/net/runelite/api/TileItem.java @@ -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. diff --git a/runelite-api/src/main/java/net/runelite/api/TileItemPile.java b/runelite-api/src/main/java/net/runelite/api/TileItemPile.java index 04c27ed8cc..21cf5ee98b 100644 --- a/runelite-api/src/main/java/net/runelite/api/TileItemPile.java +++ b/runelite-api/src/main/java/net/runelite/api/TileItemPile.java @@ -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(); diff --git a/runelite-api/src/main/java/net/runelite/api/SceneTileModel.java b/runelite-api/src/main/java/net/runelite/api/TileModel.java similarity index 98% rename from runelite-api/src/main/java/net/runelite/api/SceneTileModel.java rename to runelite-api/src/main/java/net/runelite/api/TileModel.java index b7abcab08f..9dd05d97c2 100644 --- a/runelite-api/src/main/java/net/runelite/api/SceneTileModel.java +++ b/runelite-api/src/main/java/net/runelite/api/TileModel.java @@ -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. diff --git a/runelite-api/src/main/java/net/runelite/api/SceneTilePaint.java b/runelite-api/src/main/java/net/runelite/api/TilePaint.java similarity index 98% rename from runelite-api/src/main/java/net/runelite/api/SceneTilePaint.java rename to runelite-api/src/main/java/net/runelite/api/TilePaint.java index 0247c17e8f..491af71d61 100644 --- a/runelite-api/src/main/java/net/runelite/api/SceneTilePaint.java +++ b/runelite-api/src/main/java/net/runelite/api/TilePaint.java @@ -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. diff --git a/runelite-api/src/main/java/net/runelite/api/WallObject.java b/runelite-api/src/main/java/net/runelite/api/WallObject.java index 67bd09fbb5..ee6fbd36c1 100644 --- a/runelite-api/src/main/java/net/runelite/api/WallObject.java +++ b/runelite-api/src/main/java/net/runelite/api/WallObject.java @@ -50,8 +50,8 @@ public interface WallObject extends TileObject */ int getConfig(); - Renderable getRenderable1(); - Renderable getRenderable2(); + Entity getRenderable1(); + Entity getRenderable2(); Model getModelA(); Model getModelB(); diff --git a/runelite-api/src/main/java/net/runelite/api/hooks/DrawCallbacks.java b/runelite-api/src/main/java/net/runelite/api/hooks/DrawCallbacks.java index b76caecd44..df323798c5 100644 --- a/runelite-api/src/main/java/net/runelite/api/hooks/DrawCallbacks.java +++ b/runelite-api/src/main/java/net/runelite/api/hooks/DrawCallbacks.java @@ -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(); diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index d95daefee5..fb42585520 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -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); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java index a64a93e28b..6c49df4d76 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java @@ -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 { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index b2acc3f74f..0155008c0c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -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(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java index 44dfa51dfa..b2fd7a194b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/SceneUploader.java @@ -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(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zalcano/ZalcanoUtil.java b/runelite-client/src/main/java/net/runelite/client/plugins/zalcano/ZalcanoUtil.java index 15023023fb..af37aff7fa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zalcano/ZalcanoUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zalcano/ZalcanoUtil.java @@ -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); } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSBoundaryObjectMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSBoundaryObjectMixin.java index 698e5e4733..0dcf09dbb0 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSBoundaryObjectMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSBoundaryObjectMixin.java @@ -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(); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSFloorDecorationMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSFloorDecorationMixin.java index e1260cb83c..60d46c56ab 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSFloorDecorationMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSFloorDecorationMixin.java @@ -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(); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSSceneMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSSceneMixin.java index dbf31a0150..f723e632f1 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSSceneMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSSceneMixin.java @@ -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()) { diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSTileItemPileMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSTileItemPileMixin.java index f3bae3b7d0..fa4324e50a 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSTileItemPileMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSTileItemPileMixin.java @@ -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(); } } } diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSDynamicObject.java b/runescape-api/src/main/java/net/runelite/rs/api/RSDynamicObject.java index cdaa72277c..4559de66df 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSDynamicObject.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSDynamicObject.java @@ -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(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSEntity.java b/runescape-api/src/main/java/net/runelite/rs/api/RSEntity.java index 0392a0dbbf..efe46c9901 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSEntity.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSEntity.java @@ -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(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSTile.java b/runescape-api/src/main/java/net/runelite/rs/api/RSTile.java index dbc4092311..e76f2dbec1 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSTile.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSTile.java @@ -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(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSTileModel.java b/runescape-api/src/main/java/net/runelite/rs/api/RSTileModel.java index 616380d9dc..65e3ce0f29 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSTileModel.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSTileModel.java @@ -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 diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSTilePaint.java b/runescape-api/src/main/java/net/runelite/rs/api/RSTilePaint.java index 46588a2561..8534304d5f 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSTilePaint.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSTilePaint.java @@ -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