new state machines and layers
parent
7dfd061c16
commit
64a9b98644
|
@ -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"]
|
||||
|
|
|
@ -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="."]
|
||||
|
|
|
@ -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<Label>("../Debug/State") is Label label)
|
||||
{
|
||||
label.Text = nextState.Name;
|
||||
}
|
||||
}
|
||||
|
||||
nextState.Character = Character;
|
||||
if (State != null)
|
||||
{
|
||||
State.Exit(nextState);
|
||||
}
|
||||
|
||||
var nextNextState = nextState.Enter(State);
|
||||
|
||||
State = nextState;
|
||||
|
||||
if (nextNextState is not null)
|
||||
{
|
||||
ChangeState(nextNextState, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void Process(double delta)
|
||||
{
|
||||
CharacterState nextState = State.Process(delta);
|
||||
if (nextState is not null)
|
||||
{
|
||||
ChangeState(nextState);
|
||||
}
|
||||
}
|
||||
|
||||
public void PhysicsProcess(double delta)
|
||||
{
|
||||
CharacterState nextState = State.PhysicsProcess(delta);
|
||||
if (nextState is not null)
|
||||
{
|
||||
ChangeState(nextState);
|
||||
}
|
||||
}
|
||||
|
||||
public void Input(InputEvent @event)
|
||||
{
|
||||
CharacterState nextState = State.Input(@event);
|
||||
if (nextState is not null)
|
||||
{
|
||||
ChangeState(nextState);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://k4pkkaitpnv8"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://clwv2owvk6abe" path="res://Scenes/BaseMap.tscn" id="1_hpj8x"]
|
||||
[ext_resource type="PackedScene" uid="uid://ddcf6bfv212wj" path="res://Characters/ExampleEnemy.tscn" id="2_4dkyx"]
|
||||
[ext_resource type="PackedScene" uid="uid://bf55wbq7m1gpp" path="res://Characters/ExampleEnemy.tscn" id="2_4dkyx"]
|
||||
[ext_resource type="Script" path="res://BoundingBoxes/ConnectorBox.cs" id="2_7ucgi"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_v7m2q"]
|
||||
|
|
|
@ -88,6 +88,7 @@ equip_3={
|
|||
2d_physics/layer_2="Character"
|
||||
2d_physics/layer_3="Player"
|
||||
2d_physics/layer_4="NPC"
|
||||
2d_physics/layer_5="World Clip"
|
||||
|
||||
[physics]
|
||||
|
||||
|
|
Loading…
Reference in New Issue