DayZ 1.26
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс Hologram

Защищенные члены

void Hologram (PlayerBase player, vector pos, ItemBase item)
 
void ~Hologram ()
 
void SetAnimations ()
 
void UpdateSelections ()
 
string ProjectionBasedOnParent ()
 
string GetProjectionName (ItemBase item)
 
void UpdateHologram (float timeslice)
 
vector AlignProjectionOnTerrain (float timeslice)
 
vector SmoothProjectionMovement (vector y_p_r, float timeslice)
 
void CreateTrigger ()
 
void RefreshTrigger ()
 
void EvaluateCollision (ItemBase action_item=null)
 
bool IsClippingRoof ()
 
bool IsCollidingAngle ()
 
bool IsCollidingBBox (ItemBase action_item=null)
 
bool IsBaseViable ()
 
bool IsCollidingGPlot ()
 
bool IsCollidingZeroPos ()
 
bool IsBehindObstacle ()
 DEPRECATED.
 
bool IsBaseStatic (Object objectToCheck)
 
bool IsObjectStatic (Object obj)
 
bool IsBaseIntact (Object under_left_close, Object under_right_close, Object under_left_far, Object under_right_far)
 
bool IsBaseFlat (vector contact_pos_left_close, vector contact_pos_right_close, vector contact_pos_left_far, vector contact_pos_right_far)
 
bool IsPlacementPermitted ()
 Checks if the item can be legally placed (usually checked by action as well)
 
bool HeightPlacementCheck ()
 Checks height relative to player's position.
 
bool IsUnderwater ()
 
bool IsInTerrain ()
 
void CheckPowerSource ()
 
EntityAI PlaceEntity (EntityAI entity_for_placing)
 
void GetProjectionCollisionBox (out vector min_max[2])
 
vector GetCollisionBoxSize (vector min_max[2])
 
vector GetLeftCloseProjectionVector ()
 
vector GetRightCloseProjectionVector ()
 
vector GetLeftFarProjectionVector ()
 
vector GetRightFarProjectionVector ()
 
bool IsSurfaceWater (vector position)
 
bool IsSurfaceSea (vector position)
 
vector GetProjectionEntityPosition (PlayerBase player)
 
bool SetHologramPosition (vector startPosition, float minProjectionDistance, float maxProjectionDistance, inout vector contactPosition)
 Sets hologram position based on player and projection distance.
 
bool IsFenceOrWatchtowerKit ()
 
vector CorrectForWatchtower (int contactComponent, vector contactPos, PlayerBase player, Object hitObject)
 
bool IsProjectionTrap ()
 
float GetProjectionDiameter ()
 
float GetProjectionRadius ()
 
void SetUpdatePosition (bool state)
 
bool GetUpdatePosition ()
 
EntityAI GetParentEntity ()
 
void SetProjectionEntity (EntityAI projection)
 
EntityAI GetProjectionEntity ()
 
void SetIsFloating (bool is_floating)
 
void SetIsColliding (bool is_colliding)
 
void SetIsHidden (bool is_hidden)
 
void SetIsCollidingPlayer (bool is_colliding)
 
void SetIsCollidingGPlot (bool is_colliding_gplot)
 
bool IsFloating ()
 
bool IsColliding ()
 
bool IsHidden ()
 
bool IsCollidingPlayer ()
 
void SetProjectionPosition (vector position)
 
void SetProjectionOrientation (vector orientation)
 
vector GetProjectionRotation ()
 
void AddProjectionRotation (float addition)
 
void SubtractProjectionRotation (float subtraction)
 
vector SetOnGround (vector position)
 
vector HideWhenClose (vector pos)
 
vector GetProjectionPosition ()
 
vector GetProjectionOrientation ()
 
vector GetDefaultOrientation ()
 
int GetHiddenSelection (string selection)
 
void SetSelectionToRefresh (string selection)
 
void SetSelectionToRefresh (array< string > selection)
 
void RefreshVisual ()
 
string CorrectMaterialPathName ()
 

Защищенные статические члены

static bool DoesHaveProjection (ItemBase item)
 DEPRECATED.
 

Защищенные данные

const int SPAWN_FLAGS = ECE_LOCAL
 
const string SUFFIX_MATERIAL_DEPLOYABLE = "_deployable.rvmat"
 
const string SUFFIX_MATERIAL_UNDEPLOYABLE = "_undeployable.rvmat"
 
const string SUFFIX_MATERIAL_POWERED = "_powered.rvmat"
 
const vector PLACEMENT_RC_START_OFFSET = "0 1 0"
 
const vector PLACEMENT_RC_END_OFFSET = "0 -2 0"
 
ItemBase m_Parent
 
EntityAI m_Projection
 
PlayerBase m_Player
 
ProjectionTrigger m_ProjectionTrigger
 
string m_ProjectionTypename
 
bool m_IsColliding
 
bool m_IsCollidingGPlot
 
bool m_IsSlope
 
bool m_IsCollidingPlayer
 
bool m_IsFloating
 
bool m_UpdatePosition
 
bool m_IsHidden
 
vector m_DefaultOrientation
 
vector m_Rotation
 
vector m_y_p_r_previous
 
vector m_ContactDir
 
vector m_FromAdjusted
 
const string ANIMATION_PLACING = "Placing"
 
const string ANIMATION_INVENTORY = "Inventory"
 
const string SELECTION_PLACING = "placing"
 
const string SELECTION_INVENTORY = "inventory"
 
const float SMALL_PROJECTION_RADIUS = 1
 
const float SMALL_PROJECTION_GROUND = 2
 
const float DISTANCE_SMALL_PROJECTION = 1
 
const float LARGE_PROJECTION_DISTANCE_LIMIT = 6
 Deprecated.
 
const float PROJECTION_TRANSITION_MIN = 1
 
const float PROJECTION_TRANSITION_MAX = 0.25
 
const float LOOKING_TO_SKY = 0.75
 
float m_SlopeTolerance
 
bool m_AlignToTerrain
 
vector m_YawPitchRollLimit
 
int m_ContactComponent
 
ref set< stringm_SelectionsToRefresh = new set<string>
 

Статические защищенные данные

static const float DEFAULT_MAX_PLACEMENT_HEIGHT_DIFF = 1.5
 
ref array< stringm_WatchtowerIgnoreComponentNames = new array<string>
 
ref array< stringm_WatchtowerBlockedComponentNames = new array<string>
 

Закрытые члены

bool IsRestrictedFromAdvancedPlacing ()
 

Подробное описание

Конструктор(ы)

◆ Hologram()

void Hologram ( PlayerBase player,
vector pos,
ItemBase item )
inlineprotected
69 {
71 m_Parent = item;
73
75 m_UpdatePosition = true;
77
78 m_Rotation = "0 0 0";
79 m_FromAdjusted = "0 0 0";
80
81 // If the static names are empty, generate the needed names
82 // Refer to their definitions to see why these are required
83 if (m_WatchtowerIgnoreComponentNames.Count() == 0)
84 {
85 string baseStringBegin = Watchtower.BASE_VIEW_NAME;
86 string baseIgnoreStringEnd = Watchtower.BASE_WALL_NAME;
87
88 int floors = Watchtower.MAX_WATCHTOWER_FLOORS;
89 int walls = Watchtower.MAX_WATCHTOWER_WALLS;
90
91 string compName;
92 for (int i = 1; i < floors + 1; ++i)
93 {
94 compName = baseStringBegin + i.ToString();
95 for (int j = 1; j < walls + 1; ++j)
97
98 if (i != 1)
100 else
102 }
103 }
104
105 string configPathProjectionTypename = string.Format("CfgVehicles %1 projectionTypename", m_Parent.GetType());
106 if (GetGame().ConfigIsExisting(configPathProjectionTypename))
107 {
109 }
110
112 if (GetGame().IsMultiplayer() && GetGame().IsServer())
113 {
115 projectionEntity.SetAllowDamage(false);
118 }
119 else
120 {
122 if (projectionEntity == null)
123 {
124 ErrorEx(string.Format("Cannot create hologram entity from config class %1", ProjectionBasedOnParent()), ErrorExSeverity.WARNING);
125 return;
126 }
127
132 }
133
134 if (ItemBase.Cast(projectionEntity))
135 {
136 ItemBase.Cast(GetProjectionEntity()).SetIsHologram(true);
137 }
138
139 string configPathSlope = string.Format("CfgVehicles %1 slopeTolerance", GetProjectionEntity().GetType());
140 if (GetGame().ConfigIsExisting(configPathSlope))
141 {
142 m_SlopeTolerance = GetGame().ConfigGetFloat(configPathSlope);
143 }
144
145 string configPathAlign = string.Format("CfgVehicles %1 alignHologramToTerain", GetProjectionEntity().GetType());
146 if (GetGame().ConfigIsExisting(configPathAlign))
147 {
148 m_AlignToTerrain = GetGame().ConfigGetInt(configPathAlign);
149 }
150
151 string configPathOrientationLimit = string.Format("CfgVehicles %1 yawPitchRollLimit", GetProjectionEntity().GetType());
152 if (GetGame().ConfigIsExisting(configPathOrientationLimit))
153 {
155 }
156 }
eBleedingSourceType GetType()
Definition BleedingSource.c:63
const int ECE_LOCAL
Definition CentralEconomy.c:24
const int ECE_PLACE_ON_SURFACE
Definition CentralEconomy.c:37
const int ECE_TRACE
Definition CentralEconomy.c:10
Definition Building.c:6
string m_ProjectionTypename
Definition Hologram.c:25
string ProjectionBasedOnParent()
Definition Hologram.c:217
bool m_AlignToTerrain
Definition Hologram.c:55
ItemBase m_Parent
Definition Hologram.c:21
ProjectionTrigger m_ProjectionTrigger
Definition Hologram.c:24
PlayerBase m_Player
Definition Hologram.c:23
void CreateTrigger()
Definition Hologram.c:375
ref array< string > m_WatchtowerIgnoreComponentNames
Definition Hologram.c:63
vector m_Rotation
Definition Hologram.c:36
int m_ContactComponent
Definition Hologram.c:57
float m_SlopeTolerance
Definition Hologram.c:54
void SetProjectionEntity(EntityAI projection)
Definition Hologram.c:1278
bool m_UpdatePosition
Definition Hologram.c:32
void SetAnimations()
Definition Hologram.c:178
ref array< string > m_WatchtowerBlockedComponentNames
Definition Hologram.c:66
EntityAI GetProjectionEntity()
Definition Hologram.c:1283
void RefreshTrigger()
Definition Hologram.c:386
EntityAI m_Projection
Definition Hologram.c:22
vector m_FromAdjusted
Definition Hologram.c:39
vector m_YawPitchRollLimit
Definition Hologram.c:56
Definition InventoryItem.c:731
Definition EntityAI.c:95
proto native CGame GetGame()
ErrorExSeverity
Definition EnDebug.c:62
enum ShapeType ErrorEx

