71 lines
2.0 KiB
C#
71 lines
2.0 KiB
C#
using DB;
|
|
using System;
|
|
using HarmonyLib;
|
|
using Manager;
|
|
using MelonLoader;
|
|
using Process;
|
|
|
|
namespace SinmaiAssist.Utils;
|
|
|
|
public class GameMessageManager
|
|
{
|
|
private static IGenericManager _manager;
|
|
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(ProcessManager), "SetMessageManager")]
|
|
public static void SetMessageManager(IGenericManager genericManager)
|
|
{
|
|
_manager = genericManager;
|
|
}
|
|
|
|
public static void SendMessage(int monitorId, string message, string title = null, WindowPositionID positionID = WindowPositionID.Middle, WindowMessageID messageID = WindowMessageID.CollectionAttentionEmptyFavorite)
|
|
{
|
|
try
|
|
{
|
|
WindowParam param = new WindowParam()
|
|
{
|
|
hideTitle = true,
|
|
text = message,
|
|
replaceText = true,
|
|
changeSize = true,
|
|
sizeID = WindowSizeID.Middle,
|
|
positionID = positionID
|
|
};
|
|
if (title != null)
|
|
{
|
|
if (messageID == WindowMessageID.CollectionAttentionEmptyFavorite)
|
|
messageID = WindowMessageID.AimeUseNotice;
|
|
param.replaceTitle = true;
|
|
param.hideTitle = false;
|
|
param.title = title;
|
|
}
|
|
_manager.Enqueue(monitorId, messageID, positionID, param);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
MelonLogger.Error(e);
|
|
}
|
|
}
|
|
|
|
public static void SendWarning(int monitorId, string message, string title, float lifeTime = 3000)
|
|
{
|
|
try
|
|
{
|
|
WarningWindowInfo warning = new WarningWindowInfo(
|
|
title: title,
|
|
message: message,
|
|
lifeTime: lifeTime,
|
|
monitorId: monitorId
|
|
);
|
|
_manager.EnqueueWarning(warning);
|
|
}catch (Exception e)
|
|
{
|
|
MelonLogger.Error(e);
|
|
}
|
|
}
|
|
|
|
public static IGenericManager GetMessageManager()
|
|
{
|
|
return _manager;
|
|
}
|
|
} |