diff options
Diffstat (limited to 'Thronefall_v1.0/Decompile/ScreenMarker.cs')
-rw-r--r-- | Thronefall_v1.0/Decompile/ScreenMarker.cs | 197 |
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); + } +} |