use of org.terasology.logic.inventory.events.AbstractMoveItemRequest in project Terasology by MovingBlocks.
the class InventoryClientSystem method inventoryChangeAcknowledge.
@ReceiveEvent(components = { InventoryComponent.class })
public void inventoryChangeAcknowledge(InventoryChangeAcknowledgedRequest event, EntityRef entity) {
// TODO: This does not ever get triggered because the event is sent to the client, not the character.
// If it did get triggered, it causes a mess of question mark items.
AbstractMoveItemRequest removedRequest = pendingMoves.remove(event.getChangeId());
if (removedRequest != null) {
destroyClientTempEntities(removedRequest);
}
recalculatePredictedState();
}
use of org.terasology.logic.inventory.events.AbstractMoveItemRequest in project Terasology by MovingBlocks.
the class InventoryClientSystem method recalculatePredictedState.
private void recalculatePredictedState() {
for (AbstractMoveItemRequest request : pendingMoves.values()) {
// pending request is acknowledged by the server
if (request instanceof MoveItemRequest) {
MoveItemRequest r = (MoveItemRequest) request;
destroyClientTempEntities(r);
Collection<EntityRef> newClientTempEntities = new HashSet<>();
moveItemFillClientTempEntities(request.getFromInventory(), r.getInstigator(), r.getFromSlot(), r.getToInventory(), r.getToSlot(), newClientTempEntities);
r.setClientSideTempEntities(newClientTempEntities);
} else if (request instanceof MoveItemAmountRequest) {
MoveItemAmountRequest r = (MoveItemAmountRequest) request;
destroyClientTempEntities(r);
Collection<EntityRef> newClientTempEntities = new HashSet<>();
moveItemAmountFillClientTempEntities(r.getFromInventory(), r.getInstigator(), r.getFromSlot(), r.getToInventory(), r.getToSlot(), r.getAmount(), newClientTempEntities);
r.setClientSideTempEntities(newClientTempEntities);
} else if (request instanceof MoveItemToSlotsRequest) {
MoveItemToSlotsRequest r = (MoveItemToSlotsRequest) request;
destroyClientTempEntities(r);
Collection<EntityRef> newClientTempEntities = new HashSet<>();
moveItemToSlotsFillClientTempEntities(r.getInstigator(), r.getFromInventory(), r.getFromSlot(), r.getToInventory(), r.getToSlots(), newClientTempEntities);
r.setClientSideTempEntities(newClientTempEntities);
}
}
}
Aggregations