Перекрестные ссылки CreateTrigger(), ECE_LOCAL, ECE_PLACE_ON_SURFACE, ECE_TRACE, ErrorEx, GetGame(), GetProjectionEntity(), GetType(), m_AlignToTerrain, m_ContactComponent, m_FromAdjusted, m_Parent, m_Player, m_Projection, m_ProjectionTrigger, m_ProjectionTypename, m_Rotation, m_SlopeTolerance, m_UpdatePosition, m_WatchtowerBlockedComponentNames, m_WatchtowerIgnoreComponentNames, m_YawPitchRollLimit, ProjectionBasedOnParent(), RefreshTrigger(), SetAnimations() и SetProjectionEntity().

◆ ~Hologram()

void ~Hologram ( )
inlineprotected
159 {
160 if (GetGame())
161 {
162 if (m_Projection)
163 {
164 GetGame().ObjectDelete(m_Projection);
165 }
166
168 {
169 GetGame().ObjectDelete(m_ProjectionTrigger);
170 }
171 }
172
173 #ifdef DIAG_DEVELOPER
175 #endif
176 }
void DestroyDebugCollisionBox()
Definition Construction.c:1173

Перекрестные ссылки DestroyDebugCollisionBox(), GetGame(), m_Projection и m_ProjectionTrigger.

Методы

◆ AddProjectionRotation()

void AddProjectionRotation ( float addition)
inlineprotected
1368 {
1369 m_Rotation[0] = m_Rotation[0] + addition;
1370 }

Перекрестные ссылки m_Rotation.

◆ AlignProjectionOnTerrain()

vector AlignProjectionOnTerrain ( float timeslice)
inlineprotected
294 {
296
297 if ( m_AlignToTerrain )
298 {
300 vector mat0[3];
301 vector mat1[3];
302 vector mat2[3];
305
306 if ( m_ContactDir.Length() > 0 )
307 {
309 }
310 else
311 {
312 normal = GetGame().SurfaceGetNormal( projection_position[0], projection_position[2] );
313 }
314
315 vector angles = normal.VectorToAngles();
316 angles[1] = angles[1] + 270;
317
318 angles[0] = Math.Clamp( angles[0], 0, 360 );
319 angles[1] = Math.Clamp( angles[1], 0, 360 );
320 angles[2] = Math.Clamp( angles[2], 0, 360 );
321
323
327
329 }
330 else
331 {
333
334 if ( y_p_r[0] > 180 )
335 {
336 y_p_r[0] = y_p_r[0] - 360;
337 }
338
339 if ( y_p_r[0] < -180 )
340 {
341 y_p_r[0] = y_p_r[0] + 360;
342 }
343 }
344
346 }
vector GetProjectionRotation()
Definition Hologram.c:1362
vector m_ContactDir
Definition Hologram.c:38
vector SmoothProjectionMovement(vector y_p_r, float timeslice)
Definition Hologram.c:348
vector GetDefaultOrientation()
Definition Hologram.c:1461
Definition EnMath3D.c:28
Definition EnMath.c:7
Definition EnConvert.c:106
proto native float Length()
Returns length of vector (magnitude)
static proto vector MatrixToAngles(vector mat[3])
Returns angles of rotation matrix.
static proto void MatrixMultiply3(vector mat0[3], vector mat1[3], out vector res[3])
Transforms rotation matrix.
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.

Перекрестные ссылки Math::Clamp(), GetDefaultOrientation(), GetGame(), GetProjectionRotation(), vector::Length(), m_AlignToTerrain, m_ContactDir, m_Projection, Math3D::MatrixMultiply3(), Math3D::MatrixToAngles(), SmoothProjectionMovement() и Math3D::YawPitchRollMatrix().

Используется в UpdateHologram().

◆ CheckPowerSource()

void CheckPowerSource ( )
inlineprotected
977 {
978 //in range of its power source.
979 if (m_Player && m_Parent && m_Parent.HasEnergyManager() && m_Parent.GetCompEM().IsPlugged())
980 {
981 // Unplug the device when the player is too far from the power source.
982 m_Parent.GetCompEM().UpdatePlugState();
983
984 // Delete local hologram when plug is rippled out and advanced placement is active
985 if (GetGame().IsMultiplayer() && GetGame().IsClient())
986 {
987 if (!m_Parent.GetCompEM().IsPlugged())
988 m_Player.TogglePlacingLocal();
989 }
990 }
991 }

Перекрестные ссылки GetGame(), m_Parent и m_Player.

Используется в UpdateHologram().

◆ CorrectForWatchtower()

vector CorrectForWatchtower ( int contactComponent,
vector contactPos,
PlayerBase player,
Object hitObject )
inlineprotected
1220 {
1221 // Raycast has hit one of the trigger boxes that show construction prompts, so projection would be floating in the air without this correction
1222 if (m_WatchtowerIgnoreComponentNames.Find(hitObject.GetActionComponentName(contactComponent, LOD.NAME_VIEW)) != -1 )
1223 contactPos[1] = hitObject.GetActionComponentPosition(contactComponent, LOD.NAME_VIEW)[1];
1224
1225 return contactPos;
1226 }
LOD class.
Definition gameplay.c:203
static const string NAME_VIEW
Definition gameplay.c:206

Перекрестные ссылки m_WatchtowerIgnoreComponentNames и LOD::NAME_VIEW.

Используется в GetProjectionEntityPosition().

◆ CorrectMaterialPathName()

string CorrectMaterialPathName ( )
inlineprotected
1522 {
1523 if (IsColliding() || IsFloating())
1524 {
1526 }
1527 else if (m_Parent.HasEnergyManager())
1528 {
1530 string SEL_CORD_PLUGGED = m_Parent.GetCompEM().SEL_CORD_PLUGGED;
1531 string SEL_CORD_FOLDED = m_Parent.GetCompEM().SEL_CORD_FOLDED;
1532
1533 if (comp_em.IsPlugged() && comp_em.IsEnergySourceAtReach(GetProjectionPosition()))
1534 {
1535 m_Projection.SetAnimationPhase(SEL_CORD_PLUGGED, 0);
1536 m_Projection.SetAnimationPhase(SEL_CORD_FOLDED, 1);
1538 }
1539 else
1540 {
1541 m_Projection.SetAnimationPhase(SEL_CORD_PLUGGED, 1);
1542 m_Projection.SetAnimationPhase(SEL_CORD_FOLDED, 0);
1543 }
1544 }
1545
1547 }
Definition ComponentEnergyManager.c:19
bool IsColliding()
Definition Hologram.c:1324
const string SUFFIX_MATERIAL_DEPLOYABLE
Definition Hologram.c:14
bool IsFloating()
Definition Hologram.c:1316
const string SUFFIX_MATERIAL_UNDEPLOYABLE
Definition Hologram.c:15
vector GetProjectionPosition()
Definition Hologram.c:1445
const string SUFFIX_MATERIAL_POWERED
Definition Hologram.c:16
const string SEL_CORD_FOLDED
Definition BatteryCharger.c:11
const string SEL_CORD_PLUGGED
Definition BatteryCharger.c:10

Перекрестные ссылки GetProjectionPosition(), IsColliding(), IsFloating(), m_Parent, m_Projection, ItemBase::SEL_CORD_FOLDED, ItemBase::SEL_CORD_PLUGGED, SUFFIX_MATERIAL_DEPLOYABLE, SUFFIX_MATERIAL_POWERED и SUFFIX_MATERIAL_UNDEPLOYABLE.

Используется в RefreshVisual().

◆ CreateTrigger()

void CreateTrigger ( )
inlineprotected
376 {
377 Class.CastTo(m_ProjectionTrigger, g_Game.CreateObjectEx("ProjectionTrigger", GetProjectionPosition(), SPAWN_FLAGS));
378
380 m_ProjectionTrigger.SetParentObject(this);
381 m_ProjectionTrigger.SetParentOwner(m_Player);
382
384 }
DayZGame g_Game
Definition DayZGame.c:3815
Super root of all classes in Enforce script.
Definition EnScript.c:11
vector GetProjectionOrientation()
Definition Hologram.c:1453
void RefreshVisual()
Definition Hologram.c:1497
const int SPAWN_FLAGS
Definition Hologram.c:6
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.

Перекрестные ссылки Class::CastTo(), g_Game, GetProjectionOrientation(), GetProjectionPosition(), m_Player, m_ProjectionTrigger, RefreshVisual() и SPAWN_FLAGS.

Используется в Hologram().

◆ DoesHaveProjection()

static bool DoesHaveProjection ( ItemBase item)
inlinestaticprotected

DEPRECATED.

