diff --git a/.gitignore b/.gitignore index 63a70445..808d0b45 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ **/*.import export.cfg export_presets.cfg +*.uid # Mono-specific ignores .mono/ @@ -17,5 +18,9 @@ reports/ *.exp *.lib *.obj +*.os + +.vs + +compile_commands.json -.vs \ No newline at end of file diff --git a/addons/beehave/beehave.gdextension b/addons/beehave/beehave.gdextension index 2f4fe0ad..c365d024 100644 --- a/addons/beehave/beehave.gdextension +++ b/addons/beehave/beehave.gdextension @@ -9,9 +9,9 @@ windows.release.x86_64 = "res://addons/beehave/libs/windows/beehave.windows.temp macos.editor = "res://addons/beehave/libs/macos/beehave.macos.editor.framework" macos.debug = "res://addons/beehave/libs/macos/beehave.macos.template_debug.framework" macos.release = "res://addons/beehave/libs/macos/beehave.macos.template_release.framework" -linux.editor.x86_64 = "res://addons/beehave/libs/linux/beehave.linux.editor.x86_64.so" -linux.debug.x86_64 = "res://addons/beehave/libs/linux/beehave.linux.template_debug.x86_64.so" -linux.release.x86_64 = "res://addons/beehave/libs/linux/beehave.linux.template_release.x86_64.so" +linux.editor.x86_64 = "res://addons/beehave/libs/linux/libbeehave.linux.editor.x86_64.so" +linux.debug.x86_64 = "res://addons/beehave/libs/linux/libbeehave.linux.template_debug.x86_64.so" +linux.release.x86_64 = "res://addons/beehave/libs/linux/libbeehave.linux.template_release.x86_64.so" android.debug.x86_64 = "res://addons/beehave/libs/android/x86_64/beehave.android.template_debug.x86_64.so" android.release.x86_64 = "res://addons/beehave/libs/android/x86_64/beehave.android.template_release.x86_64.so" android.debug.arm64 = "res://addons/beehave/libs/android/arm64/beehave.android.template_debug.arm64.so" @@ -49,4 +49,4 @@ BeehaveCondition = "res://addons/beehave/icons/condition.svg" BeehaveBlackboardCompare = "res://addons/beehave/icons/condition.svg" BeehaveBlackboardErase = "res://addons/beehave/icons/action.svg" BeehaveBlackboardHas = "res://addons/beehave/icons/condition.svg" -BeehaveBlackboardSet = "res://addons/beehave/icons/action.svg" \ No newline at end of file +BeehaveBlackboardSet = "res://addons/beehave/icons/action.svg" diff --git a/examples/actions/SetModulateColor.gd b/examples/actions/SetModulateColor.gd index 89371685..057d2bec 100644 --- a/examples/actions/SetModulateColor.gd +++ b/examples/actions/SetModulateColor.gd @@ -1,4 +1,5 @@ extends BeehaveAction +class_name SetModulateColor @export var modulate_color:Color = Color.WHITE @export var interpolation_time:float = 3.0 diff --git a/examples/beehave_test_scene.tscn b/examples/beehave_test_scene.tscn index 529a0272..fe1bbd21 100644 --- a/examples/beehave_test_scene.tscn +++ b/examples/beehave_test_scene.tscn @@ -1,121 +1,113 @@ -[gd_scene load_steps=12 format=3 uid="uid://dxkotdttpvmb0"] +[gd_scene format=3 uid="uid://dxkotdttpvmb0"] -[ext_resource type="Script" path="res://examples/beehave_test_scene.gd" id="1_18xg1"] +[ext_resource type="Script" uid="uid://cqgc503fsrp33" path="res://examples/beehave_test_scene.gd" id="1_18xg1"] [ext_resource type="Texture2D" uid="uid://uq5muso23nn5" path="res://splash.png" id="2_2q57p"] -[ext_resource type="Script" path="res://examples/ColorChangingSprite.gd" id="3_shmq8"] -[ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="4_yb1gg"] -[ext_resource type="Script" path="res://addons/beehave/nodes/composites/selector_reactive.gd" id="5_l2xef"] -[ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="6_jtsdg"] -[ext_resource type="PackedScene" uid="uid://dl8hr0kerrxsv" path="res://examples/conditions/HasPositivePosition.tscn" id="7_iqb0a"] -[ext_resource type="PackedScene" uid="uid://c3msbcyat8v0n" path="res://examples/actions/SetModulateColor.tscn" id="8_0v48s"] -[ext_resource type="PackedScene" uid="uid://dgbwmcsll3o7t" path="res://examples/conditions/HasNegativePosition.tscn" id="9_x8ohm"] -[ext_resource type="Script" path="res://addons/beehave/blackboard.gd" id="10_y2p03"] +[ext_resource type="Script" uid="uid://kmih8x2f3e2r" path="res://examples/ColorChangingSprite.gd" id="3_shmq8"] +[ext_resource type="Script" uid="uid://bh3kb1mtim2qu" path="res://examples/conditions/HasPositivePosition.gd" id="4_bhsh2"] +[ext_resource type="Script" uid="uid://d4kwef0pab0tk" path="res://examples/actions/SetModulateColor.gd" id="5_1pqnv"] +[ext_resource type="Script" uid="uid://v03com5lqja8" path="res://examples/conditions/HasNegativePosition.gd" id="6_vt6vy"] [sub_resource type="CompressedTexture2D" id="CompressedTexture2D_atdvc"] load_path = "res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" -[node name="BeehaveTestScene" type="Node2D"] +[node name="BeehaveTestScene" type="Node2D" unique_id=560705368] script = ExtResource("1_18xg1") -[node name="Background" type="Sprite2D" parent="."] +[node name="Background" type="Sprite2D" parent="." unique_id=1746992477] modulate = Color(0.882353, 0.882353, 0.882353, 0.141176) position = Vector2(32, 46) scale = Vector2(2.63487, 2.57664) texture = ExtResource("2_2q57p") -[node name="ColorChangingSprite" type="Sprite2D" parent="."] +[node name="ColorChangingSprite" type="Sprite2D" parent="." unique_id=1046372162] scale = Vector2(0.1, 0.1) texture = SubResource("CompressedTexture2D_atdvc") script = ExtResource("3_shmq8") -[node name="BeehaveTree" type="Node" parent="ColorChangingSprite" node_paths=PackedStringArray("blackboard", "actor")] -unique_name_in_owner = true -script = ExtResource("4_yb1gg") -blackboard = NodePath("../../Blackboard") -custom_monitor = true +[node name="BeehaveTree" type="BeehaveTree" parent="ColorChangingSprite" unique_id=607447702 node_paths=PackedStringArray("actor")] actor = NodePath("..") +unique_name_in_owner = true -[node name="SelectorComposite" type="Node" parent="ColorChangingSprite/BeehaveTree"] -script = ExtResource("5_l2xef") +[node name="SelectorComposite" type="BeehaveSelectorReactive" parent="ColorChangingSprite/BeehaveTree" unique_id=1687509923] -[node name="SequenceComposite" type="Node" parent="ColorChangingSprite/BeehaveTree/SelectorComposite"] -script = ExtResource("6_jtsdg") +[node name="SequenceComposite" type="BeehaveSequence" parent="ColorChangingSprite/BeehaveTree/SelectorComposite" unique_id=1998873725] -[node name="HasPositivePosition" parent="ColorChangingSprite/BeehaveTree/SelectorComposite/SequenceComposite" instance=ExtResource("7_iqb0a")] +[node name="HasPositivePosition" type="BeehaveCondition" parent="ColorChangingSprite/BeehaveTree/SelectorComposite/SequenceComposite" unique_id=2037246015] +script = ExtResource("4_bhsh2") +metadata/_custom_type_script = "uid://bh3kb1mtim2qu" -[node name="SetModulateColor" parent="ColorChangingSprite/BeehaveTree/SelectorComposite/SequenceComposite" instance=ExtResource("8_0v48s")] +[node name="SetModulateColor2" type="BeehaveAction" parent="ColorChangingSprite/BeehaveTree/SelectorComposite/SequenceComposite" unique_id=879895773] +script = ExtResource("5_1pqnv") modulate_color = Color(1, 0, 0, 1) +metadata/_custom_type_script = "uid://d4kwef0pab0tk" -[node name="SequenceComposite2" type="Node" parent="ColorChangingSprite/BeehaveTree/SelectorComposite"] -script = ExtResource("6_jtsdg") +[node name="SequenceComposite2" type="BeehaveSequence" parent="ColorChangingSprite/BeehaveTree/SelectorComposite" unique_id=977088190] -[node name="HasNegativePosition" parent="ColorChangingSprite/BeehaveTree/SelectorComposite/SequenceComposite2" instance=ExtResource("9_x8ohm")] +[node name="HasNegativePosition" type="BeehaveCondition" parent="ColorChangingSprite/BeehaveTree/SelectorComposite/SequenceComposite2" unique_id=1665871736] +script = ExtResource("6_vt6vy") +metadata/_custom_type_script = "uid://v03com5lqja8" -[node name="SetModulateColor" parent="ColorChangingSprite/BeehaveTree/SelectorComposite/SequenceComposite2" instance=ExtResource("8_0v48s")] +[node name="SetModulateColor" type="BeehaveAction" parent="ColorChangingSprite/BeehaveTree/SelectorComposite/SequenceComposite2" unique_id=69888968] +script = ExtResource("5_1pqnv") modulate_color = Color(0, 0, 1, 1) +metadata/_custom_type_script = "uid://d4kwef0pab0tk" -[node name="SetModulateColor" parent="ColorChangingSprite/BeehaveTree/SelectorComposite" instance=ExtResource("8_0v48s")] +[node name="SetModulateColor2" type="BeehaveAction" parent="ColorChangingSprite/BeehaveTree/SelectorComposite" unique_id=67563690] +script = ExtResource("5_1pqnv") +metadata/_custom_type_script = "uid://d4kwef0pab0tk" -[node name="Camera2D" type="Camera2D" parent="ColorChangingSprite"] +[node name="Camera2D" type="Camera2D" parent="ColorChangingSprite" unique_id=1056266686] -[node name="Blackboard" type="Node" parent="."] -script = ExtResource("10_y2p03") -blackboard = { -"key": 15.3 -} +[node name="Blackboard" type="BeehaveBlackboard" parent="." unique_id=1665191872] -[node name="AnotherSprite" type="Sprite2D" parent="."] +[node name="AnotherSprite" type="Sprite2D" parent="." unique_id=2129326182] position = Vector2(182, 180) scale = Vector2(0.1, 0.1) texture = SubResource("CompressedTexture2D_atdvc") -[node name="AnotherTree" type="Node" parent="AnotherSprite" node_paths=PackedStringArray("blackboard", "actor")] -script = ExtResource("4_yb1gg") -blackboard = NodePath("../../Blackboard") -custom_monitor = null +[node name="AnotherTree" type="BeehaveTree" parent="AnotherSprite" unique_id=1497505130 node_paths=PackedStringArray("actor")] actor = NodePath("..") -[node name="SelectorComposite" type="Node" parent="AnotherSprite/AnotherTree"] -script = ExtResource("5_l2xef") +[node name="SelectorComposite" type="BeehaveSelectorReactive" parent="AnotherSprite/AnotherTree" unique_id=759015823] -[node name="SequenceComposite" type="Node" parent="AnotherSprite/AnotherTree/SelectorComposite"] -script = ExtResource("6_jtsdg") +[node name="SequenceComposite" type="BeehaveSequence" parent="AnotherSprite/AnotherTree/SelectorComposite" unique_id=727288477] -[node name="HasPositivePosition" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite" instance=ExtResource("7_iqb0a")] +[node name="HasPositivePosition" type="BeehaveCondition" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite" unique_id=1117775728] +script = ExtResource("4_bhsh2") +metadata/_custom_type_script = "uid://bh3kb1mtim2qu" -[node name="SetModulateColor" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite" instance=ExtResource("8_0v48s")] +[node name="SetModulateColor" type="BeehaveAction" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite" unique_id=2031971791] +script = ExtResource("5_1pqnv") modulate_color = Color(1, 0, 0, 1) +metadata/_custom_type_script = "uid://d4kwef0pab0tk" -[node name="SequenceComposite2" type="Node" parent="AnotherSprite/AnotherTree/SelectorComposite"] -script = ExtResource("6_jtsdg") - -[node name="HasNegativePosition" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite2" instance=ExtResource("9_x8ohm")] - -[node name="SetModulateColor" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite2" instance=ExtResource("8_0v48s")] -modulate_color = Color(0, 0, 1, 1) - -[node name="SequenceComposite2" type="Node" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite2"] -script = ExtResource("6_jtsdg") +[node name="SequenceComposite2" type="BeehaveSequence" parent="AnotherSprite/AnotherTree/SelectorComposite" unique_id=130856828] -[node name="HasNegativePosition" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite2/SequenceComposite2" instance=ExtResource("9_x8ohm")] +[node name="HasNegativePosition" type="BeehaveCondition" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite2" unique_id=972076140] +script = ExtResource("6_vt6vy") +metadata/_custom_type_script = "uid://v03com5lqja8" -[node name="SetModulateColor" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite2/SequenceComposite2" instance=ExtResource("8_0v48s")] +[node name="SetModulateColor" type="BeehaveAction" parent="AnotherSprite/AnotherTree/SelectorComposite/SequenceComposite2" unique_id=489871916] +script = ExtResource("5_1pqnv") modulate_color = Color(0, 0, 1, 1) +metadata/_custom_type_script = "uid://d4kwef0pab0tk" -[node name="SetModulateColor" parent="AnotherSprite/AnotherTree/SelectorComposite" instance=ExtResource("8_0v48s")] +[node name="SetModulateColor2" type="BeehaveAction" parent="AnotherSprite/AnotherTree/SelectorComposite" unique_id=340632982] +script = ExtResource("5_1pqnv") +metadata/_custom_type_script = "uid://d4kwef0pab0tk" -[node name="Camera2D" type="Camera2D" parent="AnotherSprite"] +[node name="Camera2D" type="Camera2D" parent="AnotherSprite" unique_id=1918727590] -[node name="CanvasLayer" type="CanvasLayer" parent="."] +[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1853726991] -[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer"] +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer" unique_id=578344731] offset_right = 40.0 offset_bottom = 40.0 -[node name="ConditionLabel" type="Label" parent="CanvasLayer/VBoxContainer"] +[node name="ConditionLabel" type="Label" parent="CanvasLayer/VBoxContainer" unique_id=956099435] unique_name_in_owner = true layout_mode = 2 -[node name="ActionLabel" type="Label" parent="CanvasLayer/VBoxContainer"] +[node name="ActionLabel" type="Label" parent="CanvasLayer/VBoxContainer" unique_id=738666551] unique_name_in_owner = true layout_mode = 2 diff --git a/examples/conditions/HasNegativePosition.gd b/examples/conditions/HasNegativePosition.gd index f6ad4cf1..a340151f 100644 --- a/examples/conditions/HasNegativePosition.gd +++ b/examples/conditions/HasNegativePosition.gd @@ -1,9 +1,9 @@ -extends ConditionLeaf +extends BeehaveCondition +class_name HasNegativePosition func tick(context: BeehaveContext) -> int: - if actor.position.x < 0.0 and actor.position.y < 0.0: + if context.actor.position.x < 0.0 and context.actor.position.y < 0.0: return SUCCESS else: return FAILURE - diff --git a/examples/conditions/HasPositivePosition.gd b/examples/conditions/HasPositivePosition.gd index 2a6421e5..ffa03b6c 100644 --- a/examples/conditions/HasPositivePosition.gd +++ b/examples/conditions/HasPositivePosition.gd @@ -1,9 +1,8 @@ -class_name HasPositivePosition extends ConditionLeaf - +extends BeehaveCondition +class_name HasPositivePosition func tick(context: BeehaveContext) -> int: - if actor.position.x > 0.0 and actor.position.y > 0.0: + if context.actor.position.x > 0.0 and context.actor.position.y > 0.0: return SUCCESS else: return FAILURE - diff --git a/test/nodes/composites/selector_random_test.gd b/test/nodes/composites/selector_random_test.gd index 54471618..e69e6b57 100644 --- a/test/nodes/composites/selector_random_test.gd +++ b/test/nodes/composites/selector_random_test.gd @@ -10,7 +10,7 @@ const __count_up_action = "res://test/actions/count_up_action.gd" const RANDOM_SEED = 123 var tree: BeehaveTree -var selector: SelectorRandomComposite +var selector: BeehaveSelectorRandom var action1: BeehaveAction var action2: BeehaveAction var actor: Node diff --git a/test/randomized_composites/weighted_sampling/selector_random/selector_random_weights.gd b/test/randomized_composites/weighted_sampling/selector_random/selector_random_weights.gd index df5044f9..0fdaaef4 100644 --- a/test/randomized_composites/weighted_sampling/selector_random/selector_random_weights.gd +++ b/test/randomized_composites/weighted_sampling/selector_random/selector_random_weights.gd @@ -49,4 +49,3 @@ func set_weights(common: int, uncommon: int, rare: int, extraordinary: int): selector.set("Weights/Uncommon", uncommon) selector.set("Weights/Rare", rare) selector.set("Weights/Extraordinary", extraordinary) -