Some code organization

This commit is contained in:
2025-12-26 16:12:46 +03:00
parent 099cda6368
commit e2f9f75c4f
55 changed files with 56 additions and 47 deletions
@@ -1,6 +1,6 @@
[gd_scene load_steps=3 format=3 uid="uid://duxm8n62j2qt6"]
[ext_resource type="Script" uid="uid://bkj8s7588e1ho" path="res://game/menu/ingame/game_over_screen.gd" id="1_rkkr6"]
[ext_resource type="Script" uid="uid://bkj8s7588e1ho" path="res://game/menu/game_over/game_over_screen.gd" id="1_rkkr6"]
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="2_uh3ar"]
[node name="GameOverScreen" type="Control"]
@@ -1,6 +1,6 @@
[gd_scene load_steps=3 format=3 uid="uid://bdcs2ff85qjs4"]
[ext_resource type="Script" uid="uid://b0p1ewlw18ijg" path="res://game/menu/ingame/victory_screen.gd" id="1_asigk"]
[ext_resource type="Script" uid="uid://b0p1ewlw18ijg" path="res://game/menu/game_over/victory_screen.gd" id="1_asigk"]
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="2_wb4d8"]
[node name="VictoryScreen" type="Control"]
@@ -1,6 +1,6 @@
[gd_scene load_steps=5 format=3 uid="uid://c3q3g2647qc27"]
[ext_resource type="Script" uid="uid://dclkpithyykju" path="res://game/menu/common/credits.gd" id="1_wp78b"]
[ext_resource type="Script" uid="uid://dclkpithyykju" path="res://game/menu/main/credits.gd" id="1_wp78b"]
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="2_nidem"]
[sub_resource type="InputEventAction" id="InputEventAction_wp78b"]
+2 -2
View File
@@ -3,8 +3,8 @@
[ext_resource type="Script" uid="uid://bqnepsuk13qo8" path="res://game/menu/main/title_screen.gd" id="1_lxdol"]
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="2_4xt7k"]
[ext_resource type="PackedScene" uid="uid://bxlccevt52y70" path="res://game/menu/main/main_menu.tscn" id="2_o0rbc"]
[ext_resource type="PackedScene" uid="uid://btr60idiit4y7" path="res://game/menu/common/options.tscn" id="3_88gnj"]
[ext_resource type="PackedScene" uid="uid://c3q3g2647qc27" path="res://game/menu/common/credits.tscn" id="4_w1y3c"]
[ext_resource type="PackedScene" uid="uid://btr60idiit4y7" path="res://game/menu/options/options.tscn" id="3_88gnj"]
[ext_resource type="PackedScene" uid="uid://c3q3g2647qc27" path="res://game/menu/main/credits.tscn" id="4_w1y3c"]
[ext_resource type="PackedScene" uid="uid://chdrjc7c6bdpb" path="res://game/entities/world/background.tscn" id="5_88gnj"]
[ext_resource type="PackedScene" uid="uid://c36n317rhv8k7" path="res://game/menu/main/seed_selection_menu.tscn" id="5_w1y3c"]
+247
View File
@@ -0,0 +1,247 @@
class_name AreaMap
extends Node2D
signal passage_selected(passage: PassageData)
const SECTOR_XS = [
64 * 1, 64 * 2, 64 * 3,
64 * 4, 64 * 5, 64 * 6,
64 * 7, 64 * 8, 64 * 9,
]
const SECTOR_Y_OFFSET = 24
const SECTOR_YS_FOR_ONE = [
SECTOR_Y_OFFSET + 64 * 1
]
const SECTOR_YS_FOR_TWO = [
SECTOR_Y_OFFSET + 64 * 0.5, SECTOR_Y_OFFSET + 64 * 1.5,
]
const SECTOR_YS_FOR_THREE = [
SECTOR_Y_OFFSET + 64 * 0, SECTOR_Y_OFFSET + 64 * 1, SECTOR_Y_OFFSET + 64 * 2,
]
const CURRENT_SECTOR_INDICATOR_OFFSET = Vector2(0, 16)
const SECTOR_SCENES : Dictionary[SectorData.SectorType, PackedScene] = {
SectorData.SectorType.ShopSector:
preload("res://game/menu/map_indicators/sectors/shop_sector_indicator.tscn"),
SectorData.SectorType.RepairSector:
preload("res://game/menu/map_indicators/sectors/repair_sector_indicator.tscn"),
SectorData.SectorType.DebrisSector:
preload("res://game/menu/map_indicators/sectors/debris_sector_indicator.tscn"),
SectorData.SectorType.StartSector:
preload("res://game/menu/map_indicators/sectors/start_sector_indicator.tscn"),
SectorData.SectorType.BossSector:
preload("res://game/menu/map_indicators/sectors/boss_sector_indicator.tscn"),
}
const PASSAGE_SCENES : Dictionary[PassageData.PassageType, PackedScene] = {
PassageData.PassageType.Minus45Grad:
preload("res://game/menu/map_indicators/passages/minus_45_grad_passage_indicator.tscn"),
PassageData.PassageType.Minus26Grad:
preload("res://game/menu/map_indicators/passages/minus_26_grad_passage_indicator.tscn"),
PassageData.PassageType.ZeroGrad:
preload("res://game/menu/map_indicators/passages/zero_grad_passage_indicator.tscn"),
PassageData.PassageType.Plus26Grad:
preload("res://game/menu/map_indicators/passages/plus_26_grad_passage_indicator.tscn"),
PassageData.PassageType.Plus45Grad:
preload("res://game/menu/map_indicators/passages/plus_45_grad_passage_indicator.tscn"),
}
const CURRENT_SECTOR_INDICATOR = \
preload("res://game/menu/map_indicators/current_sector_indicator.tscn")
const SELECTED_SECTOR_INDICATOR = \
preload("res://game/menu/map_indicators/selected_sector_indicator.tscn")
var area_data : AreaData = null:
set = _set_area_data
var current_sector: SectorData = null:
set = _set_current_sector
var selected_sector: SectorData = null:
set = _set_selected_sector
var sector_positions : Dictionary[SectorData, Vector2] = {}
@onready var passages_node : Node2D = $Passages
@onready var sectors_node : Node2D = $Sectors
@onready var current_sector_indicator : CurrentSectorIndicator = $CurrentSectorIndicator
@onready var selected_sector_indicator : SelectedSectorIndicator = $SelectedSectorIndicator
func _ready() -> void:
current_sector_indicator.hide()
selected_sector_indicator.hide()
func _input(event: InputEvent) -> void:
if selected_sector == null: return
if not visible: return
if event.is_action_pressed("ui_left") and selected_sector.sector_to_left:
SoundManager.play_ui_stream(SoundManager.ui_stream_previous)
_set_selected_sector(selected_sector.sector_to_left)
if event.is_action_pressed("ui_right") and selected_sector.sector_to_right:
SoundManager.play_ui_stream(SoundManager.ui_stream_next)
_set_selected_sector(selected_sector.sector_to_right)
if event.is_action_pressed("ui_up") and selected_sector.sector_above:
SoundManager.play_ui_stream(SoundManager.ui_stream_previous)
_set_selected_sector(selected_sector.sector_above)
if event.is_action_pressed("ui_down") and selected_sector.sector_below:
SoundManager.play_ui_stream(SoundManager.ui_stream_next)
_set_selected_sector(selected_sector.sector_below)
if event.is_action_pressed("ui_accept"):
var selected_passage := _get_passage_to_sector(selected_sector)
if selected_passage != null:
SoundManager.play_ui_stream(SoundManager.ui_stream_accept)
passage_selected.emit(selected_passage)
func _fill_sector_positions() -> void:
sector_positions.clear()
if area_data == null: return
for stage_index in area_data.stages.size():
var stage := area_data.stages[stage_index]
for sector_index in stage.sectors.size():
var sector := stage.sectors[sector_index]
var sector_position := _get_sector_position(
stage_index, sector_index, stage.sectors.size()
)
sector_positions[sector] = sector_position
func _fill_map() -> void:
_clear_node(sectors_node)
_clear_node(passages_node)
if area_data == null: return
_fill_sector_positions()
for stage in area_data.stages:
_fill_sectors(stage)
func _fill_sectors(stage: StageData) -> void:
for sector_index in stage.sectors.size():
var sector := stage.sectors[sector_index]
if not sector in sector_positions: continue
var sector_position := sector_positions[sector]
_fill_passages(sector.next_passages, sector_position)
if not sector.type in SECTOR_SCENES: continue
var scene := SECTOR_SCENES[sector.type]
var sector_instance : AbstractSectorIndicator = scene.instantiate()
sector_instance.position = sector_position
sectors_node.add_child(sector_instance)
sector.activity_changed.connect(sector_instance.set_active)
func _fill_passages(passages: Array[PassageData], sector_position: Vector2) -> void:
for passage in passages:
if not passage.type in PASSAGE_SCENES: continue
var scene := PASSAGE_SCENES[passage.type]
var passage_instance : AbstractPassageIndicator = scene.instantiate()
passage_instance.position = sector_position
passages_node.add_child(passage_instance)
passage.activity_changed.connect(passage_instance.set_active)
func _get_sector_position(stage_index: int, sector_index: int, sector_count: int) -> Vector2:
var sector_position : Vector2
sector_position.x = SECTOR_XS[stage_index]
match sector_count:
1:
sector_position.y = SECTOR_YS_FOR_ONE[sector_index]
2:
sector_position.y = SECTOR_YS_FOR_TWO[sector_index]
3:
sector_position.y = SECTOR_YS_FOR_THREE[sector_index]
return sector_position
func _clear_node(node: Node) -> void:
for n in node.get_children():
node.remove_child(n)
n.queue_free()
func _set_area_data(data: AreaData) -> void:
area_data = data
current_sector = null
selected_sector = null
_fill_map()
func _set_current_sector(sector: SectorData) -> void:
current_sector = sector
_update_selected_sector_indicator()
if not sector in sector_positions:
current_sector_indicator.hide()
return
var sector_position := sector_positions[sector]
current_sector_indicator.position = sector_position + CURRENT_SECTOR_INDICATOR_OFFSET
current_sector_indicator.show()
func _set_selected_sector(sector: SectorData) -> void:
selected_sector = sector
_update_selected_sector_indicator()
if not sector in sector_positions:
selected_sector_indicator.hide()
return
var sector_position := sector_positions[sector]
selected_sector_indicator.position = sector_position
selected_sector_indicator.show()
func _update_selected_sector_indicator() -> void:
if selected_sector == null: return
var is_accessible := _is_sector_accessible(selected_sector)
selected_sector_indicator.set_active(is_accessible)
func _is_sector_accessible(sector: SectorData) -> bool:
return _get_passage_to_sector(sector) != null
func _get_passage_to_sector(sector: SectorData) -> PassageData:
if current_sector == null: return null
for passage in current_sector.next_passages:
if passage.next_sector == sector:
return passage
return null
+1
View File
@@ -0,0 +1 @@
uid://bk8qn34w5cqmj
+19
View File
@@ -0,0 +1,19 @@
[gd_scene load_steps=5 format=3 uid="uid://dqkp7nlhnb7sh"]
[ext_resource type="Script" uid="uid://bk8qn34w5cqmj" path="res://game/menu/map/area_map.gd" id="1_hkcry"]
[ext_resource type="PackedScene" uid="uid://b8qwok6v44la" path="res://game/menu/map_indicators/current_sector_indicator.tscn" id="2_fx4fd"]
[ext_resource type="PackedScene" uid="uid://bwru7i7xetjth" path="res://game/menu/map_indicators/selected_sector_indicator.tscn" id="3_oxnrh"]
[ext_resource type="PackedScene" uid="uid://chdrjc7c6bdpb" path="res://game/entities/world/background.tscn" id="4_fx4fd"]
[node name="AreaMap" type="Node2D"]
script = ExtResource("1_hkcry")
[node name="Passages" type="Node2D" parent="."]
[node name="Sectors" type="Node2D" parent="."]
[node name="CurrentSectorIndicator" parent="." instance=ExtResource("2_fx4fd")]
[node name="SelectedSectorIndicator" parent="." instance=ExtResource("3_oxnrh")]
[node name="Background" parent="." instance=ExtResource("4_fx4fd")]
+1
View File
@@ -0,0 +1 @@
extends Node
+1
View File
@@ -0,0 +1 @@
uid://bittd8vdqbd8r
+6
View File
@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://ceto4kvp5mr1r"]
[ext_resource type="Script" uid="uid://bittd8vdqbd8r" path="res://game/menu/map/map.gd" id="1_cjemo"]
[node name="Map" type="Node"]
script = ExtResource("1_cjemo")
@@ -0,0 +1,15 @@
class_name AbstractPassageIndicator
extends Node2D
@onready var active_sprite : Sprite2D = $ActiveSprite
@onready var inactive_sprite : Sprite2D = $InactiveSprite
func _ready() -> void:
inactive_sprite.hide()
func set_active(is_active: bool) -> void:
active_sprite.visible = is_active
inactive_sprite.visible = not is_active
@@ -0,0 +1 @@
uid://d1043b8skqr0j
@@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://b03vje74ld8ms"]
[ext_resource type="Script" uid="uid://d1043b8skqr0j" path="res://game/menu/map_indicators/absctact_passage_indicator.gd" id="1_c886g"]
[node name="AbsctactPassageIndicator" type="Node2D"]
script = ExtResource("1_c886g")
[node name="ActiveSprite" type="Sprite2D" parent="."]
[node name="InactiveSprite" type="Sprite2D" parent="."]
@@ -0,0 +1,15 @@
class_name AbstractSectorIndicator
extends Node2D
@onready var active_sprite : Sprite2D = $ActiveSprite
@onready var inactive_sprite : Sprite2D = $InactiveSprite
func _ready() -> void:
inactive_sprite.hide()
func set_active(is_active: bool) -> void:
active_sprite.visible = is_active
inactive_sprite.visible = not is_active
@@ -0,0 +1 @@
uid://br68v5vl7vyd6
@@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://bofxdki5oelxe"]
[ext_resource type="Script" uid="uid://br68v5vl7vyd6" path="res://game/menu/map_indicators/abstract_sector_indicator.gd" id="1_mp2r3"]
[node name="AbstractSectorIndicator" type="Node2D"]
script = ExtResource("1_mp2r3")
[node name="ActiveSprite" type="Sprite2D" parent="."]
[node name="InactiveSprite" type="Sprite2D" parent="."]
@@ -0,0 +1,12 @@
class_name CurrentSectorIndicator
extends Node2D
const ANIMATION = "animation"
@onready var sprite : AnimatedSprite2D = $AnimatedSprite2D
func _ready() -> void:
sprite.play(ANIMATION)
@@ -0,0 +1 @@
uid://yf2bef674enx
@@ -0,0 +1,76 @@
[gd_scene load_steps=12 format=3 uid="uid://b8qwok6v44la"]
[ext_resource type="Script" uid="uid://yf2bef674enx" path="res://game/menu/map_indicators/current_sector_indicator.gd" id="1_7irmv"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_l75qw"]
[sub_resource type="AtlasTexture" id="AtlasTexture_uvh02"]
atlas = ExtResource("2_l75qw")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ae7s5"]
atlas = ExtResource("2_l75qw")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_n55qr"]
atlas = ExtResource("2_l75qw")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_h4hjk"]
atlas = ExtResource("2_l75qw")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_7neat"]
atlas = ExtResource("2_l75qw")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_vo826"]
atlas = ExtResource("2_l75qw")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_5ynnd"]
atlas = ExtResource("2_l75qw")
region = Rect2(96, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_0qk8c"]
atlas = ExtResource("2_l75qw")
region = Rect2(112, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_2biry"]
animations = [{
"frames": [{
"duration": 25.0,
"texture": SubResource("AtlasTexture_uvh02")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ae7s5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_n55qr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_h4hjk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7neat")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vo826")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5ynnd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0qk8c")
}],
"loop": true,
"name": &"animation",
"speed": 10.0
}]
[node name="CurrentSectorIndicator" type="Node2D"]
script = ExtResource("1_7irmv")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_2biry")
animation = &"animation"
frame_progress = 0.8128894
@@ -0,0 +1,22 @@
[gd_scene load_steps=5 format=3 uid="uid://befadmr5b8mij"]
[ext_resource type="PackedScene" uid="uid://b03vje74ld8ms" path="res://game/menu/map_indicators/absctact_passage_indicator.tscn" id="1_6yx0l"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_ihw22"]
[sub_resource type="AtlasTexture" id="AtlasTexture_dencp"]
atlas = ExtResource("2_ihw22")
region = Rect2(80, 64, 80, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_3eblp"]
atlas = ExtResource("2_ihw22")
region = Rect2(240, 64, 80, 48)
[node name="PassageIndicatorMinus26Grad" instance=ExtResource("1_6yx0l")]
[node name="ActiveSprite" parent="." index="0"]
position = Vector2(32, -16)
texture = SubResource("AtlasTexture_dencp")
[node name="InactiveSprite" parent="." index="1"]
position = Vector2(32, -16)
texture = SubResource("AtlasTexture_3eblp")
@@ -0,0 +1,22 @@
[gd_scene load_steps=5 format=3 uid="uid://6wh5paopwa6m"]
[ext_resource type="PackedScene" uid="uid://b03vje74ld8ms" path="res://game/menu/map_indicators/absctact_passage_indicator.tscn" id="1_ejr0u"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_o52wh"]
[sub_resource type="AtlasTexture" id="AtlasTexture_auxhg"]
atlas = ExtResource("2_o52wh")
region = Rect2(80, 112, 80, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_8xe3k"]
atlas = ExtResource("2_o52wh")
region = Rect2(240, 112, 80, 80)
[node name="PassageIndicatorMinus45Grad" instance=ExtResource("1_ejr0u")]
[node name="ActiveSprite" parent="." index="0"]
position = Vector2(32, -32)
texture = SubResource("AtlasTexture_auxhg")
[node name="InactiveSprite" parent="." index="1"]
position = Vector2(32, -32)
texture = SubResource("AtlasTexture_8xe3k")
@@ -0,0 +1,22 @@
[gd_scene load_steps=5 format=3 uid="uid://chtid8advqc7c"]
[ext_resource type="PackedScene" uid="uid://b03vje74ld8ms" path="res://game/menu/map_indicators/absctact_passage_indicator.tscn" id="1_ke7h2"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_ugcaf"]
[sub_resource type="AtlasTexture" id="AtlasTexture_o7a4k"]
atlas = ExtResource("2_ugcaf")
region = Rect2(0, 64, 80, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ghd4p"]
atlas = ExtResource("2_ugcaf")
region = Rect2(160, 64, 80, 48)
[node name="PassageIndicator26Grad" instance=ExtResource("1_ke7h2")]
[node name="ActiveSprite" parent="." index="0"]
position = Vector2(32, 16)
texture = SubResource("AtlasTexture_o7a4k")
[node name="InactiveSprite" parent="." index="1"]
position = Vector2(32, 16)
texture = SubResource("AtlasTexture_ghd4p")
@@ -0,0 +1,22 @@
[gd_scene load_steps=5 format=3 uid="uid://dv68sytyj5bd3"]
[ext_resource type="PackedScene" uid="uid://b03vje74ld8ms" path="res://game/menu/map_indicators/absctact_passage_indicator.tscn" id="1_nk4h4"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_qtofm"]
[sub_resource type="AtlasTexture" id="AtlasTexture_1wcf5"]
atlas = ExtResource("2_qtofm")
region = Rect2(0, 112, 80, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_lqbnh"]
atlas = ExtResource("2_qtofm")
region = Rect2(160, 112, 80, 80)
[node name="PassageIndicator45Grad" instance=ExtResource("1_nk4h4")]
[node name="ActiveSprite" parent="." index="0"]
position = Vector2(32, 32)
texture = SubResource("AtlasTexture_1wcf5")
[node name="InactiveSprite" parent="." index="1"]
position = Vector2(32, 32)
texture = SubResource("AtlasTexture_lqbnh")
@@ -0,0 +1,22 @@
[gd_scene load_steps=5 format=3 uid="uid://d24hqpbq2yqfn"]
[ext_resource type="PackedScene" uid="uid://b03vje74ld8ms" path="res://game/menu/map_indicators/absctact_passage_indicator.tscn" id="1_q65pt"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_4t74o"]
[sub_resource type="AtlasTexture" id="AtlasTexture_f73ej"]
atlas = ExtResource("2_4t74o")
region = Rect2(0, 48, 80, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_b8pmf"]
atlas = ExtResource("2_4t74o")
region = Rect2(160, 48, 80, 16)
[node name="PassageIndicator0Grad" instance=ExtResource("1_q65pt")]
[node name="ActiveSprite" parent="." index="0"]
position = Vector2(32, 0)
texture = SubResource("AtlasTexture_f73ej")
[node name="InactiveSprite" parent="." index="1"]
position = Vector2(32, 0)
texture = SubResource("AtlasTexture_b8pmf")
@@ -0,0 +1,20 @@
[gd_scene load_steps=5 format=3 uid="uid://cf5487fdaju3h"]
[ext_resource type="PackedScene" uid="uid://bofxdki5oelxe" path="res://game/menu/map_indicators/abstract_sector_indicator.tscn" id="1_qx624"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_t7m7p"]
[sub_resource type="AtlasTexture" id="AtlasTexture_qx624"]
atlas = ExtResource("2_t7m7p")
region = Rect2(144, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_t7m7p"]
atlas = ExtResource("2_t7m7p")
region = Rect2(304, 48, 16, 16)
[node name="BossSectorIndicator" instance=ExtResource("1_qx624")]
[node name="ActiveSprite" parent="." index="0"]
texture = SubResource("AtlasTexture_qx624")
[node name="InactiveSprite" parent="." index="1"]
texture = SubResource("AtlasTexture_t7m7p")
@@ -0,0 +1,20 @@
[gd_scene load_steps=5 format=3 uid="uid://dysw7f3fxxdgg"]
[ext_resource type="PackedScene" uid="uid://bofxdki5oelxe" path="res://game/menu/map_indicators/abstract_sector_indicator.tscn" id="1_1il3o"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_yiddm"]
[sub_resource type="AtlasTexture" id="AtlasTexture_1il3o"]
atlas = ExtResource("2_yiddm")
region = Rect2(96, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_yiddm"]
atlas = ExtResource("2_yiddm")
region = Rect2(256, 48, 16, 16)
[node name="DebrisSectorIndicator" instance=ExtResource("1_1il3o")]
[node name="ActiveSprite" parent="." index="0"]
texture = SubResource("AtlasTexture_1il3o")
[node name="InactiveSprite" parent="." index="1"]
texture = SubResource("AtlasTexture_yiddm")
@@ -0,0 +1,20 @@
[gd_scene load_steps=5 format=3 uid="uid://c7d6jylti6bea"]
[ext_resource type="PackedScene" uid="uid://bofxdki5oelxe" path="res://game/menu/map_indicators/abstract_sector_indicator.tscn" id="1_5phms"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_e1mcs"]
[sub_resource type="AtlasTexture" id="AtlasTexture_5phms"]
atlas = ExtResource("2_e1mcs")
region = Rect2(128, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_e1mcs"]
atlas = ExtResource("2_e1mcs")
region = Rect2(288, 48, 16, 16)
[node name="RepairSectorIndicator" instance=ExtResource("1_5phms")]
[node name="ActiveSprite" parent="." index="0"]
texture = SubResource("AtlasTexture_5phms")
[node name="InactiveSprite" parent="." index="1"]
texture = SubResource("AtlasTexture_e1mcs")
@@ -0,0 +1,20 @@
[gd_scene load_steps=5 format=3 uid="uid://webm7iahkjgh"]
[ext_resource type="PackedScene" uid="uid://bofxdki5oelxe" path="res://game/menu/map_indicators/abstract_sector_indicator.tscn" id="1_4uu3o"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_j10ah"]
[sub_resource type="AtlasTexture" id="AtlasTexture_4uu3o"]
atlas = ExtResource("2_j10ah")
region = Rect2(112, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_j10ah"]
atlas = ExtResource("2_j10ah")
region = Rect2(272, 48, 16, 16)
[node name="ShopSectorIndicator" instance=ExtResource("1_4uu3o")]
[node name="ActiveSprite" parent="." index="0"]
texture = SubResource("AtlasTexture_4uu3o")
[node name="InactiveSprite" parent="." index="1"]
texture = SubResource("AtlasTexture_j10ah")
@@ -0,0 +1,20 @@
[gd_scene load_steps=5 format=3 uid="uid://g05q5dxwktr8"]
[ext_resource type="PackedScene" uid="uid://bofxdki5oelxe" path="res://game/menu/map_indicators/abstract_sector_indicator.tscn" id="1_glpdm"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_37krw"]
[sub_resource type="AtlasTexture" id="AtlasTexture_glpdm"]
atlas = ExtResource("2_37krw")
region = Rect2(80, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_37krw"]
atlas = ExtResource("2_37krw")
region = Rect2(80, 48, 16, 16)
[node name="StartSectorIndicator" instance=ExtResource("1_glpdm")]
[node name="ActiveSprite" parent="." index="0"]
texture = SubResource("AtlasTexture_glpdm")
[node name="InactiveSprite" parent="." index="1"]
texture = SubResource("AtlasTexture_37krw")
@@ -0,0 +1,20 @@
class_name SelectedSectorIndicator
extends Node2D
const ANIMATION = "animation"
@onready var active_sprite : AnimatedSprite2D = $ActiveSprite
@onready var inactive_sprite : AnimatedSprite2D = $InactiveSprite
func _ready() -> void:
active_sprite.play(ANIMATION)
inactive_sprite.play(ANIMATION)
inactive_sprite.hide()
func set_active(is_active: bool) -> void:
active_sprite.visible = is_active
inactive_sprite.visible = not is_active
@@ -0,0 +1 @@
uid://d3eqb5341h7y0
@@ -0,0 +1,87 @@
[gd_scene load_steps=13 format=3 uid="uid://bwru7i7xetjth"]
[ext_resource type="Script" uid="uid://d3eqb5341h7y0" path="res://game/menu/map_indicators/selected_sector_indicator.gd" id="1_06a3o"]
[ext_resource type="Texture2D" uid="uid://orutjsnhhruf" path="res://images/menu/map.png" id="2_485wc"]
[sub_resource type="AtlasTexture" id="AtlasTexture_eud2k"]
atlas = ExtResource("2_485wc")
region = Rect2(0, 16, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_m1mdo"]
atlas = ExtResource("2_485wc")
region = Rect2(32, 16, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_84eqk"]
atlas = ExtResource("2_485wc")
region = Rect2(64, 16, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_5un7b"]
atlas = ExtResource("2_485wc")
region = Rect2(96, 16, 32, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_5e44l"]
animations = [{
"frames": [{
"duration": 25.0,
"texture": SubResource("AtlasTexture_eud2k")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_m1mdo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_84eqk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5un7b")
}],
"loop": true,
"name": &"animation",
"speed": 10.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_k4cjf"]
atlas = ExtResource("2_485wc")
region = Rect2(160, 16, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_7sd5s"]
atlas = ExtResource("2_485wc")
region = Rect2(192, 16, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_knx1i"]
atlas = ExtResource("2_485wc")
region = Rect2(224, 16, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ii6pb"]
atlas = ExtResource("2_485wc")
region = Rect2(256, 16, 32, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_ulua7"]
animations = [{
"frames": [{
"duration": 25.0,
"texture": SubResource("AtlasTexture_k4cjf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7sd5s")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_knx1i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ii6pb")
}],
"loop": true,
"name": &"animation",
"speed": 10.0
}]
[node name="SelectedSectorIndicator" type="Node2D"]
script = ExtResource("1_06a3o")
[node name="ActiveSprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_5e44l")
animation = &"animation"
[node name="InactiveSprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_ulua7")
animation = &"animation"
@@ -1,6 +1,6 @@
[gd_scene load_steps=6 format=3 uid="uid://btr60idiit4y7"]
[ext_resource type="Script" uid="uid://ceng1u112aqg0" path="res://game/menu/common/options.gd" id="1_61pji"]
[ext_resource type="Script" uid="uid://ceng1u112aqg0" path="res://game/menu/options/options.gd" id="1_61pji"]
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="2_1tdpy"]
[sub_resource type="ButtonGroup" id="ButtonGroup_6ueaa"]
@@ -1,6 +1,6 @@
[gd_scene load_steps=4 format=3 uid="uid://bclo2wl8ibrcg"]
[ext_resource type="Script" uid="uid://npqs2m5g5bd6" path="res://game/menu/ingame/pause_menu.gd" id="1_inj1j"]
[ext_resource type="Script" uid="uid://npqs2m5g5bd6" path="res://game/menu/pause/pause_menu.gd" id="1_inj1j"]
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="2_vy7sn"]
[sub_resource type="Shortcut" id="Shortcut_lgp46"]
@@ -1,9 +1,9 @@
[gd_scene load_steps=5 format=3 uid="uid://d34nh3lc1gpb"]
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="1_cked2"]
[ext_resource type="Script" uid="uid://c5d2t2o53wkmt" path="res://game/menu/ingame/pause_screen.gd" id="1_fe1q8"]
[ext_resource type="PackedScene" uid="uid://bclo2wl8ibrcg" path="res://game/menu/ingame/pause_menu.tscn" id="2_4r6ly"]
[ext_resource type="PackedScene" uid="uid://btr60idiit4y7" path="res://game/menu/common/options.tscn" id="3_3gwb3"]
[ext_resource type="Script" uid="uid://c5d2t2o53wkmt" path="res://game/menu/pause/pause_screen.gd" id="1_fe1q8"]
[ext_resource type="PackedScene" uid="uid://bclo2wl8ibrcg" path="res://game/menu/pause/pause_menu.tscn" id="2_4r6ly"]
[ext_resource type="PackedScene" uid="uid://btr60idiit4y7" path="res://game/menu/options/options.tscn" id="3_3gwb3"]
[node name="PauseScreen" type="MarginContainer"]
offset_right = 640.0
@@ -5,7 +5,7 @@ extends Control
signal weapon_selected(weapon_data: WeaponData)
const WEAPON_SELECTOR = preload("res://game/menu/ingame/weapon_selector.tscn")
const WEAPON_SELECTOR = preload("res://game/menu/weapon_selection/weapon_selector.tscn")
@export var world_data : WorldData:
@@ -1,6 +1,6 @@
[gd_scene load_steps=3 format=3 uid="uid://cv122gw47cnun"]
[ext_resource type="Script" uid="uid://6isk1tmc2ik1" path="res://game/menu/ingame/weapon_selection_screen.gd" id="1_hl2ql"]
[ext_resource type="Script" uid="uid://6isk1tmc2ik1" path="res://game/menu/weapon_selection/weapon_selection_screen.gd" id="1_hl2ql"]
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="2_mi7cn"]
[node name="WeaponSelectionScreen" type="Control"]
@@ -1,6 +1,6 @@
[gd_scene load_steps=4 format=3 uid="uid://1o3idp54lil2"]
[ext_resource type="Script" uid="uid://beiydi6w6gqqc" path="res://game/menu/ingame/weapon_selector.gd" id="1_4acia"]
[ext_resource type="Script" uid="uid://beiydi6w6gqqc" path="res://game/menu/weapon_selection/weapon_selector.gd" id="1_4acia"]
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://styles/menu_theme.tres" id="2_g83h6"]
[ext_resource type="Theme" uid="uid://bqqtjq710luul" path="res://styles/label_theme.tres" id="3_dsio1"]