Merge pull request #3134 from open-osrs/upstream-2002
This commit is contained in:
@@ -25,9 +25,9 @@
|
|||||||
|
|
||||||
object ProjectVersions {
|
object ProjectVersions {
|
||||||
const val launcherVersion = "2.2.0"
|
const val launcherVersion = "2.2.0"
|
||||||
const val rlVersion = "1.8.11"
|
const val rlVersion = "1.8.12"
|
||||||
|
|
||||||
const val openosrsVersion = "4.20.1"
|
const val openosrsVersion = "4.20.2"
|
||||||
|
|
||||||
const val rsversion = 203
|
const val rsversion = 203
|
||||||
const val cacheversion = 165
|
const val cacheversion = 165
|
||||||
|
|||||||
+184
-195
@@ -1088,325 +1088,314 @@ public class ModelLoader
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void decodeOldFormat(ModelDefinition def, byte[] var1)
|
void decodeOldFormat(ModelDefinition def, byte[] inputData)
|
||||||
{
|
{
|
||||||
boolean var2 = false;
|
boolean usesFaceRenderTypes = false;
|
||||||
boolean var3 = false;
|
boolean usesFaceTextures = false;
|
||||||
InputStream var4 = new InputStream(var1);
|
InputStream stream1 = new InputStream(inputData);
|
||||||
InputStream var5 = new InputStream(var1);
|
InputStream stream2 = new InputStream(inputData);
|
||||||
InputStream var6 = new InputStream(var1);
|
InputStream stream3 = new InputStream(inputData);
|
||||||
InputStream var7 = new InputStream(var1);
|
InputStream stream4 = new InputStream(inputData);
|
||||||
InputStream var8 = new InputStream(var1);
|
InputStream stream5 = new InputStream(inputData);
|
||||||
var4.setOffset(var1.length - 18);
|
stream1.setOffset(inputData.length - 18);
|
||||||
int var9 = var4.readUnsignedShort();
|
int vertexCount = stream1.readUnsignedShort();
|
||||||
int var10 = var4.readUnsignedShort();
|
int faceCount = stream1.readUnsignedShort();
|
||||||
int var11 = var4.readUnsignedByte();
|
int textureCount = stream1.readUnsignedByte();
|
||||||
int var12 = var4.readUnsignedByte();
|
int isTextured = stream1.readUnsignedByte();
|
||||||
int var13 = var4.readUnsignedByte();
|
int faceRenderPriority = stream1.readUnsignedByte();
|
||||||
int var14 = var4.readUnsignedByte();
|
int hasFaceTransparencies = stream1.readUnsignedByte();
|
||||||
int var15 = var4.readUnsignedByte();
|
int hasPackedTransparencyVertexGroups = stream1.readUnsignedByte();
|
||||||
int var16 = var4.readUnsignedByte();
|
int hasPackedVertexGroups = stream1.readUnsignedByte();
|
||||||
int var17 = var4.readUnsignedShort();
|
int vertexXDataByteCount = stream1.readUnsignedShort();
|
||||||
int var18 = var4.readUnsignedShort();
|
int vertexYDataByteCount = stream1.readUnsignedShort();
|
||||||
int var19 = var4.readUnsignedShort();
|
int vertezZDataByteCount = stream1.readUnsignedShort();
|
||||||
int var20 = var4.readUnsignedShort();
|
int faceIndexDataByteCount = stream1.readUnsignedShort();
|
||||||
byte var21 = 0;
|
byte offsetOfVertexFlags = 0;
|
||||||
int var22 = var21 + var9;
|
int dataOffset = offsetOfVertexFlags + vertexCount;
|
||||||
int var23 = var22;
|
int offsetOfFaceIndexCompressionTypes = dataOffset;
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
int var24 = var22;
|
int offsetOfFaceRenderPriorities = dataOffset;
|
||||||
if (var13 == 255)
|
if (faceRenderPriority == 255)
|
||||||
{
|
{
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var25 = var22;
|
int offsetOfPackedTransparencyVertexGroups = dataOffset;
|
||||||
if (var15 == 1)
|
if (hasPackedTransparencyVertexGroups == 1)
|
||||||
{
|
{
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var26 = var22;
|
int offsetOfFaceTextureFlags = dataOffset;
|
||||||
if (var12 == 1)
|
if (isTextured == 1)
|
||||||
{
|
{
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var27 = var22;
|
int offsetOfPackedVertexGroups = dataOffset;
|
||||||
if (var16 == 1)
|
if (hasPackedVertexGroups == 1)
|
||||||
{
|
{
|
||||||
var22 += var9;
|
dataOffset += vertexCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var28 = var22;
|
int offsetOfFaceTransparencies = dataOffset;
|
||||||
if (var14 == 1)
|
if (hasFaceTransparencies == 1)
|
||||||
{
|
{
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var29 = var22;
|
int offsetOfFaceIndexData = dataOffset;
|
||||||
var22 += var20;
|
dataOffset += faceIndexDataByteCount;
|
||||||
int var30 = var22;
|
int offsetOfFaceColorsOrFaceTextures = dataOffset;
|
||||||
var22 += var10 * 2;
|
dataOffset += faceCount * 2;
|
||||||
int var31 = var22;
|
int offsetOfTextureIndices = dataOffset;
|
||||||
var22 += var11 * 6;
|
dataOffset += textureCount * 6;
|
||||||
int var32 = var22;
|
int offsetOfVertexXData = dataOffset;
|
||||||
var22 += var17;
|
dataOffset += vertexXDataByteCount;
|
||||||
int var33 = var22;
|
int offsetOfVertexYData = dataOffset;
|
||||||
var22 += var18;
|
dataOffset += vertexYDataByteCount;
|
||||||
int var10000 = var22 + var19;
|
int offsetOfVertexZData = dataOffset;
|
||||||
def.vertexCount = var9;
|
def.vertexCount = vertexCount;
|
||||||
def.faceCount = var10;
|
def.faceCount = faceCount;
|
||||||
def.numTextureFaces = var11;
|
def.numTextureFaces = textureCount;
|
||||||
def.vertexX = new int[var9];
|
def.vertexX = new int[vertexCount];
|
||||||
def.vertexY = new int[var9];
|
def.vertexY = new int[vertexCount];
|
||||||
def.vertexZ = new int[var9];
|
def.vertexZ = new int[vertexCount];
|
||||||
def.faceIndices1 = new int[var10];
|
def.faceIndices1 = new int[faceCount];
|
||||||
def.faceIndices2 = new int[var10];
|
def.faceIndices2 = new int[faceCount];
|
||||||
def.faceIndices3 = new int[var10];
|
def.faceIndices3 = new int[faceCount];
|
||||||
if (var11 > 0)
|
if (textureCount > 0)
|
||||||
{
|
{
|
||||||
def.textureRenderTypes = new byte[var11];
|
def.textureRenderTypes = new byte[textureCount];
|
||||||
def.texIndices1 = new short[var11];
|
def.texIndices1 = new short[textureCount];
|
||||||
def.texIndices2 = new short[var11];
|
def.texIndices2 = new short[textureCount];
|
||||||
def.texIndices3 = new short[var11];
|
def.texIndices3 = new short[textureCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var16 == 1)
|
if (hasPackedVertexGroups == 1)
|
||||||
{
|
{
|
||||||
def.packedVertexGroups = new int[var9];
|
def.packedVertexGroups = new int[vertexCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var12 == 1)
|
if (isTextured == 1)
|
||||||
{
|
{
|
||||||
def.faceRenderTypes = new byte[var10];
|
def.faceRenderTypes = new byte[faceCount];
|
||||||
def.textureCoords = new byte[var10];
|
def.textureCoords = new byte[faceCount];
|
||||||
def.faceTextures = new short[var10];
|
def.faceTextures = new short[faceCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var13 == 255)
|
if (faceRenderPriority == 255)
|
||||||
{
|
{
|
||||||
def.faceRenderPriorities = new byte[var10];
|
def.faceRenderPriorities = new byte[faceCount];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
def.priority = (byte) var13;
|
def.priority = (byte) faceRenderPriority;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var14 == 1)
|
if (hasFaceTransparencies == 1)
|
||||||
{
|
{
|
||||||
def.faceTransparencies = new byte[var10];
|
def.faceTransparencies = new byte[faceCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var15 == 1)
|
if (hasPackedTransparencyVertexGroups == 1)
|
||||||
{
|
{
|
||||||
def.packedTransparencyVertexGroups = new int[var10];
|
def.packedTransparencyVertexGroups = new int[faceCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
def.faceColors = new short[var10];
|
def.faceColors = new short[faceCount];
|
||||||
var4.setOffset(var21);
|
stream1.setOffset(offsetOfVertexFlags);
|
||||||
var5.setOffset(var32);
|
stream2.setOffset(offsetOfVertexXData);
|
||||||
var6.setOffset(var33);
|
stream3.setOffset(offsetOfVertexYData);
|
||||||
var7.setOffset(var22);
|
stream4.setOffset(offsetOfVertexZData);
|
||||||
var8.setOffset(var27);
|
stream5.setOffset(offsetOfPackedVertexGroups);
|
||||||
int var35 = 0;
|
int previousVertexX = 0;
|
||||||
int var36 = 0;
|
int previousVertexY = 0;
|
||||||
int var37 = 0;
|
int previousVertexZ = 0;
|
||||||
|
|
||||||
int var38;
|
for (int i = 0; i < vertexCount; ++i)
|
||||||
int var39;
|
|
||||||
int var40;
|
|
||||||
int var41;
|
|
||||||
int var42;
|
|
||||||
for (var38 = 0; var38 < var9; ++var38)
|
|
||||||
{
|
{
|
||||||
var39 = var4.readUnsignedByte();
|
int vertexFlags = stream1.readUnsignedByte();
|
||||||
var40 = 0;
|
int deltaX = 0;
|
||||||
if ((var39 & 1) != 0)
|
if ((vertexFlags & 1) != 0)
|
||||||
{
|
{
|
||||||
var40 = var5.readShortSmart();
|
deltaX = stream2.readShortSmart();
|
||||||
}
|
}
|
||||||
|
|
||||||
var41 = 0;
|
int deltaY = 0;
|
||||||
if ((var39 & 2) != 0)
|
if ((vertexFlags & 2) != 0)
|
||||||
{
|
{
|
||||||
var41 = var6.readShortSmart();
|
deltaY = stream3.readShortSmart();
|
||||||
}
|
}
|
||||||
|
|
||||||
var42 = 0;
|
int deltaZ = 0;
|
||||||
if ((var39 & 4) != 0)
|
if ((vertexFlags & 4) != 0)
|
||||||
{
|
{
|
||||||
var42 = var7.readShortSmart();
|
deltaZ = stream4.readShortSmart();
|
||||||
}
|
}
|
||||||
|
|
||||||
def.vertexX[var38] = var35 + var40;
|
def.vertexX[i] = previousVertexX + deltaX;
|
||||||
def.vertexY[var38] = var36 + var41;
|
def.vertexY[i] = previousVertexY + deltaY;
|
||||||
def.vertexZ[var38] = var37 + var42;
|
def.vertexZ[i] = previousVertexZ + deltaZ;
|
||||||
var35 = def.vertexX[var38];
|
previousVertexX = def.vertexX[i];
|
||||||
var36 = def.vertexY[var38];
|
previousVertexY = def.vertexY[i];
|
||||||
var37 = def.vertexZ[var38];
|
previousVertexZ = def.vertexZ[i];
|
||||||
if (var16 == 1)
|
if (hasPackedVertexGroups == 1)
|
||||||
{
|
{
|
||||||
def.packedVertexGroups[var38] = var8.readUnsignedByte();
|
def.packedVertexGroups[i] = stream5.readUnsignedByte();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var4.setOffset(var30);
|
stream1.setOffset(offsetOfFaceColorsOrFaceTextures);
|
||||||
var5.setOffset(var26);
|
stream2.setOffset(offsetOfFaceTextureFlags);
|
||||||
var6.setOffset(var24);
|
stream3.setOffset(offsetOfFaceRenderPriorities);
|
||||||
var7.setOffset(var28);
|
stream4.setOffset(offsetOfFaceTransparencies);
|
||||||
var8.setOffset(var25);
|
stream5.setOffset(offsetOfPackedTransparencyVertexGroups);
|
||||||
|
|
||||||
for (var38 = 0; var38 < var10; ++var38)
|
for (int i = 0; i < faceCount; ++i)
|
||||||
{
|
{
|
||||||
def.faceColors[var38] = (short) var4.readUnsignedShort();
|
def.faceColors[i] = (short) stream1.readUnsignedShort();
|
||||||
if (var12 == 1)
|
if (isTextured == 1)
|
||||||
{
|
{
|
||||||
var39 = var5.readUnsignedByte();
|
int faceTextureFlags = stream2.readUnsignedByte();
|
||||||
if ((var39 & 1) == 1)
|
if ((faceTextureFlags & 1) == 1)
|
||||||
{
|
{
|
||||||
def.faceRenderTypes[var38] = 1;
|
def.faceRenderTypes[i] = 1;
|
||||||
var2 = true;
|
usesFaceRenderTypes = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
def.faceRenderTypes[var38] = 0;
|
def.faceRenderTypes[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((var39 & 2) == 2)
|
if ((faceTextureFlags & 2) == 2)
|
||||||
{
|
{
|
||||||
def.textureCoords[var38] = (byte) (var39 >> 2);
|
def.textureCoords[i] = (byte) (faceTextureFlags >> 2);
|
||||||
def.faceTextures[var38] = def.faceColors[var38];
|
def.faceTextures[i] = def.faceColors[i];
|
||||||
def.faceColors[var38] = 127;
|
def.faceColors[i] = 127;
|
||||||
if (def.faceTextures[var38] != -1)
|
if (def.faceTextures[i] != -1)
|
||||||
{
|
{
|
||||||
var3 = true;
|
usesFaceTextures = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
def.textureCoords[var38] = -1;
|
def.textureCoords[i] = -1;
|
||||||
def.faceTextures[var38] = -1;
|
def.faceTextures[i] = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var13 == 255)
|
if (faceRenderPriority == 255)
|
||||||
{
|
{
|
||||||
def.faceRenderPriorities[var38] = var6.readByte();
|
def.faceRenderPriorities[i] = stream3.readByte();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var14 == 1)
|
if (hasFaceTransparencies == 1)
|
||||||
{
|
{
|
||||||
def.faceTransparencies[var38] = var7.readByte();
|
def.faceTransparencies[i] = stream4.readByte();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var15 == 1)
|
if (hasPackedTransparencyVertexGroups == 1)
|
||||||
{
|
{
|
||||||
def.packedTransparencyVertexGroups[var38] = var8.readUnsignedByte();
|
def.packedTransparencyVertexGroups[i] = stream5.readUnsignedByte();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var4.setOffset(var29);
|
stream1.setOffset(offsetOfFaceIndexData);
|
||||||
var5.setOffset(var23);
|
stream2.setOffset(offsetOfFaceIndexCompressionTypes);
|
||||||
var38 = 0;
|
int previousIndex1 = 0;
|
||||||
var39 = 0;
|
int previousIndex2 = 0;
|
||||||
var40 = 0;
|
int previousIndex3 = 0;
|
||||||
var41 = 0;
|
|
||||||
|
|
||||||
int var43;
|
for (int i = 0; i < faceCount; ++i)
|
||||||
int var44;
|
|
||||||
for (var42 = 0; var42 < var10; ++var42)
|
|
||||||
{
|
{
|
||||||
var43 = var5.readUnsignedByte();
|
int faceIndexCompressionType = stream2.readUnsignedByte();
|
||||||
if (var43 == 1)
|
if (faceIndexCompressionType == 1)
|
||||||
{
|
{
|
||||||
var38 = var4.readShortSmart() + var41;
|
previousIndex1 = stream1.readShortSmart() + previousIndex3;
|
||||||
var39 = var4.readShortSmart() + var38;
|
previousIndex2 = stream1.readShortSmart() + previousIndex1;
|
||||||
var40 = var4.readShortSmart() + var39;
|
previousIndex3 = stream1.readShortSmart() + previousIndex2;
|
||||||
var41 = var40;
|
def.faceIndices1[i] = previousIndex1;
|
||||||
def.faceIndices1[var42] = var38;
|
def.faceIndices2[i] = previousIndex2;
|
||||||
def.faceIndices2[var42] = var39;
|
def.faceIndices3[i] = previousIndex3;
|
||||||
def.faceIndices3[var42] = var40;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var43 == 2)
|
if (faceIndexCompressionType == 2)
|
||||||
{
|
{
|
||||||
var39 = var40;
|
previousIndex2 = previousIndex3;
|
||||||
var40 = var4.readShortSmart() + var41;
|
previousIndex3 = stream1.readShortSmart() + previousIndex3;
|
||||||
var41 = var40;
|
def.faceIndices1[i] = previousIndex1;
|
||||||
def.faceIndices1[var42] = var38;
|
def.faceIndices2[i] = previousIndex2;
|
||||||
def.faceIndices2[var42] = var39;
|
def.faceIndices3[i] = previousIndex3;
|
||||||
def.faceIndices3[var42] = var40;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var43 == 3)
|
if (faceIndexCompressionType == 3)
|
||||||
{
|
{
|
||||||
var38 = var40;
|
previousIndex1 = previousIndex3;
|
||||||
var40 = var4.readShortSmart() + var41;
|
previousIndex3 = stream1.readShortSmart() + previousIndex3;
|
||||||
var41 = var40;
|
def.faceIndices1[i] = previousIndex1;
|
||||||
def.faceIndices1[var42] = var38;
|
def.faceIndices2[i] = previousIndex2;
|
||||||
def.faceIndices2[var42] = var39;
|
def.faceIndices3[i] = previousIndex3;
|
||||||
def.faceIndices3[var42] = var40;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var43 == 4)
|
if (faceIndexCompressionType == 4)
|
||||||
{
|
{
|
||||||
var44 = var38;
|
int swap = previousIndex1;
|
||||||
var38 = var39;
|
previousIndex1 = previousIndex2;
|
||||||
var39 = var44;
|
previousIndex2 = swap;
|
||||||
var40 = var4.readShortSmart() + var41;
|
previousIndex3 = stream1.readShortSmart() + previousIndex3;
|
||||||
var41 = var40;
|
def.faceIndices1[i] = previousIndex1;
|
||||||
def.faceIndices1[var42] = var38;
|
def.faceIndices2[i] = previousIndex2;
|
||||||
def.faceIndices2[var42] = var44;
|
def.faceIndices3[i] = previousIndex3;
|
||||||
def.faceIndices3[var42] = var40;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var4.setOffset(var31);
|
stream1.setOffset(offsetOfTextureIndices);
|
||||||
|
|
||||||
for (var42 = 0; var42 < var11; ++var42)
|
for (int i = 0; i < textureCount; ++i)
|
||||||
{
|
{
|
||||||
def.textureRenderTypes[var42] = 0;
|
def.textureRenderTypes[i] = 0;
|
||||||
def.texIndices1[var42] = (short) var4.readUnsignedShort();
|
def.texIndices1[i] = (short) stream1.readUnsignedShort();
|
||||||
def.texIndices2[var42] = (short) var4.readUnsignedShort();
|
def.texIndices2[i] = (short) stream1.readUnsignedShort();
|
||||||
def.texIndices3[var42] = (short) var4.readUnsignedShort();
|
def.texIndices3[i] = (short) stream1.readUnsignedShort();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (def.textureCoords != null)
|
if (def.textureCoords != null)
|
||||||
{
|
{
|
||||||
boolean var45 = false;
|
boolean usesTextureCoords = false;
|
||||||
|
|
||||||
for (var43 = 0; var43 < var10; ++var43)
|
for (int i = 0; i < faceCount; ++i)
|
||||||
{
|
{
|
||||||
var44 = def.textureCoords[var43] & 255;
|
int coord = def.textureCoords[i] & 255;
|
||||||
if (var44 != 255)
|
if (coord != 255)
|
||||||
{
|
{
|
||||||
if (def.faceIndices1[var43] == (def.texIndices1[var44] & '\uffff') && def.faceIndices2[var43] == (def.texIndices2[var44] & '\uffff') && def.faceIndices3[var43] == (def.texIndices3[var44] & '\uffff'))
|
if (def.faceIndices1[i] == (def.texIndices1[coord] & '\uffff') && def.faceIndices2[i] == (def.texIndices2[coord] & '\uffff') && def.faceIndices3[i] == (def.texIndices3[coord] & '\uffff'))
|
||||||
{
|
{
|
||||||
def.textureCoords[var43] = -1;
|
def.textureCoords[i] = -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var45 = true;
|
usesTextureCoords = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!var45)
|
if (!usesTextureCoords)
|
||||||
{
|
{
|
||||||
def.textureCoords = null;
|
def.textureCoords = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!var3)
|
if (!usesFaceTextures)
|
||||||
{
|
{
|
||||||
def.faceTextures = null;
|
def.faceTextures = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!var2)
|
if (!usesFaceRenderTypes)
|
||||||
{
|
{
|
||||||
def.faceRenderTypes = null;
|
def.faceRenderTypes = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12370,5 +12370,37 @@ public final class ItemID
|
|||||||
public static final int STRONGBONES_BONE = 26593;
|
public static final int STRONGBONES_BONE = 26593;
|
||||||
public static final int GRUBFOOT = 26594;
|
public static final int GRUBFOOT = 26594;
|
||||||
public static final int ZANIK_26595 = 26595;
|
public static final int ZANIK_26595 = 26595;
|
||||||
|
public static final int NOTES_26596 = 26596;
|
||||||
|
public static final int DESERT_BAIT = 26598;
|
||||||
|
public static final int TINY_FISH = 26600;
|
||||||
|
public static final int OSMANS_REPORT = 26602;
|
||||||
|
public static final int TREASURE_CLUE_ONE = 26605;
|
||||||
|
public static final int TREASURE_CLUE_TWO = 26607;
|
||||||
|
public static final int TREASURE_CLUE_THREE = 26609;
|
||||||
|
public static final int ZEKES_CHALLENGE_SCROLL = 26611;
|
||||||
|
public static final int CAPT_ARNAVS_CHEST = 26613;
|
||||||
|
public static final int BUCKET_COOKOUT = 26615;
|
||||||
|
public static final int BUCKET_OF_WATER_COOKOUT = 26617;
|
||||||
|
public static final int POT_COOKOUT = 26619;
|
||||||
|
public static final int POT_OF_FLOUR_COOKOUT = 26621;
|
||||||
|
public static final int TOMATO_COOKOUT = 26623;
|
||||||
|
public static final int CHEESE_COOKOUT = 26625;
|
||||||
|
public static final int BANANA_COOKOUT = 26627;
|
||||||
|
public static final int PIZZA_BASE_COOKOUT = 26629;
|
||||||
|
public static final int INCOMPLETE_PIZZA_COOKOUT = 26631;
|
||||||
|
public static final int UNCOOKED_PIZZA_COOKOUT = 26633;
|
||||||
|
public static final int PLAIN_PIZZA_COOKOUT = 26635;
|
||||||
|
public static final int BURNT_PIZZA_COOKOUT = 26637;
|
||||||
|
public static final int BREAD_DOUGH_COOKOUT = 26639;
|
||||||
|
public static final int BREAD_COOKOUT = 26641;
|
||||||
|
public static final int BURNT_BREAD_COOKOUT = 26643;
|
||||||
|
public static final int BANANA_PIZZA_COOKOUT = 26645;
|
||||||
|
public static final int BURNT_BANANA_PIZZA_COOKOUT = 26647;
|
||||||
|
public static final int SKIS = 26649;
|
||||||
|
public static final int LOOT_KEY = 26651;
|
||||||
|
public static final int LOOT_KEY_26652 = 26652;
|
||||||
|
public static final int LOOT_KEY_26653 = 26653;
|
||||||
|
public static final int LOOT_KEY_26654 = 26654;
|
||||||
|
public static final int LOOT_KEY_26655 = 26655;
|
||||||
/* This file is automatically generated. Do not edit. */
|
/* This file is automatically generated. Do not edit. */
|
||||||
}
|
}
|
||||||
@@ -8747,8 +8747,8 @@ public final class NpcID
|
|||||||
public static final int ZAMORAKIAN_ACOLYTE = 10379;
|
public static final int ZAMORAKIAN_ACOLYTE = 10379;
|
||||||
public static final int ZAMORAKIAN_ACOLYTE_10380 = 10380;
|
public static final int ZAMORAKIAN_ACOLYTE_10380 = 10380;
|
||||||
public static final int ZAMORAKIAN_ACOLYTE_10381 = 10381;
|
public static final int ZAMORAKIAN_ACOLYTE_10381 = 10381;
|
||||||
public static final int REFUGEE = 10382;
|
public static final int SKULLY = 10382;
|
||||||
public static final int REFUGEE_10383 = 10383;
|
public static final int REFUGEE = 10383;
|
||||||
public static final int REFUGEE_10384 = 10384;
|
public static final int REFUGEE_10384 = 10384;
|
||||||
public static final int REFUGEE_10385 = 10385;
|
public static final int REFUGEE_10385 = 10385;
|
||||||
public static final int PHABELLE_BILE = 10386;
|
public static final int PHABELLE_BILE = 10386;
|
||||||
@@ -9620,5 +9620,15 @@ public final class NpcID
|
|||||||
public static final int DIPFLIP = 11383;
|
public static final int DIPFLIP = 11383;
|
||||||
public static final int OLDAK_11384 = 11384;
|
public static final int OLDAK_11384 = 11384;
|
||||||
public static final int OLDAK_11385 = 11385;
|
public static final int OLDAK_11385 = 11385;
|
||||||
|
public static final int LARRY_LEPRECHAUN = 11399;
|
||||||
|
public static final int FISHING_SPOT_11400 = 11400;
|
||||||
|
public static final int BIG_DAVE_11401 = 11401;
|
||||||
|
public static final int CAPT_ARNAV_11402 = 11402;
|
||||||
|
public static final int MY_ARM_11403 = 11403;
|
||||||
|
public static final int COOK_11404 = 11404;
|
||||||
|
public static final int WISE_OLD_MAN_11405 = 11405;
|
||||||
|
public static final int HANS_11406 = 11406;
|
||||||
|
public static final int HASSAN_11407 = 11407;
|
||||||
|
public static final int LEPRECHAUN = 11408;
|
||||||
/* This file is automatically generated. Do not edit. */
|
/* This file is automatically generated. Do not edit. */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14015,5 +14015,33 @@ public final class NullItemID
|
|||||||
public static final int NULL_26584 = 26584;
|
public static final int NULL_26584 = 26584;
|
||||||
public static final int NULL_26586 = 26586;
|
public static final int NULL_26586 = 26586;
|
||||||
public static final int NULL_26588 = 26588;
|
public static final int NULL_26588 = 26588;
|
||||||
|
public static final int NULL_26597 = 26597;
|
||||||
|
public static final int NULL_26599 = 26599;
|
||||||
|
public static final int NULL_26601 = 26601;
|
||||||
|
public static final int NULL_26603 = 26603;
|
||||||
|
public static final int NULL_26604 = 26604;
|
||||||
|
public static final int NULL_26606 = 26606;
|
||||||
|
public static final int NULL_26608 = 26608;
|
||||||
|
public static final int NULL_26610 = 26610;
|
||||||
|
public static final int NULL_26612 = 26612;
|
||||||
|
public static final int NULL_26614 = 26614;
|
||||||
|
public static final int NULL_26616 = 26616;
|
||||||
|
public static final int NULL_26618 = 26618;
|
||||||
|
public static final int NULL_26620 = 26620;
|
||||||
|
public static final int NULL_26622 = 26622;
|
||||||
|
public static final int NULL_26624 = 26624;
|
||||||
|
public static final int NULL_26626 = 26626;
|
||||||
|
public static final int NULL_26628 = 26628;
|
||||||
|
public static final int NULL_26630 = 26630;
|
||||||
|
public static final int NULL_26632 = 26632;
|
||||||
|
public static final int NULL_26634 = 26634;
|
||||||
|
public static final int NULL_26636 = 26636;
|
||||||
|
public static final int NULL_26638 = 26638;
|
||||||
|
public static final int NULL_26640 = 26640;
|
||||||
|
public static final int NULL_26642 = 26642;
|
||||||
|
public static final int NULL_26644 = 26644;
|
||||||
|
public static final int NULL_26646 = 26646;
|
||||||
|
public static final int NULL_26648 = 26648;
|
||||||
|
public static final int NULL_26650 = 26650;
|
||||||
/* This file is automatically generated. Do not edit. */
|
/* This file is automatically generated. Do not edit. */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21428,5 +21428,6 @@ public final class NullObjectID
|
|||||||
public static final int NULL_43465 = 43465;
|
public static final int NULL_43465 = 43465;
|
||||||
public static final int NULL_43466 = 43466;
|
public static final int NULL_43466 = 43466;
|
||||||
public static final int NULL_43467 = 43467;
|
public static final int NULL_43467 = 43467;
|
||||||
|
public static final int NULL_43486 = 43486;
|
||||||
/* This file is automatically generated. Do not edit. */
|
/* This file is automatically generated. Do not edit. */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22025,5 +22025,23 @@ public final class ObjectID
|
|||||||
public static final int LARGE_DOOR_43459 = 43459;
|
public static final int LARGE_DOOR_43459 = 43459;
|
||||||
public static final int LARGE_DOOR_43460 = 43460;
|
public static final int LARGE_DOOR_43460 = 43460;
|
||||||
public static final int CAVE_ENTRANCE_43462 = 43462;
|
public static final int CAVE_ENTRANCE_43462 = 43462;
|
||||||
|
public static final int BANNER_43468 = 43468;
|
||||||
|
public static final int BANNER_43469 = 43469;
|
||||||
|
public static final int BANNER_43470 = 43470;
|
||||||
|
public static final int BANNER_43471 = 43471;
|
||||||
|
public static final int PARTY_BALLOONS = 43472;
|
||||||
|
public static final int PARTY_BALLOONS_43473 = 43473;
|
||||||
|
public static final int PARTY_BALLOONS_43474 = 43474;
|
||||||
|
public static final int PARTY_BALLOONS_43475 = 43475;
|
||||||
|
public static final int PARTY_BALLOONS_43476 = 43476;
|
||||||
|
public static final int SINK_43477 = 43477;
|
||||||
|
public static final int BARREL_OF_FLOUR_43478 = 43478;
|
||||||
|
public static final int CLAY_OVEN_43479 = 43479;
|
||||||
|
public static final int COOKING_SHELF_UTENSILS = 43480;
|
||||||
|
public static final int JUDGES_TABLE = 43481;
|
||||||
|
public static final int TABLE_43482 = 43482;
|
||||||
|
public static final int CUPBOARD_43483 = 43483;
|
||||||
|
public static final int LOOT_CHEST = 43484;
|
||||||
|
public static final int LOOT_CHEST_43485 = 43485;
|
||||||
/* This file is automatically generated. Do not edit. */
|
/* This file is automatically generated. Do not edit. */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -665,7 +665,16 @@ public enum Varbits
|
|||||||
* 0 = on
|
* 0 = on
|
||||||
* 1 = off
|
* 1 = off
|
||||||
*/
|
*/
|
||||||
BOSS_HEALTH_OVERLAY(12389);
|
BOSS_HEALTH_OVERLAY(12389),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the PVP kill-death stats widget should be drawn while in the wilderness or in PVP worlds.
|
||||||
|
*
|
||||||
|
* 0 = Disabled
|
||||||
|
* 1 = Enabled
|
||||||
|
*/
|
||||||
|
SHOW_PVP_KDR_STATS(4143),
|
||||||
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The raw varbit ID.
|
* The raw varbit ID.
|
||||||
|
|||||||
@@ -314,6 +314,8 @@ public class Notifier
|
|||||||
commands.add("notify-send");
|
commands.add("notify-send");
|
||||||
commands.add(title);
|
commands.add(title);
|
||||||
commands.add(message);
|
commands.add(message);
|
||||||
|
commands.add("-a");
|
||||||
|
commands.add(SHELL_ESCAPE.escape(appName));
|
||||||
commands.add("-i");
|
commands.add("-i");
|
||||||
commands.add(SHELL_ESCAPE.escape(notifyIconPath.toAbsolutePath().toString()));
|
commands.add(SHELL_ESCAPE.escape(notifyIconPath.toAbsolutePath().toString()));
|
||||||
commands.add("-u");
|
commands.add("-u");
|
||||||
|
|||||||
+3
-1
@@ -326,7 +326,9 @@ public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueSc
|
|||||||
new CrypticClue("A graceful man of many colours, his crates must be full of many delights.", "Hill Giant", CRATE_42067, new WorldPoint(1506, 3590, 2), "Kill any Hill Giant for a medium key. Then search the crate on the top floor of Osten's clothing shop in Shayzien."),
|
new CrypticClue("A graceful man of many colours, his crates must be full of many delights.", "Hill Giant", CRATE_42067, new WorldPoint(1506, 3590, 2), "Kill any Hill Giant for a medium key. Then search the crate on the top floor of Osten's clothing shop in Shayzien."),
|
||||||
new CrypticClue("Search the basket of apples in an orchard, south of the unknown grave surrounded by white roses.", APPLE_BASKET, new WorldPoint(1718, 3626, 0), "Search the middle apple basket in the apple orchard north of Hosidius."),
|
new CrypticClue("Search the basket of apples in an orchard, south of the unknown grave surrounded by white roses.", APPLE_BASKET, new WorldPoint(1718, 3626, 0), "Search the middle apple basket in the apple orchard north of Hosidius."),
|
||||||
new CrypticClue("Dig in the lair of red wings, within the temple of the Sun and Moon.", new WorldPoint(1820, 9935, 0), "Forthos Dungeon. In the center of the red dragons."),
|
new CrypticClue("Dig in the lair of red wings, within the temple of the Sun and Moon.", new WorldPoint(1820, 9935, 0), "Forthos Dungeon. In the center of the red dragons."),
|
||||||
new CrypticClue("Within the town of Lumbridge lives a man named Bob. He walks out of his door and takes 1 step east, 7 steps north, 5 steps west and 1 step south. Once he arrives, he digs a hole and buries his treasure.", new WorldPoint(3230, 3209, 0), "Just west of the bush outside Bob's axe shop in Lumbridge.")
|
new CrypticClue("Within the town of Lumbridge lives a man named Bob. He walks out of his door and takes 1 step east, 7 steps north, 5 steps west and 1 step south. Once he arrives, he digs a hole and buries his treasure.", new WorldPoint(3230, 3209, 0), "Just west of the bush outside Bob's axe shop in Lumbridge."),
|
||||||
|
new CrypticClue("Try not to let yourself be dazzled when you search these drawers.", DRAWERS_350, new WorldPoint(2561, 3323, 0), "Search the western drawers in Jimmy Dazzler's home near the East Ardougne Rat Pits."),
|
||||||
|
new CrypticClue("The Big High War God left his mark on this place.", new WorldPoint(3572, 4372, 0), "Dig anywhere in Yu'biusk. Fairy ring BLQ.")
|
||||||
);
|
);
|
||||||
|
|
||||||
private final String text;
|
private final String text;
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ public enum FairyRings
|
|||||||
BKR("Mort Myre Swamp, south of Canifis"),
|
BKR("Mort Myre Swamp, south of Canifis"),
|
||||||
BKS("Zanaris"),
|
BKS("Zanaris"),
|
||||||
BLP("TzHaar area"),
|
BLP("TzHaar area"),
|
||||||
|
BLQ("Yu'biusk"),
|
||||||
BLR("Legends' Guild"),
|
BLR("Legends' Guild"),
|
||||||
|
|
||||||
// C
|
// C
|
||||||
|
|||||||
@@ -353,6 +353,8 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
|
|||||||
System.setProperty("jogl.debug", "true");
|
System.setProperty("jogl.debug", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
System.setProperty("jogamp.gluegen.UseNativeExeFile", "true");
|
||||||
|
|
||||||
GLProfile.initSingleton();
|
GLProfile.initSingleton();
|
||||||
|
|
||||||
invokeOnMainThread(() ->
|
invokeOnMainThread(() ->
|
||||||
|
|||||||
@@ -434,8 +434,9 @@ class SceneUploader
|
|||||||
len += 3;
|
len += 3;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// HSL override is not applied to flat shade faces or to textured faces
|
|
||||||
else if (faceTextures == null || faceTextures[face] == -1)
|
// HSL override is not applied to textured faces
|
||||||
|
if (faceTextures == null || faceTextures[face] == -1)
|
||||||
{
|
{
|
||||||
if (overrideAmount > 0)
|
if (overrideAmount > 0)
|
||||||
{
|
{
|
||||||
@@ -525,8 +526,9 @@ class SceneUploader
|
|||||||
}
|
}
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
// HSL override is not applied to flat shade faces or to textured faces
|
|
||||||
else if (faceTextures == null || faceTextures[face] == -1)
|
// HSL override is not applied to textured faces
|
||||||
|
if (faceTextures == null || faceTextures[face] == -1)
|
||||||
{
|
{
|
||||||
if (overrideAmount > 0)
|
if (overrideAmount > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
+7
@@ -205,6 +205,8 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
private static final String HALLOWED_SEPULCHRE_COFFIN_EVENT = "Coffin (Hallowed Sepulchre)";
|
private static final String HALLOWED_SEPULCHRE_COFFIN_EVENT = "Coffin (Hallowed Sepulchre)";
|
||||||
private static final Set<Integer> HALLOWED_SEPULCHRE_MAP_REGIONS = ImmutableSet.of(8797, 10077, 9308, 10074, 9050); // one map region per floor
|
private static final Set<Integer> HALLOWED_SEPULCHRE_MAP_REGIONS = ImmutableSet.of(8797, 10077, 9308, 10074, 9050); // one map region per floor
|
||||||
|
|
||||||
|
private static final String HALLOWED_SACK_EVENT = "Hallowed Sack";
|
||||||
|
|
||||||
// Last man standing map regions
|
// Last man standing map regions
|
||||||
private static final Set<Integer> LAST_MAN_STANDING_REGIONS = ImmutableSet.of(13658, 13659, 13660, 13914, 13915, 13916, 13918, 13919, 13920, 14174, 14175, 14176, 14430, 14431, 14432);
|
private static final Set<Integer> LAST_MAN_STANDING_REGIONS = ImmutableSet.of(13658, 13659, 13660, 13914, 13915, 13916, 13918, 13919, 13920, 14174, 14175, 14176, 14430, 14431, 14432);
|
||||||
|
|
||||||
@@ -791,6 +793,7 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
if (CHEST_EVENT_TYPES.containsValue(eventType)
|
if (CHEST_EVENT_TYPES.containsValue(eventType)
|
||||||
|| SHADE_CHEST_OBJECTS.containsValue(eventType)
|
|| SHADE_CHEST_OBJECTS.containsValue(eventType)
|
||||||
|| HALLOWED_SEPULCHRE_COFFIN_EVENT.equals(eventType)
|
|| HALLOWED_SEPULCHRE_COFFIN_EVENT.equals(eventType)
|
||||||
|
|| HALLOWED_SACK_EVENT.equals(eventType)
|
||||||
|| HERBIBOAR_EVENT.equals(eventType)
|
|| HERBIBOAR_EVENT.equals(eventType)
|
||||||
|| HESPORI_EVENT.equals(eventType)
|
|| HESPORI_EVENT.equals(eventType)
|
||||||
|| WINTERTODT_SUPPLY_CRATE_EVENT.equals(eventType)
|
|| WINTERTODT_SUPPLY_CRATE_EVENT.equals(eventType)
|
||||||
@@ -876,6 +879,10 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
setEvent(LootRecordType.EVENT, MAHOGANY_CRATE_EVENT, client.getBoostedSkillLevel(Skill.CONSTRUCTION));
|
setEvent(LootRecordType.EVENT, MAHOGANY_CRATE_EVENT, client.getBoostedSkillLevel(Skill.CONSTRUCTION));
|
||||||
takeInventorySnapshot();
|
takeInventorySnapshot();
|
||||||
break;
|
break;
|
||||||
|
case ItemID.HALLOWED_SACK:
|
||||||
|
setEvent(LootRecordType.EVENT, HALLOWED_SACK_EVENT);
|
||||||
|
takeInventorySnapshot();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -41,4 +41,5 @@ public class ScreenMarker
|
|||||||
private Color color;
|
private Color color;
|
||||||
private Color fill;
|
private Color fill;
|
||||||
private boolean visible;
|
private boolean visible;
|
||||||
|
private boolean labelled;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@ import java.awt.event.MouseEvent;
|
|||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import net.runelite.client.input.MouseAdapter;
|
import net.runelite.client.input.MouseAdapter;
|
||||||
|
|
||||||
public class ScreenMarkerMouseListener extends MouseAdapter
|
class ScreenMarkerMouseListener extends MouseAdapter
|
||||||
{
|
{
|
||||||
private final ScreenMarkerPlugin plugin;
|
private final ScreenMarkerPlugin plugin;
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -78,7 +78,8 @@ public class ScreenMarkerOverlay extends Overlay
|
|||||||
screenMarkerRenderable.setColor(marker.getColor());
|
screenMarkerRenderable.setColor(marker.getColor());
|
||||||
screenMarkerRenderable.setFill(marker.getFill());
|
screenMarkerRenderable.setFill(marker.getFill());
|
||||||
screenMarkerRenderable.setStroke(new BasicStroke(marker.getBorderThickness()));
|
screenMarkerRenderable.setStroke(new BasicStroke(marker.getBorderThickness()));
|
||||||
screenMarkerRenderable.setPreferredSize(preferredSize);
|
screenMarkerRenderable.setSize(preferredSize);
|
||||||
|
screenMarkerRenderable.setLabel(marker.isLabelled() ? marker.getName() : "");
|
||||||
return screenMarkerRenderable.render(graphics);
|
return screenMarkerRenderable.render(graphics);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -203,7 +203,8 @@ public class ScreenMarkerPlugin extends Plugin
|
|||||||
pluginPanel.getSelectedBorderThickness(),
|
pluginPanel.getSelectedBorderThickness(),
|
||||||
pluginPanel.getSelectedColor(),
|
pluginPanel.getSelectedColor(),
|
||||||
pluginPanel.getSelectedFillColor(),
|
pluginPanel.getSelectedFillColor(),
|
||||||
true
|
true,
|
||||||
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
// Set overlay creator bounds to current position and default size
|
// Set overlay creator bounds to current position and default size
|
||||||
|
|||||||
+15
-25
@@ -27,44 +27,29 @@ package net.runelite.client.plugins.screenmarkers;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Point;
|
|
||||||
import java.awt.Rectangle;
|
|
||||||
import java.awt.Stroke;
|
import java.awt.Stroke;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.runelite.client.ui.overlay.components.LayoutableRenderableEntity;
|
import net.runelite.client.ui.overlay.RenderableEntity;
|
||||||
|
|
||||||
public class ScreenMarkerRenderable implements LayoutableRenderableEntity
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
@Setter(AccessLevel.PACKAGE)
|
||||||
|
class ScreenMarkerRenderable implements RenderableEntity
|
||||||
{
|
{
|
||||||
@Getter(AccessLevel.PACKAGE)
|
private Dimension size;
|
||||||
@Setter
|
|
||||||
private Point preferredLocation;
|
|
||||||
@Getter(AccessLevel.PACKAGE)
|
|
||||||
@Setter
|
|
||||||
private Dimension preferredSize;
|
|
||||||
@Getter(AccessLevel.PACKAGE)
|
|
||||||
@Setter(AccessLevel.PACKAGE)
|
|
||||||
private int borderThickness;
|
private int borderThickness;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
|
||||||
@Setter(AccessLevel.PACKAGE)
|
|
||||||
private Color color;
|
private Color color;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
|
||||||
@Setter(AccessLevel.PACKAGE)
|
|
||||||
private Color fill;
|
private Color fill;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
|
||||||
@Setter(AccessLevel.PACKAGE)
|
|
||||||
private Stroke stroke;
|
private Stroke stroke;
|
||||||
|
private String label;
|
||||||
@Getter
|
|
||||||
private final Rectangle bounds = new Rectangle();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Dimension render(Graphics2D graphics)
|
public Dimension render(Graphics2D graphics)
|
||||||
{
|
{
|
||||||
int thickness = borderThickness;
|
int thickness = borderThickness;
|
||||||
int width = preferredSize.width;
|
int width = size.width;
|
||||||
int height = preferredSize.height;
|
int height = size.height;
|
||||||
|
|
||||||
//draw the fill
|
//draw the fill
|
||||||
graphics.setColor(fill);
|
graphics.setColor(fill);
|
||||||
@@ -76,7 +61,12 @@ public class ScreenMarkerRenderable implements LayoutableRenderableEntity
|
|||||||
graphics.setColor(color);
|
graphics.setColor(color);
|
||||||
graphics.setStroke(stroke);
|
graphics.setStroke(stroke);
|
||||||
graphics.drawRect(offset, offset, width - thickness, height - thickness);
|
graphics.drawRect(offset, offset, width - thickness, height - thickness);
|
||||||
bounds.setSize(preferredSize);
|
|
||||||
return preferredSize;
|
if (!label.isEmpty())
|
||||||
|
{
|
||||||
|
graphics.drawString(label, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+38
-33
@@ -53,6 +53,7 @@ import net.runelite.client.ui.ColorScheme;
|
|||||||
import net.runelite.client.ui.FontManager;
|
import net.runelite.client.ui.FontManager;
|
||||||
import net.runelite.client.ui.components.FlatTextField;
|
import net.runelite.client.ui.components.FlatTextField;
|
||||||
import net.runelite.client.ui.components.colorpicker.RuneliteColorPicker;
|
import net.runelite.client.ui.components.colorpicker.RuneliteColorPicker;
|
||||||
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
|
|
||||||
class ScreenMarkerPanel extends JPanel
|
class ScreenMarkerPanel extends JPanel
|
||||||
@@ -73,10 +74,10 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
private static final ImageIcon NO_FILL_COLOR_ICON;
|
private static final ImageIcon NO_FILL_COLOR_ICON;
|
||||||
private static final ImageIcon NO_FILL_COLOR_HOVER_ICON;
|
private static final ImageIcon NO_FILL_COLOR_HOVER_ICON;
|
||||||
|
|
||||||
private static final ImageIcon FULL_OPACITY_ICON;
|
private static final ImageIcon LABEL_ICON;
|
||||||
private static final ImageIcon FULL_OPACITY_HOVER_ICON;
|
private static final ImageIcon LABEL_HOVER_ICON;
|
||||||
private static final ImageIcon NO_OPACITY_ICON;
|
private static final ImageIcon NO_LABEL_ICON;
|
||||||
private static final ImageIcon NO_OPACITY_HOVER_ICON;
|
private static final ImageIcon NO_LABEL_HOVER_ICON;
|
||||||
|
|
||||||
private static final ImageIcon VISIBLE_ICON;
|
private static final ImageIcon VISIBLE_ICON;
|
||||||
private static final ImageIcon VISIBLE_HOVER_ICON;
|
private static final ImageIcon VISIBLE_HOVER_ICON;
|
||||||
@@ -91,7 +92,7 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
|
|
||||||
private final JLabel borderColorIndicator = new JLabel();
|
private final JLabel borderColorIndicator = new JLabel();
|
||||||
private final JLabel fillColorIndicator = new JLabel();
|
private final JLabel fillColorIndicator = new JLabel();
|
||||||
private final JLabel opacityIndicator = new JLabel();
|
private final JLabel labelIndicator = new JLabel();
|
||||||
private final JLabel visibilityLabel = new JLabel();
|
private final JLabel visibilityLabel = new JLabel();
|
||||||
private final JLabel deleteLabel = new JLabel();
|
private final JLabel deleteLabel = new JLabel();
|
||||||
|
|
||||||
@@ -104,6 +105,7 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
private final JSpinner thicknessSpinner = new JSpinner(spinnerModel);
|
private final JSpinner thicknessSpinner = new JSpinner(spinnerModel);
|
||||||
|
|
||||||
private boolean visible;
|
private boolean visible;
|
||||||
|
private boolean showLabel;
|
||||||
|
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
@@ -123,13 +125,13 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
NO_FILL_COLOR_ICON = new ImageIcon(fillImgHover);
|
NO_FILL_COLOR_ICON = new ImageIcon(fillImgHover);
|
||||||
NO_FILL_COLOR_HOVER_ICON = new ImageIcon(ImageUtil.alphaOffset(fillImgHover, -100));
|
NO_FILL_COLOR_HOVER_ICON = new ImageIcon(ImageUtil.alphaOffset(fillImgHover, -100));
|
||||||
|
|
||||||
final BufferedImage opacityImg = ImageUtil.loadImageResource(ScreenMarkerPlugin.class, "opacity_icon.png");
|
final BufferedImage labelImg = ImageUtil.loadImageResource(ScreenMarkerPlugin.class, "label_icon.png");
|
||||||
final BufferedImage opacityImgHover = ImageUtil.luminanceOffset(opacityImg, -150);
|
final BufferedImage labelImgHover = ImageUtil.luminanceOffset(labelImg, -150);
|
||||||
FULL_OPACITY_ICON = new ImageIcon(opacityImg);
|
LABEL_ICON = new ImageIcon(labelImg);
|
||||||
FULL_OPACITY_HOVER_ICON = new ImageIcon(opacityImgHover);
|
LABEL_HOVER_ICON = new ImageIcon(labelImgHover);
|
||||||
|
|
||||||
NO_OPACITY_ICON = new ImageIcon(opacityImgHover);
|
NO_LABEL_ICON = new ImageIcon(labelImgHover);
|
||||||
NO_OPACITY_HOVER_ICON = new ImageIcon(ImageUtil.alphaOffset(opacityImgHover, -100));
|
NO_LABEL_HOVER_ICON = new ImageIcon(ImageUtil.alphaOffset(labelImgHover, -100));
|
||||||
|
|
||||||
final BufferedImage visibleImg = ImageUtil.loadImageResource(ScreenMarkerPlugin.class, "visible_icon.png");
|
final BufferedImage visibleImg = ImageUtil.loadImageResource(ScreenMarkerPlugin.class, "visible_icon.png");
|
||||||
VISIBLE_ICON = new ImageIcon(visibleImg);
|
VISIBLE_ICON = new ImageIcon(visibleImg);
|
||||||
@@ -149,6 +151,7 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.marker = marker;
|
this.marker = marker;
|
||||||
this.visible = marker.getMarker().isVisible();
|
this.visible = marker.getMarker().isVisible();
|
||||||
|
this.showLabel = marker.getMarker().isLabelled();
|
||||||
|
|
||||||
setLayout(new BorderLayout());
|
setLayout(new BorderLayout());
|
||||||
setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||||
@@ -331,50 +334,37 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
thicknessSpinner.setValue(marker.getMarker().getBorderThickness());
|
thicknessSpinner.setValue(marker.getMarker().getBorderThickness());
|
||||||
thicknessSpinner.setPreferredSize(new Dimension(50, 20));
|
thicknessSpinner.setPreferredSize(new Dimension(50, 20));
|
||||||
thicknessSpinner.addChangeListener(ce -> updateThickness(true));
|
thicknessSpinner.addChangeListener(ce -> updateThickness(true));
|
||||||
|
thicknessSpinner.setToolTipText("Border thickness");
|
||||||
|
|
||||||
opacityIndicator.setToolTipText("Toggle background transparency");
|
labelIndicator.addMouseListener(new MouseAdapter()
|
||||||
opacityIndicator.addMouseListener(new MouseAdapter()
|
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void mousePressed(MouseEvent mouseEvent)
|
public void mousePressed(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
final Color fill = marker.getMarker().getFill();
|
toggleLabelling(!showLabel);
|
||||||
|
|
||||||
if (fill.getAlpha() == 0)
|
|
||||||
{
|
|
||||||
marker.getMarker().setFill(new Color(fill.getRed(), fill.getGreen(), fill.getBlue(), DEFAULT_FILL_OPACITY));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
marker.getMarker().setFill(new Color(fill.getRed(), fill.getGreen(), fill.getBlue(), 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
updateFill();
|
|
||||||
plugin.updateConfig();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseEntered(MouseEvent mouseEvent)
|
public void mouseEntered(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
opacityIndicator.setIcon(marker.getMarker().getFill().getAlpha() == 0 ? NO_OPACITY_HOVER_ICON : FULL_OPACITY_HOVER_ICON);
|
labelIndicator.setIcon(showLabel ? LABEL_HOVER_ICON : NO_LABEL_HOVER_ICON);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseExited(MouseEvent mouseEvent)
|
public void mouseExited(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
opacityIndicator.setIcon(marker.getMarker().getFill().getAlpha() == 0 ? NO_OPACITY_ICON : FULL_OPACITY_ICON);
|
labelIndicator.setIcon(showLabel ? LABEL_ICON : NO_LABEL_ICON);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
leftActions.add(borderColorIndicator);
|
leftActions.add(borderColorIndicator);
|
||||||
leftActions.add(fillColorIndicator);
|
leftActions.add(fillColorIndicator);
|
||||||
leftActions.add(opacityIndicator);
|
leftActions.add(labelIndicator);
|
||||||
leftActions.add(thicknessSpinner);
|
leftActions.add(thicknessSpinner);
|
||||||
|
|
||||||
JPanel rightActions = new JPanel(new FlowLayout(FlowLayout.RIGHT, 8, 0));
|
JPanel rightActions = new JPanel(new FlowLayout(FlowLayout.RIGHT, 8, 0));
|
||||||
rightActions.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
rightActions.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||||
|
|
||||||
visibilityLabel.setToolTipText(visible ? "Hide screen marker" : "Show screen marker");
|
|
||||||
visibilityLabel.addMouseListener(new MouseAdapter()
|
visibilityLabel.addMouseListener(new MouseAdapter()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@@ -439,7 +429,7 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
updateFill();
|
updateFill();
|
||||||
updateBorder();
|
updateBorder();
|
||||||
updateBorder();
|
updateBorder();
|
||||||
|
updateLabelling();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void preview(boolean on)
|
private void preview(boolean on)
|
||||||
@@ -460,6 +450,14 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
updateVisibility();
|
updateVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toggleLabelling(boolean on)
|
||||||
|
{
|
||||||
|
showLabel = on;
|
||||||
|
marker.getMarker().setLabelled(showLabel);
|
||||||
|
plugin.updateConfig();
|
||||||
|
updateLabelling();
|
||||||
|
}
|
||||||
|
|
||||||
private void save()
|
private void save()
|
||||||
{
|
{
|
||||||
marker.getMarker().setName(nameInput.getText());
|
marker.getMarker().setName(nameInput.getText());
|
||||||
@@ -505,6 +503,13 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
private void updateVisibility()
|
private void updateVisibility()
|
||||||
{
|
{
|
||||||
visibilityLabel.setIcon(visible ? VISIBLE_ICON : INVISIBLE_ICON);
|
visibilityLabel.setIcon(visible ? VISIBLE_ICON : INVISIBLE_ICON);
|
||||||
|
visibilityLabel.setToolTipText(visible ? "Hide screen marker" : "Show screen marker");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateLabelling()
|
||||||
|
{
|
||||||
|
labelIndicator.setIcon(showLabel ? LABEL_ICON : NO_LABEL_ICON);
|
||||||
|
labelIndicator.setToolTipText(showLabel ? "Hide label" : "Show label");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFill()
|
private void updateFill()
|
||||||
@@ -523,7 +528,6 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
}
|
}
|
||||||
|
|
||||||
fillColorIndicator.setIcon(isFullyTransparent ? NO_FILL_COLOR_ICON : FILL_COLOR_ICON);
|
fillColorIndicator.setIcon(isFullyTransparent ? NO_FILL_COLOR_ICON : FILL_COLOR_ICON);
|
||||||
opacityIndicator.setIcon(isFullyTransparent ? NO_OPACITY_ICON : FULL_OPACITY_ICON);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateBorder()
|
private void updateBorder()
|
||||||
@@ -543,9 +547,10 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
|
|
||||||
private void openFillColorPicker()
|
private void openFillColorPicker()
|
||||||
{
|
{
|
||||||
|
final Color fillColor = marker.getMarker().getFill();
|
||||||
RuneliteColorPicker colorPicker = plugin.getColorPickerManager().create(
|
RuneliteColorPicker colorPicker = plugin.getColorPickerManager().create(
|
||||||
SwingUtilities.windowForComponent(this),
|
SwingUtilities.windowForComponent(this),
|
||||||
marker.getMarker().getFill(),
|
fillColor.getAlpha() == 0 ? ColorUtil.colorWithAlpha(fillColor, DEFAULT_FILL_OPACITY) : fillColor,
|
||||||
marker.getMarker().getName() + " Fill",
|
marker.getMarker().getName() + " Fill",
|
||||||
false);
|
false);
|
||||||
colorPicker.setLocation(getLocationOnScreen());
|
colorPicker.setLocation(getLocationOnScreen());
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class WidgetOverlay extends Overlay
|
|||||||
new WidgetOverlay(client, WidgetInfo.PEST_CONTROL_KNIGHT_INFO_CONTAINER, OverlayPosition.TOP_LEFT),
|
new WidgetOverlay(client, WidgetInfo.PEST_CONTROL_KNIGHT_INFO_CONTAINER, OverlayPosition.TOP_LEFT),
|
||||||
new WidgetOverlay(client, WidgetInfo.PEST_CONTROL_ACTIVITY_SHIELD_INFO_CONTAINER, OverlayPosition.TOP_RIGHT),
|
new WidgetOverlay(client, WidgetInfo.PEST_CONTROL_ACTIVITY_SHIELD_INFO_CONTAINER, OverlayPosition.TOP_RIGHT),
|
||||||
new WidgetOverlay(client, WidgetInfo.ZEAH_MESS_HALL_COOKING_DISPLAY, OverlayPosition.TOP_LEFT),
|
new WidgetOverlay(client, WidgetInfo.ZEAH_MESS_HALL_COOKING_DISPLAY, OverlayPosition.TOP_LEFT),
|
||||||
new WidgetOverlay(client, WidgetInfo.PVP_KILLDEATH_COUNTER, OverlayPosition.TOP_LEFT),
|
new PvpKDRWidgetOverlay(client, WidgetInfo.PVP_KILLDEATH_COUNTER, OverlayPosition.TOP_LEFT),
|
||||||
new WidgetOverlay(client, WidgetInfo.SKOTIZO_CONTAINER, OverlayPosition.TOP_LEFT),
|
new WidgetOverlay(client, WidgetInfo.SKOTIZO_CONTAINER, OverlayPosition.TOP_LEFT),
|
||||||
new WidgetOverlay(client, WidgetInfo.KOUREND_FAVOUR_OVERLAY, OverlayPosition.TOP_CENTER),
|
new WidgetOverlay(client, WidgetInfo.KOUREND_FAVOUR_OVERLAY, OverlayPosition.TOP_CENTER),
|
||||||
new WidgetOverlay(client, WidgetInfo.PYRAMID_PLUNDER_DATA, OverlayPosition.TOP_CENTER),
|
new WidgetOverlay(client, WidgetInfo.PYRAMID_PLUNDER_DATA, OverlayPosition.TOP_CENTER),
|
||||||
@@ -257,4 +257,24 @@ public class WidgetOverlay extends Overlay
|
|||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class PvpKDRWidgetOverlay extends WidgetOverlay
|
||||||
|
{
|
||||||
|
private PvpKDRWidgetOverlay(Client client, WidgetInfo widgetInfo, OverlayPosition overlayPosition)
|
||||||
|
{
|
||||||
|
super(client, widgetInfo, overlayPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dimension render(Graphics2D graphics)
|
||||||
|
{
|
||||||
|
// Don't draw widget overlay if the PVP KDR stats text will be empty
|
||||||
|
if (client.getVar(Varbits.SHOW_PVP_KDR_STATS) == 1)
|
||||||
|
{
|
||||||
|
return super.render(graphics);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,18 +60,18 @@ public class LinkBrowser
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (attemptDesktopBrowse(url))
|
|
||||||
{
|
|
||||||
log.debug("Opened url through Desktop#browse to {}", url);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (shouldAttemptXdg && attemptXdgOpen(url))
|
if (shouldAttemptXdg && attemptXdgOpen(url))
|
||||||
{
|
{
|
||||||
log.debug("Opened url through xdg-open to {}", url);
|
log.debug("Opened url through xdg-open to {}", url);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (attemptDesktopBrowse(url))
|
||||||
|
{
|
||||||
|
log.debug("Opened url through Desktop#browse to {}", url);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
log.warn("LinkBrowser.browse() could not open {}", url);
|
log.warn("LinkBrowser.browse() could not open {}", url);
|
||||||
showMessageBox("Unable to open link. Press 'OK' and the link will be copied to your clipboard.", url);
|
showMessageBox("Unable to open link. Press 'OK' and the link will be copied to your clipboard.", url);
|
||||||
}).start();
|
}).start();
|
||||||
@@ -91,18 +91,18 @@ public class LinkBrowser
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (attemptDesktopOpen(directory))
|
|
||||||
{
|
|
||||||
log.debug("Opened directory through Desktop#open to {}", directory);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (shouldAttemptXdg && attemptXdgOpen(directory))
|
if (shouldAttemptXdg && attemptXdgOpen(directory))
|
||||||
{
|
{
|
||||||
log.debug("Opened directory through xdg-open to {}", directory);
|
log.debug("Opened directory through xdg-open to {}", directory);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (attemptDesktopOpen(directory))
|
||||||
|
{
|
||||||
|
log.debug("Opened directory through Desktop#open to {}", directory);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
log.warn("LinkBrowser.open() could not open {}", directory);
|
log.warn("LinkBrowser.open() could not open {}", directory);
|
||||||
showMessageBox("Unable to open folder. Press 'OK' and the folder directory will be copied to your clipboard.", directory);
|
showMessageBox("Unable to open folder. Press 'OK' and the folder directory will be copied to your clipboard.", directory);
|
||||||
}).start();
|
}).start();
|
||||||
|
|||||||
@@ -261,7 +261,8 @@
|
|||||||
21056,
|
21056,
|
||||||
21057,
|
21057,
|
||||||
21058,
|
21058,
|
||||||
26276
|
26276,
|
||||||
|
26596
|
||||||
],
|
],
|
||||||
"glarials urn": [
|
"glarials urn": [
|
||||||
296,
|
296,
|
||||||
@@ -2454,16 +2455,23 @@
|
|||||||
"bucket": [
|
"bucket": [
|
||||||
1925,
|
1925,
|
||||||
8986,
|
8986,
|
||||||
9660
|
9660,
|
||||||
|
26615
|
||||||
],
|
],
|
||||||
"bucket of water": [
|
"bucket of water": [
|
||||||
1929,
|
1929,
|
||||||
6712,
|
6712,
|
||||||
9659
|
9659,
|
||||||
|
26617
|
||||||
|
],
|
||||||
|
"pot": [
|
||||||
|
1931,
|
||||||
|
26619
|
||||||
],
|
],
|
||||||
"pot of flour": [
|
"pot of flour": [
|
||||||
1933,
|
1933,
|
||||||
2516
|
2516,
|
||||||
|
26621
|
||||||
],
|
],
|
||||||
"swamp paste": [
|
"swamp paste": [
|
||||||
1941,
|
1941,
|
||||||
@@ -2490,6 +2498,10 @@
|
|||||||
11029,
|
11029,
|
||||||
11030
|
11030
|
||||||
],
|
],
|
||||||
|
"banana": [
|
||||||
|
1963,
|
||||||
|
26627
|
||||||
|
],
|
||||||
"cabbage": [
|
"cabbage": [
|
||||||
1965,
|
1965,
|
||||||
1967,
|
1967,
|
||||||
@@ -2508,6 +2520,14 @@
|
|||||||
1980,
|
1980,
|
||||||
7728
|
7728
|
||||||
],
|
],
|
||||||
|
"tomato": [
|
||||||
|
1982,
|
||||||
|
26623
|
||||||
|
],
|
||||||
|
"cheese": [
|
||||||
|
1985,
|
||||||
|
26625
|
||||||
|
],
|
||||||
"jug of bad wine": [
|
"jug of bad wine": [
|
||||||
1991,
|
1991,
|
||||||
1992
|
1992
|
||||||
@@ -2686,9 +2706,22 @@
|
|||||||
2281,
|
2281,
|
||||||
9533
|
9533
|
||||||
],
|
],
|
||||||
|
"pizza base": [
|
||||||
|
2283,
|
||||||
|
26629
|
||||||
|
],
|
||||||
|
"incomplete pizza": [
|
||||||
|
2285,
|
||||||
|
26631
|
||||||
|
],
|
||||||
|
"uncooked pizza": [
|
||||||
|
2287,
|
||||||
|
26633
|
||||||
|
],
|
||||||
"plain pizza": [
|
"plain pizza": [
|
||||||
2289,
|
2289,
|
||||||
2291
|
2291,
|
||||||
|
26635
|
||||||
],
|
],
|
||||||
"meat pizza": [
|
"meat pizza": [
|
||||||
2293,
|
2293,
|
||||||
@@ -2702,6 +2735,22 @@
|
|||||||
2301,
|
2301,
|
||||||
2303
|
2303
|
||||||
],
|
],
|
||||||
|
"burnt pizza": [
|
||||||
|
2305,
|
||||||
|
26637
|
||||||
|
],
|
||||||
|
"bread dough": [
|
||||||
|
2307,
|
||||||
|
26639
|
||||||
|
],
|
||||||
|
"bread": [
|
||||||
|
2309,
|
||||||
|
26641
|
||||||
|
],
|
||||||
|
"burnt bread": [
|
||||||
|
2311,
|
||||||
|
26643
|
||||||
|
],
|
||||||
"redberry pie": [
|
"redberry pie": [
|
||||||
2325,
|
2325,
|
||||||
2333
|
2333
|
||||||
@@ -10341,5 +10390,12 @@
|
|||||||
26583,
|
26583,
|
||||||
26585,
|
26585,
|
||||||
26587
|
26587
|
||||||
|
],
|
||||||
|
"loot key": [
|
||||||
|
26651,
|
||||||
|
26652,
|
||||||
|
26653,
|
||||||
|
26654,
|
||||||
|
26655
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
+7
-38
@@ -62,52 +62,21 @@ int priority_map(int p, int distance, int _min10, int avg1, int avg2, int avg3)
|
|||||||
return 17;
|
return 17;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return -1;
|
// this can't happen unless an invalid priority is sent. just assume 0.
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// calculate the number of faces with a lower adjusted priority than
|
// calculate the number of faces with a lower adjusted priority than
|
||||||
// the given adjusted priority
|
// the given adjusted priority
|
||||||
int count_prio_offset(__local struct shared_data *shared, int priority) {
|
int count_prio_offset(__local struct shared_data *shared, int priority) {
|
||||||
|
// this shouldn't ever be outside of (0, 17) because it is the return value from priority_map
|
||||||
|
priority = clamp(priority, 0, 17);
|
||||||
int total = 0;
|
int total = 0;
|
||||||
switch (priority) {
|
for (int i = 0; i < priority; i++) {
|
||||||
case 17:
|
total += shared->totalMappedNum[i];
|
||||||
total += shared->totalMappedNum[16];
|
|
||||||
case 16:
|
|
||||||
total += shared->totalMappedNum[15];
|
|
||||||
case 15:
|
|
||||||
total += shared->totalMappedNum[14];
|
|
||||||
case 14:
|
|
||||||
total += shared->totalMappedNum[13];
|
|
||||||
case 13:
|
|
||||||
total += shared->totalMappedNum[12];
|
|
||||||
case 12:
|
|
||||||
total += shared->totalMappedNum[11];
|
|
||||||
case 11:
|
|
||||||
total += shared->totalMappedNum[10];
|
|
||||||
case 10:
|
|
||||||
total += shared->totalMappedNum[9];
|
|
||||||
case 9:
|
|
||||||
total += shared->totalMappedNum[8];
|
|
||||||
case 8:
|
|
||||||
total += shared->totalMappedNum[7];
|
|
||||||
case 7:
|
|
||||||
total += shared->totalMappedNum[6];
|
|
||||||
case 6:
|
|
||||||
total += shared->totalMappedNum[5];
|
|
||||||
case 5:
|
|
||||||
total += shared->totalMappedNum[4];
|
|
||||||
case 4:
|
|
||||||
total += shared->totalMappedNum[3];
|
|
||||||
case 3:
|
|
||||||
total += shared->totalMappedNum[2];
|
|
||||||
case 2:
|
|
||||||
total += shared->totalMappedNum[1];
|
|
||||||
case 1:
|
|
||||||
total += shared->totalMappedNum[0];
|
|
||||||
case 0:
|
|
||||||
return total;
|
|
||||||
}
|
}
|
||||||
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_face(
|
void get_face(
|
||||||
|
|||||||
+7
-38
@@ -62,52 +62,21 @@ int priority_map(int p, int distance, int _min10, int avg1, int avg2, int avg3)
|
|||||||
return 17;
|
return 17;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return -1;
|
// this can't happen unless an invalid priority is sent. just assume 0.
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// calculate the number of faces with a lower adjusted priority than
|
// calculate the number of faces with a lower adjusted priority than
|
||||||
// the given adjusted priority
|
// the given adjusted priority
|
||||||
int count_prio_offset(int priority) {
|
int count_prio_offset(int priority) {
|
||||||
|
// this shouldn't ever be outside of (0, 17) because it is the return value from priority_map
|
||||||
|
priority = clamp(priority, 0, 17);
|
||||||
int total = 0;
|
int total = 0;
|
||||||
switch (priority) {
|
for (int i = 0; i < priority; i++) {
|
||||||
case 17:
|
total += totalMappedNum[i];
|
||||||
total += totalMappedNum[16];
|
|
||||||
case 16:
|
|
||||||
total += totalMappedNum[15];
|
|
||||||
case 15:
|
|
||||||
total += totalMappedNum[14];
|
|
||||||
case 14:
|
|
||||||
total += totalMappedNum[13];
|
|
||||||
case 13:
|
|
||||||
total += totalMappedNum[12];
|
|
||||||
case 12:
|
|
||||||
total += totalMappedNum[11];
|
|
||||||
case 11:
|
|
||||||
total += totalMappedNum[10];
|
|
||||||
case 10:
|
|
||||||
total += totalMappedNum[9];
|
|
||||||
case 9:
|
|
||||||
total += totalMappedNum[8];
|
|
||||||
case 8:
|
|
||||||
total += totalMappedNum[7];
|
|
||||||
case 7:
|
|
||||||
total += totalMappedNum[6];
|
|
||||||
case 6:
|
|
||||||
total += totalMappedNum[5];
|
|
||||||
case 5:
|
|
||||||
total += totalMappedNum[4];
|
|
||||||
case 4:
|
|
||||||
total += totalMappedNum[3];
|
|
||||||
case 3:
|
|
||||||
total += totalMappedNum[2];
|
|
||||||
case 2:
|
|
||||||
total += totalMappedNum[1];
|
|
||||||
case 1:
|
|
||||||
total += totalMappedNum[0];
|
|
||||||
case 0:
|
|
||||||
return total;
|
|
||||||
}
|
}
|
||||||
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_face(uint localId, modelinfo minfo, int cameraYaw, int cameraPitch,
|
void get_face(uint localId, modelinfo minfo, int cameraYaw, int cameraPitch,
|
||||||
|
|||||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 243 B |
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 257 B |
@@ -8,7 +8,7 @@ runelite.wiki.link=https://github.com/open-osrs/runelite/wiki
|
|||||||
runelite.patreon.link=https://www.patreon.com/openosrs
|
runelite.patreon.link=https://www.patreon.com/openosrs
|
||||||
runelite.wiki.troubleshooting.link=https://github.com/open-osrs/runelite/wiki/Troubleshooting-problems-with-the-client
|
runelite.wiki.troubleshooting.link=https://github.com/open-osrs/runelite/wiki/Troubleshooting-problems-with-the-client
|
||||||
runelite.wiki.building.link=https://github.com/open-osrs/runelite/wiki/Building-with-IntelliJ-IDEA#client-failing-to-start
|
runelite.wiki.building.link=https://github.com/open-osrs/runelite/wiki/Building-with-IntelliJ-IDEA#client-failing-to-start
|
||||||
runelite.dnschange.link=https://1.1.1.1/dns/
|
runelite.dnschange.link=https://1.1.1.1/dns/#setup-instructions
|
||||||
runelite.jav_config=https://oldschool.runescape.com/jav_config.ws
|
runelite.jav_config=https://oldschool.runescape.com/jav_config.ws
|
||||||
runelite.jav_config_backup=https://static.runelite.net/jav_config.ws
|
runelite.jav_config_backup=https://static.runelite.net/jav_config.ws
|
||||||
runelite.pluginhub.url=https://repo.runelite.net/plugins
|
runelite.pluginhub.url=https://repo.runelite.net/plugins
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
BC3DDC3675375E1FD9AD64DEBF4FDA5B4102FE542088C310881120DC47270566
|
7A4628DC7933B4340CEC5F1B3C75ED1857FEDB5E683829499A07E5C364F633FA
|
||||||
@@ -90,13 +90,13 @@ LABEL60:
|
|||||||
iload 0
|
iload 0
|
||||||
iconst 84
|
iconst 84
|
||||||
if_icmpeq LABEL76
|
if_icmpeq LABEL76
|
||||||
jump LABEL815
|
jump LABEL829
|
||||||
LABEL76:
|
LABEL76:
|
||||||
invoke 1984
|
invoke 1984
|
||||||
iload 2
|
iload 2
|
||||||
iconst 0
|
iconst 0
|
||||||
if_icmpgt LABEL81
|
if_icmpgt LABEL81
|
||||||
jump LABEL814
|
jump LABEL828
|
||||||
LABEL81:
|
LABEL81:
|
||||||
iload 3
|
iload 3
|
||||||
iconst 1
|
iconst 1
|
||||||
@@ -699,7 +699,7 @@ LABEL587:
|
|||||||
sconst "You are not chatting as a guest in a clan channel at the moment."
|
sconst "You are not chatting as a guest in a clan channel at the moment."
|
||||||
mes
|
mes
|
||||||
LABEL589:
|
LABEL589:
|
||||||
jump LABEL810
|
jump LABEL824
|
||||||
LABEL590:
|
LABEL590:
|
||||||
iload 5
|
iload 5
|
||||||
iconst 41
|
iconst 41
|
||||||
@@ -792,7 +792,7 @@ LABEL662:
|
|||||||
sconst "You are not chatting in the channel of your own Iron Group at the moment."
|
sconst "You are not chatting in the channel of your own Iron Group at the moment."
|
||||||
mes
|
mes
|
||||||
LABEL664:
|
LABEL664:
|
||||||
jump LABEL810
|
jump LABEL824
|
||||||
LABEL665:
|
LABEL665:
|
||||||
iload 5
|
iload 5
|
||||||
iconst 9
|
iconst 9
|
||||||
@@ -852,7 +852,7 @@ LABEL706:
|
|||||||
iconst -1
|
iconst -1
|
||||||
invoke 5517
|
invoke 5517
|
||||||
LABEL712:
|
LABEL712:
|
||||||
jump LABEL810
|
jump LABEL824
|
||||||
LABEL713:
|
LABEL713:
|
||||||
iload 5
|
iload 5
|
||||||
iconst 2
|
iconst 2
|
||||||
@@ -868,17 +868,17 @@ LABEL717:
|
|||||||
iconst 0
|
iconst 0
|
||||||
iload 9
|
iload 9
|
||||||
invoke 5517
|
invoke 5517
|
||||||
jump LABEL810
|
jump LABEL824
|
||||||
LABEL727:
|
LABEL727:
|
||||||
iload 4
|
iload 4
|
||||||
iconst 1
|
iconst 1
|
||||||
if_icmpeq LABEL731
|
if_icmpeq LABEL731
|
||||||
jump LABEL804
|
jump LABEL818
|
||||||
LABEL731:
|
LABEL731:
|
||||||
iload 2
|
iload 2
|
||||||
iconst 2
|
iconst 2
|
||||||
if_icmpgt LABEL735
|
if_icmpgt LABEL735
|
||||||
jump LABEL797
|
jump LABEL811
|
||||||
LABEL735:
|
LABEL735:
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
sconst "::toggleroof"
|
sconst "::toggleroof"
|
||||||
@@ -886,61 +886,80 @@ LABEL735:
|
|||||||
string_indexof_string
|
string_indexof_string
|
||||||
iconst 0
|
iconst 0
|
||||||
if_icmpeq LABEL742
|
if_icmpeq LABEL742
|
||||||
jump LABEL756
|
jump LABEL770
|
||||||
LABEL742:
|
LABEL742:
|
||||||
getremoveroofs
|
getremoveroofs
|
||||||
iconst 1
|
iconst 1
|
||||||
if_icmpeq LABEL746
|
if_icmpeq LABEL746
|
||||||
jump LABEL751
|
jump LABEL758
|
||||||
LABEL746:
|
LABEL746:
|
||||||
iconst 0
|
iconst 0
|
||||||
setremoveroofs
|
setremoveroofs
|
||||||
|
get_varbit 12378
|
||||||
|
iconst 0
|
||||||
|
if_icmpeq LABEL752
|
||||||
|
jump LABEL755
|
||||||
|
LABEL752:
|
||||||
sconst "Roofs will only be removed selectively."
|
sconst "Roofs will only be removed selectively."
|
||||||
mes
|
mes
|
||||||
jump LABEL755
|
jump LABEL757
|
||||||
LABEL751:
|
LABEL755:
|
||||||
|
sconst "Roofs will only be removed selectively. This setting will not be saved."
|
||||||
|
mes
|
||||||
|
LABEL757:
|
||||||
|
jump LABEL769
|
||||||
|
LABEL758:
|
||||||
iconst 1
|
iconst 1
|
||||||
setremoveroofs
|
setremoveroofs
|
||||||
|
get_varbit 12378
|
||||||
|
iconst 1
|
||||||
|
if_icmpeq LABEL764
|
||||||
|
jump LABEL767
|
||||||
|
LABEL764:
|
||||||
sconst "Roofs are now all hidden."
|
sconst "Roofs are now all hidden."
|
||||||
mes
|
mes
|
||||||
LABEL755:
|
jump LABEL769
|
||||||
jump LABEL796
|
LABEL767:
|
||||||
LABEL756:
|
sconst "Roofs are now all hidden. This setting will not be saved."
|
||||||
|
mes
|
||||||
|
LABEL769:
|
||||||
|
jump LABEL810
|
||||||
|
LABEL770:
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
sconst "::wiki "
|
sconst "::wiki "
|
||||||
iconst 0
|
iconst 0
|
||||||
string_indexof_string
|
string_indexof_string
|
||||||
iconst 0
|
iconst 0
|
||||||
if_icmpeq LABEL768
|
if_icmpeq LABEL782
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
sconst "::wiki"
|
sconst "::wiki"
|
||||||
compare
|
compare
|
||||||
iconst 0
|
iconst 0
|
||||||
if_icmpeq LABEL768
|
if_icmpeq LABEL782
|
||||||
sconst "runeliteCommand" ; load callback name
|
sconst "runeliteCommand" ; load callback name
|
||||||
runelite_callback ; invoke callback
|
runelite_callback ; invoke callback
|
||||||
jump LABEL771
|
jump LABEL785
|
||||||
LABEL768:
|
LABEL782:
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
invoke 3299
|
invoke 3299
|
||||||
jump LABEL796
|
jump LABEL810
|
||||||
LABEL771:
|
LABEL785:
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
sconst "::bank"
|
sconst "::bank"
|
||||||
iconst 0
|
iconst 0
|
||||||
string_indexof_string
|
string_indexof_string
|
||||||
iconst 0
|
iconst 0
|
||||||
if_icmpeq LABEL778
|
if_icmpeq LABEL792
|
||||||
jump LABEL785
|
jump LABEL799
|
||||||
LABEL778:
|
LABEL792:
|
||||||
sconst "Hey, everyone, I just tried to do something very silly!"
|
sconst "Hey, everyone, I just tried to do something very silly!"
|
||||||
iconst 0
|
iconst 0
|
||||||
iconst -1
|
iconst -1
|
||||||
iconst 0
|
iconst 0
|
||||||
iconst -1
|
iconst -1
|
||||||
invoke 5517
|
invoke 5517
|
||||||
jump LABEL796
|
jump LABEL810
|
||||||
LABEL785:
|
LABEL799:
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
invoke 224
|
invoke 224
|
||||||
set_varc_string 335
|
set_varc_string 335
|
||||||
@@ -952,97 +971,97 @@ LABEL785:
|
|||||||
iload 2
|
iload 2
|
||||||
substring
|
substring
|
||||||
docheat
|
docheat
|
||||||
LABEL796:
|
LABEL810:
|
||||||
jump LABEL803
|
jump LABEL817
|
||||||
LABEL797:
|
LABEL811:
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
iconst 0
|
iconst 0
|
||||||
iconst -1
|
iconst -1
|
||||||
iconst 0
|
iconst 0
|
||||||
iconst -1
|
iconst -1
|
||||||
invoke 5517
|
invoke 5517
|
||||||
LABEL803:
|
LABEL817:
|
||||||
jump LABEL810
|
jump LABEL824
|
||||||
LABEL804:
|
LABEL818:
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
iconst 0
|
iconst 0
|
||||||
iconst -1
|
iconst -1
|
||||||
iconst 1
|
iconst 1
|
||||||
iload 9
|
iload 9
|
||||||
invoke 5517
|
invoke 5517
|
||||||
LABEL810:
|
LABEL824:
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
invoke 77
|
invoke 77
|
||||||
sconst ""
|
sconst ""
|
||||||
set_varc_string 335
|
set_varc_string 335
|
||||||
LABEL814:
|
LABEL828:
|
||||||
jump LABEL890
|
jump LABEL904
|
||||||
LABEL815:
|
LABEL829:
|
||||||
iload 0
|
iload 0
|
||||||
iconst 104
|
iconst 104
|
||||||
if_icmpeq LABEL819
|
if_icmpeq LABEL833
|
||||||
jump LABEL825
|
jump LABEL839
|
||||||
LABEL819:
|
LABEL833:
|
||||||
iload 3
|
iload 3
|
||||||
iconst 1
|
iconst 1
|
||||||
if_icmpeq LABEL823
|
if_icmpeq LABEL837
|
||||||
jump LABEL824
|
jump LABEL838
|
||||||
LABEL823:
|
LABEL837:
|
||||||
invoke 75
|
invoke 75
|
||||||
LABEL824:
|
LABEL838:
|
||||||
jump LABEL890
|
jump LABEL904
|
||||||
LABEL825:
|
LABEL839:
|
||||||
iload 0
|
iload 0
|
||||||
iconst 105
|
iconst 105
|
||||||
if_icmpeq LABEL829
|
if_icmpeq LABEL843
|
||||||
jump LABEL835
|
jump LABEL849
|
||||||
LABEL829:
|
LABEL843:
|
||||||
iload 3
|
iload 3
|
||||||
iconst 1
|
iconst 1
|
||||||
if_icmpeq LABEL833
|
if_icmpeq LABEL847
|
||||||
jump LABEL834
|
jump LABEL848
|
||||||
LABEL833:
|
LABEL847:
|
||||||
invoke 76
|
invoke 76
|
||||||
LABEL834:
|
LABEL848:
|
||||||
jump LABEL890
|
jump LABEL904
|
||||||
LABEL835:
|
LABEL849:
|
||||||
iload 0
|
iload 0
|
||||||
iconst 80
|
iconst 80
|
||||||
if_icmpeq LABEL839
|
if_icmpeq LABEL853
|
||||||
jump LABEL884
|
jump LABEL898
|
||||||
LABEL839:
|
LABEL853:
|
||||||
iconst 40697936
|
iconst 40697936
|
||||||
iconst 1
|
iconst 1
|
||||||
cc_find
|
cc_find
|
||||||
iconst 1
|
iconst 1
|
||||||
if_icmpeq LABEL845
|
if_icmpeq LABEL859
|
||||||
jump LABEL846
|
jump LABEL860
|
||||||
LABEL845:
|
LABEL859:
|
||||||
return
|
return
|
||||||
LABEL846:
|
LABEL860:
|
||||||
get_varc_string 356
|
get_varc_string 356
|
||||||
string_length
|
string_length
|
||||||
iconst 0
|
iconst 0
|
||||||
if_icmpgt LABEL851
|
if_icmpgt LABEL865
|
||||||
jump LABEL871
|
jump LABEL885
|
||||||
LABEL851:
|
LABEL865:
|
||||||
get_varc_string 356
|
get_varc_string 356
|
||||||
friend_test
|
friend_test
|
||||||
iconst 1
|
iconst 1
|
||||||
if_icmpeq LABEL856
|
if_icmpeq LABEL870
|
||||||
jump LABEL859
|
jump LABEL873
|
||||||
LABEL856:
|
LABEL870:
|
||||||
get_varc_string 356
|
get_varc_string 356
|
||||||
invoke 107
|
invoke 107
|
||||||
return
|
return
|
||||||
LABEL859:
|
LABEL873:
|
||||||
get_varc_int 60
|
get_varc_int 60
|
||||||
clientclock
|
clientclock
|
||||||
if_icmpgt LABEL863
|
if_icmpgt LABEL877
|
||||||
jump LABEL864
|
jump LABEL878
|
||||||
LABEL863:
|
LABEL877:
|
||||||
return
|
return
|
||||||
LABEL864:
|
LABEL878:
|
||||||
clientclock
|
clientclock
|
||||||
iconst 50
|
iconst 50
|
||||||
add
|
add
|
||||||
@@ -1050,14 +1069,14 @@ LABEL864:
|
|||||||
sconst "That player was not found on your Friends list."
|
sconst "That player was not found on your Friends list."
|
||||||
mes
|
mes
|
||||||
return
|
return
|
||||||
LABEL871:
|
LABEL885:
|
||||||
get_varc_int 60
|
get_varc_int 60
|
||||||
clientclock
|
clientclock
|
||||||
if_icmpgt LABEL875
|
if_icmpgt LABEL889
|
||||||
jump LABEL876
|
jump LABEL890
|
||||||
LABEL875:
|
LABEL889:
|
||||||
return
|
return
|
||||||
LABEL876:
|
LABEL890:
|
||||||
clientclock
|
clientclock
|
||||||
iconst 50
|
iconst 50
|
||||||
add
|
add
|
||||||
@@ -1065,8 +1084,8 @@ LABEL876:
|
|||||||
sconst "You haven't received any messages to which you can reply."
|
sconst "You haven't received any messages to which you can reply."
|
||||||
mes
|
mes
|
||||||
return
|
return
|
||||||
jump LABEL890
|
jump LABEL904
|
||||||
LABEL884:
|
LABEL898:
|
||||||
get_varc_string 335
|
get_varc_string 335
|
||||||
iconst 0
|
iconst 0
|
||||||
iload 0
|
iload 0
|
||||||
@@ -1078,9 +1097,9 @@ LABEL884:
|
|||||||
runelite_callback ;
|
runelite_callback ;
|
||||||
if_icmpeq SKIPSETVARC ; skip setting varc with input
|
if_icmpeq SKIPSETVARC ; skip setting varc with input
|
||||||
set_varc_string 335
|
set_varc_string 335
|
||||||
jump LABEL890 ; jump over SKIPSETVARC
|
jump LABEL904 ; jump over SKIPSETVARC
|
||||||
SKIPSETVARC:
|
SKIPSETVARC:
|
||||||
pop_string ; pop message
|
pop_string ; pop message
|
||||||
LABEL890:
|
LABEL904:
|
||||||
invoke 223
|
invoke 223
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ public abstract class ShellPanel extends JPanel
|
|||||||
topPanel.add(run);
|
topPanel.add(run);
|
||||||
|
|
||||||
JButton clear = new JButton("🗑");
|
JButton clear = new JButton("🗑");
|
||||||
run.setToolTipText("Clear console");
|
clear.setToolTipText("Clear console");
|
||||||
clear.addActionListener(ev -> console.setText(""));
|
clear.addActionListener(ev -> console.setText(""));
|
||||||
topPanel.add(clear);
|
topPanel.add(clear);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package net.runelite.rs.api;
|
||||||
|
|
||||||
|
public interface RSOAuthApi
|
||||||
|
{}
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
package net.runelite.rs.api;
|
|
||||||
|
|
||||||
public interface RSOAuthTokens {}
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package net.runelite.rs.api;
|
||||||
|
|
||||||
|
public interface RSOtlTokenRequester
|
||||||
|
{}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package net.runelite.rs.api;
|
||||||
|
|
||||||
|
public interface RSOtlTokenResponse
|
||||||
|
{}
|
||||||
Reference in New Issue
Block a user