tiger-cleanup #1
|
|
@ -1,5 +1,7 @@
|
|||
class_name InteractiveSprite extends Area3D
|
||||
|
||||
@export var interaction_ui: PackedScene = null
|
||||
|
||||
@onready var pass_to_actor: = $UiWrapper/UiSprite/SubViewport/CollectableUi
|
||||
@onready var wrapper := $UiWrapper
|
||||
@onready var ui: CollectableUi = $UiWrapper/UiSprite/SubViewport.get_child(0)
|
||||
|
|
@ -30,19 +32,18 @@ var has_mouse: bool = false
|
|||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
mouse_entered.connect(_on_mouse_entered)
|
||||
if interaction_ui:
|
||||
%CanvasLayer.add_child(interaction_ui.instantiate())
|
||||
|
||||
# Wire up the CollectableUi with the CanvasLayer for story playback
|
||||
if ui:
|
||||
ui.canvas_layer = %CanvasLayer
|
||||
# Find and wire the StoryPlayable if not already set
|
||||
if ui.story_playable == null:
|
||||
for child in %CanvasLayer.get_children():
|
||||
if child is StoryPlayable:
|
||||
ui.story_playable = child
|
||||
break
|
||||
# Connect playback_finished to restore player control
|
||||
ui.playback_finished.connect(_on_playback_finished)
|
||||
ui.canvas_layer = %CanvasLayer
|
||||
# Find and wire the StoryPlayable if not already set
|
||||
if ui.story_playable == null:
|
||||
for child in %CanvasLayer.get_children():
|
||||
if child is StoryPlayable:
|
||||
ui.story_playable = child
|
||||
break
|
||||
# Connect playback_finished to restore player control
|
||||
ui.playback_finished.connect(_on_playback_finished)
|
||||
|
||||
func _on_mouse_entered():
|
||||
if not Scenes.is_playing:
|
||||
|
|
|
|||
|
|
@ -1893,33 +1893,24 @@ omni_range = 16.8518
|
|||
|
||||
[node name="MaskMemento" parent="logic" instance=ExtResource("30_ypa88")]
|
||||
transform = Transform3D(-0.8630245, 0, 0.5051597, 0, 1, 0, -0.5051597, 0, -0.8630245, 0.0754588, 0.948372, 2.42068)
|
||||
|
||||
[node name="childhood" parent="logic/MaskMemento/CanvasLayer" index="0" instance=ExtResource("12_viwxf")]
|
||||
interaction_ui = ExtResource("12_viwxf")
|
||||
|
||||
[node name="ClothesMemento" parent="logic" instance=ExtResource("30_ypa88")]
|
||||
transform = Transform3D(0.8604294, 0, -0.5095667, 0, 1, 0, 0.5095667, 0, 0.8604294, 1.3658599, 1.17096, -0.6365988)
|
||||
|
||||
[node name="JuiJutsu" parent="logic/ClothesMemento/CanvasLayer" index="0" instance=ExtResource("12_x3dlb")]
|
||||
interaction_ui = ExtResource("12_x3dlb")
|
||||
|
||||
[node name="ComicMemento" parent="logic" instance=ExtResource("30_ypa88")]
|
||||
transform = Transform3D(0.9699434, 0, 0.24332686, 0, 1, 0, -0.24332686, 0, 0.9699434, 2.91664, 0.595014, -0.75655603)
|
||||
|
||||
[node name="voice_training" parent="logic/ComicMemento/CanvasLayer" index="0" instance=ExtResource("13_v3447")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
interaction_ui = ExtResource("13_v3447")
|
||||
|
||||
[node name="CeilingMemento" parent="logic" instance=ExtResource("30_ypa88")]
|
||||
transform = Transform3D(0.71489924, 0, 0.6992255, 0, 1, 0, -0.6992255, 0, 0.71489924, -0.13478619, 2.0720484, -0.42032808)
|
||||
|
||||
[node name="draven" parent="logic/CeilingMemento/CanvasLayer" index="0" instance=ExtResource("19_d3c7p")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
interaction_ui = ExtResource("19_d3c7p")
|
||||
|
||||
[node name="MindBoard" parent="logic" instance=ExtResource("30_ypa88")]
|
||||
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)
|
||||
|
||||
[node name="board" parent="logic/MindBoard/CanvasLayer" index="0" instance=ExtResource("4_gyjxx")]
|
||||
interaction_ui = ExtResource("4_gyjxx")
|
||||
|
||||
[node name="Door" parent="logic" instance=ExtResource("30_ypa88")]
|
||||
unique_name_in_owner = true
|
||||
|
|
@ -2183,10 +2174,3 @@ data = ExtResource("40_ea6x8")
|
|||
[connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"]
|
||||
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending_button" method="hide"]
|
||||
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending" method="show"]
|
||||
|
||||
[editable path="logic/MaskMemento"]
|
||||
[editable path="logic/ClothesMemento"]
|
||||
[editable path="logic/ComicMemento"]
|
||||
[editable path="logic/CeilingMemento"]
|
||||
[editable path="logic/MindBoard"]
|
||||
[editable path="logic/Door"]
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
extends CenterContainer
|
||||
class_name CollectableUi
|
||||
|
||||
@onready var canvas_layer: CanvasLayer = %CanvasLayer
|
||||
|
||||
## The StoryPlayable to play when this memento is collected.
|
||||
## Auto-discovered from the owner's %CanvasLayer, or can be set manually.
|
||||
@export var story_playable: StoryPlayable
|
||||
|
||||
## Reference to the CanvasLayer containing the story_playable.
|
||||
## Auto-discovered in _ready() if not set.
|
||||
var canvas_layer: CanvasLayer
|
||||
var story_playable: StoryPlayable
|
||||
|
||||
@export var has_stage: bool = false:
|
||||
set(focused):
|
||||
|
|
@ -154,21 +152,9 @@ func _ready() -> void:
|
|||
%CollectButton.pressed.connect(collect_memento)
|
||||
##TODO: add functions for remaining buttons
|
||||
|
||||
# Auto-discover story_playable and canvas_layer from scene hierarchy
|
||||
_discover_story_playable()
|
||||
|
||||
update_state()
|
||||
|
||||
|
||||
## Ensure canvas_layer is set if story_playable was set via export.
|
||||
## InteractiveSprite._ready() handles the main wiring for inherited scenes.
|
||||
func _discover_story_playable() -> void:
|
||||
if story_playable != null and canvas_layer == null:
|
||||
# story_playable set via export, find its parent CanvasLayer
|
||||
var parent = story_playable.get_parent()
|
||||
if parent is CanvasLayer:
|
||||
canvas_layer = parent
|
||||
|
||||
func _on_context_updated() -> void:
|
||||
%SkipButton.visible = State.allow_skipping
|
||||
%SummaryButton.visible = State.provide_summaries
|
||||
|
|
@ -252,15 +238,13 @@ func collect_memento() -> void:
|
|||
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
|
||||
|
||||
# Show the CanvasLayer so the story is visible full-screen
|
||||
if canvas_layer:
|
||||
canvas_layer.show()
|
||||
canvas_layer.show()
|
||||
|
||||
# Play the story
|
||||
await story_playable.play()
|
||||
|
||||
# Hide the CanvasLayer when done
|
||||
if canvas_layer:
|
||||
canvas_layer.hide()
|
||||
canvas_layer.hide()
|
||||
|
||||
# Restore mouse to captured mode (player controller will be given back control)
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@
|
|||
[sub_resource type="ViewportTexture" id="ViewportTexture_uwc8q"]
|
||||
viewport_path = NodePath("UiWrapper/UiSprite/SubViewport")
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_v8gd7"]
|
||||
height = 1.5
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_uwc8q"]
|
||||
size = Vector3(1, 1, 0.14892578)
|
||||
|
||||
[node name="Memento" type="Area3D" groups=["interactables"]]
|
||||
transform = Transform3D(0.9999994, 0, 0, 0, 1, 0, 0, 0, 0.9999994, 0, 0, 0)
|
||||
|
|
@ -59,8 +59,8 @@ region_enabled = true
|
|||
region_rect = Rect2(735.5, 0, 995.5, 1024)
|
||||
|
||||
[node name="HoverDetect" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(-4.3711356e-08, -0.9999997, 0, 0.9999993, -4.3711374e-08, 0, 0, 0, 0.99999976, 0, 0, 0)
|
||||
shape = SubResource("CapsuleShape3D_v8gd7")
|
||||
transform = Transform3D(-4.3711356e-08, -0.9999997, 0, 0.9999993, -4.3711374e-08, 0, 0, 0, 0.99999976, 0, 0, 0.060790993)
|
||||
shape = SubResource("BoxShape3D_uwc8q")
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
|
|
|||
Loading…
Reference in New Issue