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_AmbientInsectsComponent.c
Go to the documentation of this file.
1
enum
ELocalAmbientSignal
2
{
3
SoundName
,
4
EntitySize
,
5
AboveTerrain
,
6
SunAngle
,
7
EnvironmentType
,
8
Seed
,
9
Distance
10
}
11
12
[
EntityEditorProps
(
category
:
"GameScripted/Sound"
, description:
"Component handling ambient Insects"
, color:
"0 0 255 255"
)]
13
class
SCR_AmbientInsectsComponentClass :
ScriptComponentClass
14
{
15
}
16
17
//------------------------------------------------------------------------------------------------
18
class
SCR_AmbientInsectsComponent
:
ScriptComponent
19
{
20
[
Attribute
(defvalue:
"4"
,
UIWidgets
.Slider,
params
:
"0 60 1"
,
desc
:
"How frequently are Insects updated around the camera"
)]
21
protected
int
m_iUpdateRate
;
22
23
[
Attribute
()]
24
protected
ref array<ref SCR_AmbientInsectsEffect>
m_aAmbientInsectsEffect
;
25
26
// Components
27
protected
SignalsManagerComponent
m_LocalSignalsManager
;
28
protected
GameSignalsManager
m_GlobalSignalsManager
;
29
protected
SCR_AmbientSoundsComponent
m_AmbientSoundsComponent
;
30
31
// Misc
32
protected
int
m_iEnvironmentTypeSignalValue
;
33
35
protected
ref array<int>
m_aLocalAmbientSignalIndex
= {};
36
37
protected
float
m_fTimeOfDay
;
38
protected
float
m_fRainIntensity
;
39
protected
float
m_fWindSpeed
;
40
41
protected
int
m_iSunAngleSignalIdx
;
42
protected
int
m_iRainIntensitySignalIdx
;
43
protected
int
m_iWindSpeedSignalIdx
;
44
45
//------------------------------------------------------------------------------------------------
47
int
GetEnvironmentType
()
48
{
49
return
m_iEnvironmentTypeSignalValue
;
50
}
51
52
//------------------------------------------------------------------------------------------------
54
float
GetTimeOfDay
()
55
{
56
return
m_fTimeOfDay
;
57
}
58
59
//------------------------------------------------------------------------------------------------
61
float
GetRainIntensity
()
62
{
63
return
m_fRainIntensity
;
64
}
65
66
//------------------------------------------------------------------------------------------------
68
float
GetWindSpeed
()
69
{
70
return
m_fWindSpeed
;
71
}
72
73
//------------------------------------------------------------------------------------------------
76
void
RemoveInsectEffect
(
SCR_AmbientInsectsEffect
effect)
77
{
78
m_aAmbientInsectsEffect
.RemoveItem(effect);
79
}
80
81
//------------------------------------------------------------------------------------------------
82
protected
void
Update
(
IEntity
owner)
83
{
84
float
worldTime = owner.
GetWorld
().GetWorldTime();
85
vector
cameraPos =
m_AmbientSoundsComponent
.GetCameraOrigin();
86
87
// Get spawn preset = EnvironmentType
88
if
(
m_aLocalAmbientSignalIndex
[
ELocalAmbientSignal
.EnvironmentType] != -1)
89
m_iEnvironmentTypeSignalValue
=
m_LocalSignalsManager
.GetSignalValue(
m_aLocalAmbientSignalIndex
[
ELocalAmbientSignal
.EnvironmentType]);
90
91
// Get time of day based on sun position
92
m_fTimeOfDay
=
m_LocalSignalsManager
.GetSignalValue(
m_iSunAngleSignalIdx
) / 360;
93
m_fRainIntensity
=
m_GlobalSignalsManager
.GetSignalValue(
m_iRainIntensitySignalIdx
);
94
m_fWindSpeed
=
m_GlobalSignalsManager
.GetSignalValue(
m_iWindSpeedSignalIdx
);
95
96
//We are using for loop because these effects can get removed during run-time from the update loop
97
for
(
int
i =
m_aAmbientInsectsEffect
.Count() - 1; i >= 0; i--)
98
{
99
if
(
m_aAmbientInsectsEffect
.IsIndexValid(i))
100
m_aAmbientInsectsEffect
[i].Update(worldTime, cameraPos,
m_fTimeOfDay
,
m_fRainIntensity
);
101
}
102
}
103
104
//------------------------------------------------------------------------------------------------
105
override
void
OnPostInit
(
IEntity
owner)
106
{
107
super.OnPostInit(owner);
108
109
if
(
RplSession
.Mode() ==
RplMode
.Dedicated)
110
return
;
111
112
// Get local signals component
113
m_LocalSignalsManager
=
SignalsManagerComponent
.Cast(owner.
FindComponent
(
SignalsManagerComponent
));
114
if
(!
m_LocalSignalsManager
)
115
{
116
Print
(
"AMBIENT LIFE: SCR_AmbientInsectsComponent: Missing SignalsManagerComponent"
,
LogLevel
.WARNING);
117
return
;
118
}
119
120
m_GlobalSignalsManager
=
GetGame
().GetSignalsManager();
121
122
// Get Local Ambient Signal Idx
123
typename
enumType =
ELocalAmbientSignal
;
124
int
size
= enumType.GetVariableCount();
125
126
for
(
int
i = 0; i <
size
; i++)
127
{
128
m_aLocalAmbientSignalIndex
.Insert(
m_LocalSignalsManager
.AddOrFindSignal(
typename
.EnumToString(
ELocalAmbientSignal
, i)));
129
}
130
131
m_iSunAngleSignalIdx
=
m_LocalSignalsManager
.AddOrFindSignal(
"SunAngle"
);
132
m_iRainIntensitySignalIdx
=
m_GlobalSignalsManager
.AddOrFindSignal(
"RainIntensity"
);
133
m_iWindSpeedSignalIdx
=
m_GlobalSignalsManager
.AddOrFindSignal(
"WindSpeed"
);
134
135
m_AmbientSoundsComponent
= SCR_AmbientSoundsComponent.Cast(owner.
FindComponent
(SCR_AmbientSoundsComponent));
136
if
(!
m_AmbientSoundsComponent
)
137
{
138
Print
(
"AMBIENT LIFE: SCR_AmbientInsectsComponent: Missing SCR_AmbientSoundsComponent"
,
LogLevel
.WARNING);
139
return
;
140
}
141
142
foreach
(
SCR_AmbientInsectsEffect
ambientInsectsEffect :
m_aAmbientInsectsEffect
)
143
{
144
ambientInsectsEffect.OnPostInit(
m_AmbientSoundsComponent
,
this
,
m_LocalSignalsManager
);
145
}
146
147
Update
(owner);
148
GetGame
().GetCallqueue().CallLater(
Update
, 1000 *
m_iUpdateRate
,
true
, owner);
149
}
150
151
#ifdef ENABLE_DIAG
152
//------------------------------------------------------------------------------------------------
153
// constructor
157
void
SCR_AmbientInsectsComponent
(
IEntityComponentSource
src,
IEntity
ent,
IEntity
parent)
158
{
159
DiagMenu
.RegisterBool(
SCR_DebugMenuID
.DEBUGUI_AMBIENT_LIFE,
""
,
"Ambient Life"
,
"World"
);
160
}
161
#endif
162
}
SCR_DebugMenuID
SCR_DebugMenuID
This enum contains all IDs for DiagMenu entries added in script.
Definition
DebugMenuID.c:4
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
size
int size
Definition
PrefabImporter.c:35
RplMode
RplMode
Mode of replication.
Definition
RplMode.c:9
EnvironmentType
EnvironmentType
Definition
SCR_AmbientInsectsComponent.c:17
AboveTerrain
AboveTerrain
Definition
SCR_AmbientInsectsComponent.c:15
Distance
Distance
Definition
SCR_AmbientInsectsComponent.c:20
ELocalAmbientSignal
ELocalAmbientSignal
Definition
SCR_AmbientInsectsComponent.c:2
SoundName
SoundName
Definition
SCR_AmbientInsectsComponent.c:13
EntityEditorProps
enum ELocalAmbientSignal EntityEditorProps(category:"GameScripted/Sound", description:"Component handling ambient Insects", color:"0 0 255 255")
Definition
SCR_AmbientInsectsComponent.c:12
EntitySize
EntitySize
Definition
SCR_AmbientInsectsComponent.c:14
SunAngle
SunAngle
Definition
SCR_AmbientInsectsComponent.c:16
Seed
Seed
Definition
SCR_AmbientInsectsComponent.c:18
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
params
category params
Definition
SCR_SpherePointGeneratorPreviewComponent.c:21
category
params category
Definition
SCR_VehicleDamageManagerComponent.c:302
DiagMenu
Diagnostic and developer menu system.
Definition
DiagMenu.c:18
GameSignalsManager
Definition
GameSignalsManager.c:8
IEntityComponentSource
Definition
IEntityComponentSource.c:13
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
IEntity::GetWorld
proto external BaseWorld GetWorld()
RplSession
Definition
RplSession.c:8
SCR_AmbientInsectsComponent
Definition
SCR_AmbientInsectsComponent.c:19
SCR_AmbientInsectsComponent::m_iWindSpeedSignalIdx
int m_iWindSpeedSignalIdx
Definition
SCR_AmbientInsectsComponent.c:43
SCR_AmbientInsectsComponent::OnPostInit
override void OnPostInit(IEntity owner)
Definition
SCR_AmbientInsectsComponent.c:105
SCR_AmbientInsectsComponent::m_LocalSignalsManager
SignalsManagerComponent m_LocalSignalsManager
Definition
SCR_AmbientInsectsComponent.c:27
SCR_AmbientInsectsComponent::m_iRainIntensitySignalIdx
int m_iRainIntensitySignalIdx
Definition
SCR_AmbientInsectsComponent.c:42
SCR_AmbientInsectsComponent::GetEnvironmentType
int GetEnvironmentType()
Definition
SCR_AmbientInsectsComponent.c:47
SCR_AmbientInsectsComponent::m_AmbientSoundsComponent
SCR_AmbientSoundsComponent m_AmbientSoundsComponent
Definition
SCR_AmbientInsectsComponent.c:29
SCR_AmbientInsectsComponent::GetRainIntensity
float GetRainIntensity()
Definition
SCR_AmbientInsectsComponent.c:61
SCR_AmbientInsectsComponent::GetTimeOfDay
float GetTimeOfDay()
Definition
SCR_AmbientInsectsComponent.c:54
SCR_AmbientInsectsComponent::Update
void Update(IEntity owner)
Definition
SCR_AmbientInsectsComponent.c:82
SCR_AmbientInsectsComponent::m_iSunAngleSignalIdx
int m_iSunAngleSignalIdx
Definition
SCR_AmbientInsectsComponent.c:41
SCR_AmbientInsectsComponent::m_aAmbientInsectsEffect
ref array< ref SCR_AmbientInsectsEffect > m_aAmbientInsectsEffect
Definition
SCR_AmbientInsectsComponent.c:24
SCR_AmbientInsectsComponent::m_aLocalAmbientSignalIndex
ref array< int > m_aLocalAmbientSignalIndex
AmbientEntity Signal's manager signals indexes.
Definition
SCR_AmbientInsectsComponent.c:35
SCR_AmbientInsectsComponent::m_fTimeOfDay
float m_fTimeOfDay
Definition
SCR_AmbientInsectsComponent.c:37
SCR_AmbientInsectsComponent::m_fWindSpeed
float m_fWindSpeed
Definition
SCR_AmbientInsectsComponent.c:39
SCR_AmbientInsectsComponent::m_fRainIntensity
float m_fRainIntensity
Definition
SCR_AmbientInsectsComponent.c:38
SCR_AmbientInsectsComponent::GetWindSpeed
float GetWindSpeed()
Definition
SCR_AmbientInsectsComponent.c:68
SCR_AmbientInsectsComponent::RemoveInsectEffect
void RemoveInsectEffect(SCR_AmbientInsectsEffect effect)
Definition
SCR_AmbientInsectsComponent.c:76
SCR_AmbientInsectsComponent::m_iUpdateRate
int m_iUpdateRate
Definition
SCR_AmbientInsectsComponent.c:21
SCR_AmbientInsectsComponent::m_iEnvironmentTypeSignalValue
int m_iEnvironmentTypeSignalValue
Definition
SCR_AmbientInsectsComponent.c:32
SCR_AmbientInsectsComponent::m_GlobalSignalsManager
GameSignalsManager m_GlobalSignalsManager
Definition
SCR_AmbientInsectsComponent.c:28
SCR_AmbientInsectsEffect
Definition
SCR_AmbientInsectEffect.c:3
ScriptComponentClass
Definition
ScriptComponentClass.c:8
ScriptComponent
Definition
ScriptComponent.c:24
SignalsManagerComponent
Definition
SignalsManagerComponent.c:13
UIWidgets
Definition
attributes.c:40
vector
Definition
vector.c:13
Print
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
LogLevel
Enum with severity of the logging message.
Definition
LogLevel.c:14
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
Update
@ Update
Definition
SndComponentCallbacks.c:14
scripts
Game
Components
SCR_AmbientInsectsComponent.c
Generated by
1.17.0