scene changers now work with playlist

This commit is contained in:
derek
2025-03-28 14:30:27 -05:00
parent 1422992c13
commit a591865d4b
13 changed files with 100 additions and 71 deletions

View File

@@ -1,3 +1,3 @@
{
"godotTools.editorPath.godot4": "c:\\Program Files\\Godot_v4.2.2-stable_win64.exe\\Godot_v4.2.2-stable_win64.exe"
"godotTools.editorPath.godot4": "c:\\Program Files\\Godot\\Godot_v4.4-stable_win64.exe\\Godot_v4.4-stable_win64.exe"
}

View File

@@ -66,7 +66,6 @@ layout_mode = 1
hub_world = ExtResource("4_3fnrj")
maps_in_rotation = Array[ExtResource("4_p7b2e")]([ExtResource("5_rnncn"), ExtResource("6_3fnrj"), ExtResource("7_m04lp"), ExtResource("8_1thib")])
gamemodes_in_rotation = Array[ExtResource("4_p0ng4")]([ExtResource("5_lv7ko")])
levels_per_round = 4
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1

View File

@@ -1,16 +1,18 @@
[gd_scene load_steps=18 format=3 uid="uid://otkecr0hcyon"]
[gd_scene load_steps=20 format=3 uid="uid://otkecr0hcyon"]
[ext_resource type="PackedScene" uid="uid://bj1y0fbjtul4a" path="res://post_processing.tscn" id="1_48lr2"]
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="1_ibypk"]
[ext_resource type="Script" uid="uid://bkii8jwf0k7tq" path="res://scripts/LevelManager.gd" id="1_v17bv"]
[ext_resource type="PackedScene" uid="uid://dgvmwyhj43bol" path="res://levels/LevelModels/Hub1.blend" id="2_ibypk"]
[ext_resource type="Resource" uid="uid://bxcxqt7rmfvdw" path="res://GameModes/hubworld.tres" id="2_pxx7p"]
[ext_resource type="Script" uid="uid://clph3byphno03" path="res://scripts/playlist_loader.gd" id="3_3c1m5"]
[ext_resource type="PackedScene" uid="uid://c1xw80jkg3reb" path="res://assets/target_1.tscn" id="6_sibpp"]
[ext_resource type="PackedScene" uid="uid://b0y5rqfeh1hb1" path="res://assets/chair_1.tscn" id="7_rgl24"]
[ext_resource type="PackedScene" uid="uid://c0uv33kbndbvy" path="res://assets/trashcan.tscn" id="8_7e18o"]
[ext_resource type="PackedScene" uid="uid://dyu46bns8mesv" path="res://assets/mac10_pickup.tscn" id="9_7e18o"]
[ext_resource type="PackedScene" uid="uid://dugcxo2665me0" path="res://assets/revolver1_pickup.tscn" id="10_20m5p"]
[ext_resource type="PackedScene" uid="uid://dgapcuvg0gtmm" path="res://assets/scene_changer.tscn" id="11_titu4"]
[ext_resource type="PackedScene" uid="uid://eujx0yilqqcp" path="res://assets/level_sign.tscn" id="13_ng05k"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_48lr2"]
sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
@@ -104,6 +106,12 @@ script = ExtResource("1_v17bv")
map_name = "Hub 1"
gamemode = ExtResource("2_pxx7p")
[node name="LEVEL UTILS" type="Node" parent="."]
[node name="PlaylistLoader" type="Node" parent="LEVEL UTILS" node_paths=PackedStringArray("portal_parent")]
script = ExtResource("3_3c1m5")
portal_parent = NodePath("../../Tubes")
[node name="Player" parent="." instance=ExtResource("1_ibypk")]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
@@ -241,3 +249,60 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.6736, 6.57787, -17.6494)
[node name="Scene Changer" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -11.6417)
[node name="Level Sign" parent="Tubes/Scene Changer" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)
[node name="Scene Changer2" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -19.1273)
[node name="Level Sign" parent="Tubes/Scene Changer2" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)
[node name="Scene Changer3" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -27.1599)
[node name="Level Sign" parent="Tubes/Scene Changer3" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)
[node name="Scene Changer4" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -34.7607)
[node name="Level Sign" parent="Tubes/Scene Changer4" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)
[node name="Scene Changer5" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.07024, -64.2195, -42.1311)
[node name="Level Sign" parent="Tubes/Scene Changer5" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)
[node name="Scene Changer6" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.17812, -64.2195, -42.2864)
[node name="Level Sign" parent="Tubes/Scene Changer6" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)
[node name="Scene Changer7" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.21706, -64.2195, -34.8009)
[node name="Level Sign" parent="Tubes/Scene Changer7" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)
[node name="Scene Changer8" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.25883, -64.2195, -26.7684)
[node name="Level Sign" parent="Tubes/Scene Changer8" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)
[node name="Scene Changer9" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.29837, -64.2195, -19.1677)
[node name="Level Sign" parent="Tubes/Scene Changer9" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)
[node name="Scene Changer10" parent="Tubes" instance=ExtResource("11_titu4")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.3367, -64.2195, -11.7974)
[node name="Level Sign" parent="Tubes/Scene Changer10" instance=ExtResource("13_ng05k")]
transform = Transform3D(-0.00479963, 0, 0.999989, 0, 1, 0, -0.999989, 0, -0.00479963, -2.91949, 65.7011, -0.162403)

