Uses mainline cache for virtual items

This commit is contained in:
2024-04-20 12:45:05 -04:00
parent 80aa413ea8
commit a46205b67b
3 changed files with 8 additions and 13 deletions
+2 -2
View File
@@ -33,7 +33,6 @@ 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<Integer, Item> inMemoryItemLookup = new HashMap<>();
public static final HashMap<NPC, ArrayList<WorkOrder>> vendorWorkOrderLookup = new HashMap<>();
public static final HashMap<Item, WorkOrder> itemWorkOrderLookup = new HashMap<>();
@@ -306,6 +305,7 @@ public enum ForgeManager implements Runnable {
workOrder.cooking.remove(memoryItem);
itemWorkOrderLookup.remove(memoryItem);
DbManager.removeFromCache(memoryItem);
}
}
@@ -322,7 +322,7 @@ public enum ForgeManager implements Runnable {
// Add virtual item to in-memory caches
workOrder.cooking.add(forged_item);
inMemoryItemLookup.put(forged_item.objectUUID, forged_item);
DbManager.addToCache(forged_item);
vendorWorkOrderLookup.get(workOrder.vendor).add(workOrder);
itemWorkOrderLookup.put(forged_item, workOrder);
@@ -129,7 +129,7 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
private static void completeItem(int itemUUID, NPC vendor) {
Item virtualItem = ForgeManager.inMemoryItemLookup.get(itemUUID);
Item virtualItem = Item.getFromCache(itemUUID);
WorkOrder workOrder = ForgeManager.itemWorkOrderLookup.get(virtualItem);
// Refresh the window. SetPrice is used only to force a window refresh.
@@ -142,6 +142,7 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
workOrder.cooking.remove(virtualItem);
ForgeManager.itemWorkOrderLookup.remove(virtualItem);
DbManager.removeFromCache(virtualItem);
// WorkOrder exists until all items are completed or junked
// this is to hold a reference to the virtual item for serialization (NPCMsgHandler)
@@ -364,7 +365,7 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
try {
targetItem = ForgeManager.inMemoryItemLookup.get(itemUUID);
targetItem = Item.getFromCache(itemUUID);
PlayerCharacter player = origin.getPlayerCharacter();
@@ -381,10 +382,9 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
if (vendor.getBuilding() == null)
return;
ForgeManager.inMemoryItemLookup.remove(targetItem.objectUUID);
WorkOrder workOrder = ForgeManager.itemWorkOrderLookup.get(targetItem);
workOrder.cooking.remove(targetItem);
DbManager.removeFromCache(targetItem);
// WorkOrder exists until all items are completed or junked
// this is to hold a reference to the virtual item for serialization (NPCMsgHandler)
@@ -10,7 +10,6 @@
package engine.net.client.msg;
import engine.gameManager.BuildingManager;
import engine.gameManager.ForgeManager;
import engine.mbEnums;
import engine.mbEnums.GameObjectType;
import engine.net.*;
@@ -142,11 +141,7 @@ public class ItemProductionMsg extends ClientNetMsg {
writer.putInt(0);
writer.put((byte) 1);
Item item;
if (this.itemUUID > 0)
item = Item.getFromCache(this.itemUUID);
else
item = ForgeManager.inMemoryItemLookup.get(this.itemUUID);
Item item = Item.getFromCache(this.itemUUID);
if (item != null)
Item.serializeForClientMsgWithoutSlot(item, writer);
@@ -237,7 +232,7 @@ public class ItemProductionMsg extends ClientNetMsg {
writer.putInt(0);
writer.putInt(0);
writer.putInt(1);
Item toRoll = ForgeManager.inMemoryItemLookup.get(this.itemUUID);
Item toRoll = Item.getFromCache(this.itemUUID);
writer.putInt(-1497023830);
this.pToken = toRoll.prefixToken;