using System;
using System.Collections;
using DarkTonic.MasterAudio;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

// Token: 0x020000E4 RID: 228
public class Windows : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler
{
	// Token: 0x060014ED RID: 5357 RVA: 0x00193D22 File Offset: 0x00191F22
	private void Awake()
	{
		this.prevY = this.minimumY;
		this.prevX = this.minimumX;
		this.tr = base.transform;
		this.GetStartPositions();
		this.SetResizeButtonColors();
	}

	// Token: 0x060014EE RID: 5358 RVA: 0x00193D54 File Offset: 0x00191F54
	public void GetStartPositions()
	{
		this.startPosition = this.rt.anchoredPosition3D;
		this.startAnchorMin = this.rt.anchorMin;
		this.startAnchorMax = this.rt.anchorMax;
		this.startPivot = this.rt.pivot;
	}

	// Token: 0x060014EF RID: 5359 RVA: 0x00193DB4 File Offset: 0x00191FB4
	private void Start()
	{
		this.OnPointerExit(null);
	}

	// Token: 0x060014F0 RID: 5360 RVA: 0x00193DC0 File Offset: 0x00191FC0
	public void SetPivotLeft()
	{
		if (this.rt.anchorMin.x != 0f)
		{
			this.rt.anchorMin = new Vector2(0f, 1f);
			this.rt.anchorMax = new Vector2(0f, 1f);
			this.rt.pivot = new Vector2(0f, 1f);
			float num = this.rt.anchoredPosition3D.x + this.ScreenXModifier() - this.rt.sizeDelta.x;
			float y = this.rt.anchoredPosition3D.y;
			this.rt.anchoredPosition3D = new Vector3(num, y, 0f);
		}
	}

	// Token: 0x060014F1 RID: 5361 RVA: 0x00193E88 File Offset: 0x00192088
	public void Load(Vector3 size, Vector3 position, bool mini, float fullW, float fullH)
	{
		if (!this.tr)
		{
			this.tr = base.transform;
		}
		if (this.rt.anchorMin.x != 0f)
		{
			this.rt.anchorMin = new Vector2(0f, 1f);
			this.rt.anchorMax = new Vector2(0f, 1f);
			this.rt.pivot = new Vector2(0f, 1f);
			float num = this.rt.anchoredPosition3D.x + this.ScreenXModifier() - this.rt.sizeDelta.x;
			float y = this.rt.anchoredPosition3D.y;
			this.rt.anchoredPosition3D = new Vector3(num, y, 0f);
		}
		float z = size.z;
		this.rt.sizeDelta = size;
		this.tr.position = position;
		this.tr.localPosition = new Vector3(this.tr.localPosition.x, this.tr.localPosition.y, 0f);
		this.minimized = false;
		if (this.contentRT)
		{
			this.contentRT.anchoredPosition3D = new Vector3(this.contentRT.anchoredPosition3D.x, z, 0f);
		}
		this.GridLayout(false, true);
		this.ChangeScreenSize();
	}

	// Token: 0x060014F2 RID: 5362 RVA: 0x00194008 File Offset: 0x00192208
	public void Save(out Vector3 size, out Vector3 position, out bool mini, out float fullW, out float fullH)
	{
		if (!this.tr)
		{
			this.tr = base.transform;
		}
		if (this.rt.anchorMin.x != 0f)
		{
			this.rt.anchorMin = new Vector2(0f, 1f);
			this.rt.anchorMax = new Vector2(0f, 1f);
			this.rt.pivot = new Vector2(0f, 1f);
			float num = this.rt.anchoredPosition3D.x + this.ScreenXModifier() - this.rt.sizeDelta.x;
			float y = this.rt.anchoredPosition3D.y;
			this.rt.anchoredPosition3D = new Vector3(num, y, 0f);
		}
		size = this.rt.sizeDelta;
		position = this.tr.position;
		mini = this.minimized;
		fullW = this.fullWidth;
		fullH = this.fullHeight;
		if (this.contentRT)
		{
			size.z = this.contentRT.anchoredPosition3D.y;
		}
	}

	// Token: 0x060014F3 RID: 5363 RVA: 0x0019414B File Offset: 0x0019234B
	public void ToggleController()
	{
		if (!this.edgesBtn)
		{
			return;
		}
		this.edgesBtn.interactable = Links.x.mk;
	}

	// Token: 0x060014F4 RID: 5364 RVA: 0x00194170 File Offset: 0x00192370
	public void ToggleResizeDrag()
	{
		Links.x.hudControl.ToggleWindowInteractables(true);
	}

