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); }
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); }
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); }
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; }
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; }
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; }