the initial commit to the repo.
This commit is contained in:
parent
025c032b8c
commit
1b757591b9
264 changed files with 21882 additions and 0 deletions
158
EscapeFromTarkovCheat/Utils/Render.cs
Normal file
158
EscapeFromTarkovCheat/Utils/Render.cs
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
/**
|
||||
* Render class Credit to ZAT from Unknowncheats
|
||||
* https://www.unknowncheats.me/forum/members/562321.html
|
||||
*/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Utils
|
||||
{
|
||||
public static class Render
|
||||
{
|
||||
public static Material DrawMaterial = new Material(Shader.Find("Hidden/Internal-Colored"));
|
||||
|
||||
public static GUIStyle StringStyle { get; set; } = new GUIStyle(GUI.skin.label);
|
||||
private class RingArray
|
||||
{
|
||||
public Vector2[] Positions { get; private set; }
|
||||
|
||||
public RingArray(int numSegments)
|
||||
{
|
||||
Positions = new Vector2[numSegments];
|
||||
var stepSize = 360f / numSegments;
|
||||
for (int i = 0; i < numSegments; i++)
|
||||
{
|
||||
var rad = Mathf.Deg2Rad * stepSize * i;
|
||||
Positions[i] = new Vector2(Mathf.Sin(rad), Mathf.Cos(rad));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Dictionary<int, RingArray> ringDict = new Dictionary<int, RingArray>();
|
||||
|
||||
public static Color Color
|
||||
{
|
||||
get { return GUI.color; }
|
||||
set { GUI.color = value; }
|
||||
}
|
||||
|
||||
public static void DrawLine(Vector2 from, Vector2 to, float thickness, Color color)
|
||||
{
|
||||
Color = color;
|
||||
DrawLine(from, to, thickness);
|
||||
}
|
||||
public static void DrawLine(Vector2 from, Vector2 to, float thickness)
|
||||
{
|
||||
var delta = (to - from).normalized;
|
||||
var angle = Mathf.Atan2(delta.y, delta.x) * Mathf.Rad2Deg;
|
||||
GUIUtility.RotateAroundPivot(angle, from);
|
||||
DrawBox(from, Vector2.right * (from - to).magnitude, thickness, false);
|
||||
GUIUtility.RotateAroundPivot(-angle, from);
|
||||
}
|
||||
|
||||
public static void DrawBox(float x, float y, float w, float h, Color color)
|
||||
{
|
||||
DrawLine(new Vector2(x, y), new Vector2(x + w, y), 1f, color);
|
||||
DrawLine(new Vector2(x, y), new Vector2(x, y + h), 1f,color);
|
||||
DrawLine(new Vector2(x + w, y), new Vector2(x + w, y + h), 1f, color);
|
||||
DrawLine(new Vector2(x, y + h), new Vector2(x + w, y + h), 1f, color);
|
||||
}
|
||||
|
||||
public static void DrawBox(Vector2 position, Vector2 size, float thickness, Color color, bool centered = true)
|
||||
{
|
||||
Color = color;
|
||||
DrawBox(position, size, thickness, centered);
|
||||
}
|
||||
public static void DrawBox(Vector2 position, Vector2 size, float thickness, bool centered = true)
|
||||
{
|
||||
var upperLeft = centered ? position - size / 2f : position;
|
||||
GUI.DrawTexture(new Rect(position.x, position.y, size.x, thickness), Texture2D.whiteTexture);
|
||||
GUI.DrawTexture(new Rect(position.x, position.y, thickness, size.y), Texture2D.whiteTexture);
|
||||
GUI.DrawTexture(new Rect(position.x + size.x, position.y, thickness, size.y), Texture2D.whiteTexture);
|
||||
GUI.DrawTexture(new Rect(position.x, position.y + size.y, size.x + thickness, thickness), Texture2D.whiteTexture);
|
||||
}
|
||||
|
||||
public static void DrawCross(Vector2 position, Vector2 size, float thickness, Color color)
|
||||
{
|
||||
Color = color;
|
||||
DrawCross(position, size, thickness);
|
||||
}
|
||||
public static void DrawCross(Vector2 position, Vector2 size, float thickness)
|
||||
{
|
||||
GUI.DrawTexture(new Rect(position.x - size.x / 2f, position.y, size.x, thickness), Texture2D.whiteTexture);
|
||||
GUI.DrawTexture(new Rect(position.x, position.y - size.y / 2f, thickness, size.y), Texture2D.whiteTexture);
|
||||
}
|
||||
|
||||
public static void DrawDot(Vector2 position, Color color)
|
||||
{
|
||||
Color = color;
|
||||
DrawDot(position);
|
||||
}
|
||||
public static void DrawDot(Vector2 position)
|
||||
{
|
||||
DrawBox(position - Vector2.one, Vector2.one * 2f, 1f);
|
||||
}
|
||||
|
||||
public static void DrawString(Vector2 position, string label, Color color, bool centered = true)
|
||||
{
|
||||
Color = color;
|
||||
DrawString(position, label, centered);
|
||||
}
|
||||
public static void DrawString(Vector2 position, string label, bool centered = true)
|
||||
{
|
||||
var content = new GUIContent(label);
|
||||
var size = StringStyle.CalcSize(content);
|
||||
var upperLeft = centered ? position - size / 2f : position;
|
||||
GUI.Label(new Rect(upperLeft, size), content);
|
||||
}
|
||||
|
||||
public static void DrawCircle(Vector2 position, float radius, int numSides, bool centered = true, float thickness = 1f)
|
||||
{
|
||||
DrawCircle(position, radius, numSides, Color.white, centered, thickness);
|
||||
}
|
||||
public static void DrawCircle(Vector2 position, float radius, int numSides, Color color, bool centered = true, float thickness = 1f)
|
||||
{
|
||||
RingArray arr;
|
||||
if (ringDict.ContainsKey(numSides))
|
||||
arr = ringDict[numSides];
|
||||
else
|
||||
arr = ringDict[numSides] = new RingArray(numSides);
|
||||
|
||||
|
||||
var center = centered ? position : position + Vector2.one * radius;
|
||||
|
||||
for (int i = 0; i < numSides - 1; i++)
|
||||
DrawLine(center + arr.Positions[i] * radius, center + arr.Positions[i + 1] * radius, thickness, color);
|
||||
|
||||
DrawLine(center + arr.Positions[0] * radius, center + arr.Positions[arr.Positions.Length - 1] * radius, thickness, color);
|
||||
}
|
||||
|
||||
public static void DrawSnapline(Vector3 worldpos, Color color)
|
||||
{
|
||||
Vector3 pos = Main.MainCamera.WorldToScreenPoint(worldpos);
|
||||
pos.y = Screen.height - pos.y;
|
||||
GL.PushMatrix();
|
||||
GL.Begin(1);
|
||||
DrawMaterial.SetPass(0);
|
||||
GL.Color(color);
|
||||
GL.Vertex3(Screen.width / 2, Screen.height, 0f);
|
||||
GL.Vertex3(pos.x, pos.y, 0f);
|
||||
GL.End();
|
||||
GL.PopMatrix();
|
||||
}
|
||||
public static void DrawBoneLine(Vector2 from, Vector2 to, float thickness, Color color)
|
||||
{
|
||||
Color = color;
|
||||
DrawBoneLine(from, to, thickness);
|
||||
}
|
||||
public static void DrawBoneLine(Vector2 from, Vector2 to, float thickness)
|
||||
{
|
||||
var delta = (to - from).normalized;
|
||||
var angle = Mathf.Atan2(delta.y, delta.x) * Mathf.Rad2Deg;
|
||||
GUIUtility.RotateAroundPivot(angle, from);
|
||||
DrawBox(from, Vector2.right * (from - to).magnitude, thickness, false);
|
||||
GUIUtility.RotateAroundPivot(-angle, from);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue