Skip to content

Conversation

@bitbrain
Copy link
Owner

@bitbrain bitbrain commented Jan 6, 2024

Description

This lays the foundation for Beehave 3.0 - more details can be found here: #285

Functionalities

The following first need consultation with @bitbrain, as with Beehave V3 the idea is to design interrupts & before/after signals differently to V2.

  • interrupts
  • before/after signals
  • time-strategies (delta vs total)

Base Nodes

  • implement & test BeehaveTree
  • implement & test BeehaveBlackboard

Decorators

  • implement & test BeehaveCooldown
  • implement & test BeehaveDelayer
  • implement & test BeehaveFailer
  • implement & test BeehaveSucceeder
  • implement & test BeehaveInverter
  • implement & test BeehaveLimiter
  • implement & test BeehaveUntilFail
  • implement & test BeehaveTimeLimiter

Composites

  • implement & test BeehaveSelector
  • implement & test BeehaveSelectorRandom
  • implement & test BeehaveSelectorReactive
  • implement & test BeehaveSequence
  • implement & test BeehaveSequenceRandom
  • implement & test BeehaveSequenceReactive
  • implement & test BeehaveSequenceStar

Leafs

  • implement & test BeehaveAction
  • implement & test BeehaveCondition

@bitbrain bitbrain added this to the 3.0.0 milestone Jan 6, 2024
* implement beehave tree ready and blackboard

* recursive glob

* integrate BeehaveSucceeder skeleton
* pass tick

* pass tick

* update gdunit + introduce exports
* progress but failing

* remove debugger test scene

* implement limiter

* implement delayer

* add repeater

* fixes

* time limiter skeleton

* implement remaining nodes

* add blackboard

* fix orphans

* expose values in Dictionary

* more fixes

* attempt to add virtual methods

* kinda fix enum return type

* use global enum
@RafaelVidaurre
Copy link

Curious, what's the current state of the V3 migration?

@bitbrain
Copy link
Owner Author

@RafaelVidaurre see the checkboxes in the description for the current status. In terms of work, I aim to do a bit here and there, but it can take a while because I do this in my freetime as a hobby. ♥️

* add composite

* add selector
@bitbrain
Copy link
Owner Author

PSA: I don't have time or resources right now to complete this migration at the moment. For anyone brave enough, I am willing to review the PRs related to this just ping me.

* Implement BeehaveSequence

* Fix incorrect file name in comment

---------

Co-authored-by: LenNerd42 <[email protected]>
@LenNerd42
Copy link

@bitbrain you mentioned you have some ideas for designing interrupts and before/after signals differently. Since I'm currently re-implementing some nodes that had interrupt and start/end logic - do you still remember what your design ideas were and can I find them written down anywhere?

* Update class icons

* Implement missing composites

---------

Co-authored-by: LenNerd42 <[email protected]>
@bitbrain
Copy link
Owner Author

@LenNerd42 for now, adopt 1:1 what we did in gdscript as well. I initially had a different idea but it is too complicated as a first version.

LenNerd42 and others added 2 commits October 3, 2025 17:33
* Add before_run, after_run and interrupts for decorators

* Add missing decorator icons

* Add before_run, after_run and interrupts for composites and tree

---------

Co-authored-by: LenNerd42 <[email protected]>
* Add before_run, after_run and interrupts for decorators

* Add missing decorator icons

* Add before_run, after_run and interrupts for composites and tree

* First attempt at adding in all leaves

* Fix malformed and broken expressions from clogging up the console

* Add missing bind_methods

* Add configuration warning in case of BeehaveTreeNode children

* Add icons for blackboard utility nodes

* Declare leaves and decorators as non-abstract, so GDScripts can inherit from them

* Turn BeehaveBlackboardCompare into a Condition leaf

* Document blackboard utility nodes

---------

Co-authored-by: LenNerd42 <[email protected]>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@export var key = "custom_value"

func tick(_actor: Node, blackboard: Blackboard) -> int:
func tick(_context: BeehaveContext) -> int:
Copy link

Choose a reason for hiding this comment

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

Bug: Tick Method Mismatch with BeehaveContext

The tick method's signature now takes a BeehaveContext object, but its implementation still directly references actor and blackboard. These variables are no longer direct parameters, causing undefined variable errors.

Additional Locations (2)

Fix in Cursor Fix in Web

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.

5 participants