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_DataDisplayGadget.c
Go to the documentation of this file.
1
class
SCR_DataDisplayGadgetComponentClass
:
SCR_GadgetComponentClass
2
{
3
[
Attribute
(
"{6A90C4A4FEAE57A5}UI/layouts/Gadgets/BallisticTable/BallisticTableRenderTarget.layout"
,
UIWidgets
.ResourceNamePicker,
"Layout name"
,
"layout"
,
category
:
"Layouts"
)]
4
protected
ResourceName
m_sLayoutName
;
5
6
[
Attribute
(
desc
:
"List of pages available for this ballistic data"
,
category
:
"Ballistics"
)]
7
protected
ref array<ref SCR_BaseDataPageConfig>
m_aPages
;
8
9
[
Attribute
(
"SOUND_PICK_UP"
,
desc
:
"Name of a sound event that will be played when page is changed"
)]
10
protected
string
m_sPageTurnSoundEventName
;
11
12
//------------------------------------------------------------------------------------------------
13
ResourceName
GetLayoutName
()
14
{
15
return
m_sLayoutName
;
16
}
17
18
//------------------------------------------------------------------------------------------------
19
string
GetPageChangeSoundName
()
20
{
21
return
m_sPageTurnSoundEventName
;
22
}
23
24
//------------------------------------------------------------------------------------------------
25
int
GetNumberOfPages
()
26
{
27
return
m_aPages
.Count();
28
}
29
30
//------------------------------------------------------------------------------------------------
33
SCR_BaseDataPageConfig
GetPage
(
int
pageID)
34
{
35
if
(!
m_aPages
.IsIndexValid(pageID))
36
return
null;
37
38
return
m_aPages
[pageID];
39
}
40
41
//------------------------------------------------------------------------------------------------
44
int
GetPages
(notnull out array<SCR_BaseDataPageConfig> outPages)
45
{
46
outPages.Clear();
47
foreach
(
SCR_BaseDataPageConfig
page :
m_aPages
)
48
{
49
outPages.Insert(page);
50
}
51
52
return
outPages.Count();
53
}
54
}
55
56
class
SCR_DataDisplayGadgetComponent : SCR_GadgetComponent
57
{
58
int
m_iOpacityMapId
;
59
60
protected
RTTextureWidget
m_wRenderTargetTexture
61
protected
Widget
m_wRootWidget
;
62
protected
int
m_iNumberOfPages
;
63
protected
int
m_iCurrentPageID
;
64
65
const
string
PAGE_NUMBER_NAME
=
"PageNumber"
;
66
const
string
PAGE_NUMBER_FORMAT
=
"%1 / %2"
;
67
68
//------------------------------------------------------------------------------------------------
70
int
GetNumberOfPages
()
71
{
72
return
m_iNumberOfPages
;
73
}
74
75
//------------------------------------------------------------------------------------------------
78
void
ChangePage
(
int
direction
= 0)
79
{
80
if
(!m_wRenderTargetTexture)
81
return
;
82
83
m_iCurrentPageID
+=
direction
;
84
85
if
(
m_iCurrentPageID
>=
m_iNumberOfPages
)
86
m_iCurrentPageID
= 0;
87
88
if
(
m_iCurrentPageID
< 0)
89
m_iCurrentPageID
=
m_iNumberOfPages
- 1;
90
91
UpdateData
();
92
}
93
94
//------------------------------------------------------------------------------------------------
96
protected
void
UpdateData
(
bool
playSound =
true
)
97
{
98
if
(!
m_wRootWidget
)
99
return
;
100
101
const
IEntity
owner =
GetOwner
();
102
SCR_DataDisplayGadgetComponentClass
data
=
SCR_DataDisplayGadgetComponentClass
.Cast(
GetComponentData
(owner));
103
SCR_BaseDataPageConfig
page =
data
.GetPage(
m_iCurrentPageID
);
104
if
(!page)
105
return
;
106
107
Widget
contentHolder =
m_wRootWidget
.GetChildren();
108
if
(!contentHolder)
109
return
;
110
111
m_wRenderTargetTexture.SetEnabled(
true
);
112
page.DrawPageData(contentHolder, owner,
this
,
m_iCurrentPageID
);
113
m_wRenderTargetTexture.SetEnabled(
false
);
114
115
if
(playSound)
116
SCR_SoundManagerModule
.CreateAndPlayAudioSource(owner,
data
.GetPageChangeSoundName());
117
118
RplComponent rpl = RplComponent.Cast(owner.
FindComponent
(RplComponent));
119
if
(!rpl || !rpl.IsOwner())
120
return
;
121
122
Rpc(
RpcDo_SyncPageChange
,
m_iCurrentPageID
);
123
}
124
125
//------------------------------------------------------------------------------------------------
126
protected
override
void
ModeSwitch
(EGadgetMode mode,
IEntity
charOwner)
127
{
128
super.ModeSwitch(mode, charOwner);
129
130
if
(mode != EGadgetMode.IN_HAND)
131
return
;
132
133
if
(!
InitializeRenderTarget
())
134
return
;
135
136
ChangePage
();
137
m_iOpacityMapId
= 1;
//make render target visible
138
}
139
140
//------------------------------------------------------------------------------------------------
141
protected
override
void
ModeClear
(EGadgetMode mode)
142
{
143
super.ModeClear(mode);
144
145
if
(mode == EGadgetMode.IN_HAND)
146
{
147
m_iOpacityMapId
= 0;
//make render target invisible
148
ClearRenderTarget
();
149
}
150
}
151
152
//------------------------------------------------------------------------------------------------
153
protected
bool
InitializeRenderTarget
()
154
{
155
IEntity
owner =
GetOwner
();
156
SCR_BallisticTableComponentClass
data
=
SCR_BallisticTableComponentClass
.Cast(
GetComponentData
(owner));
157
if
(!
data
)
158
return
false
;
159
160
if
(
data
.GetLayoutName() ==
ResourceName
.Empty)
161
return
false
;
162
163
m_wRootWidget
=
GetGame
().GetWorkspace().CreateWidgets(
data
.GetLayoutName());
164
if
(!
m_wRootWidget
)
165
return
false
;
166
167
m_wRenderTargetTexture =
RTTextureWidget
.Cast(
m_wRootWidget
.FindAnyWidget(
"RTTexture0"
));
168
if
(!m_wRenderTargetTexture)
169
return
false
;
170
171
m_wRenderTargetTexture.SetRenderTarget(owner);
172
m_wRenderTargetTexture.SetEnabled(
false
);
173
return
true
;
174
}
175
176
//------------------------------------------------------------------------------------------------
177
protected
void
ClearRenderTarget
()
178
{
179
if
(
m_wRootWidget
)
180
m_wRootWidget
.RemoveFromHierarchy();
181
182
m_wRootWidget
= null;
183
if
(
GetOwner
().IsDeleted())
184
{
//in such case we cannot do any operations on entity or its VObject
185
m_wRenderTargetTexture = null;
186
return
;
187
}
188
189
if
(m_wRenderTargetTexture)
190
m_wRenderTargetTexture.RemoveRenderTarget(
GetOwner
());
191
192
m_wRenderTargetTexture = null;
193
}
194
195
//------------------------------------------------------------------------------------------------
196
override
EGadgetType
GetType
()
197
{
198
return
EGadgetType.SPECIALIST_ITEM;
199
}
200
201
//------------------------------------------------------------------------------------------------
202
protected
override
void
EOnInit
(
IEntity
owner)
203
{
204
SCR_BallisticTableComponentClass
data
=
SCR_BallisticTableComponentClass
.Cast(
GetComponentData
(
GetOwner
()));
205
if
(!
data
)
206
return
;
207
208
m_iNumberOfPages
=
data
.GetNumberOfPages();
209
SCR_VisualisedBallisticConfig
ballisticPage;
210
for
(
int
i; i <
m_iNumberOfPages
; i++)
211
{
212
ballisticPage =
SCR_VisualisedBallisticConfig
.Cast(
data
.GetPage(i));
213
if
(!ballisticPage)
214
continue
;
215
216
if
(ballisticPage.IsGenerated())
217
continue
;
218
219
ballisticPage.
GenerateBallisticData
();
220
}
221
}
222
223
//------------------------------------------------------------------------------------------------
224
protected
override
void
OnDelete
(
IEntity
owner)
225
{
226
ClearRenderTarget
();
227
}
228
229
//------------------------------------------------------------------------------------------------
232
[
RplRpc
(
RplChannel
.Reliable,
RplRcver
.Broadcast)]
233
protected
void
RpcDo_SyncPageChange
(
int
selectedPage)
234
{
235
if
(
m_iCurrentPageID
== selectedPage)
236
return
;
237
238
m_iCurrentPageID
= selectedPage;
239
ChangePage
();
240
}
241
242
//------------------------------------------------------------------------------------------------
243
protected
override
bool
RplSave
(ScriptBitWriter writer)
244
{
245
writer.WriteInt(
m_iCurrentPageID
);
246
247
return
super.RplSave(writer);
248
}
249
250
//------------------------------------------------------------------------------------------------
251
protected
override
bool
RplLoad
(
ScriptBitReader
reader)
252
{
253
reader.ReadInt(
m_iCurrentPageID
);
254
UpdateData
(
false
);
255
256
return
super.RplLoad(reader);
257
}
258
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
RplLoad
override bool RplLoad(ScriptBitReader reader)
Definition
SCR_AIGroupInfoComponent.c:149
RplSave
override bool RplSave(ScriptBitWriter writer)
Definition
SCR_CampaignBuildingCompositionComponent.c:549
ModeClear
void ModeClear(EGadgetMode mode)
Definition
SCR_CampaignBuildingGadgetToolComponent.c:509
ModeSwitch
override void ModeSwitch(EGadgetMode mode, IEntity charOwner)
Definition
SCR_CampaignBuildingGadgetToolComponent.c:76
GetType
override EGadgetType GetType()
Definition
SCR_CampaignBuildingGadgetToolComponent.c:60
GetComponentData
SCR_CharacterSoundComponentClass GetComponentData()
Definition
SCR_CharacterSoundComponent.c:132
m_iCurrentPageID
int m_iCurrentPageID
Definition
SCR_DataDisplayGadget.c:63
m_wRootWidget
Widget m_wRootWidget
Definition
SCR_DataDisplayGadget.c:61
PAGE_NUMBER_NAME
const string PAGE_NUMBER_NAME
Definition
SCR_DataDisplayGadget.c:65
ChangePage
void ChangePage(int direction=0)
Definition
SCR_DataDisplayGadget.c:78
PAGE_NUMBER_FORMAT
const string PAGE_NUMBER_FORMAT
Definition
SCR_DataDisplayGadget.c:66
GetNumberOfPages
int GetNumberOfPages()
Definition
SCR_DataDisplayGadget.c:70
ClearRenderTarget
void ClearRenderTarget()
Definition
SCR_DataDisplayGadget.c:177
InitializeRenderTarget
bool InitializeRenderTarget()
Definition
SCR_DataDisplayGadget.c:153
RpcDo_SyncPageChange
void RpcDo_SyncPageChange(int selectedPage)
Definition
SCR_DataDisplayGadget.c:233
m_iNumberOfPages
int m_iNumberOfPages
Definition
SCR_DataDisplayGadget.c:62
UpdateData
void UpdateData(bool playSound=true)
Method used to update currently displayed ballistic data.
Definition
SCR_DataDisplayGadget.c:96
m_iOpacityMapId
SCR_DataDisplayGadgetComponentClass m_iOpacityMapId
direction
vector direction
Definition
SCR_DestructibleTreeV2.c:31
data
Get all prefabs that have the spawner data
Definition
SCR_EntityCatalogManagerComponent.c:320
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
category
params category
Definition
SCR_VehicleDamageManagerComponent.c:302
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
RTTextureWidget
Definition
RTTextureWidget.c:13
ResourceName
Definition
ResourceName.c:13
SCR_BallisticTableComponentClass
Definition
SCR_BallisticTableComponent.c:3
SCR_BaseDataPageConfig
Definition
SCR_BaseDataPageConfig.c:2
SCR_DataDisplayGadgetComponentClass
Definition
SCR_DataDisplayGadget.c:2
SCR_DataDisplayGadgetComponentClass::m_sPageTurnSoundEventName
string m_sPageTurnSoundEventName
Definition
SCR_DataDisplayGadget.c:10
SCR_DataDisplayGadgetComponentClass::GetNumberOfPages
int GetNumberOfPages()
Definition
SCR_DataDisplayGadget.c:25
SCR_DataDisplayGadgetComponentClass::m_aPages
ref array< ref SCR_BaseDataPageConfig > m_aPages
Definition
SCR_DataDisplayGadget.c:7
SCR_DataDisplayGadgetComponentClass::GetPageChangeSoundName
string GetPageChangeSoundName()
Definition
SCR_DataDisplayGadget.c:19
SCR_DataDisplayGadgetComponentClass::GetPage
SCR_BaseDataPageConfig GetPage(int pageID)
Definition
SCR_DataDisplayGadget.c:33
SCR_DataDisplayGadgetComponentClass::GetPages
int GetPages(notnull out array< SCR_BaseDataPageConfig > outPages)
Definition
SCR_DataDisplayGadget.c:44
SCR_DataDisplayGadgetComponentClass::m_sLayoutName
ResourceName m_sLayoutName
Definition
SCR_DataDisplayGadget.c:4
SCR_DataDisplayGadgetComponentClass::GetLayoutName
ResourceName GetLayoutName()
Definition
SCR_DataDisplayGadget.c:13
SCR_GadgetComponentClass
Definition
SCR_GadgetComponent.c:3
SCR_SoundManagerModule
Definition
SCR_SoundManagerModule.c:12
SCR_VisualisedBallisticConfig
Definition
SCR_VisualisedBallisticConfig.c:2
SCR_VisualisedBallisticConfig::GenerateBallisticData
override bool GenerateBallisticData()
Definition
SCR_VisualisedBallisticConfig.c:44
ScriptBitReader
Definition
EnNetwork.c:199
UIWidgets
Definition
attributes.c:40
Widget
Definition
Widget.c:13
GetOwner
IEntity GetOwner()
Owner entity of the fuel tank.
Definition
SCR_FuelNode.c:128
EOnInit
override void EOnInit(IEntity owner)
Definition
SCR_AIConfigComponent.c:87
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
RplRpc
void RplRpc(RplChannel channel, RplRcver rcver, RplCondition condition=RplCondition.None, string customConditionName="")
Definition
EnNetwork.c:95
RplRcver
RplRcver
Definition
RplRcver.c:59
RplChannel
RplChannel
Communication channel. Reliable is guaranteed to be delivered. Unreliable not.
Definition
RplChannel.c:14
OnDelete
@ OnDelete
Definition
SndComponentCallbacks.c:16
scripts
Game
Components
Gadgets
SCR_DataDisplayGadget.c
Generated by
1.17.0