Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс EntityPlacementCallback
+ Граф наследования:EntityPlacementCallback:

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

void EntityPlacementCallback ()
 
void ~EntityPlacementCallback ()
 
void ClearDebugShapes ()
 
override void OnSetup ()
 
override void OnDebug (vector p0, vector p1, bool hasHit, bool found)
 
override bool OnFirstContact (Object other)
 
override bool OnQuery (Object other)
 
override bool OnCollide (Object other)
 

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

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

◆ EntityPlacementCallback()

void EntityPlacementCallback ( )
inlineprivate
10 {
11 }

◆ ~EntityPlacementCallback()

void ~EntityPlacementCallback ( )
inlineprivate
14 {
16 }
void ClearDebugShapes()
Definition EntityPlacementCallback.c:18

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

Методы

◆ ClearDebugShapes()

void ClearDebugShapes ( )
inlineprivate
19 {
20#ifdef DIAG_DEVELOPER
21#ifndef SERVER
22 foreach (auto shape : m_Shapes)
23 {
24 shape.Destroy();
25 shape = null;
26 }
27 m_Shapes.Clear();
28#endif
29#endif
30 }
Definition EntityAI.c:95

Используется в OnSetup() и ~EntityPlacementCallback().

◆ OnCollide()

override bool OnCollide ( Object other)
inlineprivate
143 {
144 if (other.IsScenery())
145 {
146 return false;
147 }
148
149 if (other.IsMan())
150 {
151 return false;
152 }
153
154 if (!other.CanObstruct() && !other.IsTransport())
155 {
156 return false;
157 }
158
159 return true;
160 }

◆ OnDebug()

override void OnDebug ( vector p0,
vector p1,
bool hasHit,
bool found )
inlineprivate
73 {
74#ifdef DIAG_DEVELOPER
75#ifndef SERVER
77
78 int alpha = 0x33000000;
79 int colour = 0x00FF0000;
80 if (!hasHit && found)
81 {
82 colour = 0x000000FF;
83 }
84 else if (!hasHit)
85 {
86 colour = 0x0000FF00;
87 alpha = 0x11000000;
88 }
89
90 shape = Shape.Create(ShapeType.BBOX, colour | alpha, ShapeFlags.NOZBUFFER | ShapeFlags.TRANSP, -m_Extents, m_Extents);
91 shape.SetMatrix(m_Transform);
92 m_Shapes.Insert(shape);
93
94 vector p[2];
95 p[0] = p0;
96 p[1] = p1;
97 shape = Shape.CreateLines(colour | 0xFF000000, ShapeFlags.NOZBUFFER | ShapeFlags.TRANSP, p, 2);
98 m_Shapes.Insert(shape);
99#endif
100#endif
101 }
vector m_Transform[4]
If 'OnDebug' is to be called.
Definition Object.c:21
vector m_Extents
The true center of the bounding box of the object to be dropped in model space.
Definition Object.c:16
Definition EnConvert.c:106
ShapeType
Definition EnDebug.c:116
ShapeFlags
Definition EnDebug.c:126
class DiagMenu Shape
don't call destructor directly. Use Destroy() instead

Перекрестные ссылки m_Extents, m_Transform и Shape.

◆ OnFirstContact()

override bool OnFirstContact ( Object other)
inlineprivate
104 {
105 if (!other.IsTransport())
106 {
107 return false;
108 }
109
110 return true;
111 }

◆ OnQuery()

override bool OnQuery ( Object other)
inlineprivate
114 {
115 if (other.IsScenery())
116 {
117 return false;
118 }
119
120 if (other.IsMan())
121 {
122 return false;
123 }
124
126 if (Class.CastTo(entity, other))
127 {
128 if (entity.IsAnimal() || entity.IsZombie())
129 {
130 return false;
131 }
132 }
133
134 if (other.GetCollisionRadius() < 0.05)
135 {
136 return false;
137 }
138
139 return true;
140 }
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition Building.c:6
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.

Перекрестные ссылки Class::CastTo().

◆ OnSetup()

override void OnSetup ( )
inlineprivate
33 {
34#ifdef DIAG_DEVELOPER
35#ifndef SERVER
36 m_DebugEnabled = DiagMenu.GetBool(DiagMenuIDs.INVENTORY_ENTITY_PLACEMENT_CALLBACK_DEBUG);
37#endif
38#endif
39
41
42 m_DirectionFunc[0] = 1.2;
43 m_DirectionFunc[1] = 0.3;
44
47 {
48 m_OwnerPosition = human.GetBonePositionWS(human.GetBoneIndexByName("Head"));
49
50 HumanInputController hic = human.GetInputController();
51 if (hic)
52 {
53 float headingAngle = hic.GetHeadingAngle() + Math.PI_HALF;
55 m_OwnerDirection[1] = 0.0;
57
59 }
60 else
61 {
62 m_OwnerDirection = human.GetDirection();
63 }
64 }
65 else if (m_Owner)
66 {
67 m_OwnerPosition = m_Owner.GetPosition();
68 m_OwnerDirection = m_Owner.GetDirection();
69 }
70 }
DiagMenuIDs
Definition EDiagMenuIDs.c:2
vector m_DirectionFunc
The size of the boundig box, centered.
Definition Object.c:18
enum ProcessDirectDamageFlags m_Owner
vector m_OwnerDirection
The position of the owner in world space.
Definition Object.c:13
bool m_DebugEnabled
How much should the direction be favoured.
Definition Object.c:20
vector m_OwnerPosition
The owner performing the snap callback.
Definition Object.c:12
Definition EnDebug.c:233
Definition human.c:18
Definition EnMath.c:7
proto vector Normalized()
return normalized vector (keeps orginal vector untouched)
static proto bool GetBool(int id, bool reverse=false)
Get value as bool from the given script id.
static proto float Cos(float angle)
Returns cosinus of angle in radians.
static const float PI_HALF
Definition EnMath.c:14
static proto float Sin(float angle)
Returns sinus of angle in radians.

Перекрестные ссылки Class::CastTo(), ClearDebugShapes(), Math::Cos(), DiagMenu::GetBool(), m_DebugEnabled, m_DirectionFunc, m_Owner, m_OwnerDirection, m_OwnerPosition, vector::Normalized(), Math::PI_HALF и Math::Sin().


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