Your current LSS Browsing data will be saved upon playing a custom level, and will return you to where you originally were, before play

This commit is contained in:
JHDev2006
2025-09-20 22:13:43 +01:00
parent 4cc6e938fc
commit 567e751065
9 changed files with 84 additions and 29 deletions

View File

@@ -240,7 +240,6 @@ func cleanup() -> void:
playing_level = !playing_level
play_pipe_transition = false
play_door_transition = false
Door.unlocked_doors = []
LevelPersistance.reset_states()
KeyItem.total_collected = 0
Global.get_node("GameHUD").visible = playing_level
@@ -656,8 +655,9 @@ func transition_to_sublevel(sub_lvl_idx := 0) -> void:
level_file = $LevelSaver.save_level(level_name, level_author, level_desc, difficulty)
LevelPersistance.reset_states()
sub_level_id = sub_lvl_idx
$LevelLoader.load_level(sub_lvl_idx)
Global.do_fake_transition(0.1)
await $LevelLoader.load_level(sub_lvl_idx)
if Settings.file.visuals.transition_animation == 0:
Global.do_fake_transition(0.1)
await get_tree().physics_frame
if (play_pipe_transition or play_door_transition) and play_transition:
parse_tiles()

View File

@@ -5,7 +5,10 @@ extends Node2D
@export_enum("0", "1", "2", "3", "4") var sublevel_id := 0
@export var locked := false
@export var locked := false:
set(value):
locked = value
pass
@export var start_locked := false
signal updated
@@ -23,6 +26,7 @@ static var same_scene_exiting_door: Door = null
func _ready() -> void:
if start_locked:
locked = true
await get_tree().physics_frame
if locked:
check_if_unlocked(false)
@@ -42,6 +46,7 @@ func _physics_process(_delta: float) -> void:
func check_if_unlocked(do_animation := true) -> void:
if locked:
print(unlocked_doors)
if unlocked_doors.has(door_id):
locked = false
$Sprite.play("Idle")
@@ -113,7 +118,6 @@ func player_enter(player: Player) -> void:
else:
same_scene_exiting_door = null
Global.level_editor.transition_to_sublevel(sublevel_id)
$Sprite.play("Idle")
can_enter = true
func freeze_player(player: Player) -> void:

View File

@@ -265,6 +265,7 @@ func reset_values() -> void:
PlayerGhost.idx = 0
Checkpoint.passed = false
Checkpoint.sublevel_id = 0
Door.unlocked_doors = []
Level.start_level_path = Level.get_scene_string(Global.world_num, Global.level_num)
LevelPersistance.reset_states()
Level.first_load = true