From 0f69240bdbeaac4b641add4ce0f55485dde96ad4 Mon Sep 17 00:00:00 2001 From: henry Date: Tue, 16 Jun 2026 17:38:48 +0100 Subject: [PATCH 1/3] Updated directory structure for clarity. Updated game resolution 208x384 --- project.godot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/project.godot b/project.godot index 43ed708..da358b6 100644 --- a/project.godot +++ b/project.godot @@ -17,9 +17,9 @@ config/icon="res://icon.svg" [display] -window/size/viewport_width=216 +window/size/viewport_width=208 window/size/viewport_height=384 -window/size/window_width_override=1296 +window/size/window_width_override=1248 window/size/window_height_override=2304 window/subwindows/embed_subwindows=false window/stretch/mode="viewport" From d04153171690df9f0a28cbb30a637108b3b1e7bf Mon Sep 17 00:00:00 2001 From: henry Date: Tue, 16 Jun 2026 17:39:18 +0100 Subject: [PATCH 2/3] Updated resource paths to match directory structure. --- Deprecated/stock_weapon.gd | 4 ++-- .../weapon_shot.gd | 2 +- .../weapon_shot.gd.uid | 0 .../weapon_shot_stock.tres | 4 ++-- scenes/{ => player_weapons}/weapon_stock.gd | 4 ++-- scenes/{ => player_weapons}/weapon_stock.gd.uid | 0 scenes/{ => player_weapons}/weapon_stock.tscn | 2 +- scenes/world.tscn | 8 ++++---- scripts/weapon_component.gd | 4 ++-- 9 files changed, 14 insertions(+), 14 deletions(-) rename resources/{player_weapons => player_weapon_resources}/weapon_shot.gd (94%) rename resources/{player_weapons => player_weapon_resources}/weapon_shot.gd.uid (100%) rename resources/{player_weapons => player_weapon_resources}/weapon_shot_stock.tres (79%) rename scenes/{ => player_weapons}/weapon_stock.gd (83%) rename scenes/{ => player_weapons}/weapon_stock.gd.uid (100%) rename scenes/{ => player_weapons}/weapon_stock.tscn (96%) diff --git a/Deprecated/stock_weapon.gd b/Deprecated/stock_weapon.gd index 71537c4..6f3c4dd 100644 --- a/Deprecated/stock_weapon.gd +++ b/Deprecated/stock_weapon.gd @@ -1,8 +1,8 @@ extends Area2D -@onready var bullet: PackedScene = load("res://scenes/weapon_stock.tscn") +@onready var bullet: PackedScene = load("res://scenes/player_weapons/weapon_stock.tscn") -@onready var shot_data: = load("res://resources/player_weapons/weapon_shot_stock.tres") +@onready var shot_data: = load("res://resources/player_weapon_resources/weapon_shot_stock.tres") func _process(delta): diff --git a/resources/player_weapons/weapon_shot.gd b/resources/player_weapon_resources/weapon_shot.gd similarity index 94% rename from resources/player_weapons/weapon_shot.gd rename to resources/player_weapon_resources/weapon_shot.gd index 63adff0..e8e4317 100644 --- a/resources/player_weapons/weapon_shot.gd +++ b/resources/player_weapon_resources/weapon_shot.gd @@ -12,6 +12,6 @@ extends Resource @export var spacing: float = 35 @export var origin: int = -23 -@export_category("Stagger") +@export_category("Spread") @export var horizontal_offset: float = 6.5 # Horizontal distance between projectiles @export var stagger_offset: float = 5 # Time delay per projectile index diff --git a/resources/player_weapons/weapon_shot.gd.uid b/resources/player_weapon_resources/weapon_shot.gd.uid similarity index 100% rename from resources/player_weapons/weapon_shot.gd.uid rename to resources/player_weapon_resources/weapon_shot.gd.uid diff --git a/resources/player_weapons/weapon_shot_stock.tres b/resources/player_weapon_resources/weapon_shot_stock.tres similarity index 79% rename from resources/player_weapons/weapon_shot_stock.tres rename to resources/player_weapon_resources/weapon_shot_stock.tres index e4cf1ca..6139dca 100644 --- a/resources/player_weapons/weapon_shot_stock.tres +++ b/resources/player_weapon_resources/weapon_shot_stock.tres @@ -1,7 +1,7 @@ [gd_resource type="Resource" script_class="WeaponShot" format=3 uid="uid://b75ae840k03dy"] -[ext_resource type="PackedScene" uid="uid://ddpclu2vdy2ve" path="res://scenes/weapon_stock.tscn" id="1_by0nb"] -[ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://resources/player_weapons/weapon_shot.gd" id="2_by0nb"] +[ext_resource type="PackedScene" uid="uid://ddpclu2vdy2ve" path="res://scenes/player_weapons/weapon_stock.tscn" id="1_by0nb"] +[ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://resources/player_weapon_resources/weapon_shot.gd" id="2_by0nb"] [resource] script = ExtResource("2_by0nb") diff --git a/scenes/weapon_stock.gd b/scenes/player_weapons/weapon_stock.gd similarity index 83% rename from scenes/weapon_stock.gd rename to scenes/player_weapons/weapon_stock.gd index 7ebe31a..3de04e9 100644 --- a/scenes/weapon_stock.gd +++ b/scenes/player_weapons/weapon_stock.gd @@ -1,8 +1,8 @@ extends Area2D -@onready var bullet: PackedScene = load("res://scenes/weapon_stock.tscn") -@onready var shot_data: = load("res://resources/player_weapons/weapon_shot_stock.tres") +@onready var bullet: PackedScene = load("res://scenes/player_weapons/weapon_stock.tscn") +@onready var shot_data: = load("res://resources/player_weapon_resources/weapon_shot_stock.tres") diff --git a/scenes/weapon_stock.gd.uid b/scenes/player_weapons/weapon_stock.gd.uid similarity index 100% rename from scenes/weapon_stock.gd.uid rename to scenes/player_weapons/weapon_stock.gd.uid diff --git a/scenes/weapon_stock.tscn b/scenes/player_weapons/weapon_stock.tscn similarity index 96% rename from scenes/weapon_stock.tscn rename to scenes/player_weapons/weapon_stock.tscn index de22a81..364ec6a 100644 --- a/scenes/weapon_stock.tscn +++ b/scenes/player_weapons/weapon_stock.tscn @@ -1,6 +1,6 @@ [gd_scene format=3 uid="uid://ddpclu2vdy2ve"] -[ext_resource type="Script" uid="uid://c5blhfopjpfny" path="res://scenes/weapon_stock.gd" id="1_u1d5o"] +[ext_resource type="Script" uid="uid://c5blhfopjpfny" path="res://scenes/player_weapons/weapon_stock.gd" id="1_u1d5o"] [ext_resource type="Texture2D" uid="uid://bnpm8b62n1pr5" path="res://graphics/shot_stock_og.png" id="2_u1d5o"] [sub_resource type="AtlasTexture" id="AtlasTexture_5bykt"] diff --git a/scenes/world.tscn b/scenes/world.tscn index 50bf2a4..9148110 100644 --- a/scenes/world.tscn +++ b/scenes/world.tscn @@ -14,7 +14,7 @@ z_index = -1 [node name="BaseBackground" type="ColorRect" parent="Level/Background" unique_id=1360709800] -offset_right = 217.0 +offset_right = 208.0 offset_bottom = 410.0 color = Color(0.2899925, 0.5692833, 0.9110645, 1) @@ -32,7 +32,7 @@ hframes = 4 frame = 1 [node name="CloudRight" type="Sprite2D" parent="Level/Background/Back" unique_id=1729409543] -position = Vector2(177, 32) +position = Vector2(168, 32) texture = ExtResource("3_4wyf3") flip_h = true hframes = 4 @@ -52,7 +52,7 @@ hframes = 4 frame = 2 [node name="CloudRight" type="Sprite2D" parent="Level/Background/Mid" unique_id=702118355] -position = Vector2(177, 32) +position = Vector2(168, 32) texture = ExtResource("3_4wyf3") flip_h = true hframes = 4 @@ -71,7 +71,7 @@ hframes = 4 frame = 3 [node name="CloudRight" type="Sprite2D" parent="Level/Background/Fore" unique_id=1798342457] -position = Vector2(185, 32) +position = Vector2(176, 32) texture = ExtResource("3_4wyf3") flip_h = true hframes = 4 diff --git a/scripts/weapon_component.gd b/scripts/weapon_component.gd index a4bb65b..0a9a9cd 100644 --- a/scripts/weapon_component.gd +++ b/scripts/weapon_component.gd @@ -1,7 +1,7 @@ class_name WeaponComponent extends Node -@export var loaded_weapon: PackedScene = load("res://scenes/weapon_stock.tscn") -var data : WeaponShot = load("res://resources/player_weapons/weapon_shot_stock.tres") +@export var loaded_weapon: PackedScene = load("res://scenes/player_weapons/weapon_stock.tscn") +var data : WeaponShot = load("res://resources/player_weapon_resources/weapon_shot_stock.tres") From e2cf516c90c55c69a079f212c86c7a19cb02a51c Mon Sep 17 00:00:00 2001 From: henry Date: Wed, 17 Jun 2026 02:55:40 +0100 Subject: [PATCH 3/3] Refactored weapon component to handle weapon swaping. --- scenes/player.tscn | 2 +- scenes/player_weapons/weapon_stock.gd | 13 ++++++----- scripts/input_component.gd | 4 ++++ scripts/shoot_component.gd | 5 ++++- scripts/shoot_component.gd.uid | 2 +- scripts/weapon_component.gd | 31 ++++++++++++++++++++++++--- 6 files changed, 46 insertions(+), 11 deletions(-) diff --git a/scenes/player.tscn b/scenes/player.tscn index 4b33f53..e60f549 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -6,7 +6,7 @@ [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://suynuijl68qp" 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"] [sub_resource type="AtlasTexture" id="AtlasTexture_tuyoq"] diff --git a/scenes/player_weapons/weapon_stock.gd b/scenes/player_weapons/weapon_stock.gd index 3de04e9..55fd8e7 100644 --- a/scenes/player_weapons/weapon_stock.gd +++ b/scenes/player_weapons/weapon_stock.gd @@ -1,10 +1,8 @@ extends Area2D - -@onready var bullet: PackedScene = load("res://scenes/player_weapons/weapon_stock.tscn") -@onready var shot_data: = load("res://resources/player_weapon_resources/weapon_shot_stock.tres") - - +# Data to be set externally when this bullet is instantiated +var bullet_scene: PackedScene = null +var shot_data: WeaponShot = null # Time offset when this bullet was fired (relative to other bullets in the same shot) var time_offset: float = 0.5 @@ -38,3 +36,8 @@ func _on_visible_on_screen_notifier_2d_screen_exited(): # Set fire_time for the next shot (staggered firing) var current_time = Time.get_ticks_msec() / 1000.0 fire_time = current_time + shot_data.stagger_offset + +# Function to set the bullet data (called from parent scene) +func set_weapon_data(bullet_scene_param: PackedScene, shot_data_param: WeaponShot): + bullet_scene = bullet_scene_param + shot_data = shot_data_param diff --git a/scripts/input_component.gd b/scripts/input_component.gd index ce71e8d..83131e6 100644 --- a/scripts/input_component.gd +++ b/scripts/input_component.gd @@ -9,3 +9,7 @@ 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") + + + # Development Keys + # Cycle Available Weapons diff --git a/scripts/shoot_component.gd b/scripts/shoot_component.gd index 3f1ee7d..b3bd5b3 100644 --- a/scripts/shoot_component.gd +++ b/scripts/shoot_component.gd @@ -19,7 +19,7 @@ func shoot(): if total_projectiles > 0: for b in range(total_projectiles): var bullet_scene = weapon_data.bullet_scene - var bullet := bullet_scene.instantiate() as Node + var bullet := bullet_scene.instantiate() as Area2D get_tree().root.add_child(bullet) # Calculate index relative to center (0 = center, -1/+1 = first from center) @@ -42,5 +42,8 @@ func shoot(): bullet.time_offset = time_offset bullet.fire_time = current_time + time_offset + # Set the bullet data (this is what was missing) + bullet.set_weapon_data(weapon_data.bullet_scene, weapon_data) + # Subtract projectile spacing from current Player travel for next shot player.travel -= weapon_data.spacing diff --git a/scripts/shoot_component.gd.uid b/scripts/shoot_component.gd.uid index 4e59bd1..fdd16b5 100644 --- a/scripts/shoot_component.gd.uid +++ b/scripts/shoot_component.gd.uid @@ -1 +1 @@ -uid://bgd1hwindc2ui +uid://suynuijl68qp diff --git a/scripts/weapon_component.gd b/scripts/weapon_component.gd index 0a9a9cd..e88e83b 100644 --- a/scripts/weapon_component.gd +++ b/scripts/weapon_component.gd @@ -1,9 +1,34 @@ class_name WeaponComponent extends Node -@export var loaded_weapon: PackedScene = load("res://scenes/player_weapons/weapon_stock.tscn") -var data : WeaponShot = load("res://resources/player_weapon_resources/weapon_shot_stock.tres") +enum WeaponType { + STOCK, + NONE, +} +@export_enum("STOCK", "NONE") var loaded_weapon: int = WeaponType.STOCK +var data: WeaponShot = load("res://resources/player_weapon_resources/weapon_shot_stock.tres") func get_bullet_scene() -> PackedScene: - return data.weapon_shot # Reference to the Shot scene from the resource + if loaded_weapon == WeaponType.STOCK: + return preload("res://scenes/player_weapons/weapon_stock.tscn") + else: + return null + +func get_weapon_resource() -> Resource: + var weapon_resource_path: String + + if loaded_weapon == WeaponType.STOCK: + weapon_resource_path = "res://resources/player_weapon_resources/weapon_shot_stock.tres" + data = load(weapon_resource_path) + return data + else: + return null + + +#var data : WeaponShot = load("res://resources/player_weapon_resources/weapon_shot_stock.tres") + + + +#func get_bullet_scene() -> PackedScene: + #return data.weapon_shot # Reference to the Shot scene from the resource