project: Mixins for HD

This commit is contained in:
Owain van Brakel
2021-09-13 03:58:54 +02:00
parent f2a4b60840
commit 638760057e
16 changed files with 395 additions and 77 deletions

View File

@@ -33,6 +33,7 @@ import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSModel;
import net.runelite.rs.api.RSModelData;
import net.runelite.rs.api.RSVertexNormal;
@Mixin(RSModelData.class)
public abstract class RSModelDataMixin implements RSModelData
@@ -43,6 +44,15 @@ public abstract class RSModelDataMixin implements RSModelData
@Inject
private float[] faceTextureUVCoordinates;
@Inject
private int[] vertexNormalsX;
@Inject
private int[] vertexNormalsY;
@Inject
private int[] vertexNormalsZ;
@Copy("toModel")
@Replace("toModel")
@SuppressWarnings("InfiniteRecursion")
@@ -61,11 +71,50 @@ public abstract class RSModelDataMixin implements RSModelData
computeTextureUVCoordinates();
}
vertexNormals();
RSModel rsModel = (RSModel) model;
rsModel.setVertexNormalsX(vertexNormalsX);
rsModel.setVertexNormalsY(vertexNormalsY);
rsModel.setVertexNormalsZ(vertexNormalsZ);
rsModel.setFaceTextureUVCoordinates(faceTextureUVCoordinates);
return model;
}
@Inject
public void vertexNormals()
{
RSVertexNormal[] vertexNormals = getVertexNormals();
RSVertexNormal[] vertexVertices = getVertexVertices();
if (vertexNormals != null && vertexNormalsX == null)
{
int verticesCount = getVerticesCount();
vertexNormalsX = new int[verticesCount];
vertexNormalsY = new int[verticesCount];
vertexNormalsZ = new int[verticesCount];
for (int i = 0; i < verticesCount; ++i)
{
RSVertexNormal vertexNormal;
if (vertexVertices != null && (vertexNormal = vertexVertices[i]) != null)
{
vertexNormalsX[i] = vertexNormal.getX();
vertexNormalsY[i] = vertexNormal.getY();
vertexNormalsZ[i] = vertexNormal.getZ();
}
else if ((vertexNormal = vertexNormals[i]) != null)
{
vertexNormalsX[i] = vertexNormal.getX();
vertexNormalsY[i] = vertexNormal.getY();
vertexNormalsZ[i] = vertexNormal.getZ();
}
}
}
}
@Inject
public void computeTextureUVCoordinates()
{
@@ -171,6 +220,6 @@ public abstract class RSModelDataMixin implements RSModelData
}
}
this.faceTextureUVCoordinates = faceTextureUCoordinates;
faceTextureUVCoordinates = faceTextureUCoordinates;
}
}