--- type: User Story title: "US-003: Harvest connected mature crops" description: Animate bounded harvesting across connected mature crops when a player performs a normal crop break. status: done --- # US-003: Harvest connected mature crops As a **player**, I want one normal crop break to harvest a connected area at a visible pace so that unlocked farming feels powerful and satisfying without harming server performance. ## Acceptance criteria - [x] Normally breaking a fully grown supported crop starts auto-harvest when the player has at least Level I for that crop. - [x] Breaking while sneaking performs normal single-crop harvesting and never starts auto-harvest. - [x] The manually broken triggering crop is included in the operation's maximum crop count. - [x] Auto-harvest traverses only fully grown crops of the same type as the triggering crop. - [x] A crop is connected when its horizontal position touches the current crop in any of the eight directions and its Y coordinate differs from the current crop by no more than one block. - [x] Connectivity is evaluated per link, allowing a connected operation to follow gradual rises and drops. - [x] Traversal is deterministic and never processes the same block more than once in an operation. - [x] The operation stops when it reaches the player's crop-level cap or no eligible connected crop remains. - [x] Auto-harvest processes a configurable number of crops per server tick, defaulting to one. - [x] A player can have no more than one active auto-harvest operation at a time. - [x] A normal crop broken while that player already has an active operation is harvested normally and may contribute progress, but it does not start or join another operation. - [x] Auto-harvest does not force-load chunks or continue into unloaded chunks. - [x] A crop that is no longer mature or matching when its turn arrives is skipped safely. - [x] Crop breaks denied by the server or another protection plugin are left unchanged, yield no drops, and contribute no progress. - [x] An operation ends safely when exhausted, cancelled, the player disconnects, or the plugin disables. - [x] Separate players may run independent auto-harvest operations concurrently. ## Related - [US-002: Unlock crop auto-harvest levels](us-002-unlock-crop-auto-harvest-levels.md) - [US-004: Replant crops and distribute drops](us-004-replant-crops-and-distribute-drops.md) - [US-007: Configure and persist harvesting behavior](us-007-configure-and-persist-harvesting-behavior.md)