Decisions_and_Impulses-1.6.jar
Curse Maven Snippet
What's new
# Version 1.6
## Major Architecture Changes
### Gameplay Datapacks Separated from DAI Core
- Removed the built-in Survival gameplay mode from the default DAI runtime.
- Removed the built-in Speedrun and Adventure gameplay modes from the default runtime.
- Converted gameplay modes into standalone datapacks that can be installed, removed, and updated independently.
- DAI now focuses more heavily on being a reusable automation/runtime framework rather than owning a specific gameplay progression.
- Extracted legacy gameplay into standalone packs for compatibility and continued development.
- Cleaned shared core actions that previously routed back into legacy Survival-specific progression.
- Removed hidden fp_cycle / fp_decide dependencies from shared runtime definitions.
### External Gameplay Support
- Expanded support for third-party and standalone DAI gameplay datapacks.
- Datapacks can contribute their own:
- Automation menu entries
- Action menus
- Available menus
- Objectives
- Logic definitions
- Recognition definitions
- Recognition groups
- Gameplay namespaces can now remain fully independent from decisions_and_impulses.
## New Available Menu System
### Conditional Action Menus
- Added dynamically filtered "Available" action menus.
- Menu buttons may now contain normal DAI conditions.
- Buttons automatically disappear when their conditions fail.
- Remaining buttons automatically repack so empty slots are not left behind.
- Available menus reevaluate while open using the normal menu tick loop.
- Current selection is preserved whenever the selected option remains available.
### Named Available Menus
- Available menu JSONs are now independent named menus rather than being merged into one global menu.
- Example:
menus/actions/available/hunt.json
registers the action menu:
hunt
- Named Available menus open through the normal existing menu action:
{
"type": "update_menu",
"menu": "action",
"open": "hunt"
}
- No separate menu-opening API is required.
- Normal and condition-filtered action menus now use the same external interface.
### Dynamic Perception Menus
- Available menus can react to:
- Inventory conditions
- Player health/hunger
- Nearby entities
- Specific entity types
- Nearby recognized structures
- Other registered DAI conditions
- Enables contextual menu trees such as:
- Explore
- Attack
- Hunt
- Harvest
- Situation-specific submenus
## Recognition Improvements
### Nearby Recognition Condition
- Added generic nearby_recognition.
- Allows datapacks to ask whether a registered recognition result exists near the player.
Example:
{
"type": "nearby_recognition",
"parameter": "decisions_and_impulses:tree",
"number_value": 24.0
}
- Recognition checks are non-mutating.
- Passive menu perception no longer changes or steals the player's active DAI target.
### Recognition Perception Cache
- Decoupled expensive structure recognition from the 20 TPS Available-menu refresh.
- Available-menu conditions read cached recognition state each tick.
- Structural recognition refreshes on a reduced cadence.
- Prevents repeated full-world/structure scans every client tick.
- Keeps conditional menus responsive without excessive perception overhead.
### Tree Recognition
- Existing structural tree recognition is now usable directly by contextual gameplay systems.
- Tree detection distinguishes actual tree structures using:
- Trunk groups
- Foliage groups
- Connectivity
- Vertical-column requirements
- Ground contact
- Upper-region foliage relationships
## Creative Builder
### Vanilla Sandstone Pyramid
- Replaced the previous Fuji Academy blueprint/build with a vanilla-style Minecraft sandstone desert pyramid.
- Added a large physical Creative Builder sequence for constructing the pyramid in-world.
- Designed specifically to work cleanly in superflat worlds.
### Physical Creative Building
- Builder now performs physical player-style placement rather than relying on direct world-edit/setblock behavior.
- Required blocks are placed into the player's Creative hotbar.
- Builder physically flies between construction positions.
- Blocks are placed using normal interaction behavior.
### Creative Flight
- Added managed Creative flight movement for large construction sequences.
- Builder can reposition itself automatically while constructing large structures.
### Smooth Placement Camera
- Creative exact placement now smoothly rotates the player's camera toward each intended placement point.
- Placement waits for camera alignment before performing the interaction.
- Managed-look ownership is preserved during exact placement alignment.
### Surface-Normalized Build Origin
- Creative Builder now normalizes the saved build origin to the actual walkable surface.
- Fixes pyramid foundations being generated one block above superflat terrain.
- Particularly improves predictable construction in flat/superflat worlds.
### Placement Diagnostics
- Improved failure reporting for:
- Missing support
- Interaction rejection
- Reach failure
- Camera alignment failure
- Added better placement retry visibility for large physical builds.
## Automation Menu Improvements
### Stop Automation Always Last
- Stop Automation is now structurally pinned to the bottom of the Automation menu.
- Third-party datapacks cannot accidentally insert buttons below it.
- Position is no longer dependent purely on contribution priority.
- Automation contributions continue to merge normally while Stop Automation remains last.
### Third-Party Automation Contributions
- Multiple datapacks can contribute their own Automation menu entries.
- Entries are merged dynamically at datapack load time.
## Logging & Debugging
### Real Debug Configuration
- Added a functional debugging configuration option.
- Debugging defaults to false for release builds.
- Disabling debugging now actually suppresses DAI diagnostic logging.
When disabled:
- <DAI:DEBUG> output is suppressed.
- Detailed human telemetry is suppressed.
- JSONL runtime telemetry is suppressed.
- Large custom debug logs are no longer continuously generated.
Normal:
- INFO
- WARN
- ERROR
messages remain available.
### Automatic Config Migration
- Added automatic config-version migration.
- Older DAI config files are automatically upgraded to the current schema.
- Existing compatible user settings are preserved during migration.
- Config version is rewritten after successful migration.
### Dedicated DAI Log Directory
- DAI-specific logs now remain under:
logs/DAI_Log/
- Human gameplay telemetry was removed from Minecraft's normal latest.log.
- Human trace now writes to:
logs/DAI_Log/human_latest.log
- Added bounded rollover behavior to prevent unlimited human telemetry growth.
### Compact Runtime Diagnostics
- Reduced excessive diagnostic verbosity.
- Runtime snapshots were tightened considerably compared with earlier full-line logging.
- Maintains useful state information without producing enormous debug files during short sessions.
## Datapack Validation
- Continued strengthening datapack validation during reload.
- Invalid action definitions are detected before gameplay execution.
- Validation reports:
- Errors
- Warnings
- Informational messages
- Current gameplay datapacks can be independently validated as they load.
## Navigation & Runtime Improvements
- Continued refinement of target approach handling.
- Improved recovery routing when normal target approach fails.
- Added multiple safe recovery-route attempts before declaring a target unreachable.
- Failed/unreachable targets can be rejected so future searches may select another candidate.
- Improved movement and target-state cleanup when menu actions preempt active automation.
- Menu actions now immediately interrupt stale runtime work when appropriate.
## Harvesting / Gameplay Framework Improvements
### Connected Wood Harvesting Support
- Added datapack-level building blocks for connected-log harvesting using existing DAI actions.
- Wood harvesting can:
- Find an initial nearby log
- Approach and mine it
- Scan the surrounding 26 neighboring blocks
- Continue through adjacent connected logs
- Recover nearby branches
- Collect dropped wood items
- Allows gameplay packs to build tree-harvesting behavior without introducing a hardcoded Java "harvest tree" action.
### Spatial Scanning Reuse
- Existing surrounding_26 spatial scanning is now being reused for connected-structure gameplay logic.
- Enables lightweight adjacency-driven behaviors instead of repeatedly performing large-radius recognition scans.
## Menu / Runtime Philosophy
Version 1.6 moves DAI toward a more modular architecture:
- Java provides reusable capabilities.
- Recognition provides perception.
- Conditions expose current state.
- Available menus expose contextually valid choices.
- Datapacks define gameplay behavior.
- Gameplay modes no longer need to be hardcoded into the base mod.
This makes DAI substantially easier to extend with independent Survival, Speedrun, Adventure, Creative, or third-party automation packs without requiring each gameplay mode to modify the core runtime.
This mod has no additional files