diff --git a/MiniMapLibrary/ISpriteManager.cs b/MiniMapLibrary/ISpriteManager.cs new file mode 100644 index 0000000..d062566 --- /dev/null +++ b/MiniMapLibrary/ISpriteManager.cs @@ -0,0 +1,18 @@ +using System; +using UnityEngine; + +namespace MiniMapLibrary +{ + /// + /// Represents some object that should provide sprites to be displayed on the minimap + /// + public interface ISpriteManager : IDisposable + { + /// + /// Uses the provided to generate/provide and return a sprite that should represent that kind in the minimap + /// + /// + /// + Sprite GetSprite(InteractableKind type); + } +} \ No newline at end of file diff --git a/MiniMapLibrary/SpriteManager.cs b/MiniMapLibrary/SpriteManager.cs index 7850b1a..d909456 100644 --- a/MiniMapLibrary/SpriteManager.cs +++ b/MiniMapLibrary/SpriteManager.cs @@ -8,7 +8,7 @@ #nullable enable namespace MiniMapLibrary { - public sealed class SpriteManager : IDisposable + public sealed class SpriteManager : IDisposable, ISpriteManager { public const string DefaultResourcePath = "Textures/MiscIcons/texMysteryIcon"; @@ -23,7 +23,7 @@ static SpriteManager() private static void InitializeResources() { - void Add(InteractableKind type, string ResourcePath) + static void Add(InteractableKind type, string ResourcePath) { s_ResourceDictionary.Add(type, ResourcePath); } diff --git a/MiniMapMod/MiniMapPlugin.cs b/MiniMapMod/MiniMapPlugin.cs index 31d8f25..2ad5e10 100644 --- a/MiniMapMod/MiniMapPlugin.cs +++ b/MiniMapMod/MiniMapPlugin.cs @@ -15,7 +15,7 @@ namespace MiniMapMod [BepInPlugin("MiniMap", "Mini Map Mod", "2.0.4")] public class MiniMapPlugin : BaseUnityPlugin { - private readonly SpriteManager SpriteManager = new(); + private readonly ISpriteManager SpriteManager = new SpriteManager(); private readonly List TrackedObjects = new(); diff --git a/MiniMapMod/Minimap.cs b/MiniMapMod/Minimap.cs index 92b07a7..f2f8610 100644 --- a/MiniMapMod/Minimap.cs +++ b/MiniMapMod/Minimap.cs @@ -18,7 +18,7 @@ public class Minimap public bool Created { get; private set; } = false; - public void CreateMinimap(SpriteManager spriteManager, GameObject Parent) + public void CreateMinimap(ISpriteManager spriteManager, GameObject Parent) { if (Created) { @@ -67,7 +67,7 @@ public void SetRotation(Quaternion rotation) ContainerTransform.localRotation = Quaternion.Euler(0, 0, euler.y); } - public RectTransform CreateIcon(InteractableKind type, Vector3 minimapPosition, SpriteManager spriteManager) + public RectTransform CreateIcon(InteractableKind type, Vector3 minimapPosition, ISpriteManager spriteManager) { var icon = CreateIcon(type, spriteManager.GetSprite(type)); @@ -96,7 +96,7 @@ private void CreateIconContainer() Container = container; } - private void CreatePlayerIcon(SpriteManager spriteManager) + private void CreatePlayerIcon(ISpriteManager spriteManager) { GameObject playerIcon = CreateIcon(InteractableKind.Player, spriteManager.GetSprite(InteractableKind.Player));