Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_EditorMetaStruct.c
Go to the documentation of this file.
1
6[Obsolete("Only used for backwards compatiblity for GM saves. Will be removed entirely.")]
8{
9 protected float pX; //--- Camera pos X
10 protected float pY; //--- Camera pos Y
11 protected float pZ; //--- Camera pos Z
12 protected float qX; //--- Camera quaternion X
13 protected float qY; //--- Camera quaternion Y
14 protected float qZ; //--- Camera quaternion Z
15 protected float qW; //--- Camera quaternion W
16
17 void Serialize()
18 {
20 if (camera)
21 {
22 vector transform[4];
23 camera.GetWorldTransform(transform);
24
25 pX = transform[3][0];
26 pY = transform[3][1];
27 pZ = transform[3][2];
28
29 float quat[4];
30 Math3D.MatrixToQuat(transform, quat);
31 qX = quat[0];
32 qY = quat[1];
33 qZ = quat[2];
34 qW = quat[3];
35 }
36 }
38 {
39 SCR_EditorManagerEntity editorManager = SCR_EditorManagerEntity.GetInstance();
40 if (editorManager)
41 {
42 //--- Editor manager exists, load camera directly
43 OnEditorManagerCreated(editorManager);
44 }
45 else
46 {
47 //--- Editor manager does not exist yet (e.g., on mission start), wait for it to be created
49 if (core)
50 core.Event_OnEditorManagerInitOwner.Insert(OnEditorManagerCreated);
51 }
52 }
54 {
55 pX = 0;
56 pY = 0;
57 pZ = 0;
58 qX = 0;
59 qY = 0;
60 qZ = 0;
61 qW = 0;
62 }
63 protected void OnEditorManagerCreated(SCR_EditorManagerEntity editorManager)
64 {
65 //--- Wait one frame for editor modes to be initialized
66 GetGame().GetCallqueue().CallLater(OnEditorManagerCreatedDelayed, 1, false);
67 }
69 {
71 if (!editorCameraManager)
72 return;
73
74 SCR_ManualCamera camera = editorCameraManager.GetCamera();
75 if (camera)
76 //--- Camera exists, load it directly
77 OnCameraCreated(camera);
78 else
79 //--- Camera does not exist (e.g., editor not opened yet), wait for it to be created
80 editorCameraManager.GetOnCameraCreate().Insert(OnCameraCreated);
81
83 if (core)
84 core.Event_OnEditorManagerInitOwner.Remove(OnEditorManagerCreated);
85 }
86 protected void OnCameraCreated(SCR_ManualCamera camera)
87 {
88 vector transform[4];
89 transform[3] = Vector(pX, pY, pZ);
90
91 if (transform[3] != vector.Zero)
92 {
93 float quat[4];
94 quat[0] = qX;
95 quat[1] = qY;
96 quat[2] = qZ;
97 quat[3] = qW;
98 Math3D.QuatToMatrix(quat, transform);
99
100 camera.SetTransform(transform);
101 }
102
104 if (editorCameraManager)
105 editorCameraManager.GetOnCameraCreate().Remove(OnCameraCreated);
106 }
107 void Log()
108 {
109 float quat[4];
110 quat[0] = qX;
111 quat[1] = qY;
112 quat[2] = qZ;
113 quat[3] = qW;
114 vector angles = Math3D.QuatToAngles(quat);
115
116 PrintFormat(" SCR_EditorMetaStruct: cam pos: %1 | cam ang: %2", Vector(pX, pY, pZ), angles);
117 }
119 {
120 RegV("pX");
121 RegV("pY");
122 RegV("pZ");
123 RegV("qX");
124 RegV("qY");
125 RegV("qZ");
126 RegV("qW");
127 }
128}
ArmaReforgerScripted GetGame()
Definition game.c:1398
ref array< string > angles
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
base classes for filtering in server browser
static SCR_ManualCamera GetCameraInstance()
ScriptInvokerBase< SCR_CameraEditorComponent_OnCameraCreated > GetOnCameraCreate()
Core component to manage SCR_EditorManagerEntity.
void OnEditorManagerCreated(SCR_EditorManagerEntity editorManager)
void OnCameraCreated(SCR_ManualCamera camera)
proto void PrintFormat(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL, LogLevel level=LogLevel.NORMAL)
proto native vector Vector(float x, float y, float z)