From 42035d790726b90ec4b7cf130439ab30c74ed4d2 Mon Sep 17 00:00:00 2001 From: Dustin Date: Tue, 3 Jun 2025 19:40:09 -0700 Subject: [PATCH] Game Settings resource, directly launch game now. --- Main.tscn | 4 +++- project.godot | 6 ++++++ settings.tres | 7 +++++++ src/Main.gd | 13 +++++++++++-- src/game_settings.gd | 6 ++++++ 5 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 settings.tres create mode 100644 src/game_settings.gd diff --git a/Main.tscn b/Main.tscn index bfd08ca..b597842 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=12 format=2] [ext_resource path="res://src/classes/camera_guide.gd" type="Script" id=1] [ext_resource path="res://src/Camera2D.gd" type="Script" id=2] [ext_resource path="res://src/levels/TestBox.tscn" type="PackedScene" id=3] [ext_resource path="res://src/ui/scene_transition.tscn" type="PackedScene" id=4] [ext_resource path="res://src/ui/HUD.tscn" type="PackedScene" id=5] +[ext_resource path="res://settings.tres" type="Resource" id=6] [ext_resource path="res://src/Main.gd" type="Script" id=7] [ext_resource path="res://src/ui/lobby.tscn" type="PackedScene" id=9] @@ -28,6 +29,7 @@ extents = Vector2( 160, 90 ) script = ExtResource( 7 ) starting_level = ExtResource( 3 ) player_hud = ExtResource( 5 ) +game_settings = ExtResource( 6 ) [node name="MusicPlayer" type="AudioStreamPlayer" parent="."] diff --git a/project.godot b/project.godot index 031623a..1b18dea 100644 --- a/project.godot +++ b/project.godot @@ -34,6 +34,11 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://lib/classes/collision_shape2D_state_receiver.gd" }, { +"base": "Resource", +"class": "GameSettings", +"language": "GDScript", +"path": "res://src/game_settings.gd" +}, { "base": "Node", "class": "HealthComponent", "language": "GDScript", @@ -175,6 +180,7 @@ _global_script_class_icons={ "AudioStreamPlayer_StateReceiver": "", "CameraGuide": "", "CollisionShape2D_StateReceiver": "", +"GameSettings": "", "HealthComponent": "", "HealthPickup": "", "Interactable": "", diff --git a/settings.tres b/settings.tres new file mode 100644 index 0000000..23b9da1 --- /dev/null +++ b/settings.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" load_steps=2 format=2] + +[ext_resource path="res://src/game_settings.gd" type="Script" id=1] + +[resource] +script = ExtResource( 1 ) +multiplayer_enabled = false diff --git a/src/Main.gd b/src/Main.gd index 1e8d93e..542a40d 100644 --- a/src/Main.gd +++ b/src/Main.gd @@ -12,6 +12,8 @@ export var starting_level: PackedScene export var player_hud: PackedScene export var start_screen: PackedScene +export var game_settings :Resource + onready var viewport_container = $ViewportContainer onready var viewport = $"%Viewport" onready var lobby = $ViewportContainer/Viewport/Lobby @@ -24,6 +26,7 @@ onready var window_scale :float # Called when the node enters the scene tree for the first time. func _ready(): + assert(game_settings is GameSettings, "Incorrect resource or no settings resource specified.") game_size = viewport.size window_scale = (OS.window_size / game_size).x assert(starting_level != null, "Main: starting level not specified.") @@ -32,8 +35,14 @@ func _ready(): ##TODO: Once a start screen is there, go there instead of lobby UI. # Or shift this over to UIManager singleton - if is_instance_valid(start_screen) == false: - lobby.visible = true + if game_settings is GameSettings: + if is_instance_valid(start_screen) == false: + if game_settings.multiplayer_enabled == false: + lobby.visible = false + NetworkManager.host_game('DISABLED') + NetworkManager.begin_game() + else: + lobby.visible = true # Called every frame. 'delta' is the elapsed time since the previous frame. #func _process(delta): diff --git a/src/game_settings.gd b/src/game_settings.gd new file mode 100644 index 0000000..94f7436 --- /dev/null +++ b/src/game_settings.gd @@ -0,0 +1,6 @@ +class_name GameSettings +extends Resource + + +export var multiplayer_enabled :bool = false +