View File

@@ -127,7 +127,7 @@ _data = {
}
[node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("weapon_holder") groups=["persist", "player"]]
transform = Transform3D(1, 0.000164476, 0.000583754, -0.000165075, 0.999999, 0.00104027, -0.000583585, -0.00104036, 0.999999, 0, 1.11359, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0)
collision_layer = 6
collision_mask = 523
script = ExtResource("1_x7wms")

View File

@@ -18,7 +18,7 @@ fire_mode = 0
fov_zoom_amt = 0.98
crosshair_radius = 50
ads = false
recoil_amount = Vector3(0.025, 0.05, 0.05)
recoil_amount = Vector3(0.05, 0.05, 0.05)
crosshair_jump_amount = 10
kick_amount = 0.1
max_ammo = 20

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=24 format=3 uid="uid://jdwpc622vmok"]
[gd_scene load_steps=22 format=3 uid="uid://jdwpc622vmok"]
[ext_resource type="Script" uid="uid://bkii8jwf0k7tq" path="res://scripts/LevelManager.gd" id="1_1bnbi"]
[ext_resource type="Resource" uid="uid://bxcxqt7rmfvdw" path="res://GameModes/hubworld.tres" id="2_62iy8"]
@@ -9,8 +9,6 @@
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="4_04o4y"]
[ext_resource type="PackedScene" uid="uid://dgapcuvg0gtmm" path="res://assets/scene_changer.tscn" id="5_alya6"]
[ext_resource type="PackedScene" uid="uid://bessq6hl7qsh8" path="res://assets/stats.tscn" id="6_mkn70"]
[ext_resource type="Resource" uid="uid://bs8yvpq65yh3w" path="res://GameModes/cookie_mode.tres" id="6_pf4wj"]
[ext_resource type="Resource" uid="uid://dn3t7wcoumlm3" path="res://GameModes/standard.tres" id="6_t16kj"]
[ext_resource type="PackedScene" uid="uid://bj1y0fbjtul4a" path="res://post_processing.tscn" id="7_2h1ea"]
[ext_resource type="PackedScene" uid="uid://bvjrsc86n2ak0" path="res://assets/deposit_money.tscn" id="8_n0nhe"]
[ext_resource type="PackedScene" uid="uid://c6bpysq1tjhy4" path="res://vendingmahcine.tscn" id="9_nu6q5"]
@@ -36,10 +34,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0169516, 0.0284452, -0.008
[node name="LEVEL UTILS" type="Node" parent="."]
[node name="Playlist Generator" parent="LEVEL UTILS" instance=ExtResource("3_udqcb")]
checksum_test = null
load_playlist_from_file = null
chest_drops = null
chests_per_match = null
chest_drops = Array[Resource]([])
[node name="PlaylistLoader" type="Node" parent="LEVEL UTILS"]
script = ExtResource("3_2u2e7")
@@ -182,28 +177,15 @@ transform = Transform3D(1, 0.000164476, 0.000583754, -0.000165075, 0.999999, 0.0
[node name="EnemyWorkingScene" parent="." instance=ExtResource("5_alya6")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.3745, -57.3609, -4.76346)
scene_path = "res://scenes/enemy_working_scene.tscn"
scene_name = "Enemy Working Scene"
level_gamemode = ExtResource("6_t16kj")
hub_portal = true
[node name="Blockout2" parent="." instance=ExtResource("5_alya6")]
transform = Transform3D(0.00439817, 0, 0.99999, 0, 1, 0, -0.99999, 0, 0.00439817, -18.9232, -57.3609, -0.308022)
hub_portal = true
[node name="Gulag of Money" parent="." instance=ExtResource("5_alya6")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.869051, -57.3609, 22.9677)
scene_path = "res://scenes/Arena of Money.tscn"
scene_name = "The Gulag"
level_gamemode = ExtResource("6_pf4wj")
hub_portal = true
[node name="TestLevel2v2" parent="." instance=ExtResource("5_alya6")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.379696, -57.3609, -23.5075)
scene_path = "res://scenes/test_level_2v2.tscn"
scene_name = "Test Level 2v2"
level_gamemode = ExtResource("6_t16kj")
hub_portal = true
[node name="Stats" parent="." instance=ExtResource("6_mkn70")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.212402, 1.9891, -6.02898)
@@ -222,21 +204,17 @@ item_name = "ammo"
item_price = 25
number_uses = 15
[node name="Level Sign" parent="." node_paths=PackedStringArray("portal_node") instance=ExtResource("11_p3sg0")]
[node name="Level Sign" parent="." instance=ExtResource("11_p3sg0")]
transform = Transform3D(0.738985, 0, -0.673722, 0, 1, 0, 0.673722, 0, 0.738985, 7.37127, 1.19867, -9.17978)
portal_node = NodePath("../EnemyWorkingScene")
[node name="Level Sign4" parent="." node_paths=PackedStringArray("portal_node") instance=ExtResource("11_p3sg0")]
[node name="Level Sign4" parent="." instance=ExtResource("11_p3sg0")]
transform = Transform3D(0.744626, 0, 0.667482, 0, 1, 0, -0.667482, 0, 0.744626, -2.45327, 1.19867, -9.41885)
portal_node = NodePath("../TestLevel2v2")
[node name="Level Sign2" parent="." node_paths=PackedStringArray("portal_node") instance=ExtResource("11_p3sg0")]
[node name="Level Sign2" parent="." instance=ExtResource("11_p3sg0")]
transform = Transform3D(-0.529904, 0, 0.848057, 0, 1, 0, -0.848057, 0, -0.529904, -7.68211, 1.19868, 2.00196)
portal_node = NodePath("../Blockout2")
[node name="Level Sign3" parent="." node_paths=PackedStringArray("portal_node") instance=ExtResource("11_p3sg0")]
[node name="Level Sign3" parent="." instance=ExtResource("11_p3sg0")]
transform = Transform3D(-0.899916, 0, -0.436063, 0, 1, 0, 0.436063, 0, -0.899916, 2.88079, 1.19868, 10.7051)
portal_node = NodePath("../Gulag of Money")
[node name="HealthDispenser" parent="." instance=ExtResource("13_h5xga")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 7.99763, 1.77484, -1.41809)

View File

@@ -1,16 +1,18 @@
extends Node3D
@export var portal_node : Node
@onready var portal_node = get_parent()
@onready var level_name: Label3D = $"Level Name"
@onready var gamemode_label: Label3D = $Gamemode
@onready var active: Label3D = $Active
func _process(delta: float) -> void:
if portal_node.active:
level_name.text = portal_node.scene_name
if portal_node.level_gamemode != null:
gamemode_label.text = portal_node.level_gamemode.gamemode_name
level_name.text = portal_node.level_info["level_name"]
if portal_node.level_info["gamemode_path"] != null:
gamemode_label.text = load(portal_node.level_info["gamemode_path"]).gamemode_name
active.text = str("active: ",portal_node.active)
else:
level_name.text = "closed for maintenance"

View File

@@ -6,7 +6,7 @@ extends Node
@export var maps_in_rotation : Array[level_resource] = []
@export var gamemodes_in_rotation : Array[gamemode]= []
@export var chest_drops : Array[Resource]
@export var levels_per_round : int = 5
@export var levels_per_round : int = 10
@export var rounds_per_match : int = 3
@export var chests_per_match : int = 100
@export var matches_per_year : int = 52
@@ -46,7 +46,7 @@ func generate_playlist() -> void:
var numbers = []
for i in range(chests_per_match):
numbers.append(i+1)
numbers.append(i)
numbers.shuffle()

View File

@@ -1,20 +1,21 @@
extends Node
@export var portal_parent : Node3D
@onready var playlist_generator: Control = $"../Playlist Generator"
@onready var current_match = GameGlobals.playlist[GameGlobals.current_match_id]
@onready var current_round = current_match[GameGlobals.current_round_id]["round"]
var portals = []
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
if GameGlobals.current_match[GameGlobals.current_round_id] == [] or GameGlobals.current_match[GameGlobals.current_round_id] == null:
playlist_generator.load_playlist()
print("CURRENT MATCH : ",GameGlobals.current_match)
for i in get_tree().current_scene.get_children():
if i.is_in_group("portal"):
for i in portal_parent.get_children():
if i is Portal:
portals.append(i)
if GameGlobals.current_match[GameGlobals.current_round_id].size() == 0:
if GameGlobals.playlist[0][GameGlobals.current_round_id].size() == 0:
var next_round = GameGlobals.current_round_id + 1
if next_round <= (GameGlobals.current_match.size() - 1):
GameGlobals.current_round_id = next_round
@@ -22,19 +23,10 @@ func _ready() -> void:
var id = 0
for i in portals:
if id <= (GameGlobals.current_match[GameGlobals.current_round_id].size() - 1):
if GameGlobals.current_match[GameGlobals.current_round_id][id] != null:
var level_spawn = GameGlobals.current_match[GameGlobals.current_round_id][id]
i.index = id
i.active = true
i.scene_path = str(level_spawn["level_path"])
i.scene_name = str(level_spawn["level_name"])
i.level_gamemode = load(level_spawn["gamemode_path"])
else:
i.active = false
i.scene_name = "closed"
if id <= (current_round.size() - 1):
var level_spawn = current_round[id]
i.level_info = level_spawn
else:
i.active = false
i.scene_name = "closed"
id += 1
SaveLoad.save_user_data()

View File

@@ -1,12 +1,9 @@
extends Area3D
class_name Portal
@export var scene_path : String
@export var scene_name : String
@export var level_gamemode : gamemode
@export var scene_thumbnail : Texture2D
@export var hub_portal : bool = false
const ENEMY_WORKING_SCENE_ASYNCTEST = preload("res://scenes/enemy_working_scene_ASYNCTEST.tscn")
var level_info = {}
var timer_active = false
var active = true
var index : int
@@ -25,16 +22,10 @@ func _on_body_entered(body: Node3D) -> void:
if body.is_in_group("player"):
if active and timer_active:
active = false
var scene = load(level_info["level_path"]).instantiate()
var scene = ENEMY_WORKING_SCENE_ASYNCTEST.instantiate()
get_tree().current_scene.add_child(scene)
scene.global_position = global_position
#Set incoming gamemode
GameGlobals.loading_gamemode = level_gamemode
#Save data
if get_tree().current_scene.gamemode.load_save == true:
SaveLoad.save_game_data(get_tree().current_scene.get_name())
SaveLoad.save_user_data()
func _on_start_activation_timeout() -> void:

View File

@@ -38,3 +38,5 @@ class_name weapon_resource
@export var tracker_asset : Resource
@export_group("Hitscan Settings")
@export var hitscan_range : float = 100 ##for hitscan and melee weapons
var calculated_rigidbody_spawn_velocity = {}