void OnSelectedInteractableChanged(Transform t) { switch (t.parent.tag) { case "Water": selectedInteractable = ItemType.Water; break; case "Grass": selectedInteractable = ItemType.Grass; break; case "Chicken": selectedInteractable = ItemType.Chicken; break; case "Egg": selectedInteractable = ItemType.Egg; break; case "Carrot": selectedInteractable = ItemType.Carrot; break; case "MrBiscuits": selectedInteractable = ItemType.MrBiscuits; break; case "WaterSpawner": selectedInteractable = ItemType.WaterSpawner; break; case "GrassSpawner": selectedInteractable = ItemType.GrassSpawner; break; case "CarrotSpawner": selectedInteractable = ItemType.CarrotSpawner; break; case "MrBiscuits2": selectedInteractable = ItemType.MrBiscuits2; break; case "MrBiscuits3": selectedInteractable = ItemType.MrBiscuits3; break; case "MrBiscuits4": selectedInteractable = ItemType.MrBiscuits4; break; case "BatSpawner": selectedInteractable = ItemType.BatSpawner; break; } selectedInteractableTransform = t; if (selectedItem == ItemType.None) { switch (selectedInteractable) { case ItemType.Carrot: case ItemType.Chicken: case ItemType.Egg: case ItemType.Grass: case ItemType.Water: Utility.SendMessageToChildren( transform.parent, "SetInteraction", InteractionCanvasController.Interaction.Take, SendMessageOptions.DontRequireReceiver); break; default: Utility.SendMessageToChildren( transform.parent, "SetInteraction", InteractionCanvasController.Interaction.None, SendMessageOptions.DontRequireReceiver); break; } } else { if (FeedRules.CanBeFed(selectedInteractable, selectedItem)) { Utility.SendMessageToChildren( transform.parent, "SetInteraction", InteractionCanvasController.Interaction.Feed, SendMessageOptions.DontRequireReceiver); } else { Utility.SendMessageToChildren( transform.parent, "SetInteraction", InteractionCanvasController.Interaction.None, SendMessageOptions.DontRequireReceiver); } } }
void Update() { if (Input.GetButtonDown("Interact")) { // Pick up if (selectedItem == ItemType.None) { switch (selectedInteractable) { case ItemType.None: break; case ItemType.Water: SetSelectedItem(selectedInteractable); Utility.SendMessageToChildren( transform.parent, "SetInteraction", InteractionCanvasController.Interaction.None, SendMessageOptions.DontRequireReceiver); source.PlayOneShot(clips[0]); break; case ItemType.Grass: case ItemType.Egg: case ItemType.Carrot: case ItemType.Chicken: SetSelectedItem(selectedInteractable); Utility.PhysicalDestroy(selectedInteractableTransform.parent.gameObject); Utility.SendMessageToChildren( transform.parent, "SetInteraction", InteractionCanvasController.Interaction.None, SendMessageOptions.DontRequireReceiver); source.PlayOneShot(clips[0]); break; } } // Feed else { switch (selectedInteractable) { case ItemType.None: // Eat Utility.SendMessageToChildren(transform.parent, "OnFedItem", selectedItem, SendMessageOptions.DontRequireReceiver); SetSelectedItem(ItemType.None); fedSelf = true; TryMovingPhase(); Utility.SendMessageToChildren( transform.parent, "SetInteraction", InteractionCanvasController.Interaction.None, SendMessageOptions.DontRequireReceiver); ScreenShaker.Shake(0.5f, 0.1f); source.PlayOneShot(clips[2]); break; case ItemType.WaterSpawner: break; case ItemType.GrassSpawner: fedGrass = true; TryMovingPhase(); if (!FeedRules.CanBeFed(selectedInteractable, selectedItem)) { break; } FeedInteractable(); break; case ItemType.CarrotSpawner: fedCarrot = true; TryMovingPhase(); if (!FeedRules.CanBeFed(selectedInteractable, selectedItem)) { break; } FeedInteractable(); break; case ItemType.Chicken: fedChicken = true; TryMovingPhase(); if (!FeedRules.CanBeFed(selectedInteractable, selectedItem)) { break; } FeedInteractable(); break; case ItemType.MrBiscuits: case ItemType.MrBiscuits2: case ItemType.MrBiscuits3: case ItemType.MrBiscuits4: case ItemType.BatSpawner: if (!FeedRules.CanBeFed(selectedInteractable, selectedItem)) { break; } FeedInteractable(); break; } } } }