From 64a9b9864410baa960135c4e1c4e025370d5517b Mon Sep 17 00:00:00 2001 From: HumanoidSandvichDispenser Date: Tue, 23 May 2023 00:25:28 -0700 Subject: [PATCH] new state machines and layers --- Characters/ExampleEnemy.tscn | 11 +- Characters/Player.tscn | 20 +- Characters/States/Machine.cs | 90 ----- Scenes/BaseMap.tscn | 720 +++++++++++++++++++++++++++++++++++ Scenes/Maps/Hills.tscn | 219 +++++++++++ Scenes/Maps/Meadow.tscn | 2 +- project.godot | 1 + 7 files changed, 959 insertions(+), 104 deletions(-) delete mode 100644 Characters/States/Machine.cs create mode 100644 Scenes/Maps/Hills.tscn diff --git a/Characters/ExampleEnemy.tscn b/Characters/ExampleEnemy.tscn index 8104da0..767b726 100644 --- a/Characters/ExampleEnemy.tscn +++ b/Characters/ExampleEnemy.tscn @@ -1,9 +1,9 @@ -[gd_scene load_steps=26 format=3 uid="uid://ddcf6bfv212wj"] +[gd_scene load_steps=26 format=3 uid="uid://bf55wbq7m1gpp"] [ext_resource type="Script" path="res://Characters/Enemy.cs" id="1_2yopk"] [ext_resource type="Shader" path="res://Shaders/Flash.gdshader" id="1_fx1w5"] -[ext_resource type="Script" path="res://Characters/States/Machine.cs" id="3_k4ypw"] [ext_resource type="Texture2D" uid="uid://bej8thq7ruyty" path="res://Assets/Sprites/Characters/forsen2.png" id="3_ocaae"] +[ext_resource type="Script" path="res://State/Machine.cs" id="4_4nwgr"] [ext_resource type="Script" path="res://Characters/States/NPCIdleState.cs" id="4_8r2qn"] [ext_resource type="Script" path="res://Characters/States/NPCMoveState.cs" id="5_utogm"] [ext_resource type="PackedScene" uid="uid://cjgxyhgcyvsv7" path="res://BoundingBoxes/Hurtbox.tscn" id="6_jo0cg"] @@ -133,6 +133,7 @@ y_sort_enabled = true texture_filter = 3 material = SubResource("ShaderMaterial_ms3xg") collision_layer = 10 +collision_mask = 17 script = ExtResource("1_2yopk") Health = 50.0 Sprite = NodePath("Sprite") @@ -142,15 +143,16 @@ Faction = 2 [node name="Sprite" type="AnimatedSprite2D" parent="."] use_parent_material = true +position = Vector2(0, -4) sprite_frames = SubResource("SpriteFrames_6pejo") animation = &"move" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2(0, 8) +position = Vector2(0, 4) shape = SubResource("RectangleShape2D_uict5") [node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState", "Character")] -script = ExtResource("3_k4ypw") +script = ExtResource("4_4nwgr") InitialState = NodePath("Idle") Character = NodePath("..") @@ -163,6 +165,7 @@ script = ExtResource("5_utogm") IdleState = NodePath("../Idle") [node name="Hurtbox" parent="." instance=ExtResource("6_jo0cg")] +position = Vector2(0, -4) Faction = 2 [node name="CollisionShape2D" parent="Hurtbox" index="0"] diff --git a/Characters/Player.tscn b/Characters/Player.tscn index 44ebaaa..82d093c 100644 --- a/Characters/Player.tscn +++ b/Characters/Player.tscn @@ -2,10 +2,10 @@ [ext_resource type="Script" path="res://Characters/Player.cs" id="1_flygr"] [ext_resource type="Shader" path="res://Shaders/Flash.gdshader" id="2_ngsgt"] -[ext_resource type="Script" path="res://Characters/States/Machine.cs" id="3_npkjp"] [ext_resource type="Script" path="res://Characters/States/PlayerIdleState.cs" id="4_4k4mb"] [ext_resource type="Texture2D" uid="uid://bej8thq7ruyty" path="res://Assets/Sprites/Characters/forsen2.png" id="4_5vird"] [ext_resource type="PackedScene" uid="uid://cl56eadpklnbo" path="res://Utils/PlayerCamera.tscn" id="4_ym125"] +[ext_resource type="Script" path="res://State/Machine.cs" id="5_glslt"] [ext_resource type="Script" path="res://Characters/States/PlayerMoveState.cs" id="5_tx5rw"] [ext_resource type="Script" path="res://Characters/States/PlayerRollState.cs" id="6_6bgrj"] [ext_resource type="PackedScene" uid="uid://d72ehtv1ks0e" path="res://Items/Weapons/Sword.tscn" id="7_4rxuv"] @@ -61,7 +61,7 @@ animations = [{ }], "loop": true, "name": &"idle", -"speed": 5.0 +"speed": 2.0 }, { "frames": [{ "duration": 1.0, @@ -84,7 +84,7 @@ animations = [{ }], "loop": true, "name": &"move", -"speed": 12.0 +"speed": 10.0 }] [sub_resource type="RectangleShape2D" id="RectangleShape2D_bfqew"] @@ -94,7 +94,7 @@ size = Vector2(16, 8) font_size = 24 [sub_resource type="RectangleShape2D" id="RectangleShape2D_cjk6b"] -size = Vector2(11, 14) +size = Vector2(8, 8) [sub_resource type="Animation" id="Animation_dxevc"] resource_name = "Hurt" @@ -139,6 +139,7 @@ texture_filter = 3 material = SubResource("ShaderMaterial_h78y7") position = Vector2(0, -12) collision_layer = 6 +collision_mask = 17 script = ExtResource("1_flygr") Camera = NodePath("Camera2D") Speed = 64.0 @@ -153,14 +154,14 @@ position_smoothing_speed = 8.0 [node name="Sprite" type="AnimatedSprite2D" parent="."] use_parent_material = true sprite_frames = SubResource("SpriteFrames_2h7cf") -animation = &"move" +animation = &"idle" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0, 8) shape = SubResource("RectangleShape2D_bfqew") [node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState", "Character")] -script = ExtResource("3_npkjp") +script = ExtResource("5_glslt") InitialState = NodePath("Idle") Character = NodePath("..") DebugLevel = 2 @@ -198,7 +199,7 @@ horizontal_alignment = 1 [node name="Inventory" type="Node2D" parent="."] y_sort_enabled = true -position = Vector2(0, 2) +position = Vector2(0, 4) script = ExtResource("7_xyenu") InventoryMap = { "equip_1": 0, @@ -206,13 +207,14 @@ InventoryMap = { } [node name="Sword" parent="Inventory" instance=ExtResource("7_4rxuv")] -position = Vector2(0, 0) +z_index = -1 +position = Vector2(0, 2) [node name="Hurtbox" parent="." instance=ExtResource("9_avyu4")] Faction = 1 [node name="CollisionShape2D" parent="Hurtbox" index="0"] -position = Vector2(-0.5, 5) +position = Vector2(0, 6) shape = SubResource("RectangleShape2D_cjk6b") [node name="FlashAnimation" type="AnimationPlayer" parent="."] diff --git a/Characters/States/Machine.cs b/Characters/States/Machine.cs deleted file mode 100644 index 07f284e..0000000 --- a/Characters/States/Machine.cs +++ /dev/null @@ -1,90 +0,0 @@ -using Godot; - -namespace SupaLidlGame.Characters.State -{ - public partial class Machine : Node - { - protected Character _character; - - public CharacterState State { get; protected set; } - - [Export] - public CharacterState InitialState { get; set; } - - [Export] - public Character Character { get; set; } - - [Export] - public int DebugLevel { get; set; } - - public override void _Ready() - { - ChangeState(InitialState); - } - - public void ChangeState(CharacterState nextState, bool isProxied = false) - { - if (nextState is null) - return; - - if (DebugLevel >= 2) - { - if (State is not null) - { - string proxyNote = isProxied ? " (proxied)" : ""; - GD.Print($"Transition{proxyNote} {State.Name} -> {nextState.Name}"); - } - } - - if (DebugLevel >= 1) - { - if (GetNode