/// <summary> /// Crafts an item from the added ingredients /// </summary> /// <returns>true if item was succesfully created</returns> public bool CraftItem() { if (items.Count < 2) { UISystem.Message("You need to put in at least two items!"); ResetCrafting(); return(false); } ExtractSubstances(); // TODO: other crafting than alchemy int newItem = Alchemy(); if (newItem == 0) { // something went wrong before and // should have already been handled ResetCrafting(); return(false); } UISystem.Message("You just crafted something!"); substances.Clear(); foreach (var itemID in items) { ItemSystem.TryDeleteItem(itemID); } items.Clear(); //var description = EntityManager.GetComponent<DescriptionComponent>(newItem); //description.Name = "Crafted " + description.Name; ItemAddedEvent?.Invoke(Util.PlayerID, newItem); string info = DescriptionSystem.GetDebugInfoEntity(newItem); Log.Message("Crafting successful:"); Log.Data(info); Util.TurnOver(Util.PlayerID); return(true); }
public void AddIngredient(int item) { if (items.Count >= maxSlots) { UISystem.Message("You can't use that many ingredients at once! (max. " + maxSlots + ")"); return; } var substance = EntityManager.GetComponent <SubstanceComponent>(item); if (substance == null) { UISystem.Message("This item can not be used for crafting!"); return; } // remember item and remove it from player inventory items.Add(item); ItemSystem.DecreaseItemCount(Util.PlayerID, item); }