misc
This commit is contained in:
parent
1c975fe554
commit
320c3d8932
|
|
@ -1,17 +1,18 @@
|
|||
class_name InteractiveSprite extends Area3D
|
||||
|
||||
@onready var pass_to_actor = $UiWrapper/UiSprite/SubViewport/Collectable_ui
|
||||
@onready var pass_to_actor = $UiWrapper/UiSprite/SubViewport/CollectableUi
|
||||
@onready var wrapper = $UiWrapper
|
||||
@onready var ui = $UiWrapper/UiSprite/SubViewport.get_child(0)
|
||||
@onready var ui: CollectableUi = $UiWrapper/UiSprite/SubViewport.get_child(0)
|
||||
@onready var viewport:= $UiWrapper/UiSprite/SubViewport
|
||||
|
||||
var revealed: bool = false:
|
||||
set(reveal):
|
||||
revealed = reveal
|
||||
if reveal:
|
||||
wrapper.show()
|
||||
ui.show()
|
||||
ui.reveal()
|
||||
else:
|
||||
ui.hide()
|
||||
ui.vanish()
|
||||
await get_tree().create_timer(1).timeout
|
||||
wrapper.hide()
|
||||
|
||||
|
|
@ -19,26 +20,29 @@ var has_mouse: bool = false
|
|||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
connect("mouse_entered", Callable(self, "_on_mouse_entered"))
|
||||
mouse_entered.connect(_on_mouse_entered)
|
||||
|
||||
func _on_mouse_entered():
|
||||
if not State.focus_locked:
|
||||
input_ray_pickable = false
|
||||
ui.collapsed = false
|
||||
ui.is_collapsed = false
|
||||
has_mouse = true
|
||||
|
||||
func _on_mouse_exited():
|
||||
print("mouse_exited")
|
||||
input_ray_pickable = true
|
||||
ui.collapsed = true
|
||||
ui.is_collapsed = true
|
||||
has_mouse = false
|
||||
|
||||
func reveal():
|
||||
revealed = true
|
||||
await get_tree().create_timer(5).timeout
|
||||
# TODO: needs to check if it has mouse or player collider!
|
||||
await get_tree().create_timer(10.0).timeout
|
||||
if not has_mouse:
|
||||
revealed = false
|
||||
|
||||
func collapse():
|
||||
_on_mouse_exited()
|
||||
revealed = false
|
||||
|
||||
func handle(event: InputEvent):
|
||||
viewport.push_input(event)
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ extends RoomTemplate
|
|||
|
||||
signal ini_room
|
||||
|
||||
@onready var mask_memento: Collectable_Ui = %MaskMemento.ui
|
||||
@onready var clothes_memento: Collectable_Ui = %ClothesMemento.ui
|
||||
@onready var comic_memento: Collectable_Ui = %ComicMemento.ui
|
||||
@onready var ceiling_memento: Collectable_Ui = %CeilingMemento.ui
|
||||
@onready var mask_memento: CollectableUi = %MaskMemento.ui
|
||||
@onready var clothes_memento: CollectableUi = %ClothesMemento.ui
|
||||
@onready var comic_memento: CollectableUi = %ComicMemento.ui
|
||||
@onready var ceiling_memento: CollectableUi = %CeilingMemento.ui
|
||||
@onready var board_trigger: InteractiveSprite = %MindBoard
|
||||
@onready var door_trigger: InteractiveSprite = %DoorTrigger
|
||||
@onready var card_board: CardBoard = %Board
|
||||
|
|
@ -13,12 +13,12 @@ signal ini_room
|
|||
|
||||
func start_room():
|
||||
save_game = State.active_save_game
|
||||
|
||||
##TODO: make sure this is done automagically!
|
||||
# Setting Memento user interface elemnts as collected based on the savegame.
|
||||
mask_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_CHILDHOOD > 0
|
||||
clothes_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_JUI_JUTSU > 0
|
||||
comic_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_VOICE_TRAINING > 0
|
||||
ceiling_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_DRAEVEN > 0
|
||||
#mask_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_CHILDHOOD > 0
|
||||
#clothes_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_JUI_JUTSU > 0
|
||||
#comic_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_VOICE_TRAINING > 0
|
||||
#ceiling_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_DRAEVEN > 0
|
||||
|
||||
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
ini_room.emit()
|
||||
|
|
@ -45,6 +45,8 @@ func pull_save_state(save: SaveGame) -> void:
|
|||
save.board_state = card_board.get_save_dict()
|
||||
|
||||
func _on_scene_finished(id: int, _repeat:bool):
|
||||
# need to properly implement saving and loading
|
||||
return
|
||||
save_game.mementos_complete &= 1 << id
|
||||
save_room()
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@ extends Area3D
|
|||
@onready var sprite: Sprite3D = $UiSprite
|
||||
@onready var viewport: SubViewport = $UiSprite/SubViewport
|
||||
|
||||
func _ready() -> void:
|
||||
return
|
||||
var viewport_tex := ViewportTexture.new()
|
||||
viewport_tex.viewport_path = "SubViewport" #viewport.get_path()
|
||||
print(viewport_tex.viewport_path)
|
||||
sprite.texture = viewport_tex
|
||||
|
||||
|
||||
func _process(_delta):
|
||||
if billboard:
|
||||
var camera = get_viewport().get_camera_3d()
|
||||
|
|
@ -13,8 +21,12 @@ func _process(_delta):
|
|||
|
||||
look_at(global_position - (camera.global_position - global_position), up)
|
||||
|
||||
func _unhandled_input(event):
|
||||
viewport.push_input(event)
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event is InputEventAction:
|
||||
print(event.action)
|
||||
|
||||
#func _unhandled_input(event):
|
||||
# viewport.push_input(event)
|
||||
|
||||
func _on_input_event(_camera: Camera3D, event: InputEvent, pos: Vector3, _normal: Vector3, _shape_idx: int):
|
||||
if not State.focus_locked:
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ class_name SaveGame extends Resource
|
|||
|
||||
@export var filepath: String
|
||||
@export var unique_save_name: String = "frame_of_mind_%s_%s" % [Time.get_date_string_from_system(), Time.get_time_string_from_system()]
|
||||
@export var current_room: State.rooms = 0
|
||||
@export var current_room: State.rooms = State.rooms.YOUTH
|
||||
@export var mementos_complete: int = 0
|
||||
@export var board_state: Dictionary = {}
|
||||
@export var thumbnail: Texture = preload("res://import/interface-elements/empty_save_slot.png")
|
||||
|
|
|
|||
|
|
@ -30,12 +30,12 @@ var currently_loading_room: String = "":
|
|||
ResourceLoader.load_threaded_request(path, "PackedScene")
|
||||
menu_animation["parameters/conditions/loading_done"] = false
|
||||
menu_animation["parameters/conditions/load_save"] = true
|
||||
currently_loading_room = path
|
||||
|
||||
else:
|
||||
menu_animation["parameters/conditions/loading_done"] = true
|
||||
menu_animation["parameters/conditions/load_save"] = false
|
||||
|
||||
currently_loading_room = path
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
currently_loading_room = youth_room_path
|
||||
|
|
@ -46,6 +46,7 @@ func _process(delta: float) -> void:
|
|||
if currently_loading_room != "":
|
||||
if ResourceLoader.load_threaded_get_status(currently_loading_room) == 3:
|
||||
current_room = ResourceLoader.load_threaded_get(youth_room_path).instantiate()
|
||||
print("add room")
|
||||
add_child(current_room)
|
||||
move_child(current_room, 0)
|
||||
currently_loading_room = ""
|
||||
|
|
@ -122,9 +123,11 @@ func get_room_path_from_id(id: State.rooms) -> String:
|
|||
return ending_path
|
||||
|
||||
func start_demo():
|
||||
load_save(SaveGame.new())
|
||||
#FIXME this causes the room to reload
|
||||
#load_save(SaveGame.new())
|
||||
$DemoMenue.hide()
|
||||
current_room.start_room()
|
||||
in_game = true
|
||||
|
||||
func pause_mode_changed():
|
||||
print(get_tree().paused)
|
||||
|
|
|
|||
Loading…
Reference in New Issue