diff options
| author | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
| commit | 8b1fc7063b387542803c6bc214ccf8acb32870bd (patch) | |
| tree | d310eb99872c8215f1c1f67731ec21f0915cd778 /Thronefall_1_0/Decompile/TFUISliderDragArea.cs | |
| parent | 8e13e7e2874adc8982e16d1d2ed2e28d7480b45f (diff) | |
* rename
Diffstat (limited to 'Thronefall_1_0/Decompile/TFUISliderDragArea.cs')
| -rw-r--r-- | Thronefall_1_0/Decompile/TFUISliderDragArea.cs | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/Thronefall_1_0/Decompile/TFUISliderDragArea.cs b/Thronefall_1_0/Decompile/TFUISliderDragArea.cs new file mode 100644 index 0000000..b19b0be --- /dev/null +++ b/Thronefall_1_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; + } +} |
