From e99039b5949bf40baaeadf65b654fde2019d8320 Mon Sep 17 00:00:00 2001
From: Deku <39616108+DekuDesu@users.noreply.github.com>
Date: Sun, 17 Oct 2021 19:05:22 -0400
Subject: [PATCH] added QOL improvments for developers to implement alternate
sprite logic for mod compatibility
---
MiniMapLibrary/ISpriteManager.cs | 18 ++++++++++++++++++
MiniMapLibrary/SpriteManager.cs | 4 ++--
MiniMapMod/MiniMapPlugin.cs | 2 +-
MiniMapMod/Minimap.cs | 6 +++---
4 files changed, 24 insertions(+), 6 deletions(-)
create mode 100644 MiniMapLibrary/ISpriteManager.cs
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));