Updated levels and added map selection logic
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
class_name Drone
|
||||
|
||||
extends RigidBody3D
|
||||
|
||||
# Local coords to axis
|
||||
@@ -21,7 +23,6 @@ extends RigidBody3D
|
||||
@export var flip_over_detection_ray: RayCast3D
|
||||
@export var flip_over_timer: Timer
|
||||
@export var input_suggestion_label: Label
|
||||
@export var reset_point: Marker3D
|
||||
|
||||
var animation_initalized: bool = false
|
||||
var using_joy_controller: bool = true
|
||||
@@ -86,7 +87,7 @@ func _physics_process(_delta): # Still needed for other physics
|
||||
|
||||
func _input(_event):
|
||||
if Input.is_action_just_pressed("reset_drone"):
|
||||
global_position = reset_point.global_position
|
||||
global_position = GameManager.reset_point.global_position
|
||||
global_rotation = Vector3.ZERO
|
||||
linear_velocity = Vector3.ZERO
|
||||
angular_velocity = Vector3.ZERO
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=105 format=4 uid="uid://dwvmna8qc0vb4"]
|
||||
[gd_scene load_steps=107 format=4 uid="uid://dwvmna8qc0vb4"]
|
||||
|
||||
[ext_resource type="Script" path="res://core/drone/drone.gd" id="1_de83i"]
|
||||
[ext_resource type="Material" uid="uid://d0gkxc5fuh354" path="res://core/resources/materials/black_carbon_fiber.tres" id="2_phv8m"]
|
||||
@@ -10,6 +10,7 @@
|
||||
[ext_resource type="Material" uid="uid://uy2txkh3slat" path="res://core/resources/materials/pink_motor.tres" id="6_3gtkc"]
|
||||
[ext_resource type="Script" path="res://core/scripts/camera_3d.gd" id="9_8eblv"]
|
||||
[ext_resource type="Shader" path="res://core/resources/shaders/vhs.gdshader" id="9_66bpw"]
|
||||
[ext_resource type="Shader" path="res://core/resources/shaders/fisheye.gdshader" id="10_5gurm"]
|
||||
[ext_resource type="Texture2D" uid="uid://bv7klk2tmhya2" path="res://assets/textures/rgba-noise-medium.png" id="10_ylv8e"]
|
||||
[ext_resource type="PackedScene" uid="uid://c6w6axh4l4w8d" path="res://core/tools/fps_label.tscn" id="12_u7iaa"]
|
||||
|
||||
@@ -1074,6 +1075,10 @@ _surfaces = [{
|
||||
blend_shape_mode = 0
|
||||
shadow_mesh = SubResource("ArrayMesh_oy56j")
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0hj7y"]
|
||||
shader = ExtResource("10_5gurm")
|
||||
shader_parameter/fisheye_strength = 1.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pkxv0"]
|
||||
shader = ExtResource("9_66bpw")
|
||||
shader_parameter/curvature = 0.0
|
||||
@@ -1327,6 +1332,23 @@ script = ExtResource("9_8eblv")
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="VisualComponets/CameraPivot/Camera3D"]
|
||||
|
||||
[node name="FisheyeVFX" type="Control" parent="VisualComponets/CameraPivot/Camera3D/CanvasLayer"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="VisualComponets/CameraPivot/Camera3D/CanvasLayer/FisheyeVFX"]
|
||||
material = SubResource("ShaderMaterial_0hj7y")
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VHSVFX" type="Control" parent="VisualComponets/CameraPivot/Camera3D/CanvasLayer"]
|
||||
visible = false
|
||||
layout_mode = 3
|
||||
|
||||
8857
core/levels/abstract.tscn
Normal file
8857
core/levels/abstract.tscn
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -13,7 +13,8 @@ metallic_specular = 0.0
|
||||
|
||||
[node name="RunDownBuilding" type="Node3D"]
|
||||
|
||||
[node name="Ground" type="StaticBody3D" parent="." groups=["Ground"]]
|
||||
[node name="Ground" type="StaticBody3D" parent="." groups=["ResetSurface"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 100)
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground"]
|
||||
shape = SubResource("WorldBoundaryShape3D_6xxch")
|
||||
@@ -23,4 +24,4 @@ mesh = SubResource("PlaneMesh_qporw")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_wl7tr")
|
||||
|
||||
[node name="Sketchfab_Scene" parent="." instance=ExtResource("2_orjp2")]
|
||||
transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, -12.243, 0)
|
||||
transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, -12.243, 100)
|
||||
|
||||
@@ -14,7 +14,7 @@ size = Vector2(100, 100)
|
||||
|
||||
[node name="TestLevel" type="Node3D"]
|
||||
|
||||
[node name="Ground" type="StaticBody3D" parent="." groups=["Ground"]]
|
||||
[node name="Ground" type="StaticBody3D" parent="." groups=["ResetSurface"]]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground"]
|
||||
shape = SubResource("WorldBoundaryShape3D_bpckr")
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
[gd_scene load_steps=15 format=3 uid="uid://deah8x3tnm045"]
|
||||
[gd_scene load_steps=20 format=3 uid="uid://deah8x3tnm045"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b3ecco3iykmlc" path="res://assets/textures/overcast_soil_puresky_4k.hdr" id="1_4mr0e"]
|
||||
[ext_resource type="PackedScene" uid="uid://dwvmna8qc0vb4" path="res://core/drone/drone.tscn" id="2_orkyq"]
|
||||
[ext_resource type="Script" path="res://core/scripts/main.gd" id="1_eewwe"]
|
||||
[ext_resource type="Script" path="res://core/scripts/camera_3d.gd" id="3_sec6q"]
|
||||
[ext_resource type="Script" path="res://core/scripts/los_view.gd" id="3_supaf"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7ldlo5qe26tx" path="res://assets/textures/drone_screenshot.png" id="4_0ftx7"]
|
||||
[ext_resource type="Script" path="res://core/scripts/main_menu.gd" id="4_bknjq"]
|
||||
[ext_resource type="PackedScene" uid="uid://ctnwdiavrytwe" path="res://core/levels/contruction_site.tscn" id="4_oqdxa"]
|
||||
[ext_resource type="Script" path="res://core/scripts/pause_menu.gd" id="7_b8wfm"]
|
||||
[ext_resource type="Script" path="res://core/scripts/map_selection.gd" id="9_m0h3c"]
|
||||
[ext_resource type="PackedScene" uid="uid://ctnwdiavrytwe" path="res://core/levels/construction_site.tscn" id="9_uh1ro"]
|
||||
[ext_resource type="PackedScene" uid="uid://5ht1wfq36328" path="res://core/levels/run_down_building.tscn" id="10_u57pm"]
|
||||
[ext_resource type="PackedScene" uid="uid://7umhe6bcjv4v" path="res://core/levels/abstract.tscn" id="11_nccjd"]
|
||||
|
||||
[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_qks7v"]
|
||||
panorama = ExtResource("1_4mr0e")
|
||||
@@ -35,7 +38,14 @@ shadow_color = Color(0, 0, 0, 0.611765)
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_ymk35"]
|
||||
shadow_color = Color(0, 0, 0, 0.611765)
|
||||
|
||||
[node name="Main" type="Node3D"]
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_b4xxx"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pg658"]
|
||||
bg_color = Color(0, 0, 0, 0)
|
||||
|
||||
[node name="Main" type="Node3D" node_paths=PackedStringArray("reset_point")]
|
||||
script = ExtResource("1_eewwe")
|
||||
reset_point = NodePath("ResetPoint")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(-0.924804, -0.329475, 0.190221, 1.47562e-08, 0.499998, 0.866027, -0.380444, 0.800905, -0.4624, 0, 0, 0)
|
||||
@@ -49,17 +59,12 @@ shadow_blur = 4.542
|
||||
environment = SubResource("Environment_ruppb")
|
||||
|
||||
[node name="ResetPoint" type="Marker3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.017014, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.117014, 0)
|
||||
|
||||
[node name="Drone" parent="ResetPoint" node_paths=PackedStringArray("reset_point") instance=ExtResource("2_orkyq")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.7659, 0, -31.913)
|
||||
reset_point = NodePath("..")
|
||||
|
||||
[node name="LOSView" type="Node3D" parent="." node_paths=PackedStringArray("drone", "child_camera")]
|
||||
[node name="LOSView" type="Node3D" parent="." node_paths=PackedStringArray("child_camera")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.23896, 0.638642, -1.134)
|
||||
script = ExtResource("3_supaf")
|
||||
zoom_curve = SubResource("Curve_nxnkk")
|
||||
drone = NodePath("../ResetPoint/Drone")
|
||||
child_camera = NodePath("LOSCamera3D")
|
||||
|
||||
[node name="LOSCamera3D" type="Camera3D" parent="LOSView"]
|
||||
@@ -71,7 +76,7 @@ script = ExtResource("3_sec6q")
|
||||
process_mode = 3
|
||||
layer = 2
|
||||
|
||||
[node name="MainMenu" type="Control" parent="CanvasLayer" node_paths=PackedStringArray("start_button", "quit_button", "controller_mode_button", "joy_controller_label", "fpv_remote_label")]
|
||||
[node name="MainMenu" type="Control" parent="CanvasLayer" node_paths=PackedStringArray("start_button", "quit_button", "controller_mode_button", "joy_controller_label", "fpv_remote_label", "map_selection_menu")]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
@@ -84,6 +89,7 @@ quit_button = NodePath("HBoxContainer/VBoxContainer/MarginContainer/VBoxContaine
|
||||
controller_mode_button = NodePath("HBoxContainer/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/ControllerModeButton")
|
||||
joy_controller_label = NodePath("HBoxContainer/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/JoyControllerLabel")
|
||||
fpv_remote_label = NodePath("HBoxContainer/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/FPVRemoteLabel")
|
||||
map_selection_menu = NodePath("../MapSelection")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="CanvasLayer/MainMenu"]
|
||||
layout_mode = 1
|
||||
@@ -213,6 +219,118 @@ layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 25
|
||||
text = "QUIT"
|
||||
|
||||
[node name="TestLevel" parent="." instance=ExtResource("4_oqdxa")]
|
||||
[node name="MapSelection" type="Control" parent="CanvasLayer" node_paths=PackedStringArray("construction_site_button", "run_down_building_button", "abstract_button", "start_button")]
|
||||
visible = false
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("9_m0h3c")
|
||||
construction_site_button = NodePath("GridContainer/Panel/ConstructionSiteButton")
|
||||
run_down_building_button = NodePath("GridContainer/Panel2/RunDownBuildingButton")
|
||||
abstract_button = NodePath("GridContainer/Panel3/AbstractButton")
|
||||
start_button = NodePath("HBoxContainer/VBoxContainer/MarginContainer/StartButton")
|
||||
construction_site_scene = ExtResource("9_uh1ro")
|
||||
run_down_building_scene = ExtResource("10_u57pm")
|
||||
abstract_scene = ExtResource("11_nccjd")
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="CanvasLayer/MapSelection"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.262932, 0.262932, 0.262932, 1)
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="CanvasLayer/MapSelection"]
|
||||
layout_mode = 2
|
||||
offset_left = 236.0
|
||||
offset_top = 274.0
|
||||
offset_right = 916.0
|
||||
offset_bottom = 374.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_constants/h_separation = 40
|
||||
theme_override_constants/v_separation = 40
|
||||
columns = 3
|
||||
|
||||
[node name="Panel" type="Panel" parent="CanvasLayer/MapSelection/GridContainer"]
|
||||
custom_minimum_size = Vector2(200, 100)
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxTexture_b4xxx")
|
||||
|
||||
[node name="ConstructionSiteButton" type="Button" parent="CanvasLayer/MapSelection/GridContainer/Panel"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
focus_neighbor_right = NodePath("../../Panel2/RunDownBuildingButton")
|
||||
focus_neighbor_bottom = NodePath("../../../HBoxContainer/VBoxContainer/MarginContainer/StartButton")
|
||||
text = "Construction Site"
|
||||
|
||||
[node name="Panel2" type="Panel" parent="CanvasLayer/MapSelection/GridContainer"]
|
||||
custom_minimum_size = Vector2(200, 100)
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_pg658")
|
||||
|
||||
[node name="RunDownBuildingButton" type="Button" parent="CanvasLayer/MapSelection/GridContainer/Panel2"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
focus_neighbor_left = NodePath("../../Panel/ConstructionSiteButton")
|
||||
focus_neighbor_right = NodePath("../../Panel3/AbstractButton")
|
||||
focus_neighbor_bottom = NodePath("../../../HBoxContainer/VBoxContainer/MarginContainer/StartButton")
|
||||
text = "Run Down Building"
|
||||
|
||||
[node name="Panel3" type="Panel" parent="CanvasLayer/MapSelection/GridContainer"]
|
||||
custom_minimum_size = Vector2(200, 100)
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_pg658")
|
||||
|
||||
[node name="AbstractButton" type="Button" parent="CanvasLayer/MapSelection/GridContainer/Panel3"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
focus_neighbor_left = NodePath("../../Panel2/RunDownBuildingButton")
|
||||
focus_neighbor_right = NodePath("../../../HBoxContainer/VBoxContainer/MarginContainer/StartButton")
|
||||
focus_neighbor_bottom = NodePath("../../../HBoxContainer/VBoxContainer/MarginContainer/StartButton")
|
||||
text = "Abstract"
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/MapSelection"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
alignment = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/MapSelection/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
alignment = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/MapSelection/HBoxContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_right = 40
|
||||
theme_override_constants/margin_bottom = 30
|
||||
|
||||
[node name="StartButton" type="Button" parent="CanvasLayer/MapSelection/HBoxContainer/VBoxContainer/MarginContainer"]
|
||||
custom_minimum_size = Vector2(200, 50)
|
||||
layout_mode = 2
|
||||
focus_neighbor_top = NodePath("../../../../GridContainer/Panel3/AbstractButton")
|
||||
text = "START"
|
||||
|
||||
[connection signal="toggled" from="CanvasLayer/MainMenu/HBoxContainer/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/ControllerModeButton" to="CanvasLayer/MainMenu" method="_on_controller_mode_button_toggled"]
|
||||
|
||||
19
core/resources/shaders/fisheye.gdshader
Normal file
19
core/resources/shaders/fisheye.gdshader
Normal file
@@ -0,0 +1,19 @@
|
||||
shader_type canvas_item;
|
||||
uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest;
|
||||
uniform float fisheye_strength = 1.0; // Control the fisheye effect strength
|
||||
vec2 fisheye(vec2 uv) {
|
||||
vec2 d = uv - 0.5;
|
||||
float r = length(d);
|
||||
float theta = atan(d.y, d.x);
|
||||
float rf = pow(r, fisheye_strength) / pow(0.5, fisheye_strength - 1.0);
|
||||
return vec2(0.5) + rf * normalize(d);
|
||||
}
|
||||
void fragment() {
|
||||
vec2 iResolution = 1.0 / SCREEN_PIXEL_SIZE;
|
||||
vec2 q = FRAGCOORD.xy / iResolution.xy;
|
||||
|
||||
// Apply fisheye distortion
|
||||
q = fisheye(q);
|
||||
vec3 col = texture(screen_texture, q).rgb;
|
||||
COLOR = vec4(col, 1.0);
|
||||
}
|
||||
@@ -1,11 +1,18 @@
|
||||
extends Node3D
|
||||
|
||||
var selected_drone: PackedScene
|
||||
var camera_array: Array[Camera3D] = []
|
||||
var current_camera: int = 0
|
||||
var game_started: bool = false
|
||||
var is_paused: bool = false
|
||||
var controller_mode: String = "JoyController"
|
||||
var selected_map: PackedScene
|
||||
var drone_instance: Drone
|
||||
var reset_point: Marker3D
|
||||
|
||||
@export var camera_array: Array[Camera3D] = []
|
||||
@export var current_camera: int = 0
|
||||
@export var game_started: bool = false
|
||||
@export var is_paused: bool = false
|
||||
@export var controller_mode: String = "JoyController"
|
||||
|
||||
func _ready():
|
||||
selected_drone = load("res://core/drone/drone.tscn")
|
||||
|
||||
|
||||
func _process(_delta):
|
||||
@@ -20,4 +27,18 @@ func _process(_delta):
|
||||
|
||||
|
||||
func start_game():
|
||||
game_started = true
|
||||
if selected_map != null:
|
||||
var map_instance = selected_map.instantiate()
|
||||
get_tree().root.get_node("Main").add_child(map_instance)
|
||||
_spawn_drone()
|
||||
game_started = true
|
||||
else:
|
||||
print("ERROR: selected_map is null")
|
||||
|
||||
|
||||
func _spawn_drone():
|
||||
if selected_drone != null:
|
||||
drone_instance = selected_drone.instantiate()
|
||||
get_tree().root.get_node("Main/ResetPoint/").add_child(drone_instance)
|
||||
else:
|
||||
print("ERROR: selected_drone is null")
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
extends Node3D
|
||||
|
||||
@export var zoom_curve: Curve
|
||||
@export var drone: RigidBody3D
|
||||
@export var child_camera: Camera3D
|
||||
|
||||
var dist_to_drone: float = 0.0
|
||||
@@ -12,9 +11,10 @@ func _ready():
|
||||
|
||||
|
||||
func _physics_process(_delta):
|
||||
look_at(drone.global_position)
|
||||
|
||||
dist_to_drone = global_position.distance_to(drone.global_position)
|
||||
|
||||
child_camera.fov = zoom_curve.sample((dist_to_drone-1)/89)
|
||||
|
||||
if GameManager.drone_instance != null:
|
||||
look_at(GameManager.drone_instance.global_position)
|
||||
|
||||
dist_to_drone = global_position.distance_to(GameManager.drone_instance.global_position)
|
||||
|
||||
child_camera.fov = zoom_curve.sample((dist_to_drone-1)/89)
|
||||
|
||||
|
||||
7
core/scripts/main.gd
Normal file
7
core/scripts/main.gd
Normal file
@@ -0,0 +1,7 @@
|
||||
extends Node3D
|
||||
|
||||
@export var reset_point: Marker3D
|
||||
|
||||
|
||||
func _ready():
|
||||
GameManager.reset_point = reset_point
|
||||
@@ -5,6 +5,7 @@ extends Control
|
||||
@export var controller_mode_button: CheckButton
|
||||
@export var joy_controller_label: Label
|
||||
@export var fpv_remote_label: Label
|
||||
@export var map_selection_menu: Control
|
||||
|
||||
|
||||
func _ready():
|
||||
@@ -16,7 +17,7 @@ func _ready():
|
||||
|
||||
func _on_start_button_pressed():
|
||||
hide()
|
||||
GameManager.start_game()
|
||||
map_selection_menu.show()
|
||||
|
||||
|
||||
func _on_quit_button_pressed():
|
||||
|
||||
43
core/scripts/map_selection.gd
Normal file
43
core/scripts/map_selection.gd
Normal file
@@ -0,0 +1,43 @@
|
||||
extends Control
|
||||
|
||||
@export var construction_site_button: Button
|
||||
@export var run_down_building_button: Button
|
||||
@export var abstract_button: Button
|
||||
@export var start_button: Button
|
||||
@export var construction_site_scene: PackedScene
|
||||
@export var run_down_building_scene: PackedScene
|
||||
@export var abstract_scene: PackedScene
|
||||
var selected_map_key: int = 0
|
||||
|
||||
|
||||
func _ready():
|
||||
construction_site_button.pressed.connect(_on_construction_site_button_pressed)
|
||||
run_down_building_button.pressed.connect(_on_run_down_building_button_pressed)
|
||||
abstract_button.pressed.connect(_on_abstract_button_pressed)
|
||||
start_button.pressed.connect(_on_start_button_pressed)
|
||||
self.visibility_changed.connect(_on_visibility_changed)
|
||||
|
||||
|
||||
func _on_construction_site_button_pressed():
|
||||
selected_map_key = 1
|
||||
GameManager.selected_map = construction_site_scene
|
||||
|
||||
|
||||
func _on_run_down_building_button_pressed():
|
||||
selected_map_key = 2
|
||||
GameManager.selected_map = run_down_building_scene
|
||||
|
||||
|
||||
func _on_abstract_button_pressed():
|
||||
selected_map_key = 3
|
||||
GameManager.selected_map = abstract_scene
|
||||
|
||||
|
||||
func _on_start_button_pressed():
|
||||
GameManager.start_game()
|
||||
hide()
|
||||
|
||||
|
||||
func _on_visibility_changed() -> void:
|
||||
if visible:
|
||||
construction_site_button.grab_focus()
|
||||
Binary file not shown.
Reference in New Issue
Block a user