	// Token: 0x060014F5 RID: 5365 RVA: 0x00194184 File Offset: 0x00192384
	public void ToggleWindowVisual(bool state)
	{
		if (this.windowBg)
		{
			if (this.linkedPortrait)
			{
				if (!this.linkedPortrait.character)
				{
					state = false;
				}
				if (Links.x)
				{
					if (!Links.x.hudControl.AnyWindowDraggingResizing())
					{
						this.windowBg.enabled = state;
						if (this.windowResizeR)
						{
							this.windowResizeR.enabled = state;
							this.windowResizeL.enabled = state;
							this.windowResizeU.enabled = state;
							this.windowResizeUR.enabled = state;
							this.windowResizeUL.enabled = state;
							this.windowResizeD.enabled = state;
							this.windowResizeDR.enabled = state;
							this.windowResizeDL.enabled = state;
						}
						this.linkedPortrait.skillBag.SetResizeDrag();
					}
				}
				else
				{
					this.windowBg.enabled = state;
					if (this.windowResizeR)
					{
						this.windowResizeR.enabled = state;
						this.windowResizeL.enabled = state;
						this.windowResizeU.enabled = state;
						this.windowResizeUR.enabled = state;
						this.windowResizeUL.enabled = state;
						this.windowResizeD.enabled = state;
						this.windowResizeDR.enabled = state;
						this.windowResizeDL.enabled = state;
					}
				}
				if (Links.x && !Links.x.hudControl.AnyWindowDraggingResizing() && !this.dragging && !this.resizing && !Records.x.movingWindows)
				{
				}
			}
			else
			{
				Color color = this.windowResizeR.color;
				bool flag = false;
				if (Records.x && Records.x.movingWindows)
				{
					flag = true;
				}
				if (flag || this.dragging || this.resizing)
				{
					color.a = 1f;
				}
				else
				{
					color.a = 0f;
				}
				if (this.windowResizeR)
				{
					this.windowResizeR.color = color;
					this.windowResizeL.color = color;
					this.windowResizeU.color = color;
					this.windowResizeUR.color = color;
					this.windowResizeUL.color = color;
					this.windowResizeD.color = color;
					this.windowResizeDR.color = color;
					this.windowResizeDL.color = color;
				}
			}
		}
		this.GridLayout(false, false);
	}

	// Token: 0x060014F6 RID: 5366 RVA: 0x00194404 File Offset: 0x00192604
	public void ToggleWindowInteractables(bool state)
	{
		if (this.windowBg && this.linkedPortrait)
		{
			if (!this.linkedPortrait.character)
			{
			}
			if (Links.x && this.linkedPortrait && !Links.x.hudControl.AnyWindowDraggingResizing() && !this.dragging && !this.resizing)
			{
				bool movingWindows = Records.x.movingWindows;
			}
		}
	}

	// Token: 0x060014F7 RID: 5367 RVA: 0x00194488 File Offset: 0x00192688
	public void OnPointerEnter(PointerEventData eventData)
	{
		if (!this.handle)
		{
			return;
		}
		this.handle.color.a = 1f;
	}

	// Token: 0x060014F8 RID: 5368 RVA: 0x001944BC File Offset: 0x001926BC
	public void OnPointerExit(PointerEventData eventData)
	{
		if (!this.handle)
		{
			return;
		}
		if (!Input.GetMouseButton(0))
		{
			this.handle.color.a = 0f;
		}
	}

	// Token: 0x060014F9 RID: 5369 RVA: 0x001944F7 File Offset: 0x001926F7
	public void ResetGridLayout()
	{
		this.grid.constraint = GridLayoutGroup.Constraint.Flexible;
		this.rt.sizeDelta = new Vector2(229f, 91f);
	}

