Browse Source

Items are persisted and moved to vendor inventory

combat-2
MagicBot 8 months ago
parent
commit
5505d7bc61
  1. 38
      src/engine/gameManager/ForgeManager.java

38
src/engine/gameManager/ForgeManager.java

@ -74,15 +74,10 @@ public enum ForgeManager implements Runnable { @@ -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 { @@ -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) {

Loading…
Cancel
Save