void CollectResource(GameObject obj) { ResourceSource source = obj.GetComponent <ResourceSource>(); switch (CurrentState) { case PlayerState.EmptyHand: if (source.GetTypeOfSource() == TypeOfSource.Feed) { GameObject held = source.GetHeldObject(); if (held == null) { break; } held.GetComponent <HeldObject>().SetNumUnitsHeld(source.UnitsTakenFromSource()); PickupObject(held); } break; case PlayerState.HoldingObject: if (source.GetTypeOfSource() == TypeOfSource.Water) { HeldObject held = ObjectInHand.GetComponent <HeldObject>(); if (held.GetTypeOfObject() != TypeOfObject.Bucket || held.IsCarryingUnits()) { break; } held.SetNumUnitsHeld(source.UnitsTakenFromSource()); held.ChangeObjectState(); FindObjectOfType <AudioManager>().Play("wellSFX"); } break; } }