251 {
252 return item && (item.IsDeployable() || item.CanMakeGardenplot() || item.IsInherited(DeployableContainer_Base));
253 }

◆ EvaluateCollision()

void EvaluateCollision ( ItemBase action_item = null)
inlineprotected
433 {
434 #ifdef DIAG_DEVELOPER
436 #endif
437
438 if (!m_Player.CanPlaceItem(m_Projection))
439 {
440 #ifdef DIAG_DEVELOPER
441 m_CollisionDetails += "[Player]";
442 #endif
443 SetIsColliding(true);
444
445 }
447 {
448 SetIsColliding(true);
449 }
450 else if ( m_Projection.IsInherited( TrapSpawnBase ))
451 {
452 #ifdef DIAG_DEVELOPER
453 DebugText("Inherits from TrapSpawnBase, checking IsPlaceableAtposition", true);
454 #endif
455
458 SetIsColliding(!trapSpawnBase.IsPlaceableAtPosition(m_Projection.GetPosition()));
459 }
460 else if (m_Projection.IsInherited(TrapBase))
461 {
462 #ifdef DIAG_DEVELOPER
463 DebugText("Inherits from TrapBase, checking IsPlaceableAtposition", true);
464 #endif
467 SetIsColliding(!trapBase.IsPlaceableAtPosition(m_Projection.GetPosition()));
468 }
469 else
470 {
471 SetIsColliding(false);
472 }
473 }
bool IsCollidingAngle()
Definition Hologram.c:507
void SetIsColliding(bool is_colliding)
Definition Hologram.c:1293
bool IsCollidingZeroPos()
Definition Hologram.c:663
bool IsCollidingPlayer()
Definition Hologram.c:1337
bool IsPlacementPermitted()
Checks if the item can be legally placed (usually checked by action as well)
Definition Hologram.c:807
bool HeightPlacementCheck()
Checks height relative to player's position.
Definition Hologram.c:821
bool IsClippingRoof()
Definition Hologram.c:475
bool IsInTerrain()
Definition Hologram.c:889
bool IsBaseViable()
Definition Hologram.c:587
bool IsCollidingBBox(ItemBase action_item=null)
Definition Hologram.c:540
bool IsHidden()
Definition Hologram.c:1329
bool IsUnderwater()
Definition Hologram.c:845
bool IsCollidingGPlot()
Definition Hologram.c:651
Definition Trap_Bear.c:2
Definition Trap_FishNet.c:2

Перекрестные ссылки Class::CastTo(), HeightPlacementCheck(), IsBaseViable(), IsClippingRoof(), IsCollidingAngle(), IsCollidingBBox(), IsCollidingGPlot(), IsCollidingPlayer(), IsCollidingZeroPos(), IsFloating(), IsHidden(), IsInTerrain(), IsPlacementPermitted(), IsUnderwater(), m_Player, m_Projection и SetIsColliding().

Используется в UpdateHologram().

◆ GetCollisionBoxSize()

vector GetCollisionBoxSize ( vector min_max[2])
inlineprotected
1028 {
1029 vector box_size = Vector(1,1,1);
1030
1031 box_size[0] = min_max[1][0] - min_max[0][0];
1032 box_size[2] = min_max[1][2] - min_max[0][2];
1033 box_size[1] = min_max[1][1] - min_max[0][1];
1034
1035 return box_size;
1036 }
proto native vector Vector(float x, float y, float z)
Vector constructor from components.

Перекрестные ссылки Vector().

Используется в GetProjectionDiameter(), GetProjectionRadius() и IsCollidingBBox().

◆ GetDefaultOrientation()

vector GetDefaultOrientation ( )
inlineprotected
1462 {
1463 m_DefaultOrientation = GetGame().GetCurrentCameraDirection().VectorToAngles();
1464 m_DefaultOrientation[1] = 0;
1465
1466 if (!GetParentEntity().PlacementCanBeRotated())
1467 {
1469 }
1470
1471 return m_DefaultOrientation;
1472 }
vector m_DefaultOrientation
Definition Hologram.c:35
EntityAI GetParentEntity()
Definition Hologram.c:1273
static const vector Zero
Definition EnConvert.c:110

Перекрестные ссылки GetGame(), GetParentEntity(), m_DefaultOrientation и vector::Zero.

Используется в AlignProjectionOnTerrain().

◆ GetHiddenSelection()

int GetHiddenSelection ( string selection)
inlineprotected
1475 {
1476 int idx = m_Projection.GetHiddenSelectionIndex(selection);
1477
1478 if ( idx != -1 )
1479 return idx;
1480 else
1481 return 0;
1482 }

Перекрестные ссылки m_Projection.

Используется в RefreshVisual().

◆ GetLeftCloseProjectionVector()

vector GetLeftCloseProjectionVector ( )
inlineprotected
1039 {
1040 vector min_max[2];
1042
1043 return min_max[0];
1044 }
void GetProjectionCollisionBox(out vector min_max[2])
Definition Hologram.c:1016

Перекрестные ссылки GetProjectionCollisionBox().

Используется в IsBaseViable(), IsInTerrain() и IsUnderwater().

◆ GetLeftFarProjectionVector()

vector GetLeftFarProjectionVector ( )
inlineprotected
1057 {
1058 vector min_max[2];
1060 min_max[0][2] = min_max[1][2];
1061
1062 return min_max[0];
1063 }

Перекрестные ссылки GetProjectionCollisionBox().

Используется в IsBaseViable(), IsInTerrain() и IsUnderwater().

◆ GetParentEntity()

EntityAI GetParentEntity ( )
inlineprotected
1274 {
1275 return m_Parent;
1276 }

Перекрестные ссылки m_Parent.

Используется в GetDefaultOrientation().

◆ GetProjectionCollisionBox()

void GetProjectionCollisionBox ( out vector min_max[2])
inlineprotected
1017 {
1018 if (!m_Projection.GetCollisionBox( min_max ) && m_Projection.MemoryPointExists("box_placing_min"))
1019 {
1020 min_max[0] = m_Projection.GetMemoryPointPos( "box_placing_min" );
1021 min_max[1] = m_Projection.GetMemoryPointPos( "box_placing_max" );
1022 //Debug.DrawSphere(m_Projection.ModelToWorld(min_max[0]) , 0.8,Colors.RED, ShapeFlags.ONCE);
1023 //Debug.DrawSphere(m_Projection.ModelToWorld(min_max[1]), 0.8,Colors.RED, ShapeFlags.ONCE);
1024 }
1025 }

Перекрестные ссылки m_Projection.

Используется в GetLeftCloseProjectionVector(), GetLeftFarProjectionVector(), GetProjectionDiameter(), GetProjectionRadius(), GetRightCloseProjectionVector(), GetRightFarProjectionVector(), IsCollidingBBox() и RefreshTrigger().

◆ GetProjectionDiameter()

float GetProjectionDiameter ( )
inlineprotected
1235 {
1236 float diameter;
1237 float radius;
1239 vector min_max[2];
1240
1243 diameter = diagonal.Length();
1244
1245 return diameter;
1246 }
vector GetCollisionBoxSize(vector min_max[2])
Definition Hologram.c:1027

Перекрестные ссылки GetCollisionBoxSize() и GetProjectionCollisionBox().

Используется в SetOnGround().

◆ GetProjectionEntity()

EntityAI GetProjectionEntity ( )
inlineprotected
1284 {
1285 return m_Projection;
1286 }

Перекрестные ссылки m_Projection.

Используется в HeightPlacementCheck(), Hologram() и PlaceEntity().

◆ GetProjectionEntityPosition()

vector GetProjectionEntityPosition ( PlayerBase player)
inlineprotected

will not push hologram up when there is direct hit of an item

1088 {
1090 float maxProjectionDistance;
1092 vector minMax[2];
1094 float cameraToPlayerDistance = vector.Distance(GetGame().GetCurrentCameraPosition(), player.GetPosition());
1095
1096 if (projectionRadius < SMALL_PROJECTION_RADIUS) // objects with radius smaller than 1m
1097 {
1100 }
1101 else
1102 {
1106 }
1107
1108 vector from = GetGame().GetCurrentCameraPosition();
1109 vector to = from + (GetGame().GetCurrentCameraDirection() * (maxProjectionDistance + cameraToPlayerDistance));
1112
1114
1115 bool contactHitProcessed = false;
1118 {
1119 if (hitObjects.Count() > 0)
1120 {
1121 if (hitObjects[0].IsInherited(Watchtower))
1122 {
1123 contactHitProcessed = true;
1125 }
1126
1127 if (!contactHitProcessed && hitObjects[0].IsInherited(InventoryItem))
1128 contactPosition = hitObjects[0].GetPosition();
1129 }
1130 }
1131
1132 static const float raycastOriginOffsetOnFail = 0.25;
1133 static const float minDistFromStart = 0.01;
1134 // Camera isn't correctly positioned in some cases, leading to raycasts hitting the object directly behind the camera
1136 {
1137 from = contactPosition + GetGame().GetCurrentCameraDirection() * raycastOriginOffsetOnFail;
1139 }
1140
1143
1144 #ifdef DIAG_DEVELOPER
1146 if (DiagMenu.GetBool(DiagMenuIDs.MISC_HOLOGRAM))
1147 {
1148 Debug.DrawSphere(GetProjectionPosition(), 0.1, 0x99FF0000, ShapeFlags.ONCE|ShapeFlags.TRANSP|ShapeFlags.NOOUTLINE);
1149 }
1150 #endif
1151
1153
1154 return contactPosition;
1155 }
DiagMenuIDs
Definition EDiagMenuIDs.c:2
Definition CfgGameplayHandler.c:2
static bool GetDisableIsCollidingBBoxCheck()
Definition CfgGameplayHandler.c:267
Definition DayZPhysics.c:124
static proto bool RaycastRV(vector begPos, vector endPos, out vector contactPos, out vector contactDir, out int contactComponent, set< Object > results=NULL, Object with=NULL, Object ignore=NULL, bool sorted=false, bool ground_only=false, int iType=ObjIntersectView, float radius=0.0, CollisionFlags flags=CollisionFlags.NEARESTCONTACT)
Raycasts world by given parameters.
Definition Debug.c:14
static Shape DrawSphere(vector pos, float size=1, int color=0x1fff7f7f, ShapeFlags flags=ShapeFlags.TRANSP|ShapeFlags.NOOUTLINE)
Definition Debug.c:333
Definition EnDebug.c:233
const float LARGE_PROJECTION_DISTANCE_LIMIT
Deprecated.
Definition Hologram.c:48
void SetIsFloating(bool is_floating)
Definition Hologram.c:1288
vector CorrectForWatchtower(int contactComponent, vector contactPos, PlayerBase player, Object hitObject)
Definition Hologram.c:1219
const float SMALL_PROJECTION_RADIUS
Definition Hologram.c:45
bool SetHologramPosition(vector startPosition, float minProjectionDistance, float maxProjectionDistance, inout vector contactPosition)
Sets hologram position based on player and projection distance.
Definition Hologram.c:1165
float GetProjectionRadius()
Definition Hologram.c:1248
Definition ItemBase.c:15
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
ShapeFlags
Definition EnDebug.c:126
static proto bool GetBool(int id, bool reverse=false)
Get value as bool from the given script id.

