Add planes to planeless tile objects

This commit is contained in:
Max Weber
2018-03-09 20:03:08 -07:00
parent f3a2a5e29d
commit f560fb9427
11 changed files with 124 additions and 2 deletions

View File

@@ -38,6 +38,8 @@ public interface TileObject
int getY();
int getPlane();
int getId();
WorldPoint getWorldLocation();

View File

@@ -41,6 +41,23 @@ public abstract class RSDecorativeObjectMixin implements RSDecorativeObject
@Shadow("clientInstance")
private static RSClient client;
@Inject
private int decorativeObjectPlane;
@Inject
@Override
public int getPlane()
{
return decorativeObjectPlane;
}
@Inject
@Override
public void setPlane(int plane)
{
this.decorativeObjectPlane = plane;
}
@Inject
private Model getModel()
{

View File

@@ -40,6 +40,23 @@ public abstract class RSGroundObjectMixin implements RSGroundObject
@Shadow("clientInstance")
private static RSClient client;
@Inject
private int groundObjectPlane;
@Inject
@Override
public int getPlane()
{
return groundObjectPlane;
}
@Inject
@Override
public void setPlane(int plane)
{
this.groundObjectPlane = plane;
}
@Inject
private Model getModel()
{

View File

@@ -32,11 +32,27 @@ import net.runelite.rs.api.RSItemLayer;
@Mixin(RSItemLayer.class)
public abstract class RSItemLayerMixin implements RSItemLayer
{
@Inject
private int itemLayerPlane;
@Inject
@Override
public int getPlane()
{
return itemLayerPlane;
}
@Inject
@Override
public void setPlane(int plane)
{
this.itemLayerPlane = plane;
}
@Inject
@Override
public Area getClickbox()
{
throw new UnsupportedOperationException();
}
}

View File

@@ -24,11 +24,16 @@
*/
package net.runelite.mixins;
import net.runelite.api.Renderable;
import net.runelite.api.mixins.Copy;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Replace;
import net.runelite.rs.api.RSDecorativeObject;
import net.runelite.rs.api.RSGroundObject;
import net.runelite.rs.api.RSItemLayer;
import net.runelite.rs.api.RSRegion;
import net.runelite.rs.api.RSWallObject;
@Mixin(RSRegion.class)
public abstract class RSRegionMixin implements RSRegion
@@ -52,4 +57,44 @@ public abstract class RSRegionMixin implements RSRegion
isDrawingRegion = false;
}
}
@Copy("addBoundaryDecoration")
abstract public void rs$addBoundaryDecoration(int plane, int x, int y, int hash, Renderable var5, Renderable var6, int var7, int var8, int var9, int var10, int var11, int var12);
@Replace("addBoundaryDecoration")
public void rl$addBoundaryDecoration(int plane, int x, int y, int hash, Renderable var5, Renderable var6, int var7, int var8, int var9, int var10, int var11, int var12)
{
rs$addBoundaryDecoration(plane, x, y, hash, var5, var6, var7, var8, var9, var10, var11, var12);
((RSDecorativeObject) getTiles()[plane][x][y].getDecorativeObject()).setPlane(plane);
}
@Copy("addItemPile")
abstract public void rs$addItemPile(int plane, int x, int y, int hash, Renderable var5, int var6, Renderable var7, Renderable var8);
@Replace("addItemPile")
public void rl$addItemPile(int plane, int x, int y, int hash, Renderable var5, int var6, Renderable var7, Renderable var8)
{
rs$addItemPile(plane, x, y, hash, var5, var6, var7, var8);
((RSItemLayer) getTiles()[plane][x][y].getItemLayer()).setPlane(plane);
}
@Copy("groundObjectSpawned")
abstract public void rs$groundObjectSpawned(int plane, int x, int y, int hash, Renderable var5, int var6, int var7);
@Replace("groundObjectSpawned")
public void rl$groundObjectSpawned(int plane, int x, int y, int hash, Renderable var5, int var6, int var7)
{
rs$groundObjectSpawned(plane, x, y, hash, var5, var6, var7);
((RSGroundObject) getTiles()[plane][x][y].getGroundObject()).setPlane(plane);
}
@Copy("addBoundary")
abstract public void rs$addBoundary(int plane, int x, int y, int hash, Renderable var5, Renderable var6, int var7, int var8, int var9, int var10);
@Replace("addBoundary")
public void rl$addBoundary(int plane, int x, int y, int hash, Renderable var5, Renderable var6, int var7, int var8, int var9, int var10)
{
rs$addBoundary(plane, x, y, hash, var5, var6, var7, var8, var9, var10);
((RSWallObject) getTiles()[plane][x][y].getWallObject()).setPlane(plane);
}
}

View File

@@ -40,6 +40,23 @@ public abstract class RSWallObjectMixin implements RSWallObject
@Shadow("clientInstance")
private static RSClient client;
@Inject
private int wallPlane;
@Inject
@Override
public int getPlane()
{
return wallPlane;
}
@Inject
@Override
public void setPlane(int plane)
{
this.wallPlane = plane;
}
@Inject
private Model getModelA()
{

View File

@@ -71,7 +71,7 @@ public abstract class TileObjectMixin implements TileObject
@Inject
public WorldPoint getWorldLocation()
{
return WorldPoint.fromLocal(client, getX(), getY(), client.getPlane()); //TODO: use the correct plane
return WorldPoint.fromLocal(client, getX(), getY(), getPlane());
}
@Override

View File

@@ -45,4 +45,6 @@ public interface RSDecorativeObject extends DecorativeObject
@Import("renderable1")
Renderable getRenderable();
void setPlane(int plane);
}

View File

@@ -42,4 +42,6 @@ public interface RSGroundObject extends GroundObject
@Import("renderable")
Renderable getRenderable();
void setPlane(int plane);
}

View File

@@ -56,4 +56,6 @@ public interface RSItemLayer extends ItemLayer
@Import("top")
@Override
RSRenderable getTop();
void setPlane(int plane);
}

View File

@@ -59,4 +59,6 @@ public interface RSWallObject extends WallObject
@Import("config")
@Override
int getConfig();
void setPlane(int plane);
}