State OnCheckState() { passedTime = System.TimeSpan.Zero; bool isUnhold; var allDishes = runtimeData.GetList <DBCraftingItem>() .Where(x => x.tableUID == runtimeTable.uid) .OrderBy(x => x.insertedTime) .ToList(); currentMaking = FIShareCraftFunc.GetCurrentCookingRecipe( easy.GlobalInfo.totalCraftedCompleteCnt, easy.ServerTime - runtimeTable.recipeStartedTime, allDishes, out passedTime, out isUnhold); if (currentMaking == null) { return(State.Empty); } if (isUnhold == true) { return(State.Unhold); } return(State.Making); }
public static DBCraftingItem GetCurrentCookingRecipe(int completeQueueSize, System.TimeSpan passedTime, List <DBCraftingItem> allDish, out System.TimeSpan currentPassed, out bool isUnhold) { DBCraftingItem current = null; isUnhold = false; currentPassed = System.TimeSpan.Zero; int cnt = 0; foreach (var item in allDish) { if (cnt >= completeQueueSize) { //There is more product.. but its holding right now! current = item; isUnhold = true; return(current); } if (item.reqTime < passedTime) { //This is made. passedTime -= item.reqTime; cnt++; continue; } //Done.. current = item; break; } if (current == null) { return(null); } currentPassed = passedTime; return(current); }
State OnCheckState() { var upgradeCnt = staticTable.maxSlot - staticTable.minSlot; var curSlotCnt = runtimeTable.upgradeLv + staticTable.minSlot - 1; // -1 is for CurrentMakingArea var totalAvailableUpgradeCnt = upgradeCnt - runtimeTable.upgradeLv; if (idx == curSlotCnt) { if (totalAvailableUpgradeCnt > 0) { return(State.Expand); } throw new System.Exception("Cannot Come here!"); } else if (idx > curSlotCnt) { return(State.CannotExpand); } var allDishes = runtimeData.GetList <DBCraftingItem>() .Where(x => x.tableUID == runtimeTable.uid) .OrderBy(x => x.insertedTime) .ToList(); remainingList = FIShareCraftFunc.GetRemainingDishList( easy.GlobalInfo.totalCraftedCompleteCnt, easy.ServerTime - runtimeTable.recipeStartedTime, allDishes ); // Debug.Log("Idx="+idx.ToString()+" Remain="+remainingList.Count); if (idx < remainingList.Count) { //This is making.. currentItem = remainingList[idx]; return(State.Waiting); } currentItem = null; return(State.Empty); }