From 2af89a678ff89f9206bc85c51fc6364d355d5508 Mon Sep 17 00:00:00 2001
From: XtraCube <72575280+XtraCube@users.noreply.github.com>
Date: Sun, 23 Feb 2025 16:34:59 -0500
Subject: [PATCH] add masking to task adder roles
---
MiraAPI/Patches/Roles/TaskAdderPatch.cs | 5 +++++
MiraAPI/Utilities/Extensions.cs | 10 ++++++++++
2 files changed, 15 insertions(+)
diff --git a/MiraAPI/Patches/Roles/TaskAdderPatch.cs b/MiraAPI/Patches/Roles/TaskAdderPatch.cs
index 6de6649..b15e9cf 100644
--- a/MiraAPI/Patches/Roles/TaskAdderPatch.cs
+++ b/MiraAPI/Patches/Roles/TaskAdderPatch.cs
@@ -5,6 +5,7 @@ using MiraAPI.Roles;
using MiraAPI.Utilities.Assets;
using System;
using System.Linq;
+using MiraAPI.Utilities;
using TMPro;
using UnityEngine;
using Object = UnityEngine.Object;
@@ -261,6 +262,7 @@ public static class TaskAdderPatch
var taskAddButton2 = Object.Instantiate(__instance.RoleButton);
taskAddButton2.SafePositionWorld = __instance.SafePositionWorld;
taskAddButton2.Text.text = "Be_" + roleBehaviour.NiceName + ".exe";
+ taskAddButton2.Text.fontMaterial.EnableMasking();
__instance.AddFileAsChildCustom(taskAddButton2, ref num, ref num2, ref num3);
taskAddButton2.Role = roleBehaviour;
@@ -350,6 +352,7 @@ public static class TaskAdderPatch
taskAddButton.MyTask = null;
taskAddButton.SafePositionWorld = instance.SafePositionWorld;
taskAddButton.Text.text = modifier.ModifierName;
+ taskAddButton.Text.fontMaterial.EnableMasking();
instance.AddFileAsChildCustom(taskAddButton, ref num, ref num2, ref num3);
ControllerManager.Instance.AddSelectableUiElement(taskAddButton.Button);
@@ -381,6 +384,8 @@ public static class TaskAdderPatch
var taskAddButton2 = Object.Instantiate(instance.RoleButton);
taskAddButton2.SafePositionWorld = instance.SafePositionWorld;
taskAddButton2.Text.text = "Be_" + roleBehaviour.NiceName + ".exe";
+ taskAddButton2.Text.fontMaterial.EnableMasking();
+
instance.AddFileAsChildCustom(taskAddButton2, ref num, ref num2, ref num3);
taskAddButton2.Role = roleBehaviour;
if (taskAddButton2.Button == null)
diff --git a/MiraAPI/Utilities/Extensions.cs b/MiraAPI/Utilities/Extensions.cs
index dc3bba1..97bd8c9 100644
--- a/MiraAPI/Utilities/Extensions.cs
+++ b/MiraAPI/Utilities/Extensions.cs
@@ -39,6 +39,16 @@ public static class Extensions
BitConverter.GetBytes(count.Value).AddRangeToArray(BitConverter.GetBytes(chance.Value)));
}
+ ///
+ /// Sets masking on a TMP MATERIAL! Do not use this on other materials.
+ ///
+ /// The TMP material.
+ public static void EnableMasking(this Material material)
+ {
+ material.SetFloat(ShaderID.Get("_Stencil"), 1);
+ material.SetFloat(ShaderID.Get("_StencilComp"), 4);
+ }
+
///
/// Checks if a type is static.
///