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_ScenarioFrameworkLogicDistance.c
Go to the documentation of this file.
1
class
SCR_ScenarioFrameworkLogicDistanceClass
: SCR_ScenarioFrameworkLogicClass
2
{
3
}
4
5
class
SCR_ScenarioFrameworkLogicDistance : SCR_ScenarioFrameworkLogic
6
{
7
[
Attribute
(defvalue:
"0"
,
desc
:
"Checked distance between entities"
,
params
:
"0 inf 0.1"
,
precision
: 1)]
8
float
m_fDistance
;
9
10
[
Attribute
(
desc
:
"Entity A"
)]
11
ref
SCR_ScenarioFrameworkGet
m_GetterA;
12
13
[
Attribute
(
desc
:
"Entity B"
)]
14
ref
SCR_ScenarioFrameworkGet
m_GetterB;
15
16
[
Attribute
(
"0"
,
UIWidgets
.ComboBox,
"Operator"
,
""
, enumType:
SCR_EScenarioFrameworkComparisonOperator
)]
17
protected
SCR_EScenarioFrameworkComparisonOperator
m_eComparisonOperator;
18
19
[
Attribute
(defvalue:
"1"
,
desc
:
"Delay between checks. Lower values are more precise, but has bigger performance impact"
,
params
:
"0 inf"
)]
20
protected
int
m_iDelay
;
21
22
protected
IEntity
m_EntityA, m_EntityB;
23
24
//------------------------------------------------------------------------------------------------
25
override
void
Init
()
26
{
27
if
(m_bDebug)
28
Print
(
"[SCR_ScenarioFrameworkDistanceLogic.Init] debug line ("
+ __FILE__ +
" L"
+ __LINE__ +
")"
,
LogLevel
.WARNING);
29
30
if
(!m_GetterA || !m_GetterB)
31
return
;
32
33
SCR_ScenarioFrameworkParam<IEntity> entityWrapperA = SCR_ScenarioFrameworkParam<IEntity>.Cast(m_GetterA.Get());
34
if
(!entityWrapperA)
35
{
36
Print
(
string
.Format(
"SCR_ScenarioFrameworkDistanceLogic: Entity A not found for logic %1."
,
this
),
LogLevel
.ERROR);
37
return
;
38
}
39
40
SCR_ScenarioFrameworkParam<IEntity> entityWrapperB = SCR_ScenarioFrameworkParam<IEntity>.Cast(m_GetterB.Get());
41
if
(!entityWrapperB)
42
{
43
Print
(
string
.Format(
"SCR_ScenarioFrameworkDistanceLogic: Entity B not found for logic %1."
,
this
),
LogLevel
.ERROR);
44
return
;
45
}
46
47
m_EntityA = entityWrapperA.GetValue();
48
if
(!m_EntityA)
49
{
50
Print
(
string
.Format(
"SCR_ScenarioFrameworkDistanceLogic: Entity A not found for logic %1."
,
this
),
LogLevel
.ERROR);
51
return
;
52
}
53
54
m_EntityB = entityWrapperB.GetValue();
55
if
(!m_EntityB)
56
{
57
Print
(
string
.Format(
"SCR_ScenarioFrameworkDistanceLogic: Entity B not found for logic %1."
,
this
),
LogLevel
.ERROR);
58
return
;
59
}
60
61
super.Init();
62
63
SCR_ScenarioFrameworkSystem.GetCallQueuePausable().CallLater(
EvaluateDistance
,
m_iDelay
,
true
);
64
}
65
66
//------------------------------------------------------------------------------------------------
67
protected
void
EvaluateDistance
()
68
{
69
float
distance
=
vector
.Distance(m_EntityA.
GetOrigin
(), m_EntityB.
GetOrigin
());
70
71
if
(
72
((m_eComparisonOperator ==
SCR_EScenarioFrameworkComparisonOperator
.LESS_THAN) && (
distance
<
m_fDistance
)) ||
73
((m_eComparisonOperator ==
SCR_EScenarioFrameworkComparisonOperator
.LESS_OR_EQUAL) && (
distance
<=
m_fDistance
)) ||
74
((m_eComparisonOperator ==
SCR_EScenarioFrameworkComparisonOperator
.EQUAL) && (
distance
==
m_fDistance
)) ||
75
((m_eComparisonOperator ==
SCR_EScenarioFrameworkComparisonOperator
.GREATER_OR_EQUAL) && (
distance
>=
m_fDistance
)) ||
76
((m_eComparisonOperator ==
SCR_EScenarioFrameworkComparisonOperator
.GREATER_THEN) && (
distance
>
m_fDistance
))
77
)
78
OnActivate
(null);
79
}
80
81
//------------------------------------------------------------------------------------------------
82
override
void
RestoreToDefault
()
83
{
84
SCR_ScenarioFrameworkSystem
.
GetCallQueuePausable
().Remove(
EvaluateDistance
);
85
}
86
}
Init
override void Init()
Definition
CharacterCameraHandlerComponent.c:40
precision
params precision
Definition
SCR_2DOpticsComponent.c:20
m_fDistance
float m_fDistance
Definition
SCR_AIGroupTargetCluster.c:38
OnActivate
override void OnActivate()
Definition
SCR_CharacterCommandLoiter.c:31
distance
float distance
Definition
SCR_DestructibleTreeV2.c:29
SCR_EScenarioFrameworkComparisonOperator
SCR_EScenarioFrameworkComparisonOperator
Definition
SCR_EScenarioFrameworkComparisonOperator.c:2
m_iDelay
int m_iDelay
Definition
SCR_MenuActionsComponent.c:4
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
RestoreToDefault
void RestoreToDefault()
Definition
SCR_ScenarioFrameworkLogic.c:91
EvaluateDistance
void EvaluateDistance()
Definition
SCR_ScenarioFrameworkLogicDistance.c:67
params
category params
Definition
SCR_SpherePointGeneratorPreviewComponent.c:21
IEntity
Definition
IEntity.c:13
IEntity::GetOrigin
proto external vector GetOrigin()
SCR_ScenarioFrameworkGet
Definition
SCR_ScenarioFrameworkGet.c:3
SCR_ScenarioFrameworkLogicDistanceClass
Definition
SCR_ScenarioFrameworkLogicDistance.c:2
SCR_ScenarioFrameworkSystem
Definition
SCR_ScenarioFrameworkSystem.c:2
SCR_ScenarioFrameworkSystem::GetCallQueuePausable
static ScriptCallQueue GetCallQueuePausable()
Definition
SCR_ScenarioFrameworkSystem.c:87
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
scripts
Game
ScenarioFramework
Components
SCR_ScenarioFrameworkLogicDistance.c
Generated by
1.17.0