diff --git a/scenes/characters/Character.tscn b/scenes/characters/Character.tscn index 29d0c53..f6ce084 100644 --- a/scenes/characters/Character.tscn +++ b/scenes/characters/Character.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=4 format=3 uid="uid://cozypaw_char"] +[gd_scene load_steps=5 format=3 uid="uid://cozypaw_char"] [ext_resource type="Script" path="res://scripts/characters/character.gd" id="1_char"] [ext_resource type="Script" path="res://scripts/systems/drag_drop_component.gd" id="2_drag"] +[ext_resource type="Script" path="res://scripts/characters/snap_receiver.gd" id="3_snap_recv"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_char"] size = Vector2(64, 80) @@ -49,3 +50,27 @@ input_pickable = true [node name="CollisionShape" type="CollisionShape2D" parent="CollisionArea"] shape = SubResource("RectangleShape2D_char") position = Vector2(0, -40) + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +visible = false + +[node name="OutfitLayer1" type="Sprite2D" parent="."] +position = Vector2(0, -40) +visible = false + +[node name="OutfitLayer2" type="Sprite2D" parent="."] +position = Vector2(0, -40) +visible = false + +[node name="OutfitLayer3" type="Sprite2D" parent="."] +position = Vector2(0, -40) +visible = false + +[node name="HandLeft" type="Node2D" parent="."] +position = Vector2(-32, -30) + +[node name="HandRight" type="Node2D" parent="."] +position = Vector2(32, -30) + +[node name="SnapReceiver" type="Node" parent="."] +script = ExtResource("3_snap_recv") diff --git a/test/unit/test_character_v2.gd b/test/unit/test_character_v2.gd new file mode 100644 index 0000000..ab3d545 --- /dev/null +++ b/test/unit/test_character_v2.gd @@ -0,0 +1,39 @@ +## Tests for Character System v2 — animation state, outfit layers, hand slots. +extends GutTest + +var _char: Character + + +func before_each() -> void: + _char = preload("res://scenes/characters/Character.tscn").instantiate() as Character + add_child_autofree(_char) + var cd: CharacterData = CharacterData.new() + _char.data = cd + + +func test_animated_sprite_node_exists() -> void: + assert_not_null(_char.get_node_or_null("AnimatedSprite2D")) + + +func test_outfit_layer_1_node_exists() -> void: + assert_not_null(_char.get_node_or_null("OutfitLayer1")) + + +func test_outfit_layer_2_node_exists() -> void: + assert_not_null(_char.get_node_or_null("OutfitLayer2")) + + +func test_outfit_layer_3_node_exists() -> void: + assert_not_null(_char.get_node_or_null("OutfitLayer3")) + + +func test_hand_left_node_exists() -> void: + assert_not_null(_char.get_node_or_null("HandLeft")) + + +func test_hand_right_node_exists() -> void: + assert_not_null(_char.get_node_or_null("HandRight")) + + +func test_snap_receiver_node_exists() -> void: + assert_not_null(_char.get_node_or_null("SnapReceiver"))