public override void ReactionComplete() { //If the parent isn't loaded, save the changes in our own slots //Otherwise, modify the parent MachineUI directly ReinforcedFurnaceUI ui = ParentState as ReinforcedFurnaceUI; if (!(ui?.Active ?? false)) { Item input = GetItem(0); Item result = GetItem(1); Do_Reaction(input, result); // Main.NewText($"Edited entity slots: \"{Lang.GetItemNameValue(fuel.type)}\" ({fuel.stack}), \"{Lang.GetItemNameValue(result.type)}\" ({result.stack})"); } else { UIItemSlot input = ui.GetSlot(0); UIItemSlot resultSlot = ui.GetSlot(1); Do_Reaction(input.StoredItem, resultSlot.StoredItem); // Main.NewText($"Edited UI slots: \"{Lang.GetItemNameValue(fuel.StoredItem.type)}\" ({fuel.StoredItem.stack}), \"{Lang.GetItemNameValue(resultSlot.StoredItem.type)}\" ({resultSlot.StoredItem.stack})"); } Vector2 center = TileUtils.TileEntityCenter(this, MachineTile); this.PlayCustomSound(center, "Flame Arrow"); }
internal override bool CanInputItem(int slot, Item item) => slot == 0 && ReinforcedFurnaceUI.ValidItem(item);