stop searching for TNHLBPC after 120s, add option for hp text visibility

This commit is contained in:
msk
2022-01-24 01:48:22 -08:00
parent 28dddcc0d0
commit b259424300
3 changed files with 66 additions and 49 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
PackageName: TNH_Quality_of_Life_Improvements
Author: muskit
Version: 1.0.0
Version: 1.0.1
Icon: {fileID: 2800000, guid: 785b7946398f5314b95bf593d2d77d67, type: 3}
ReadMe: {fileID: 102900000, guid: ab1d6dea017447a48ac348db588a6f35, type: 3}
WebsiteURL: https://github.com/muskit/TNH-Quality-of-Life-Improvements
+29 -16
View File
@@ -32,18 +32,18 @@ public class MeatKitPlugin : BaseUnityPlugin
#pragma warning disable 414
private static readonly string BasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
#pragma warning restore 414
private bool lpcKilled = false;
public static AssetBundle bundle;
public static ConfigEntry<bool> showHPBackground;
public static ConfigEntry<float> hpBackgroundOpacity;
public static ConfigEntry<bool> showTokens;
public static ConfigEntry<bool> showHolds;
public static ConfigEntry<bool> cfgSolidifyHPText;
public static ConfigEntry<bool> cfgShowHPBackground;
public static ConfigEntry<float> cfgHPBackgroundOpacity;
public static ConfigEntry<bool> cfgShowTokens;
public static ConfigEntry<bool> cfgShowHolds;
private static InPlay instance;
private LeaderboardPlayerCountPatch lpc;
private bool lpcModGone = false;
private float lpcModSearchTimeEnd;
private void SceneChanged(Scene from, Scene to)
{
@@ -66,35 +66,42 @@ public class MeatKitPlugin : BaseUnityPlugin
LoadAssets();
// setup configuration
showHPBackground = Config.Bind("Health Counter",
cfgShowHPBackground = Config.Bind("Health Counter",
"Background enabled",
true,
"Apply a background to the health text.");
hpBackgroundOpacity = Config.Bind("Health Counter",
cfgHPBackgroundOpacity = Config.Bind("Health Counter",
"Background opacity",
0.74f,
"Set opacity of health text's background (if enabled).");
showTokens = Config.Bind("Game Info",
cfgSolidifyHPText = Config.Bind("Health Counter",
"Solidify HP text",
true,
"Set opacity of HP text to full and give it a shadow.");
cfgShowTokens = Config.Bind("Game Info",
"Show Tokens",
true,
"Shows how many tokens the player has by their radar hand.");
showHolds = Config.Bind("Game Info",
cfgShowHolds = Config.Bind("Game Info",
"Show Holds",
true,
"Shows how many holds the player has completed by their radar hand.");
// patch the leaderboard
// patch leaderboard code
lpc = new LeaderboardPlayerCountPatch();
// give 120 seconds to search for old mod
lpcModSearchTimeEnd = Time.realtimeSinceStartup + 120;
}
// DO NOT EDIT.
private void LoadAssets() {}
/// <summary>
/// Its only purpose: to kill TNH Leaderboard Player Count
/// Its only purpose: to kill the deprecated TNH Leaderboard Player Count mod.
/// </summary>
private void Update()
{
if (lpcKilled)
if (lpcModGone)
return;
foreach (var plugin in Chainloader.PluginInfos)
@@ -103,9 +110,15 @@ public class MeatKitPlugin : BaseUnityPlugin
{
Logger.LogWarning("TNH Leaderboard Player Count mod detected. Destroying it to avoid interference.");
Destroy(plugin.Value.Instance);
lpcKilled = true;
lpcModGone = true;
}
}
if (Time.realtimeSinceStartup >= lpcModSearchTimeEnd)
{
Logger.LogWarning("Stopping search for TNH Leaderboard Player Count mod after 120 seconds.");
lpcModGone = true;
}
}
}
#endif
+20 -16
View File
@@ -19,34 +19,37 @@ namespace TNHQoLImprovements
{
var canvas = gObjHUD.GetComponent<Canvas>();
var gObjBG = new GameObject();
var tranHPTitle = gObjHUD.transform.Find("Label_Title (1)");
var tranHP = gObjHUD.transform.Find("Label_Title");
Transform[] tranHPText = {
gObjHUD.transform.Find("Label_Title (1)"),
gObjHUD.transform.Find("Label_Title")
};
// apply background
if (MeatKitPlugin.showHPBackground.Value)
if (MeatKitPlugin.cfgShowHPBackground.Value)
{
gObjBG.transform.parent = gObjHUD.transform;
gObjBG.transform.SetSiblingIndex(0);
gObjBG.transform.localPosition = new Vector3(0, 1, 0);
gObjBG.transform.localRotation = Quaternion.identity;
gObjBG.transform.localScale = tranHP.localScale;
gObjBG.transform.localScale = tranHPText[0].localScale;
var rawImage = gObjBG.AddComponent<RawImage>();
rawImage.color = new Color(0, 0, 0, MeatKitPlugin.hpBackgroundOpacity.Value);
rawImage.color = new Color(0, 0, 0, MeatKitPlugin.cfgHPBackgroundOpacity.Value);
rawImage.rectTransform.SetWidth(100);
rawImage.rectTransform.SetHeight(52);
}
// full text alphas
tranHPTitle.GetComponent<Text>().color = Color.white;
tranHP.GetComponent<Text>().color = Color.white;
// text shadows
var shadow = tranHPTitle.gameObject.AddComponent<Shadow>();
shadow.effectColor = new Color(0, 0, 0, .95f);
shadow.effectDistance = new Vector2(0.5f, -0.5f);
shadow = tranHP.gameObject.AddComponent<Shadow>();
if (MeatKitPlugin.cfgSolidifyHPText.Value)
{
foreach (var text in tranHPText)
{
// full alpha
text.GetComponent<Text>().color = Color.white;
// drop shadow
var shadow = text.gameObject.AddComponent<Shadow>();
shadow.effectColor = new Color(0, 0, 0, .95f);
shadow.effectDistance = new Vector2(0.5f, -0.5f);
}
}
}
// Use this for initialization
void Start()
@@ -54,10 +57,11 @@ namespace TNHQoLImprovements
tnhManager = GameObject.Find("_GameManager").GetComponent<TNH_Manager>();
gObjHUD = GameObject.Find("HealthBar(Clone)/f");
if(MeatKitPlugin.cfgShowHPBackground.Value || MeatKitPlugin.cfgSolidifyHPText.Value)
ImproveHPTextReadability();
if (MeatKitPlugin.showTokens.Value)
if (MeatKitPlugin.cfgShowTokens.Value)
Instantiate(MeatKitPlugin.bundle.LoadAsset<GameObject>("TokenCounter"));
if (MeatKitPlugin.showHolds.Value)
if (MeatKitPlugin.cfgShowHolds.Value)
Instantiate(MeatKitPlugin.bundle.LoadAsset<GameObject>("HoldCounter"));
}
#endregion