diff --git a/src/Actors/Platform/PlatformVMove/PlatformVMove.tscn b/src/Actors/Platform/PlatformVMove/PlatformVMove.tscn new file mode 100644 index 0000000..d6f6452 --- /dev/null +++ b/src/Actors/Platform/PlatformVMove/PlatformVMove.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://src/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1] +[ext_resource path="res://src/Actors/Platform/PlatformVMove/states2/move.gd" type="Script" id=2] +[ext_resource path="res://src/Actors/Platform/PlatformVMove/states2/idle.gd" type="Script" id=3] + +[node name="PlatformVMove" instance=ExtResource( 1 )] + +[node name="AnimatedSprite" parent="." index="0"] +frame = 0 + +[node name="CollisionShape2D" parent="." index="1"] +position = Vector2( 0, 1 ) + +[node name="idle" parent="movement_state_machine" index="0"] +script = ExtResource( 3 ) +animation_sequence = [ ] +fall_node = NodePath("") +move_node = NodePath("") + +[node name="move" parent="movement_state_machine" index="2"] +script = ExtResource( 2 ) +animation_sequence = [ ] +fall_node = NodePath("") +idle_node = NodePath("") diff --git a/src/Actors/Platform/PlatformVMove/states2/idle.gd b/src/Actors/Platform/PlatformVMove/states2/idle.gd new file mode 100644 index 0000000..250c59c --- /dev/null +++ b/src/Actors/Platform/PlatformVMove/states2/idle.gd @@ -0,0 +1,30 @@ +extends StateAnimatedActor + +export (NodePath) var fall_node +export (NodePath) var move_node + +onready var fall_state: State = get_node(fall_node) +onready var move_state: State = get_node(move_node) + +func enter() -> void: + .enter() +# parent.set_hurtbox(true) + move_component.velocity.x = 0 + if debug_state: + print(owner.name, " Move Component: ", move_component.desired_movement_vector.x) + +func process_physics(delta: float) -> State: + +# parent.velocity.y += gravity * delta +# #parent.velocity = parent.move_and_slide(parent.velocity, Vector2(0, -1)) +# parent.velocity.x = move_component.desired_movement_vector.x * move_speed +# parent.velocity = parent.move_and_slide(parent.velocity, Vector2(0, -1)) + + move_actor_as_desired(delta) + + if move_component.velocity.x != 0.0: + return move_state + + if !parent.is_on_floor(): + return fall_state + return null diff --git a/src/Actors/Platform/PlatformVMove/states2/move.gd b/src/Actors/Platform/PlatformVMove/states2/move.gd new file mode 100644 index 0000000..f93dab5 --- /dev/null +++ b/src/Actors/Platform/PlatformVMove/states2/move.gd @@ -0,0 +1,21 @@ +extends StateAnimatedActor + +export (NodePath) var fall_node +export (NodePath) var idle_node + +onready var fall_state: State = get_node(fall_node) +onready var idle_state: State = get_node(idle_node) + +func process_physics(delta: float) -> State: + + move_actor_as_desired(delta) + + if move_component.velocity.x == 0.0: + return idle_state + + #Flip the character before tha actual move maybe. + parent.transform.x.x = move_component.get_movement_direction() + + if !parent.is_on_floor(): + return fall_state + return null diff --git a/src/Levels/Level.tscn b/src/Levels/Level.tscn index a15a733..f5a1a46 100644 --- a/src/Levels/Level.tscn +++ b/src/Levels/Level.tscn @@ -1,6 +1,5 @@ -[gd_scene load_steps=18 format=2] +[gd_scene load_steps=17 format=2] -[ext_resource path="res://src/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1] [ext_resource path="res://assets/Tiles/Assets/Demo TileSet.tres" type="TileSet" id=2] [ext_resource path="res://assets/Backgrounds/bgmuck.png" type="Texture" id=3] [ext_resource path="res://src/Interactables/Chest.tscn" type="PackedScene" id=4] @@ -118,13 +117,6 @@ __meta__ = { [node name="EnemyC2" parent="." instance=ExtResource( 7 )] position = Vector2( 494, 39 ) -[node name="ActorTemplate" parent="." instance=ExtResource( 1 )] -position = Vector2( 262, 44 ) -__meta__ = { -"_edit_lock_": true -} -actor_type = "NPC" - [node name="HealthPickup" parent="." instance=ExtResource( 5 )] position = Vector2( 226, 153 ) diff --git a/src/enemyC/EnemyC.tscn b/src/enemyC/EnemyC.tscn index 3862edd..b6a4c7e 100644 --- a/src/enemyC/EnemyC.tscn +++ b/src/enemyC/EnemyC.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=33 format=2] +[gd_scene load_steps=34 format=2] [ext_resource path="res://src/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1] [ext_resource path="res://src/enemyC/enemyC_movement_component.gd" type="Script" id=2] @@ -122,6 +122,9 @@ extents = Vector2( 9, 3.5 ) [sub_resource type="CapsuleShape2D" id=24] height = 10.0 +[sub_resource type="RectangleShape2D" id=25] +extents = Vector2( 10.5, 17.5 ) + [node name="EnemyC" instance=ExtResource( 1 )] script = ExtResource( 6 ) actor_type = "Enemy" @@ -144,10 +147,7 @@ __meta__ = { } } -[node name="CollisionShape2D" parent="." index="1"] -position = Vector2( -0.5, -2 ) - -[node name="movement_component" parent="." index="2"] +[node name="movement_component" parent="." index="1"] script = ExtResource( 2 ) [node name="IdleTimeout" type="Timer" parent="movement_component" index="0"] @@ -189,14 +189,14 @@ timeout_seconds = 0.5 move_speed = -5.0 animation_sequence = [ "death" ] -[node name="Hurtbox_Component" parent="." index="4"] +[node name="Hurtbox_Component" parent="." index="3"] hurtbox_entered_function = "enemyHit" [node name="CollisionShape2D" parent="Hurtbox_Component" index="0"] position = Vector2( -1, -2 ) shape = SubResource( 22 ) -[node name="EdgeDetection" type="RayCast2D" parent="." index="6"] +[node name="EdgeDetection" type="RayCast2D" parent="." index="5"] modulate = Color( 0.054902, 1, 0, 1 ) show_behind_parent = true position = Vector2( 15, 3 ) @@ -204,12 +204,12 @@ enabled = true cast_to = Vector2( 0, 17 ) collide_with_areas = true -[node name="PlayerDetection" type="RayCast2D" parent="." index="7"] +[node name="PlayerDetection" type="RayCast2D" parent="." index="6"] enabled = true cast_to = Vector2( 21, 0 ) collision_mask = 2 -[node name="Hitbox_Component" parent="." index="8" instance=ExtResource( 4 )] +[node name="Hitbox_Component" parent="." index="7" instance=ExtResource( 4 )] damage_amount = 10 [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox_Component" index="0"] @@ -218,16 +218,20 @@ position = Vector2( 18, -8.5 ) shape = SubResource( 23 ) disabled = true -[node name="GenericSender" parent="." index="9" instance=ExtResource( 5 )] +[node name="GenericSender" parent="." index="8" instance=ExtResource( 5 )] receiver_node_name = "GenericReceiver" [node name="CollisionShape2D" type="CollisionShape2D" parent="GenericSender" index="0"] position = Vector2( 48, 0 ) shape = SubResource( 24 ) -[node name="Health_Component" parent="." index="10" instance=ExtResource( 7 )] +[node name="Health_Component" parent="." index="9" instance=ExtResource( 7 )] max_health = 20 +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="10"] +position = Vector2( -0.5, -1.5 ) +shape = SubResource( 25 ) + [connection signal="frame_reached" from="movement_state_machine/attack" to="." method="_on_attack_frame_reached"] [connection signal="state_exited" from="movement_state_machine/attack" to="." method="_on_attack_state_exited"] [connection signal="health_depleted" from="Health_Component" to="." method="_on_Health_Component_health_depleted"] diff --git a/src/playerD/Player.tscn b/src/playerD/Player.tscn index e8c4090..3f1f5c8 100644 --- a/src/playerD/Player.tscn +++ b/src/playerD/Player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=126 format=2] +[gd_scene load_steps=127 format=2] [ext_resource path="res://src/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1] [ext_resource path="res://src/playerD/movement_component.gd" type="Script" id=2] @@ -18,6 +18,9 @@ [ext_resource path="res://src/templates/Interactable/Interactable_Receiver.gd" type="Script" id=16] [ext_resource path="res://src/playerD/states/climb.gd" type="Script" id=17] +[sub_resource type="RectangleShape2D" id=197] +extents = Vector2( 15, 18.5 ) + [sub_resource type="StreamTexture" id=90] load_path = "res://.import/Mega.png-93dfe0790902b932f7b46f7b23c5d4e7.stex" @@ -547,7 +550,11 @@ script = ExtResource( 3 ) actor_type = "Player" player_number = 1 -[node name="AnimatedSprite" parent="." index="0"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="0"] +position = Vector2( 0, -3.5 ) +shape = SubResource( 197 ) + +[node name="AnimatedSprite" parent="." index="1"] position = Vector2( -1, -51 ) frames = SubResource( 196 ) animation = "idle_shoot" diff --git a/src/templates/Actor/ActorTemplate.gd b/src/templates/Actor/ActorTemplate.gd deleted file mode 100644 index 683bd30..0000000 --- a/src/templates/Actor/ActorTemplate.gd +++ /dev/null @@ -1,59 +0,0 @@ -extends Actor - -onready var actor_hurtbox = $Hurtbox_Component/CollisionShape2D - - -#var sound_effects = preload("res://src/playerC/resources/sound_effects.tres") - -func _ready() -> void: - movement_state_machine.init_animated_actor(self, movement_animations, movement_component) - - # Experimenting with sound based resources I did this and it worked - #sound_effect_player.stream = sound_effects.sounds["pew"] - #print(sounds.sounds["pew"]) - #sound_effects.play() - - # Trying something new with a custom resourse. - for i in SoundEffects: - sound_effects_dict[i.animation_name + str(i.frame_number)] = i.sound - print (sound_effects_dict) - -func _unhandled_input(event: InputEvent) -> void: - movement_state_machine.process_input(event) - -func _physics_process(delta: float) -> void: - movement_state_machine.process_physics(delta) -# #TODO: So much hack -# if direction.x != 0: -# gun.set_scale( Vector2(direction.x,1)) - - # Commented out to try parent transforms instead -# if direction.x < 0: -# var t = Transform2D() -# # Translation -# t.origin = Vector2(gun.offset_position.x * -1, gun.offset_position.y) -# gun.transform = t -# elif direction.x > 0: -# var t = Transform2D() -# # Translation -# t.origin = Vector2(gun.offset_position.x, gun.offset_position.y) -# gun.transform = t - - # Attempting a Kinematic2D level scale for flip operations instead. - #self.transform - #self.scale.x = -1 - -func _process(delta: float) -> void: - movement_component.process(delta) - movement_state_machine.process_frame(delta) - play_sound_frame(movement_animations.animation , movement_animations.frame) - - -##TODO: I don't like player class having do do this. -## Figure out how to programatically signal subscribe -#func _on_AnimatedSprite_animation_finished(): -# if movement_animations.frames.get_animation_loop(movement_animations.animation) == false: -# movement_state_machine.current_state.animation_index += 1 - - - diff --git a/src/templates/Actor/ActorTemplate.tscn b/src/templates/Actor/ActorTemplate.tscn index ce78fe1..f8c863b 100644 --- a/src/templates/Actor/ActorTemplate.tscn +++ b/src/templates/Actor/ActorTemplate.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=2] +[gd_scene load_steps=17 format=2] [ext_resource path="res://src/components/Hurtbox_Component.tscn" type="PackedScene" id=1] [ext_resource path="res://src/state_machine_animated_actor.gd" type="Script" id=2] @@ -41,9 +41,6 @@ animations = [ { "speed": 5.0 } ] -[sub_resource type="RectangleShape2D" id=74] -extents = Vector2( 14, 18.5 ) - [sub_resource type="CircleShape2D" id=82] [node name="ActorTemplate" type="KinematicBody2D"] @@ -52,7 +49,7 @@ script = ExtResource( 8 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="."] frames = SubResource( 75 ) -frame = 4 +frame = 3 playing = true flip_h = true __meta__ = { @@ -68,10 +65,6 @@ __meta__ = { } } -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2( 0, -3.5 ) -shape = SubResource( 74 ) - [node name="movement_component" type="Node" parent="."] script = ExtResource( 5 )