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

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

SceneObject Init (string obj_name, vector pos)
 
EntityAI GetObject ()
 
string GetName ()
 
bool IsPlayer ()
 
string GetInitScript ()
 
void SetInitScript (string init_script)
 
void EditorShapeUpdatePos ()
 
void EditorShapeSetColor (int color)
 
void EditorShapeSelect ()
 
void EditorShapeDeselect ()
 
vector GetSize ()
 
void EditorShapeAdd ()
 
void EditorShapeRemove ()
 
void EditorLineRemove (SceneObject obj)
 
void EditorLineAdd (SceneObject obj)
 
void LinkEntityAI (EntityAI e)
 
bool IsLinkedWithSceneObject (SceneObject scene_object)
 
void LinkSceneObject (SceneObject scene_object, bool draw_line=true)
 
void UnlinkSceneObject (SceneObject scene_object)
 
void UnlinkAll ()
 
array< SceneObjectGetLinkedSceneObjects ()
 
int GetLinkedSceneObjectsCount ()
 
SceneObject GetLinkedSceneObject (int i)
 
EntityAI GetLinkedObject (int i)
 
void ~SceneObject ()
 
string GetTypeName ()
 
void PlaceOnSurface ()
 
void SetPosition (vector pos)
 
vector GetPosition ()
 
float GetHealth ()
 
float GetMaxHealth ()
 
void SetHealth (float value)
 
string GetPositionAsString ()
 
void SetPositionAsString (string string_pos)
 
float GetRotation ()
 
void SetRotation (float rot)
 
void SceneObjectSynch (Param p)
 
void AddRotation (float add_rot)
 
void AddAttachment (string att_name)
 
bool CanAttachment (EntityAI e)
 
void RemoveAttachment (EntityAI e)
 
array< EntityAIGetAttachments ()
 
TStringArray GetConfigAttachments ()
 

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

EntityAI m_ObjectPtr
 
Shape m_DebugShapeBBox
 
string m_InitScript
 
string m_ObjectName
 
string m_ObjectNameOrigin
 
ref array< SceneObjectm_LinkedSceneObjects
 
ref map< SceneObject, Shapem_LinkedSceneObjectsShapes
 
ref array< intm_LinkedSceneObjectsIndices
 

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

override bool IsPlayer ()
 

Закрытые статические данные

static const int COLOR_OBJ_BBOX_NORMAL = 0x00000000
 
static const int COLOR_OBJ_BBOX_SELECT = 0x1f007C00
 

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

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

◆ ~SceneObject()

void ~SceneObject ( )
inlineprotected
357 {
359 {
360 GetGame().ObjectDelete(m_ObjectPtr);
362 }
363
364 for (int i = 0; i < m_LinkedSceneObjects.Count(); i++)
365 {
367 }
368
370 }
PlayerBase GetPlayer()
Definition ModifierBase.c:51
Definition EntityAI.c:95
EntityAI m_ObjectPtr
Definition SceneObject.c:6
void EditorShapeRemove()
Definition SceneObject.c:204
ref array< SceneObject > m_LinkedSceneObjects
Definition SceneObject.c:12
void EditorLineRemove(SceneObject obj)
Definition SceneObject.c:216
proto native CGame GetGame()

Перекрестные ссылки EditorLineRemove(), EditorShapeRemove(), GetGame(), GetPlayer(), m_LinkedSceneObjects и m_ObjectPtr.

Методы

◆ AddAttachment()

void AddAttachment ( string att_name)
inlineprotected
547 {
548 GetObject().GetInventory().CreateAttachment(att_name);
549 }
EntityAI GetObject()
Definition SceneObject.c:59

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

Используется в PluginBase::SelectedObjectDuplicate().

◆ AddRotation()

void AddRotation ( float add_rot)
inlineprotected
524 {
525 if (m_ObjectPtr)
526 {
527 if (GetGame().IsClient() && GetGame().IsMultiplayer())
528 {
531 }
532 else
533 {
534 vector v = m_ObjectPtr.GetOrientation();
535 v[0] = v[0] + add_rot;
536 m_ObjectPtr.SetOrientation(v);
537
539 }
540 }
541 }
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Definition param.c:12
void EditorShapeUpdatePos()
Definition SceneObject.c:99
void SceneObjectSynch(Param p)
Definition SceneObject.c:515
Definition EnConvert.c:106

Перекрестные ссылки EditorShapeUpdatePos(), GetGame(), m_ObjectPtr и SceneObjectSynch().

◆ CanAttachment()