	// Token: 0x060014FA RID: 5370 RVA: 0x00194520 File Offset: 0x00192720
	public void GridLayout(bool setToSize, bool fromLoad)
	{
		if (!this.grid)
		{
			return;
		}
		float num = 44.5f;
		this.cellWidth = 45f;
		this.rowsWanted = this.rt.sizeDelta.y / num;
		this.rowsWanted = Mathf.Round(this.rowsWanted);
		if (this.linkedPortrait && this.linkedPortrait.character && this.linkedPortrait.character.stats.HealthCurrent() <= 0)
		{
			return;
		}
		if ((Links.x.creation || (Records.x.dialogue && Records.x.banquetIsle)) && this.linkedPortrait)
		{
			this.rowsWanted = 2f;
			setToSize = true;
		}
		if (Links.x.joy && this.rowsWanted > 3f)
		{
			this.rowsWanted = 3f;
		}
		if (this.rowsWanted <= 1f)
		{
			this.grid.constraint = GridLayoutGroup.Constraint.Flexible;
		}
		else
		{
			this.grid.constraint = GridLayoutGroup.Constraint.Flexible;
		}
		int num2 = 0;
		using (IEnumerator enumerator = this.listGrid.GetEnumerator())
		{
			while (enumerator.MoveNext())
			{
				if (((Transform)enumerator.Current).gameObject.activeSelf)
				{
					num2++;
				}
			}
		}
		this.columnsWanted = (int)Mathf.Round(this.rt.sizeDelta.x / this.cellWidth);
		if (Links.x.joy && this.columnsWanted < 2)
		{
			this.columnsWanted = 2;
		}
		if (this.rowsWanted < 1f)
		{
			this.rowsWanted = 1f;
		}
		int num3 = (int)Mathf.Ceil((float)num2 / this.rowsWanted);
		if (Links.x.joy && !this.linkedPortrait && num3 > 6 && this.rowsWanted < 3f)
		{
			num3 = 6;
			this.columnsWanted = 6;
			this.rowsWanted = (float)((int)Mathf.Ceil((float)num2 / (float)this.columnsWanted));
			this.grid.constraint = GridLayoutGroup.Constraint.Flexible;
		}
		int num4 = (int)Mathf.Ceil((float)num2 / (float)this.columnsWanted);
		if (!this.dragging && !this.resizing && !fromLoad)
		{
			setToSize = true;
		}
		if (Links.x.joy || setToSize)
		{
			if (Links.x.joy)
			{
				this.columnsWanted = num3;
			}
			else
			{
				if (this.rowsWanted == 1f)
				{
					this.columnsWanted = num3;
				}
				else if (num2 <= this.columnsWanted)
				{
					this.rowsWanted = 1f;
				}
				else if (this.rowsWanted > (float)num2 / (float)this.columnsWanted)
				{
					this.rowsWanted = Mathf.Ceil((float)num2 / (float)this.columnsWanted);
				}
				if (!this.linkedPortrait && setToSize)
				{
					this.rowsWanted = (float)num4;
				}
			}
			if (this.linkedPortrait && !this.first)
			{
				if (num2 < 4)
				{
					this.rowsWanted = 1f;
					this.columnsWanted = num2;
					num3 = this.columnsWanted;
				}
				else
				{
					this.rowsWanted = 2f;
					this.columnsWanted = (int)Mathf.Ceil((float)num2 / this.rowsWanted);
					if (this.columnsWanted < 4)
					{
						this.columnsWanted = 4;
					}
					num3 = this.columnsWanted;
				}
				this.first = true;
			}
		}
		float num5 = (float)this.columnsWanted * this.cellWidth + 6f;
		float num6 = this.rowsWanted * num + 6f;
		if (!this.resizing)
		{
			this.rt.sizeDelta = new Vector2(num5, num6);
		}
		if ((this.book || this.linkedPortrait) && !this.resizing)
		{
			this.updateGridNextFrame = true;
		}
	}

	// Token: 0x060014FB RID: 5371 RVA: 0x001948EC File Offset: 0x00192AEC
	private void Update()
	{
		if (this.resizing)
		{
			this.OnResize();
			this.GridLayout(false, false);
		}
		if (this.dragging)
		{
			this.OnDrag();
			this.GridLayout(false, false);
		}
		if (this.updateGridNextFrame && !Links.x.pocketWheel.spellbook.activeSelf && this.linkedPortrait)
		{
			this.linkedPortrait.skillBag.UpdateButtonsFromGrid((float)this.columnsWanted, this.rowsWanted, this.cellWidth);
		}
		this.updateGridNextFrame = false;
		if (this.checkForDrag && this.portraitHandle)
		{
			this.portraitHandle.CheckForDrag();
		}
		if (Input.GetMouseButtonDown(0) && Links.x.mk)
		{
			GameObject currentSelectedGameObject = EventSystem.current.currentSelectedGameObject;
			bool flag = false;
			if (currentSelectedGameObject && this.listGrid && currentSelectedGameObject.transform.parent && this.listGrid == currentSelectedGameObject.transform.parent)
			{
				flag = true;
			}
			GameObject gameObject = null;
			if (this.handle)
			{
				gameObject = this.handle.gameObject;
			}
			if (currentSelectedGameObject == base.gameObject || currentSelectedGameObject == gameObject || currentSelectedGameObject == this.topBorder || flag)
			{
				this.down = true;
				this.OnPointerEnter(null);
			}
		}
		if (Input.GetMouseButtonUp(0) && Links.x.mk)
		{
			GameObject currentSelectedGameObject2 = EventSystem.current.currentSelectedGameObject;
			this.down = false;
			bool flag2 = false;
			if (currentSelectedGameObject2 && this.listGrid && currentSelectedGameObject2.transform.parent && this.listGrid == currentSelectedGameObject2.transform.parent)
			{
				flag2 = true;
			}
			GameObject gameObject2 = null;
			if (this.handle)
			{
				gameObject2 = this.handle.gameObject;
			}
			if (currentSelectedGameObject2 != base.gameObject && currentSelectedGameObject2 != gameObject2 && currentSelectedGameObject2 != this.topBorder && !flag2)
			{
				this.OnPointerExit(null);
			}
		}
		if ((this.resizing || this.dragging) && Links.x.mk && Input.GetMouseButtonUp(0))
		{
			if (this.currentHandle)
			{
				this.currentHandle.OnPointerUp(null);
			}
			if (this.dragging)
			{
				this.OnDragEnds();
			}
			if (this.resizing)
			{
				this.OnResizeEnds();
			}
		}
		if (this.changingHeight)
		{
			if (Records.x.filming)
			{
				this.t += Time.unscaledDeltaTime * Records.x.filmingAnimatorSpeed;
			}
			else
			{
				this.t += Time.unscaledDeltaTime * 10f;
			}
			this.rt.sizeDelta = Vector2.Lerp(this.minimizeStartSize, new Vector2(this.widthTarget, this.heightTarget), this.t);
			if (this.rt.sizeDelta.y == this.heightTarget && this.rt.sizeDelta.x == this.widthTarget)
			{
				this.t = 0f;
				this.changingHeight = false;
				if (this.linkedPortrait)
				{
					this.linkedPortrait.skillBag.MinimizeWindow();
				}
			}
		}
		if (this.waitingToStartDrag)
		{
			if ((Vector3.Distance(Input.mousePosition, this.startDragInputPosition) > 0.01f || Time.realtimeSinceStartup > this.dragStartTime + 0.5f) && Input.GetMouseButton(0))
			{
				this.OnDragBegins();
				this.tr.SetAsLastSibling();
				this.waitingToStartDrag = false;
			}
			if (Input.GetMouseButtonUp(0))
			{
				this.waitingToStartDrag = false;
			}
		}
		if (this.waitingForMinimizeMove)
		{
			if ((Vector3.Distance(Input.mousePosition, this.savedPosition) > 0.3f || Time.realtimeSinceStartup > this.minimizeTime + 0.5f) && Input.GetMouseButton(0))
			{
				this.OnDragBegins();
				this.tr.SetAsLastSibling();
				this.waitingForMinimizeMove = false;
			}
			if (Input.GetMouseButtonUp(0))
			{
				this.waitingForMinimizeMove = false;
				this.FinishToggleMinimize();
			}
		}
	}