Перекрестные ссылки Math::Clamp(), CorrectForWatchtower(), vector::Distance(), vector::DistanceSq(), Debug::DrawSphere(), DiagMenu::GetBool(), CfgGameplayHandler::GetDisableIsCollidingBBoxCheck(), GetGame(), GetProjectionPosition(), GetProjectionRadius(), LARGE_PROJECTION_DISTANCE_LIMIT, m_ContactComponent, m_ContactDir, m_FromAdjusted, m_Projection, DayZPhysics::RaycastRV(), SetHologramPosition(), SetIsFloating(), SMALL_PROJECTION_RADIUS и vector::Zero.

Используется в UpdateHologram().

◆ GetProjectionName()

string GetProjectionName ( ItemBase item)
inlineprotected

configuration override

223 {
225 if (m_ProjectionTypename != "")
226 {
228 }
229
230 if (!item)
231 {
232 return "";
233 }
234
235 if (item.CanMakeGardenplot())
236 {
237 return "GardenPlotPlacing";
238 }
239
240 //Camping & Base building
241 if (item.IsInherited( TentBase ) || item.IsBasebuildingKit())
242 {
243 return item.GetType() + "Placing";
244 }
245
246 return item.GetType();
247 }
Definition CarTent.c:2

Перекрестные ссылки m_ProjectionTypename.

Используется в ProjectionBasedOnParent().

◆ GetProjectionOrientation()

vector GetProjectionOrientation ( )
inlineprotected
1454 {
1455 if (m_Projection)
1456 return m_Projection.GetOrientation();
1457
1458 return vector.Zero;
1459 }

Перекрестные ссылки m_Projection и vector::Zero.

Используется в CreateTrigger(), IsCollidingBBox() и RefreshTrigger().

◆ GetProjectionPosition()

vector GetProjectionPosition ( )
inlineprotected
1446 {
1447 if (m_Projection)
1448 return m_Projection.GetPosition();
1449
1450 return vector.Zero;
1451 }

Перекрестные ссылки m_Projection и vector::Zero.

Используется в CorrectMaterialPathName(), CreateTrigger(), GetProjectionEntityPosition(), HeightPlacementCheck(), IsBaseFlat(), IsCollidingZeroPos(), IsPlacementPermitted() и RefreshTrigger().

◆ GetProjectionRadius()

float GetProjectionRadius ( )
inlineprotected
1249 {
1250 float diameter;
1251 float radius;
1253 vector min_max[2];
1254
1257 diameter = diagonal.Length();
1258 radius = diameter / 2;
1259
1260 return radius;
1261 }

Перекрестные ссылки GetCollisionBoxSize() и GetProjectionCollisionBox().

Используется в GetProjectionEntityPosition().

◆ GetProjectionRotation()

vector GetProjectionRotation ( )
inlineprotected
1363 {
1364 return m_Rotation;
1365 }

Перекрестные ссылки m_Rotation.

Используется в AlignProjectionOnTerrain().

◆ GetRightCloseProjectionVector()

vector GetRightCloseProjectionVector ( )
inlineprotected
1047 {
1048 vector min_max[2];
1050 min_max[1][1] = min_max[0][1];
1051 min_max[1][2] = min_max[0][2];
1052
1053 return min_max[1];
1054 }

Перекрестные ссылки GetProjectionCollisionBox().

Используется в IsBaseViable(), IsInTerrain() и IsUnderwater().

◆ GetRightFarProjectionVector()

vector GetRightFarProjectionVector ( )
inlineprotected
1066 {
1067 vector min_max[2];
1069 min_max[1][1] = min_max[0][1];
1070
1071 return min_max[1];
1072 }

Перекрестные ссылки GetProjectionCollisionBox().

Используется в IsBaseViable(), IsInTerrain() и IsUnderwater().

◆ GetUpdatePosition()

bool GetUpdatePosition ( )
inlineprotected
1269 {
1270 return m_UpdatePosition;
1271 }

Перекрестные ссылки m_UpdatePosition.

Используется в UpdateHologram().

◆ HeightPlacementCheck()

bool HeightPlacementCheck ( )
inlineprotected

Checks height relative to player's position.

822 {
824 return true;
825 if ( GetProjectionEntity() ) //simple height check
826 {
827 vector playerpos = m_Player.GetPosition();
829 float delta1 = playerpos[1] - projectionpos[1];
830
832 {
833 #ifdef DIAG_DEVELOPER
834 DebugText("HeightPlacementCheck(must be true): ", true, false, " | Height difference between item and player is larger than " + DEFAULT_MAX_PLACEMENT_HEIGHT_DIFF);
835 #endif
836 return false;
837 }
838 }
839 #ifdef DIAG_DEVELOPER
840 DebugText("HeightPlacementCheck(must be true): ", true, true);
841 #endif
842 return true;
843 }
static bool GetDisableHeightPlacementCheck()
Definition CfgGameplayHandler.c:297
static const float DEFAULT_MAX_PLACEMENT_HEIGHT_DIFF
Definition Hologram.c:52

Перекрестные ссылки DEFAULT_MAX_PLACEMENT_HEIGHT_DIFF, CfgGameplayHandler::GetDisableHeightPlacementCheck(), GetProjectionEntity(), GetProjectionPosition() и m_Player.

Используется в EvaluateCollision().

◆ HideWhenClose()

vector HideWhenClose ( vector pos)
inlineprotected
1433 {
1434 //if the hologram is too close to player when he looks to the sky, send the projection to away
1435 vector cam_dir = GetGame().GetCurrentCameraDirection();
1436
1437 if( cam_dir[1] > LOOKING_TO_SKY )
1438 {
1439 pos = "0 0 0";
1440 }
1441
1442 return pos;
1443 }
const float LOOKING_TO_SKY
Definition Hologram.c:51

Перекрестные ссылки GetGame() и LOOKING_TO_SKY.

Используется в SetOnGround().

◆ IsBaseFlat()

bool IsBaseFlat ( vector contact_pos_left_close,
vector contact_pos_right_close,
vector contact_pos_left_far,
vector contact_pos_right_far )
inlineprotected

Перекрестные ссылки Math::AbsFloat(), GetProjectionPosition() и m_SlopeTolerance.

Используется в IsBaseViable().

◆ IsBaseIntact()

bool IsBaseIntact ( Object under_left_close,
Object under_right_close,
Object under_left_far,
Object under_right_far )
inlineprotected
701 {
703 #ifdef DIAG_DEVELOPER
704 DebugText("IsBaseIntact(must be true and all equal): ", true, isTrue, " | ulc: " + Object.GetDebugName(under_left_close) + " | urc: " + Object.GetDebugName(under_right_close) + " | ulf: " + Object.GetDebugName(under_left_far) + " | urf: " + Object.GetDebugName(under_right_far));
705 if (!isTrue)
706 {
710 conditions.Insert(under_left_far == null);
712
713 int amountOfNull = 0;
714 if (!under_left_close)
715 ++amountOfNull;
717 ++amountOfNull;
718 if (!under_left_far)
719 ++amountOfNull;
720 if (!under_right_far)
721 ++amountOfNull;
722
723 if ( amountOfNull < 3 )
724 for ( int i = 0; i < conditions.Count(); ++i)
726
728 }
729 #endif
730
731 return isTrue;
732 }
Definition ObjectTyped.c:2

Используется в IsBaseViable().

◆ IsBaseStatic()

bool IsBaseStatic ( Object objectToCheck)
inlineprotected
683 {
684 //check if the object below hologram is dynamic object. Dynamic objects like barrels can be taken to hands
685 //and item which had been placed on top of them, would stay floating in the air
686 #ifdef DIAG_DEVELOPER
687 if (objectToCheck == null)
688 DebugText("IsBaseStatic(must be true): ", true, true, " | objectToCheck is null (this is good)");
689 else
690 DebugText("IsBaseStatic(must be true): ", true, IsObjectStatic(objectToCheck));
691 #endif
693 }
bool IsObjectStatic(Object obj)
Definition Hologram.c:695

Перекрестные ссылки IsObjectStatic().

Используется в IsBaseViable().

◆ IsBaseViable()

