forked from MagicBane/Server
refactored out collection
This commit is contained in:
@@ -35,7 +35,6 @@ public enum ForgeManager implements Runnable {
|
|||||||
private static final BlockingQueue<WorkOrder> forge = new DelayQueue<>();
|
private static final BlockingQueue<WorkOrder> forge = new DelayQueue<>();
|
||||||
public static final AtomicInteger wordOrderCounter = new AtomicInteger(0);
|
public static final AtomicInteger wordOrderCounter = new AtomicInteger(0);
|
||||||
public static final HashMap<Integer, Item> inMemoryItemLookup = new HashMap<>();
|
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<>();
|
public static final HashMap<NPC, ArrayList<WorkOrder>> vendorWorkOrderLookup = new HashMap<>();
|
||||||
public static final HashMap<Item, WorkOrder> itemWorkOrderLookup = new HashMap<>();
|
public static final HashMap<Item, WorkOrder> itemWorkOrderLookup = new HashMap<>();
|
||||||
|
|
||||||
@@ -356,7 +355,6 @@ public enum ForgeManager implements Runnable {
|
|||||||
DispatchMessage.dispatchMsgToInterestArea(workOrder.vendor, outMsg, mbEnums.DispatchChannel.SECONDARY, 700, false, false);
|
DispatchMessage.dispatchMsgToInterestArea(workOrder.vendor, outMsg, mbEnums.DispatchChannel.SECONDARY, 700, false, false);
|
||||||
|
|
||||||
workOrder.cooking.remove(memoryItem);
|
workOrder.cooking.remove(memoryItem);
|
||||||
vendorItemLookup.get(workOrder.vendor).remove(memoryItem);
|
|
||||||
itemWorkOrderLookup.remove(memoryItem);
|
itemWorkOrderLookup.remove(memoryItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -375,8 +373,6 @@ public enum ForgeManager implements Runnable {
|
|||||||
|
|
||||||
workOrder.cooking.add(forged_item);
|
workOrder.cooking.add(forged_item);
|
||||||
inMemoryItemLookup.put(forged_item.objectUUID, forged_item);
|
inMemoryItemLookup.put(forged_item.objectUUID, forged_item);
|
||||||
vendorItemLookup.computeIfAbsent(workOrder.vendor, k -> new ArrayList<>());
|
|
||||||
vendorItemLookup.get(workOrder.vendor).add(forged_item);
|
|
||||||
vendorWorkOrderLookup.get(workOrder.vendor).add(workOrder);
|
vendorWorkOrderLookup.get(workOrder.vendor).add(workOrder);
|
||||||
itemWorkOrderLookup.put(forged_item, workOrder);
|
itemWorkOrderLookup.put(forged_item, workOrder);
|
||||||
|
|
||||||
|
|||||||
@@ -147,7 +147,6 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
DispatchMessage.dispatchMsgToInterestArea(vendor, outMsg, mbEnums.DispatchChannel.SECONDARY, 700, false, false);
|
DispatchMessage.dispatchMsgToInterestArea(vendor, outMsg, mbEnums.DispatchChannel.SECONDARY, 700, false, false);
|
||||||
|
|
||||||
workOrder.cooking.remove(virtualItem);
|
workOrder.cooking.remove(virtualItem);
|
||||||
ForgeManager.vendorItemLookup.get(workOrder.vendor).remove(virtualItem);
|
|
||||||
ForgeManager.itemWorkOrderLookup.remove(virtualItem);
|
ForgeManager.itemWorkOrderLookup.remove(virtualItem);
|
||||||
|
|
||||||
|
|
||||||
@@ -368,7 +367,6 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
ForgeManager.inMemoryItemLookup.remove(targetItem.objectUUID);
|
ForgeManager.inMemoryItemLookup.remove(targetItem.objectUUID);
|
||||||
WorkOrder workOrder = ForgeManager.itemWorkOrderLookup.get(targetItem);
|
WorkOrder workOrder = ForgeManager.itemWorkOrderLookup.get(targetItem);
|
||||||
workOrder.cooking.remove(targetItem);
|
workOrder.cooking.remove(targetItem);
|
||||||
ForgeManager.vendorItemLookup.get(workOrder.vendor).remove(targetItem);
|
|
||||||
|
|
||||||
// Refresh vendor's inventory to client
|
// Refresh vendor's inventory to client
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
package engine.net.client.msg;
|
package engine.net.client.msg;
|
||||||
|
|
||||||
import engine.gameManager.ForgeManager;
|
|
||||||
import engine.gameManager.NPCManager;
|
import engine.gameManager.NPCManager;
|
||||||
import engine.gameManager.PowersManager;
|
import engine.gameManager.PowersManager;
|
||||||
import engine.mbEnums.GameObjectType;
|
import engine.mbEnums.GameObjectType;
|
||||||
@@ -434,9 +433,10 @@ public class ManageNPCMsg extends ClientNetMsg {
|
|||||||
writer.put((byte) template.modTable);//EffectItemType
|
writer.put((byte) template.modTable);//EffectItemType
|
||||||
}
|
}
|
||||||
|
|
||||||
writer.putInt(ForgeManager.vendorItemLookup.get(npc).size());
|
ArrayList<Item> cooking = NPCManager.getAllCookingForVendor(npc);
|
||||||
|
writer.putInt(cooking.size());
|
||||||
|
|
||||||
for (Item item : ForgeManager.vendorItemLookup.get(npc)) {
|
for (Item item : cooking) {
|
||||||
|
|
||||||
writer.put((byte) 0); // ? Unknown45
|
writer.put((byte) 0); // ? Unknown45
|
||||||
writer.putInt(item.getObjectType().ordinal());
|
writer.putInt(item.getObjectType().ordinal());
|
||||||
|
|||||||
@@ -871,10 +871,8 @@ public class NPC extends AbstractCharacter {
|
|||||||
|
|
||||||
// If NPC is a vendor then configure ForgeManager support
|
// If NPC is a vendor then configure ForgeManager support
|
||||||
|
|
||||||
if (this.contract.isTrainer() == false) {
|
if (this.contract.isTrainer() == false)
|
||||||
ForgeManager.vendorItemLookup.computeIfAbsent(this, k -> new ArrayList<>()); // Forge lookup
|
|
||||||
ForgeManager.vendorWorkOrderLookup.computeIfAbsent(this, k -> new ArrayList<>());
|
ForgeManager.vendorWorkOrderLookup.computeIfAbsent(this, k -> new ArrayList<>());
|
||||||
}
|
|
||||||
|
|
||||||
this.symbol = this.contract.getIconID();
|
this.symbol = this.contract.getIconID();
|
||||||
this.modTypeTable = this.contract.getNPCModTypeTable();
|
this.modTypeTable = this.contract.getNPCModTypeTable();
|
||||||
|
|||||||
Reference in New Issue
Block a user