52 lines
1.2 KiB
C#
52 lines
1.2 KiB
C#
using HarmonyLib;
|
|
using NeoModLoader.api;
|
|
using NeoModLoader.services;
|
|
using UnityEngine;
|
|
|
|
namespace IdleSpectator;
|
|
|
|
/// <summary>
|
|
/// Idle Spectator entry: F8 AFK camera director over WorldLog events.
|
|
/// </summary>
|
|
public class ModClass : MonoBehaviour, IMod
|
|
{
|
|
private ModDeclare _declare;
|
|
private GameObject _gameObject;
|
|
private Harmony _harmony;
|
|
|
|
/// <summary>Absolute path to this mod's folder (parent of mod.json).</summary>
|
|
public static string ModFolder { get; private set; }
|
|
|
|
public ModDeclare GetDeclaration()
|
|
{
|
|
return _declare;
|
|
}
|
|
|
|
public GameObject GetGameObject()
|
|
{
|
|
return _gameObject;
|
|
}
|
|
|
|
public string GetUrl()
|
|
{
|
|
return "";
|
|
}
|
|
|
|
public void OnLoad(ModDeclare pModDecl, GameObject pGameObject)
|
|
{
|
|
_declare = pModDecl;
|
|
_gameObject = pGameObject;
|
|
ModFolder = pModDecl.FolderPath;
|
|
|
|
_harmony = new Harmony(pModDecl.UID);
|
|
_harmony.PatchAll(typeof(ModClass).Assembly);
|
|
LogService.LogInfo($"[{pModDecl.Name}]: Harmony patches applied");
|
|
LogService.LogInfo($"[{pModDecl.Name}]: Press F8 to toggle Idle Spectator");
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
SpectatorMode.PollInput();
|
|
InterestDirector.Update();
|
|
}
|
|
}
|