Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_MapCompassUI.c
Go to the documentation of this file.
1
2
class
SCR_MapCompassUI
:
SCR_MapRTWBaseUI
3
{
4
protected
static
const
string
ICON_NAME
=
"compass"
;
5
6
protected
SCR_CompassComponent
m_CompassComp
;
7
protected
string
m_sPrefabResource
;
8
9
//------------------------------------------------------------------------------------------------
10
override
void
SetWidgetNames
()
11
{
12
WIDGET_NAME
=
"CompassFrame"
;
13
RT_WIDGET_NAME
=
"CompRTW"
;
14
WORLD_NAME
=
"CompassUIWorld"
;
15
}
16
17
//------------------------------------------------------------------------------------------------
18
override
void
InitPositionVectors
()
19
{
20
m_CompassComp
=
SCR_CompassComponent
.Cast(
m_RTEntity
.FindComponent(
SCR_CompassComponent
) );
21
22
m_vPrefabPos
=
"0 0 0"
;
23
m_vCameraPos
=
m_CompassComp
.GetMapCamPosition();
24
m_vCameraAngle
=
"0 -90 0"
;
25
}
26
27
//------------------------------------------------------------------------------------------------
29
protected
void
UpdateCompassEntity
()
30
{
31
if
(
m_CompassComp
)
32
{
33
ChimeraCharacter
player =
ChimeraCharacter
.Cast(
SCR_PlayerController
.
GetLocalControlledEntity
());
34
if
(!player || !player.GetCharacterController())
35
return
;
36
37
vector
anglesCompass =
vector
.Zero;
38
anglesCompass[1] = player.GetCharacterController().GetInputContext().GetHeadingAngle() *
Math
.RAD2DEG;
39
40
// if player is inside the vehicle - check for the vehicle rotation instead
41
// GetHeadingAngle returns the wrong value when in vehicle and map is opened
42
if
(player.IsInVehicle())
43
{
44
anglesCompass[1] = player.GetAngles()[1];
45
}
46
47
m_RTEntity
.SetAngles(anglesCompass);
48
49
// activate, apply proc anims
50
if
(
m_CompassComp
.GetMode() != EGadgetMode.IN_HAND)
51
m_CompassComp
.SetMapMode();
52
53
// tick the frame
54
float
tick =
System
.GetFrameTimeS();
55
m_CompassComp
.Update( tick );
56
}
57
58
// update
59
BaseWorld
previewWorld =
m_RTWorld
.GetRef();
60
previewWorld.UpdateEntities();
61
}
62
63
//------------------------------------------------------------------------------------------------
64
protected
void
OnInputQuickBind
(
float
value,
EActionTrigger
reason
)
65
{
66
if
(!
GetGame
().
GetInputManager
().IsUsingMouseAndKeyboard() && IsToolMenuFocused())
67
return
;
68
SetVisible
(!
m_bIsVisible
);
69
}
70
71
//------------------------------------------------------------------------------------------------
72
protected
override
string
GetPrefabResource
()
73
{
74
return
m_sPrefabResource
;
75
}
76
77
//------------------------------------------------------------------------------------------------
78
override
void
SetVisible
(
bool
visible)
79
{
80
if
(visible)
81
{
82
IEntity
compass =
FindRelatedGadget
();
83
if
(!compass)
84
{
85
super.SetVisible(
false
);
86
return
;
87
}
88
89
SCR_CompassComponent
compassComp =
SCR_CompassComponent
.Cast(compass.
FindComponent
(
SCR_CompassComponent
));
90
if
(!compassComp)
91
return
;
92
93
m_sPrefabResource
= compassComp.
GetMapPrefabResource
();
94
95
super.SetVisible(visible);
96
if
(!
m_RTWorld
|| !
m_RTEntity
)
97
return
;
98
99
// Start anim
100
ScriptCallQueue
queue =
GetGame
().GetCallqueue();
101
if
(queue)
102
queue.CallLater(
UpdateCompassEntity
, 0,
true
);
103
104
UpdateCompassEntity
();
105
m_CompassComp
.Init2DMapCompass();
106
}
107
else
108
{
109
// stop anim
110
ScriptCallQueue
queue =
GetGame
().GetCallqueue();
111
if
(queue)
112
queue.Remove(
UpdateCompassEntity
);
113
114
super.SetVisible(visible);
115
}
116
}
117
118
//------------------------------------------------------------------------------------------------
119
override
void
Init
()
120
{
121
SCR_MapToolMenuUI
toolMenu =
SCR_MapToolMenuUI
.Cast(
m_MapEntity
.GetMapUIComponent(
SCR_MapToolMenuUI
));
122
if
(toolMenu)
123
{
124
m_ToolMenuEntry
= toolMenu.RegisterToolMenuEntry(
SCR_MapToolMenuUI
.s_sToolMenuIcons,
ICON_NAME
, 11, m_bIsExclusive);
125
m_ToolMenuEntry
.m_OnClick.Insert(
ToggleVisible
);
126
127
GetGame
().GetInputManager().AddActionListener(
"MapToolCompass"
,
EActionTrigger
.DOWN,
OnInputQuickBind
);
128
}
129
}
130
131
//------------------------------------------------------------------------------------------------
132
override
void
Update
(
float
timeSlice)
133
{
134
// Drag compass
135
if
(
m_bIsVisible
&&
m_bIsDragged
)
136
{
137
// apply shake
138
m_CompassComp
.DragMapCompass();
139
140
// save compass position for map reopen
141
WorkspaceWidget
workspace =
g_Game
.GetWorkspace();
142
m_wFrame
.GetScreenPos(
m_fPosX
,
m_fPosY
);
143
m_fPosX
= workspace.DPIUnscale(
m_fPosX
);
144
m_fPosY
= workspace.DPIUnscale(
m_fPosY
);
145
}
146
}
147
148
//------------------------------------------------------------------------------------------------
149
// constructor
150
void
SCR_MapCompassUI
()
151
{
152
m_eGadgetType
= EGadgetType.COMPASS;
153
}
154
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
GetInputManager
InputManager GetInputManager()
Definition
SCR_BaseManualCameraComponent.c:205
m_ToolMenuEntry
SCR_MapToolEntry m_ToolMenuEntry
Definition
SCR_MapDrawingUI.c:216
m_MapEntity
SCR_MapEntity m_MapEntity
Definition
SCR_MapGadgetComponent.c:38
RT_WIDGET_NAME
string RT_WIDGET_NAME
Definition
SCR_MapRTWBaseUI.c:22
FindRelatedGadget
IEntity FindRelatedGadget()
Definition
SCR_MapRTWBaseUI.c:74
m_vCameraAngle
vector m_vCameraAngle
Definition
SCR_MapRTWBaseUI.c:27
m_bIsVisible
bool m_bIsVisible
Definition
SCR_MapRTWBaseUI.c:29
m_vPrefabPos
vector m_vPrefabPos
Definition
SCR_MapRTWBaseUI.c:25
ToggleVisible
void ToggleVisible()
Visibility toggle.
Definition
SCR_MapRTWBaseUI.c:87
m_vCameraPos
vector m_vCameraPos
Definition
SCR_MapRTWBaseUI.c:26
WORLD_NAME
string WORLD_NAME
Definition
SCR_MapRTWBaseUI.c:24
m_RTEntity
GenericEntity m_RTEntity
Definition
SCR_MapRTWBaseUI.c:37
m_fPosY
float m_fPosY
Definition
SCR_MapRTWBaseUI.c:34
SCR_MapRTWBaseUI
void SCR_MapRTWBaseUI()
Definition
SCR_MapRTWBaseUI.c:300
m_fPosX
float m_fPosX
Definition
SCR_MapRTWBaseUI.c:34
WIDGET_NAME
string WIDGET_NAME
Definition
SCR_MapRTWBaseUI.c:21
m_bIsDragged
bool m_bIsDragged
Definition
SCR_MapRTWBaseUI.c:31
m_wFrame
Widget m_wFrame
Definition
SCR_MapRTWBaseUI.c:42
m_RTWorld
ref SharedItemRef m_RTWorld
Definition
SCR_MapRTWBaseUI.c:38
m_eGadgetType
EGadgetType m_eGadgetType
Definition
SCR_MapRTWBaseUI.c:36
SCR_MapToolMenuUI
void SCR_MapToolMenuUI()
Definition
SCR_MapToolMenuUI.c:484
reason
string reason
Definition
ServerBrowserMenuCallbacks.c:41
BaseWorld
Definition
BaseWorld.c:13
ChimeraCharacter
Definition
ChimeraCharacter.c:13
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
Math
Definition
Math.c:13
SCR_CompassComponent
Compass component.
Definition
SCR_CompassComponent.c:67
SCR_CompassComponent::GetMapPrefabResource
ResourceName GetMapPrefabResource()
Definition
SCR_CompassComponent.c:98
SCR_MapCompassUI::SetVisible
override void SetVisible(bool visible)
Definition
SCR_MapCompassUI.c:78
SCR_MapCompassUI::GetPrefabResource
override string GetPrefabResource()
Definition
SCR_MapCompassUI.c:72
SCR_MapCompassUI::ICON_NAME
static const string ICON_NAME
Definition
SCR_MapCompassUI.c:4
SCR_MapCompassUI::m_CompassComp
SCR_CompassComponent m_CompassComp
Definition
SCR_MapCompassUI.c:6
SCR_MapCompassUI::OnInputQuickBind
void OnInputQuickBind(float value, EActionTrigger reason)
Definition
SCR_MapCompassUI.c:64
SCR_MapCompassUI::Update
override void Update(float timeSlice)
Definition
SCR_MapCompassUI.c:132
SCR_MapCompassUI::SCR_MapCompassUI
void SCR_MapCompassUI()
Definition
SCR_MapCompassUI.c:150
SCR_MapCompassUI::Init
override void Init()
Definition
SCR_MapCompassUI.c:119
SCR_MapCompassUI::UpdateCompassEntity
void UpdateCompassEntity()
Update for the compass entity within preview world.
Definition
SCR_MapCompassUI.c:29
SCR_MapCompassUI::m_sPrefabResource
string m_sPrefabResource
Definition
SCR_MapCompassUI.c:7
SCR_MapCompassUI::SetWidgetNames
override void SetWidgetNames()
Definition
SCR_MapCompassUI.c:10
SCR_MapCompassUI::InitPositionVectors
override void InitPositionVectors()
Definition
SCR_MapCompassUI.c:18
SCR_PlayerController
Definition
SCR_PlayerController.c:31
SCR_PlayerController::GetLocalControlledEntity
static IEntity GetLocalControlledEntity()
Definition
SCR_PlayerController.c:495
ScriptCallQueue
ScriptCallQueue Class provide "lazy" calls - when we don't want to execute function immediately but l...
Definition
tools.c:53
System
Definition
System.c:13
WorkspaceWidget
Definition
WorkspaceWidget.c:16
vector
Definition
vector.c:13
g_Game
Game g_Game
Game singleton instance.
Definition
gameLib.c:13
EActionTrigger
EActionTrigger
Definition
EActionTrigger.c:13
scripts
Game
Map
ComponentsUI
SCR_MapCompassUI.c
Generated by
1.17.0