From d7cb6fa877ce9621553f7966b3ce4357a524f4a2 Mon Sep 17 00:00:00 2001 From: Dustin Date: Sun, 16 Mar 2025 10:02:17 -0700 Subject: [PATCH] Adding player resourses with janky mod of aseprite wizard importer. --- Main.tscn | 5 +- .../players/playerE/PlayerE_SpriteFrames.tres | 130 ++++++++++++++++++ .../playerE/{template.png => idle.png} | Bin ...mplate-jump.png.import => idle.png.import} | 6 +- .../playerE/{template-jump.png => jump.png} | Bin .../{template.png.import => jump.png.import} | 8 +- assets/actors/players/playerE/land.png | Bin 0 -> 1420 bytes assets/actors/players/playerE/land.png.import | 35 +++++ .../players/playerE/new_spriteframes.tres | 103 -------------- assets/actors/players/playerE/run.png | Bin 0 -> 3426 bytes assets/actors/players/playerE/run.png.import | 35 +++++ lib/classes/actor.gd | 18 +-- lib/classes/movement_state_receiver.gd | 23 +++- lib/templates/Actor/ActorTemplate.tscn | 20 ++- src/actors/players/playerE/PlayerE.tscn | 20 ++- 15 files changed, 265 insertions(+), 138 deletions(-) create mode 100644 assets/actors/players/playerE/PlayerE_SpriteFrames.tres rename assets/actors/players/playerE/{template.png => idle.png} (100%) rename assets/actors/players/playerE/{template-jump.png.import => idle.png.import} (68%) rename assets/actors/players/playerE/{template-jump.png => jump.png} (100%) rename assets/actors/players/playerE/{template.png.import => jump.png.import} (67%) create mode 100644 assets/actors/players/playerE/land.png create mode 100644 assets/actors/players/playerE/land.png.import delete mode 100644 assets/actors/players/playerE/new_spriteframes.tres create mode 100644 assets/actors/players/playerE/run.png create mode 100644 assets/actors/players/playerE/run.png.import diff --git a/Main.tscn b/Main.tscn index bb6227a..0db4e92 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=2] -[ext_resource path="res://lib/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1] +[ext_resource path="res://src/actors/players/playerE/PlayerE.tscn" type="PackedScene" id=1] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 208, 20 ) @@ -18,5 +18,4 @@ margin_bottom = 200.0 position = Vector2( 208, 20 ) shape = SubResource( 1 ) -[node name="ActorTemplate" parent="." instance=ExtResource( 1 )] -position = Vector2( 168, 32 ) +[node name="PlayerE" parent="." instance=ExtResource( 1 )] diff --git a/assets/actors/players/playerE/PlayerE_SpriteFrames.tres b/assets/actors/players/playerE/PlayerE_SpriteFrames.tres new file mode 100644 index 0000000..eec639d --- /dev/null +++ b/assets/actors/players/playerE/PlayerE_SpriteFrames.tres @@ -0,0 +1,130 @@ +[gd_resource type="SpriteFrames" load_steps=27 format=2] + +[sub_resource type="StreamTexture" id=1] +load_path = "res://.import/idle.png-dac221ba43c70fde9cf788217116f029.stex" + +[sub_resource type="AtlasTexture" id=2] +atlas = SubResource( 1 ) +region = Rect2( 0, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=3] +atlas = SubResource( 1 ) +region = Rect2( 48, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=4] +atlas = SubResource( 1 ) +region = Rect2( 96, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=5] +atlas = SubResource( 1 ) +region = Rect2( 0, 48, 48, 48 ) + +[sub_resource type="AtlasTexture" id=6] +atlas = SubResource( 1 ) +region = Rect2( 48, 48, 48, 48 ) + +[sub_resource type="AtlasTexture" id=7] +atlas = SubResource( 1 ) +region = Rect2( 96, 48, 48, 48 ) + +[sub_resource type="StreamTexture" id=8] +load_path = "res://.import/jump.png-e5e27a6608040d3526a151777807f18b.stex" + +[sub_resource type="AtlasTexture" id=9] +atlas = SubResource( 8 ) +region = Rect2( 0, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=10] +atlas = SubResource( 8 ) +region = Rect2( 48, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=11] +atlas = SubResource( 8 ) +region = Rect2( 0, 48, 48, 48 ) + +[sub_resource type="StreamTexture" id=12] +load_path = "res://.import/land.png-c462761c5fb4bf0befa8d4a5a879e2f5.stex" + +[sub_resource type="AtlasTexture" id=13] +atlas = SubResource( 12 ) +region = Rect2( 0, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=14] +atlas = SubResource( 12 ) +region = Rect2( 48, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=15] +atlas = SubResource( 12 ) +region = Rect2( 96, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=16] +atlas = SubResource( 12 ) +region = Rect2( 0, 48, 48, 48 ) + +[sub_resource type="AtlasTexture" id=17] +atlas = SubResource( 12 ) +region = Rect2( 48, 48, 48, 48 ) + +[sub_resource type="StreamTexture" id=18] +load_path = "res://.import/run.png-d086b4c01d4e3ff36f750b9aff5a303a.stex" + +[sub_resource type="AtlasTexture" id=19] +atlas = SubResource( 18 ) +region = Rect2( 0, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=20] +atlas = SubResource( 18 ) +region = Rect2( 48, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=21] +atlas = SubResource( 18 ) +region = Rect2( 96, 0, 48, 48 ) + +[sub_resource type="AtlasTexture" id=22] +atlas = SubResource( 18 ) +region = Rect2( 0, 48, 48, 48 ) + +[sub_resource type="AtlasTexture" id=23] +atlas = SubResource( 18 ) +region = Rect2( 48, 48, 48, 48 ) + +[sub_resource type="AtlasTexture" id=24] +atlas = SubResource( 18 ) +region = Rect2( 96, 48, 48, 48 ) + +[sub_resource type="AtlasTexture" id=25] +atlas = SubResource( 18 ) +region = Rect2( 0, 96, 48, 48 ) + +[sub_resource type="AtlasTexture" id=26] +atlas = SubResource( 18 ) +region = Rect2( 48, 96, 48, 48 ) + +[resource] +resource_name = "PlayerE" +animations = [ { +"frames": [ SubResource( 2 ) ], +"loop": true, +"name": "default", +"speed": 13.0 +}, { +"frames": [ SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 5 ), SubResource( 6 ), SubResource( 2 ), SubResource( 7 ), SubResource( 7 ), SubResource( 7 ) ], +"loop": true, +"name": "idle", +"speed": 11.0 +}, { +"frames": [ SubResource( 9 ), SubResource( 10 ), SubResource( 11 ) ], +"loop": false, +"name": "jump", +"speed": 10.0 +}, { +"frames": [ SubResource( 13 ), SubResource( 14 ), SubResource( 14 ), SubResource( 15 ), SubResource( 15 ), SubResource( 16 ), SubResource( 16 ), SubResource( 17 ), SubResource( 17 ) ], +"loop": false, +"name": "land", +"speed": 13.0 +}, { +"frames": [ SubResource( 19 ), SubResource( 20 ), SubResource( 21 ), SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 26 ) ], +"loop": true, +"name": "run", +"speed": 13.0 +} ] diff --git a/assets/actors/players/playerE/template.png b/assets/actors/players/playerE/idle.png similarity index 100% rename from assets/actors/players/playerE/template.png rename to assets/actors/players/playerE/idle.png diff --git a/assets/actors/players/playerE/template-jump.png.import b/assets/actors/players/playerE/idle.png.import similarity index 68% rename from assets/actors/players/playerE/template-jump.png.import rename to assets/actors/players/playerE/idle.png.import index 58d396d..b20850d 100644 --- a/assets/actors/players/playerE/template-jump.png.import +++ b/assets/actors/players/playerE/idle.png.import @@ -2,15 +2,15 @@ importer="texture" type="StreamTexture" -path="res://.import/template-jump.png-99a30c82ac7d2ef1ff0cd02512f1ee55.stex" +path="res://.import/idle.png-dac221ba43c70fde9cf788217116f029.stex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/actors/players/playerE/template-jump.png" -dest_files=[ "res://.import/template-jump.png-99a30c82ac7d2ef1ff0cd02512f1ee55.stex" ] +source_file="res://assets/actors/players/playerE/idle.png" +dest_files=[ "res://.import/idle.png-dac221ba43c70fde9cf788217116f029.stex" ] [params] diff --git a/assets/actors/players/playerE/template-jump.png b/assets/actors/players/playerE/jump.png similarity index 100% rename from assets/actors/players/playerE/template-jump.png rename to assets/actors/players/playerE/jump.png diff --git a/assets/actors/players/playerE/template.png.import b/assets/actors/players/playerE/jump.png.import similarity index 67% rename from assets/actors/players/playerE/template.png.import rename to assets/actors/players/playerE/jump.png.import index bf2593c..13705ec 100644 --- a/assets/actors/players/playerE/template.png.import +++ b/assets/actors/players/playerE/jump.png.import @@ -2,15 +2,15 @@ importer="texture" type="StreamTexture" -path="res://.import/template.png-4288ca8cd0abcf2db7d00f52e5ba2170.stex" +path="res://.import/jump.png-e5e27a6608040d3526a151777807f18b.stex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/actors/players/playerE/template.png" -dest_files=[ "res://.import/template.png-4288ca8cd0abcf2db7d00f52e5ba2170.stex" ] +source_file="res://assets/actors/players/playerE/jump.png" +dest_files=[ "res://.import/jump.png-e5e27a6608040d3526a151777807f18b.stex" ] [params] @@ -20,7 +20,7 @@ compress/hdr_mode=0 compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 -flags/filter=true +flags/filter=false flags/mipmaps=false flags/anisotropic=false flags/srgb=2 diff --git a/assets/actors/players/playerE/land.png b/assets/actors/players/playerE/land.png new file mode 100644 index 0000000000000000000000000000000000000000..8e25377b5e04259cd344c1d14978b86cffa8f98c GIT binary patch literal 1420 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 void: sound_effects_dict[i.animation_name + str(i.frame_number)] = i.sound print (sound_effects_dict) -# Disable to test whether actually needed. -#func _unhandled_input(event: InputEvent) -> void: -# if actor_type == "Player": -# movement_component.process_input(event) -# movement_state_machine.process_input(event) -# -#func _physics_process(delta: float) -> void: -# movement_component.process_physics(delta) -# movement_state_machine.process_physics(delta) +func _unhandled_input(event: InputEvent) -> void: + if actor_type == "Player": + movement_component.process_input(event) + #movement_state_machine.process_input(event) + +func _physics_process(delta: float) -> void: + movement_component.process_physics(delta) + #movement_state_machine.process_physics(delta) # #func _process(delta: float) -> void: # if actor_type == "NPC" or actor_type == "Enemy": diff --git a/lib/classes/movement_state_receiver.gd b/lib/classes/movement_state_receiver.gd index 7209874..b26ae4d 100644 --- a/lib/classes/movement_state_receiver.gd +++ b/lib/classes/movement_state_receiver.gd @@ -41,10 +41,14 @@ const LEFT = -1.0 const RIGHT = 1.0 func _ready(): - pass + request_state_change = funcref(get_node(callable_state_machine), 'change_to_known_state') + get_node(callable_state_machine).connect("state_changed", self,"_on_state_change") +############ +# These get called by the parent +############ func process_physics(delta): - pass + move_actor_as_desired(delta) # Shouldn't need a proces function #func process(delta): @@ -52,7 +56,9 @@ func process_physics(delta): func process_input(event: InputEvent): pass - + +############ + # A Series of helper functions func go_up(): desired_movement_vector.y = UP @@ -92,6 +98,17 @@ func wants_climb() -> bool: func get_climb_shape_location() -> Vector2: return Vector2(-1,-1) +func _on_state_change(old_state_name:String, new_state :State): + print ("got the state change signal (MC) ", new_state.name) + # set current state to new_state + #TODO: Confirm that this is a reference to the state in the + ###### State machine + if new_state is StateAnimatedActor: #Testing this. Update: It works + current_state = new_state + else: + push_warning("Received non animated Actor state.") + #current_state = new_state + func move_actor_as_desired(delta: float, x_move_direction_override: float = 0): diff --git a/lib/templates/Actor/ActorTemplate.tscn b/lib/templates/Actor/ActorTemplate.tscn index ef89c21..fdf0050 100644 --- a/lib/templates/Actor/ActorTemplate.tscn +++ b/lib/templates/Actor/ActorTemplate.tscn @@ -1,8 +1,6 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=6 format=2] -[ext_resource path="res://lib/classes/animated_sprite_state_receiver.gd" type="Script" id=1] [ext_resource path="res://lib/classes/state_machine.gd" type="Script" id=2] -[ext_resource path="res://assets/actors/players/playerE/new_spriteframes.tres" type="SpriteFrames" id=3] [ext_resource path="res://lib/classes/state_animated_actor.gd" type="Script" id=4] [ext_resource path="res://lib/classes/movement_state_receiver.gd" type="Script" id=5] [ext_resource path="res://lib/classes/actor.gd" type="Script" id=8] @@ -26,27 +24,25 @@ collision_layer = 2 script = ExtResource( 8 ) [node name="AnimatedSprite_StateReceiver" type="AnimatedSprite" parent="."] -frames = ExtResource( 3 ) -animation = "idle" -script = ExtResource( 1 ) __meta__ = { "_aseprite_wizard_config_": { "layer": "", -"o_ex_p": "BG", -"o_folder": "res://assets/actors/players/playerE", -"o_name": "template-jump", +"o_ex_p": "-.*", +"o_folder": "", +"o_name": "", "only_visible": true, "op_exp": true, +"sf_name": "", "slice": "", -"source": "/home/relay01/Assets/Library/Asset Packs 1-5/Asset Packs 1-4 (final)/Asset Pack-V1/Player Jump/player jump 48x48.aseprite" +"source": "" } } -callable_state_machine = NodePath("../movement_state_machine") [node name="Movement_StateReceiver" type="Node" parent="."] script = ExtResource( 5 ) +callable_state_machine = NodePath("../Movement_StateMachine") -[node name="movement_state_machine" type="Node" parent="."] +[node name="Movement_StateMachine" type="Node" parent="."] script = ExtResource( 2 ) starting_state_name = "idle" states = [ SubResource( 1 ) ] diff --git a/src/actors/players/playerE/PlayerE.tscn b/src/actors/players/playerE/PlayerE.tscn index be06cd7..6a8ceda 100644 --- a/src/actors/players/playerE/PlayerE.tscn +++ b/src/actors/players/playerE/PlayerE.tscn @@ -1,5 +1,23 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=3 format=2] [ext_resource path="res://lib/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1] +[ext_resource path="res://assets/actors/players/playerE/PlayerE_SpriteFrames.tres" type="SpriteFrames" id=2] [node name="PlayerE" instance=ExtResource( 1 )] +actor_type = "Player" + +[node name="AnimatedSprite_StateReceiver" parent="." index="0"] +frames = ExtResource( 2 ) +__meta__ = { +"_aseprite_wizard_config_": { +"layer": "", +"o_ex_p": "-.*", +"o_folder": "res://assets/actors/players/playerE", +"o_name": "run", +"only_visible": true, +"op_exp": true, +"sf_name": "PlayerE_SpriteFrames", +"slice": "", +"source": "/home/relay01/Assets/Library/Asset Packs 1-5/Asset Packs 1-4 (final)/Asset Pack-V1/Player Run/player run 48x48.aseprite" +} +}