@ -29,6 +29,8 @@ import java.util.Objects;
				@@ -29,6 +29,8 @@ import java.util.Objects;
					 
			
		
	
		
			
				
					import  java.util.concurrent.ConcurrentHashMap ;  
			
		
	
		
			
				
					import  java.util.concurrent.Delayed ;  
			
		
	
		
			
				
					import  java.util.concurrent.TimeUnit ;  
			
		
	
		
			
				
					import  java.util.concurrent.atomic.AtomicBoolean ;  
			
		
	
		
			
				
					import  java.util.concurrent.atomic.AtomicInteger ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					public  class  WorkOrder  implements  Delayed  {  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -41,7 +43,7 @@ public class WorkOrder implements Delayed {
				@@ -41,7 +43,7 @@ public class WorkOrder implements Delayed {
					 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  int  workOrderID ;   
			
		
	
		
			
				
					    public  NPC  vendor ;   
			
		
	
		
			
				
					    public  volatile  int  slots_used ;   
			
		
	
		
			
				
					    public  AtomicInteger  slots_used  =  new  AtomicInteger ( 0 ) ;   
			
		
	
		
			
				
					    public  int  total_to_produce ;   
			
		
	
		
			
				
					    public  int  total_produced ;   
			
		
	
		
			
				
					    public  boolean  multiple_slot_request ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -53,7 +55,7 @@ public class WorkOrder implements Delayed {
				@@ -53,7 +55,7 @@ public class WorkOrder implements Delayed {
					 
			
		
	
		
			
				
					    public  int  suffixToken ;   
			
		
	
		
			
				
					    public  long  rollingDuration ;   
			
		
	
		
			
				
					    public  long  completionTime ;   
			
		
	
		
			
				
					    public  volatile  boolean  runCompleted  =  false ;   
			
		
	
		
			
				
					    public  AtomicBoolean  runCompleted  =  new  AtomicBoolean ( false ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // This collection is serialized to the vendor rolling window in ManageNPCMsg.
   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -70,7 +72,7 @@ public class WorkOrder implements Delayed {
				@@ -70,7 +72,7 @@ public class WorkOrder implements Delayed {
					 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        this . workOrderID  =  jsonWorkOrder . getInt ( "workOrderID" ) ;   
			
		
	
		
			
				
					        this . vendor  =  NPC . getNPC ( jsonWorkOrder . getInt ( "vendor" ) ) ;   
			
		
	
		
			
				
					        this . slots_used   =   jsonWorkOrder . getInt ( "slots_used" ) ;   
			
		
	
		
			
				
					        this . slots_used . set ( jsonWorkOrder . getInt ( "slots_used" ) ) ;   
			
		
	
		
			
				
					        this . total_to_produce  =  jsonWorkOrder . getInt ( "total_to_produce" ) ;   
			
		
	
		
			
				
					        this . total_produced  =  jsonWorkOrder . getInt ( "total_produced" ) ;   
			
		
	
		
			
				
					        this . multiple_slot_request  =  jsonWorkOrder . getBoolean ( "multiple_slot_request" ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -78,10 +80,9 @@ public class WorkOrder implements Delayed {
				@@ -78,10 +80,9 @@ public class WorkOrder implements Delayed {
					 
			
		
	
		
			
				
					        this . item_name_override  =  jsonWorkOrder . getString ( "item_name_override" ) ;   
			
		
	
		
			
				
					        this . prefixToken  =  jsonWorkOrder . getInt ( "prefixToken" ) ;   
			
		
	
		
			
				
					        this . suffixToken  =  jsonWorkOrder . getInt ( "suffixToken" ) ;   
			
		
	
		
			
				
					        this . slots_used  =  jsonWorkOrder . getInt ( "slots_used" ) ;   
			
		
	
		
			
				
					        this . rollingDuration  =  jsonWorkOrder . getLong ( "rollingDuration" ) ;   
			
		
	
		
			
				
					        this . completionTime  =  jsonWorkOrder . getLong ( "completionTime" ) ;   
			
		
	
		
			
				
					        this . runCompleted   =   jsonWorkOrder . getBoolean ( "runCompleted" ) ;   
			
		
	
		
			
				
					        this . runCompleted . set ( jsonWorkOrder . getBoolean ( "runCompleted" ) ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        JSONObject  productionCostMap  =  jsonWorkOrder . getJSONObject ( "production_cost" ) ;