diff options
Diffstat (limited to 'Thronefall_v1.0/Decompile/TFUISliderDragArea.cs')
-rw-r--r-- | Thronefall_v1.0/Decompile/TFUISliderDragArea.cs | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/TFUISliderDragArea.cs b/Thronefall_v1.0/Decompile/TFUISliderDragArea.cs new file mode 100644 index 0000000..b19b0be --- /dev/null +++ b/Thronefall_v1.0/Decompile/TFUISliderDragArea.cs @@ -0,0 +1,127 @@ +using MoreMountains.Feedbacks; +using UnityEngine; + +public class TFUISliderDragArea : ThronefallUIElement +{ + public TFUISlider target; + + public Color dragColor; + + public MMF_Player onStartDrag; + + public MMF_Player onEndDrag; + + private Color defaultColor; + + private bool colorInitialized; + + private bool delayedDisable; + + private bool inDrag; + + private float afterDragCounter; + + public override bool dragable => true; + + protected override void OnApply() + { + } + + private void Update() + { + if (!delayedDisable || inDrag) + { + return; + } + afterDragCounter += Time.unscaledDeltaTime; + if (afterDragCounter > 0.35f) + { + delayedDisable = false; + target.knob.SetActive(value: false); + if ((bool)target.tooltip) + { + target.tooltip.SetActive(value: false); + } + } + } + + protected override void OnClear() + { + if (!inDrag) + { + target.knob.SetActive(value: false); + if ((bool)target.tooltip) + { + target.tooltip.SetActive(value: false); + } + } + else + { + delayedDisable = true; + afterDragCounter = 0f; + } + } + + protected override void OnFocus() + { + delayedDisable = false; + target.knob.SetActive(value: true); + if ((bool)target.tooltip) + { + target.tooltip.SetActive(value: true); + } + } + + protected override void OnFocusAndSelect() + { + } + + protected override void OnHardStateSet(SelectionState selectionState) + { + } + + protected override void OnSelect() + { + } + + public override void OnDragStart() + { + inDrag = true; + onStartDrag.PlayFeedbacks(); + if (!colorInitialized) + { + InitColor(); + } + target.fillImg.color = dragColor; + target.knobImg.color = dragColor; + } + + public override void OnDrag(Vector2 mousePosition) + { + target.SetValueByScreenPoint(mousePosition); + } + + public override void OnDragEnd() + { + onEndDrag.PlayFeedbacks(); + target.fillImg.color = defaultColor; + target.knobImg.color = defaultColor; + inDrag = false; + } + + private void InitColor() + { + defaultColor = target.fillImg.color; + colorInitialized = true; + } + + private void OnEnable() + { + if (!colorInitialized) + { + InitColor(); + } + target.fillImg.color = defaultColor; + inDrag = false; + } +} |