	// Token: 0x060014FC RID: 5372 RVA: 0x00194D10 File Offset: 0x00192F10
	public void StartDrag()
	{
		Links.x.gameplay.StoneSoundQuieter();
		this.startDragInputPosition = Input.mousePosition;
		this.dragStartTime = Time.realtimeSinceStartup;
		if (this.linkedPortrait)
		{
			this.linkedPortrait.PortraitHover(false);
		}
		this.waitingToStartDrag = true;
	}

	// Token: 0x060014FD RID: 5373 RVA: 0x00194D64 File Offset: 0x00192F64
	public void ToggleMinimize()
	{
		MasterAudio.PlaySoundAndForget("Clicks Stone B", Random.Range(0.7f, 1f), new float?(Random.Range(0.97f, 1f)), 0f, "", null);
		this.minimizeTime = Time.realtimeSinceStartup;
		this.waitingForMinimizeMove = true;
		this.savedPosition = Input.mousePosition;
	}

	// Token: 0x060014FE RID: 5374 RVA: 0x00194DD0 File Offset: 0x00192FD0
	public void FinishToggleMinimize()
	{
		if (this.minimized)
		{
			this.minimized = false;
			this.minimizeStartSize = this.rt.sizeDelta;
			this.heightTarget = this.fullHeight;
			this.t = 0f;
			this.changingHeight = true;
			this.widthTarget = this.fullWidth;
			if (this.rt.anchorMin.x != 1f)
			{
				this.rt.anchorMin = new Vector2(1f, 1f);
				this.rt.anchorMax = new Vector2(1f, 1f);
				this.rt.pivot = new Vector2(1f, 1f);
				float num = -1f * this.ScreenXModifier() + this.rt.anchoredPosition3D.x + this.rt.sizeDelta.x;
				this.rt.anchoredPosition3D = new Vector3(num, this.rt.anchoredPosition3D.y, 0f);
			}
		}
		else
		{
			this.minimized = true;
			this.fullHeight = this.rt.sizeDelta.y;
			this.fullWidth = this.rt.sizeDelta.x;
			this.minimizeStartSize = this.rt.sizeDelta;
			this.heightTarget = 2f;
			this.widthTarget = 0f;
			this.t = 0f;
			this.changingHeight = true;
			if (this.linkedPortrait)
			{
				this.linkedPortrait.skillBag.TooltipOff();
			}
			if (this.rt.anchorMin.x != 1f)
			{
				this.rt.anchorMin = new Vector2(1f, 1f);
				this.rt.anchorMax = new Vector2(1f, 1f);
				this.rt.pivot = new Vector2(1f, 1f);
				float num2 = -1f * this.ScreenXModifier() + this.rt.anchoredPosition3D.x + this.rt.sizeDelta.x;
				this.rt.anchoredPosition3D = new Vector3(num2, this.rt.anchoredPosition3D.y, 0f);
			}
		}
		if (Links.x.mk)
		{
			EventSystem.current.SetSelectedGameObject(null);
		}
	}

