api(mixins): More object methods exposed
This commit is contained in:
@@ -43,6 +43,11 @@ public interface Node
|
||||
*/
|
||||
Node getPrevious();
|
||||
|
||||
/**
|
||||
* Unlink.
|
||||
*/
|
||||
void unlink();
|
||||
|
||||
/**
|
||||
* Gets the hash value of the node.
|
||||
*
|
||||
|
||||
@@ -71,6 +71,56 @@ public interface Scene
|
||||
*/
|
||||
void removeGameObject(GameObject gameObject);
|
||||
|
||||
/**
|
||||
* Remove a game object from the scene
|
||||
* @param plane
|
||||
* @param x
|
||||
* @param y
|
||||
*/
|
||||
void removeGameObject(int plane, int x, int y);
|
||||
|
||||
/**
|
||||
* Remove a game object from the scene
|
||||
* @param wallObject
|
||||
*/
|
||||
void removeWallObject(WallObject wallObject);
|
||||
|
||||
/**
|
||||
* Remove a wall object from the scene
|
||||
* @param plane
|
||||
* @param x
|
||||
* @param y
|
||||
*/
|
||||
void removeWallObject(int plane, int x, int y);
|
||||
|
||||
/**
|
||||
* Remove a decorative object from the scene
|
||||
* @param decorativeObject
|
||||
*/
|
||||
void removeDecorativeObject(DecorativeObject decorativeObject);
|
||||
|
||||
/**
|
||||
* Remove a decorative object from the scene
|
||||
* @param plane
|
||||
* @param x
|
||||
* @param y
|
||||
*/
|
||||
void removeDecorativeObject(int plane, int x, int y);
|
||||
|
||||
/**
|
||||
* Remove a ground object from the scene
|
||||
* @param groundObject
|
||||
*/
|
||||
void removeGroundObject(GroundObject groundObject);
|
||||
|
||||
/**
|
||||
* Remove a ground object from the scene
|
||||
* @param plane
|
||||
* @param x
|
||||
* @param y
|
||||
*/
|
||||
void removeGroundObject(int plane, int x, int y);
|
||||
|
||||
void generateHouses();
|
||||
|
||||
void setRoofRemovalMode(int flags);
|
||||
|
||||
@@ -30,10 +30,13 @@ import static net.runelite.api.Constants.ROOF_FLAG_BETWEEN;
|
||||
import static net.runelite.api.Constants.ROOF_FLAG_DESTINATION;
|
||||
import static net.runelite.api.Constants.ROOF_FLAG_HOVERED;
|
||||
import static net.runelite.api.Constants.ROOF_FLAG_POSITION;
|
||||
import net.runelite.api.DecorativeObject;
|
||||
import net.runelite.api.GroundObject;
|
||||
import net.runelite.api.Perspective;
|
||||
import net.runelite.api.SceneTileModel;
|
||||
import net.runelite.api.SceneTilePaint;
|
||||
import net.runelite.api.Tile;
|
||||
import net.runelite.api.WallObject;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.api.hooks.DrawCallbacks;
|
||||
@@ -1240,4 +1243,61 @@ public abstract class RSSceneMixin implements RSScene
|
||||
{
|
||||
rl$tileShapes = tileShapes;
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public void removeWallObject(WallObject wallObject)
|
||||
{
|
||||
final Tile[][][] tiles = getTiles();
|
||||
|
||||
for (int y = 0; y < 104; ++y)
|
||||
{
|
||||
for (int x = 0; x < 104; ++x)
|
||||
{
|
||||
Tile tile = tiles[client.getPlane()][x][y];
|
||||
if (tile != null && tile.getWallObject() == wallObject)
|
||||
{
|
||||
tile.setWallObject(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public void removeDecorativeObject(DecorativeObject decorativeObject)
|
||||
{
|
||||
final Tile[][][] tiles = getTiles();
|
||||
|
||||
for (int y = 0; y < 104; ++y)
|
||||
{
|
||||
for (int x = 0; x < 104; ++x)
|
||||
{
|
||||
Tile tile = tiles[client.getPlane()][x][y];
|
||||
if (tile != null && tile.getDecorativeObject() == decorativeObject)
|
||||
{
|
||||
tile.setDecorativeObject(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public void removeGroundObject(GroundObject groundObject)
|
||||
{
|
||||
final Tile[][][] tiles = getTiles();
|
||||
|
||||
for (int y = 0; y < 104; ++y)
|
||||
{
|
||||
for (int x = 0; x < 104; ++x)
|
||||
{
|
||||
Tile tile = tiles[client.getPlane()][x][y];
|
||||
if (tile != null && tile.getGroundObject() == groundObject)
|
||||
{
|
||||
tile.setGroundObject(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,11 @@
|
||||
package net.runelite.rs.api;
|
||||
|
||||
import net.runelite.api.DecorativeObject;
|
||||
import net.runelite.api.GameObject;
|
||||
import net.runelite.api.GroundObject;
|
||||
import net.runelite.api.Scene;
|
||||
import net.runelite.api.Tile;
|
||||
import net.runelite.api.WallObject;
|
||||
import net.runelite.mapping.Import;
|
||||
|
||||
public interface RSScene extends Scene
|
||||
@@ -56,6 +59,24 @@ public interface RSScene extends Scene
|
||||
@Import("removeGameObject")
|
||||
void removeGameObject(GameObject gameObject);
|
||||
|
||||
@Import("removeGameObject")
|
||||
void removeGameObject(int plane, int x, int y);
|
||||
|
||||
void removeWallObject(WallObject wallObject);
|
||||
|
||||
@Import("removeBoundaryObject")
|
||||
void removeWallObject(int plane, int x, int y);
|
||||
|
||||
void removeDecorativeObject(DecorativeObject decorativeObject);
|
||||
|
||||
@Import("removeWallDecoration")
|
||||
void removeDecorativeObject(int plane, int x, int y);
|
||||
|
||||
void removeGroundObject(GroundObject groundObject);
|
||||
|
||||
@Import("removeFloorDecoration")
|
||||
void removeGroundObject(int plane, int x, int y);
|
||||
|
||||
byte[][][] getUnderlayIds();
|
||||
void setUnderlayIds(byte[][][] underlayIds);
|
||||
|
||||
|
||||
@@ -721,7 +721,8 @@ public class Scene {
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "(III)Lhn;"
|
||||
)
|
||||
public BoundaryObject method4155(int var1, int var2, int var3) {
|
||||
@Export("getBoundaryObject")
|
||||
public BoundaryObject getBoundaryObject(int var1, int var2, int var3) {
|
||||
Tile var4 = this.tiles[var1][var2][var3];
|
||||
return var4 == null ? null : var4.boundaryObject;
|
||||
}
|
||||
@@ -730,7 +731,8 @@ public class Scene {
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "(III)Lhh;"
|
||||
)
|
||||
public WallDecoration method4156(int var1, int var2, int var3) {
|
||||
@Export("getWallDecoration")
|
||||
public WallDecoration getWallDecoration(int var1, int var2, int var3) {
|
||||
Tile var4 = this.tiles[var1][var2][var3];
|
||||
return var4 == null ? null : var4.wallDecoration;
|
||||
}
|
||||
@@ -739,7 +741,8 @@ public class Scene {
|
||||
@ObfuscatedSignature(
|
||||
descriptor = "(III)Lhj;"
|
||||
)
|
||||
public GameObject method4180(int var1, int var2, int var3) {
|
||||
@Export("getGameObject")
|
||||
public GameObject getGameObject(int var1, int var2, int var3) {
|
||||
Tile var4 = this.tiles[var1][var2][var3];
|
||||
if (var4 == null) {
|
||||
return null;
|
||||
|
||||
@@ -412,7 +412,7 @@ public class ScriptFrame {
|
||||
var9 = Client.field549[var7];
|
||||
if (var3 >= 0 && var4 >= 0 && var3 < 103 && var4 < 103) {
|
||||
if (var9 == 0) {
|
||||
BoundaryObject var33 = CollisionMap.scene.method4155(class391.Client_plane, var3, var4);
|
||||
BoundaryObject var33 = CollisionMap.scene.getBoundaryObject(class391.Client_plane, var3, var4);
|
||||
if (var33 != null) {
|
||||
var11 = HealthBarDefinition.Entity_unpackID(var33.tag);
|
||||
if (var7 == 2) {
|
||||
@@ -425,7 +425,7 @@ public class ScriptFrame {
|
||||
}
|
||||
|
||||
if (var9 == 1) {
|
||||
WallDecoration var43 = CollisionMap.scene.method4156(class391.Client_plane, var3, var4);
|
||||
WallDecoration var43 = CollisionMap.scene.getWallDecoration(class391.Client_plane, var3, var4);
|
||||
if (var43 != null) {
|
||||
var11 = HealthBarDefinition.Entity_unpackID(var43.tag);
|
||||
if (var7 != 4 && var7 != 5) {
|
||||
@@ -444,7 +444,7 @@ public class ScriptFrame {
|
||||
}
|
||||
|
||||
if (var9 == 2) {
|
||||
GameObject var44 = CollisionMap.scene.method4180(class391.Client_plane, var3, var4);
|
||||
GameObject var44 = CollisionMap.scene.getGameObject(class391.Client_plane, var3, var4);
|
||||
if (var7 == 11) {
|
||||
var7 = 10;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user