DayZ 1.29
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 строка 438

439 {
440 int componentIndex = -1;
441 int proxyBoneIdx = -1;
442 vector cursorHitPos = vector.Zero;
443
444 array<string> selectionNames = new array<string>();
445
446 Object targetObject = null;
447 Object targetParent = null;
448
449 if (UseMainItem())
450 {
451 ctx.Write(action_data.m_MainItem);
452 }
453
454 if (HasTarget() && !IsUsingProxies())
455 {
456 // callback data
457 targetObject = action_data.m_Target.GetObject();
458 ctx.Write(targetObject);
459 targetParent = action_data.m_Target.GetParent();
460 ctx.Write(targetParent);
461 componentIndex = action_data.m_Target.GetComponentIndex();
462 ctx.Write(componentIndex);
463 cursorHitPos = action_data.m_Target.GetCursorHitPos();
464 ctx.Write(cursorHitPos);
465 }
466 else if( HasTarget() && IsUsingProxies() )
467 {
470 Entity entParent = Entity.Cast(action_data.m_Target.GetParent());
471 if (entParent)
472 {
473 action_data.m_Target.GetObject().GetActionComponentNameList(action_data.m_Target.GetComponentIndex(), selectionNames);
474 for (int s = 0; s < selectionNames.Count(); s++)
475 {
476 proxyBoneIdx = entParent.GetBoneIndex(selectionNames[s]);
477 if( proxyBoneIdx > -1 )
478 {
479 break;
480 }
481 }
482 }
483
484 ctx.Write(proxyBoneIdx);
485 targetParent = action_data.m_Target.GetParent();
486 ctx.Write(targetParent);
487 componentIndex = action_data.m_Target.GetComponentIndex();
488 ctx.Write(componentIndex);
489 cursorHitPos = action_data.m_Target.GetCursorHitPos();
490 ctx.Write(cursorHitPos);
491 }
492 }
bool HasTarget()
Определения ActionBase.c:250
bool UseMainItem()
Определения ActionBase.c:391
bool IsUsingProxies()
not using plane object - it's using multiple proxies
Определения ActionBase.c:274
proto bool Write(void value_out)
class LOD Object

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

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