4490 {
4492 return;
4493
4495 return;
4496
4498 return;
4499
4500 if (GetThrowing().IsThrowingModeEnabled() || GetThrowing().IsThrowingAnimationPlaying())
4501 return;
4502
4504 return;
4505
4507 return;
4508
4510 return;
4511
4513 return;
4514
4515 if (!ScriptInputUserData.CanStoreInputUserData())
4516 return;
4517
4518
4519
4520
4521
4523
4524 if (!quickBarEntity)
4525 return;
4526
4527 Magazine mag;
4528 Weapon_Base wpn;
4529
4530 if (Class.CastTo(mag, quickBarEntity) && Class.CastTo(wpn, mag.GetHierarchyParent()))
4531 return;
4532
4533 EntityAI inHandEntity = GetHumanInventory().GetEntityInHands();
4534
4535 if (!GetDayZPlayerInventory().
IsIdle())
4536 return;
4537
4538 InventoryLocation handInventoryLocation = new InventoryLocation;
4539 handInventoryLocation.
SetHands(
this,quickBarEntity);
4540 if (this.GetInventory().HasInventoryReservation(quickBarEntity, handInventoryLocation))
4541 return;
4542
4543 if (inHandEntity == quickBarEntity)
4544 {
4545 if (GetHumanInventory().CanRemoveEntityInHands())
4546 {
4547 if (LogManager.IsSyncLogEnable())
syncDebugPrint(
"[QB] Stash - PredictiveMoveItemFromHandsToInventory HND=" +
Object.GetDebugName(inHandEntity));
4548 PredictiveMoveItemFromHandsToInventory();
4549 }
4550 }
4551 else
4552 {
4553 InventoryLocation invLocQBItem = new InventoryLocation;
4554 quickBarEntity.GetInventory().GetCurrentInventoryLocation(invLocQBItem);
4555 if (GetInventory().HasInventoryReservation(quickBarEntity,invLocQBItem))
4556 return;
4557
4558 if (inHandEntity)
4559 {
4560 InventoryLocation Reserved_Item_il = new InventoryLocation;
4561
4562 InventoryLocation inHandEntityFSwapDst = new InventoryLocation;
4563 inHandEntity.GetInventory().GetCurrentInventoryLocation(inHandEntityFSwapDst);
4564
4565 int index = GetHumanInventory().FindUserReservedLocationIndex(inHandEntity);
4566 if (index >= 0)
4567 GetHumanInventory().GetUserReservedLocation(index, Reserved_Item_il);
4568
4569 if (Reserved_Item_il)
4571
4572 if (index < 0 && GameInventory.CanSwapEntitiesEx(quickBarEntity, inHandEntity))
4573 {
4574 if (LogManager.IsSyncLogEnable())
syncDebugPrint(
"[QB] PredictiveSwapEntities QB=" +
Object.GetDebugName(quickBarEntity) +
" HND=" +
Object.GetDebugName(inHandEntity));
4576 }
4577 else if (GameInventory.CanForceSwapEntitiesEx(quickBarEntity, handInventoryLocation, inHandEntity, inHandEntityFSwapDst))
4578 {
4579 if (LogManager.IsSyncLogEnable())
syncDebugPrint(
"[QB] Swap - PredictiveForceSwapEntities HND=" +
Object.GetDebugName(inHandEntity) +
" QB=" +
Object.GetDebugName(quickBarEntity) +
" fswap_dst=" + InventoryLocation.DumpToStringNullSafe(inHandEntityFSwapDst));
4581 }
4582 }
4583 else
4584 {
4585 if (GetInventory().HasInventoryReservation(quickBarEntity,handInventoryLocation))
4586 return;
4587
4588 if (GetInventory().CanAddEntityIntoHands(quickBarEntity))
4589 {
4590 if (LogManager.IsSyncLogEnable())
syncDebugPrint(
"[QB] Stash - PredictiveTakeEntityToHands QB=" +
Object.GetDebugName(quickBarEntity));
4592 }
4593 }
4594 }
4595 }
void syncDebugPrint(string s)
bool IsProcessing()
returns true when FP is heating or cooling
proto native void SetHands(notnull EntityAI parent, EntityAI e)
sets current inventory location type to Hands
proto native InventoryLocation CopyLocationFrom(notnull InventoryLocation rhs, bool copyFlip)
copies location to another location without m_item member
override void PredictiveTakeEntityToHands(EntityAI item)
override bool PredictiveSwapEntities(notnull EntityAI item1, notnull EntityAI item2)
override bool IsRestrained()
override WeaponManager GetWeaponManager()
ActionManagerBase GetActionManager()
bool IsRestrainPrelocked()
EntityAI GetQuickBarEntity(int index)
override bool PredictiveForceSwapEntities(notnull EntityAI item1, notnull EntityAI item2, notnull InventoryLocation item2_dst)
DayZPlayerInstanceType
defined in C++
proto native DayZPlayerInstanceType GetInstanceType()
proto native int GetRunningAction()
returns -1 when no action is running or RELOAD,MECHANISM, ....