fix mixins getting confused between methods
This commit is contained in:
@@ -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)?", ""));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -40,8 +40,8 @@ public interface DecorativeObject extends TileObject
|
||||
Polygon getConvexHull();
|
||||
Polygon getConvexHull2();
|
||||
|
||||
Renderable getRenderable();
|
||||
Renderable getRenderable2();
|
||||
Entity getRenderable();
|
||||
Entity getRenderable2();
|
||||
|
||||
Model getModel1();
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.runelite.api;
|
||||
|
||||
public interface DynamicObject extends Renderable
|
||||
public interface DynamicObject extends Entity
|
||||
{
|
||||
int getAnimationID();
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
@@ -68,7 +68,7 @@ public interface GameObject extends TileObject
|
||||
*/
|
||||
Angle getOrientation();
|
||||
|
||||
Renderable getRenderable();
|
||||
Entity getRenderable();
|
||||
|
||||
int getRsOrientation();
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -29,7 +29,7 @@ package net.runelite.api;
|
||||
*/
|
||||
public interface GroundObject extends TileObject
|
||||
{
|
||||
Renderable getRenderable();
|
||||
Entity getRenderable();
|
||||
|
||||
Model getModel();
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -50,8 +50,8 @@ public interface WallObject extends TileObject
|
||||
*/
|
||||
int getConfig();
|
||||
|
||||
Renderable getRenderable1();
|
||||
Renderable getRenderable2();
|
||||
Entity getRenderable1();
|
||||
Entity getRenderable2();
|
||||
|
||||
Model getModelA();
|
||||
Model getModelB();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user