Functional Cairn detector
This commit is contained in:
parent
c5d290e355
commit
9a330e3a05
2 changed files with 41 additions and 5 deletions
OWCairnFinder
16
OWCairnFinder/CairnHUDMarker.cs
Normal file
16
OWCairnFinder/CairnHUDMarker.cs
Normal file
|
@ -0,0 +1,16 @@
|
|||
namespace OWCairnFinder;
|
||||
|
||||
class CairnHUDMarker : HUDDistanceMarker
|
||||
{
|
||||
public override void InitCanvasMarker()
|
||||
{
|
||||
int index = OWCairnFinder.getCairnIndex(gameObject);
|
||||
_markerLabel = $"[{index}]";
|
||||
_markerTarget = gameObject.transform;
|
||||
OWCairnFinder.Instance.ModHelper.Console.WriteLine($"Transform: {_markerTarget}");
|
||||
_markerRadius = 0;
|
||||
OWCairnFinder.Instance.ModHelper.Console.WriteLine($"Cairn {index}");
|
||||
base.InitCanvasMarker();
|
||||
_canvasMarker.SetVisibility(true);
|
||||
}
|
||||
}
|
|
@ -1,7 +1,9 @@
|
|||
using HarmonyLib;
|
||||
using OWML.Common;
|
||||
using OWML.ModHelper;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using UnityEngine;
|
||||
|
||||
namespace OWCairnFinder;
|
||||
|
||||
|
@ -9,6 +11,8 @@ public class OWCairnFinder : ModBehaviour
|
|||
{
|
||||
public static OWCairnFinder Instance;
|
||||
|
||||
private static NomaiCairn[] _nomaiCairns;
|
||||
|
||||
public void Awake()
|
||||
{
|
||||
Instance = this;
|
||||
|
@ -20,19 +24,35 @@ public class OWCairnFinder : ModBehaviour
|
|||
public void Start()
|
||||
{
|
||||
// Starting here, you'll have access to OWML's mod helper.
|
||||
ModHelper.Console.WriteLine($"My mod {nameof(OWCairnFinder)} is loaded!", MessageType.Success);
|
||||
ModHelper.Console.WriteLine($"{nameof(OWCairnFinder)} is loaded!", MessageType.Success);
|
||||
|
||||
new Harmony("thearst3rd.OWCairnFinder").PatchAll(Assembly.GetExecutingAssembly());
|
||||
|
||||
// Example of accessing game code.
|
||||
OnCompleteSceneLoad(OWScene.TitleScreen, OWScene.TitleScreen); // We start on title screen
|
||||
LoadManager.OnCompleteSceneLoad += OnCompleteSceneLoad;
|
||||
}
|
||||
|
||||
public static int getCairnIndex(GameObject cairn)
|
||||
{
|
||||
for (int i = 0; i < _nomaiCairns.Length; i++)
|
||||
{
|
||||
if (_nomaiCairns[i].gameObject == cairn)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public void OnCompleteSceneLoad(OWScene previousScene, OWScene newScene)
|
||||
{
|
||||
if (newScene != OWScene.SolarSystem) return;
|
||||
ModHelper.Console.WriteLine("Loaded into solar system!", MessageType.Success);
|
||||
if (newScene != OWScene.SolarSystem)
|
||||
return;
|
||||
|
||||
_nomaiCairns = Resources.FindObjectsOfTypeAll<NomaiCairn>().Where(x => x.gameObject.activeSelf && x.transform.childCount != 0).ToArray();
|
||||
|
||||
for (int i = 0; i < _nomaiCairns.Length; i++)
|
||||
{
|
||||
NomaiCairn cairn = _nomaiCairns[i];
|
||||
cairn.gameObject.AddComponent<CairnHUDMarker>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue