fixed bug where animation function wouldn't animate properly

This commit is contained in:
2026-02-27 17:13:20 +01:00
parent 602e5595ca
commit 0a474dde90
13 changed files with 144 additions and 105 deletions

View File

@@ -5,7 +5,7 @@
"grid_snap_active": false, "grid_snap_active": false,
"grid_step": Vector2(8, 8), "grid_step": Vector2(8, 8),
"grid_visibility": 1, "grid_visibility": 1,
"ofs": Vector2(-37.48983, -19.11514), "ofs": Vector2(-38.48983, -29.11514),
"primary_grid_step": Vector2i(8, 8), "primary_grid_step": Vector2i(8, 8),
"show_group_gizmos": true, "show_group_gizmos": true,
"show_guides": true, "show_guides": true,
@@ -189,4 +189,4 @@
Anim={ Anim={
"visible": false "visible": false
} }
selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@18065/@Panel@14/@VBoxContainer@15/DockHSplitMain/@VBoxContainer@28/DockVSplitCenter/@VSplitContainer@70/@VBoxContainer@71/@EditorMainScreen@125/MainScreen/@CanvasItemEditor@9318/@VSplitContainer@9101/@HSplitContainer@9103/@HSplitContainer@9105/@Control@9106/@SubViewportContainer@9107/@SubViewport@9108/BaseDrone/Fueltank")]) selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@18065/@Panel@14/@VBoxContainer@15/DockHSplitMain/@VBoxContainer@28/DockVSplitCenter/@VSplitContainer@70/@VBoxContainer@71/@EditorMainScreen@125/MainScreen/@CanvasItemEditor@9318/@VSplitContainer@9101/@HSplitContainer@9103/@HSplitContainer@9105/@Control@9106/@SubViewportContainer@9107/@SubViewport@9108/BaseDrone/Body")])

View File

@@ -9,9 +9,9 @@ dock_split_2=0
dock_split_3=0 dock_split_3=0
dock_hsplit_1=0 dock_hsplit_1=0
dock_hsplit_2=420 dock_hsplit_2=420
dock_hsplit_3=-230 dock_hsplit_3=-220
dock_hsplit_4=0 dock_hsplit_4=0
dock_9_selected_tab_idx=5 dock_9_selected_tab_idx=0
dock_3="Scene,Import" dock_3="Scene,Import"
dock_4="FileSystem,History" dock_4="FileSystem,History"
dock_5="Inspector,Signals,Groups" dock_5="Inspector,Signals,Groups"
@@ -34,14 +34,14 @@ include_global=true
[EditorNode] [EditorNode]
open_scenes=PackedStringArray("res://core/gamemanager.tscn", "res://levels/main_level.tscn", "res://ui/screens/title-screen/title_screen.tscn", "res://Machines/Resources/Models/Drones/drone_model_scene.tscn", "res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn", "res://levels/level_1.tscn", "res://Machines/Resources/Models/Drones/BodyParts/BodyPart.tscn") open_scenes=PackedStringArray("res://levels/main_level.tscn", "res://ui/screens/title-screen/title_screen.tscn", "res://Machines/Resources/Models/Drones/drone_model_scene.tscn", "res://Machines/Resources/Models/Drones/BodyParts/BodyPart.tscn", "res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn")
current_scene="res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn" current_scene="res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn"
bottom_panel_offsets={ bottom_panel_offsets={
"Animation": 0, "Animation": 0,
"AnimationTree": 0, "AnimationTree": 0,
"Audio": -450, "Audio": -450,
"Debugger": 0, "Debugger": 0,
"Output": 0, "Output": -270,
"Search Results": 0, "Search Results": 0,
"Shader Editor": 0, "Shader Editor": 0,
"SpriteFrames": -346, "SpriteFrames": -346,
@@ -49,20 +49,20 @@ bottom_panel_offsets={
"TileSet": -597 "TileSet": -597
} }
selected_default_debugger_tab_idx=0 selected_default_debugger_tab_idx=0
selected_main_editor_idx=0 selected_main_editor_idx=2
[EditorWindow] [EditorWindow]
screen=0 screen=0
mode="maximized" mode="maximized"
position=Vector2i(1986, 69) position=Vector2i(66, 69)
[ScriptEditor] [ScriptEditor]
open_scripts=["res://Machines/Resources/Models/Drones/BaseDrone/base_drone.gd", "res://Machines/Resources/Models/Drones/BodyParts/body_part.gd", "res://Machines/Resources/Abstracts/drone_machine.gd", "res://Machines/Resources/Abstracts/machine_abstract.gd", "res://Machines/Resources/Abstracts/mech_machine.gd"] open_scripts=["res://Machines/Resources/Models/Drones/BaseDrone/base_drone.gd", "res://Machines/Resources/Models/Drones/BodyParts/body_part.gd", "res://Machines/Resources/Abstracts/drone_machine.gd", "res://Machines/Resources/Abstracts/machine_abstract.gd", "res://Machines/Resources/Machine_Globals.gd", "res://Machines/Resources/Abstracts/mech_machine.gd"]
selected_script="res://Machines/Resources/Abstracts/machine_abstract.gd" selected_script="res://Machines/Resources/Abstracts/machine_abstract.gd"
open_help=[] open_help=["String"]
script_split_offset=453 script_split_offset=150
list_split_offset=0 list_split_offset=0
zoom_factor=1.0 zoom_factor=1.0
@@ -77,3 +77,13 @@ open_shaders=[]
split_offset=200 split_offset=200
selected_shader="" selected_shader=""
text_shader_zoom_factor=1.0 text_shader_zoom_factor=1.0
[editor_log]
log_filter_0=true
log_filter_2=true
log_filter_1=true
log_filter_3=true
log_filter_4=true
collapse=true
show_search=true

View File

@@ -1,5 +1,5 @@
63f7b34db8d8cdea90c76aacccf841ec 63f7b34db8d8cdea90c76aacccf841ec
::res://::1772038696 ::res://::1772193175
icon.svg::CompressedTexture2D::7874505655436279264::1771841784::1771841837::1::::<><><>0<>0<>8c6dc71835cb1092831a2181a7cbcbe4<>res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex:: icon.svg::CompressedTexture2D::7874505655436279264::1771841784::1771841837::1::::<><><>0<>0<>8c6dc71835cb1092831a2181a7cbcbe4<>res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex::
::res://autoloads/::1771841784 ::res://autoloads/::1771841784
debug_global.gd::GDScript::3519651180120881073::1771841784::0::1::::<>Node<><>0<>0<><>:: debug_global.gd::GDScript::3519651180120881073::1771841784::0::1::::<>Node<><>0<>0<><>::
@@ -67,17 +67,17 @@ main_level.tscn::PackedScene::6468975218303303874::1771872092::0::1::::<><><>0<>
::res://Machines/::1771857941 ::res://Machines/::1771857941
::res://Machines/Resources/::1771878239 ::res://Machines/Resources/::1771878239
Machine_Globals.gd::GDScript::2525448592130895831::1771878239::0::1::::MachineGlobals<>RefCounted<><>0<>0<><>:: Machine_Globals.gd::GDScript::2525448592130895831::1771878239::0::1::::MachineGlobals<>RefCounted<><>0<>0<><>::
::res://Machines/Resources/Abstracts/::1771930120 ::res://Machines/Resources/Abstracts/::1772092275
drone_machine.gd::GDScript::6346044854333652239::1771929643::0::1::::Drone<>Machine<><>1<>0<><>:: drone_machine.gd::GDScript::6346044854333652239::1772091217::0::1::::Drone<>Machine<><>1<>0<><>::
machine_abstract.gd::GDScript::8886170484691869618::1771930120::0::1::::Machine<>CharacterBody2D<><>1<>0<><>:: machine_abstract.gd::GDScript::8886170484691869618::1772092275::0::1::::Machine<>CharacterBody2D<><>1<>0<><>::
mech_machine.gd::GDScript::7297000423558208560::1771871981::0::1::::Mech<>Machine<><>1<>0<><>:: mech_machine.gd::GDScript::7297000423558208560::1771871981::0::1::::Mech<>Machine<><>1<>0<><>::
suit_machine.gd::GDScript::8590081693937044336::1771857121::0::1::::Suit<>Machine<><>1<>0<><>:: suit_machine.gd::GDScript::8590081693937044336::1771857121::0::1::::Suit<>Machine<><>1<>0<><>::
::res://Machines/Resources/Models/::1771858031 ::res://Machines/Resources/Models/::1771858031
::res://Machines/Resources/Models/Drones/::1771928659 ::res://Machines/Resources/Models/Drones/::1772042189
drone_model_scene.tscn::PackedScene::6165765690837776200::1771928659::0::1::::<><><>0<>0<><>::uid://dts1g1ow3at0c::::res://Machines/Resources/Models/Drones/BodyParts/BodyPart.tscn drone_model_scene.tscn::PackedScene::6165765690837776200::1772042189::0::1::::<><><>0<>0<><>::uid://dts1g1ow3at0c::::res://Machines/Resources/Models/Drones/BodyParts/BodyPart.tscn
::res://Machines/Resources/Models/Drones/BaseDrone/::1772040895 ::res://Machines/Resources/Models/Drones/BaseDrone/::1772096360
base_drone.gd::GDScript::7816552958950085701::1771877129::0::1::::<>Drone<><>0<>0<><>:: base_drone.gd::GDScript::7816552958950085701::1771877129::0::1::::<>Drone<><>0<>0<><>::
base_drone.tscn::PackedScene::376028589443558970::1772040895::0::1::::<><><>0<>0<><>::uid://ct30i3w56w0lo::::res://Machines/Resources/Models/Drones/drone_model_scene.tscn<>uid://c3ks2krvhbeyx::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneBodyIdleFrontAndBack.png<>uid://djmnqq6euiic8::::res://Machines/Resources/Models/Drones/BaseDrone/base_drone.gd<>uid://dayqx8tgi4fj8::::res://Machines/Sprites/Drones/BaseDrone/BaseDronBrain.png<>uid://b8cx4fmrgb83::::res://Machines/Sprites/Drones/BaseDrone/base_drone_head_front_idle.png<>uid://bgr6yq60l5mjt::::res://Machines/Sprites/Drones/BaseDrone/DefaultFuelTank.png<>uid://dnthmyuq5e54::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsFrontWalk.png<>uid://ctio2sfemdbag::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsIdleFront.png<>res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsWalkingSide.png<>uid://yi1h6ghnf5ey::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsWalkingRight.png base_drone.tscn::PackedScene::376028589443558970::1772096360::0::1::::<><><>0<>0<><>::uid://ct30i3w56w0lo::::res://Machines/Resources/Models/Drones/drone_model_scene.tscn<>uid://c3ks2krvhbeyx::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneBodyIdleFrontAndBack.png<>uid://djmnqq6euiic8::::res://Machines/Resources/Models/Drones/BaseDrone/base_drone.gd<>uid://dayqx8tgi4fj8::::res://Machines/Sprites/Drones/BaseDrone/BaseDronBrain.png<>uid://cyvlqch8bby0v::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneBodyIdleLeft.png<>uid://b8cx4fmrgb83::::res://Machines/Sprites/Drones/BaseDrone/base_drone_head_front_idle.png<>uid://bgr6yq60l5mjt::::res://Machines/Sprites/Drones/BaseDrone/DefaultFuelTank.png<>uid://bdngqb6c81hm7::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneBodyIdleRight.png<>uid://dnthmyuq5e54::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsFrontWalk.png<>uid://ctio2sfemdbag::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsIdleFront.png<>uid://dx2dpf8hvj8wa::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneHeadLeft.png<>uid://yi1h6ghnf5ey::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsWalkingRight.png<>uid://bb04dercpqua1::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneHeadRight.png<>uid://cy6nappb0yf0x::::res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsWalkingLeft.png
::res://Machines/Resources/Models/Drones/BodyParts/::1771930440 ::res://Machines/Resources/Models/Drones/BodyParts/::1771930440
BodyPart.tscn::PackedScene::8531599624621736992::1771930440::0::1::::<><><>0<>0<><>::uid://wrdpxgpad8n4::::res://Machines/Resources/Models/Drones/BodyParts/body_part.gd BodyPart.tscn::PackedScene::8531599624621736992::1771930440::0::1::::<><><>0<>0<><>::uid://wrdpxgpad8n4::::res://Machines/Resources/Models/Drones/BodyParts/body_part.gd
body_part.gd::GDScript::1579459137730169171::1771930395::0::1::::BodyPart<>AnimatedSprite2D<><>0<>0<><>:: body_part.gd::GDScript::1579459137730169171::1771930395::0::1::::BodyPart<>AnimatedSprite2D<><>0<>0<><>::
@@ -85,7 +85,7 @@ body_part.gd::GDScript::1579459137730169171::1771930395::0::1::::BodyPart<>Anima
::res://Machines/Resources/Models/Suits/::1771858007 ::res://Machines/Resources/Models/Suits/::1771858007
::res://Machines/Sprites/::1771858875 ::res://Machines/Sprites/::1771858875
::res://Machines/Sprites/Drones/::1771858873 ::res://Machines/Sprites/Drones/::1771858873
::res://Machines/Sprites/Drones/BaseDrone/::1772041872 ::res://Machines/Sprites/Drones/BaseDrone/::1772041876
BaseDronBrain.png::CompressedTexture2D::7209821425227101647::1771858823::1771858879::1::::<><><>0<>0<>19402d728acbc708baae32a51b5d3ad6<>res://.godot/imported/BaseDronBrain.png-c9c4f0b9e1320143cd50756749197369.ctex:: BaseDronBrain.png::CompressedTexture2D::7209821425227101647::1771858823::1771858879::1::::<><><>0<>0<>19402d728acbc708baae32a51b5d3ad6<>res://.godot/imported/BaseDronBrain.png-c9c4f0b9e1320143cd50756749197369.ctex::
BaseDroneBodyIdleFrontAndBack.png::CompressedTexture2D::6759914441555654703::1771860416::1771860438::1::::<><><>0<>0<>25b59fdbf46d28bb55915b64b60e3804<>res://.godot/imported/BaseDroneBodyIdleFrontAndBack.png-afb1715d542e69fbefccd17214efcbb6.ctex:: BaseDroneBodyIdleFrontAndBack.png::CompressedTexture2D::6759914441555654703::1771860416::1771860438::1::::<><><>0<>0<>25b59fdbf46d28bb55915b64b60e3804<>res://.godot/imported/BaseDroneBodyIdleFrontAndBack.png-afb1715d542e69fbefccd17214efcbb6.ctex::
BaseDroneBodyIdleLeft.png::CompressedTexture2D::6501422124518248511::1772041539::1772041542::1::::<><><>0<>0<>8005bc2c2b83dedb1fe3cda5f9dbfb57<>res://.godot/imported/BaseDroneBodyIdleLeft.png-a9d2faef0d719ba6fcd0c7f4f8d570db.ctex:: BaseDroneBodyIdleLeft.png::CompressedTexture2D::6501422124518248511::1772041539::1772041542::1::::<><><>0<>0<>8005bc2c2b83dedb1fe3cda5f9dbfb57<>res://.godot/imported/BaseDroneBodyIdleLeft.png-a9d2faef0d719ba6fcd0c7f4f8d570db.ctex::
@@ -139,5 +139,5 @@ title_screen.tscn::PackedScene::7375686277331198226::1771858880::0::1::::<><><>0
::res://ui/screens/win-screen/::1771841784 ::res://ui/screens/win-screen/::1771841784
win_screen.gd::GDScript::7620355351831359998::1771841784::0::1::::<>Control<><>0<>0<><>:: win_screen.gd::GDScript::7620355351831359998::1771841784::0::1::::<>Control<><>0<>0<><>::
win_screen.tscn::PackedScene::477294899242648607::1771841784::0::1::::<><><>0<>0<><>::uid://dgtme0a6lym5c::::res://ui/screens/win-screen/win_screen.gd win_screen.tscn::PackedScene::477294899242648607::1771841784::0::1::::<><><>0<>0<><>::uid://dgtme0a6lym5c::::res://ui/screens/win-screen/win_screen.gd
::res://ui/themes/::1772040846 ::res://ui/themes/::1772090919
your_theme.tres::Theme::506038871261939837::1772040846::0::1::::<><><>0<>0<><>::uid://b23e4kqj4o6dv::::res://ui/components/settings-menu/Revert.svg your_theme.tres::Theme::506038871261939837::1772090919::0::1::::<><><>0<>0<><>::uid://b23e4kqj4o6dv::::res://ui/components/settings-menu/Revert.svg

View File

@@ -1,4 +1,5 @@
res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn
res://ui/themes/your_theme.tres res://ui/themes/your_theme.tres
res://core/main_environment.tres res://Machines/Resources/Abstracts/machine_abstract.gd
res://Machines/Resources/Models/Drones/drone_model_scene.tscn res://Machines/Resources/Abstracts/drone_machine.gd
res://Machines/Resources/Machine_Globals.gd

View File

@@ -5,11 +5,12 @@ select_mode=0
[editor_metadata] [editor_metadata]
executable_path="/home/emily/Desktop/Godot_v4.5.1-stable_mono_linux_x86_64/Godot_v4.6-stable_linux.x86_64" executable_path="/home/emily/Desktop/Godot_v4.5.1-stable_mono_linux_x86_64/Godot_v4.6-stable_linux.x86_64"
use_advanced_connections=false
[recent_files] [recent_files]
scenes=["res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn", "res://Machines/Resources/Models/Drones/drone_model_scene.tscn", "res://ui/screens/title-screen/title_screen.tscn", "res://levels/main_level.tscn", "res://core/gamemanager.tscn"] scenes=["res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn", "res://Machines/Resources/Models/Drones/drone_model_scene.tscn", "res://ui/screens/title-screen/title_screen.tscn", "res://levels/main_level.tscn", "res://core/gamemanager.tscn"]
scripts=["String", "res://Machines/Resources/Models/Drones/BodyParts/body_part.gd", "res://custom_plugins/Animator/Animator.gd", "CharacterBody2D", "AnimatedSprite2D", "res://autoloads/settings/settings.gd", "res://autoloads/settings/user_defined_settings.gd", "res://core/gamemanager.gd", "res://levels/levels_readme.md", "res://Machines/Resources/Models/Drones/BaseDrone/base_drone.gd"] scripts=["res://Machines/Resources/Machine_Globals.gd", "String", "res://Machines/Resources/Models/Drones/BodyParts/body_part.gd", "res://custom_plugins/Animator/Animator.gd", "CharacterBody2D", "AnimatedSprite2D", "res://autoloads/settings/settings.gd", "res://autoloads/settings/user_defined_settings.gd", "res://core/gamemanager.gd", "res://levels/levels_readme.md"]
[script_setup] [script_setup]

View File

@@ -3,11 +3,11 @@
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 1, "column": 6,
"folded_lines": PackedInt32Array(), "folded_lines": PackedInt32Array(),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 45, "row": 45,
"scroll_position": 18.0, "scroll_position": 28.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }
@@ -17,10 +17,10 @@ state={
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 0, "column": 11,
"folded_lines": PackedInt32Array(), "folded_lines": PackedInt32Array(),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 27, "row": 1,
"scroll_position": 0.0, "scroll_position": 0.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
@@ -31,11 +31,11 @@ state={
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 0, "column": 18,
"folded_lines": PackedInt32Array(), "folded_lines": PackedInt32Array(),
"h_scroll_position": 0, "h_scroll_position": 176,
"row": 77, "row": 79,
"scroll_position": 33.0, "scroll_position": 71.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }

View File

@@ -1,19 +1,59 @@
list=[{ list=[{
"base": &"AnimatedSprite2D", "base": &"RefCounted",
"class": &"BodyPart", "class": &"MachineGlobals",
"icon": "", "icon": "",
"is_abstract": false, "is_abstract": false,
"is_tool": false, "is_tool": false,
"language": &"GDScript", "language": &"GDScript",
"path": "res://Machines/Resources/Models/Drones/BodyParts/body_part.gd" "path": "res://Machines/Resources/Machine_Globals.gd"
}, {
"base": &"Button",
"class": &"LevelButton",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://ui/screens/level-select-screen/level_button.gd"
}, {
"base": &"Resource",
"class": &"CreditEntry",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://ui/screens/credit-screen/credit_entry.gd"
}, {
"base": &"VBoxContainer",
"class": &"CreditButton",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://ui/screens/credit-screen/credit_element.gd"
}, {
"base": &"Node",
"class": &"GameManager",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://core/gamemanager.gd"
}, {
"base": &"RefCounted",
"class": &"UserDefinedSettings",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://autoloads/settings/user_defined_settings.gd"
}, { }, {
"base": &"Machine", "base": &"Machine",
"class": &"Mech", "class": &"Suit",
"icon": "", "icon": "",
"is_abstract": true, "is_abstract": true,
"is_tool": false, "is_tool": false,
"language": &"GDScript", "language": &"GDScript",
"path": "res://Machines/Resources/Abstracts/mech_machine.gd" "path": "res://Machines/Resources/Abstracts/suit_machine.gd"
}, { }, {
"base": &"Machine", "base": &"Machine",
"class": &"Drone", "class": &"Drone",
@@ -24,12 +64,12 @@ list=[{
"path": "res://Machines/Resources/Abstracts/drone_machine.gd" "path": "res://Machines/Resources/Abstracts/drone_machine.gd"
}, { }, {
"base": &"Machine", "base": &"Machine",
"class": &"Suit", "class": &"Mech",
"icon": "", "icon": "",
"is_abstract": true, "is_abstract": true,
"is_tool": false, "is_tool": false,
"language": &"GDScript", "language": &"GDScript",
"path": "res://Machines/Resources/Abstracts/suit_machine.gd" "path": "res://Machines/Resources/Abstracts/mech_machine.gd"
}, { }, {
"base": &"CharacterBody2D", "base": &"CharacterBody2D",
"class": &"Machine", "class": &"Machine",
@@ -39,51 +79,11 @@ list=[{
"language": &"GDScript", "language": &"GDScript",
"path": "res://Machines/Resources/Abstracts/machine_abstract.gd" "path": "res://Machines/Resources/Abstracts/machine_abstract.gd"
}, { }, {
"base": &"RefCounted", "base": &"AnimatedSprite2D",
"class": &"UserDefinedSettings", "class": &"BodyPart",
"icon": "", "icon": "",
"is_abstract": false, "is_abstract": false,
"is_tool": false, "is_tool": false,
"language": &"GDScript", "language": &"GDScript",
"path": "res://autoloads/settings/user_defined_settings.gd" "path": "res://Machines/Resources/Models/Drones/BodyParts/body_part.gd"
}, {
"base": &"Node",
"class": &"GameManager",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://core/gamemanager.gd"
}, {
"base": &"VBoxContainer",
"class": &"CreditButton",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://ui/screens/credit-screen/credit_element.gd"
}, {
"base": &"Resource",
"class": &"CreditEntry",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://ui/screens/credit-screen/credit_entry.gd"
}, {
"base": &"Button",
"class": &"LevelButton",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://ui/screens/level-select-screen/level_button.gd"
}, {
"base": &"RefCounted",
"class": &"MachineGlobals",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://Machines/Resources/Machine_Globals.gd"
}] }]

View File

@@ -9,6 +9,7 @@ class_name Drone
var dodge_duration_timer : Timer var dodge_duration_timer : Timer
func _ready() -> void: func _ready() -> void:
_animate(self.get_child(4,false),"walking")
add_on_slots = 1 add_on_slots = 1
for a in self.get_children() : for a in self.get_children() :
if a.name == "DodgeDurationTimer" : if a.name == "DodgeDurationTimer" :
@@ -19,6 +20,7 @@ func _ready() -> void:
func class_ability() -> float: func class_ability() -> float:
#do dash #do dash
animation_state_machine = MachineGlobals.regular_states.DASHING
return dodge_cd return dodge_cd
func listen_to_animation_signals(next_anim_state : MachineGlobals.regular_states) -> void: func listen_to_animation_signals(next_anim_state : MachineGlobals.regular_states) -> void:

View File

@@ -9,6 +9,7 @@ extends CharacterBody2D
@export var movement_speed : float @export var movement_speed : float
signal change_animation(anim_to_change_to) signal change_animation(anim_to_change_to)
var animation_state_machine : MachineGlobals.regular_states var animation_state_machine : MachineGlobals.regular_states
var last_state : MachineGlobals.regular_states
var look_dir : MachineGlobals.look_direction var look_dir : MachineGlobals.look_direction
var effects : Array var effects : Array
var add_on_slots : int var add_on_slots : int
@@ -25,33 +26,40 @@ var current_fuel_in_tank : float
@abstract func listen_to_animation_signals(next_anim_state : MachineGlobals.regular_states) -> void @abstract func listen_to_animation_signals(next_anim_state : MachineGlobals.regular_states) -> void
func _ready() -> void:
connect("change_animation",listen_to_animation_signals)
func interact() -> void : func interact() -> void :
pass pass
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
DebugGlobal.set_debug_info("State machine:",str(MachineGlobals.regular_states.keys()[animation_state_machine]))
_movement(delta) _movement(delta)
_ability_process(delta) _ability_process(delta)
_action_process(delta) _action_process(delta)
_animate_according_to_state_machine()
move_and_slide() move_and_slide()
func _animate_according_to_state_machine() -> void :
DebugGlobal.set_debug_info("last state: ", str(MachineGlobals.regular_states.keys()[last_state]))
if animation_state_machine != last_state :
print_debug("Emitting signal to change animation to "+str(MachineGlobals.regular_states.keys()[animation_state_machine]))
change_animation.emit(animation_state_machine)
last_state = animation_state_machine
func _movement(delta: float) -> void : func _movement(delta: float) -> void :
DebugGlobal.set_debug_info("Velocity", self.velocity) DebugGlobal.set_debug_info("Velocity", self.velocity)
DebugGlobal.set_debug_info("Looking ", MachineGlobals.look_direction.keys()[look_dir ])
var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down") var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down")
self.velocity = input_direction * movement_speed self.velocity = input_direction * movement_speed
if self.velocity != Vector2.ZERO && animation_state_machine in [MachineGlobals.regular_states.IDLING,MachineGlobals.regular_states.INTERACTING] : if self.velocity != Vector2.ZERO && animation_state_machine in [MachineGlobals.regular_states.IDLING,MachineGlobals.regular_states.INTERACTING] :
animation_state_machine = MachineGlobals.regular_states.WALKING animation_state_machine = MachineGlobals.regular_states.WALKING
if self.velocity.y < 0 : if self.velocity.y < 0 :
look_dir = MachineGlobals.look_direction.UP look_dir = MachineGlobals.look_direction.BACK
elif self.velocity.y > 0 : elif self.velocity.y > 0 :
look_dir = MachineGlobals.look_direction.DOWN look_dir = MachineGlobals.look_direction.FRONT
elif self.velocity.x > 0 : elif self.velocity.x > 0 :
look_dir = MachineGlobals.look_direction.RIGHT look_dir = MachineGlobals.look_direction.RIGHT
elif self.velocity.x < 0 : elif self.velocity.x < 0 :
look_dir = MachineGlobals.look_direction.LEFT look_dir = MachineGlobals.look_direction.LEFT
else : elif velocity.length() == 0 :
animation_state_machine = MachineGlobals.regular_states.IDLING animation_state_machine = MachineGlobals.regular_states.IDLING
func _action_process(delta:float) -> void : func _action_process(delta:float) -> void :
@@ -77,5 +85,9 @@ func _get_body_parts() -> Array :
func _animate(b : BodyPart, animation_type : String) -> void : func _animate(b : BodyPart, animation_type : String) -> void :
for anim_name : String in b.sprite_frames.get_animation_names() : for anim_name : String in b.sprite_frames.get_animation_names() :
if anim_name.contains(animation_type) && anim_name.contains(model_name) && anim_name.contains(str(MachineGlobals.look_direction.keys()[look_dir])) : #print_debug("Trying to play animation for: "+model_name+"_"+b.name+"_"+animation_type+"_"+str(MachineGlobals.look_direction.keys()[look_dir]))
print_debug(b.sprite_frames.get_animation_names())
print_debug("Anim name: "+anim_name+" Anim type: "+str(animation_type)+" Model name: "+str(model_name)+" Look direction: "+str(MachineGlobals.look_direction.keys()[look_dir])+" body part: "+b.name)
if anim_name.containsn(animation_type) && anim_name.containsn(model_name) && anim_name.containsn(str(MachineGlobals.look_direction.keys()[look_dir])) && anim_name.containsn(b.name) :
print_debug("Animation name found: "+anim_name)
b.play(anim_name) b.play(anim_name)

View File

@@ -43,8 +43,8 @@ enum irregular_states{
} }
enum look_direction{ enum look_direction{
UP, BACK,
DOWN, FRONT,
LEFT, LEFT,
RIGHT RIGHT
} }

View File

@@ -11,9 +11,9 @@
[ext_resource type="Texture2D" uid="uid://dnthmyuq5e54" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsFrontWalk.png" id="7_fkyu2"] [ext_resource type="Texture2D" uid="uid://dnthmyuq5e54" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsFrontWalk.png" id="7_fkyu2"]
[ext_resource type="Texture2D" uid="uid://ctio2sfemdbag" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsIdleFront.png" id="7_ogmjm"] [ext_resource type="Texture2D" uid="uid://ctio2sfemdbag" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsIdleFront.png" id="7_ogmjm"]
[ext_resource type="Texture2D" uid="uid://dx2dpf8hvj8wa" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneHeadLeft.png" id="9_h54wi"] [ext_resource type="Texture2D" uid="uid://dx2dpf8hvj8wa" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneHeadLeft.png" id="9_h54wi"]
[ext_resource type="Texture2D" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsWalkingSide.png" id="9_hvx52"]
[ext_resource type="Texture2D" uid="uid://yi1h6ghnf5ey" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsWalkingRight.png" id="10_20g50"] [ext_resource type="Texture2D" uid="uid://yi1h6ghnf5ey" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsWalkingRight.png" id="10_20g50"]
[ext_resource type="Texture2D" uid="uid://bb04dercpqua1" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneHeadRight.png" id="10_ua5ps"] [ext_resource type="Texture2D" uid="uid://bb04dercpqua1" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneHeadRight.png" id="10_ua5ps"]
[ext_resource type="Texture2D" uid="uid://cy6nappb0yf0x" path="res://Machines/Sprites/Drones/BaseDrone/BaseDroneLegsWalkingLeft.png" id="13_2wo2i"]
[sub_resource type="AtlasTexture" id="AtlasTexture_wbero"] [sub_resource type="AtlasTexture" id="AtlasTexture_wbero"]
atlas = ExtResource("2_1r2y7") atlas = ExtResource("2_1r2y7")
@@ -144,27 +144,27 @@ atlas = ExtResource("7_fkyu2")
region = Rect2(80, 5, 16, 11) region = Rect2(80, 5, 16, 11)
[sub_resource type="AtlasTexture" id="AtlasTexture_b1o6v"] [sub_resource type="AtlasTexture" id="AtlasTexture_b1o6v"]
atlas = ExtResource("9_hvx52") atlas = ExtResource("13_2wo2i")
region = Rect2(0, 0, 16, 16) region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_8eqbb"] [sub_resource type="AtlasTexture" id="AtlasTexture_8eqbb"]
atlas = ExtResource("9_hvx52") atlas = ExtResource("13_2wo2i")
region = Rect2(16, 0, 16, 16) region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ope2v"] [sub_resource type="AtlasTexture" id="AtlasTexture_ope2v"]
atlas = ExtResource("9_hvx52") atlas = ExtResource("13_2wo2i")
region = Rect2(32, 0, 16, 16) region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_k67wn"] [sub_resource type="AtlasTexture" id="AtlasTexture_k67wn"]
atlas = ExtResource("9_hvx52") atlas = ExtResource("13_2wo2i")
region = Rect2(48, 0, 16, 16) region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_lxr7j"] [sub_resource type="AtlasTexture" id="AtlasTexture_lxr7j"]
atlas = ExtResource("9_hvx52") atlas = ExtResource("13_2wo2i")
region = Rect2(64, 0, 16, 16) region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_5toxo"] [sub_resource type="AtlasTexture" id="AtlasTexture_5toxo"]
atlas = ExtResource("9_hvx52") atlas = ExtResource("13_2wo2i")
region = Rect2(80, 0, 16, 16) region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_gjxbl"] [sub_resource type="AtlasTexture" id="AtlasTexture_gjxbl"]
@@ -201,7 +201,18 @@ animations = [{
"texture": SubResource("AtlasTexture_ny81s") "texture": SubResource("AtlasTexture_ny81s")
}], }],
"loop": true, "loop": true,
"name": &"dbase_body_idle_up_and_down", "name": &"dbase_body_idle_back",
"speed": 1.5
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wbero")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ny81s")
}],
"loop": true,
"name": &"dbase_body_idle_front",
"speed": 1.5 "speed": 1.5
}, { }, {
"frames": [{ "frames": [{
@@ -410,7 +421,7 @@ animations = [{
[node name="BaseDrone" unique_id=872770085 instance=ExtResource("1_j7lnw")] [node name="BaseDrone" unique_id=872770085 instance=ExtResource("1_j7lnw")]
script = ExtResource("2_njeil") script = ExtResource("2_njeil")
model_name = &"Base" model_name = &"dbase"
movement_speed = 150.0 movement_speed = 150.0
[node name="Camera2D" parent="." index="1" unique_id=2079743221] [node name="Camera2D" parent="." index="1" unique_id=2079743221]
@@ -421,12 +432,12 @@ position = Vector2(-1, -1)
scale = Vector2(0.75, 0.875) scale = Vector2(0.75, 0.875)
sprite_frames = SubResource("SpriteFrames_wbero") sprite_frames = SubResource("SpriteFrames_wbero")
animation = &"dbase_fueltank_idle" animation = &"dbase_fueltank_idle"
frame_progress = 0.6998867
[node name="Body" parent="." index="4" unique_id=1950083426] [node name="Body" parent="." index="4" unique_id=1950083426]
position = Vector2(-1, 1) position = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_wbero") sprite_frames = SubResource("SpriteFrames_wbero")
animation = &"dbase_body_walking_right" animation = &"dbase_body_idle_back"
frame_progress = 0.7253901
[node name="Head" parent="." index="5" unique_id=1860680538] [node name="Head" parent="." index="5" unique_id=1860680538]
position = Vector2(-6, 0) position = Vector2(-6, 0)
@@ -439,4 +450,6 @@ frame_progress = 0.95167845
position = Vector2(0, 3) position = Vector2(0, 3)
sprite_frames = SubResource("SpriteFrames_wbero") sprite_frames = SubResource("SpriteFrames_wbero")
animation = &"dbase_legs_walking_left" animation = &"dbase_legs_walking_left"
frame_progress = 0.3296052 frame_progress = 0.040086176
[connection signal="change_animation" from="." to="." method="listen_to_animation_signals"]