mirror of
				https://github.com/flame-engine/flame.git
				synced 2025-11-01 01:18:38 +08:00 
			
		
		
		
	 a1f9633cbc
			
		
	
	a1f9633cbc
	
	
	
		
			
			``` Package Name Current Version Updated Version Update Reason behavior_tree 0.1.1 0.1.2 manual versioning flame 1.17.0 1.18.0 manual versioning flame_behavior_tree 0.1.1 0.1.2 manual versioning flame_forge2d 0.18.0 0.18.1 manual versioning flame_isolate 0.6.0+1 0.6.1 manual versioning flame_markdown 0.2.0+1 0.2.1 manual versioning flame_oxygen 0.2.1 0.2.2 manual versioning flame_sprite_fusion 0.1.1 0.1.2 manual versioning flame_lottie 0.4.0+1 0.4.1 manual versioning flame_noise 0.3.0+1 0.3.1 manual versioning flame_network_assets 0.3.1 0.3.2 manual versioning flame_spine 0.2.0+1 0.2.1 manual versioning flame_audio 2.10.1 2.10.2 updated with patch changes flame_bloc 1.11.1 1.12.0 updated with minor changes flame_lint 1.1.2 1.2.0 updated with minor changes flame_rive 1.10.1 1.10.2 updated with patch changes flame_texturepacker 4.0.0 4.0.1 updated with patch changes flame_tiled 1.20.1 1.20.2 updated with patch changes jenny 1.3.0 1.3.1 updated with patch changes flame_test 1.16.1 1.16.2 dependency was updated flame_fire_atlas 1.5.1 1.5.2 dependency was updated flame_riverpod 5.4.1 5.4.2 dependency was updated flame_svg 1.10.1 1.10.2 dependency was updated ```
This package provides a simple and easy to use behavior tree API in pure dart.
Behavior tree is a very common way of implementing AI behavior in game and robotics. Using this, you can break-down a complex behavior of an in game AI, into multiple smaller nodes.
Features
- Nodes
- Composite
- Sequence: Continues execution until one of the children fails.
- Selector: Continues execution until one of the children succeeds.
 
- Decorator
- Inverter: Flips the status of the child node.
- Limiter: Limits the number of ticks for child node.
 
- Task
- Task: Executes a given callback when ticked.
- AsyncTask: Executes an async callback when ticked.
- Condition: Checks a condition when ticked.
 
 
- Composite
Getting started
Add this package to your dart project using,
dart pub add behavior_tree
Usage
- Create a behavior tree.
final treeRoot = Sequence(
  children: [
    Condition(() => isHungry),
    Task(() => goToShop()),
    Task(() => buyFood()),
    Task(() => goToHome()),
    Task(() => eatFood()),
  ]
);
- Tick the root node to update the tree.
final treeRoot = ...;
treeRoot.tick();