	// Token: 0x060014FF RID: 5375 RVA: 0x0019504C File Offset: 0x0019324C
	private float ScreenXModifier()
	{
		float num = (float)Screen.width / (float)Screen.height / 1.7777778f;
		if (num > 1f)
		{
			return num * 1920f;
		}
		return 1920f;
	}

	// Token: 0x06001500 RID: 5376 RVA: 0x00195084 File Offset: 0x00193284
	private float ScreenYModifier()
	{
		if ((float)Screen.width / (float)Screen.height / 1.7777778f > 1f)
		{
			float num = (float)Screen.width / (float)Screen.height;
			float num2 = (float)Screen.height / (float)Screen.width;
			float num3 = (float)Screen.width * 1080f / 1920f;
			float num4 = 1080f / num3 * 1080f / (num2 * (float)Screen.width);
			return 1080f / (num2 * (float)Screen.width);
		}
		return 1080f / this.GetScreenHeight();
	}

	// Token: 0x06001501 RID: 5377 RVA: 0x00195110 File Offset: 0x00193310
	private float ScreenYModifier2()
	{
		float num = (float)Screen.width / (float)Screen.height / 1.7777778f;
		if (num > 1f)
		{
			float num2 = (float)Screen.height / (float)Screen.width;
			return 1080f + 1080f / ((float)Screen.width * 1080f / 1920f);
		}
		if (num == 1f)
		{
			return 1080f;
		}
		float num3 = (float)Screen.height / (float)Screen.width;
		return 1080f * ((float)Screen.height / ((float)Screen.width * 0.5625f));
	}

	// Token: 0x06001502 RID: 5378 RVA: 0x0019519C File Offset: 0x0019339C
	public void SetResizeButtonColors()
	{
		if (!this.edgesBtn)
		{
			return;
		}
		ColorBlock colors = this.edgesBtn.colors;
		Color normalColor = colors.normalColor;
		if (this.resizing || this.dragging)
		{
			normalColor.a = 1f;
		}
		else
		{
			normalColor.a = 0f;
		}
		colors.normalColor = normalColor;
		this.edgesBtn.colors = colors;
	}

	// Token: 0x06001503 RID: 5379 RVA: 0x0019520C File Offset: 0x0019340C
	public void OnResizeBegins(bool left, bool right, bool up, bool down)
	{
		if (this.linkedPortrait)
		{
			this.linkedPortrait.PortraitHover(false);
			this.linkedPortrait.skillBag.Dragging();
		}
		if (this.book)
		{
			Links.x.main.portrait.skillBag.Dragging();
		}
		this.resizing = true;
		this.SetResizeButtonColors();
		this.resizeLeft = left;
		this.resizeRight = right;
		this.resizeUp = up;
		this.resizeDown = down;
		if (this.resizeRight && this.rt.anchorMin.x != 1f)
		{
			this.rt.anchorMin = new Vector2(1f, this.rt.anchorMin.y);
			this.rt.anchorMax = new Vector2(1f, this.rt.anchorMax.y);
			this.rt.pivot = new Vector2(1f, this.rt.pivot.y);
			float num = -1f * this.ScreenXModifier() + this.rt.anchoredPosition3D.x + this.rt.sizeDelta.x;
			this.rt.anchoredPosition3D = new Vector3(num, this.rt.anchoredPosition3D.y, 0f);
		}
		if (this.resizeLeft && this.rt.anchorMin.x != 0f)
		{
			this.rt.anchorMin = new Vector2(0f, this.rt.anchorMin.y);
			this.rt.anchorMax = new Vector2(0f, this.rt.anchorMax.y);
			this.rt.pivot = new Vector2(0f, this.rt.pivot.y);
			float num2 = this.rt.anchoredPosition3D.x + this.ScreenXModifier() - this.rt.sizeDelta.x;
			this.rt.anchoredPosition3D = new Vector3(num2, this.rt.anchoredPosition3D.y, 0f);
		}
		if (!this.resizeDown && this.rt.anchorMin.y == 0f)
		{
			this.rt.anchorMin = new Vector2(this.rt.anchorMin.x, 1f);
			this.rt.anchorMax = new Vector2(this.rt.anchorMax.x, 1f);
			this.rt.pivot = new Vector2(this.rt.pivot.x, 1f);
			float num3 = this.rt.anchoredPosition3D.y - this.ScreenYModifier2() + this.rt.sizeDelta.y;
			this.rt.anchoredPosition3D = new Vector3(this.rt.anchoredPosition3D.x, num3, 0f);
		}
		if (this.resizeDown && this.rt.anchorMin.y != 0f)
		{
			this.rt.anchorMin = new Vector2(this.rt.anchorMin.x, 0f);
			this.rt.anchorMax = new Vector2(this.rt.anchorMax.x, 0f);
			this.rt.pivot = new Vector2(this.rt.pivot.x, 0f);
			float num4 = this.rt.anchoredPosition3D.y + this.ScreenYModifier2() - this.rt.sizeDelta.y;
			this.rt.anchoredPosition3D = new Vector3(this.rt.anchoredPosition3D.x, num4, 0f);
		}
		this.startPos = Input.mousePosition;
		this.canvasWidth = this.canvasRT.sizeDelta.x;
		this.resolutionMultiplierX = this.canvasWidth / (float)Screen.width;
		this.startPos.x = this.startPos.x * this.resolutionMultiplierX;
		this.resolutionMultiplierY = this.ScreenYModifier();
		this.startPos.y = this.startPos.y * this.resolutionMultiplierY;
		this.startSize = this.rt.sizeDelta;
		Links.x.hudControl.ToggleWindowInteractables(false);
	}

