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

◆ WriteToContext()

void ActionBase::WriteToContext ( ParamsWriteContext ctx,
ActionData action_data )
inlineprotected

get proxy bone idx from parent and selection we are looking at ID is used for synchronisation to server where it's translated back to object

См. определение в файле ActionBase.c строка 426

427 {
428 int componentIndex = -1;
429 int proxyBoneIdx = -1;
430 vector cursorHitPos = vector.Zero;
431
432 array<string> selectionNames = new array<string>();
433
434 Object targetObject = null;
435 Object targetParent = null;
436
437 if (UseMainItem())
438 {
439 ctx.Write(action_data.m_MainItem);
440 }
441
442 if (HasTarget() && !IsUsingProxies())
443 {
444 // callback data
445 targetObject = action_data.m_Target.GetObject();
446 ctx.Write(targetObject);
447 targetParent = action_data.m_Target.GetParent();
448 ctx.Write(targetParent);
449 componentIndex = action_data.m_Target.GetComponentIndex();
450 ctx.Write(componentIndex);
451 cursorHitPos = action_data.m_Target.GetCursorHitPos();
452 ctx.Write(cursorHitPos);
453 }
454 else if( HasTarget() && IsUsingProxies() )
455 {
458 Entity entParent = Entity.Cast(action_data.m_Target.GetParent());
459 if (entParent)
460 {
461 action_data.m_Target.GetObject().GetActionComponentNameList(action_data.m_Target.GetComponentIndex(), selectionNames);
462 for (int s = 0; s < selectionNames.Count(); s++)
463 {
464 proxyBoneIdx = entParent.GetBoneIndex(selectionNames[s]);
465 if( proxyBoneIdx > -1 )
466 {
467 break;
468 }
469 }
470 }
471
472 ctx.Write(proxyBoneIdx);
473 targetParent = action_data.m_Target.GetParent();
474 ctx.Write(targetParent);
475 componentIndex = action_data.m_Target.GetComponentIndex();
476 ctx.Write(componentIndex);
477 cursorHitPos = action_data.m_Target.GetCursorHitPos();
478 ctx.Write(cursorHitPos);
479 }
480 }
bool HasTarget()
Определения ActionBase.c:244
bool UseMainItem()
Определения ActionBase.c:379
bool IsUsingProxies()
not using plane object - it's using multiple proxies
Определения ActionBase.c:268
proto bool Write(void value_out)
class LOD Object

Перекрестные ссылки ActionData, HasTarget(), IsUsingProxies(), UseMainItem(), Serializer::Write() и vector::Zero.

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