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