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_OptimizedMuzzleEffectComponent.c
Go to the documentation of this file.
1
class
SCR_OptimizedMuzzleEffectComponentClass
:
MuzzleEffectComponentClass
2
{
3
}
4
5
class
SCR_OptimizedMuzzleEffectComponent : MuzzleEffectComponent
6
{
7
protected
bool
m_bInScope
;
8
protected
ref
ScriptInvokerVoid
m_OnWeaponFired
;
9
protected
const
string
PREFIX_EMITOR_TO_DISABLE
=
"noscope"
;
10
11
//------------------------------------------------------------------------------------------------
12
static
void
OptimizeMuzzleEffect(
bool
inScope,
TurretControllerComponent
m_TurretController
)
13
{
14
BaseWeaponManagerComponent weaponManager =
m_TurretController
.GetWeaponManager();
15
16
if
(!weaponManager)
17
return
;
18
19
array<WeaponSlotComponent> weaponSlots = {};
20
weaponManager.GetWeaponsSlots(weaponSlots);
21
22
BaseMuzzleComponent
baseMuzzle;
23
array<GenericComponent> comArray =
new
array<GenericComponent>();
24
SCR_OptimizedMuzzleEffectComponent muzzleEffect;
25
26
foreach
(
WeaponSlotComponent
weaponSlot : weaponSlots)
27
{
28
baseMuzzle = weaponSlot.GetCurrentMuzzle();
29
if
(!baseMuzzle)
30
continue
;
31
32
comArray.Clear();
33
baseMuzzle.
FindComponents
(MuzzleEffectComponent, comArray);
34
35
foreach
(
GenericComponent
component : comArray)
36
{
37
muzzleEffect = SCR_OptimizedMuzzleEffectComponent.Cast(component);
38
39
if
(!muzzleEffect)
40
continue
;
41
42
muzzleEffect.m_bInScope = inScope;
43
}
44
}
45
}
46
47
//------------------------------------------------------------------------------------------------
48
ScriptInvokerVoid
GetOnWeaponFired
()
49
{
50
if
(!
m_OnWeaponFired
)
51
m_OnWeaponFired
=
new
ScriptInvokerVoid
();
52
53
return
m_OnWeaponFired
;
54
}
55
56
//------------------------------------------------------------------------------------------------
57
override
void
OnFired
(
IEntity
effectEntity,
BaseMuzzleComponent
muzzle,
IEntity
projectileEntity)
58
{
59
if
(
m_OnWeaponFired
)
60
m_OnWeaponFired
.Invoke();
61
62
ParticleEffectEntity
particleEntity =
ParticleEffectEntity
.Cast(effectEntity);
63
64
if
(!particleEntity)
65
return
;
66
67
Particles
particles = particleEntity.GetParticles();
68
69
if
(!particles)
70
return
;
71
72
array<string> names = {};
73
particles.GetEmitterNames(names);
74
75
foreach
(
int
idx
,
string
name : names)
76
{
77
if
(name.Contains(
PREFIX_EMITOR_TO_DISABLE
))
78
{
79
if
(
m_bInScope
)
80
particles.MultParam(
idx
,
EmitterParam
.BIRTH_RATE, 0);
81
else
82
particles.MultParam(
idx
,
EmitterParam
.BIRTH_RATE, 1);
83
}
84
}
85
}
86
}
idx
int idx
Definition
AIControlComponentSerializer.c:13
PREFIX_EMITOR_TO_DISABLE
const string PREFIX_EMITOR_TO_DISABLE
Definition
SCR_OptimizedMuzzleEffectComponent.c:9
GetOnWeaponFired
ScriptInvokerVoid GetOnWeaponFired()
Definition
SCR_OptimizedMuzzleEffectComponent.c:48
m_OnWeaponFired
ref ScriptInvokerVoid m_OnWeaponFired
Definition
SCR_OptimizedMuzzleEffectComponent.c:8
m_bInScope
SCR_OptimizedMuzzleEffectComponentClass m_bInScope
ParticleEffectEntity
void ParticleEffectEntity(IEntitySource src, IEntity parent)
Definition
SCR_RepeatingParticleEffectEntity.c:65
ScriptInvokerVoid
ScriptInvokerBase< ScriptInvokerVoidMethod > ScriptInvokerVoid
Definition
SCR_ScriptInvokerHelper.c:9
m_TurretController
TurretControllerComponent m_TurretController
Definition
SCR_WeaponInfo_MultiWeaponTurret.c:975
BaseMuzzleComponent
Definition
BaseMuzzleComponent.c:13
GenericComponent
Definition
GenericComponent.c:13
GenericComponent::FindComponents
proto external int FindComponents(typename typeName, notnull array< GenericComponent > outComponents)
IEntity
Definition
IEntity.c:13
MuzzleEffectComponentClass
Definition
MuzzleEffectComponent.c:13
Particles
Definition
Particles.c:22
SCR_OptimizedMuzzleEffectComponentClass
Definition
SCR_OptimizedMuzzleEffectComponent.c:2
TurretControllerComponent
Definition
TurretControllerComponent.c:13
WeaponSlotComponent
Definition
WeaponSlotComponent.c:13
OnFired
event void OnFired(IEntity effectEntity, BaseMuzzleComponent muzzle, IEntity projectileEntity)
Definition
SCR_OptimizedMuzzleEffectComponent.c:57
EmitterParam
EmitterParam
Definition
EmitterParam.c:16
scripts
GameCode
Effects
SCR_OptimizedMuzzleEffectComponent.c
Generated by
1.17.0