From 79122a074e0d2cf1081a2bd8d7d88e7b1e595cdb Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 8 Jun 2026 22:36:07 +0100 Subject: [PATCH] Attempt to refactor components. --- scenes/{player_revision.tscn => _player.tscn} | 57 ++------ scenes/player.tscn | 54 ++++++-- {scripts => scenes}/player_component.gd | 12 +- {scripts => scenes}/player_component.gd.uid | 0 scenes/player_refactor.gd | 4 +- scenes/stock_weapon.gd | 13 +- scenes/stock_weapon_single_old.tscn | 1 - scenes/world.tscn | 3 +- scripts/components.gd | 131 ++++++++++++++++++ scripts/components.gd.uid | 1 + scripts/movement_component.gd | 63 +++++---- scripts/player_shot.gd | 2 +- scripts/shoot_component.gd | 2 +- scripts/weapon_component.gd | 7 +- scripts/weapon_shot.gd | 3 +- 15 files changed, 241 insertions(+), 112 deletions(-) rename scenes/{player_revision.tscn => _player.tscn} (62%) rename {scripts => scenes}/player_component.gd (94%) rename {scripts => scenes}/player_component.gd.uid (100%) create mode 100644 scripts/components.gd create mode 100644 scripts/components.gd.uid diff --git a/scenes/player_revision.tscn b/scenes/_player.tscn similarity index 62% rename from scenes/player_revision.tscn rename to scenes/_player.tscn index af64ddf..819bc2b 100644 --- a/scenes/player_revision.tscn +++ b/scenes/_player.tscn @@ -1,29 +1,24 @@ -[gd_scene format=3 uid="uid://6wq3ynesnsha"] +[gd_scene format=3 uid="uid://coix5dqblmu7r"] -[ext_resource type="Script" uid="uid://dulfr27gg4evl" path="res://scripts/player_component.gd" id="1_3ef36"] -[ext_resource type="PackedScene" uid="uid://ddpclu2vdy2ve" path="res://scenes/stock_weapon.tscn" id="2_l5qtw"] -[ext_resource type="Texture2D" uid="uid://cq4we1m1yv22s" path="res://graphics/ship.png" id="3_63g5k"] -[ext_resource type="Script" uid="uid://dss0dbwr71y6m" path="res://scripts/input_component.gd" id="4_14jeh"] -[ext_resource type="Texture2D" uid="uid://b0iavxi8vaxtj" path="res://graphics/ship_thrusters.png" id="4_tg2o1"] -[ext_resource type="Texture2D" uid="uid://crmbupr3qg0j" path="res://graphics/muzzle_flash.png" id="5_ohfsq"] -[ext_resource type="Script" uid="uid://c0rikbakpcags" path="res://scripts/movement_component.gd" id="6_l5qtw"] -[ext_resource type="Script" uid="uid://bgd1hwindc2ui" path="res://scripts/shoot_component.gd" id="7_63g5k"] -[ext_resource type="Script" uid="uid://ylmao2ndp22y" path="res://scripts/weapon_component.gd" id="8_ohfsq"] +[ext_resource type="Script" uid="uid://bqxrdf7mtx0ev" path="res://scenes/player_refactor.gd" id="1_qlg0r"] +[ext_resource type="Texture2D" uid="uid://cq4we1m1yv22s" path="res://graphics/ship.png" id="2_qhqgy"] +[ext_resource type="Texture2D" uid="uid://crmbupr3qg0j" path="res://graphics/muzzle_flash.png" id="4_dqkch"] +[ext_resource type="Texture2D" uid="uid://b0iavxi8vaxtj" path="res://graphics/ship_thrusters.png" id="5_qlg0r"] [sub_resource type="AtlasTexture" id="AtlasTexture_tuyoq"] -atlas = ExtResource("4_tg2o1") +atlas = ExtResource("5_qlg0r") region = Rect2(28, 0, 14, 6) [sub_resource type="AtlasTexture" id="AtlasTexture_fjrip"] -atlas = ExtResource("4_tg2o1") +atlas = ExtResource("5_qlg0r") region = Rect2(42, 0, 14, 6) [sub_resource type="AtlasTexture" id="AtlasTexture_smehm"] -atlas = ExtResource("4_tg2o1") +atlas = ExtResource("5_qlg0r") region = Rect2(1, 0, 14, 6) [sub_resource type="AtlasTexture" id="AtlasTexture_ur7pv"] -atlas = ExtResource("4_tg2o1") +atlas = ExtResource("5_qlg0r") region = Rect2(15, 0, 14, 6) [sub_resource type="SpriteFrames" id="SpriteFrames_y4r1p"] @@ -52,15 +47,15 @@ animations = [{ }] [sub_resource type="AtlasTexture" id="AtlasTexture_qlg0r"] -atlas = ExtResource("5_ohfsq") +atlas = ExtResource("4_dqkch") region = Rect2(0, 0, 15, 8) [sub_resource type="AtlasTexture" id="AtlasTexture_y4r1p"] -atlas = ExtResource("5_ohfsq") +atlas = ExtResource("4_dqkch") region = Rect2(15, 0, 15, 8) [sub_resource type="AtlasTexture" id="AtlasTexture_d2wvv"] -atlas = ExtResource("5_ohfsq") +atlas = ExtResource("4_dqkch") region = Rect2(30, 0, 15, 8) [sub_resource type="SpriteFrames" id="SpriteFrames_3v2ag"] @@ -90,11 +85,11 @@ size = Vector2(24, 30) size = Vector2(6, 5.75) [node name="Player" type="Area2D" unique_id=652131079] -script = ExtResource("1_3ef36") +script = ExtResource("1_qlg0r") [node name="Ship" type="Sprite2D" parent="." unique_id=1155866924] unique_name_in_owner = true -texture = ExtResource("3_63g5k") +texture = ExtResource("2_qhqgy") hframes = 3 region_rect = Rect2(0, 0, 62, 24.370766) @@ -106,7 +101,6 @@ autoplay = "fwd" [node name="MuzzleFlash" type="AnimatedSprite2D" parent="Ship" unique_id=1584132038] unique_name_in_owner = true -visible = false position = Vector2(0.5, -16) sprite_frames = SubResource("SpriteFrames_3v2ag") animation = &"stock" @@ -131,27 +125,4 @@ debug_color = Color(0.9843137, 0, 0, 0.80784315) [node name="WeaponCooldown" type="Timer" parent="." unique_id=269678170] -[node name="InputComponent" type="Node" parent="." unique_id=2022056363] -unique_name_in_owner = true -script = ExtResource("4_14jeh") -metadata/_custom_type_script = "uid://dss0dbwr71y6m" - -[node name="MovementComponent" type="Node" parent="." unique_id=964075256 node_paths=PackedStringArray("player")] -unique_name_in_owner = true -script = ExtResource("6_l5qtw") -player = NodePath("..") -speed = 200.0 -metadata/_custom_type_script = "uid://c0rikbakpcags" - -[node name="ShootComponent" type="Node" parent="." unique_id=623642425] -unique_name_in_owner = true -script = ExtResource("7_63g5k") -metadata/_custom_type_script = "uid://bgd1hwindc2ui" - -[node name="WeaponComponent" type="Node" parent="." unique_id=1648685183] -unique_name_in_owner = true -script = ExtResource("8_ohfsq") -weapon_current = ExtResource("2_l5qtw") -metadata/_custom_type_script = "uid://ylmao2ndp22y" - [connection signal="timeout" from="WeaponCooldown" to="." method="_on_weapon_cooldown_timeout"] diff --git a/scenes/player.tscn b/scenes/player.tscn index 819bc2b..613f498 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -1,9 +1,14 @@ -[gd_scene format=3 uid="uid://coix5dqblmu7r"] +[gd_scene format=3 uid="uid://6wq3ynesnsha"] -[ext_resource type="Script" uid="uid://bqxrdf7mtx0ev" path="res://scenes/player_refactor.gd" id="1_qlg0r"] +[ext_resource type="Script" uid="uid://dulfr27gg4evl" path="res://scenes/player_component.gd" id="1_ur7pv"] [ext_resource type="Texture2D" uid="uid://cq4we1m1yv22s" path="res://graphics/ship.png" id="2_qhqgy"] [ext_resource type="Texture2D" uid="uid://crmbupr3qg0j" path="res://graphics/muzzle_flash.png" id="4_dqkch"] +[ext_resource type="Script" uid="uid://dss0dbwr71y6m" path="res://scripts/input_component.gd" id="4_smehm"] [ext_resource type="Texture2D" uid="uid://b0iavxi8vaxtj" path="res://graphics/ship_thrusters.png" id="5_qlg0r"] +[ext_resource type="Script" uid="uid://c0rikbakpcags" path="res://scripts/movement_component.gd" id="5_ur7pv"] +[ext_resource type="Script" uid="uid://bgd1hwindc2ui" path="res://scripts/shoot_component.gd" id="6_y4r1p"] +[ext_resource type="Script" uid="uid://ylmao2ndp22y" path="res://scripts/weapon_component.gd" id="7_d2wvv"] +[ext_resource type="PackedScene" uid="uid://ddpclu2vdy2ve" path="res://scenes/stock_weapon.tscn" id="8_3v2ag"] [sub_resource type="AtlasTexture" id="AtlasTexture_tuyoq"] atlas = ExtResource("5_qlg0r") @@ -84,45 +89,70 @@ size = Vector2(24, 30) [sub_resource type="RectangleShape2D" id="RectangleShape2D_dqkch"] size = Vector2(6, 5.75) -[node name="Player" type="Area2D" unique_id=652131079] -script = ExtResource("1_qlg0r") +[node name="PlayerComponent" type="Node" unique_id=1732759225] -[node name="Ship" type="Sprite2D" parent="." unique_id=1155866924] +[node name="Player" type="Area2D" parent="." unique_id=652131079] +script = ExtResource("1_ur7pv") + +[node name="Ship" type="Sprite2D" parent="Player" unique_id=1155866924] unique_name_in_owner = true texture = ExtResource("2_qhqgy") hframes = 3 region_rect = Rect2(0, 0, 62, 24.370766) -[node name="Thrusters" type="AnimatedSprite2D" parent="Ship" unique_id=2096876587] +[node name="Thrusters" type="AnimatedSprite2D" parent="Player/Ship" unique_id=2096876587] position = Vector2(0, 15) sprite_frames = SubResource("SpriteFrames_y4r1p") animation = &"fwd" autoplay = "fwd" -[node name="MuzzleFlash" type="AnimatedSprite2D" parent="Ship" unique_id=1584132038] +[node name="MuzzleFlash" type="AnimatedSprite2D" parent="Player/Ship" unique_id=1584132038] unique_name_in_owner = true +visible = false position = Vector2(0.5, -16) sprite_frames = SubResource("SpriteFrames_3v2ag") animation = &"stock" autoplay = "stock" -[node name="MuzzleBox" type="CollisionShape2D" parent="." unique_id=1042837273] +[node name="MuzzleBox" type="CollisionShape2D" parent="Player" unique_id=1042837273] unique_name_in_owner = true position = Vector2(0, -17) shape = SubResource("RectangleShape2D_qlg0r") disabled = true debug_color = Color(1, 0.5058824, 0.21960784, 0.41960785) -[node name="HelpBox" type="CollisionShape2D" parent="." unique_id=938667427] +[node name="HelpBox" type="CollisionShape2D" parent="Player" unique_id=938667427] position = Vector2(0, 3) shape = SubResource("RectangleShape2D_tuyoq") debug_color = Color(0, 1, 0, 0.41960785) -[node name="HitBox" type="CollisionShape2D" parent="." unique_id=485826453] +[node name="HitBox" type="CollisionShape2D" parent="Player" unique_id=485826453] position = Vector2(0, 2) shape = SubResource("RectangleShape2D_dqkch") debug_color = Color(0.9843137, 0, 0, 0.80784315) -[node name="WeaponCooldown" type="Timer" parent="." unique_id=269678170] +[node name="WeaponCooldown" type="Timer" parent="Player" unique_id=269678170] -[connection signal="timeout" from="WeaponCooldown" to="." method="_on_weapon_cooldown_timeout"] +[node name="InputComponent" type="Node" parent="." unique_id=2022056363] +unique_name_in_owner = true +script = ExtResource("4_smehm") +metadata/_custom_type_script = "uid://dss0dbwr71y6m" + +[node name="MovementComponent" type="Node" parent="." unique_id=964075256] +unique_name_in_owner = true +script = ExtResource("5_ur7pv") +speed = 200.0 +metadata/_custom_type_script = "uid://c0rikbakpcags" + +[node name="ShootComponent" type="Node" parent="." unique_id=623642425] +unique_name_in_owner = true +script = ExtResource("6_y4r1p") +metadata/_custom_type_script = "uid://bgd1hwindc2ui" + +[node name="WeaponComponent" type="Node" parent="." unique_id=1648685183] +unique_name_in_owner = true +script = ExtResource("7_d2wvv") +weapon_current = ExtResource("8_3v2ag") +metadata/_custom_type_script = "uid://ylmao2ndp22y" + +[connection signal="timeout" from="Player/WeaponCooldown" to="Player" method="_on_weapon_cooldown_timeout"] diff --git a/scripts/player_component.gd b/scenes/player_component.gd similarity index 94% rename from scripts/player_component.gd rename to scenes/player_component.gd index e8d4a21..8e826f6 100644 --- a/scripts/player_component.gd +++ b/scenes/player_component.gd @@ -1,4 +1,4 @@ -class_name Player extends Area2D +class_name Player extends Node # Components managed by Player @onready var input_component: InputComponent = %InputComponent @@ -17,20 +17,18 @@ var travel: float = 0 func _process(delta) -> void: - + # Read Controls input_component.update() - + # Read Shooting if input_component.shooting: is_shooting = true else: is_shooting = false - + if is_shooting == true: shoot_component.shoot() - + # Read Movement Component movement_component.input = input_component.move_dir movement_component.tick(delta) - - diff --git a/scripts/player_component.gd.uid b/scenes/player_component.gd.uid similarity index 100% rename from scripts/player_component.gd.uid rename to scenes/player_component.gd.uid diff --git a/scenes/player_refactor.gd b/scenes/player_refactor.gd index 42a2119..5aca39a 100644 --- a/scenes/player_refactor.gd +++ b/scenes/player_refactor.gd @@ -101,7 +101,7 @@ func shoot(): # Instantiate the bullets var bullet = weapon_current.instantiate() get_tree().root.add_child(bullet) - prints(bullet_resource.speed,bullet_resource.projectiles, bullet_resource.projectile_spacing) + #prints(bullet.speed,bullet.projectiles, bullet.projectile_spacing) bullet.position = position + Vector2((b - (projectiles- 1) / 2.0) * PROJECTILE_SPACING /2, MUZZLE_HEIGHT) # Get weapon speed and spacing for equidistant calculations @@ -110,6 +110,6 @@ func shoot(): #bullet_speed = bullet_resource.speed # Print which weapon is firing - prints(bullet.shot_data.shot_name, "weapon fired") + #prints(bullet.shot_data.shot_name, "weapon fired") #travel -= weapon_spacing diff --git a/scenes/stock_weapon.gd b/scenes/stock_weapon.gd index 169c82e..578b645 100644 --- a/scenes/stock_weapon.gd +++ b/scenes/stock_weapon.gd @@ -2,13 +2,14 @@ extends Area2D @onready var bullet: PackedScene = load("res://scenes/stock_weapon.tscn") -@export var shot_data: PlayerShot +@export var shot_data: WeaponShot func _process(delta): - - #Calculation position along Y axis - position.y -= shot_data.speed * delta - + + #Calculation position along Y axis + position.y -= shot_data.speed * delta # Original Speed + #position.y -= 330 * delta # non-shot_data testing + func _on_visible_on_screen_notifier_2d_screen_exited() -> void: - queue_free() + queue_free() diff --git a/scenes/stock_weapon_single_old.tscn b/scenes/stock_weapon_single_old.tscn index d804e00..a58db17 100644 --- a/scenes/stock_weapon_single_old.tscn +++ b/scenes/stock_weapon_single_old.tscn @@ -9,7 +9,6 @@ script = ExtResource("2_5286c") shot_name = "Stock" speed = 350 projectiles = 3 -projectile_spacing = 10.0 metadata/_custom_type_script = "uid://ccdohs4gduee5" [sub_resource type="RectangleShape2D" id="RectangleShape2D_mvdrj"] diff --git a/scenes/world.tscn b/scenes/world.tscn index 08f585a..50bf2a4 100644 --- a/scenes/world.tscn +++ b/scenes/world.tscn @@ -2,7 +2,7 @@ [ext_resource type="PackedScene" uid="uid://14fhj8834pkq" path="res://scenes/ui.tscn" id="1_nnsk1"] [ext_resource type="Texture2D" uid="uid://b3dqvd23nbmrm" path="res://graphics/cloud layers.png" id="3_4wyf3"] -[ext_resource type="PackedScene" uid="uid://6wq3ynesnsha" path="res://scenes/player_revision.tscn" id="3_k0juu"] +[ext_resource type="PackedScene" uid="uid://6wq3ynesnsha" path="res://scenes/player.tscn" id="3_k0juu"] [node name="World" type="Node2D" unique_id=1317852169] @@ -78,4 +78,3 @@ hframes = 4 frame = 3 [node name="Player" parent="Level" unique_id=652131079 instance=ExtResource("3_k0juu")] -position = Vector2(106, 312) diff --git a/scripts/components.gd b/scripts/components.gd new file mode 100644 index 0000000..04874fb --- /dev/null +++ b/scripts/components.gd @@ -0,0 +1,131 @@ +# Component types for the game's architecture +# All components extend Node and are meant to be attached to parent objects + +class_name compoents extends Node + +var move_dir: Vector2 = Vector2.ZERO +var shoot_pressed: bool = false +var shooting: bool = false + + +func update() -> void: + move_dir = Input.get_vector("left", "right", "up", "down") + shoot_pressed = Input.is_action_just_pressed("shoot") + shooting = Input.is_action_pressed("shoot") + + +class_name MovementComponent extends Node + +@export var player: Area2D +@export var speed: float = 275 +@export var bounds_x: int = 12 +@export var bounds_y: int = 12 + +@onready var weapon_component: Node = %WeaponComponent + +@onready var screensize = get_viewport().content_scale_size + +var input = Input.get_vector("left", "right", "up", "down") + +func tick(delta: float): + # Check to see if there's a player to move + if player == null: return + + # Shorten variable for accessing weapon_component for clarity + var weapon_system = weapon_component.data + + # Calculate ship to bullet displacement + player.ship_displacement = player.position.y - player.previous_position.y + player.travel += abs(weapon_system.speed) * delta + (player.ship_displacement) + player.travel = clamp(player.travel, 0, 1.9 * weapon_system.spacing) + + # Thruster animation in relation to player movement + if input.x > 0: + player.position.x = player.position.x + 1 + %Ship.frame = 2 + %Ship/Thrusters.flip_h = true + %Ship/Thrusters.animation = "banked" + elif input.x < 0: + player.position.x = player.position.x - 1 + %Ship.frame = 1 + %Ship/Thrusters.flip_h = false + %Ship/Thrusters.animation = "banked" + else: + %Ship.frame = 0 + player.position.x = player.position.x + %Ship/Thrusters.flip_h = false + %Ship/Thrusters.animation = "fwd" + +# Get previous position for equidistant bullet calculation + player.previous_position = player.position + +# Move player within screen bounds + player.position += input * speed * delta + player.position = player.position.clamp(Vector2i(bounds_x, bounds_y), screensize - Vector2i(bounds_x, bounds_y)) + + +class_name ShootComponent extends Node + +@onready var weapon_component: Node = %WeaponComponent +@onready var player: PlayerComponent = $".." + +func shoot(): + + # Shorten variable for accessing weapon_component for clarity + var weapon_system = weapon_component.data + + if player.travel > weapon_system.spacing: + + for b in range(weapon_system.projectiles): + + # Instantiate the bullets + var bullet = weapon_component.weapon_current.instantiate() + get_tree().root.add_child(bullet) + # Adjust bullet spacing before firing + + bullet.position = player.position + Vector2((b - (weapon_system.projectiles - 1) / 2.0) * round(round((weapon_system.projectiles + weapon_system.spacing / 2)) / 2), weapon_system.origin) + print(b, bullet.position.x) + + # Print which weapon is firing + print(b, bullet.shot_data.shot_name, "weapon fired") + + # Subtract projectile spacing from current Player travel for next + player.travel -= weapon_system.spacing + + else: return + + +class_name PlayerComponent extends Area2D + +# Components managed by Player +@onready var input_component: InputComponent = $InputComponent +@onready var movement_component: MovementComponent = $MovementComponent +@onready var shoot_component: ShootComponent = $ShootComponent +@onready var weapon_component: WeaponComponent = $WeaponComponent + +# Variables for Player shooting status +@export var can_shoot: bool = true +@export var is_shooting: bool = false + +# Variables for Player position calculations for equidistant bullets +var previous_position: Vector2 +var ship_displacement: float +var travel: float = 0 + + +func _process(delta) -> void: + + # Read Controls + input_component.update() + + # Read Shooting + if input_component.shooting: + is_shooting = true + else: is_shooting = false + + if is_shooting == true: + shoot_component.shoot() + + # Read Movement Component + movement_component.input = input_component.move_dir + movement_component.tick(delta) diff --git a/scripts/components.gd.uid b/scripts/components.gd.uid new file mode 100644 index 0000000..e83f81e --- /dev/null +++ b/scripts/components.gd.uid @@ -0,0 +1 @@ +uid://imu0upeiufxn diff --git a/scripts/movement_component.gd b/scripts/movement_component.gd index b065b69..4ad1bcf 100644 --- a/scripts/movement_component.gd +++ b/scripts/movement_component.gd @@ -1,48 +1,51 @@ class_name MovementComponent extends Node -@export var player: Area2D + @export var speed: float = 275 @export var bounds_x: int = 12 @export var bounds_y: int = 12 -@onready var weapon_component: WeaponComponent = %WeaponComponent +@onready var weapon_component: Node = %WeaponComponent +@onready var player = $"../Player" @onready var screensize = get_viewport().content_scale_size var input = Input.get_vector("left", "right", "up","down") func tick(delta: float): + prints(tick) + # Check to see if there's a player to move - if player == null: return - + if player == null: return + # Shorten variable for accessing weapon_component for clarity - var weapon_system = weapon_component.data - + var weapon_system = weapon_component.data + # Calculate ship to bullet displacement - player.ship_displacement = player.position.y - player.previous_position.y - player.travel += abs(weapon_system.speed) * delta + (player.ship_displacement) - player.travel = clamp(player.travel, 0, 1.9 * weapon_system.spacing) - + player.ship_displacement = player.position.y - player.previous_position.y + player.travel += abs(weapon_system.speed) * delta + (player.ship_displacement) + player.travel = clamp(player.travel, 0, 1.9 * weapon_system.spacing) + # Thruster animation in relation to player movement - if input.x > 0: - player.position.x = player.position.x+1 - %Ship.frame = 2 - %Ship/Thrusters.flip_h = true - %Ship/Thrusters.animation = "banked" - elif input.x < 0: - player.position.x = player.position.x-1 - %Ship.frame = 1 - %Ship/Thrusters.flip_h = false - %Ship/Thrusters.animation = "banked" - else: - %Ship.frame = 0 - player.position.x = player.position.x - %Ship/Thrusters.flip_h = false - %Ship/Thrusters.animation = "fwd" - + if input.x > 0: + player.position.x = player.position.x+1 + %Ship.frame = 2 + %Ship/Thrusters.flip_h = true + %Ship/Thrusters.animation = "banked" + elif input.x < 0: + player.position.x = player.position.x-1 + %Ship.frame = 1 + %Ship/Thrusters.flip_h = false + %Ship/Thrusters.animation = "banked" + else: + %Ship.frame = 0 + player.position.x = player.position.x + %Ship/Thrusters.flip_h = false + %Ship/Thrusters.animation = "fwd" + # Get previous positon for equidistant bullet calculation - player.previous_position = player.position - + player.previous_position = player.position + # Move player within screenbounds - player.position += input * speed * delta - player.position = player.position.clamp(Vector2i(bounds_x,bounds_y), screensize - Vector2i(bounds_x,bounds_y)) + player.position += input * speed * delta + player.position = player.position.clamp(Vector2i(bounds_x,bounds_y), screensize - Vector2i(bounds_x,bounds_y)) diff --git a/scripts/player_shot.gd b/scripts/player_shot.gd index 128079b..667bd1b 100644 --- a/scripts/player_shot.gd +++ b/scripts/player_shot.gd @@ -1,4 +1,4 @@ -class_name PlayerShotResource +class_name PlayerShot extends Resource @export_category("Info") diff --git a/scripts/shoot_component.gd b/scripts/shoot_component.gd index 9942ec2..1a9027d 100644 --- a/scripts/shoot_component.gd +++ b/scripts/shoot_component.gd @@ -1,7 +1,7 @@ class_name ShootComponent extends Node @onready var weapon_component: Node = %WeaponComponent -@onready var player: Player = $".." +@onready var player = $"../Player" func shoot(): diff --git a/scripts/weapon_component.gd b/scripts/weapon_component.gd index b8ec8fb..2c335e8 100644 --- a/scripts/weapon_component.gd +++ b/scripts/weapon_component.gd @@ -1,7 +1,7 @@ class_name WeaponComponent extends Node @export var weapon_current : PackedScene -var data: PlayerShot = load("res://resources/player_weapons/shot_stock.tres") +var data : PlayerShot = load("res://resources/player_weapons/shot_stock.tres") #@export var projectile_origin: int = -23 #@export_category("Temp Bullet Data") @@ -14,8 +14,3 @@ var data: PlayerShot = load("res://resources/player_weapons/shot_stock.tres") #var rate: float = 0.1 #var cooldown: float = 0.25 #var projectile_spacing: float = 10 - - - - - diff --git a/scripts/weapon_shot.gd b/scripts/weapon_shot.gd index 667bd1b..b551493 100644 --- a/scripts/weapon_shot.gd +++ b/scripts/weapon_shot.gd @@ -1,4 +1,5 @@ -class_name PlayerShot +class_name WeaponShot + extends Resource @export_category("Info")