Predict item drop animation client-side
This commit is contained in:
parent
50ec1a0406
commit
aa0ef06ac6
@ -240,9 +240,14 @@ void ItemDrop::update(float dt, uint64_t) {
|
||||
Root::singleton().itemDatabase()->loadItem(m_itemDescriptor.get(), m_item);
|
||||
m_netGroup.tickNetInterpolation(GlobalTimestep);
|
||||
if (m_owningEntity.get() != NullEntityId) {
|
||||
m_dropAge.update(world()->epochTime());
|
||||
if (!isMaster() && m_dropAge.elapsedTime() > 1.0f)
|
||||
m_owningEntity.set(NullEntityId);
|
||||
else {
|
||||
updateTaken(false);
|
||||
m_movementController.tickMaster(dt);
|
||||
}
|
||||
}
|
||||
else {
|
||||
m_movementController.tickSlave(dt);
|
||||
}
|
||||
|
@ -1125,10 +1125,12 @@ void WorldClient::update(float dt) {
|
||||
// If the drop is within DropDist and not owned, request it.
|
||||
if (itemDrop->canTake() && !m_requestedDrops.contains(itemDrop->entityId()) && distSquared < square(DropDist)) {
|
||||
m_requestedDrops.add(itemDrop->entityId());
|
||||
if (m_mainPlayer->itemsCanHold(itemDrop->item()) != 0)
|
||||
if (m_mainPlayer->itemsCanHold(itemDrop->item()) != 0) {
|
||||
itemDrop->takeBy(m_mainPlayer->entityId());
|
||||
m_outgoingPackets.append(make_shared<RequestDropPacket>(itemDrop->entityId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
m_requestedDrops.clear();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user