summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/ScreenMarker.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/ScreenMarker.cs')
-rw-r--r--Thronefall_v1.0/Decompile/ScreenMarker.cs197
1 files changed, 197 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/ScreenMarker.cs b/Thronefall_v1.0/Decompile/ScreenMarker.cs
new file mode 100644
index 0000000..488c22b
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/ScreenMarker.cs
@@ -0,0 +1,197 @@
+using MPUIKIT;
+using TMPro;
+using UnityEngine;
+
+public class ScreenMarker : MonoBehaviour
+{
+ [Header("Content")]
+ [SerializeField]
+ private Sprite showSprite;
+
+ [SerializeField]
+ private int showNumber;
+
+ [Header("Setup")]
+ [SerializeField]
+ private GameObject screenMarkerPrefab;
+
+ private GameObject myUiMarkerGameObject;
+
+ private EnemyScreenMarkerUIHelper uiMarkerData;
+
+ private RectTransform screenMarkerUI;
+
+ private Camera cam;
+
+ private MPImageBasic enemyIcon;
+
+ private TMP_Text enemyNumber;
+
+ private float myRandomVal;
+
+ private Vector2 unclampedScreenPos;
+
+ private Vector2 clampedScreenPos;
+
+ public bool rotateTowardsTargetWhenOffscreen;
+
+ public bool showWhenOnScreen = true;
+
+ public bool showWhenOffScreen = true;
+
+ public Rect checkOnScreenRect;
+
+ private bool onScreen;
+
+ public float MyRandomVal => myRandomVal;
+
+ public Vector2 UnclampedScreenPos
+ {
+ get
+ {
+ return unclampedScreenPos;
+ }
+ set
+ {
+ unclampedScreenPos = value;
+ }
+ }
+
+ public Vector2 ClampedScreenPos
+ {
+ get
+ {
+ return clampedScreenPos;
+ }
+ set
+ {
+ clampedScreenPos = value;
+ }
+ }
+
+ public bool OnScreen
+ {
+ get
+ {
+ return onScreen;
+ }
+ set
+ {
+ onScreen = value;
+ }
+ }
+
+ public Sprite Sprite => showSprite;
+
+ public int Number => showNumber;
+
+ public Vector2 Position
+ {
+ get
+ {
+ return screenMarkerUI.localPosition;
+ }
+ set
+ {
+ screenMarkerUI.localPosition = value;
+ }
+ }
+
+ public float ImageRotation
+ {
+ get
+ {
+ return enemyIcon.transform.rotation.z;
+ }
+ set
+ {
+ enemyIcon.transform.rotation = Quaternion.Euler(enemyIcon.transform.rotation.x, enemyIcon.transform.rotation.y, value);
+ }
+ }
+
+ public Rect Rect => screenMarkerUI.rect;
+
+ private void Start()
+ {
+ cam = Camera.main;
+ myUiMarkerGameObject = Object.Instantiate(screenMarkerPrefab, UIFrameManager.instance.OnScreenMarkerContainer);
+ uiMarkerData = myUiMarkerGameObject.GetComponent<EnemyScreenMarkerUIHelper>();
+ enemyIcon = uiMarkerData.enemyIcon;
+ enemyNumber = uiMarkerData.enemyNumber;
+ screenMarkerUI = (RectTransform)myUiMarkerGameObject.transform;
+ SetSprite(showSprite);
+ SetNumber(showNumber);
+ ScreenMarkerManager.instance.RegisterScreenMarker(this);
+ myRandomVal = Random.value;
+ SceneTransitionManager.instance.onSceneChange.AddListener(KillOnSceneChange);
+ }
+
+ public void SetSprite(Sprite _sprite)
+ {
+ if (!(_sprite == null))
+ {
+ showSprite = _sprite;
+ if ((bool)enemyIcon)
+ {
+ enemyIcon.sprite = _sprite;
+ }
+ }
+ }
+
+ public void Show(bool _show)
+ {
+ if (myUiMarkerGameObject.activeSelf != _show)
+ {
+ myUiMarkerGameObject.SetActive(_show);
+ }
+ }
+
+ public void SetNumber(int _number)
+ {
+ showNumber = _number;
+ if ((bool)enemyNumber)
+ {
+ enemyNumber.text = showNumber.ToString();
+ enemyNumber.enabled = showNumber > 0;
+ }
+ }
+
+ private void OnEnable()
+ {
+ if ((bool)myUiMarkerGameObject)
+ {
+ myUiMarkerGameObject.SetActive(value: true);
+ }
+ if ((bool)ScreenMarkerManager.instance)
+ {
+ ScreenMarkerManager.instance.RegisterScreenMarker(this);
+ }
+ }
+
+ private void OnDisable()
+ {
+ if ((bool)myUiMarkerGameObject)
+ {
+ myUiMarkerGameObject.SetActive(value: false);
+ }
+ if ((bool)ScreenMarkerManager.instance)
+ {
+ ScreenMarkerManager.instance.UnregisterScreenMarker(this);
+ }
+ }
+
+ private void OnDestroy()
+ {
+ if ((bool)myUiMarkerGameObject)
+ {
+ Object.Destroy(myUiMarkerGameObject);
+ }
+ ScreenMarkerManager.instance.UnregisterScreenMarker(this);
+ }
+
+ private void KillOnSceneChange()
+ {
+ Object.Destroy(myUiMarkerGameObject);
+ Object.Destroy(base.gameObject);
+ }
+}