fix: cardboard can now be clicked, still needs a 'play' methid
This commit is contained in:
parent
d29b1d8e78
commit
cc04eea1a8
|
|
@ -44,11 +44,9 @@ func _ready():
|
||||||
ui.canvas_layer = %CanvasLayer
|
ui.canvas_layer = %CanvasLayer
|
||||||
# Find and wire the StoryPlayable if not already set
|
# Find and wire the StoryPlayable if not already set
|
||||||
for child in %CanvasLayer.get_children():
|
for child in %CanvasLayer.get_children():
|
||||||
if child is StoryPlayable:
|
if child is Control:
|
||||||
ui.story_playable = child
|
ui.interaction_ui = child
|
||||||
break
|
break
|
||||||
if child is CardBoard:
|
|
||||||
ui.is_board = true
|
|
||||||
|
|
||||||
# Connect playback_finished to restore player control
|
# Connect playback_finished to restore player control
|
||||||
ui.playback_finished.connect(_on_playback_finished)
|
ui.playback_finished.connect(_on_playback_finished)
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,12 @@ extends RoomTemplate
|
||||||
|
|
||||||
@onready var board_trigger: InteractiveSprite = %MindBoard
|
@onready var board_trigger: InteractiveSprite = %MindBoard
|
||||||
@onready var door_trigger: InteractiveSprite = %Door
|
@onready var door_trigger: InteractiveSprite = %Door
|
||||||
@onready var card_board: CardBoard = %Board
|
|
||||||
@onready var card_picker: CardPicker = %Picker
|
@onready var card_picker: CardPicker = %Picker
|
||||||
@onready var ui: Control = %UI
|
@onready var ui: Control = %UI
|
||||||
|
|
||||||
|
# Is populated by child cardboard instead of onready.
|
||||||
|
var card_board: CardBoard
|
||||||
|
|
||||||
func start_room():
|
func start_room():
|
||||||
%UI.show()
|
%UI.show()
|
||||||
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
||||||
|
|
@ -42,26 +44,29 @@ func _play_intro_scene() -> void:
|
||||||
|
|
||||||
|
|
||||||
func get_ready():
|
func get_ready():
|
||||||
|
await get_tree().process_frame
|
||||||
|
|
||||||
pull_save_state(State.save_game)
|
pull_save_state(State.save_game)
|
||||||
|
|
||||||
card_board.initialise_from_save(save_game)
|
|
||||||
card_board.board_completed.connect(func():
|
card_board.board_completed.connect(func():
|
||||||
save_game.is_childhood_board_complete = true
|
save_game.is_childhood_board_complete = true
|
||||||
save_room())
|
save_room())
|
||||||
|
|
||||||
# Scene registration is now handled by youth_room_scene_player
|
card_picker.cards_picked.connect(card_board.populate_board)
|
||||||
|
|
||||||
ui.hide()
|
ui.hide()
|
||||||
$sfx/distant_rain.play()
|
$sfx/distant_rain.play()
|
||||||
$"sfx/rain on window".play()
|
$"sfx/rain on window".play()
|
||||||
self.show()
|
|
||||||
|
await get_tree().process_frame
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
printt(_ready, name)
|
||||||
super._ready()
|
super._ready()
|
||||||
id = State.rooms.YOUTH
|
id = State.rooms.YOUTH
|
||||||
Scenes.scene_finished.connect(_on_scene_finished)
|
Scenes.scene_finished.connect(_on_scene_finished)
|
||||||
card_picker.cards_picked.connect(card_board.populate_board)
|
|
||||||
|
|
||||||
|
|
||||||
func pull_save_state(save: SaveGame) -> void:
|
func pull_save_state(save: SaveGame) -> void:
|
||||||
|
|
|
||||||
|
|
@ -1711,11 +1711,6 @@ unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|
||||||
[node name="Board" parent="logic/UI" instance=ExtResource("4_gyjxx")]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
visible = false
|
|
||||||
layout_mode = 1
|
|
||||||
|
|
||||||
[node name="ending" parent="logic/UI" instance=ExtResource("5_kts6y")]
|
[node name="ending" parent="logic/UI" instance=ExtResource("5_kts6y")]
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|
@ -1900,6 +1895,7 @@ unique_name_in_owner = true
|
||||||
transform = Transform3D(-4.3711374e-08, 0, 0.9999984, 0, 1, 0, -0.9999984, 0, -4.3711374e-08, -0.907206, 1.17661, 1.74337)
|
transform = Transform3D(-4.3711374e-08, 0, 0.9999984, 0, 1, 0, -0.9999984, 0, -4.3711374e-08, -0.907206, 1.17661, 1.74337)
|
||||||
visible = false
|
visible = false
|
||||||
interaction_ui = ExtResource("4_gyjxx")
|
interaction_ui = ExtResource("4_gyjxx")
|
||||||
|
is_board = true
|
||||||
|
|
||||||
[node name="Door" parent="logic" instance=ExtResource("30_ypa88")]
|
[node name="Door" parent="logic" instance=ExtResource("30_ypa88")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,9 @@ signal board_completed
|
||||||
|
|
||||||
# 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():
|
func _ready():
|
||||||
|
print("Board Ready!", self, "room", State.room)
|
||||||
|
State.room.card_board = self
|
||||||
|
|
||||||
var size_reference := StickyNotePanel.new()
|
var size_reference := StickyNotePanel.new()
|
||||||
|
|
||||||
dropzone_size = get_viewport_rect().size - Vector2(dropzone_padding + size_reference.minimum_size.x, dropzone_padding)
|
dropzone_size = get_viewport_rect().size - Vector2(dropzone_padding + size_reference.minimum_size.x, dropzone_padding)
|
||||||
|
|
|
||||||
|
|
@ -241,6 +241,7 @@ func pick_cards(id: Scenes.id, repeat: bool):
|
||||||
current_scene_id = id
|
current_scene_id = id
|
||||||
print_debug("Reached actor %s in sequence %s. Is%s repeating." % [name, Scenes.id.keys()[id], " not" if repeat else ""])
|
print_debug("Reached actor %s in sequence %s. Is%s repeating." % [name, Scenes.id.keys()[id], " not" if repeat else ""])
|
||||||
if not repeat:
|
if not repeat:
|
||||||
|
hide()
|
||||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||||
fill_card_slots(id)
|
fill_card_slots(id)
|
||||||
reset()
|
reset()
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ signal scene_skipped(i: int)
|
||||||
|
|
||||||
## The StoryPlayable to play when this memento is collected.
|
## The StoryPlayable to play when this memento is collected.
|
||||||
## Auto-discovered from the owner's %CanvasLayer, or can be set manually.
|
## Auto-discovered from the owner's %CanvasLayer, or can be set manually.
|
||||||
var story_playable: StoryPlayable
|
var interaction_ui: Control
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -199,14 +199,7 @@ func collect_memento() -> void:
|
||||||
# Hide the collectable UI
|
# Hide the collectable UI
|
||||||
vanish()
|
vanish()
|
||||||
|
|
||||||
# Check if we have a story_playable to play
|
|
||||||
if story_playable == null:
|
|
||||||
push_warning("CollectableUi for scene %s has no story_playable assigned" % Scenes.id.keys()[scene])
|
|
||||||
if was_skipped:
|
|
||||||
scene_skipped.emit(-1)
|
|
||||||
is_collected = true
|
is_collected = true
|
||||||
playback_finished.emit()
|
|
||||||
return
|
|
||||||
|
|
||||||
# Signal that a scene is starting (for music, etc.)
|
# Signal that a scene is starting (for music, etc.)
|
||||||
Scenes.begin_sequence(scene)
|
Scenes.begin_sequence(scene)
|
||||||
|
|
@ -219,11 +212,12 @@ func collect_memento() -> void:
|
||||||
canvas_layer.show()
|
canvas_layer.show()
|
||||||
|
|
||||||
# Play the story
|
# Play the story
|
||||||
await story_playable.play()
|
await interaction_ui.play()
|
||||||
|
|
||||||
|
if interaction_ui is StoryPlayable:
|
||||||
# Pick the cards
|
# Pick the cards
|
||||||
var picker := State.room.get_node("%Picker") as CardPicker
|
var picker := State.room.get_node("%Picker") as CardPicker
|
||||||
await picker.pick_cards(story_playable.scene_id, false)
|
await picker.pick_cards(interaction_ui.scene_id, false)
|
||||||
|
|
||||||
# Hide the CanvasLayer when done
|
# Hide the CanvasLayer when done
|
||||||
canvas_layer.hide()
|
canvas_layer.hide()
|
||||||
|
|
|
||||||
|
|
@ -88,11 +88,10 @@ func _on_allow_skipping_toggled(button_pressed):
|
||||||
State.allow_skipping = button_pressed
|
State.allow_skipping = button_pressed
|
||||||
|
|
||||||
func hide():
|
func hide():
|
||||||
get_parent().get_child(0).get_ready()
|
var child_tween := create_tween()
|
||||||
var child_tween = create_tween()
|
|
||||||
child_tween.tween_property($CenterContainer, "modulate", Color(1, 1, 1, 0), .5)
|
child_tween.tween_property($CenterContainer, "modulate", Color(1, 1, 1, 0), .5)
|
||||||
await child_tween.finished
|
await child_tween.finished
|
||||||
var self_tween = create_tween()
|
var self_tween := create_tween()
|
||||||
self_tween.tween_property(self, "modulate", Color(1, 1, 1, 0), .5)
|
self_tween.tween_property(self, "modulate", Color(1, 1, 1, 0), .5)
|
||||||
await self_tween.finished
|
await self_tween.finished
|
||||||
self.visible = false
|
self.visible = false
|
||||||
|
|
|
||||||
|
|
@ -91,8 +91,8 @@ func _load_room(next_path: String) -> bool:
|
||||||
ResourceLoader.THREAD_LOAD_LOADED:
|
ResourceLoader.THREAD_LOAD_LOADED:
|
||||||
var next_scene := ResourceLoader.load_threaded_get(youth_room_path) as PackedScene
|
var next_scene := ResourceLoader.load_threaded_get(youth_room_path) as PackedScene
|
||||||
State.room = next_scene.instantiate() as RoomTemplate
|
State.room = next_scene.instantiate() as RoomTemplate
|
||||||
await get_tree().process_frame
|
|
||||||
get_tree().root.add_child(State.room)
|
get_tree().root.add_child(State.room)
|
||||||
|
await get_tree().process_frame
|
||||||
await State.room.get_ready()
|
await State.room.get_ready()
|
||||||
%Loading.stop()
|
%Loading.stop()
|
||||||
await curtain.hide()
|
await curtain.hide()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue