Skip to content
This repository was archived by the owner on Jan 24, 2023. It is now read-only.

Commit e74c822

Browse files
committed
Patch to allow screenshots with third person camera
1 parent ccb38f4 commit e74c822

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

ReModCE/Components/ThirdPersonComponent.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using ReMod.Core.UI.QuickMenu;
55
using ReModCE.Managers;
66
using UnityEngine;
7+
using CameraTakePhotoEnumerator = VRC.UserCamera.CameraUtil._TakeScreenShot_d__5;
78

89
namespace ReModCE.Components
910
{
@@ -16,12 +17,12 @@ internal enum ThirdPersonMode
1617

1718
internal class ThirdPersonComponent : ModComponent
1819
{
19-
private Camera _cameraBack;
20-
private Camera _cameraFront;
20+
private static Camera _cameraBack;
21+
private static Camera _cameraFront;
2122
private Camera _referenceCamera;
2223
private Camera _photoCamera;
2324

24-
private ThirdPersonMode _cameraSetup;
25+
private static ThirdPersonMode _cameraSetup;
2526

2627
private ConfigValue<bool> EnableThirdpersonHotkey;
2728
private ReMenuToggle _hotkeyToggle;
@@ -42,6 +43,9 @@ public ThirdPersonComponent()
4243
SetThirdPersonMode(ThirdPersonMode.Off);
4344
}
4445
};
46+
47+
ReModCE.Harmony.Patch(typeof (CameraTakePhotoEnumerator).GetMethod("MoveNext"),
48+
GetLocalPatch(nameof(CameraEnumeratorMoveNextPatch)));
4549
}
4650

4751
public override void OnUiManagerInit(UiManager uiManager)
@@ -158,5 +162,13 @@ public override void OnUpdate()
158162
HandleHotkeys();
159163
HandleThirdperson();
160164
}
165+
166+
private static void CameraEnumeratorMoveNextPatch(ref CameraTakePhotoEnumerator __instance)
167+
{
168+
if(_cameraSetup == ThirdPersonMode.Off)
169+
return;
170+
171+
__instance.field_Public_Camera_0 = _cameraSetup == ThirdPersonMode.Back ? _cameraBack : _cameraFront;
172+
}
161173
}
162174
}

0 commit comments

Comments
 (0)