feat(progress): add species unlock progression
This commit is contained in:
@@ -34,3 +34,11 @@
|
||||
- Added UUID-keyed immutable player state with retained names, saturating progress, unlocks, preferences, locks, defensive reads, forward-field retention, and atomic YAML replacement.
|
||||
- Invalid required configuration now disables partial plugin startup with a focused log message.
|
||||
- Verified settings, persistence, corruption handling, atomic replacement, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### US-001 species unlock progression completed
|
||||
|
||||
- Added stable taxonomy for all approved overworld trees, Nether fungi, and giant mushrooms while excluding bamboo and treating azalea logs as oak.
|
||||
- Replaced the old recursive search with a deterministic, bounded, iterative scanner that follows connected trunk blocks laterally and upward but never downward and requires matching foliage or caps.
|
||||
- Added Survival-and-axe eligibility, automatic-break suppression, durable one-point increments, saturating counters, permanent unlocks, and next-qualifying-block threshold evaluation.
|
||||
- Registered progress handling through the Spigot block-break lifecycle and persisted every accepted update before notifying observers.
|
||||
- Verified taxonomy, detection, tools, eligibility, progression, persistence, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
type: User Story
|
||||
title: "US-001: Earn tree-type unlocks"
|
||||
description: Let players earn permanent automatic felling separately for each supported tree species.
|
||||
status: backlog
|
||||
status: done
|
||||
---
|
||||
|
||||
# US-001: Earn tree-type unlocks
|
||||
@@ -11,17 +11,17 @@ As a **survival player**, I want to unlock Tree Feller by practicing with each t
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] Progress is tracked independently for oak, spruce, birch, jungle, acacia, dark oak, mangrove, cherry, pale oak, crimson fungi, warped fungi, giant red mushrooms, and giant brown mushrooms as represented by Spigot 26.2 materials.
|
||||
- [ ] Azalea-grown oak logs contribute to oak progress, and bamboo does not contribute to any tree species.
|
||||
- [ ] A block contributes progress only when a player manually breaks it in Survival mode, with an axe, from a structure that passes Tree Feller's tree validation.
|
||||
- [ ] Creative-mode breaks, non-axe breaks, cancelled breaks, and blocks removed by automatic felling do not contribute progress.
|
||||
- [ ] Each qualifying manually mined block contributes exactly one point to its species.
|
||||
- [ ] Each species has an independently configurable unlock threshold that defaults to 100 blocks.
|
||||
- [ ] Reaching the active threshold permanently unlocks automatic felling for that species.
|
||||
- [ ] A threshold lowered below a player's saved progress grants the unlock when that player next mines a qualifying block of the species, not immediately when configuration changes.
|
||||
- [ ] Raising a threshold never removes an earned unlock.
|
||||
- [ ] A player whose automatic felling is disabled or administratively locked may continue earning progress through qualifying manual mining.
|
||||
- [ ] Progress and unlocks survive logout and server restart.
|
||||
- [x] Progress is tracked independently for oak, spruce, birch, jungle, acacia, dark oak, mangrove, cherry, pale oak, crimson fungi, warped fungi, giant red mushrooms, and giant brown mushrooms as represented by Spigot 26.2 materials.
|
||||
- [x] Azalea-grown oak logs contribute to oak progress, and bamboo does not contribute to any tree species.
|
||||
- [x] A block contributes progress only when a player manually breaks it in Survival mode, with an axe, from a structure that passes Tree Feller's tree validation.
|
||||
- [x] Creative-mode breaks, non-axe breaks, cancelled breaks, and blocks removed by automatic felling do not contribute progress.
|
||||
- [x] Each qualifying manually mined block contributes exactly one point to its species.
|
||||
- [x] Each species has an independently configurable unlock threshold that defaults to 100 blocks.
|
||||
- [x] Reaching the active threshold permanently unlocks automatic felling for that species.
|
||||
- [x] A threshold lowered below a player's saved progress grants the unlock when that player next mines a qualifying block of the species, not immediately when configuration changes.
|
||||
- [x] Raising a threshold never removes an earned unlock.
|
||||
- [x] A player whose automatic felling is disabled or administratively locked may continue earning progress through qualifying manual mining.
|
||||
- [x] Progress and unlocks survive logout and server restart.
|
||||
|
||||
## Related
|
||||
|
||||
|
||||
Reference in New Issue
Block a user