DayZ 1.28
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 строка 432

433 {
434 int componentIndex = -1;
435 int proxyBoneIdx = -1;
436 vector cursorHitPos = vector.Zero;
437
438 array<string> selectionNames = new array<string>();
439
440 Object targetObject = null;
441 Object targetParent = null;
442 string surfaceName;
443
444 if (UseMainItem())
445 {
446 ctx.Write(action_data.m_MainItem);
447 }
448
449 if (HasTarget() && !IsUsingProxies())
450 {
451 // callback data
452 targetObject = action_data.m_Target.GetObject();
453 ctx.Write(targetObject);
454 targetParent = action_data.m_Target.GetParent();
455 ctx.Write(targetParent);
456 componentIndex = action_data.m_Target.GetComponentIndex();
457 ctx.Write(componentIndex);
458 cursorHitPos = action_data.m_Target.GetCursorHitPos();
459 ctx.Write(cursorHitPos);
460 surfaceName = action_data.m_Target.GetSurfaceName();
461 ctx.Write(surfaceName);
462 }
463 else if (HasTarget() && IsUsingProxies())
464 {
467 Entity entParent = Entity.Cast(action_data.m_Target.GetParent());
468 if (entParent)
469 {
470 action_data.m_Target.GetObject().GetActionComponentNameList(action_data.m_Target.GetComponentIndex(), selectionNames);
471 for (int s = 0; s < selectionNames.Count(); s++)
472 {
473 proxyBoneIdx = entParent.GetBoneIndex(selectionNames[s]);
474 if( proxyBoneIdx > -1 )
475 {
476 break;
477 }
478 }
479 }
480
481 ctx.Write(proxyBoneIdx);
482 targetParent = action_data.m_Target.GetParent();
483 ctx.Write(targetParent);
484 componentIndex = action_data.m_Target.GetComponentIndex();
485 ctx.Write(componentIndex);
486 cursorHitPos = action_data.m_Target.GetCursorHitPos();
487 ctx.Write(cursorHitPos);
488 surfaceName = action_data.m_Target.GetSurfaceName();
489 ctx.Write(surfaceName);
490 }
491 }
bool HasTarget()
Определения ActionBase.c:244
bool UseMainItem()
Определения ActionBase.c:385
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().