mirror of
https://github.com/muskit/H3VR-TNH-Quality-of-Life-Improvements.git
synced 2026-06-02 12:14:27 -07:00
stop searching for TNHLBPC after 120s, add option for hp text visibility
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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",
|
||||
"Background enabled",
|
||||
true,
|
||||
"Apply a background to the health text.");
|
||||
hpBackgroundOpacity = Config.Bind("Health Counter",
|
||||
"Background opacity",
|
||||
0.74f,
|
||||
"Set opacity of health text's background (if enabled).");
|
||||
showTokens = Config.Bind("Game Info",
|
||||
"Show Tokens",
|
||||
true,
|
||||
"Shows how many tokens the player has by their radar hand.");
|
||||
showHolds = Config.Bind("Game Info",
|
||||
"Show Holds",
|
||||
true,
|
||||
"Shows how many holds the player has completed by their radar hand.");
|
||||
cfgShowHPBackground = Config.Bind("Health Counter",
|
||||
"Background enabled",
|
||||
true,
|
||||
"Apply a background to the health text.");
|
||||
cfgHPBackgroundOpacity = Config.Bind("Health Counter",
|
||||
"Background opacity",
|
||||
0.74f,
|
||||
"Set opacity of health text's background (if enabled).");
|
||||
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.");
|
||||
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
|
||||
+23
-19
@@ -19,33 +19,36 @@ 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>();
|
||||
shadow.effectColor = new Color(0, 0, 0, .95f);
|
||||
shadow.effectDistance = new Vector2(0.5f, -0.5f);
|
||||
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
|
||||
@@ -54,10 +57,11 @@ namespace TNHQoLImprovements
|
||||
tnhManager = GameObject.Find("_GameManager").GetComponent<TNH_Manager>();
|
||||
gObjHUD = GameObject.Find("HealthBar(Clone)/f");
|
||||
|
||||
ImproveHPTextReadability();
|
||||
if (MeatKitPlugin.showTokens.Value)
|
||||
if(MeatKitPlugin.cfgShowHPBackground.Value || MeatKitPlugin.cfgSolidifyHPText.Value)
|
||||
ImproveHPTextReadability();
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user