bool CanAttachment ( EntityAI e)
inlineprotected
555 {
556 return GetObject().GetInventory().CanAddAttachment(e);
557 }

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

◆ EditorLineAdd()

void EditorLineAdd ( SceneObject obj)
inlineprotected
233 {
234 if (obj.GetObject() != NULL && GetObject() != NULL)
235 {
236 if (m_LinkedSceneObjectsShapes.Contains(obj))
237 {
238 EditorLineRemove(obj);
239 }
240
241 vector pos1 = obj.GetSize();
242 pos1[0] = 0; pos1[1] = pos1[1] / 2; pos1[2] = 0;
243 pos1 = pos1 + obj.GetObject().GetPosition();
244
245 vector pos2 = GetSize();
246 pos2[0] = 0; pos2[1] = pos2[1] / 2; pos2[2] = 0;
247 pos2 = pos2 + GetObject().GetPosition();
248
250 }
251 }
Definition Debug.c:14
static Shape DrawArrow(vector from, vector to, float size=0.5, int color=0xFFFFFFFF, int flags=0)
Definition Debug.c:410
ref map< SceneObject, Shape > m_LinkedSceneObjectsShapes
Definition SceneObject.c:13
vector GetSize()
Definition SceneObject.c:143

Перекрестные ссылки Debug::DrawArrow(), EditorLineRemove(), GetObject(), GetSize() и m_LinkedSceneObjectsShapes.

Используется в PluginBase::EditorUpdate() и LinkSceneObject().

◆ EditorLineRemove()

void EditorLineRemove ( SceneObject obj)
inlineprotected
217 {
218 for (int i = 0; i < m_LinkedSceneObjectsShapes.Count(); i++)
219 {
220 if (m_LinkedSceneObjectsShapes.GetKey(i) == obj)
221 {
222 m_LinkedSceneObjectsShapes.GetElement(i).Destroy();
223 m_LinkedSceneObjectsShapes.Remove(obj);
224 break;
225 }
226 }
227 }

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

Используется в EditorLineAdd(), PluginBase::EditorUpdate(), UnlinkSceneObject() и ~SceneObject().

◆ EditorShapeAdd()

void EditorShapeAdd ( )
inlineprotected
170 {
171 if (m_DebugShapeBBox != NULL)
172 return;
173
174 vector min = "0 0 0";
175 vector max = "0 0 0";
176
177 vector size = GetSize();
178
179 float width = size[0];
180 float height = size[1];
181 float length = size[2];
182
183 float width_h = width*0.5;
184 float lenght_h = length*0.5;
185
186 min[0] = -width_h;
187 min[1] = 0;
188 min[2] = -lenght_h;
189
190 max[0] = width_h;
191 max[1] = height;
192 max[2] = lenght_h;
193
194 //Log("EditorShapeAdd -> "+m_ObjectPtr.Ptr().GetType());
195
199 }
static Shape DrawBox(vector pos1, vector pos2, int color=0x1fff7f7f)
Definition Debug.c:300
Shape m_DebugShapeBBox
Definition SceneObject.c:7
void EditorShapeDeselect()
Definition SceneObject.c:135

Перекрестные ссылки Debug::DrawBox(), EditorShapeDeselect(), EditorShapeUpdatePos(), GetSize() и m_DebugShapeBBox.

Используется в PluginBase::EditorUpdate().

◆ EditorShapeDeselect()

void EditorShapeDeselect ( )
inlineprotected
136 {
138 }
static const int COLOR_OBJ_BBOX_NORMAL
Definition SceneObject.c:3
void EditorShapeSetColor(int color)
Definition SceneObject.c:116

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

Используется в EditorShapeAdd() и PluginBase::EditorUpdate().

◆ EditorShapeRemove()

void EditorShapeRemove ( )
inlineprotected
205 {
206 if (m_DebugShapeBBox != NULL)
207 {
208 m_DebugShapeBBox.Destroy();
210 }
211 }

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

Используется в PluginBase::EditorUpdate() и ~SceneObject().

◆ EditorShapeSelect()

void EditorShapeSelect ( )
inlineprotected
128 {
130 }
static const int COLOR_OBJ_BBOX_SELECT
Definition SceneObject.c:4

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

Используется в PluginBase::EditorUpdate().

◆ EditorShapeSetColor()

void EditorShapeSetColor ( int color)
inlineprotected
117 {
119 {
120 m_DebugShapeBBox.SetColor(color);
121 }
122 }

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

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

◆ EditorShapeUpdatePos()

