forked from MagicBane/Server
forge items each cycle
This commit is contained in:
@@ -34,7 +34,6 @@ public enum ForgeManager implements Runnable {
|
|||||||
while (true) {
|
while (true) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
WorkOrder workOrder = workOrders.take();
|
WorkOrder workOrder = workOrders.take();
|
||||||
|
|
||||||
// Completed or canceled work orders are not re-enqueued
|
// Completed or canceled work orders are not re-enqueued
|
||||||
@@ -42,36 +41,29 @@ public enum ForgeManager implements Runnable {
|
|||||||
if (workOrder.runCanceled || workOrder.runCompleted)
|
if (workOrder.runCanceled || workOrder.runCompleted)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Create negative ID items to add to collections
|
// Create in memory items to add to collections
|
||||||
|
forgeItems(workOrder);
|
||||||
for (int i = 0; i < workOrder.slots_used; ++i) {
|
|
||||||
|
|
||||||
// Create workOrder items; one for each slot
|
|
||||||
// assigned to this workOrder.
|
|
||||||
|
|
||||||
// if Prefix and suffix are null random roll item
|
|
||||||
// otherwise roll what was asked for
|
|
||||||
|
|
||||||
workOrder.total_produced = workOrder.total_produced + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Logger.info("item forged:" + workOrder.workOrderID + " (" + workOrder.total_produced + "/" + workOrder.total_to_produce + ")");
|
Logger.info("item forged:" + workOrder.workOrderID + " (" + workOrder.total_produced + "/" + workOrder.total_to_produce + ")");
|
||||||
|
|
||||||
|
|
||||||
if (workOrder.total_produced >= workOrder.total_to_produce) {
|
if (workOrder.total_produced >= workOrder.total_to_produce) {
|
||||||
|
|
||||||
Logger.info("workOrder has completed: " + workOrder.workOrderID);
|
Logger.info("workOrder has completed: " + workOrder.workOrderID);
|
||||||
|
|
||||||
|
// Persist current items that are cooking
|
||||||
|
// after removing the negative id item from all collections.
|
||||||
|
|
||||||
|
// Add new item to the vendors inventory
|
||||||
|
|
||||||
workOrder.runCompleted = true;
|
workOrder.runCompleted = true;
|
||||||
workOrder.vendor.workOrders.remove(workOrder);
|
workOrder.vendor.workOrders.remove(workOrder);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Persist current items that are cooking
|
|
||||||
// after removing the negative id item from all collections.
|
|
||||||
|
|
||||||
// Add new item to the vendors inventory
|
// enQueue this workOrder again; back into the oven
|
||||||
|
// until all items for this workOrder are completed.
|
||||||
// Resubmit workOrder
|
|
||||||
|
|
||||||
workOrder.completionTime = System.currentTimeMillis() + workOrder.rollingDuration;
|
workOrder.completionTime = System.currentTimeMillis() + workOrder.rollingDuration;
|
||||||
workOrders.add(workOrder);
|
workOrders.add(workOrder);
|
||||||
@@ -263,6 +255,7 @@ public enum ForgeManager implements Runnable {
|
|||||||
forgedItem.objectUUID = MobLoot.lastNegativeID.getAndDecrement();
|
forgedItem.objectUUID = MobLoot.lastNegativeID.getAndDecrement();
|
||||||
forgedItem.containerType = mbEnums.ItemContainerType.FORGE;
|
forgedItem.containerType = mbEnums.ItemContainerType.FORGE;
|
||||||
forgedItem.ownerID = workOrder.vendor.getObjectUUID();
|
forgedItem.ownerID = workOrder.vendor.getObjectUUID();
|
||||||
|
forgedItem.setDateToUpgrade(workOrder.completionTime);
|
||||||
|
|
||||||
// Forged items are unidentified until completed
|
// Forged items are unidentified until completed
|
||||||
|
|
||||||
@@ -277,10 +270,11 @@ public enum ForgeManager implements Runnable {
|
|||||||
|
|
||||||
Item forged_item = forgeItem(workOrder);
|
Item forged_item = forgeItem(workOrder);
|
||||||
ForgeManager.oven.put(forged_item, workOrder);
|
ForgeManager.oven.put(forged_item, workOrder);
|
||||||
|
|
||||||
workOrder.cooking.add(forged_item);
|
workOrder.cooking.add(forged_item);
|
||||||
|
|
||||||
workOrder.total_produced = workOrder.total_produced + 1;
|
workOrder.total_produced = workOrder.total_produced + 1;
|
||||||
Logger.info("Forged item: " + forged_item.objectUUID + " of template " + forged_item.templateID);
|
Logger.info("Forging item: " + forged_item.objectUUID + " of template " + forged_item.templateID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
package engine.net.client.handlers;
|
package engine.net.client.handlers;
|
||||||
|
|
||||||
|
|
||||||
import engine.exception.MsgSendException;
|
import engine.exception.MsgSendException;
|
||||||
import engine.gameManager.ChatManager;
|
import engine.gameManager.ChatManager;
|
||||||
import engine.gameManager.DbManager;
|
import engine.gameManager.DbManager;
|
||||||
@@ -34,6 +33,7 @@ import java.util.HashMap;
|
|||||||
* @Summary: Processes application protocol message which modifies
|
* @Summary: Processes application protocol message which modifies
|
||||||
* hireling inventory through rolling, junking or depositing.
|
* hireling inventory through rolling, junking or depositing.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
|
public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
|
||||||
|
|
||||||
public ItemProductionMsgHandler() {
|
public ItemProductionMsgHandler() {
|
||||||
|
|||||||
Reference in New Issue
Block a user