void UAREquipmentComponent::OnRep_ChestItem() { //if (ChestItem.ItemMesh.IsValid()) //{ //SetChestMesh(ChestItem.ItemMesh); //} ChangeChestItem(ChestItem); }
void UAREquipmentComponent::ChangeItem(FARDragDropInfo ItemIn, int32 OldItemSlotID) { bool itemRemoved = false; if (GetOwnerRole() < ROLE_Authority) { ServerChangeItem(ItemIn, OldItemSlotID); } else { //check if there is something in that particular slot for (AARItem* eqItem : EquippedItems) { if (eqItem->ItemSlotEquipped == ItemIn.ItemSlot) { FARDragDropInfo tempItem; tempItem.ItemKey = eqItem->ItemID; tempItem.ItemSlot = eqItem->ItemSlotEquipped; //if there is, Unequip it. Before we proceed. UnEquipItem(ItemIn); itemRemoved = Inventory->RemoveItemFromInventory(ItemIn.ItemKey, ItemIn.SlotIndex); Inventory->AddItemToInventoryOnSlot(tempItem, OldItemSlotID); } } switch (ItemIn.DragDropSlot) { case EDragDropSlot::Chest: { if (ChangeChestItem(ItemIn)) { if (!itemRemoved) { Inventory->RemoveItemFromInventory(ItemIn.ItemKey, ItemIn.SlotIndex); break; } } break; } case EDragDropSlot::LeftHand: { AddWeapon(ItemIn, OldItemSlotID, 0); } case EDragDropSlot::RightHand: { AddWeapon(ItemIn, OldItemSlotID, 1); } default: break; } } }
void UAREquipmentComponent::ChangeItem(FInventorySlot ItemIn, int32 OldItemSlotID) { bool itemRemoved = false; if (GetOwnerRole() < ROLE_Authority) { ServerChangeItem(ItemIn, OldItemSlotID); } else { //check if there is something in that particular slot for (AARItem* eqItem : EquippedItems) { if (eqItem->ItemSlotEquipped == ItemIn.ItemSlot) { FInventorySlot tempItem; tempItem.ItemID = eqItem->ItemID; tempItem.ItemSlot = eqItem->ItemSlotEquipped; //if there is, Unequip it. Before we proceed. UnEquipItem(ItemIn); itemRemoved = TargetController->RemoveItemFromInventory(ItemIn.ItemID, ItemIn.SlotID); TargetController->AddItemToInventoryOnSlot(tempItem, OldItemSlotID); } } switch (ItemIn.EEquipmentSlot) { case EEquipmentSlot::Item_Chest: { if (ChangeChestItem(ItemIn)) { if (!itemRemoved) { TargetController->RemoveItemFromInventory(ItemIn.ItemID, ItemIn.SlotID); break; } } break; } case EEquipmentSlot::Item_LeftHandOne: { AddLeftHandWeapon(ItemIn.ItemID); } default: break; } } }
void UAREquipmentComponent::ServerChangeChestItem_Implementation(FARDragDropInfo ItemIn) { ChangeChestItem(ItemIn); }
void UAREquipmentComponent::ServerChangeChestItem_Implementation(FInventorySlot ItemIn) { ChangeChestItem(ItemIn); }