@ -17,7 +17,6 @@ import engine.net.client.msg.ItemProductionMsg;
@@ -17,7 +17,6 @@ import engine.net.client.msg.ItemProductionMsg;
import engine.objects.* ;
import engine.powers.EffectsBase ;
import engine.powers.poweractions.AbstractPowerAction ;
import engine.server.MBServerStatics ;
import org.pmw.tinylog.Logger ;
import java.util.ArrayList ;
@ -58,38 +57,18 @@ public enum ForgeManager implements Runnable {
@@ -58,38 +57,18 @@ public enum ForgeManager implements Runnable {
if ( Objects . requireNonNull ( workOrder ) . runCanceled | | workOrder . runCompleted )
continue ;
// Persist current items that are currently cooking for this
// workOrder
ArrayList < Item > toRemove = new ArrayList < > ( ) ;
Item completed_item = null ;
for ( Item cooked_item : workOrder . cooking ) {
toRemove . add ( cooked_item ) ;
cooked_item . containerType = mbEnums . ItemContainerType . INVENTORY ;
completed_item = DbManager . ItemQueries . PERSIST ( cooked_item ) ;
workOrder . vendor . charItemManager . addItemToInventory ( completed_item ) ;
}
// Remove the fake negativeID item from all collections.
// set the items as 'completed'
for ( Item memoryItem : toRemove ) {
Logger . info ( "item forged:" + workOrder . workOrderID + " (" + workOrder . total_produced + "/" + workOrder . total_to_produce + ")" ) ;
// Update vendor windows
// Complete this workOrder. Persist items currently in memory
// and set the items as completed.
ItemProductionMsg outMsg1 = new ItemProductionMsg ( workOrder . vendor . building , workOrder . vendor , memoryItem , mbEnums . ProductionActionType . COMPLETE , true ) ;
DispatchMessage . dispatchMsgToInterestArea ( workOrder . vendor , outMsg1 , mbEnums . DispatchChannel . SECONDARY , MBServerStatics . STRUCTURE_LOAD_RANGE , false , false ) ;
if ( workOrder . total_produced > = workOrder . total_to_produce ) {
workOrder . cooking . remove ( memoryItem ) ;
inMemoryItemLookup . remove ( memoryItem . objectUUID ) ;
vendorItemLookup . get ( workOrder . vendor ) . remove ( memoryItem ) ;
}
for ( Item workOrderItem : workOrder . cooking ) {
workOrderItem . setDateToUpgrade ( 0 ) ;
Logger . info ( "item forged:" + workOrder . workOrderID + " (" + workOrder . total_produced + "/" + workOrder . total_to_produce + ")" ) ;
}
if ( workOrder . total_produced > = workOrder . total_to_produce ) {
Logger . info ( "workOrder has completed: " + workOrder . workOrderID ) ;
workOrder . runCompleted = true ;
continue ;
@ -319,7 +298,6 @@ public enum ForgeManager implements Runnable {
@@ -319,7 +298,6 @@ public enum ForgeManager implements Runnable {
inMemoryItemLookup . put ( forged_item . objectUUID , forged_item ) ;
vendorItemLookup . computeIfAbsent ( workOrder . vendor , k - > new ArrayList < > ( ) ) ;
vendorItemLookup . get ( workOrder . vendor ) . add ( forged_item ) ;
vendorItemLookup . get ( workOrder . vendor ) . add ( forged_item ) ;
vendorWorkOrderLookup . get ( workOrder . vendor ) . add ( workOrder ) ;
// Update NPC window