|  |  | @ -29,13 +29,13 @@ import java.util.concurrent.atomic.AtomicInteger; | 
			
		
	
		
		
			
				
					
					|  |  |  | public enum ForgeManager implements Runnable { |  |  |  | public enum ForgeManager implements Runnable { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // MB Dev notes:
 |  |  |  |     // MB Dev notes:
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Class handles all forge rolling mechanics for the game.
 |  |  |  |     // Class handles all forge rolling mechanics for Magicbane.
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     //
 |  |  |  |     //
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // WorkOrders may be submitted from any thread: usually (ItemProductionMsgHandler).
 |  |  |  |     // .submit(workOrder) may be called from any thread: (ItemProductionMsgHandler).
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     // Concurrency is managed by the same lock used by the warehouse (city.cityTransactionLock).
 |  |  |  |     // Concurrency is managed by the same lock used by the warehouse (city.cityTransactionLock).
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // WorkOrders are persisted then reconstituted at bootstrap from table dyn.workorders.
 |  |  |  |     // WorkOrders are persisted then reconstituted at bootstrap using table dyn.workorders.
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     //
 |  |  |  |     //
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // p.s. replaces garbage code that looked like it was written by a crack head with face boils.
 |  |  |  |     // p.s. replaces garbage code that looked like it was written by a mental patient with face boils.
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     FORGE_MANAGER; |  |  |  |     FORGE_MANAGER; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -58,9 +58,13 @@ public enum ForgeManager implements Runnable { | 
			
		
	
		
		
			
				
					
					|  |  |  |             try { |  |  |  |             try { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 workOrder = forge.take(); |  |  |  |                 workOrder = forge.take(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 // This workOrder has completed production.
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (workOrder.total_produced >= workOrder.total_to_produce) { |  |  |  |                 if (workOrder.total_produced >= workOrder.total_to_produce) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                     // Complete this workOrder.
 |  |  |  |                     // Set items as completed in the window.
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     // First CONFIRM_PRODUCE adds virtual item to the interface.
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     // Second CONFIRM_PRODUCE sets virtual item to complete.
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                     for (Item workOrderItem : workOrder.cooking) { |  |  |  |                     for (Item workOrderItem : workOrder.cooking) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                         workOrderItem.flags.add(mbEnums.ItemFlags.Identified); |  |  |  |                         workOrderItem.flags.add(mbEnums.ItemFlags.Identified); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |