forked from MagicBane/Server
Items are persisted and moved to vendor inventory
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user