	// Token: 0x06001504 RID: 5380 RVA: 0x001956B0 File Offset: 0x001938B0
	public void OnResizeEnds()
	{
		this.resizing = false;
		this.SetResizeButtonColors();
		Links.x.hudControl.ToggleWindowInteractables(true);
		Links.x.gameplay.resizing = false;
		if (this.rt.anchorMin.y == 0f)
		{
			this.rt.anchorMin = new Vector2(this.rt.anchorMin.x, 1f);
			this.rt.anchorMax = new Vector2(this.rt.anchorMax.x, 1f);
			this.rt.pivot = new Vector2(this.rt.pivot.x, 1f);
			float num = this.rt.anchoredPosition3D.y - this.ScreenYModifier2() + this.rt.sizeDelta.y;
			this.rt.anchoredPosition3D = new Vector3(this.rt.anchoredPosition3D.x, num, 0f);
		}
		if (this.rt.anchorMin.x != 0f)
		{
			this.rt.anchorMin = new Vector2(0f, 1f);
			this.rt.anchorMax = new Vector2(0f, 1f);
			this.rt.pivot = new Vector2(0f, 1f);
			float num2 = this.rt.anchoredPosition3D.x + this.ScreenXModifier() - this.rt.sizeDelta.x;
			float y = this.rt.anchoredPosition3D.y;
			this.rt.anchoredPosition3D = new Vector3(num2, y, 0f);
		}
		this.GridLayout(true, false);
	}

	// Token: 0x06001505 RID: 5381 RVA: 0x00195884 File Offset: 0x00193A84
	public void OnResize()
	{
		Vector2 vector = Input.mousePosition;
		float num = vector.x / (float)Screen.width;
		float num2 = vector.y / (float)Screen.height;
		if (num > 0f && num < 1f && num2 > 0f && num2 < 1f)
		{
			this.canvasWidth = this.canvasRT.sizeDelta.x;
			this.resolutionMultiplierX = this.canvasWidth / (float)Screen.width;
			vector.x *= this.resolutionMultiplierX;
			this.canvasHeight = this.canvasRT.sizeDelta.y;
			this.resolutionMultiplierY = this.ScreenYModifier();
			vector.y *= this.resolutionMultiplierY;
			Vector2 vector2 = this.startPos - vector;
			Vector2 vector3 = new Vector2(0f, 0f);
			if (this.resizeRight)
			{
				vector3 = new Vector2(vector2.x, 0f);
			}
			if (this.resizeLeft)
			{
				vector3 = new Vector2(-vector2.x, 0f);
			}
			if (this.resizeUp)
			{
				vector3 += new Vector2(0f, vector2.y);
			}
			if (this.resizeDown)
			{
				vector3 -= new Vector2(0f, vector2.y);
			}
			vector3 += this.startSize;
			if (this.resizeRight && vector3.x < 0f)
			{
				vector3.x = this.prevX;
			}
			if (this.resizeLeft && vector3.x < 0f)
			{
				vector3.x = this.prevX;
			}
			if (this.resizeUp && vector3.y < 0f)
			{
				vector3.y = this.prevY;
			}
			if (this.resizeDown && vector3.y < 0f)
			{
				vector3.y = this.prevY;
			}
			if (Mathf.Abs(vector3.x) < this.minimumX)
			{
				vector3.x = this.minimumX;
			}
			if (Mathf.Abs(vector3.y) < this.minimumY)
			{
				vector3.y = this.minimumY;
			}
			this.prevX = vector3.x;
			this.prevY = vector3.y;
			this.rt.sizeDelta = vector3;
		}
	}

	// Token: 0x06001506 RID: 5382 RVA: 0x00195AEC File Offset: 0x00193CEC
	public void ChangeScreenSize()
	{
		if (!this.tr)
		{
			this.tr = base.transform;
		}
		Vector3 vector = Links.x.menuCamera.WorldToScreenPoint(this.tr.position);
		float num = vector.x / (float)Screen.width;
		float num2 = vector.y / (float)Screen.height;
		if (num <= 0f || num >= 1f || num2 <= 0f || num2 >= 1f)
		{
			this.rt.anchoredPosition3D = this.startPosition;
			this.rt.anchorMin = this.startAnchorMin;
			this.rt.anchorMax = this.startAnchorMax;
			this.rt.pivot = this.startPivot;
		}
	}

