Skip to content

unified bt for modular#1020

Open
yodsv2 wants to merge 1 commit into
apoguita:mainfrom
yodsv2:unify_modular_bt
Open

unified bt for modular#1020
yodsv2 wants to merge 1 commit into
apoguita:mainfrom
yodsv2:unify_modular_bt

Conversation

@yodsv2

@yodsv2 yodsv2 commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

This PR unifies the modular JSON runtime path around BottingTree.

Modular is now only a JSON/data adapter: recipes compile into named planner steps, and BottingTree owns execution, progress, restart/pause behavior, services, and blackboard state.
Shared behavior tree composition/coercion now lives in BehaviorTree, with BT.Composite kept as compatibility delegation rather than a separate implementation.

It also removes the old modular runner/runtime facade, moves hero setup ownership into BottingTree, updates Modular Tester/Coder and campaign prebuilts to use the direct BottingTree path, and refreshes architecture validation/tests around the new contract.

Finally, it fixes the recent dialog flow issues by ensuring multi-dialog NPC interactions move/interact once, wait for the dialog to actually open, then send each dialog id in order.

self._service_steps = list(steps)
self._service_trees = [
(step_name, self._coerce_runtime_tree(subtree_or_builder))
(step_name, BehaviorTree.resolve_tree(subtree_or_builder))

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’s needed for ownership, not because that specific line is dramatically smarter.

self._coerce_runtime_tree(...) was BottingTree-owned coercion logic: “take a tree/node/builder and normalize it into a BehaviorTree.” But after the unification, that semantic belongs to BehaviorTree, not BottingTree.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants