Rework player state system to use an event subscription system to avoid directly calling methods on individual state and having to worry about validity
This commit is contained in:
49
Entities/Characters/Player/player_map_entity.tscn
Normal file
49
Entities/Characters/Player/player_map_entity.tscn
Normal file
@@ -0,0 +1,49 @@
|
||||
[gd_scene format=3 uid="uid://c65cfm3t0obwq"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://6athlweutl2g" path="res://Entities/Characters/Player/Individual Components/body.tscn" id="1_62n52"]
|
||||
[ext_resource type="PackedScene" uid="uid://uyl0s1e67x6s" path="res://Entities/Characters/Player/Individual Components/sprite.tscn" id="2_1uhri"]
|
||||
[ext_resource type="PackedScene" uid="uid://c2ydbmmvnfca6" path="res://Entities/Characters/Player/Individual Components/state_machine.tscn" id="3_1uhri"]
|
||||
[ext_resource type="Script" uid="uid://dkmc1t43gomdb" path="res://Entities/Characters/Player/Scripts/States/idle_state.gd" id="4_evnf3"]
|
||||
[ext_resource type="PackedScene" uid="uid://nbkisxm2oekn" path="res://Entities/Characters/Utility/Components/movement_component.tscn" id="5_h314u"]
|
||||
[ext_resource type="Script" uid="uid://bwmmah30t3m0u" path="res://Entities/Characters/Player/Scripts/States/walking_state.gd" id="5_rg3km"]
|
||||
[ext_resource type="Script" uid="uid://ctoxjn2rvtjs6" path="res://Entities/Characters/Player/Scripts/state_event_connector.gd" id="6_18fwg"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_62n52"]
|
||||
size = Vector2(13, 9)
|
||||
|
||||
[node name="Player Map Entity" type="Node2D" unique_id=469362016]
|
||||
y_sort_enabled = true
|
||||
|
||||
[node name="Player Body" parent="." unique_id=1502234578 instance=ExtResource("1_62n52")]
|
||||
|
||||
[node name="Sprite" parent="Player Body" unique_id=1169131604 instance=ExtResource("2_1uhri")]
|
||||
position = Vector2(0, 7)
|
||||
offset = Vector2(0, -7)
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Player Body" unique_id=760188594]
|
||||
position = Vector2(-0.5, 4.5)
|
||||
shape = SubResource("RectangleShape2D_62n52")
|
||||
|
||||
[node name="State Machine" parent="." unique_id=732559774 node_paths=PackedStringArray("states_container", "current_state") instance=ExtResource("3_1uhri")]
|
||||
states_container = NodePath(".")
|
||||
current_state = NodePath("Idle")
|
||||
|
||||
[node name="Idle" type="Node" parent="State Machine" unique_id=1849660058 node_paths=PackedStringArray("state_machine")]
|
||||
script = ExtResource("4_evnf3")
|
||||
state_machine = NodePath("..")
|
||||
|
||||
[node name="Walking" type="Node" parent="State Machine" unique_id=485440867 node_paths=PackedStringArray("body", "state_machine")]
|
||||
script = ExtResource("5_rg3km")
|
||||
body = NodePath("../../Player Body")
|
||||
state_machine = NodePath("..")
|
||||
|
||||
[node name="Movement Component" parent="." unique_id=737644583 instance=ExtResource("5_h314u")]
|
||||
|
||||
[node name="Internal (Code Here)" type="Node" parent="." unique_id=95043416]
|
||||
|
||||
[node name="State Event Connector" type="Node" parent="Internal (Code Here)" unique_id=186266500 node_paths=PackedStringArray("state_machine")]
|
||||
script = ExtResource("6_18fwg")
|
||||
state_machine = NodePath("../../State Machine")
|
||||
|
||||
[connection signal="MovementQueued" from="Movement Component" to="Internal (Code Here)/State Event Connector" method="OnMovementQueued"]
|
||||
[connection signal="NoMovementQueued" from="Movement Component" to="Internal (Code Here)/State Event Connector" method="OnNoMovementQueued"]
|
||||
Reference in New Issue
Block a user