Items are persisted and moved to vendor inventory

This commit is contained in:
2024-04-15 12:12:40 -04:00
parent 0c9ec31fa3
commit 5505d7bc61
+32 -6
View File
@@ -74,15 +74,10 @@ public enum ForgeManager implements Runnable {
if (workOrder.runCompleted == true)
continue;
;
// Persist items that were currently cooking
for (Item workOrderItem : workOrder.cooking) {
// ItemProductionMsg outMsg = new ItemProductionMsg(workOrder.vendor.building, workOrder.vendor, workOrderItem, mbEnums.ProductionActionType.TAKE, true);
// DispatchMessage.dispatchMsgToInterestArea(workOrder.vendor, outMsg, mbEnums.DispatchChannel.SECONDARY, 700, false, false);
}
persistItems(workOrder);
// Create new set in memory items
@@ -295,6 +290,37 @@ public enum ForgeManager implements Runnable {
return forgedItem;
}
public static void persistItems(WorkOrder workOrder) {
ArrayList<Item> toRemove = new ArrayList<>();
Item completed_item;
for (Item workOrderItem : workOrder.cooking) {
toRemove.add(workOrderItem);
workOrderItem.containerType = mbEnums.ItemContainerType.INVENTORY;
completed_item = DbManager.ItemQueries.PERSIST(workOrderItem);
workOrder.vendor.charItemManager.addItemToInventory(completed_item);
// Remove the fake negativeID item from all collections.
// set the items as 'completed'
for (Item memoryItem : toRemove) {
workOrder.cooking.remove(memoryItem);
inMemoryItemLookup.remove(memoryItem.objectUUID);
vendorItemLookup.get(workOrder.vendor).remove(memoryItem);
ItemProductionMsg outMsg = new ItemProductionMsg(workOrder.vendor.building, workOrder.vendor, memoryItem, mbEnums.ProductionActionType.CONFIRM_SETPRICE, true);
DispatchMessage.dispatchMsgToInterestArea(workOrder.vendor, outMsg, mbEnums.DispatchChannel.SECONDARY, 700, false, false);
ItemProductionMsg outMsg2 = new ItemProductionMsg(workOrder.vendor.building, workOrder.vendor, memoryItem, mbEnums.ProductionActionType.CONFIRM_DEPOSIT, true);
DispatchMessage.dispatchMsgToInterestArea(workOrder.vendor, outMsg2, mbEnums.DispatchChannel.SECONDARY, 700, false, false);
}
}
}
public static void forgeItems(WorkOrder workOrder) {
for (int i = 0; i < workOrder.slots_used; ++i) {