public static void DrawArrowPointingAt(Vector3 mapTarget, bool offscreenOnly = false) { Vector3 vector = UI.UIToMapPosition((float)(UI.screenWidth / 2), (float)(UI.screenHeight / 2)); if ((vector - mapTarget).MagnitudeHorizontalSquared() < 81f) { if (!offscreenOnly) { Vector3 position = mapTarget; position.y = Altitudes.AltitudeFor(AltitudeLayer.MetaOverlays); position.z -= 1.5f; Graphics.DrawMesh(MeshPool.plane20, position, Quaternion.identity, GenDraw.ArrowMatWhite, 0); } } else { Vector3 vector2 = (mapTarget - vector).normalized * 7f; Vector3 position2 = vector + vector2; position2.y = Altitudes.AltitudeFor(AltitudeLayer.MetaOverlays); Quaternion rotation = Quaternion.LookRotation(vector2); Graphics.DrawMesh(MeshPool.plane20, position2, rotation, GenDraw.ArrowMatWhite, 0); } }
public static Vector3 UIToMapPosition(float x, float y) { return(UI.UIToMapPosition(new Vector2(x, y))); }
public static IntVec3 MouseCell() { return(UI.UIToMapPosition(UI.MousePositionOnUI).ToIntVec3()); }
public static Vector3 MouseMapPosition() { return(UI.UIToMapPosition(UI.MousePositionOnUI)); }