	// Token: 0x06001507 RID: 5383 RVA: 0x00195BBC File Offset: 0x00193DBC
	public void SetAtStartPosition()
	{
		this.rt.anchorMin = this.startAnchorMin;
		this.rt.anchorMax = this.startAnchorMax;
		this.rt.pivot = this.startPivot;
		this.rt.anchoredPosition3D = this.startPosition;
	}

	// Token: 0x06001508 RID: 5384 RVA: 0x00195C1C File Offset: 0x00193E1C
	public void OnDragBegins()
	{
		if (this.rt.anchorMin.y == 0f)
		{
			this.rt.anchorMin = new Vector2(this.rt.anchorMin.x, 1f);
			this.rt.anchorMax = new Vector2(this.rt.anchorMax.x, 1f);
			this.rt.pivot = new Vector2(this.rt.pivot.x, 1f);
			float num = this.rt.anchoredPosition3D.y - this.ScreenYModifier2() + this.rt.sizeDelta.y;
			this.rt.anchoredPosition3D = new Vector3(this.rt.anchoredPosition3D.x, num, 0f);
		}
		this.dragging = true;
		this.SetResizeButtonColors();
		this.offset = this.tr.position - Links.x.menuCamera.ScreenToWorldPoint(Input.mousePosition);
		if (this.linkedPortrait)
		{
			this.linkedPortrait.skillBag.TooltipOff();
		}
		Links.x.hudControl.ToggleWindowInteractables(false);
	}

	// Token: 0x06001509 RID: 5385 RVA: 0x00195D65 File Offset: 0x00193F65
	public void OnDragEnds()
	{
		this.dragging = false;
		this.SetResizeButtonColors();
		Links.x.hudControl.ToggleWindowInteractables(true);
		Links.x.gameplay.resizing = false;
		this.SetResizeButtonColors();
		this.GridLayout(true, false);
	}

	// Token: 0x0600150A RID: 5386 RVA: 0x00195DA4 File Offset: 0x00193FA4
	public void OnDrag()
	{
		float num = Links.x.fellowship.box.canvasRt.sizeDelta.x / (float)Screen.width;
		float num2 = Links.x.fellowship.box.canvasRt.sizeDelta.y / (float)Screen.height;
		this.tr.position = Links.x.menuCamera.ScreenToWorldPoint(Input.mousePosition) + this.offset;
		Vector2 anchoredPosition = this.rt.anchoredPosition;
		float num3 = anchoredPosition.x;
		if (this.rt.anchorMin.x != 1f)
		{
			num3 = Mathf.Clamp(num3, -2f, (float)Screen.width * num - this.rt.sizeDelta.x);
			anchoredPosition.x = num3;
		}
		else
		{
			num3 *= -1f;
			num3 = Mathf.Clamp(num3, -2f, (float)Screen.width * num - this.rt.sizeDelta.x);
			anchoredPosition.x = num3 * -1f;
		}
		float num4 = anchoredPosition.y * -1f;
		num4 = Mathf.Clamp(num4, this.maximumY, (float)Screen.height * num2 - this.rt.sizeDelta.y);
		anchoredPosition.y = num4 * -1f;
		this.rt.anchoredPosition = anchoredPosition;
		this.tr.localPosition = new Vector3(this.tr.localPosition.x, this.tr.localPosition.y, 0f);
	}

	// Token: 0x0600150B RID: 5387 RVA: 0x00195F41 File Offset: 0x00194141
	private float GetScreenHeight()
	{
		return (float)Mathf.RoundToInt((float)Screen.width * 0.5625f);
	}

	// Token: 0x04002461 RID: 9313
	public RectTransform rt;

	// Token: 0x04002462 RID: 9314
	public RectTransform topBorderRT;

	// Token: 0x04002463 RID: 9315
	public RectTransform canvasRT;

	// Token: 0x04002464 RID: 9316
	public bool dragging;

	// Token: 0x04002465 RID: 9317
	public bool resizing;

	// Token: 0x04002466 RID: 9318
	public bool resizeLeft;

	// Token: 0x04002467 RID: 9319
	public bool resizeRight;

	// Token: 0x04002468 RID: 9320
	public bool resizeUp;

	// Token: 0x04002469 RID: 9321
	public bool resizeDown;

	// Token: 0x0400246A RID: 9322
	public bool minimized;

	// Token: 0x0400246B RID: 9323
	public Image windowBg;

	// Token: 0x0400246C RID: 9324
	public Image windowResizeR;

	// Token: 0x0400246D RID: 9325
	public Image windowResizeL;

	// Token: 0x0400246E RID: 9326
	public Image windowResizeU;

	// Token: 0x0400246F RID: 9327
	public Image windowResizeUR;