bool IsBaseViable ( )
inlineprotected
588 {
589 //This function is not required to solve server-side fixes for clipping, saves calculations and potential false negatives
590 if (GetGame().IsServer() && GetGame().IsMultiplayer())
591 return true;
592
594 return true;
595
596
597
600
603
606
609
630
631 //Not sure what the intention here was before, but it boiled down to a very bloated version of what you see here right now
633 if (results_left_close.Count() > 0)
635
637 if (results_right_close.Count() > 0)
639
641 if (results_left_far.Count() > 0)
643
645 if (results_right_far.Count() > 0)
647
649 }
static bool GetDisableIsBaseViableCheck()
Definition CfgGameplayHandler.c:282
vector GetRightFarProjectionVector()
Definition Hologram.c:1065
vector GetLeftCloseProjectionVector()
Definition Hologram.c:1038
bool IsBaseStatic(Object objectToCheck)
Definition Hologram.c:682
const vector PLACEMENT_RC_END_OFFSET
Definition Hologram.c:19
const vector PLACEMENT_RC_START_OFFSET
Definition Hologram.c:18
bool IsBaseFlat(vector contact_pos_left_close, vector contact_pos_right_close, vector contact_pos_left_far, vector contact_pos_right_far)
Definition Hologram.c:786
bool IsBaseIntact(Object under_left_close, Object under_right_close, Object under_left_far, Object under_right_far)
Definition Hologram.c:700
vector GetRightCloseProjectionVector()
Definition Hologram.c:1046
vector GetLeftFarProjectionVector()
Definition Hologram.c:1056

Перекрестные ссылки CfgGameplayHandler::GetDisableIsBaseViableCheck(), GetGame(), GetLeftCloseProjectionVector(), GetLeftFarProjectionVector(), GetRightCloseProjectionVector(), GetRightFarProjectionVector(), IsBaseFlat(), IsBaseIntact(), IsBaseStatic(), m_Projection, PLACEMENT_RC_END_OFFSET, PLACEMENT_RC_START_OFFSET и DayZPhysics::RaycastRV().

Используется в EvaluateCollision().

◆ IsBehindObstacle()

bool IsBehindObstacle ( )
inlineprotected

DEPRECATED.

676 {
677 ErrorEx("Deprecated check - do not use", ErrorExSeverity.WARNING);
678 return false;
679 }

Перекрестные ссылки ErrorEx.

◆ IsClippingRoof()

bool IsClippingRoof ( )
inlineprotected
476 {
478 return false;
479 if (GetGame().IsServer() && GetGame().IsMultiplayer())
480 return false;
481
482 //Some locations allow you to look up and attempt placing the hologram on the bottom side of a floor - most notably the floors of a watchtower
483 //This check also prevents some very unnatural placements
484
485 bool b1 = m_Projection.GetPosition()[1] > GetGame().GetCurrentCameraPosition()[1];
486 bool b2 = false;
487 #ifdef DIAG_DEVELOPER
488 vector from, to;
489 #endif
490 if (m_Projection.DoPlacingHeightCheck())
491 {
493 #ifdef DIAG_DEVELOPER
494 MiscGameplayFunctions.IsUnderRoofFromToCalculation(m_Projection, from, to);
495 DrawArrow(from, to, !b2);
496 #endif
497 }
498
499 #ifdef DIAG_DEVELOPER
500 DebugText("IsClippingRoof: ", false, b1, " | (projection height) " + m_Projection.GetPosition()[1] + " > (camera height) " + GetGame().GetCurrentCameraPosition()[1]);
501 DebugText("IsClippingRoof: ", false, b2, " | (DoPlacingHeightCheck) " + m_Projection.DoPlacingHeightCheck() + " && (IsUnderRoof) " + MiscGameplayFunctions.IsUnderRoof(m_Projection) + " | from: " + from[1] + " | to: " + to[1]);
502 #endif
503
504 return b1 || b2;
505 }
static bool GetDisableIsClippingRoofCheck()
Definition CfgGameplayHandler.c:277
Definition constants.c:638
const float ROOF_CHECK_RAYCAST_DIST
Definition constants.c:965

Перекрестные ссылки CfgGameplayHandler::GetDisableIsClippingRoofCheck(), GetGame(), m_Projection и GameConstants::ROOF_CHECK_RAYCAST_DIST.

Используется в EvaluateCollision().

◆ IsColliding()

bool IsColliding ( )
inlineprotected
1325 {
1326 return m_IsColliding;
1327 }
bool m_IsColliding
Definition Hologram.c:27

Перекрестные ссылки m_IsColliding.

Используется в CorrectMaterialPathName().

◆ IsCollidingAngle()

bool IsCollidingAngle ( )
inlineprotected
508 {
510 return false;
511 vector projection_orientation = m_Projection.GetOrientation();
513 #ifdef DIAG_DEVELOPER
514 DebugText("IsCollidingAngle: ", false, isTrue, " | (proj pitch) " + Math.AbsFloat( projection_orientation[1] ) + " > (pitch limit) " + m_YawPitchRollLimit[1] + " | (proj roll) " + Math.AbsFloat( projection_orientation[2] ) + " > (roll limit) " + m_YawPitchRollLimit[2]);
515 #endif
516
517 return isTrue;
518 }
static bool GetDisableIsCollidingAngleCheck()
Definition CfgGameplayHandler.c:307

Перекрестные ссылки Math::AbsFloat(), CfgGameplayHandler::GetDisableIsCollidingAngleCheck(), m_Projection и m_YawPitchRollLimit.

Используется в EvaluateCollision().

◆ IsCollidingBBox()

bool IsCollidingBBox ( ItemBase action_item = null)
inlineprotected
541 {
543 return false;
544
546 vector relativeOffset; //we need to lift BBox, because it is calculated from the bottom of projection, and not from the middle
547 vector absoluteOffset = "0 0.05 0"; //we need to lift BBox even more, because it colliddes with house floors due to various reasons (probably geometry or float imperfections)
550 vector minMax[2];
553
555 relativeOffset[1] = (minMax[1][1] - minMax[0][1]) * 0.5;
560
561 if (action_item)
563
564 //add is construction check
565 // Base building objects behave in a way that causes this test to generate false positives
567 #ifdef DIAG_DEVELOPER
568 if ( DiagMenu.GetBool(DiagMenuIDs.MISC_HOLOGRAM) )
569 {
570 string text = "";
571 foreach (Object object: collidedObjects)
572 text += " | " + Object.GetDebugName(object);
573
574 DebugText("IsCollidingBBox: ", false, isTrue, text);
575
576 int color = 0x01FFFFFF;
577 if (isTrue)
578 color = 0x33F22613;
579
581 }
582 #endif
583
584 return isTrue;
585 }
void DrawDebugCollisionBox(vector min_max[2], int color)
Definition Construction.c:1162
override string GetDebugName()
Definition dayzplayer.c:1170

Перекрестные ссылки DrawDebugCollisionBox(), DiagMenu::GetBool(), GetCollisionBoxSize(), CfgGameplayHandler::GetDisableIsCollidingBBoxCheck(), GetGame(), GetProjectionCollisionBox(), GetProjectionOrientation(), m_Player и m_Projection.

Используется в EvaluateCollision().

◆ IsCollidingGPlot()

bool IsCollidingGPlot ( )
inlineprotected
652 {
654 return false;
655
656 #ifdef DIAG_DEVELOPER
657 DebugText("IsCollidingGPlot: ", false, m_IsCollidingGPlot);
658 #endif
659
660 return m_IsCollidingGPlot;
661 }
static bool GetDisableIsCollidingGPlotCheck()
Definition CfgGameplayHandler.c:312
bool m_IsCollidingGPlot
Definition Hologram.c:28

Перекрестные ссылки CfgGameplayHandler::GetDisableIsCollidingGPlotCheck() и m_IsCollidingGPlot.

Используется в EvaluateCollision().

◆ IsCollidingPlayer()

bool IsCollidingPlayer ( )
inlineprotected
1338 {
1340 return false;
1341 #ifdef DIAG_DEVELOPER
1342 DebugText("IsCollidingPlayer: ", false, m_IsCollidingPlayer);
1343 #endif
1344 return m_IsCollidingPlayer;
1345 }
static bool GetDisableIsCollidingPlayerCheck()
Definition CfgGameplayHandler.c:272
bool m_IsCollidingPlayer
Definition Hologram.c:30

Перекрестные ссылки CfgGameplayHandler::GetDisableIsCollidingPlayerCheck() и m_IsCollidingPlayer.

Используется в EvaluateCollision().

◆ IsCollidingZeroPos()

bool IsCollidingZeroPos ( )
inlineprotected
664 {
665 vector origin = Vector(0, 0, 0);
667 #ifdef DIAG_DEVELOPER
668 DebugText("IsCollidingZeroPos: ", false, isTrue);
669 #endif
670
671 return isTrue;
672 }

Перекрестные ссылки GetProjectionPosition() и Vector().

Используется в EvaluateCollision().

◆ IsFenceOrWatchtowerKit()

bool IsFenceOrWatchtowerKit ( )
inlineprotected
1215 {
1216 return m_Parent.IsBasebuildingKit() || m_Parent.IsInherited(TentBase);
1217 }
override bool IsBasebuildingKit()
Definition KitBase.c:11

Перекрестные ссылки ItemBase::IsBasebuildingKit() и m_Parent.

◆ IsFloating()

bool IsFloating ( )
inlineprotected
1317 {
1318 #ifdef DIAG_DEVELOPER
1319 DebugText("IsFloating: ", false, m_IsFloating);
1320 #endif
1321 return m_IsFloating;
1322 }
bool m_IsFloating
Definition Hologram.c:31

Перекрестные ссылки m_IsFloating.

Используется в CorrectMaterialPathName(), EvaluateCollision() и SetProjectionPosition().

◆ IsHidden()

