Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_RotateRollManualCameraComponent.c
Go to the documentation of this file.
1
2
4[BaseContainerProps(), SCR_BaseManualCameraComponentTitle()]
6{
7 protected static const float INERTIA_THRESHOLD = 0.001;
8
9 [Attribute(defvalue: "100", desc: "Value coefficient.")]
10 private float m_fCoef;
11
12 [Attribute(defvalue: "2", desc: "When roll is below this angle, return it back to 0.")]
13 private float m_fMinRoll;
14
15 //------------------------------------------------------------------------------------------------
16 override void EOnCameraReset()
17 {
18 vector angles = GetCameraEntity().GetAngles();
19 angles[2] = 0;
20 GetCameraEntity().SetAngles(angles);
21 }
22
23 //------------------------------------------------------------------------------------------------
25 {
26 vector angles = GetCameraEntity().GetAngles();
27 if (angles[2] != 0)
28 data.m_aValues = {angles[2]};
29 }
30
31 //------------------------------------------------------------------------------------------------
32 override void EOnCameraLoad(SCR_ManualCameraComponentSave data)
33 {
34 if (!data.m_aValues || data.m_aValues.IsEmpty())
35 return;
36
37 vector angles = GetCameraEntity().GetAngles();
38 angles[2] = data.m_aValues[0];
39 GetCameraEntity().SetAngles(angles);
40 }
41
42 //------------------------------------------------------------------------------------------------
43 override void EOnCameraFrame(SCR_ManualCameraParam param)
44 {
45 if (!param.isManualInputEnabled) return;
46
47 float rotateRoll = 0;
48 if (GetInputManager().IsUsingMouseAndKeyboard() || GetInputManager().GetActionValue("ManualCameraModifier"))
49 rotateRoll = GetInputManager().GetActionValue("ManualCameraRotateRoll");
50
51 if (rotateRoll != 0)
52 {
53 param.rotDelta[2] = param.rotDelta[2] + rotateRoll * m_fCoef * Math.Max(Math.AbsFloat(param.rotOriginal[2] / 180), 0.1);
54 param.isManualInput = true;
55 param.isDirty = true;
56 }
57 else
58 {
59 float rollOriginal = Math.AbsFloat(param.rotOriginal[2]);
60 if (rollOriginal > INERTIA_THRESHOLD && rollOriginal < m_fMinRoll)
61 {
62 param.rotDelta[2] = -param.rotOriginal[2] * 5; //--- Multiply to speed up smooth return faciliated by timeSlice multiplication
63 param.isDirty = true;
64 }
65 }
66 }
67
68 //------------------------------------------------------------------------------------------------
69 override bool EOnCameraInit()
70 {
71 return true;
72 }
73}
ref array< string > angles
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
void EOnCameraSave(SCR_ManualCameraComponentSave data)
Get all prefabs that have the spawner data
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Parent class from which all SCR_ManualCamera components inherit.
void EOnCameraReset()
Camera value are reset.
SCR_FieldOfViewSettings Attribute