void EditorShapeUpdatePos ( )
inlineprotected
100 {
101 if (m_DebugShapeBBox != NULL)
102 {
103 vector mat[4];
104 GetObject().GetTransform(mat);
105
106 if (m_DebugShapeBBox != NULL)
107 {
108 m_DebugShapeBBox.SetMatrix(mat);
109 }
110 }
111 }

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

Используется в AddRotation(), EditorShapeAdd(), SetPosition() и SetRotation().

◆ GetAttachments()

array< EntityAI > GetAttachments ( )
inlineprotected
571 {
573
574 for (int i = 0; i < GetObject().GetInventory().AttachmentCount(); ++i)
575 {
576 ret.Insert(GetObject().GetInventory().GetAttachmentFromIndex(i));
577 }
578
579 return ret;
580 }

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

◆ GetConfigAttachments()

TStringArray GetConfigAttachments ( )
inlineprotected
586 {
587 string type_name = GetTypeName();
589
590 string cfg_path;
591
592 if (GetGame().ConfigIsExisting(CFG_VEHICLESPATH+" "+type_name))
593 {
594 cfg_path = CFG_VEHICLESPATH+" "+type_name+" attachments";
595 }
596 else if (GetGame().ConfigIsExisting(CFG_WEAPONSPATH+" "+type_name))
597 {
598 cfg_path = CFG_WEAPONSPATH+" "+type_name+" attachments";
599 }
600 else if (GetGame().ConfigIsExisting(CFG_MAGAZINESPATH+" "+type_name))
601 {
602 cfg_path = CFG_MAGAZINESPATH+" "+type_name+" attachments";
603 }
604
605 GetGame().ConfigGetTextArray(cfg_path, cfg_attachments);
606
607 return cfg_attachments;
608 }
string GetTypeName()
Definition SceneObject.c:375
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Definition IsBoxCollidingGeometryProxyClasses.c:28
array< string > TStringArray
Definition EnScript.c:685
const string CFG_VEHICLESPATH
Definition constants.c:217
const string CFG_WEAPONSPATH
Definition constants.c:218
const string CFG_MAGAZINESPATH
Definition constants.c:219

Перекрестные ссылки CFG_MAGAZINESPATH, CFG_VEHICLESPATH, CFG_WEAPONSPATH, GetGame() и GetTypeName().

Используется в UIScriptedMenu::Refresh().

◆ GetHealth()

float GetHealth ( )
inlineprotected
434 {
435 if (m_ObjectPtr)
436 return m_ObjectPtr.GetHealth("", "");
437 return 0;
438 }

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

Используется в UIScriptedMenu::Refresh() и PluginConfigHandler::SaveSceneObjects().

◆ GetInitScript()

string GetInitScript ( )
inlineprotected
84 {
85 return m_InitScript;
86 }
string m_InitScript
Definition SceneObject.c:8

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

Используется в UIPopupScript::OnOpen() и PluginConfigHandler::SaveSceneObjects().

◆ GetLinkedObject()

EntityAI GetLinkedObject ( int i)
inlineprotected
349 {
351 }
SceneObject GetLinkedSceneObject(int i)
Definition SceneObject.c:340

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

◆ GetLinkedSceneObject()

SceneObject GetLinkedSceneObject ( int i)
inlineprotected
341 {
342 return m_LinkedSceneObjects.Get(i);
343 }

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

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

◆ GetLinkedSceneObjects()

array< SceneObject > GetLinkedSceneObjects ( )
inlineprotected
325 {
327 }

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

Используется в PluginBase::EditorUpdate() и PluginConfigHandler::SaveSceneObjects().

◆ GetLinkedSceneObjectsCount()

int GetLinkedSceneObjectsCount ( )
inlineprotected
333 {
334 return m_LinkedSceneObjects.Count();
335 }

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

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

◆ GetMaxHealth()

float GetMaxHealth ( )
inlineprotected
444 {
445 if (m_ObjectPtr)
446 return m_ObjectPtr.GetMaxHealth("", "");
447 return 0;
448 }

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

◆ GetName()

string GetName ( )
inlineprotected
68 {
69 return m_ObjectName;
70 }
string m_ObjectName
Definition SceneObject.c:9

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

◆ GetObject()

◆ GetPosition()

vector GetPosition ( )
inlineprotected
424 {
425 if (m_ObjectPtr)
426 return m_ObjectPtr.GetPosition();
427 return Vector(0,0,0);
428 }
proto native vector Vector(float x, float y, float z)
Vector constructor from components.

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

Используется в UIScriptedMenu::Refresh().

◆ GetPositionAsString()

