More integration work
This commit is contained in:
@@ -17,6 +17,7 @@ import engine.powers.EffectsBase;
|
||||
import engine.powers.poweractions.AbstractPowerAction;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.DelayQueue;
|
||||
@@ -30,9 +31,12 @@ public enum ForgeManager implements Runnable {
|
||||
|
||||
private static final BlockingQueue<WorkOrder> forge = new DelayQueue<>();
|
||||
public static final AtomicInteger wordOrderCounter = new AtomicInteger(0);
|
||||
public static final HashMap<Item, WorkOrder> workOrderMap = new HashMap<Item, WorkOrder>();
|
||||
public static final HashMap<Integer, Item> inMemoryItemLookup = new HashMap<>();
|
||||
public static final HashMap<NPC, ArrayList<Item>> vendorItemLookup = new HashMap<>();
|
||||
public static final HashMap<NPC, ArrayList<WorkOrder>> vendorWorkOrderLookup = new HashMap<>();
|
||||
|
||||
@Override
|
||||
|
||||
public void run() {
|
||||
|
||||
while (true) {
|
||||
@@ -71,10 +75,7 @@ public enum ForgeManager implements Runnable {
|
||||
// worker after first removing the negative id item from all
|
||||
// collections.
|
||||
|
||||
// Add new item to the vendors inventory
|
||||
|
||||
workOrder.runCompleted = true;
|
||||
workOrder.vendor.workOrders.remove(workOrder);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -124,7 +125,6 @@ public enum ForgeManager implements Runnable {
|
||||
forgeItems(workOrder);
|
||||
|
||||
Logger.info(workOrder.toString());
|
||||
workOrder.vendor.workOrders.add(workOrder);
|
||||
forge.add(workOrder);
|
||||
|
||||
return validation_result;
|
||||
@@ -180,7 +180,7 @@ public enum ForgeManager implements Runnable {
|
||||
|
||||
// Slots currently used up by the npc workOrders
|
||||
|
||||
for (WorkOrder npcWorkOrder : workOrder.vendor.workOrders)
|
||||
for (WorkOrder npcWorkOrder : ForgeManager.vendorWorkOrderLookup.get(workOrder.vendor))
|
||||
availableSlots = availableSlots - npcWorkOrder.slots_used;
|
||||
|
||||
// Single item rolls are msg_size of 0;
|
||||
@@ -287,9 +287,10 @@ public enum ForgeManager implements Runnable {
|
||||
for (int i = 0; i < workOrder.slots_used; ++i) {
|
||||
|
||||
Item forged_item = forgeItem(workOrder);
|
||||
ForgeManager.workOrderMap.put(forged_item, workOrder);
|
||||
ForgeManager.inMemoryItemLookup.put(forged_item.objectUUID, forged_item);
|
||||
|
||||
workOrder.cooking.add(forged_item);
|
||||
vendorItemLookup.get(workOrder.vendor).add(forged_item);
|
||||
|
||||
Logger.info("Forging item: " + forged_item.objectUUID + " (" + forged_item.templateID + ") " + forged_item.template.item_base_name);
|
||||
workOrder.total_produced = workOrder.total_produced + 1;
|
||||
|
||||
Reference in New Issue
Block a user