public InteractionTypes Use(IInteractionComponent interactor) { switch (state) { case States.Empty: if (interactor.CurrentItem != null) { return(InteractionTypes.Place); } return(InteractionTypes.None); case States.HasItem: if (interactor.CurrentItem != null) { return(item.CanCombine(interactor.CurrentItem.Ingredient)); } return(InteractionTypes.Grab); default: Debug.LogError("invalid state: " + state); break; } return(InteractionTypes.None); }