From f31b328f1a93152e400b075e6fc8316e5b7220da Mon Sep 17 00:00:00 2001 From: minenice55 Date: Thu, 30 Jun 2022 15:51:13 -0400 Subject: [PATCH] event selection doesn't go offscreen anymore github copilot is insane it wrote half of the code in this commit lmao --- .../Fonts/rodin/FOT-Rodin Pro B.otf.meta | 4 +- Assets/Scenes/Editor.unity | 22 +++++----- .../EventSelector/GridGameSelector.cs | 44 +++++++++++++------ .../LevelEditor/Timeline/LayerLabel.cs | 17 +++++-- 4 files changed, 57 insertions(+), 30 deletions(-) diff --git a/Assets/Resources/Fonts/rodin/FOT-Rodin Pro B.otf.meta b/Assets/Resources/Fonts/rodin/FOT-Rodin Pro B.otf.meta index a597e47f..5ede05bf 100644 --- a/Assets/Resources/Fonts/rodin/FOT-Rodin Pro B.otf.meta +++ b/Assets/Resources/Fonts/rodin/FOT-Rodin Pro B.otf.meta @@ -10,7 +10,9 @@ TrueTypeFontImporter: includeFontData: 1 fontNames: - FOT-Rodin Pro - fallbackFontReferences: [] + fallbackFontReferences: + - {fileID: 12800000, guid: d9b391ecd583bd54fa458814fbcad7be, type: 3} + - {fileID: 12800000, guid: 6d457cf9900bba748b3250de2e990fa2, type: 3} customCharacters: fontRenderingMode: 0 ascentCalculationMode: 1 diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index d7ffb5ea..4b5a7256 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -2328,7 +2328,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: -289.15, y: 2} + m_AnchoredPosition: {x: -289.15002, y: 2} m_SizeDelta: {x: -578.29, y: 49.92} m_Pivot: {x: 0.5, y: 0} --- !u!114 &156962255 @@ -5290,8 +5290,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 3.4249878, y: -19.679688} - m_SizeDelta: {x: -6.85, y: -39.36} + m_AnchoredPosition: {x: 3.4249878, y: -19.70996} + m_SizeDelta: {x: -6.85, y: -39.43} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &358789046 MonoBehaviour: @@ -8438,8 +8438,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -13039.025} - m_SizeDelta: {x: 0, y: 26078.07} + m_AnchoredPosition: {x: 0, y: -13019.308} + m_SizeDelta: {x: 0, y: 26117.389} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &590210127 MonoBehaviour: @@ -8539,7 +8539,7 @@ MonoBehaviour: m_HandleRect: {fileID: 704039020} m_Direction: 0 m_Value: 0 - m_Size: 0.032871284 + m_Size: 0.03287128 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -12023,8 +12023,8 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1589389272} m_HandleRect: {fileID: 1589389271} m_Direction: 2 - m_Value: 0.9999996 - m_Size: 0.52927834 + m_Value: -0.0000033002277 + m_Size: 0.5285789 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -13928,8 +13928,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0} m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 120.81002, y: 0} - m_SizeDelta: {x: 578.36, y: -4} + m_AnchoredPosition: {x: 120.830025, y: -19.690994} + m_SizeDelta: {x: 576.29, y: -43.38} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1056099133 MonoBehaviour: @@ -15065,7 +15065,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.93793} + m_AnchoredPosition: {x: 0, y: 361.0897} m_SizeDelta: {x: 0, y: 491} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 diff --git a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs index da48f8fa..f17e7959 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs @@ -20,6 +20,7 @@ namespace HeavenStudio.Editor public GameObject GameEventSelector; public GameObject EventRef; public GameObject CurrentSelected; + private RectTransform GameEventSelectorRect; private RectTransform eventsParent; [Header("Properties")] @@ -29,9 +30,15 @@ namespace HeavenStudio.Editor private int dragTimes; public float posDif; public int ignoreSelectCount; + private float selectorHeight; + private float eventSize; private void Start() { + GameEventSelectorRect = GameEventSelector.GetComponent(); + selectorHeight = GameEventSelectorRect.rect.height; + eventSize = EventRef.GetComponent().rect.height; + eventsParent = EventRef.transform.parent.GetChild(2).GetComponent(); SelectGame("Game Manager", 1); @@ -59,6 +66,9 @@ namespace HeavenStudio.Editor UpdateIndex(currentEventIndex - Mathf.RoundToInt(Input.mouseScrollDelta.y)); } } + + //moved here so this updates dynamically with window scale + UpdateScrollPosition(); } #region Functions @@ -75,26 +85,32 @@ namespace HeavenStudio.Editor else if (currentEventIndex > eventsParent.childCount - 1) currentEventIndex = 0; - if (currentEventIndex > 2 && eventsParent.childCount >= 8) - { - if (eventsParent.childCount - 4 > currentEventIndex) - { - EventRef.transform.parent.DOLocalMoveY((EventRef.GetComponent().sizeDelta.y) * (currentEventIndex - 2), 0.35f).SetEase(Ease.OutExpo); - } - else - { - EventRef.transform.parent.DOLocalMoveY((EventRef.GetComponent().sizeDelta.y) * (eventsParent.childCount - 7), 0.35f).SetEase(Ease.OutExpo); - } - } - else - EventRef.transform.parent.DOLocalMoveY(0, 0.35f).SetEase(Ease.OutExpo); - CurrentSelected.transform.DOLocalMoveY(eventsParent.transform.GetChild(currentEventIndex).localPosition.y + eventsParent.transform.localPosition.y, 0.35f).SetEase(Ease.OutExpo); if (updateCol) SetColors(currentEventIndex); } + private void UpdateScrollPosition() + { + selectorHeight = GameEventSelectorRect.rect.height; + eventSize = EventRef.GetComponent().rect.height; + + if (currentEventIndex * eventSize >= selectorHeight/2 && eventsParent.childCount * eventSize >= selectorHeight) + { + if (currentEventIndex * eventSize < eventsParent.childCount * eventSize - selectorHeight/2) + { + EventRef.transform.parent.DOLocalMoveY((currentEventIndex * eventSize) - selectorHeight/2, 0.35f).SetEase(Ease.OutExpo); + } + else + { + EventRef.transform.parent.DOLocalMoveY((eventsParent.childCount * eventSize) - selectorHeight + (eventSize*0.33f), 0.35f).SetEase(Ease.OutExpo); + } + } + else + EventRef.transform.parent.DOLocalMoveY(0, 0.35f).SetEase(Ease.OutExpo); + } + public void SelectGame(string gameName, int index) { if (SelectedGameIcon != null) diff --git a/Assets/Scripts/LevelEditor/Timeline/LayerLabel.cs b/Assets/Scripts/LevelEditor/Timeline/LayerLabel.cs index 06d00685..2a269075 100644 --- a/Assets/Scripts/LevelEditor/Timeline/LayerLabel.cs +++ b/Assets/Scripts/LevelEditor/Timeline/LayerLabel.cs @@ -17,10 +17,19 @@ namespace HeavenStudio.Editor.Track void Update() { //convert timeline layer scale to screen space - Camera cam = Editor.instance.EditorCamera; - float layerScaleDist = cam.WorldToScreenPoint(Timeline.instance.LayerCorners[1]).y - Camera.main.WorldToScreenPoint(Timeline.instance.LayerCorners[0]).y; - float modScale = Timeline.GetScaleModifier(); - rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, layerScaleDist/4 * (1/modScale)); + Camera cam; + //"your program can't crash if you put everything in a try block" + try + { + cam = Editor.instance.EditorCamera; + float layerScaleDist = cam.WorldToScreenPoint(Timeline.instance.LayerCorners[1]).y - Camera.main.WorldToScreenPoint(Timeline.instance.LayerCorners[0]).y; + float modScale = Timeline.GetScaleModifier(); + rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, layerScaleDist/4 * (1/modScale)); + } + catch (System.NullReferenceException) + { + return; + } } }