Example #1
0
 public bool StartCrafting(BlueprintDataBlock blueprint, int amount)
 {
     if (!blueprint.CanWork(amount, this))
     {
         return(false);
     }
     base.networkView.RPC("CRFS", uLink.RPCMode.Server, new object[] { amount, blueprint.uniqueID });
     return(true);
 }
Example #2
0
 public bool StartCrafting(BlueprintDataBlock blueprint, int amount)
 {
     if (blueprint.CanWork(amount, this))
     {
         object[] args = new object[] { amount, blueprint.uniqueID };
         base.networkView.RPC("CRFS", RPCMode.Server, args);
         return(true);
     }
     return(false);
 }
Example #3
0
 public bool Restart(Inventory inventory, int amount, BlueprintDataBlock blueprint, ulong startTimeMillis)
 {
     if (!blueprint || !blueprint.CanWork(amount, inventory))
     {
         this = new CraftingSession();
         return(false);
     }
     this.blueprint       = blueprint;
     this.startTime       = (float)((double)((float)startTimeMillis) / 1000);
     this.duration        = blueprint.craftingDuration * (float)amount;
     this.progressPerSec  = 1f;
     this.progressSeconds = 0f;
     this.amount          = amount;
     this.inProgress      = true;
     return(true);
 }
Example #4
0
 public bool Restart(Inventory inventory, int amount, BlueprintDataBlock blueprint, ulong startTimeMillis)
 {
     if (!blueprint || !blueprint.CanWork(amount, inventory))
     {
         this = new CraftingSession();
         return false;
     }
     this.blueprint = blueprint;
     this.startTime = (float)((double)((float)startTimeMillis) / 1000);
     this.duration = blueprint.craftingDuration * (float)amount;
     this.progressPerSec = 1f;
     this.progressSeconds = 0f;
     this.amount = amount;
     this.inProgress = true;
     return true;
 }
Example #5
0
 public bool StartCrafting(BlueprintDataBlock blueprint, int amount)
 {
     if (!blueprint.CanWork(amount, this))
     {
         return false;
     }
     base.networkView.RPC("CRFS", uLink.RPCMode.Server, new object[] { amount, blueprint.uniqueID });
     return true;
 }
Example #6
0
 public static bool CraftItem(int amount, Inventory workbenchInv, BlueprintDataBlock BDB)
 {
     if (!BDB.CanWork(amount, workbenchInv))
     {
         return false;
     }
     int num = 0;
     PlayerClient playerClient = Array.Find(AllPlayerClients.ToArray(), (PlayerClient pc) => pc.netPlayer == workbenchInv.networkView.owner);
     if (playerClient != null)
     {
         if (!restrictCrafting.Contains(BDB.resultItem.name) || craftList.Contains(playerClient.userID.ToString()))
         {
             for (int i = 0; i < BDB.ingredients.Length; i++)
             {
                 int count = BDB.ingredients[i].amount * amount;
                 if (count != 0)
                 {
                     int num4 = BDB.lastCanWorkIngredientCount[i];
                     for (int j = 0; j < num4; j++)
                     {
                         IInventoryItem item;
                         int slot = BDB.lastCanWorkResult[num++];
                         if (workbenchInv.GetItem(slot, out item) && item.Consume(ref count))
                         {
                             workbenchInv.RemoveItem(slot);
                         }
                     }
                 }
             }
         }
         else
         {
             Broadcast.noticeTo(workbenchInv.networkView.owner, "♨", "You cannot craft this item!", 4);
             return false;
         }
     }
     else
     {
         if (!restrictCrafting.Contains(BDB.resultItem.name))
         {
             for (int i = 0; i < BDB.ingredients.Length; i++)
             {
                 int count = BDB.ingredients[i].amount * amount;
                 if (count != 0)
                 {
                     int num4 = BDB.lastCanWorkIngredientCount[i];
                     for (int j = 0; j < num4; j++)
                     {
                         IInventoryItem item;
                         int slot = BDB.lastCanWorkResult[num++];
                         if (workbenchInv.GetItem(slot, out item) && item.Consume(ref count))
                         {
                             workbenchInv.RemoveItem(slot);
                         }
                     }
                 }
             }
         }
         else
         {
             Broadcast.noticeTo(workbenchInv.networkView.owner, "♨", "You cannot craft this item!", 4);
             return false;
         }
     }
     workbenchInv.AddItemAmount(BDB.resultItem, amount * BDB.numResultItem);
     return true;
 }