Skip to content

Commit

Permalink
add renderer nullcheck
Browse files Browse the repository at this point in the history
fixes #4
  • Loading branch information
Aeroluna committed Jan 28, 2025
1 parent bb53609 commit 477dd3c
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions Vivify/ObjectPrefab/Hijackers/MpbControllerHijacker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ internal class MpbControllerHijacker : IHijacker<GameObject>
{
private readonly Transform _child;
private readonly MaterialPropertyBlockController _materialPropertyBlockController;
private readonly Renderer[] _originalRenderers;
private readonly Renderer?[] _originalRenderers;
#if PRE_V1_39_1
private List<int>? _cachedNumberOfMaterialsInRenderers;
#endif
Expand Down Expand Up @@ -55,9 +55,12 @@ public void Activate(List<GameObject> gameObjects, bool hideOriginal)

if (hideOriginal)
{
foreach (Renderer renderer in _originalRenderers)
foreach (Renderer? renderer in _originalRenderers)
{
renderer.enabled = false;
if (renderer != null)
{
renderer.enabled = false;
}
}

_materialPropertyBlockController._renderers = newRenderers.ToArray();
Expand Down Expand Up @@ -87,9 +90,13 @@ public void Deactivate()
_cachedRenderers = null;
}

foreach (Renderer renderer in _originalRenderers)
// other mods (looking at you, NoteCutGuide) can cause some of the original renderers to be destroyed
foreach (Renderer? renderer in _originalRenderers)
{
renderer.enabled = true;
if (renderer != null)
{
renderer.enabled = true;
}
}
}
}

0 comments on commit 477dd3c

Please sign in to comment.