@@ -174,4 +174,9 @@ public class Signature
|
|||||||
return new Signature(arguments, rv);
|
return new Signature(arguments, rv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Signature rsApiToRsClient()
|
||||||
|
{
|
||||||
|
return new Signature(this.toString().replaceAll("net/runelite/(rs/)?api/(RS)?", ""));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,13 +39,22 @@ compileJava.doLast() {
|
|||||||
into "$buildDir"
|
into "$buildDir"
|
||||||
}
|
}
|
||||||
def path = sourceSets.main.runtimeClasspath
|
def path = sourceSets.main.runtimeClasspath
|
||||||
def loader = new URLClassLoader(path.collect { f -> f.toURI().toURL() } as URL[])
|
def loader
|
||||||
def inject = loader.loadClass('net.runelite.injector.Injector')
|
try {
|
||||||
String[] jarPaths = [
|
loader = new URLClassLoader(path.collect { f -> f.toURI().toURL() } as URL[])
|
||||||
deobfuscatedJar.toString(),
|
def inject = loader.loadClass('net.runelite.injector.Injector')
|
||||||
vanillaJar.toString(),
|
String[] jarPaths = [
|
||||||
injectedClassesPath.toString()
|
deobfuscatedJar.toString(),
|
||||||
]
|
vanillaJar.toString(),
|
||||||
inject.main(jarPaths)
|
injectedClassesPath.toString()
|
||||||
loader.close()
|
]
|
||||||
|
inject.main(jarPaths)
|
||||||
|
} finally {
|
||||||
|
if (loader) {
|
||||||
|
loader.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
test {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -45,6 +45,16 @@ public class InjectUtil
|
|||||||
return obfuscatedField;
|
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)
|
public static Type getFieldType(final Field f)
|
||||||
{
|
{
|
||||||
Type type = f.getType();
|
Type type = f.getType();
|
||||||
@@ -97,6 +107,21 @@ public class InjectUtil
|
|||||||
return m;
|
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
|
public static Method findMethod(Inject inject, String name) throws InjectionException
|
||||||
{
|
{
|
||||||
return findMethod(inject, name, null);
|
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.signature.Signature;
|
||||||
import net.runelite.asm.visitors.ClassFileVisitor;
|
import net.runelite.asm.visitors.ClassFileVisitor;
|
||||||
import net.runelite.deob.DeobAnnotations;
|
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.toObClass;
|
||||||
import static net.runelite.injector.InjectUtil.toObField;
|
import static net.runelite.injector.InjectUtil.toObField;
|
||||||
import org.objectweb.asm.ClassReader;
|
import org.objectweb.asm.ClassReader;
|
||||||
@@ -329,9 +331,17 @@ public class MixinInjector
|
|||||||
}
|
}
|
||||||
|
|
||||||
String deobMethodName = (String) copyAnnotation.getElement().getValue();
|
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)
|
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(
|
private static final net.runelite.asm.pool.Method renderDraw = new net.runelite.asm.pool.Method(
|
||||||
new Class("net.runelite.client.callback.Hooks"),
|
new Class("net.runelite.client.callback.Hooks"),
|
||||||
"renderDraw",
|
"renderDraw",
|
||||||
new Signature("(Lnet/runelite/api/Renderable;IIIIIIIIJ)V")
|
new Signature("(Lnet/runelite/api/Entity;IIIIIIIIJ)V")
|
||||||
);
|
);
|
||||||
private final Inject inject;
|
private final Inject inject;
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import net.runelite.api.coords.WorldPoint;
|
|||||||
/**
|
/**
|
||||||
* Represents a RuneScape actor/entity.
|
* Represents a RuneScape actor/entity.
|
||||||
*/
|
*/
|
||||||
public interface Actor extends Renderable
|
public interface Actor extends Entity
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Gets the combat level of the actor.
|
* Gets the combat level of the actor.
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ public interface DecorativeObject extends TileObject
|
|||||||
Polygon getConvexHull();
|
Polygon getConvexHull();
|
||||||
Polygon getConvexHull2();
|
Polygon getConvexHull2();
|
||||||
|
|
||||||
Renderable getRenderable();
|
Entity getRenderable();
|
||||||
Renderable getRenderable2();
|
Entity getRenderable2();
|
||||||
|
|
||||||
Model getModel1();
|
Model getModel1();
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.runelite.api;
|
package net.runelite.api;
|
||||||
|
|
||||||
public interface DynamicObject extends Renderable
|
public interface DynamicObject extends Entity
|
||||||
{
|
{
|
||||||
int getAnimationID();
|
int getAnimationID();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ package net.runelite.api;
|
|||||||
/**
|
/**
|
||||||
* Represents an object that can be rendered.
|
* Represents an object that can be rendered.
|
||||||
*/
|
*/
|
||||||
public interface Renderable extends Node
|
public interface Entity extends Node
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Gets the model of the object.
|
* Gets the model of the object.
|
||||||
@@ -68,7 +68,7 @@ public interface GameObject extends TileObject
|
|||||||
*/
|
*/
|
||||||
Angle getOrientation();
|
Angle getOrientation();
|
||||||
|
|
||||||
Renderable getRenderable();
|
Entity getRenderable();
|
||||||
|
|
||||||
int getRsOrientation();
|
int getRsOrientation();
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import net.runelite.api.coords.LocalPoint;
|
|||||||
/**
|
/**
|
||||||
* Represents a graphics object.
|
* Represents a graphics object.
|
||||||
*/
|
*/
|
||||||
public interface GraphicsObject extends Renderable
|
public interface GraphicsObject extends Entity
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The graphics object ID.
|
* The graphics object ID.
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ package net.runelite.api;
|
|||||||
*/
|
*/
|
||||||
public interface GroundObject extends TileObject
|
public interface GroundObject extends TileObject
|
||||||
{
|
{
|
||||||
Renderable getRenderable();
|
Entity getRenderable();
|
||||||
|
|
||||||
Model getModel();
|
Model getModel();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Represents the model of an object.
|
* 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.
|
* Gets a list of all vertices of the model.
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ package net.runelite.api;
|
|||||||
/**
|
/**
|
||||||
* Represents a projectile entity (ie. cannonball, arrow).
|
* Represents a projectile entity (ie. cannonball, arrow).
|
||||||
*/
|
*/
|
||||||
public interface Projectile extends Renderable
|
public interface Projectile extends Entity
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Gets the ID of the projectile.
|
* Gets the ID of the projectile.
|
||||||
|
|||||||
@@ -73,14 +73,14 @@ public interface Tile
|
|||||||
*
|
*
|
||||||
* @return the paint
|
* @return the paint
|
||||||
*/
|
*/
|
||||||
SceneTilePaint getSceneTilePaint();
|
TilePaint getSceneTilePaint();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the model of the tile in the scene.
|
* Gets the model of the tile in the scene.
|
||||||
*
|
*
|
||||||
* @return the tile model
|
* @return the tile model
|
||||||
*/
|
*/
|
||||||
SceneTileModel getSceneTileModel();
|
TileModel getSceneTileModel();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the location coordinate of the tile in the world.
|
* 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}.
|
* Represents an item inside an {@link TileItemPile}.
|
||||||
*/
|
*/
|
||||||
public interface TileItem extends Renderable
|
public interface TileItem extends Entity
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Gets the items ID.
|
* Gets the items ID.
|
||||||
|
|||||||
@@ -41,21 +41,21 @@ public interface TileItemPile extends TileObject
|
|||||||
*
|
*
|
||||||
* @return the bottom item
|
* @return the bottom item
|
||||||
*/
|
*/
|
||||||
Renderable getBottom();
|
Entity getBottom();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the item at the middle of the pile.
|
* Gets the item at the middle of the pile.
|
||||||
*
|
*
|
||||||
* @return the middle item
|
* @return the middle item
|
||||||
*/
|
*/
|
||||||
Renderable getMiddle();
|
Entity getMiddle();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the item at the top of the pile.
|
* Gets the item at the top of the pile.
|
||||||
*
|
*
|
||||||
* @return the top item
|
* @return the top item
|
||||||
*/
|
*/
|
||||||
Renderable getTop();
|
Entity getTop();
|
||||||
|
|
||||||
Model getModelBottom();
|
Model getModelBottom();
|
||||||
Model getModelMiddle();
|
Model getModelMiddle();
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ package net.runelite.api;
|
|||||||
/**
|
/**
|
||||||
* Represents the model of a tile in the current scene.
|
* Represents the model of a tile in the current scene.
|
||||||
*/
|
*/
|
||||||
public interface SceneTileModel
|
public interface TileModel
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Gets the underlay color of the tile.
|
* 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.
|
* Represents the paint of a tile in the current scene.
|
||||||
*/
|
*/
|
||||||
public interface SceneTilePaint
|
public interface TilePaint
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Gets the RGB value of the paint.
|
* Gets the RGB value of the paint.
|
||||||
@@ -50,8 +50,8 @@ public interface WallObject extends TileObject
|
|||||||
*/
|
*/
|
||||||
int getConfig();
|
int getConfig();
|
||||||
|
|
||||||
Renderable getRenderable1();
|
Entity getRenderable1();
|
||||||
Renderable getRenderable2();
|
Entity getRenderable2();
|
||||||
|
|
||||||
Model getModelA();
|
Model getModelA();
|
||||||
Model getModelB();
|
Model getModelB();
|
||||||
|
|||||||
@@ -24,22 +24,22 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.api.hooks;
|
package net.runelite.api.hooks;
|
||||||
|
|
||||||
import net.runelite.api.Renderable;
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.api.SceneTileModel;
|
import net.runelite.api.TileModel;
|
||||||
import net.runelite.api.SceneTilePaint;
|
import net.runelite.api.TilePaint;
|
||||||
import net.runelite.api.Texture;
|
import net.runelite.api.Texture;
|
||||||
|
|
||||||
public interface DrawCallbacks
|
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,
|
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);
|
int zoom, int centerX, int centerY);
|
||||||
|
|
||||||
|
|
||||||
void drawSceneModel(int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z,
|
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);
|
int zoom, int centerX, int centerY);
|
||||||
|
|
||||||
void draw();
|
void draw();
|
||||||
|
|||||||
@@ -43,10 +43,10 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import net.runelite.api.BufferProvider;
|
import net.runelite.api.BufferProvider;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.Constants;
|
import net.runelite.api.Constants;
|
||||||
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.api.MainBufferProvider;
|
import net.runelite.api.MainBufferProvider;
|
||||||
import net.runelite.api.NullItemID;
|
import net.runelite.api.NullItemID;
|
||||||
import net.runelite.api.RenderOverview;
|
import net.runelite.api.RenderOverview;
|
||||||
import net.runelite.api.Renderable;
|
|
||||||
import net.runelite.api.WorldMapManager;
|
import net.runelite.api.WorldMapManager;
|
||||||
import net.runelite.api.events.BeforeMenuRender;
|
import net.runelite.api.events.BeforeMenuRender;
|
||||||
import net.runelite.api.events.BeforeRender;
|
import net.runelite.api.events.BeforeRender;
|
||||||
@@ -473,16 +473,16 @@ public class Hooks implements Callbacks
|
|||||||
deferredEventBus.replay();
|
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();
|
DrawCallbacks drawCallbacks = client.getDrawCallbacks();
|
||||||
if (drawCallbacks != null)
|
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
|
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.Constants;
|
||||||
import net.runelite.api.DecorativeObject;
|
import net.runelite.api.DecorativeObject;
|
||||||
import net.runelite.api.DynamicObject;
|
import net.runelite.api.DynamicObject;
|
||||||
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.api.GameObject;
|
import net.runelite.api.GameObject;
|
||||||
import net.runelite.api.GraphicsObject;
|
import net.runelite.api.GraphicsObject;
|
||||||
import net.runelite.api.TileItem;
|
import net.runelite.api.TileItem;
|
||||||
@@ -55,7 +56,6 @@ import net.runelite.api.Perspective;
|
|||||||
import net.runelite.api.Player;
|
import net.runelite.api.Player;
|
||||||
import net.runelite.api.Point;
|
import net.runelite.api.Point;
|
||||||
import net.runelite.api.Projectile;
|
import net.runelite.api.Projectile;
|
||||||
import net.runelite.api.Renderable;
|
|
||||||
import net.runelite.api.Scene;
|
import net.runelite.api.Scene;
|
||||||
import net.runelite.api.Tile;
|
import net.runelite.api.Tile;
|
||||||
import net.runelite.api.WallObject;
|
import net.runelite.api.WallObject;
|
||||||
@@ -310,10 +310,10 @@ class DevToolsOverlay extends Overlay
|
|||||||
{
|
{
|
||||||
if (player.getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= MAX_DISTANCE)
|
if (player.getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= MAX_DISTANCE)
|
||||||
{
|
{
|
||||||
Renderable renderable = gameObject.getRenderable();
|
Entity entity = gameObject.getRenderable();
|
||||||
if (renderable instanceof DynamicObject)
|
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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -60,10 +60,10 @@ import net.runelite.api.GameState;
|
|||||||
import net.runelite.api.Model;
|
import net.runelite.api.Model;
|
||||||
import net.runelite.api.NodeCache;
|
import net.runelite.api.NodeCache;
|
||||||
import net.runelite.api.Perspective;
|
import net.runelite.api.Perspective;
|
||||||
import net.runelite.api.Renderable;
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.api.Scene;
|
import net.runelite.api.Scene;
|
||||||
import net.runelite.api.SceneTileModel;
|
import net.runelite.api.TileModel;
|
||||||
import net.runelite.api.SceneTilePaint;
|
import net.runelite.api.TilePaint;
|
||||||
import net.runelite.api.Texture;
|
import net.runelite.api.Texture;
|
||||||
import net.runelite.api.TextureProvider;
|
import net.runelite.api.TextureProvider;
|
||||||
import net.runelite.api.events.ConfigChanged;
|
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,
|
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)
|
int zoom, int centerX, int centerY)
|
||||||
{
|
{
|
||||||
if (paint.getBufferLen() > 0)
|
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,
|
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)
|
int zoom, int centerX, int centerY)
|
||||||
{
|
{
|
||||||
if (model.getBufferLen() > 0)
|
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 orientation
|
||||||
* @param pitchSin
|
* @param pitchSin
|
||||||
* @param pitchCos
|
* @param pitchCos
|
||||||
@@ -1411,12 +1411,12 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
|
|||||||
* @param hash
|
* @param hash
|
||||||
*/
|
*/
|
||||||
@Override
|
@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
|
// 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.calculateBoundsCylinder();
|
||||||
model.calculateExtreme(orientation);
|
model.calculateExtreme(orientation);
|
||||||
@@ -1476,10 +1476,10 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Temporary model (animated or otherwise not a static Model on the scene)
|
// 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)
|
if (model != null)
|
||||||
{
|
{
|
||||||
// Apply height to renderable from the model
|
// Apply height to entity from the model
|
||||||
model.setModelHeight(model.getModelHeight());
|
model.setModelHeight(model.getModelHeight());
|
||||||
|
|
||||||
model.calculateBoundsCylinder();
|
model.calculateBoundsCylinder();
|
||||||
|
|||||||
@@ -35,10 +35,10 @@ import net.runelite.api.GroundObject;
|
|||||||
import net.runelite.api.Model;
|
import net.runelite.api.Model;
|
||||||
import net.runelite.api.Perspective;
|
import net.runelite.api.Perspective;
|
||||||
import net.runelite.api.Point;
|
import net.runelite.api.Point;
|
||||||
import net.runelite.api.Renderable;
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.api.Scene;
|
import net.runelite.api.Scene;
|
||||||
import net.runelite.api.SceneTileModel;
|
import net.runelite.api.TileModel;
|
||||||
import net.runelite.api.SceneTilePaint;
|
import net.runelite.api.TilePaint;
|
||||||
import net.runelite.api.Tile;
|
import net.runelite.api.Tile;
|
||||||
import net.runelite.api.WallObject;
|
import net.runelite.api.WallObject;
|
||||||
import static net.runelite.client.plugins.gpu.GpuPlugin.SMALL_TRIANGLE_COUNT;
|
import static net.runelite.client.plugins.gpu.GpuPlugin.SMALL_TRIANGLE_COUNT;
|
||||||
@@ -100,13 +100,13 @@ class SceneUploader
|
|||||||
reset(bridge);
|
reset(bridge);
|
||||||
}
|
}
|
||||||
|
|
||||||
SceneTilePaint sceneTilePaint = tile.getSceneTilePaint();
|
TilePaint tilePaint = tile.getSceneTilePaint();
|
||||||
if (sceneTilePaint != null)
|
if (tilePaint != null)
|
||||||
{
|
{
|
||||||
sceneTilePaint.setBufferOffset(-1);
|
tilePaint.setBufferOffset(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
SceneTileModel sceneTileModel = tile.getSceneTileModel();
|
TileModel sceneTileModel = tile.getSceneTileModel();
|
||||||
if (sceneTileModel != null)
|
if (sceneTileModel != null)
|
||||||
{
|
{
|
||||||
sceneTileModel.setBufferOffset(-1);
|
sceneTileModel.setBufferOffset(-1);
|
||||||
@@ -159,29 +159,29 @@ class SceneUploader
|
|||||||
upload(bridge, vertexBuffer, uvBuffer);
|
upload(bridge, vertexBuffer, uvBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
SceneTilePaint sceneTilePaint = tile.getSceneTilePaint();
|
TilePaint tilePaint = tile.getSceneTilePaint();
|
||||||
if (sceneTilePaint != null)
|
if (tilePaint != null)
|
||||||
{
|
{
|
||||||
sceneTilePaint.setBufferOffset(offset);
|
tilePaint.setBufferOffset(offset);
|
||||||
if (sceneTilePaint.getTexture() != -1)
|
if (tilePaint.getTexture() != -1)
|
||||||
{
|
{
|
||||||
sceneTilePaint.setUvBufferOffset(uvoffset);
|
tilePaint.setUvBufferOffset(uvoffset);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sceneTilePaint.setUvBufferOffset(-1);
|
tilePaint.setUvBufferOffset(-1);
|
||||||
}
|
}
|
||||||
Point tilePoint = tile.getSceneLocation();
|
Point tilePoint = tile.getSceneLocation();
|
||||||
int len = upload(sceneTilePaint, tile.getRenderLevel(), tilePoint.getX(), tilePoint.getY(), vertexBuffer, uvBuffer);
|
int len = upload(tilePaint, tile.getRenderLevel(), tilePoint.getX(), tilePoint.getY(), vertexBuffer, uvBuffer);
|
||||||
sceneTilePaint.setBufferLen(len);
|
tilePaint.setBufferLen(len);
|
||||||
offset += len;
|
offset += len;
|
||||||
if (sceneTilePaint.getTexture() != -1)
|
if (tilePaint.getTexture() != -1)
|
||||||
{
|
{
|
||||||
uvoffset += len;
|
uvoffset += len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SceneTileModel sceneTileModel = tile.getSceneTileModel();
|
TileModel sceneTileModel = tile.getSceneTileModel();
|
||||||
if (sceneTileModel != null)
|
if (sceneTileModel != null)
|
||||||
{
|
{
|
||||||
sceneTileModel.setBufferOffset(offset);
|
sceneTileModel.setBufferOffset(offset);
|
||||||
@@ -206,42 +206,42 @@ class SceneUploader
|
|||||||
WallObject wallObject = tile.getWallObject();
|
WallObject wallObject = tile.getWallObject();
|
||||||
if (wallObject != null)
|
if (wallObject != null)
|
||||||
{
|
{
|
||||||
Renderable renderable1 = wallObject.getRenderable1();
|
Entity entity1 = wallObject.getRenderable1();
|
||||||
if (renderable1 instanceof Model)
|
if (entity1 instanceof Model)
|
||||||
{
|
{
|
||||||
uploadModel((Model) renderable1, vertexBuffer, uvBuffer);
|
uploadModel((Model) entity1, vertexBuffer, uvBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable renderable2 = wallObject.getRenderable2();
|
Entity entity2 = wallObject.getRenderable2();
|
||||||
if (renderable2 instanceof Model)
|
if (entity2 instanceof Model)
|
||||||
{
|
{
|
||||||
uploadModel((Model) renderable2, vertexBuffer, uvBuffer);
|
uploadModel((Model) entity2, vertexBuffer, uvBuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GroundObject groundObject = tile.getGroundObject();
|
GroundObject groundObject = tile.getGroundObject();
|
||||||
if (groundObject != null)
|
if (groundObject != null)
|
||||||
{
|
{
|
||||||
Renderable renderable = groundObject.getRenderable();
|
Entity entity = groundObject.getRenderable();
|
||||||
if (renderable instanceof Model)
|
if (entity instanceof Model)
|
||||||
{
|
{
|
||||||
uploadModel((Model) renderable, vertexBuffer, uvBuffer);
|
uploadModel((Model) entity, vertexBuffer, uvBuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DecorativeObject decorativeObject = tile.getDecorativeObject();
|
DecorativeObject decorativeObject = tile.getDecorativeObject();
|
||||||
if (decorativeObject != null)
|
if (decorativeObject != null)
|
||||||
{
|
{
|
||||||
Renderable renderable = decorativeObject.getRenderable();
|
Entity entity = decorativeObject.getRenderable();
|
||||||
if (renderable instanceof Model)
|
if (entity instanceof Model)
|
||||||
{
|
{
|
||||||
uploadModel((Model) renderable, vertexBuffer, uvBuffer);
|
uploadModel((Model) entity, vertexBuffer, uvBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable renderable2 = decorativeObject.getRenderable2();
|
Entity entity2 = decorativeObject.getRenderable2();
|
||||||
if (renderable2 instanceof Model)
|
if (entity2 instanceof Model)
|
||||||
{
|
{
|
||||||
uploadModel((Model) renderable2, vertexBuffer, uvBuffer);
|
uploadModel((Model) entity2, vertexBuffer, uvBuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -253,15 +253,15 @@ class SceneUploader
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable renderable = gameObject.getRenderable();
|
Entity entity = gameObject.getRenderable();
|
||||||
if (renderable instanceof Model)
|
if (entity instanceof Model)
|
||||||
{
|
{
|
||||||
uploadModel((Model) gameObject.getRenderable(), vertexBuffer, uvBuffer);
|
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();
|
final int[][][] tileHeights = client.getTileHeights();
|
||||||
|
|
||||||
@@ -319,7 +319,7 @@ class SceneUploader
|
|||||||
return 6;
|
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[] faceX = sceneTileModel.getFaceX();
|
||||||
final int[] faceY = sceneTileModel.getFaceY();
|
final int[] faceY = sceneTileModel.getFaceY();
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import net.runelite.api.AnimationID;
|
|||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.Constants;
|
import net.runelite.api.Constants;
|
||||||
import net.runelite.api.DynamicObject;
|
import net.runelite.api.DynamicObject;
|
||||||
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.api.GameObject;
|
import net.runelite.api.GameObject;
|
||||||
import net.runelite.api.GraphicsObject;
|
import net.runelite.api.GraphicsObject;
|
||||||
import net.runelite.api.InventoryID;
|
import net.runelite.api.InventoryID;
|
||||||
@@ -43,7 +44,6 @@ import net.runelite.api.NpcID;
|
|||||||
import net.runelite.api.ObjectID;
|
import net.runelite.api.ObjectID;
|
||||||
import net.runelite.api.Projectile;
|
import net.runelite.api.Projectile;
|
||||||
import net.runelite.api.ProjectileID;
|
import net.runelite.api.ProjectileID;
|
||||||
import net.runelite.api.Renderable;
|
|
||||||
import net.runelite.api.Tile;
|
import net.runelite.api.Tile;
|
||||||
import net.runelite.api.widgets.Widget;
|
import net.runelite.api.widgets.Widget;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
@@ -123,10 +123,10 @@ public class ZalcanoUtil
|
|||||||
{
|
{
|
||||||
if (client.getLocalPlayer().getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= 2400)
|
if (client.getLocalPlayer().getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= 2400)
|
||||||
{
|
{
|
||||||
Renderable renderable = gameObject.getRenderable();
|
Entity entity = gameObject.getRenderable();
|
||||||
if (renderable instanceof DynamicObject)
|
if (entity instanceof DynamicObject)
|
||||||
{
|
{
|
||||||
if (((DynamicObject) renderable).getAnimationID() == AnimationID.ZALCANO_ROCK_GLOWING)
|
if (((DynamicObject) entity).getAnimationID() == AnimationID.ZALCANO_ROCK_GLOWING)
|
||||||
{
|
{
|
||||||
return gameObject;
|
return gameObject;
|
||||||
}
|
}
|
||||||
@@ -149,8 +149,8 @@ public class ZalcanoUtil
|
|||||||
{
|
{
|
||||||
if (client.getLocalPlayer().getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= 2400)
|
if (client.getLocalPlayer().getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= 2400)
|
||||||
{
|
{
|
||||||
Renderable renderable = gameObject.getRenderable();
|
Entity entity = gameObject.getRenderable();
|
||||||
if (renderable instanceof DynamicObject)
|
if (entity instanceof DynamicObject)
|
||||||
{
|
{
|
||||||
list.add(gameObject);
|
list.add(gameObject);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package net.runelite.mixins;
|
package net.runelite.mixins;
|
||||||
|
|
||||||
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.api.Model;
|
import net.runelite.api.Model;
|
||||||
import net.runelite.api.Perspective;
|
import net.runelite.api.Perspective;
|
||||||
import net.runelite.api.Renderable;
|
|
||||||
import java.awt.geom.Area;
|
import java.awt.geom.Area;
|
||||||
import net.runelite.api.mixins.Inject;
|
import net.runelite.api.mixins.Inject;
|
||||||
import net.runelite.api.mixins.Mixin;
|
import net.runelite.api.mixins.Mixin;
|
||||||
@@ -36,38 +36,38 @@ public abstract class RSBoundaryObjectMixin implements RSBoundaryObject
|
|||||||
@Inject
|
@Inject
|
||||||
public Model getModelA()
|
public Model getModelA()
|
||||||
{
|
{
|
||||||
Renderable renderable = getRenderable1();
|
Entity entity = getRenderable1();
|
||||||
if (renderable == null)
|
if (entity == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (renderable instanceof Model)
|
if (entity instanceof Model)
|
||||||
{
|
{
|
||||||
return (Model) renderable;
|
return (Model) entity;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return renderable.getModel();
|
return entity.getModel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public Model getModelB()
|
public Model getModelB()
|
||||||
{
|
{
|
||||||
Renderable renderable = getRenderable2();
|
Entity entity = getRenderable2();
|
||||||
if (renderable == null)
|
if (entity == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (renderable instanceof Model)
|
if (entity instanceof Model)
|
||||||
{
|
{
|
||||||
return (Model) renderable;
|
return (Model) entity;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return renderable.getModel();
|
return entity.getModel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package net.runelite.mixins;
|
|||||||
|
|
||||||
import net.runelite.api.Model;
|
import net.runelite.api.Model;
|
||||||
import net.runelite.api.Perspective;
|
import net.runelite.api.Perspective;
|
||||||
import net.runelite.api.Renderable;
|
import net.runelite.api.Entity;
|
||||||
import java.awt.geom.Area;
|
import java.awt.geom.Area;
|
||||||
import net.runelite.api.mixins.Inject;
|
import net.runelite.api.mixins.Inject;
|
||||||
import net.runelite.api.mixins.Mixin;
|
import net.runelite.api.mixins.Mixin;
|
||||||
@@ -37,19 +37,19 @@ public abstract class RSFloorDecorationMixin implements RSFloorDecoration
|
|||||||
@Override
|
@Override
|
||||||
public Model getModel()
|
public Model getModel()
|
||||||
{
|
{
|
||||||
Renderable renderable = getRenderable();
|
Entity entity = getRenderable();
|
||||||
if (renderable == null)
|
if (entity == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (renderable instanceof Model)
|
if (entity instanceof Model)
|
||||||
{
|
{
|
||||||
return (Model) renderable;
|
return (Model) entity;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return renderable.getModel();
|
return entity.getModel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,10 +24,10 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.mixins;
|
package net.runelite.mixins;
|
||||||
|
|
||||||
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.api.Perspective;
|
import net.runelite.api.Perspective;
|
||||||
import net.runelite.api.Renderable;
|
import net.runelite.api.TileModel;
|
||||||
import net.runelite.api.SceneTileModel;
|
import net.runelite.api.TilePaint;
|
||||||
import net.runelite.api.SceneTilePaint;
|
|
||||||
import net.runelite.api.Tile;
|
import net.runelite.api.Tile;
|
||||||
import net.runelite.api.hooks.DrawCallbacks;
|
import net.runelite.api.hooks.DrawCallbacks;
|
||||||
import net.runelite.api.mixins.Copy;
|
import net.runelite.api.mixins.Copy;
|
||||||
@@ -391,10 +391,10 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Copy("newWallDecoration")
|
@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")
|
@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);
|
rs$addBoundaryDecoration(plane, x, y, floor, var5, var6, var7, var8, var9, var10, hash, var12);
|
||||||
Tile tile = getTiles()[plane][x][y];
|
Tile tile = getTiles()[plane][x][y];
|
||||||
@@ -409,10 +409,10 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Copy("newGroundItemPile")
|
@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")
|
@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);
|
rs$addItemPile(plane, x, y, hash, var5, var6, var7, var8);
|
||||||
Tile tile = getTiles()[plane][x][y];
|
Tile tile = getTiles()[plane][x][y];
|
||||||
@@ -427,10 +427,10 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Copy("newFloorDecoration")
|
@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")
|
@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);
|
rs$groundObjectSpawned(plane, x, y, floor, var5, hash, var7);
|
||||||
Tile tile = getTiles()[plane][x][y];
|
Tile tile = getTiles()[plane][x][y];
|
||||||
@@ -445,10 +445,10 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Copy("newBoundaryObject")
|
@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")
|
@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);
|
rs$addBoundary(plane, x, y, floor, var5, var6, var7, var8, hash, var10);
|
||||||
Tile tile = getTiles()[plane][x][y];
|
Tile tile = getTiles()[plane][x][y];
|
||||||
@@ -463,10 +463,10 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Copy("drawTileUnderlay")
|
@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")
|
@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())
|
if (!client.isGpu())
|
||||||
{
|
{
|
||||||
@@ -590,10 +590,10 @@ public abstract class RSSceneMixin implements RSScene
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Copy("drawTileOverlay")
|
@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")
|
@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())
|
if (!client.isGpu())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package net.runelite.mixins;
|
package net.runelite.mixins;
|
||||||
|
|
||||||
import java.awt.geom.Area;
|
import java.awt.geom.Area;
|
||||||
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.api.Model;
|
import net.runelite.api.Model;
|
||||||
import net.runelite.api.Renderable;
|
|
||||||
import net.runelite.api.mixins.Inject;
|
import net.runelite.api.mixins.Inject;
|
||||||
import net.runelite.api.mixins.Mixin;
|
import net.runelite.api.mixins.Mixin;
|
||||||
import net.runelite.rs.api.RSTileItemPile;
|
import net.runelite.rs.api.RSTileItemPile;
|
||||||
@@ -38,19 +38,19 @@ public abstract class RSTileItemPileMixin implements RSTileItemPile
|
|||||||
@Override
|
@Override
|
||||||
public Model getModelBottom()
|
public Model getModelBottom()
|
||||||
{
|
{
|
||||||
Renderable renderable = getBottom();
|
Entity entity = getBottom();
|
||||||
if (renderable == null)
|
if (entity == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (renderable instanceof Model)
|
if (entity instanceof Model)
|
||||||
{
|
{
|
||||||
return (Model) renderable;
|
return (Model) entity;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return renderable.getModel();
|
return entity.getModel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,19 +58,19 @@ public abstract class RSTileItemPileMixin implements RSTileItemPile
|
|||||||
@Override
|
@Override
|
||||||
public Model getModelMiddle()
|
public Model getModelMiddle()
|
||||||
{
|
{
|
||||||
Renderable renderable = getMiddle();
|
Entity entity = getMiddle();
|
||||||
if (renderable == null)
|
if (entity == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (renderable instanceof Model)
|
if (entity instanceof Model)
|
||||||
{
|
{
|
||||||
return (Model) renderable;
|
return (Model) entity;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return renderable.getModel();
|
return entity.getModel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,19 +78,19 @@ public abstract class RSTileItemPileMixin implements RSTileItemPile
|
|||||||
@Override
|
@Override
|
||||||
public Model getModelTop()
|
public Model getModelTop()
|
||||||
{
|
{
|
||||||
Renderable renderable = getTop();
|
Entity entity = getTop();
|
||||||
if (renderable == null)
|
if (entity == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (renderable instanceof Model)
|
if (entity instanceof Model)
|
||||||
{
|
{
|
||||||
return (Model) renderable;
|
return (Model) entity;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return renderable.getModel();
|
return entity.getModel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,8 +146,8 @@ public abstract class ScriptVMMixin implements RSClient
|
|||||||
{
|
{
|
||||||
assert isClientThread();
|
assert isClientThread();
|
||||||
assert currentScript == null;
|
assert currentScript == null;
|
||||||
Object[] cargs = new Object[args.length + 1];
|
Object[] cargs = new Object[args.length];
|
||||||
// cargs[0] = id;
|
assert cargs[0] instanceof Integer || cargs[0] instanceof JavaScriptCallback : "The first argument should always be a ScriptID!";
|
||||||
System.arraycopy(args, 0, cargs, 1, args.length);
|
System.arraycopy(args, 0, cargs, 1, args.length);
|
||||||
RSScriptEvent se = createScriptEvent();
|
RSScriptEvent se = createScriptEvent();
|
||||||
se.setArguments(cargs);
|
se.setArguments(cargs);
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package net.runelite.rs.api;
|
package net.runelite.rs.api;
|
||||||
|
|
||||||
import net.runelite.api.DynamicObject;
|
import net.runelite.api.DynamicObject;
|
||||||
import net.runelite.api.Renderable;
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.mapping.Import;
|
import net.runelite.mapping.Import;
|
||||||
|
|
||||||
public interface RSDynamicObject extends RSEntity, DynamicObject, Renderable
|
public interface RSDynamicObject extends RSEntity, DynamicObject, Entity
|
||||||
{
|
{
|
||||||
@Import("id")
|
@Import("id")
|
||||||
int getId();
|
int getId();
|
||||||
|
|||||||
@@ -24,10 +24,10 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.rs.api;
|
package net.runelite.rs.api;
|
||||||
|
|
||||||
import net.runelite.api.Renderable;
|
import net.runelite.api.Entity;
|
||||||
import net.runelite.mapping.Import;
|
import net.runelite.mapping.Import;
|
||||||
|
|
||||||
public interface RSEntity extends RSNode, Renderable
|
public interface RSEntity extends RSNode, Entity
|
||||||
{
|
{
|
||||||
@Import("height")
|
@Import("height")
|
||||||
int getModelHeight();
|
int getModelHeight();
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import net.runelite.api.DecorativeObject;
|
|||||||
import net.runelite.api.GameObject;
|
import net.runelite.api.GameObject;
|
||||||
import net.runelite.api.GroundObject;
|
import net.runelite.api.GroundObject;
|
||||||
import net.runelite.api.TileItemPile;
|
import net.runelite.api.TileItemPile;
|
||||||
import net.runelite.api.SceneTileModel;
|
import net.runelite.api.TileModel;
|
||||||
import net.runelite.api.SceneTilePaint;
|
import net.runelite.api.TilePaint;
|
||||||
import net.runelite.api.Tile;
|
import net.runelite.api.Tile;
|
||||||
import net.runelite.api.WallObject;
|
import net.runelite.api.WallObject;
|
||||||
import net.runelite.mapping.Import;
|
import net.runelite.mapping.Import;
|
||||||
@@ -34,11 +34,11 @@ public interface RSTile extends Tile
|
|||||||
|
|
||||||
@Import("paint")
|
@Import("paint")
|
||||||
@Override
|
@Override
|
||||||
SceneTilePaint getSceneTilePaint();
|
TilePaint getSceneTilePaint();
|
||||||
|
|
||||||
@Import("model")
|
@Import("model")
|
||||||
@Override
|
@Override
|
||||||
SceneTileModel getSceneTileModel();
|
TileModel getSceneTileModel();
|
||||||
|
|
||||||
@Import("x")
|
@Import("x")
|
||||||
int getX();
|
int getX();
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package net.runelite.rs.api;
|
package net.runelite.rs.api;
|
||||||
|
|
||||||
import net.runelite.api.SceneTileModel;
|
import net.runelite.api.TileModel;
|
||||||
import net.runelite.mapping.Import;
|
import net.runelite.mapping.Import;
|
||||||
|
|
||||||
public interface RSTileModel extends SceneTileModel
|
public interface RSTileModel extends TileModel
|
||||||
{
|
{
|
||||||
@Import("underlayRgb")
|
@Import("underlayRgb")
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package net.runelite.rs.api;
|
package net.runelite.rs.api;
|
||||||
|
|
||||||
import net.runelite.api.SceneTilePaint;
|
import net.runelite.api.TilePaint;
|
||||||
import net.runelite.mapping.Import;
|
import net.runelite.mapping.Import;
|
||||||
|
|
||||||
public interface RSTilePaint extends SceneTilePaint
|
public interface RSTilePaint extends TilePaint
|
||||||
{
|
{
|
||||||
@Import("rgb")
|
@Import("rgb")
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user