string GetPositionAsString ( )
inlineprotected
473 {
474 if (m_ObjectPtr)
475 return m_ObjectPtr.GetPosition().ToString(false);
476 return Vector(0,0,0).ToString(false);
477 }

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

Используется в PluginConfigHandler::SaveSceneObjects().

◆ GetRotation()

float GetRotation ( )
inlineprotected
491 {
492 if (m_ObjectPtr)
493 {
494 vector v = m_ObjectPtr.GetOrientation();
495 return v[0];
496 }
497
498 return 0;
499 }

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

Используется в UIScriptedMenu::Refresh() и PluginConfigHandler::SaveSceneObjects().

◆ GetSize()

vector GetSize ( )
inlineprotected
144 {
145 vector size = Vector(1,1,1);
146 vector min_max[2];
147
148 if (GetObject())
149 {
150 GetObject().GetCollisionBox(min_max);
151
152 size[0] = min_max[1][0] - min_max[0][0];
153 size[2] = min_max[1][2] - min_max[0][2];
154 size[1] = min_max[1][1] - min_max[0][1];
155
156 return size;
157 }
158 else
159 {
160 Print("Error: SceneObject "+ m_ObjectNameOrigin +" dont has game object.");
161 }
162
163 return size;
164 }
string m_ObjectNameOrigin
Definition SceneObject.c:10
proto void Print(void var)
Prints content of variable to console/log.

Перекрестные ссылки GetObject(), m_ObjectNameOrigin, Print() и Vector().

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

◆ GetTypeName()

string GetTypeName ( )
inlineprotected
376 {
377 return m_ObjectPtr.GetType();
378 }

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

Используется в GetConfigAttachments(), UIScriptedMenu::Refresh(), PluginConfigHandler::SaveSceneObjects() и PluginLocalProfile::SceneSave().

◆ Init()

SceneObject Init ( string obj_name,
vector pos )
inlineprotected
21 {
23 {
25
26 bool is_ai = GetGame().IsKindOf(obj_name, "DZ_LightAI");
27
28 PluginDeveloper module_dev = PluginDeveloper.Cast(GetPlugin(PluginDeveloper));
29 EntityAI e = module_dev.SpawnEntityOnGroundPos(PluginSceneManager.PLAYER, obj_name, 100, 0.0, pos);
30
31 if (e != NULL)
32 {
33 if (e.IsInherited(ItemBase))
34 {
35 ItemBase item = ItemBase.Cast(e);
36 if (item.HasQuantity())
37 item.SetQuantity(item.GetQuantityMax());
38 }
39
40 m_ObjectName = e.GetType();
42 }
43 else if (obj_name != "player")
44 {
45 return NULL;
46 }
47 }
48
52
53 return this;
54 }
PluginBase GetPlugin(typename plugin_type)
Definition PluginManager.c:316
Definition Building.c:6
Definition InventoryItem.c:731
void LinkEntityAI(EntityAI e)
Definition SceneObject.c:256
ref array< int > m_LinkedSceneObjectsIndices
Definition SceneObject.c:15
const string STRING_EMPTY
Definition constants.c:54

Перекрестные ссылки GetGame(), GetPlugin(), LinkEntityAI(), m_LinkedSceneObjects, m_LinkedSceneObjectsIndices, m_LinkedSceneObjectsShapes, m_ObjectName, m_ObjectNameOrigin и STRING_EMPTY.

◆ IsLinkedWithSceneObject()

bool IsLinkedWithSceneObject ( SceneObject scene_object)
inlineprotected
265 {
267 if (index >= 0)
268 {
269 return true;
270 }
271 else
272 {
273 return false;
274 }
275 }

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

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

◆ IsPlayer() [1/2]

bool IsPlayer ( )
inlineprotected
76 {
77 return false;
78 }

◆ IsPlayer() [2/2]

override bool IsPlayer ( )
inlineprivate
7 {
8 return true;
9 }

◆ LinkEntityAI()

void LinkEntityAI ( EntityAI e)
inlineprotected
257 {
258 m_ObjectPtr = e;
259 }

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

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

◆ LinkSceneObject()

void LinkSceneObject ( SceneObject scene_object,
bool draw_line = true )
inlineprotected
281 {
283 {
284 if (draw_line)
285 {
287 }
289 }
290 }
bool IsLinkedWithSceneObject(SceneObject scene_object)
Definition SceneObject.c:264
void EditorLineAdd(SceneObject obj)
Definition SceneObject.c:232

Перекрестные ссылки EditorLineAdd(), IsLinkedWithSceneObject() и m_LinkedSceneObjects.

◆ PlaceOnSurface()

