More integration work

This commit is contained in:
2024-04-14 14:48:59 -04:00
parent 5e5b9884ef
commit 9464500e95
13 changed files with 59 additions and 1803 deletions
+8 -7
View File
@@ -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;