chore: refactor stage system, clear dead code
This commit is contained in:
parent
8dfbf4ef23
commit
dbde200416
|
|
@ -15,7 +15,7 @@ func _ready() -> void:
|
||||||
|
|
||||||
func start_room():
|
func start_room():
|
||||||
save_game = State.save_game
|
save_game = State.save_game
|
||||||
State.pass_stage_to(%PlayerController)
|
%PlayerController.has_stage = true
|
||||||
on_first_station()
|
on_first_station()
|
||||||
|
|
||||||
var left_first_station: bool = false
|
var left_first_station: bool = false
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ func start_room():
|
||||||
save_room())
|
save_room())
|
||||||
%PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
%PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
||||||
ini_room.emit()
|
ini_room.emit()
|
||||||
State.pass_stage_to(%PlayerController)
|
%PlayerController.has_stage = true
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
id = State.rooms.ADULTHOOD
|
id = State.rooms.ADULTHOOD
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ func _ready():
|
||||||
break
|
break
|
||||||
|
|
||||||
func _on_mouse_entered():
|
func _on_mouse_entered():
|
||||||
if not State.focus_locked:
|
if not Scenes.is_playing:
|
||||||
input_ray_pickable = false
|
input_ray_pickable = false
|
||||||
ui.is_collapsed = false
|
ui.is_collapsed = false
|
||||||
has_mouse = true
|
has_mouse = true
|
||||||
|
|
|
||||||
|
|
@ -19,17 +19,17 @@ func start_room():
|
||||||
if not Scenes.is_sequence_repeating(Scenes.id.YOUTH_DRAEVEN):
|
if not Scenes.is_sequence_repeating(Scenes.id.YOUTH_DRAEVEN):
|
||||||
# Play intro scene directly (not triggered by CollectableUi)
|
# Play intro scene directly (not triggered by CollectableUi)
|
||||||
await _play_intro_scene()
|
await _play_intro_scene()
|
||||||
State.pass_stage_to(%PlayerController)
|
|
||||||
else:
|
else:
|
||||||
State.pass_stage_to(%PlayerController)
|
|
||||||
%LightAnimation.lights_on()
|
%LightAnimation.lights_on()
|
||||||
|
|
||||||
|
# Give player control after intro (or immediately if repeating)
|
||||||
|
%PlayerController.has_stage = true
|
||||||
|
|
||||||
|
|
||||||
func _play_intro_scene() -> void:
|
func _play_intro_scene() -> void:
|
||||||
# The intro scene is auto-played, not triggered by CollectableUi
|
# The intro scene is auto-played, not triggered by CollectableUi
|
||||||
var intro_playable: StoryPlayable = $logic/ScenePlayer/draven
|
var intro_playable: StoryPlayable = $logic/ScenePlayer/draven
|
||||||
|
|
||||||
State.take_stage(self)
|
|
||||||
Scenes.begin_sequence(Scenes.id.YOUTH_DRAEVEN)
|
Scenes.begin_sequence(Scenes.id.YOUTH_DRAEVEN)
|
||||||
|
|
||||||
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
|
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
|
||||||
|
|
@ -39,7 +39,6 @@ func _play_intro_scene() -> void:
|
||||||
|
|
||||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||||
|
|
||||||
State.leave_stage(self)
|
|
||||||
Scenes.end_sequence(Scenes.id.YOUTH_DRAEVEN)
|
Scenes.end_sequence(Scenes.id.YOUTH_DRAEVEN)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ func create_bug_report():
|
||||||
Current Focus: %s
|
Current Focus: %s
|
||||||
Current Scene: %s
|
Current Scene: %s
|
||||||
Mementos: %s
|
Mementos: %s
|
||||||
""" % [OS.get_name(), OS.get_video_adapter_driver_info(), State.stage_list, State.current_room, Scenes.completed_sequences]
|
""" % [OS.get_name(), OS.get_video_adapter_driver_info(), Scenes.current_sequence, State.current_room, Scenes.completed_sequences]
|
||||||
|
|
||||||
|
|
||||||
#debug_text = debug_text.replace(" ", "%20").replace("\n", "%0A").replace("\t", "")
|
#debug_text = debug_text.replace(" ", "%20").replace("\n", "%0A").replace("\t", "")
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ func _input(event: InputEvent) -> void:
|
||||||
# viewport.push_input(event)
|
# viewport.push_input(event)
|
||||||
|
|
||||||
func _on_input_event(_camera: Camera3D, event: InputEvent, pos: Vector3, _normal: Vector3, _shape_idx: int):
|
func _on_input_event(_camera: Camera3D, event: InputEvent, pos: Vector3, _normal: Vector3, _shape_idx: int):
|
||||||
if not State.focus_locked:
|
if not Scenes.is_playing:
|
||||||
# Position of the event in Sprite3D local coordinates.
|
# Position of the event in Sprite3D local coordinates.
|
||||||
var texture_3d_position := sprite.get_global_transform().affine_inverse() * pos
|
var texture_3d_position := sprite.get_global_transform().affine_inverse() * pos
|
||||||
#if !is_zero_approx(texture_3d_position.z):
|
#if !is_zero_approx(texture_3d_position.z):
|
||||||
|
|
|
||||||
|
|
@ -408,7 +408,7 @@ func _input(event) -> void:
|
||||||
if not has_stage or not is_instance_valid(currently_active_node): return
|
if not has_stage or not is_instance_valid(currently_active_node): return
|
||||||
|
|
||||||
if event.is_action_pressed("ui_cancel"):
|
if event.is_action_pressed("ui_cancel"):
|
||||||
State.leave_stage(self)
|
has_stage = false
|
||||||
get_viewport().set_input_as_handled()
|
get_viewport().set_input_as_handled()
|
||||||
|
|
||||||
if event is InputEventMouse:
|
if event is InputEventMouse:
|
||||||
|
|
@ -568,7 +568,7 @@ func on_scene_skipped(i: int):
|
||||||
mementos_collected += i # FIXME: sometimes -1 is passed here, why?
|
mementos_collected += i # FIXME: sometimes -1 is passed here, why?
|
||||||
|
|
||||||
func claim_focus():
|
func claim_focus():
|
||||||
State.pass_stage_to(self)
|
has_stage = true
|
||||||
|
|
||||||
func find_first_free_card() -> int:
|
func find_first_free_card() -> int:
|
||||||
for i in range(dropzone.get_child_count()):
|
for i in range(dropzone.get_child_count()):
|
||||||
|
|
|
||||||
|
|
@ -59,30 +59,6 @@ signal cards_picked(cardnames: Array[String])
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
reset()
|
reset()
|
||||||
return
|
|
||||||
#
|
|
||||||
# #FIXME: can I make this less annoying somehow?
|
|
||||||
# if State.onready_room == State.rooms.YOUTH:
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.YOUTH_DRAEVEN, 2)
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.YOUTH_CHILDHOOD, 1)
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.YOUTH_VOICE_TRAINING, 2)
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.YOUTH_JUI_JUTSU, 1)
|
|
||||||
# elif State.onready_room == State.rooms.ADULTHOOD:
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.ADULT_DND, 1)
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.ADULT_VOLUNTARY, 1)
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.ADULT_CHRISTMAS, 1)
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.ADULT_EATING, 1)
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.ADULT_UNI, 1)
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.ADULT_THERAPY, 1)
|
|
||||||
# Scenes.sign_up_for_sequence(pick_cards, Scenes.id.ADULT_BURNOUT, 1)
|
|
||||||
# else:
|
|
||||||
# assert(false, "Not Implemented")
|
|
||||||
#
|
|
||||||
# if get_tree().root == self.get_parent():
|
|
||||||
# pick_cards(3, false)
|
|
||||||
# State.take_stage(self)
|
|
||||||
#
|
|
||||||
# reset()
|
|
||||||
|
|
||||||
func reset():
|
func reset():
|
||||||
card_anim_skipped = false
|
card_anim_skipped = false
|
||||||
|
|
@ -276,7 +252,6 @@ func pick_cards(id: int, repeat: bool):
|
||||||
if not repeat:
|
if not repeat:
|
||||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||||
fill_card_slots(id)
|
fill_card_slots(id)
|
||||||
#State.transition_stage_to(self, true)
|
|
||||||
selection_state = CARDS
|
selection_state = CARDS
|
||||||
if id == Scenes.id.YOUTH_DRAEVEN and not repeat:
|
if id == Scenes.id.YOUTH_DRAEVEN and not repeat:
|
||||||
$Meaning.play()
|
$Meaning.play()
|
||||||
|
|
|
||||||
|
|
@ -22,23 +22,6 @@ var canvas_layer: CanvasLayer
|
||||||
get_viewport().gui_release_focus()
|
get_viewport().gui_release_focus()
|
||||||
is_collapsed = true
|
is_collapsed = true
|
||||||
|
|
||||||
#@export var collapsed = true:
|
|
||||||
# set(collapse):
|
|
||||||
# if is_inside_tree() and not Engine.is_editor_hint():
|
|
||||||
# if State.reduce_motion:
|
|
||||||
# collapsed = false
|
|
||||||
# return
|
|
||||||
# if collapse and not collapsed:
|
|
||||||
# if is_inside_tree():
|
|
||||||
# _hide_buttons()
|
|
||||||
# collapsed = collapse
|
|
||||||
# elif not collapse and collapsed:
|
|
||||||
# if is_inside_tree():
|
|
||||||
# _show_buttons()
|
|
||||||
# collapsed = collapse
|
|
||||||
#
|
|
||||||
# if collapse and has_stage: State.leave_stage(self)
|
|
||||||
|
|
||||||
@export var scene: Scenes.id = Scenes.id.YOUTH_DRAEVEN:
|
@export var scene: Scenes.id = Scenes.id.YOUTH_DRAEVEN:
|
||||||
set(id):
|
set(id):
|
||||||
scene = id
|
scene = id
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,11 @@ func _process(_delta):
|
||||||
#emit_signal("ui_exited")
|
#emit_signal("ui_exited")
|
||||||
#dhas_entered = false
|
#dhas_entered = false
|
||||||
if Input.is_action_just_pressed("ui_accept"):
|
if Input.is_action_just_pressed("ui_accept"):
|
||||||
State.pass_stage_to(focus_ray.get_collider())
|
# Pass focus to the collider if it has has_stage property
|
||||||
|
var collider = focus_ray.get_collider()
|
||||||
|
if collider and "has_stage" in collider:
|
||||||
|
has_stage = false
|
||||||
|
collider.has_stage = true
|
||||||
else:
|
else:
|
||||||
camera.fov = base_fov / (1 + Input.get_action_raw_strength("zoom_in_controller"))
|
camera.fov = base_fov / (1 + Input.get_action_raw_strength("zoom_in_controller"))
|
||||||
|
|
||||||
|
|
@ -274,7 +278,7 @@ func play_scene(_id: int, _repeat: bool):
|
||||||
|
|
||||||
func scene_finished(_id, repeat: bool):
|
func scene_finished(_id, repeat: bool):
|
||||||
if repeat:
|
if repeat:
|
||||||
State.take_stage(self)
|
has_stage = true
|
||||||
|
|
||||||
func _on_bed_enter(_body):
|
func _on_bed_enter(_body):
|
||||||
if not (crouched or on_crouch_cooldown):
|
if not (crouched or on_crouch_cooldown):
|
||||||
|
|
|
||||||
|
|
@ -250,137 +250,9 @@ func _ready():
|
||||||
push_warning("Room initialised without a SaveGame. Creating proxy save.")
|
push_warning("Room initialised without a SaveGame. Creating proxy save.")
|
||||||
#TODO: make this a bit more clean maybe?
|
#TODO: make this a bit more clean maybe?
|
||||||
save_game = ResourceLoader.load("res://dev-util/debug_save.tres")
|
save_game = ResourceLoader.load("res://dev-util/debug_save.tres")
|
||||||
if "has_stage" in child:
|
|
||||||
take_stage(child)
|
|
||||||
break
|
|
||||||
music_volume = music_volume
|
music_volume = music_volume
|
||||||
|
|
||||||
|
|
||||||
#region focus handling (called staging to avoid name colisions)
|
|
||||||
|
|
||||||
# Stage list is a stack. Only the front (top) element "has" the stage.
|
|
||||||
# The stage manager sets has_stage on actors when they take/leave stage.
|
|
||||||
|
|
||||||
var stage_list: Array = []
|
|
||||||
var focus_locked: bool = false
|
|
||||||
|
|
||||||
|
|
||||||
# Helper to safely set has_stage on an actor
|
|
||||||
func _set_actor_stage(actor: Object, value: bool) -> void:
|
|
||||||
if is_instance_valid(actor) and "has_stage" in actor:
|
|
||||||
actor.has_stage = value
|
|
||||||
|
|
||||||
|
|
||||||
# Actor takes the stage (pushes to front of stack)
|
|
||||||
func take_stage(actor: Object) -> void:
|
|
||||||
print_debug(">>> take_stage(", actor, ")")
|
|
||||||
assert(not focus_locked, "Focus is locked, %s cannot take focus." % actor)
|
|
||||||
assert(is_instance_valid(actor), "Cannot take stage with invalid actor")
|
|
||||||
|
|
||||||
# Remove actor if already in list (to re-add at front)
|
|
||||||
if actor in stage_list:
|
|
||||||
stage_list.erase(actor)
|
|
||||||
|
|
||||||
# Remove stage from current front
|
|
||||||
if stage_list.size() > 0:
|
|
||||||
_set_actor_stage(stage_list.front(), false)
|
|
||||||
|
|
||||||
# Add new actor to front and give it stage
|
|
||||||
stage_list.push_front(actor)
|
|
||||||
_set_actor_stage(actor, true)
|
|
||||||
|
|
||||||
|
|
||||||
# Actor leaves the stage (removes from stack)
|
|
||||||
func leave_stage(actor: Object) -> void:
|
|
||||||
print_debug("<<< leave_stage(", actor, ")")
|
|
||||||
if not (actor in stage_list):
|
|
||||||
push_warning("Actor %s not in stage list, ignoring leave_stage call." % actor)
|
|
||||||
return
|
|
||||||
|
|
||||||
var was_front = false
|
|
||||||
if stage_list.size() > 0:
|
|
||||||
if stage_list.front() == actor:
|
|
||||||
was_front = true
|
|
||||||
|
|
||||||
# Remove stage from actor and remove from list
|
|
||||||
_set_actor_stage(actor, false)
|
|
||||||
stage_list.erase(actor)
|
|
||||||
|
|
||||||
# If actor was at front, give stage to new front
|
|
||||||
if was_front:
|
|
||||||
if stage_list.size() > 0:
|
|
||||||
_set_actor_stage(stage_list.front(), true)
|
|
||||||
|
|
||||||
|
|
||||||
# Pass stage to a new target (pushes target to front)
|
|
||||||
func pass_stage_to(target: Object, force: bool = false) -> void:
|
|
||||||
print_debug(">>> pass_stage_to(", target, ")")
|
|
||||||
|
|
||||||
if not is_instance_valid(target):
|
|
||||||
push_error("Cannot pass stage to invalid target")
|
|
||||||
return
|
|
||||||
|
|
||||||
if not "has_stage" in target:
|
|
||||||
push_error(target, " has no has_stage property")
|
|
||||||
return
|
|
||||||
|
|
||||||
if (focus_locked or get_tree().paused) and not force:
|
|
||||||
push_error(target, " requested focus while it was locked or tree is paused")
|
|
||||||
return
|
|
||||||
|
|
||||||
# If target is already at front, nothing to do
|
|
||||||
if stage_list.size() > 0 and stage_list.front() == target:
|
|
||||||
push_warning(target, " is already at front of stage. Ignoring.")
|
|
||||||
return
|
|
||||||
|
|
||||||
take_stage(target)
|
|
||||||
|
|
||||||
|
|
||||||
# Queue an actor for stage at a specific position (does not give it stage yet)
|
|
||||||
func queue_for_stage(target: Object, index: int = 1) -> void:
|
|
||||||
print_debug(">>> queue_for_stage(", target, ") at index ", index)
|
|
||||||
if target in stage_list:
|
|
||||||
stage_list.erase(target)
|
|
||||||
stage_list.insert(index, target)
|
|
||||||
|
|
||||||
|
|
||||||
# Currently focused element loses stage but remains in stack
|
|
||||||
func free_focus() -> void:
|
|
||||||
if focus_locked:
|
|
||||||
return
|
|
||||||
if stage_list.size() > 0:
|
|
||||||
_set_actor_stage(stage_list.front(), false)
|
|
||||||
|
|
||||||
|
|
||||||
# Reset stack to only contain the bottom element (original/root)
|
|
||||||
func reset_focus() -> void:
|
|
||||||
# Remove stage from current front
|
|
||||||
if stage_list.size() > 0:
|
|
||||||
_set_actor_stage(stage_list.front(), false)
|
|
||||||
|
|
||||||
# Keep only the last element
|
|
||||||
if stage_list.size() > 0:
|
|
||||||
var root = stage_list[-1]
|
|
||||||
stage_list = [root]
|
|
||||||
_set_actor_stage(root, true)
|
|
||||||
|
|
||||||
|
|
||||||
# Transfer stage from current front to a new actor (removes current front)
|
|
||||||
func transition_stage_to(target: Object, lock: bool = false) -> void:
|
|
||||||
print_debug(">>> transition_stage_to(", target, ")")
|
|
||||||
|
|
||||||
# Remove current front from stack entirely
|
|
||||||
if stage_list.size() > 0:
|
|
||||||
var old_front = stage_list.pop_front()
|
|
||||||
_set_actor_stage(old_front, false)
|
|
||||||
|
|
||||||
# Add new target
|
|
||||||
stage_list.push_front(target)
|
|
||||||
_set_actor_stage(target, true)
|
|
||||||
focus_locked = lock
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region play state
|
#region play state
|
||||||
|
|
||||||
enum rooms {
|
enum rooms {
|
||||||
|
|
|
||||||
|
|
@ -116,112 +116,4 @@ func _unhandled_input(event: InputEvent) -> void:
|
||||||
if event.is_action_pressed("ui_menu"):
|
if event.is_action_pressed("ui_menu"):
|
||||||
app_state = AppState.PLAY
|
app_state = AppState.PLAY
|
||||||
|
|
||||||
# if not get_tree().paused:
|
|
||||||
# get_tree().paused = true
|
|
||||||
# var state_machine := menu_animation["parameters/playback"]
|
|
||||||
# state_machine.travel("reveal_pause_menu")
|
|
||||||
# Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
|
||||||
# else:
|
|
||||||
# get_tree().paused = false
|
|
||||||
# var state_machine := menu_animation["parameters/playback"]
|
|
||||||
# state_machine.travel("start_game")
|
|
||||||
#
|
|
||||||
# if State.stage_list[0] is Player:
|
|
||||||
# Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
|
||||||
|
|
||||||
#func debug_youth():
|
|
||||||
# get_child(1).hide()
|
|
||||||
# get_child(2).hide()
|
|
||||||
# get_child(3).hide()
|
|
||||||
# get_child(0).get_ready()
|
|
||||||
# get_child(0).start()
|
|
||||||
#
|
|
||||||
#func _return_to_menu():
|
|
||||||
# State.active_save_game = null
|
|
||||||
#
|
|
||||||
# menu_animation["parameters/conditions/start_game"] = false
|
|
||||||
#
|
|
||||||
# State.pass_stage_to(main_menu)
|
|
||||||
#
|
|
||||||
# currently_loading_room = get_room_path_from_id(main_menu.save_game_handle.get_most_recent_save().current_room)
|
|
||||||
#
|
|
||||||
# menu_animation["parameters/conditions/return_to_menu"] = true
|
|
||||||
# await(get_tree().create_timer(0.5).timeout)
|
|
||||||
# menu_animation["parameters/conditions/return_to_menu"] = false
|
|
||||||
# _on_ready_to_unload()
|
|
||||||
#
|
|
||||||
#func load_save(save: SaveGame):
|
|
||||||
#
|
|
||||||
# if currently_loading_room != "":
|
|
||||||
# await(room_loaded)
|
|
||||||
#
|
|
||||||
# if save.current_room != current_room.id:
|
|
||||||
# # TODO Prevent race condition from appearing when save is loaded while room is still loading.
|
|
||||||
# currently_loading_room = get_room_path_from_id(save.current_room)
|
|
||||||
# await(room_loaded)
|
|
||||||
#
|
|
||||||
# menu_animation["parameters/conditions/start_game"] = true
|
|
||||||
#
|
|
||||||
# State.active_save_game = save
|
|
||||||
# in_game = true
|
|
||||||
# current_room.start_room()
|
|
||||||
#
|
|
||||||
#func _on_ready_to_unload():
|
|
||||||
# if get_child(0) is Node3D:
|
|
||||||
# get_child(0).free()
|
|
||||||
#
|
|
||||||
#func get_room_path_from_id(id: State.rooms) -> String:
|
|
||||||
# match id:
|
|
||||||
# State.rooms.YOUTH, State.rooms.NULL:
|
|
||||||
# return youth_room_path
|
|
||||||
# State.rooms.TRANSITION:
|
|
||||||
# return transition_room_path
|
|
||||||
# State.rooms.ADULTHOOD:
|
|
||||||
# return adulthood_room_path
|
|
||||||
# _:
|
|
||||||
# return ending_path
|
|
||||||
#
|
|
||||||
#func get_room_id_from_path(path: String) -> State.rooms:
|
|
||||||
# match path:
|
|
||||||
# youth_room_path:
|
|
||||||
# return State.rooms.YOUTH
|
|
||||||
# transition_room_path:
|
|
||||||
# return State.rooms.TRANSITION
|
|
||||||
# adulthood_room_path:
|
|
||||||
# return State.rooms.ADULTHOOD
|
|
||||||
# _:
|
|
||||||
# return State.rooms.NULL
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#func start_demo():
|
|
||||||
# #FIXME this causes the room to reload
|
|
||||||
# #load_save(SaveGame.new())
|
|
||||||
# current_room.start_room()
|
|
||||||
# in_game = true
|
|
||||||
#
|
|
||||||
#func pause_mode_changed():
|
|
||||||
# print_debug(get_tree().paused)
|
|
||||||
#
|
|
||||||
#var await_swap: bool = false
|
|
||||||
#func prepare_transition(scene_id: Scenes.id, _repeat):
|
|
||||||
# if scene_id == Scenes.id.TRANSITION:
|
|
||||||
# await_swap = true
|
|
||||||
# #FIXME: this does not need to be part of the sequence
|
|
||||||
# await(get_tree().process_frame)
|
|
||||||
# current_room.prepare_transition()
|
|
||||||
# if not _repeat:
|
|
||||||
# currently_loading_room = get_room_path_from_id(State.rooms.TRANSITION)
|
|
||||||
# else:
|
|
||||||
#
|
|
||||||
# currently_loading_room = get_room_path_from_id(State.rooms.ADULTHOOD)
|
|
||||||
#
|
|
||||||
#func transition(scene_id: Scenes.id, _repeat):
|
|
||||||
# if scene_id == Scenes.id.TRANSITION:
|
|
||||||
# State.reset_focus()
|
|
||||||
# await_swap = false
|
|
||||||
# await room_loaded
|
|
||||||
# if not _repeat:
|
|
||||||
# State.queue_for_stage(current_room)
|
|
||||||
# Scenes.end_current_sequence()
|
|
||||||
# else:
|
|
||||||
# State.pass_stage_to(current_room)
|
|
||||||
|
|
|
||||||
|
|
@ -10,15 +10,16 @@ func _ready() -> void:
|
||||||
pass_to_actor = get_child(current_tab)
|
pass_to_actor = get_child(current_tab)
|
||||||
|
|
||||||
func _on_tab_changed(tab_id: int):
|
func _on_tab_changed(tab_id: int):
|
||||||
var child_has_stage:bool = false
|
# Transfer has_stage to the new tab's child
|
||||||
for child in get_children():
|
for child in get_children():
|
||||||
if "has_stage" in child:
|
if "has_stage" in child:
|
||||||
if child.has_stage:
|
child.has_stage = false
|
||||||
child_has_stage = true
|
|
||||||
if child_has_stage:
|
|
||||||
State.transition_stage_to(get_child(tab_id))
|
|
||||||
|
|
||||||
pass_to_actor = get_child(tab_id)
|
var new_child = get_child(tab_id)
|
||||||
|
if "has_stage" in new_child:
|
||||||
|
new_child.has_stage = true
|
||||||
|
|
||||||
|
pass_to_actor = new_child
|
||||||
|
|
||||||
func _on_stage_left():
|
func _on_stage_left():
|
||||||
await get_tree().process_frame
|
await get_tree().process_frame
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,6 @@ var is_active:bool = false:
|
||||||
if is_node_ready() and active:
|
if is_node_ready() and active:
|
||||||
screenreader_check.grab_focus()
|
screenreader_check.grab_focus()
|
||||||
if not active and is_active:
|
if not active and is_active:
|
||||||
if has_stage:
|
|
||||||
State.leave_stage(self)
|
|
||||||
leave_stage.emit()
|
leave_stage.emit()
|
||||||
is_active = active
|
is_active = active
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,7 @@ func update_ui_from_state():
|
||||||
func _on_exit_button_pressed() -> void:
|
func _on_exit_button_pressed() -> void:
|
||||||
leave_stage.emit()
|
leave_stage.emit()
|
||||||
State.save_settings()
|
State.save_settings()
|
||||||
State.leave_stage(self)
|
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event.is_action_pressed("ui_cancel") and has_stage:
|
if event.is_action_pressed("ui_cancel") and has_stage:
|
||||||
State.leave_stage(self)
|
leave_stage.emit()
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,7 @@ func _on_exit_button_pressed() -> void:
|
||||||
State.save_settings()
|
State.save_settings()
|
||||||
has_unsaved_changes = false
|
has_unsaved_changes = false
|
||||||
leave_stage.emit()
|
leave_stage.emit()
|
||||||
State.leave_stage(self)
|
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event.is_action_pressed("ui_cancel") and has_stage:
|
if event.is_action_pressed("ui_cancel") and has_stage:
|
||||||
State.leave_stage(self)
|
leave_stage.emit()
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,7 @@ func update_ui_from_state():
|
||||||
func _on_exit_button_pressed() -> void:
|
func _on_exit_button_pressed() -> void:
|
||||||
leave_stage.emit()
|
leave_stage.emit()
|
||||||
State.save_settings()
|
State.save_settings()
|
||||||
State.leave_stage(self)
|
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event.is_action_pressed("ui_cancel") and has_stage:
|
if event.is_action_pressed("ui_cancel") and has_stage:
|
||||||
State.leave_stage(self)
|
leave_stage.emit()
|
||||||
|
|
|
||||||
|
|
@ -39,11 +39,10 @@ func update_ui_from_state():
|
||||||
func _on_exit_button_pressed() -> void:
|
func _on_exit_button_pressed() -> void:
|
||||||
leave_stage.emit()
|
leave_stage.emit()
|
||||||
State.save_settings()
|
State.save_settings()
|
||||||
State.leave_stage(self)
|
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event.is_action_pressed("ui_cancel") and has_stage:
|
if event.is_action_pressed("ui_cancel") and has_stage:
|
||||||
State.leave_stage(self)
|
leave_stage.emit()
|
||||||
|
|
||||||
func reset_all_stats():
|
func reset_all_stats():
|
||||||
Steam.resetAllStats(true)
|
Steam.resetAllStats(true)
|
||||||
|
|
|
||||||
|
|
@ -175,14 +175,12 @@ func save_settings():
|
||||||
|
|
||||||
func _on_exit_confirmed() -> void:
|
func _on_exit_confirmed() -> void:
|
||||||
leave_stage.emit()
|
leave_stage.emit()
|
||||||
State.leave_stage(self)
|
|
||||||
|
|
||||||
func _on_exit_button_pressed() -> void:
|
func _on_exit_button_pressed() -> void:
|
||||||
if has_changed:
|
if has_changed:
|
||||||
$Popup.show()
|
$Popup.show()
|
||||||
else:
|
else:
|
||||||
leave_stage.emit()
|
leave_stage.emit()
|
||||||
State.leave_stage(self)
|
|
||||||
|
|
||||||
func _on_confirm_button_pressed() -> void:
|
func _on_confirm_button_pressed() -> void:
|
||||||
ProjectSettings.set_setting("display/window/size/mode", window_mode)
|
ProjectSettings.set_setting("display/window/size/mode", window_mode)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue