added modular animation system for drones

This commit is contained in:
2026-02-24 10:49:50 +01:00
parent 772858f04f
commit d036169237
23 changed files with 268 additions and 119 deletions

View File

@@ -189,4 +189,4 @@
Anim={
"visible": false
}
selected_nodes=Array[NodePath]([])
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")])

View File

@@ -1,5 +1,7 @@
TileMapLayer
CollisionShape2D
Timer
Camera2D
TileMapLayer
CharacterBody2D
AnimatedSprite2D
AnimationTree

View File

@@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View File

@@ -186,4 +186,7 @@
"zfar": 4000.01,
"znear": 0.05
}
selected_nodes=Array[NodePath]([])
Anim={
"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/Drone")])

View File

@@ -1,5 +1,5 @@
[folding]
node_unfolds=[NodePath("."), PackedStringArray("Ordering", "Texture")]
node_unfolds=[NodePath("."), PackedStringArray("Ordering", "Texture", "Collision")]
resource_unfolds=["res://Machines/Resources/Models/Drones/drone_model_scene.tscn::SpriteFrames_bsvqd", PackedStringArray(), "res://Machines/Resources/Models/Drones/drone_model_scene.tscn::RectangleShape2D_6pa52", PackedStringArray()]
nodes_folded=[]

View File

@@ -2,20 +2,20 @@
dock_3_selected_tab_idx=0
dock_4_selected_tab_idx=0
dock_5_selected_tab_idx=0
dock_5_selected_tab_idx=1
dock_floating={}
dock_closed=[]
dock_split_2=0
dock_split_3=0
dock_hsplit_1=0
dock_hsplit_2=280
dock_hsplit_3=-280
dock_hsplit_3=-230
dock_hsplit_4=0
dock_9_selected_tab_idx=1
dock_9_selected_tab_idx=5
dock_3="Scene,Import"
dock_4="FileSystem,History"
dock_5="Inspector,Signals,Groups"
dock_9="Output,Debugger,Audio,Animation,Shader Editor,Search Results,AnimationTree,ResourcePreloader,ShaderFile,SpriteFrames,Theme,Polygon,TileSet,TileMap,Replication,GridMap"
dock_9="Output,Debugger,Audio,Animation,Shader Editor,SpriteFrames,Search Results,AnimationTree,ResourcePreloader,ShaderFile,Theme,Polygon,TileSet,TileMap,Replication,GridMap"
[docks/FileSystem]
@@ -24,8 +24,8 @@ v_split_offset=0
display_mode=0
file_sort=0
file_list_display_mode=1
selected_paths=PackedStringArray("res://levels/level_1.tscn")
uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://ui/screens/", "res://ui/screens/title-screen/", "res://Machines/Sprites/Drones/", "res://Machines/Sprites/Drones/BaseDrone/", "res://Machines/Resources/", "res://Machines/Resources/Models/", "res://Machines/Resources/Models/Drones/", "res://Machines/Resources/Models/Drones/BaseDrone/", "res://Machines/Resources/Abstracts/", "res://levels/", "res://Enviorment/Sprout Lands - Sprites - Basic pack/", "res://core/", "res://autoloads/", "res://autoloads/settings/")
selected_paths=PackedStringArray("res://Machines/Resources/Abstracts/machine_abstract.gd")
uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://ui/", "res://ui/screens/title-screen/", "res://ui/player ui/", "res://Machines/", "res://Machines/Sprites/Drones/", "res://Machines/Sprites/Drones/BaseDrone/", "res://Machines/Resources/", "res://Machines/Resources/Models/", "res://Machines/Resources/Models/Drones/", "res://Machines/Resources/Models/Drones/BaseDrone/", "res://Machines/Resources/Abstracts/", "res://levels/", "res://Enviorment/Sprout Lands - Sprites - Basic pack/", "res://autoloads/settings/")
[docks/History]
@@ -44,8 +44,8 @@ bottom_panel_offsets={
"Output": 0,
"Search Results": 0,
"Shader Editor": 0,
"SpriteFrames": 0,
"TileMap": -731,
"SpriteFrames": -346,
"TileMap": -246,
"TileSet": -597
}
selected_default_debugger_tab_idx=0
@@ -59,16 +59,16 @@ position=Vector2i(66, 69)
[ScriptEditor]
open_scripts=["res://Machines/Resources/Models/Drones/BaseDrone/base_drone.gd", "res://Machines/Resources/Abstracts/drone_machine.gd", "res://core/gamemanager.gd", "res://levels/levels_readme.md", "res://Machines/Resources/Abstracts/machine_abstract.gd", "res://Machines/Resources/Machine_Globals.gd", "res://Machines/Resources/Abstracts/mech_machine.gd", "res://Machines/Resources/Abstracts/suit_machine.gd", "res://autoloads/settings/user_defined_settings.gd"]
selected_script="res://Machines/Resources/Abstracts/machine_abstract.gd"
open_help=[]
open_scripts=["res://Machines/Resources/Models/Drones/BaseDrone/base_drone.gd", "res://Machines/Resources/Abstracts/drone_machine.gd", "res://core/gamemanager.gd", "res://levels/levels_readme.md", "res://Machines/Resources/Abstracts/machine_abstract.gd", "res://Machines/Resources/Machine_Globals.gd", "res://Machines/Resources/Abstracts/mech_machine.gd", "res://autoloads/settings/settings.gd", "res://Machines/Resources/Abstracts/suit_machine.gd", "res://autoloads/settings/user_defined_settings.gd"]
selected_script="res://Machines/Resources/Abstracts/drone_machine.gd"
open_help=["AnimatedSprite2D"]
script_split_offset=200
list_split_offset=0
zoom_factor=1.0
[GameView]
floating_window_rect=Rect2i(731, 369, 1164, 697)
floating_window_rect=Rect2i(411, 189, 1164, 697)
floating_window_screen=0
[ShaderEditor]

View File

@@ -1,18 +1,18 @@
63f7b34db8d8cdea90c76aacccf841ec
::res://::1771872883
::res://::1771914515
icon.svg::CompressedTexture2D::7874505655436279264::1771841784::1771841837::1::::<><><>0<>0<>8c6dc71835cb1092831a2181a7cbcbe4<>res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex::
::res://autoloads/::1771841784
debug_global.gd::GDScript::3519651180120881073::1771841784::0::1::::<>Node<><>0<>0<><>::
global.gd::GDScript::1176894133255043534::1771841784::0::1::::<>Node<><>0<>0<><>::
input_manager.gd::GDScript::8575146745769188893::1771841784::0::1::::<>Node<><>0<>0<><>::
::res://autoloads/settings/::1771872849
settings.gd::GDScript::1169167139487781899::1771841784::0::1::::<>Node<><>0<>0<><>::
::res://autoloads/settings/::1771876948
settings.gd::GDScript::1169167139487781899::1771876948::0::1::::<>Node<><>0<>0<><>::
user_defined_settings.gd::GDScript::5353537388395803011::1771872849::0::1::::UserDefinedSettings<>RefCounted<><>0<>0<><>::
::res://core/::1771859083
::res://core/::1771878978
default_bus_layout.tres::AudioBusLayout::6406833063048569073::1771841784::0::1::::<><><>0<>0<><>::
gamemanager.gd::GDScript::5587465302030124915::1771841784::0::1::::GameManager<>Node<><>0<>0<><>::
gamemanager.tscn::PackedScene::5236817490969193782::1771859083::0::1::::<><><>0<>0<><>::uid://cluu0cgltsenj::::res://core/gamemanager.gd<>uid://bilai15byqef2::::res://ui/screens/pause-menu/pause_menu.tscn<>uid://bhb4ckqipjvu3::::res://core/main_environment.tres<>uid://cyfvcuxi210mg::::res://levels/main_level.tscn<>uid://hheneshfv1b2::::res://ui/themes/your_theme.tres
main_environment.tres::Environment::2881571881625704016::1771849414::0::1::::<><><>0<>0<><>::
gamemanager.tscn::PackedScene::5236817490969193782::1771873016::0::1::::<><><>0<>0<><>::uid://cluu0cgltsenj::::res://core/gamemanager.gd<>uid://bilai15byqef2::::res://ui/screens/pause-menu/pause_menu.tscn<>uid://clie4ewdm4f3p::::res://levels/level_1.tscn<>uid://bhb4ckqipjvu3::::res://core/main_environment.tres<>uid://hheneshfv1b2::::res://ui/themes/your_theme.tres
main_environment.tres::Environment::2881571881625704016::1771878978::0::1::::<><><>0<>0<><>::
::res://Enviorment/::1771872231
::res://Enviorment/Sprout Lands - Sprites - Basic pack/::1690280938
read_me.txt::TextFile::-1::1719864070::0::1::::<><><>0<>0<><>::
@@ -60,24 +60,24 @@ Water.png::CompressedTexture2D::7521696657789038951::1640153322::1771872233::1::
Wooden House.png::CompressedTexture2D::1789216524832724684::1640151246::1771872233::1::::<><><>0<>0<>8442bf97489b1a4319d77d5e012e0ab2<>res://.godot/imported/Wooden House.png-1d3507d6d9355085e2d56ca3eed34208.ctex::
Wooden_House_Roof_Tilset.png::CompressedTexture2D::7197701675632082718::1721562444::1771872233::1::::<><><>0<>0<>f0ed4b4e6d1010ba1cb3b55167a77027<>res://.godot/imported/Wooden_House_Roof_Tilset.png-d07aef27181459b764c165266c44d438.ctex::
Wooden_House_Walls_Tilset.png::CompressedTexture2D::2090137081657271458::1721134988::1771872233::1::::<><><>0<>0<>995736e94fc20b058f2c694b380ff9d2<>res://.godot/imported/Wooden_House_Walls_Tilset.png-b489333aaf9ecb685bb2e30ae3db212b.ctex::
::res://levels/::1771872849
::res://levels/::1771873066
levels_readme.md::TextFile::-1::1771841784::0::1::::<><><>0<>0<><>::
level_1.tscn::PackedScene::5561728569663930979::1771872849::0::1::::<><><>0<>0<><>::uid://cd37y52uuio73::::res://Enviorment/Sprout Lands - Sprites - Basic pack/Tilesets/Fences.png<>uid://ci8ldr4imi7rg::::res://Enviorment/Sprout Lands - Sprites - Basic pack/Tilesets/Grass.png<>uid://fmfevetyh66i::::res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn
level_1.tscn::PackedScene::5561728569663930979::1771873066::0::1::::<><><>0<>0<><>::uid://cd37y52uuio73::::res://Enviorment/Sprout Lands - Sprites - Basic pack/Tilesets/Fences.png<>uid://ci8ldr4imi7rg::::res://Enviorment/Sprout Lands - Sprites - Basic pack/Tilesets/Grass.png<>uid://fmfevetyh66i::::res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn
main_level.tscn::PackedScene::6468975218303303874::1771872092::0::1::::<><><>0<>0<><>::
::res://Machines/::1771857941
::res://Machines/Resources/::1771871836
Machine_Globals.gd::GDScript::2525448592130895831::1771871836::0::1::::<>RefCounted<><>0<>0<><>::
::res://Machines/Resources/Abstracts/::1771871981
drone_machine.gd::GDScript::6346044854333652239::1771857550::0::1::::Drone<>Machine<><>1<>0<><>::
machine_abstract.gd::GDScript::8886170484691869618::1771871981::0::1::::Machine<>Node<><>1<>0<><>::
::res://Machines/Resources/::1771878239
Machine_Globals.gd::GDScript::2525448592130895831::1771878239::0::1::::MachineGlobals<>RefCounted<><>0<>0<><>::
::res://Machines/Resources/Abstracts/::1771879056
drone_machine.gd::GDScript::6346044854333652239::1771879056::0::1::::Drone<>Machine<><>1<>0<><>::
machine_abstract.gd::GDScript::8886170484691869618::1771878055::0::1::::Machine<>CharacterBody2D<><>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<><>::
::res://Machines/Resources/Models/::1771858031
::res://Machines/Resources/Models/Drones/::1771871149
drone_model_scene.tscn::PackedScene::6165765690837776200::1771871149::0::1::::<><><>0<>0<><>::
::res://Machines/Resources/Models/Drones/BaseDrone/::1771872090
base_drone.gd::GDScript::7816552958950085701::1771872090::0::1::::BaseDroneModel<>Drone<><>0<>0<><>::
base_drone.tscn::PackedScene::376028589443558970::1771871642::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/Resources/Models/Drones/::1771879081
drone_model_scene.tscn::PackedScene::6165765690837776200::1771879081::0::1::::<><><>0<>0<><>::
::res://Machines/Resources/Models/Drones/BaseDrone/::1771878978
base_drone.gd::GDScript::7816552958950085701::1771877129::0::1::::<>Drone<><>0<>0<><>::
base_drone.tscn::PackedScene::376028589443558970::1771878978::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/Resources/Models/Mechs/::1771858031
::res://Machines/Resources/Models/Suits/::1771858007
::res://Machines/Sprites/::1771858875
@@ -91,7 +91,7 @@ base_drone_head_front_idle.png::CompressedTexture2D::138477348236707714::1771860
DefaultFuelTank.png::CompressedTexture2D::2844574142584107253::1771868974::1771869052::1::::<><><>0<>0<>f8ecb29c9e9c7ef29b63f244c630f168<>res://.godot/imported/DefaultFuelTank.png-c0f196080e0735c13191c1e87aaffab5.ctex::
::res://Machines/Sprites/Mechs/::1771858863
::res://Machines/Sprites/Suits/::1771858854
::res://ui/::1771841784
::res://ui/::1771874263
::res://ui/components/::1771841784
::res://ui/components/settings-menu/::1771841837
Revert.svg::CompressedTexture2D::4339617245426587863::1771841784::1771841837::1::::<><><>0<>0<>297dc219980ee096674b7de235f79953<>res://.godot/imported/Revert.svg-83732f7446608123e95cc2f2a2cf35c6.ctex::
@@ -100,6 +100,8 @@ settings_menu.tscn::PackedScene::6304534932307647668::1771841784::0::1::::<><><>
::res://ui/components/settings-menu/action-remapping-button/::1771841784
action_remapping_button.gd::GDScript::4642898967767345029::1771841784::0::1::::<>Button<><>0<>0<><>::
action_remapping_button.tscn::PackedScene::925410865498412070::1771841784::0::1::::<><><>0<>0<><>::uid://b7fb4ravo24q0::::res://ui/components/settings-menu/action-remapping-button/action_remapping_button.gd
::res://ui/player ui/::1771874311
::res://ui/player ui/upgrading systems/::1771874304
::res://ui/screens/::1771841784
::res://ui/screens/control-screen/::1771841784
control_screen.gd::GDScript::6615828920758056178::1771841784::0::1::::<>Control<><>0<>0<><>::
@@ -128,5 +130,5 @@ title_screen.tscn::PackedScene::7375686277331198226::1771858880::0::1::::<><><>0
::res://ui/screens/win-screen/::1771841784
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
::res://ui/themes/::1771849414
your_theme.tres::Theme::506038871261939837::1771849414::0::1::::<><><>0<>0<><>::uid://b23e4kqj4o6dv::::res://ui/components/settings-menu/Revert.svg
::res://ui/themes/::1771878978
your_theme.tres::Theme::506038871261939837::1771878978::0::1::::<><><>0<>0<><>::uid://b23e4kqj4o6dv::::res://ui/components/settings-menu/Revert.svg

View File

@@ -1,7 +1,7 @@
res://levels/level_1.tscn
res://Machines/Resources/Models/Drones/drone_model_scene.tscn
res://ui/themes/your_theme.tres
res://core/main_environment.tres
res://core/gamemanager.tscn
res://levels/level_1.tscn
res://Machines/Resources/Abstracts/drone_machine.gd
res://Machines/Resources/Abstracts/machine_abstract.gd
res://Machines/Resources/Models/Drones/BaseDrone/base_drone.gd
res://Machines/Resources/Models/Drones/BaseDrone/base_drone.tscn

View File

@@ -5,7 +5,7 @@
"grid_snap_active": false,
"grid_step": Vector2(8, 8),
"grid_visibility": 1,
"ofs": Vector2(-19.208525, -14.887727),
"ofs": Vector2(-267.5236, -135.56262),
"primary_grid_step": Vector2i(8, 8),
"show_group_gizmos": true,
"show_guides": true,
@@ -31,7 +31,7 @@
"snap_rotation_step": 0.2617994,
"snap_scale": false,
"snap_scale_step": 0.1,
"zoom": 10.834712
"zoom": 2.1435893
}
3D={
"fov": 70.01,
@@ -189,4 +189,4 @@
Anim={
"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/Level1/BaseDrone")])
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/Level1/Obstacles")])

View File

@@ -1,5 +1,5 @@
[folding]
node_unfolds=[NodePath("Ground"), PackedStringArray("Physics"), NodePath("Obstacles"), PackedStringArray("Physics", "Visibility")]
resource_unfolds=["res://levels/level_1.tscn::TileSet_gwceb", PackedStringArray(), "res://levels/level_1.tscn::TileSet_n46q3", PackedStringArray()]
node_unfolds=[NodePath("Ground"), PackedStringArray("Physics"), NodePath("Obstacles"), PackedStringArray("Physics", "Visibility", "tile_set"), NodePath("BaseDrone"), PackedStringArray("Collision")]
resource_unfolds=["res://levels/level_1.tscn::TileSet_gwceb", PackedStringArray(), "res://levels/level_1.tscn::TileSet_n46q3", PackedStringArray("terrain_set__array", "physics_layer__array")]
nodes_folded=[]

View File

@@ -9,7 +9,7 @@ executable_path="/home/emily/Desktop/Godot_v4.5.1-stable_mono_linux_x86_64/Godot
[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"]
scripts=["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", "res://Machines/mech_machine.gd", "res://Machines/suit_machine.gd", "res://Machines/Machine_Globals.gd", "res://Machines/drone_machine.gd", "res://Machines/machine_resource.gd"]
scripts=["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", "res://Machines/mech_machine.gd", "res://Machines/suit_machine.gd", "res://Machines/Machine_Globals.gd", "res://Machines/drone_machine.gd"]
[script_setup]
@@ -19,7 +19,7 @@ create_built_in_script=false
[dialog_bounds]
create_new_node=Rect2(797, 354, 900, 700)
project_settings=Rect2(3004, 350, 1200, 700)
project_settings=Rect2(647, 354, 1200, 700)
[quick_open_dialog]

View File

@@ -1,3 +1,3 @@
res://Machines/Sprites/Drones/BaseDrone/
res://Machines/Resources/Models/Drones/BaseDrone/
res://Machines/Sprites/Drones/BaseDrone/
res://Machines/

View File

@@ -3,10 +3,10 @@
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 8,
"column": 0,
"folded_lines": PackedInt32Array(),
"h_scroll_position": 0,
"row": 40,
"row": 8,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
@@ -17,11 +17,11 @@ state={
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 10,
"column": 50,
"folded_lines": PackedInt32Array(),
"h_scroll_position": 0,
"row": 1,
"scroll_position": 0.0,
"row": 85,
"scroll_position": 68.08,
"selection": false,
"syntax_highlighter": "GDScript"
}
@@ -34,8 +34,8 @@ state={
"column": 0,
"folded_lines": PackedInt32Array(),
"h_scroll_position": 0,
"row": 19,
"scroll_position": 13.0,
"row": 55,
"scroll_position": 21.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
@@ -45,10 +45,10 @@ state={
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 17,
"column": 25,
"folded_lines": PackedInt32Array(),
"h_scroll_position": 0,
"row": 9,
"row": 4,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
@@ -73,10 +73,10 @@ state={
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 17,
"column": 12,
"folded_lines": PackedInt32Array(),
"h_scroll_position": 0,
"row": 3,
"row": 0,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
@@ -123,3 +123,17 @@ state={
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://autoloads/settings/settings.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 8,
"folded_lines": PackedInt32Array(),
"h_scroll_position": 0,
"row": 256,
"scroll_position": 255.0,
"selection": false,
"syntax_highlighter": "GDScript"
}

View File

@@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View File

@@ -1,11 +1,59 @@
list=[{
"base": &"RefCounted",
"class": &"MachineGlobals",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"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",
"class": &"Mech",
"class": &"Suit",
"icon": "",
"is_abstract": true,
"is_tool": false,
"language": &"GDScript",
"path": "res://Machines/Resources/Abstracts/mech_machine.gd"
"path": "res://Machines/Resources/Abstracts/suit_machine.gd"
}, {
"base": &"Machine",
"class": &"Drone",
@@ -16,12 +64,12 @@ list=[{
"path": "res://Machines/Resources/Abstracts/drone_machine.gd"
}, {
"base": &"Machine",
"class": &"Suit",
"class": &"Mech",
"icon": "",
"is_abstract": true,
"is_tool": false,
"language": &"GDScript",
"path": "res://Machines/Resources/Abstracts/suit_machine.gd"
"path": "res://Machines/Resources/Abstracts/mech_machine.gd"
}, {
"base": &"CharacterBody2D",
"class": &"Machine",
@@ -30,44 +78,4 @@ list=[{
"is_tool": false,
"language": &"GDScript",
"path": "res://Machines/Resources/Abstracts/machine_abstract.gd"
}, {
"base": &"RefCounted",
"class": &"UserDefinedSettings",
"icon": "",
"is_abstract": false,
"is_tool": false,
"language": &"GDScript",
"path": "res://autoloads/settings/user_defined_settings.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"
}]

View File

@@ -3,13 +3,85 @@ extends Machine
class_name Drone
@export_category("Dash")
@export var dodge_cd : float
@export var dodge_cd := 5.0
@export var dodge_speed := 650.0
@export var dodge_duration := 0.18
var dodge_duration_timer : Timer
#region animation dictionaries
@export var idle_anim_front : Dictionary
@export var idle_anim_back : Dictionary
@export var idle_anim_left : Dictionary
@export var idle_anim_right : Dictionary
@export var walking_anim_front : Dictionary
@export var walking_anim_back : Dictionary
@export var walking_anim_left : Dictionary
@export var walking_anim_right : Dictionary
@export var dashing_anim_front : Dictionary
@export var dashing_anim_back : Dictionary
@export var dashing_anim_left : Dictionary
@export var dashing_anim_right : Dictionary
@export var interacting_anim_front : Dictionary
@export var interacting_anim_back : Dictionary
@export var interacting_anim_left : Dictionary
@export var interacting_anim_right : Dictionary
var anim_dictionary_idle : Dictionary
var anim_dictionary_walking : Dictionary
var anim_dictionary_dashing : Dictionary
var anim_dictionary_interacting : Dictionary
#endregion
func _ready() -> void:
add_on_slots = 1
#region init animation dictionaries
anim_dictionary_idle.set(MachineGlobals.look_direction.UP, idle_anim_back)
anim_dictionary_idle.set(MachineGlobals.look_direction.DOWN, idle_anim_front)
anim_dictionary_idle.set(MachineGlobals.look_direction.LEFT, idle_anim_left)
anim_dictionary_idle.set(MachineGlobals.look_direction.RIGHT, idle_anim_right)
anim_dictionary_walking.set(MachineGlobals.look_direction.UP, walking_anim_back)
anim_dictionary_walking.set(MachineGlobals.look_direction.DOWN, walking_anim_front)
anim_dictionary_walking.set(MachineGlobals.look_direction.LEFT, walking_anim_left)
anim_dictionary_walking.set(MachineGlobals.look_direction.RIGHT, walking_anim_right)
anim_dictionary_interacting.set(MachineGlobals.look_direction.UP, interacting_anim_back)
anim_dictionary_interacting.set(MachineGlobals.look_direction.DOWN, interacting_anim_front)
anim_dictionary_interacting.set(MachineGlobals.look_direction.LEFT, interacting_anim_left)
anim_dictionary_interacting.set(MachineGlobals.look_direction.RIGHT, interacting_anim_right)
anim_dictionary_dashing.set(MachineGlobals.look_direction.UP, dashing_anim_back)
anim_dictionary_dashing.set(MachineGlobals.look_direction.DOWN, dashing_anim_front)
anim_dictionary_dashing.set(MachineGlobals.look_direction.LEFT, dashing_anim_left)
anim_dictionary_dashing.set(MachineGlobals.look_direction.RIGHT, dashing_anim_right)
#endregion
for a in self.get_children() :
if a.name == "DodgeDurationTimer" :
dodge_duration_timer = a
for a in MachineGlobals.drone_body_slots :
machine_upgrades.set(a,null)
animation_state_machine = MachineGlobals.regular_states.IDLING
func class_ability() -> float:
#do dash
return dodge_cd
func listen_to_animation_signals(next_anim_state : MachineGlobals.regular_states) -> void:
match next_anim_state :
MachineGlobals.regular_states.IDLING :
for a : AnimatedSprite2D in _get_body_parts() :
a.play(anim_dictionary_idle.get(look_dir).get(a.name))
MachineGlobals.regular_states.WALKING :
for a : AnimatedSprite2D in _get_body_parts() :
a.play(anim_dictionary_walking.get(look_dir).get(a.name))
MachineGlobals.regular_states.DASHING :
for a : AnimatedSprite2D in _get_body_parts() :
a.play(anim_dictionary_dashing.get(look_dir).get(a.name))
MachineGlobals.regular_states.INTERACTING :
for a : AnimatedSprite2D in _get_body_parts() :
a.play(anim_dictionary_interacting.get(look_dir).get(a.name))

View File

@@ -7,8 +7,10 @@ extends CharacterBody2D
@export var hit_points : float
@export var fuel_tank_capacity : float
@export var movement_speed : float
signal change_animation(anim_to_change_to)
var animation_state_machine : MachineGlobals.regular_states
var look_dir : MachineGlobals.look_direction
var states : Array
var effects : Array
var add_on_slots : int
var machine_upgrades : Dictionary
var ability_timer : Timer
@@ -21,6 +23,11 @@ var current_fuel_in_tank : float
@abstract func model_ability() -> float
@abstract func class_ability() -> float
@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 :
pass
@@ -31,8 +38,21 @@ func _physics_process(delta: float) -> void:
move_and_slide()
func _movement(delta: float) -> void :
DebugGlobal.set_debug_info("Velocity", self.velocity )
var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down")
self.velocity = input_direction * movement_speed
if self.velocity != Vector2.ZERO && animation_state_machine in [MachineGlobals.regular_states.IDLING,MachineGlobals.regular_states.INTERACTING] :
animation_state_machine = MachineGlobals.regular_states.WALKING
if self.velocity.y < 0 :
look_dir = MachineGlobals.look_direction.UP
elif self.velocity.y > 0 :
look_dir = MachineGlobals.look_direction.DOWN
elif self.velocity.x > 0 :
look_dir = MachineGlobals.look_direction.RIGHT
elif self.velocity.x < 0 :
look_dir = MachineGlobals.look_direction.LEFT
else :
animation_state_machine = MachineGlobals.regular_states.IDLING
func _action_process(delta:float) -> void :
if action_timer != null && action_timer.is_stopped():
@@ -47,3 +67,10 @@ func _ability_process(delta:float) -> void :
ability_timer.start(class_ability())
elif Input.is_action_just_pressed("model_ability") :
ability_timer.start(model_ability())
func _get_body_parts() -> Array :
var clist : Array
for a in self.get_children() :
if a is AnimatedSprite2D :
clist.append(a)
return clist

View File

@@ -1,3 +1,4 @@
class_name MachineGlobals
enum drone_body_slots{
BRAIN,
LEGS,

View File

@@ -1,7 +1,7 @@
extends Drone
func _ready() -> void:
self_body = self
pass
func primary_action() -> float:
return -1

View File

@@ -190,7 +190,7 @@ animations = [{
}],
"loop": true,
"name": &"base_head_idle_front",
"speed": 4.0
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
@@ -226,12 +226,8 @@ animations = [{
[node name="BaseDrone" unique_id=872770085 instance=ExtResource("1_j7lnw")]
script = ExtResource("2_njeil")
dodge_cd = null
model_name = &"Base"
carry_capacity = null
hit_points = null
fuel_tank_capacity = null
movement_speed = 5.0
movement_speed = 150.0
[node name="Brain" parent="." index="0" unique_id=1086286463]
position = Vector2(-4.7683716e-07, -0.9999995)
@@ -261,4 +257,6 @@ position = Vector2(-2.842171e-14, -5.9604645e-08)
scale = Vector2(0.6875, 0.6875)
sprite_frames = SubResource("SpriteFrames_wbero")
animation = &"base_head_idle_front"
frame_progress = 0.7447344
[node name="Camera2D" parent="." index="6" unique_id=2079743221]
zoom = Vector2(5, 5)

View File

@@ -7,6 +7,7 @@ size = Vector2(10, 8)
[node name="Drone" type="CharacterBody2D" unique_id=19986915]
texture_filter = 1
collision_layer = 3
[node name="Brain" type="AnimatedSprite2D" parent="." unique_id=1086286463]
sprite_frames = SubResource("SpriteFrames_bsvqd")
@@ -25,3 +26,7 @@ sprite_frames = SubResource("SpriteFrames_bsvqd")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1475205819]
shape = SubResource("RectangleShape2D_6pa52")
[node name="Camera2D" type="Camera2D" parent="." unique_id=2079743221]
[node name="DodgeDurationTimer" type="Timer" parent="." unique_id=656287999]

View File

@@ -81,26 +81,37 @@ texture = ExtResource("2_bt44k")
[sub_resource type="TileSet" id="TileSet_gwceb"]
sources/0 = SubResource("TileSetAtlasSource_btoec")
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_bt44k"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kx6l7"]
texture = ExtResource("1_jirdo")
0:0/0 = 0
1:0/0 = 0
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-1.7985878, -4.13675, 2.5180225, -5.935337, 8, -3.956891, 8, -0.71943474, 2.877739, -0.71943474, 0.71943474, 8, -2.1583042, 8)
2:0/0 = 0
2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -4.4964676, 8, -3.7770329, 8, -0.71943474, 2.877739, -0.71943474, 1.978445, 8, -1.2590103, 8, -2.7046165, -0.83976746, -8, -0.8992939)
3:0/0 = 0
3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -3.7770329, 2.5180225, -5.755479, 1.7985878, 8, -0.8992939, 8, -1.4388695, -0.35971642, -8, -1.4388695)
0:1/0 = 0
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-1.978447, -8, 2.6978817, -8, 1.0791531, 8, -2.3381634, 8)
1:1/0 = 0
2:1/0 = 0
3:1/0 = 0
0:2/0 = 0
1:2/0 = 0
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-2.1583042, -8, 1.0791531, -8, 8, -3.2374563, 8, 1.6187286, -3.2374573, 3.956892)
2:2/0 = 0
3:2/0 = 0
3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -3.7770329, 1.0791531, -8, 3.057598, 1.7985878, -8, 2.3381634)
0:3/0 = 0
1:3/0 = 0
2:3/0 = 0
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 0.17985916, -8, 0)
3:3/0 = 0
[sub_resource type="TileSet" id="TileSet_n46q3"]
physics_layer_0/collision_layer = 3
physics_layer_0/physics_material = SubResource("PhysicsMaterial_bt44k")
sources/0 = SubResource("TileSetAtlasSource_kx6l7")
[node name="Level1" type="Node2D" unique_id=875914632]
@@ -111,12 +122,8 @@ tile_set = SubResource("TileSet_gwceb")
collision_enabled = false
[node name="Obstacles" type="TileMapLayer" parent="." unique_id=1240210132]
tile_map_data = PackedByteArray("AAABAAEAAAABAAAAAAABAAIAAAAAAAEAAAABAAMAAAAAAAEAAAABAAQAAAAAAAEAAAABAAUAAAAAAAEAAAABAAYAAAAAAAEAAAABAAcAAAAAAAEAAAABAAgAAAAAAAEAAAABAAkAAAAAAAEAAAABAAoAAAAAAAEAAAABAAsAAAABAAIAAAACAAsAAAACAAMAAAADAAsAAAACAAMAAAAEAAsAAAACAAMAAAAFAAsAAAACAAMAAAAGAAsAAAACAAMAAAAHAAsAAAACAAMAAAAIAAsAAAACAAMAAAAJAAsAAAACAAMAAAAKAAsAAAACAAMAAAALAAsAAAACAAMAAAAMAAsAAAACAAMAAAANAAsAAAACAAMAAAAOAAsAAAACAAMAAAAPAAsAAAACAAMAAAAQAAsAAAACAAMAAAARAAsAAAACAAMAAAASAAsAAAACAAMAAAATAAsAAAACAAMAAAAUAAsAAAACAAMAAAAVAAsAAAACAAMAAAAWAAsAAAACAAMAAAAXAAsAAAACAAMAAAAYAAsAAAACAAMAAAAZAAsAAAACAAMAAAAaAAsAAAACAAMAAAAbAAsAAAACAAMAAAAcAAsAAAACAAMAAAAdAAsAAAACAAMAAAAeAAsAAAACAAMAAAAfAAsAAAACAAMAAAAgAAsAAAACAAMAAAAhAAsAAAACAAMAAAAiAAsAAAACAAMAAAAjAAsAAAACAAMAAAAkAAsAAAACAAMAAAAlAAsAAAACAAMAAAAmAAsAAAACAAMAAAAnAAsAAAACAAMAAAAoAAsAAAACAAMAAAApAAsAAAACAAMAAAAqAAsAAAACAAMAAAArAAsAAAACAAMAAAACAAEAAAACAAMAAAADAAEAAAACAAMAAAAEAAEAAAACAAMAAAAFAAEAAAACAAMAAAAGAAEAAAACAAMAAAAHAAEAAAACAAMAAAALAAEAAAACAAMAAAAMAAEAAAACAAMAAAAIAAEAAAACAAMAAAAJAAEAAAACAAMAAAAKAAEAAAACAAMAAAArAAEAAAACAAMAAAAqAAEAAAACAAMAAAApAAEAAAACAAMAAAAoAAEAAAACAAMAAAAnAAEAAAACAAMAAAAmAAEAAAACAAMAAAAlAAEAAAACAAMAAAAkAAEAAAACAAMAAAAjAAEAAAACAAMAAAAiAAEAAAACAAMAAAAhAAEAAAACAAMAAAAgAAEAAAACAAMAAAAfAAEAAAACAAMAAAAeAAEAAAACAAMAAAAdAAEAAAACAAMAAAAcAAEAAAACAAMAAAAbAAEAAAACAAMAAAAaAAEAAAACAAMAAAAZAAEAAAACAAMAAAAYAAEAAAACAAMAAAAXAAEAAAACAAMAAAAWAAEAAAACAAMAAAAVAAEAAAACAAMAAAAUAAEAAAACAAMAAAATAAEAAAACAAMAAAASAAEAAAACAAMAAAARAAEAAAACAAMAAAAQAAEAAAACAAMAAAAPAAEAAAACAAMAAAAOAAEAAAACAAMAAAANAAEAAAACAAMAAAAsAAIAAAAAAAEAAAAsAAMAAAAAAAEAAAAsAAQAAAAAAAEAAAAsAAUAAAAAAAEAAAAsAAYAAAAAAAEAAAAsAAcAAAAAAAEAAAAsAAgAAAAAAAEAAAAsAAkAAAAAAAEAAAAsAAoAAAAAAAEAAAAsAAsAAAADAAIAAAAsAAEAAAADAAAAAAA=")
tile_map_data = PackedByteArray("AAACAAEAAAACAAMAAAADAAEAAAACAAMAAAAEAAEAAAACAAMAAAAFAAEAAAACAAMAAAAGAAEAAAACAAMAAAAHAAEAAAACAAMAAAAIAAEAAAACAAMAAAAHAAkAAAACAAMAAAAGAAkAAAACAAMAAAAFAAkAAAACAAMAAAAEAAkAAAACAAMAAAADAAkAAAACAAMAAAACAAkAAAACAAMAAAABAAkAAAABAAMAAAAJAAkAAAADAAMAAAAIAAkAAAACAAMAAAABAAgAAAAAAAEAAAABAAcAAAAAAAEAAAABAAYAAAAAAAEAAAABAAUAAAAAAAEAAAABAAQAAAAAAAEAAAABAAMAAAAAAAEAAAABAAIAAAAAAAEAAAAJAAIAAAAAAAEAAAAJAAMAAAAAAAEAAAAJAAQAAAAAAAEAAAAJAAUAAAAAAAEAAAAJAAYAAAAAAAEAAAAJAAcAAAAAAAEAAAAJAAEAAAADAAEAAAABAAEAAAABAAAAAAA=")
tile_set = SubResource("TileSet_n46q3")
[node name="BaseDrone" parent="." unique_id=872770085 instance=ExtResource("3_bt44k")]
position = Vector2(40, 43)
dodge_cd = null
carry_capacity = null
hit_points = null
fuel_tank_capacity = null

View File

@@ -25,7 +25,6 @@ InputManager="*res://autoloads/input_manager.gd"
DebugGlobal="*res://autoloads/debug_global.gd"
Global="*res://autoloads/global.gd"
Settings="*res://autoloads/settings/settings.gd"
MachineGlobals="*uid://bb8l1fmenh8j0"
[display]
@@ -98,6 +97,11 @@ add_on_ability_1={
]
}
[layer_names]
2d_physics/layer_1="EnviormentCollision"
2d_physics/layer_2="CharacterCollisions"
[rendering]
renderer/rendering_method="gl_compatibility"