	// Token: 0x04002470 RID: 9328
	public Image windowResizeUL;

	// Token: 0x04002471 RID: 9329
	public Image windowResizeD;

	// Token: 0x04002472 RID: 9330
	public Image windowResizeDR;

	// Token: 0x04002473 RID: 9331
	public Image windowResizeDL;

	// Token: 0x04002474 RID: 9332
	public int index;

	// Token: 0x04002475 RID: 9333
	public WindowHandles currentHandle;

	// Token: 0x04002476 RID: 9334
	public WindowHandles portraitHandle;

	// Token: 0x04002477 RID: 9335
	public Portrait linkedPortrait;

	// Token: 0x04002478 RID: 9336
	public Transform tr;

	// Token: 0x04002479 RID: 9337
	private Vector3 offset;

	// Token: 0x0400247A RID: 9338
	private Vector2 startPos;

	// Token: 0x0400247B RID: 9339
	private Vector2 startSize;

	// Token: 0x0400247C RID: 9340
	private Vector2 minimizeStartSize;

	// Token: 0x0400247D RID: 9341
	private Vector3 mousePos;

	// Token: 0x0400247E RID: 9342
	private Vector3 savedPosition;

	// Token: 0x0400247F RID: 9343
	private float resolutionMultiplierX;

	// Token: 0x04002480 RID: 9344
	private float resolutionMultiplierY;

	// Token: 0x04002481 RID: 9345
	private float canvasWidth;

	// Token: 0x04002482 RID: 9346
	private float canvasHeight;

	// Token: 0x04002483 RID: 9347
	public float fullHeight;

	// Token: 0x04002484 RID: 9348
	public float fullWidth;

	// Token: 0x04002485 RID: 9349
	public bool changingHeight;

	// Token: 0x04002486 RID: 9350
	public bool checkForDrag;

	// Token: 0x04002487 RID: 9351
	private float t;

	// Token: 0x04002488 RID: 9352
	private float heightTarget;

	// Token: 0x04002489 RID: 9353
	private float widthTarget;

	// Token: 0x0400248A RID: 9354
	public Image handle;

	// Token: 0x0400248B RID: 9355
	public Transform listGrid;

	// Token: 0x0400248C RID: 9356
	public GameObject minimizeButton;

	// Token: 0x0400248D RID: 9357
	public GameObject topBorder;

	// Token: 0x0400248E RID: 9358
	public bool down;

	// Token: 0x0400248F RID: 9359
	public bool waitingForMinimizeMove;

	// Token: 0x04002490 RID: 9360
	public bool waitingToStartDrag;

	// Token: 0x04002491 RID: 9361
	public float minimumX = 110f;

	// Token: 0x04002492 RID: 9362
	public float minimumY = 55f;

	// Token: 0x04002493 RID: 9363
	public float maximumY = 44f;

	// Token: 0x04002494 RID: 9364
	private float prevX;

	// Token: 0x04002495 RID: 9365
	private float prevY;

	// Token: 0x04002496 RID: 9366
	private float minimizeTime;

	// Token: 0x04002497 RID: 9367
	private float dragStartTime;

	// Token: 0x04002498 RID: 9368
	private Vector3 startDragInputPosition;

	// Token: 0x04002499 RID: 9369
	public RectTransform contentRT;

	// Token: 0x0400249A RID: 9370
	private Vector3 startPosition;

	// Token: 0x0400249B RID: 9371
	private Vector3 startAnchorMin;

	// Token: 0x0400249C RID: 9372
	private Vector3 startAnchorMax;

	// Token: 0x0400249D RID: 9373
	private Vector3 startPivot;

	// Token: 0x0400249E RID: 9374
	public Color utilityColor = new Color(0.44313726f, 0.38039216f, 0.42745098f, 1f);

	// Token: 0x0400249F RID: 9375
	public Color beltColor = new Color(0.5019608f, 0.23529412f, 0.13725491f, 1f);

	// Token: 0x040024A0 RID: 9376
	public Color wpnColor = new Color(0.50980395f, 0.30980393f, 0.03137255f, 1f);

	// Token: 0x040024A1 RID: 9377
	public Color ammoColor = new Color(0.5176471f, 0.4117647f, 0.08627451f, 1f);

	// Token: 0x040024A2 RID: 9378
	public GridLayoutGroup grid;

	// Token: 0x040024A3 RID: 9379
	public ButtonMultiTargets edgesBtn;

	// Token: 0x040024A4 RID: 9380
	private float cellWidth;

	// Token: 0x040024A5 RID: 9381
	private float rowsWanted;

	// Token: 0x040024A6 RID: 9382
	private int columnsWanted;

	// Token: 0x040024A7 RID: 9383
	private bool updateGridNextFrame;

	// Token: 0x040024A8 RID: 9384
	public bool book;

	// Token: 0x040024A9 RID: 9385
	public bool first;

	// Token: 0x040024AA RID: 9386
	private Transform[] allChildren;
}
