/// <summary> /// Craftea el objeto que estuviera en cola. /// </summary> public void Craftear(Estructura build, GameAction action) { if (ComprobarAcceso(action) || build == null) { return; } Crafteable craftTable = build.GetComponent <Crafteable>(); if (craftTable == null) { Debug.LogWarning("Craftear::ActionMethods error: Eso no es mesa de crafteo..."); return; } Craft crafteo = craftTable.GetThisCraft(); if (crafteo == null) { return; } foreach (ResourceInfo info in crafteo.requisitos) { action.worker.inventario.RemoveResource(info.type, info.quantity); } action.worker.inventario.AddResource(crafteo.obtencion.type, crafteo.obtencion.quantity); craftTable.FinishCraft(); if (craftTable.HasMoreCrafts()) { actions.CreateAction(action, action.worker, true, action.prioridad, craftTable.GetThisCraft().requisitos); } }
/// <summary> /// Muestra en pantalla la mesa actual. /// </summary> /// <param name="table"></param> public void SetCraftableTable(Crafteable table) { actualTable = table; //Añadir solo las recetas de crafteos disponible para esta mesa. //Por ejemplo, las recetas de cocina estaran ocultos para la estructura de mesa. foreach (CrafteoBoton boton in listaBotones.Keys) { bool activar = listaBotones[boton].tipoCraft == table.tipoCrafteador; boton.gameObject.SetActive(activar); for (int i = 0; i < botonesCola.Length; i++) { if (i < table.crafteos.Count) { botonesCola[i].obtencion.imagen.enabled = true; botonesCola[i].obtencion.imagen.sprite = manager.resourceController.GetSprite(table.crafteos[i].obtencion.type); botonesCola[i].obtencion.cantidad.text = table.crafteos[i].obtencion.quantity.ToString(); } else { botonesCola[i].obtencion.imagen.enabled = false; botonesCola[i].obtencion.cantidad.text = ""; } } } toggleRepetir.isOn = actualTable.repetir; UpdateCraft(); }