bool IsHidden ( )
inlineprotected
1330 {
1331 #ifdef DIAG_DEVELOPER
1332 DebugText("IsHidden: ", false, m_IsHidden);
1333 #endif
1334 return m_IsHidden;
1335 }
bool m_IsHidden
Definition Hologram.c:33

Перекрестные ссылки m_IsHidden.

Используется в EvaluateCollision().

◆ IsInTerrain()

bool IsInTerrain ( )
inlineprotected
890 {
892 return false;
893 vector fromHeightOffset = "0 0.3 0";
894 vector toHeightOffset = "0 1 0";
895
898
901
904
907
912
917
922
923 #ifdef DIAG_DEVELOPER
924 // I'd rather duplicate this on internal than introduce (even) more raycasts than needed on retail..
933 bool isTrue = ( lc || rc || lf || rf );
934 string text = "";
935 if (isTrue)
936 {
937 if (lc)
938 text += " | lc";
939 if (rc)
940 text += " | rc";
941 if (lf)
942 text += " | lf";
943 if (rf)
944 text += " | rf";
945
946 if (lcO.Count() > 0)
947 text += " | lcO: " + lcO[0];
948 if (rcO.Count() > 0)
949 text += " | rcO: " + rcO[0];
950 if (lfO.Count() > 0)
951 text += " | lfO: " + lfO[0];
952 if (rfO.Count() > 0)
953 text += " | rfO: " + rfO[0];
954
955 array<bool> conditions = {!lc, !rc, !lf, !rf};
957 }
958 DebugText("IsInTerrain: ", false, isTrue, text);
959 #endif
960
962 return true;
963
965 return true;
966
968 return true;
969
971 return true;
972
973 return false;
974 }
static bool GetDisableIsInTerrainCheck()
Definition CfgGameplayHandler.c:287

Перекрестные ссылки CfgGameplayHandler::GetDisableIsInTerrainCheck(), GetLeftCloseProjectionVector(), GetLeftFarProjectionVector(), GetRightCloseProjectionVector(), GetRightFarProjectionVector(), m_Projection и DayZPhysics::RaycastRV().

Используется в EvaluateCollision().

◆ IsObjectStatic()

bool IsObjectStatic ( Object obj)
inlineprotected
696 {
697 return obj.IsBuilding() || obj.IsPlainObject() || (!m_Parent.IsInherited(KitBase) && obj.IsInherited(BaseBuildingBase) && (m_WatchtowerBlockedComponentNames.Find(obj.GetActionComponentName(m_ContactComponent, LOD.NAME_VIEW)) == -1));
698 }
Definition Fence.c:2
Definition FenceKit.c:2

Перекрестные ссылки m_ContactComponent, m_Parent, m_WatchtowerBlockedComponentNames и LOD::NAME_VIEW.

Используется в IsBaseStatic().

◆ IsPlacementPermitted()

bool IsPlacementPermitted ( )
inlineprotected

Checks if the item can be legally placed (usually checked by action as well)

808 {
810 return true;
811
813
814 #ifdef DIAG_DEVELOPER
815 DebugText("IsPlacementPermitted(must be true): ", true, isTrue, " (Note: ItemBase::CanBePlaced() return value)");
816 #endif
817 return isTrue;
818 }
static bool GetDisableIsPlacementPermittedCheck()
Definition CfgGameplayHandler.c:302
override bool CanBePlaced(Man player, vector position)
Definition TentBase.c:958

Перекрестные ссылки ItemBase::CanBePlaced(), CfgGameplayHandler::GetDisableIsPlacementPermittedCheck(), GetProjectionPosition(), m_Parent и m_Player.

Используется в EvaluateCollision().

◆ IsProjectionTrap()

bool IsProjectionTrap ( )
inlineprotected
1230 {
1231 return m_Projection.IsInherited( TrapBase ) || m_Projection.IsInherited( TrapSpawnBase );
1232 }

Перекрестные ссылки m_Projection.

◆ IsRestrictedFromAdvancedPlacing()

bool IsRestrictedFromAdvancedPlacing ( )
inlineprivate
1550 {
1551 if (m_Player.IsJumpInProgress())
1552 return true;
1553 if (m_Player.IsSwimming())
1554 return true;
1555 if (m_Player.IsClimbingLadder())
1556 return true;
1557 if (m_Player.IsRaised())
1558 return true;
1559 if (m_Player.IsClimbing())
1560 return true;
1561 if (m_Player.IsRestrained())
1562 return true;
1563 if (m_Player.IsUnconscious())
1564 return true;
1565
1566 return false;
1567 }

Перекрестные ссылки m_Player.

Используется в UpdateHologram().

◆ IsSurfaceSea()

bool IsSurfaceSea ( vector position)
inlineprotected
1082 {
1083 CGame game = GetGame();
1084 return game.SurfaceIsSea( position[0], position[2] );
1085 }
Definition DayZGame.c:885

Перекрестные ссылки GetGame().

◆ IsSurfaceWater()

bool IsSurfaceWater ( vector position)
inlineprotected
1076 {
1077 CGame game = GetGame();
1078 return game.SurfaceIsSea( position[0], position[2] ) || game.SurfaceIsPond( position[0], position[2] );
1079 }

Перекрестные ссылки GetGame().

◆ IsUnderwater()

bool IsUnderwater ( )
inlineprotected
846 {
848 return false;
849 // Fast check middle of object
850 string type;
851 int liquid;
852 g_Game.SurfaceUnderObjectCorrectedLiquid(m_Projection, type, liquid);
853
855 {
856 #ifdef DIAG_DEVELOPER
857 DebugText("IsUnderwater: ", false, true, " | Surface under object is water");
858 #endif
859 return true;
860 }
861
862 // Check every corner of the object
867 float maxSea = g_Game.SurfaceGetSeaLevelMax() + 0.03;
868 bool belowMaxSea = left_close[1] < maxSea || right_close[1] < maxSea || left_far[1] < maxSea || right_far[1] < maxSea;
869
870 #ifdef DIAG_DEVELOPER
871 // I'd rather duplicate this on internal than introduce (even) more raycasts than needed on retail..
872 float lc = g_Game.GetWaterDepth(left_close);
873 float rc = g_Game.GetWaterDepth(right_close);
874 float lf = g_Game.GetWaterDepth(left_far);
875 float rf = g_Game.GetWaterDepth(right_far);
876 bool isTrue = (lc > 0 || rc > 0 || lf > 0 || rf > 0 || belowMaxSea);
877 DebugText("IsUnderwater: ", false, isTrue, " belowMaxSea: " + belowMaxSea + " | (all must be less than zero) | lc: " + lc + " | rc: " + rc + " | lf: " + lf + " | rf: " + rf);
878 //DebugText("Corner Height: ", false, true, " lc: " + left_close[1] + " | rc: " + right_close[1] + " | lf: " + left_far[1] + " | rf: " + right_far[1]);
879 if (isTrue)
880 {
881 array<bool> conditions = {lc <= 0, rc <= 0, lf <= 0, rf <= 0};
883 }
884 #endif
885
886 return (belowMaxSea || g_Game.GetWaterDepth(left_close) > 0 || g_Game.GetWaterDepth(right_close) > 0 || g_Game.GetWaterDepth(left_far) > 0 || g_Game.GetWaterDepth(right_far) > 0);
887 }
static bool GetDisableIsUnderwaterCheck()
Definition CfgGameplayHandler.c:292
const int LIQUID_GROUP_WATER
Definition constants.c:534
const int LIQUID_SNOW
Definition constants.c:526

Перекрестные ссылки g_Game, CfgGameplayHandler::GetDisableIsUnderwaterCheck(), GetLeftCloseProjectionVector(), GetLeftFarProjectionVector(), GetRightCloseProjectionVector(), GetRightFarProjectionVector(), LIQUID_GROUP_WATER, LIQUID_SNOW и m_Projection.

Используется в EvaluateCollision().

◆ PlaceEntity()

EntityAI PlaceEntity ( EntityAI entity_for_placing)
inlineprotected
994 {
995 //string-based comparison
996 if (entity_for_placing.IsInherited(TentBase) || entity_for_placing.IsBasebuildingKit() )
997 {
998 return entity_for_placing;
999 }
1000
1001 if (m_Projection.IsInherited(GardenPlotPlacing))
1002 {
1003 Class.CastTo(entity_for_placing, GetGame().CreateObjectEx( "GardenPlot", m_Projection.GetPosition(), ECE_OBJECT_SWAP ));
1004 return entity_for_placing;
1005 }
1006
1007 //inheritance comparison
1008 if( !GetProjectionEntity().IsKindOf( m_Parent.GetType() ))
1009 {
1010 Class.CastTo(entity_for_placing, GetGame().CreateObjectEx( m_Projection.GetType(), m_Projection.GetPosition(), ECE_OBJECT_SWAP ));
1011 }
1012
1013 return entity_for_placing;
1014 }
const int ECE_OBJECT_SWAP
Definition CentralEconomy.c:38

Перекрестные ссылки Class::CastTo(), ECE_OBJECT_SWAP, GetGame(), GetProjectionEntity(), m_Parent и m_Projection.

◆ ProjectionBasedOnParent()

string ProjectionBasedOnParent ( )
inlineprotected
218 {
220 }
string GetProjectionName(ItemBase item)
Definition Hologram.c:222

Перекрестные ссылки GetProjectionName() и m_Parent.

Используется в Hologram().

◆ RefreshTrigger()

void RefreshTrigger ( )
inlineprotected
387 {
388 vector min_max[2];
390
393 m_ProjectionTrigger.SetExtents(min_max[0], min_max[1]);
394 }

Перекрестные ссылки GetProjectionCollisionBox(), GetProjectionOrientation(), GetProjectionPosition() и m_ProjectionTrigger.

Используется в Hologram() и UpdateHologram().

◆ RefreshVisual()