void PlaceOnSurface ( )
inlineprotected
384 {
385 if (m_ObjectPtr)
386 {
387 if (GetGame().IsClient() && GetGame().IsMultiplayer())
388 {
389 Param par = new Param3<string, EntityAI, Param>("PlaceOnSurface" , m_ObjectPtr, NULL);
391 }
392 else
393 {
394 m_ObjectPtr.PlaceOnSurface();
395 }
396 }
397 }

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

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

◆ RemoveAttachment()

void RemoveAttachment ( EntityAI e)
inlineprotected
563 {
564 GetGame().ObjectDelete(e);
565 }

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

◆ SceneObjectSynch()

void SceneObjectSynch ( Param p)
inlineprotected
516 {
517 GetGame().RPCSingleParam(GetGame().GetPlayer(), ERPCs.RPC_SYNC_SCENE_OBJECT, p, true, NULL);
518 }
ERPCs
Definition ERPCs.c:2

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

Используется в AddRotation(), PlaceOnSurface(), SetHealth() и SetPosition().

◆ SetHealth()

void SetHealth ( float value)
inlineprotected
454 {
455 if (m_ObjectPtr)
456 {
457 if (GetGame().IsClient() && GetGame().IsMultiplayer())
458 {
461 }
462 else
463 {
464 m_ObjectPtr.SetHealth("", "", value);
465 }
466 }
467 }

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

◆ SetInitScript()

void SetInitScript ( string init_script)
inlineprotected
92 {
94 }

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

Используется в UIPopupScript::OnClick().

◆ SetPosition()

void SetPosition ( vector pos)
inlineprotected
403 {
404 if (m_ObjectPtr)
405 {
406 if (GetGame().IsClient() && GetGame().IsMultiplayer())
407 {
408 Param par = new Param3<string, EntityAI, Param>("SetPosition" , m_ObjectPtr, new Param1<vector>(pos));
410 }
411 else
412 {
413 m_ObjectPtr.SetPosition(pos);
414 }
415 }
418 }
void PlaceOnSurface()
Definition SceneObject.c:383

Перекрестные ссылки EditorShapeUpdatePos(), GetGame(), m_ObjectPtr, PlaceOnSurface() и SceneObjectSynch().

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

◆ SetPositionAsString()

void SetPositionAsString ( string string_pos)
inlineprotected
483 {
484 SetPosition(string_pos.ToVector());
485 }
void SetPosition(vector pos)
Definition SceneObject.c:402

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

◆ SetRotation()

void SetRotation ( float rot)
inlineprotected
505 {
506 if (m_ObjectPtr)
507 {
508 vector v = m_ObjectPtr.GetOrientation();
509 v[0] = rot;
510 m_ObjectPtr.SetOrientation(v);
512 }
513 }

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

Используется в PluginBase::SelectedObjectDuplicate().

◆ UnlinkAll()

void UnlinkAll ( )
inlineprotected
309 {
311
312 if (link_count > 0)
313 {
314 for (int i = 0; i < link_count; ++i)
315 {
316 PluginSceneManager.GetInstance().UnlinkSceneObjects(this, GetLinkedSceneObject(0));
317 }
318 }
319 }
int GetLinkedSceneObjectsCount()
Definition SceneObject.c:332

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

Используется в PluginBase::DeleteSceneObject().

◆ UnlinkSceneObject()

void UnlinkSceneObject ( SceneObject scene_object)
inlineprotected
296 {
298 if (index >= 0 && index < m_LinkedSceneObjects.Count())
299 {
302 }
303 }

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

Поля

◆ COLOR_OBJ_BBOX_NORMAL

const int COLOR_OBJ_BBOX_NORMAL = 0x00000000
staticprivate

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

◆ COLOR_OBJ_BBOX_SELECT

const int COLOR_OBJ_BBOX_SELECT = 0x1f007C00
staticprivate

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

◆ m_DebugShapeBBox

Shape m_DebugShapeBBox
protected

◆ m_InitScript

string m_InitScript
protected

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

◆ m_LinkedSceneObjects

◆ m_LinkedSceneObjectsIndices

ref array<int> m_LinkedSceneObjectsIndices
protected

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

◆ m_LinkedSceneObjectsShapes

ref map<SceneObject, Shape> m_LinkedSceneObjectsShapes
protected

Используется в EditorLineAdd(), EditorLineRemove() и Init().

◆ m_ObjectName

string m_ObjectName
protected

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

◆ m_ObjectNameOrigin

string m_ObjectNameOrigin
protected

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

◆ m_ObjectPtr


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