[BetterShadowClone] holyshit i overcomplicated it

This commit is contained in:
NotAKidoS 2024-02-03 03:28:59 -06:00
parent 1de39260f4
commit c4099d90a0
5 changed files with 155 additions and 123 deletions

View file

@ -1,7 +1,4 @@
using System.Collections.Generic;
using ABI_RC.Core.Player;
using ABI_RC.Core.Savior;
using ABI_RC.Systems.Camera;
using ABI_RC.Core.Player;
using MagicaCloth;
using UnityEngine;
@ -190,48 +187,18 @@ public class TransformHiderManager : MonoBehaviour
internal static bool IsLegacyFPRExcluded(Component renderer)
=> renderer.gameObject.name.Contains("[FPR]");
internal static ITransformHider CreateTransformHider(Component renderer, Transform bone)
internal static ITransformHider CreateTransformHider(Component renderer, IReadOnlyDictionary<Transform, FPRExclusion> exclusions)
{
if (IsLegacyFPRExcluded(renderer))
return null;
return renderer switch
{
//SkinnedMeshRenderer skinnedMeshRenderer => new SkinnedTransformHider(skinnedMeshRenderer, bone),
MeshRenderer meshRenderer => new MeshTransformHider(meshRenderer),
SkinnedMeshRenderer skinnedMeshRenderer => new SkinnedTransformHider(skinnedMeshRenderer, exclusions),
MeshRenderer meshRenderer => new MeshTransformHider(meshRenderer, exclusions),
_ => null
};
}
internal static void CreateTransformHider(Component renderer, Dictionary<Transform, FPRExclusion> exclusions)
{
if (IsLegacyFPRExcluded(renderer))
return;
if (renderer is SkinnedMeshRenderer skinnedMeshRenderer)
{
// get all bones for renderer
var bones = skinnedMeshRenderer.bones;
List<FPRExclusion> fprExclusions = new();
// check if any bones are excluded
foreach (Transform bone in bones)
{
if (!exclusions.TryGetValue(bone, out FPRExclusion exclusion))
continue;
fprExclusions.Add(exclusion);
}
foreach (FPRExclusion exclusion in fprExclusions)
{
ITransformHider hider = new SkinnedTransformHider(skinnedMeshRenderer, exclusion);
Instance.AddTransformHider(hider);
}
}
return;
}
#endregion
}