void RefreshVisual ( )
inlineprotected
1498 {
1499 if (m_Projection)
1500 {
1501 static const string textureName = "#(argb,8,8,3)color(0.5,0.5,0.5,0.75,ca)";
1502
1503 int hidden_selection = 0;
1504 string selection_to_refresh;
1505 string config_material = string.Format("CfgVehicles %1 hologramMaterial", m_Projection.GetType());
1506 string hologram_material = GetGame().ConfigGetTextOut(config_material);
1507 string config_model = string.Format("CfgVehicles %1 hologramMaterialPath", m_Projection.GetType());
1508 string hologram_material_path = string.Format("%1\\%2%3", GetGame().ConfigGetTextOut(config_model), hologram_material, CorrectMaterialPathName());
1509
1510 for (int i = 0; i < m_SelectionsToRefresh.Count(); ++i)
1511 {
1514 m_Projection.SetObjectTexture(hidden_selection, textureName);
1516 }
1517 }
1518 }
string CorrectMaterialPathName()
Definition Hologram.c:1521
ref set< string > m_SelectionsToRefresh
Definition Hologram.c:59
int GetHiddenSelection(string selection)
Definition Hologram.c:1474

Перекрестные ссылки CorrectMaterialPathName(), GetGame(), GetHiddenSelection(), m_Projection и m_SelectionsToRefresh.

Используется в CreateTrigger() и UpdateHologram().

◆ SetAnimations()

void SetAnimations ( )
inlineprotected
179 {
180 if ( m_Projection.HasAnimation( ANIMATION_PLACING ) )
181 {
182 m_Projection.SetAnimationPhase( ANIMATION_PLACING, 0 );
184
185 if ( m_Projection.HasAnimation( ANIMATION_INVENTORY ) )
186 {
187 m_Projection.SetAnimationPhase( ANIMATION_INVENTORY, 1 );
188 }
189 }
190 else
191 {
194 }
195 }
const string SELECTION_INVENTORY
Definition Hologram.c:43
const string SELECTION_PLACING
Definition Hologram.c:42
void SetSelectionToRefresh(string selection)
Definition Hologram.c:1485
const string ANIMATION_INVENTORY
Definition Hologram.c:41
void UpdateSelections()
Definition Hologram.c:198
const string ANIMATION_PLACING
Definition Hologram.c:40

Перекрестные ссылки ANIMATION_INVENTORY, ANIMATION_PLACING, m_Projection, SELECTION_INVENTORY, SELECTION_PLACING, SetSelectionToRefresh() и UpdateSelections().

Используется в Hologram().

◆ SetHologramPosition()

bool SetHologramPosition ( vector startPosition,
float minProjectionDistance,
float maxProjectionDistance,
inout vector contactPosition )
inlineprotected

Sets hologram position based on player and projection distance.

Аргументы
startPositionstart position
minProjectionDistancelower distance limit
maxProjectionDistancehigher distance limit
inoutcontactPosition is position of the hologram contact with ground/object
Возвращает
true if hologram is floating (is on the near or far edge)
1166 {
1169
1170 #ifdef DIAG_DEVELOPER
1171 DebugText("SetHologramPosition::startPosition: ", false, m_IsHidden, string.Format(" | %1", startPosition));
1172 DebugText("SetHologramPosition::contactPosition [in]: ", false, m_IsHidden, string.Format(" | %1", contactPosition));
1173 DebugText("SetHologramPosition::minProjectionDistance: ", false, m_IsHidden, string.Format(" | %1", minProjectionDistance));
1174 DebugText("SetHologramPosition::maxProjectionDistance: ", false, m_IsHidden, string.Format(" | %1", maxProjectionDistance));
1175 DebugText("SetHologramPosition::playerToProjectionDistance: ", false, m_IsHidden, string.Format(" | %1", playerToProjectionDistance));
1176 #endif
1177
1178 //hologram is at min distance from player
1180 {
1182 playerToProjection.Normalize();
1183 //prevents the hologram to go underground/floor while hologram exceeds minProjectionDistance
1185
1187
1188 #ifdef DIAG_DEVELOPER
1189 DebugText("SetHologramPosition::contactPosition[out] (< minProjectDistance): ", false, m_IsHidden, string.Format(" | %1", contactPosition));
1190 #endif
1191
1192 return true;
1193 }
1194 //hologram is at max distance from player
1196 {
1198 playerToProjection.Normalize();
1199 //prevents the hologram to go underground/floor while hologram exceeds maxProjectionDistance
1201
1203
1204 #ifdef DIAG_DEVELOPER
1205 DebugText("SetHologramPosition::contactPosition[out] (< maxProjectionDistance): ", false, m_IsHidden, string.Format(" | %1", contactPosition));
1206 #endif
1207
1208 return true;
1209 }
1210
1211 return false;
1212 }
const float PROJECTION_TRANSITION_MIN
Definition Hologram.c:49
const float PROJECTION_TRANSITION_MAX
Definition Hologram.c:50

Перекрестные ссылки vector::Distance(), m_IsHidden, PROJECTION_TRANSITION_MAX и PROJECTION_TRANSITION_MIN.

Используется в GetProjectionEntityPosition().

◆ SetIsColliding()

void SetIsColliding ( bool is_colliding)
inlineprotected
1294 {
1295 #ifdef DIAG_DEVELOPER
1296 DebugText("Is colliding: ", false, is_colliding, m_CollisionDetails);
1297 #endif
1299 }

Перекрестные ссылки m_IsColliding.

Используется в EvaluateCollision().

◆ SetIsCollidingGPlot()

void SetIsCollidingGPlot ( bool is_colliding_gplot)
inlineprotected
1312 {
1314 }

Перекрестные ссылки m_IsCollidingGPlot.

◆ SetIsCollidingPlayer()

void SetIsCollidingPlayer ( bool is_colliding)
inlineprotected
1307 {
1309 }

Перекрестные ссылки m_IsCollidingPlayer.

◆ SetIsFloating()

void SetIsFloating ( bool is_floating)
inlineprotected
1289 {
1291 }

Перекрестные ссылки m_IsFloating.

Используется в GetProjectionEntityPosition().

◆ SetIsHidden()

void SetIsHidden ( bool is_hidden)
inlineprotected
1302 {
1304 }

Перекрестные ссылки m_IsHidden.

◆ SetOnGround()

vector SetOnGround ( vector position)
inlineprotected
1378 {
1380 vector ground;
1383
1385
1386 vector to = from + ground;
1388
1390 rayInput.flags = CollisionFlags.ALLOBJECTS;
1392
1394 {
1396 for (int i = 0; i < results.Count(); i++)
1397 {
1398 res = results.Get(i);
1399 if (res.entry || (!res.obj && !res.parent))
1400 {
1401 contact_pos = res.pos;
1402 break;
1403 }
1404 }
1405 }
1406
1407 //LOS check
1408 if (contact_pos != "0 0 0")
1409 {
1412 int check_component = -1;
1414 to = contact_pos;
1415 to[1] = to[1] + 0.1;
1417
1419 {
1420 if ((hit_object.Count() > 0)&& (!hit_object[0].IsInherited(Watchtower) || (hit_object[0].IsInherited(Watchtower) && (m_WatchtowerIgnoreComponentNames.Find(hit_object[0].GetActionComponentName(check_component, LOD.NAME_VIEW)) == -1))))
1421 {
1422 contact_pos = "0 0 0";
1423 }
1424 }
1425 }
1426
1428
1429 return contact_pos;
1430 }
static proto bool RaycastRVProxy(notnull RaycastRVParams in, out notnull array< ref RaycastRVResult > results, array< Object > excluded=null)
vector HideWhenClose(vector pos)
Definition Hologram.c:1432
float GetProjectionDiameter()
Definition Hologram.c:1234
const float SMALL_PROJECTION_GROUND
Definition Hologram.c:46
Definition DayZPhysics.c:50
Definition DayZPhysics.c:99
CollisionFlags
Definition EnDebug.c:141
static proto float Max(float x, float y)
Returns bigger of two given values.

Перекрестные ссылки GetProjectionDiameter(), HideWhenClose(), m_FromAdjusted, m_Player, m_Projection, m_WatchtowerIgnoreComponentNames, Math::Max(), LOD::NAME_VIEW, DayZPhysics::RaycastRV(), DayZPhysics::RaycastRVProxy(), SMALL_PROJECTION_GROUND и Vector().

Используется в SetProjectionPosition().

◆ SetProjectionEntity()

void SetProjectionEntity ( EntityAI projection)
inlineprotected
1279 {
1281 }

Перекрестные ссылки m_Projection.

Используется в Hologram().

◆ SetProjectionOrientation()

void SetProjectionOrientation ( vector orientation)
inlineprotected
1358 {
1359 m_Projection.SetOrientation(orientation);
1360 }

Перекрестные ссылки m_Projection.

Используется в UpdateHologram().

◆ SetProjectionPosition()

void SetProjectionPosition ( vector position)
inlineprotected
1348 {
1349 m_Projection.SetPosition( position );
1350
1351 if (IsFloating())
1352 {
1353 m_Projection.SetPosition(SetOnGround(position));
1354 }
1355 }
vector SetOnGround(vector position)
Definition Hologram.c:1377

Перекрестные ссылки IsFloating(), m_Projection и SetOnGround().

Используется в UpdateHologram().

◆ SetSelectionToRefresh() [1/2]

void SetSelectionToRefresh ( array< string > selection)
inlineprotected
1492 {
1493 foreach (string s : selection)
1494 m_SelectionsToRefresh.Insert(s);
1495 }

Перекрестные ссылки m_SelectionsToRefresh.

◆ SetSelectionToRefresh() [2/2]

void SetSelectionToRefresh ( string selection)
inlineprotected
1486 {
1487 m_SelectionsToRefresh.Insert( selection );
1488 }

Перекрестные ссылки m_SelectionsToRefresh.

Используется в SetAnimations().

◆ SetUpdatePosition()

void SetUpdatePosition ( bool state)
inlineprotected
1264 {
1266 }

Перекрестные ссылки m_UpdatePosition.

◆ SmoothProjectionMovement()

vector SmoothProjectionMovement ( vector y_p_r,
float timeslice )
inlineprotected
349 {
350 if ( m_y_p_r_previous )
351 {
352 if ( Math.AbsFloat( y_p_r[0] - m_y_p_r_previous[0] ) > 100 )
353 {
354 if ( y_p_r[0] > 0 )
355 {
356 m_y_p_r_previous[0] = m_y_p_r_previous[0] + 360;
357 }
358
359 if ( y_p_r[0] < 0 )
360 {
362 }
363 }
364
365 y_p_r[0] = Math.Lerp( m_y_p_r_previous[0], y_p_r[0], 15 * timeslice );
366 y_p_r[1] = Math.Lerp( m_y_p_r_previous[1], y_p_r[1], 15 * timeslice );
367 y_p_r[2] = Math.Lerp( m_y_p_r_previous[2], y_p_r[2], 15 * timeslice );
368 }
369
371
372 return y_p_r;
373 }
vector m_y_p_r_previous
Definition Hologram.c:37
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.

Перекрестные ссылки Math::AbsFloat(), Math::Lerp() и m_y_p_r_previous.

Используется в AlignProjectionOnTerrain().

◆ SubtractProjectionRotation()

void SubtractProjectionRotation ( float subtraction)
inlineprotected
1373 {
1375 }

Перекрестные ссылки m_Rotation.

◆ UpdateHologram()

void UpdateHologram ( float timeslice)
inlineprotected
257 {
258 if (!m_Parent)
259 {
260 m_Player.TogglePlacingLocal();
261
262 return;
263 }
264
266 {
267 m_Player.TogglePlacingLocal();
268
269 return;
270 }
271
272 if (!GetUpdatePosition())
273 return;
274
275
276 #ifdef DIAG_DEVELOPER
279 #endif
280
281 // update hologram position
284
289
290 m_Projection.OnHologramBeingPlaced(m_Player);
291 }
void SetProjectionPosition(vector position)
Definition Hologram.c:1347
void EvaluateCollision(ItemBase action_item=null)
Definition Hologram.c:432
bool IsRestrictedFromAdvancedPlacing()
Definition Hologram.c:1549
vector AlignProjectionOnTerrain(float timeslice)
Definition Hologram.c:293
vector GetProjectionEntityPosition(PlayerBase player)
Definition Hologram.c:1087
bool GetUpdatePosition()
Definition Hologram.c:1268
void CheckPowerSource()
Definition Hologram.c:976
void SetProjectionOrientation(vector orientation)
Definition Hologram.c:1357

Перекрестные ссылки AlignProjectionOnTerrain(), CheckPowerSource(), DestroyDebugCollisionBox(), EvaluateCollision(), GetProjectionEntityPosition(), GetUpdatePosition(), IsRestrictedFromAdvancedPlacing(), m_Parent, m_Player, m_Projection, RefreshTrigger(), RefreshVisual(), SetProjectionOrientation() и SetProjectionPosition().

◆ UpdateSelections()

void UpdateSelections ( )
inlineprotected
199 {
200 string cfg_access = "CfgVehicles " + m_Projection.GetType() + " AnimationSources ";
201
202 if ( GetGame().ConfigIsExisting(cfg_access) )
203 {
204 int cfg_access_count = g_Game.ConfigGetChildrenCount(cfg_access);
205
206 for ( int i = 0; i < cfg_access_count; ++i )
207 {
208 string found_anim;
209 GetGame().ConfigGetChildName(cfg_access, i, found_anim);
210
211 float anim_phase = m_Parent.GetAnimationPhase(found_anim);
212 m_Projection.SetAnimationPhase(found_anim, anim_phase);
213 }
214 }
215 }

Перекрестные ссылки g_Game, GetGame(), m_Parent и m_Projection.

Используется в SetAnimations().

Поля

◆ ANIMATION_INVENTORY

const string ANIMATION_INVENTORY = "Inventory"
protected

Используется в SetAnimations().

◆ ANIMATION_PLACING

const string ANIMATION_PLACING = "Placing"
protected

Используется в SetAnimations().

◆ DEFAULT_MAX_PLACEMENT_HEIGHT_DIFF

const float DEFAULT_MAX_PLACEMENT_HEIGHT_DIFF = 1.5
staticprotected

Используется в HeightPlacementCheck().

◆ DISTANCE_SMALL_PROJECTION

const float DISTANCE_SMALL_PROJECTION = 1
protected

◆ LARGE_PROJECTION_DISTANCE_LIMIT

const float LARGE_PROJECTION_DISTANCE_LIMIT = 6
protected

Deprecated.

Используется в GetProjectionEntityPosition().

◆ LOOKING_TO_SKY

const float LOOKING_TO_SKY = 0.75
protected

Используется в HideWhenClose().

◆ m_AlignToTerrain

bool m_AlignToTerrain
protected

Используется в AlignProjectionOnTerrain() и Hologram().

◆ m_ContactComponent

int m_ContactComponent
protected

Используется в GetProjectionEntityPosition(), Hologram() и IsObjectStatic().

◆ m_ContactDir

vector m_ContactDir
protected

◆ m_DefaultOrientation

vector m_DefaultOrientation
protected

Используется в GetDefaultOrientation().

◆ m_FromAdjusted

vector m_FromAdjusted
protected

Используется в GetProjectionEntityPosition(), Hologram() и SetOnGround().

◆ m_IsColliding

bool m_IsColliding
protected

Используется в IsColliding() и SetIsColliding().

◆ m_IsCollidingGPlot

bool m_IsCollidingGPlot
protected

Используется в IsCollidingGPlot() и SetIsCollidingGPlot().

◆ m_IsCollidingPlayer

bool m_IsCollidingPlayer
protected

Используется в IsCollidingPlayer() и SetIsCollidingPlayer().

◆ m_IsFloating

bool m_IsFloating
protected

Используется в IsFloating() и SetIsFloating().

◆ m_IsHidden

bool m_IsHidden
protected

Используется в IsHidden(), SetHologramPosition() и SetIsHidden().

◆ m_IsSlope

bool m_IsSlope
protected

◆ m_Parent

◆ m_Player

◆ m_Projection

◆ m_ProjectionTrigger

ProjectionTrigger m_ProjectionTrigger
protected

Используется в CreateTrigger(), Hologram(), RefreshTrigger() и ~Hologram().

◆ m_ProjectionTypename

string m_ProjectionTypename
protected

Используется в GetProjectionName() и Hologram().

◆ m_Rotation

vector m_Rotation
protected

◆ m_SelectionsToRefresh

ref set<string> m_SelectionsToRefresh = new set<string>
protected

◆ m_SlopeTolerance

float m_SlopeTolerance
protected

Используется в Hologram() и IsBaseFlat().

◆ m_UpdatePosition

bool m_UpdatePosition
protected

Используется в GetUpdatePosition(), Hologram() и SetUpdatePosition().

◆ m_WatchtowerBlockedComponentNames

ref array<string> m_WatchtowerBlockedComponentNames = new array<string>
staticprotected

Используется в Hologram() и IsObjectStatic().

◆ m_WatchtowerIgnoreComponentNames

ref array<string> m_WatchtowerIgnoreComponentNames = new array<string>
staticprotected

Используется в CorrectForWatchtower(), Hologram() и SetOnGround().

◆ m_y_p_r_previous

vector m_y_p_r_previous
protected

Используется в SmoothProjectionMovement().

◆ m_YawPitchRollLimit

vector m_YawPitchRollLimit
protected

Используется в Hologram() и IsCollidingAngle().

◆ PLACEMENT_RC_END_OFFSET

const vector PLACEMENT_RC_END_OFFSET = "0 -2 0"
protected

Используется в IsBaseViable().

◆ PLACEMENT_RC_START_OFFSET

const vector PLACEMENT_RC_START_OFFSET = "0 1 0"
protected

Используется в IsBaseViable().

◆ PROJECTION_TRANSITION_MAX

const float PROJECTION_TRANSITION_MAX = 0.25
protected

Используется в SetHologramPosition().

◆ PROJECTION_TRANSITION_MIN

const float PROJECTION_TRANSITION_MIN = 1
protected

Используется в SetHologramPosition().

◆ SELECTION_INVENTORY

const string SELECTION_INVENTORY = "inventory"
protected

Используется в SetAnimations().

◆ SELECTION_PLACING

const string SELECTION_PLACING = "placing"
protected

Используется в SetAnimations().

◆ SMALL_PROJECTION_GROUND

const float SMALL_PROJECTION_GROUND = 2
protected

Используется в SetOnGround().

◆ SMALL_PROJECTION_RADIUS

const float SMALL_PROJECTION_RADIUS = 1
protected

Используется в GetProjectionEntityPosition().

◆ SPAWN_FLAGS

const int SPAWN_FLAGS = ECE_LOCAL
protected

Используется в CreateTrigger().

◆ SUFFIX_MATERIAL_DEPLOYABLE

const string SUFFIX_MATERIAL_DEPLOYABLE = "_deployable.rvmat"
protected

Используется в CorrectMaterialPathName().

◆ SUFFIX_MATERIAL_POWERED

const string SUFFIX_MATERIAL_POWERED = "_powered.rvmat"
protected

Используется в CorrectMaterialPathName().

◆ SUFFIX_MATERIAL_UNDEPLOYABLE

const string SUFFIX_MATERIAL_UNDEPLOYABLE = "_undeployable.rvmat"
protected

Используется в CorrectMaterialPathName().


Объявления и описания членов класса находятся в файле: