6 Commits

Author SHA1 Message Date
f63c9fa141 update audio player 2026-07-02 22:49:26 +02:00
498115107e update audio player 2026-07-02 22:29:22 +02:00
922c771185 add tooltips and fix stuff 2026-07-02 21:19:56 +02:00
3512145a66 fix new main menu 2026-07-01 22:29:55 +02:00
c22fffdfc1 fix input and delete dead code 2026-07-01 19:40:53 +02:00
238dd4a124 bind new inputs 2026-07-01 19:09:56 +02:00
91 changed files with 2105 additions and 555 deletions

View File

@@ -84,9 +84,12 @@ var wagon_instances: Array[Node3D] = []
var wagon_progress_offsets: Array[float] = []
var _pending_steam_distance_km: float = 0.0
var _initial_is_inmotion: bool = true
var _is_photo_mode_active: bool = false
func _ready() -> void:
randomize()
GameState.on_enable_photo_mode_request.connect(func(): _is_photo_mode_active = true)
GameState.on_disable_photo_mode_request.connect(func(): _is_photo_mode_active = false)
_cache_environment_config()
_initial_is_inmotion = is_inmotion
@@ -285,9 +288,12 @@ func _plan_stops() -> void:
stops_position.append(data["position"])
func _input(event: InputEvent) -> void:
if _is_photo_mode_active: return
if event is InputEventKey and event.pressed and not event.echo:
if event.keycode == KEY_T:
_goto_next_stop()
if event.is_action_pressed("train_horn"):
UIEvents.toot_toot.emit(true)
#elif event.keycode == KEY_F:
#_test_manual_fireworks()
@@ -322,12 +328,12 @@ func _physics_process(delta: float) -> void:
train_move(delta)
func input_controls_management(delta: float) -> void:
if not is_inmotion: return
if Input.is_action_pressed("ui_up"):
if not is_inmotion or _is_photo_mode_active: return
if Input.is_action_pressed("train_speed_up"):
train_speed += manual_acceleration * delta
elif Input.is_action_pressed("ui_down"):
elif Input.is_action_pressed("train_speed_down"):
train_speed -= manual_acceleration * delta
elif Input.is_action_pressed("ui_text_backspace"):
elif Input.is_action_pressed("train_stop"):
train_speed = 0
train_speed = clamp(train_speed, speed_min, speed_max)

View File

@@ -24,8 +24,6 @@ signal camera_changed(camera: Camera3D)
var is_zoomed : bool = false
var zoom_tween : Tween
var is_moving_enabled : bool = true
var is_cinematic_mode : bool = false
var cinematic_timer : float = 0.0
var cinematic_index : int = 0
@@ -34,6 +32,8 @@ var array_camera : Array[Camera3D] = []
var initial_pivot_transformation : Transform3D
func _ready():
UIEvents.change_camera_request.connect(on_change_camera_request)
if pivot:
initial_pivot_transformation = pivot.transform
@@ -46,111 +46,90 @@ func _ready():
if camera_iso:
set_camera(camera_iso)
func sync_zoom(new_size: float, new_fov: float, photo_is_zoomed: bool = false) -> void:
if camera_iso:
if zoom_tween and zoom_tween.is_valid():
zoom_tween.kill()
camera_iso.size = new_size
camera_iso.fov = new_fov
is_zoomed = photo_is_zoomed
var target_size = zoom_size if is_zoomed else normal_size
if not is_equal_approx(camera_iso.size, target_size):
zoom_tween = create_tween()
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
zoom_tween.tween_property(camera_iso, "size", target_size, zoom_time)
zoom_tween.parallel().tween_property(camera_iso, "fov", target_size, zoom_time)
func set_camera(camera: Camera3D):
camera.make_current()
emit_signal("camera_changed", camera)
func _input(event):
if event is InputEventKey and event.pressed and not event.echo:
func _process(delta: float) -> void:
var current_cam = get_viewport().get_camera_3d()
var is_photo_mode = current_cam != null and not current_cam in array_camera
#R-> Reset isometric camera
if event.keycode == KEY_R and is_moving_enabled and pivot:
pivot.transform = initial_pivot_transformation
print("Isometric camera resetted!")
return
#C-> Toggle cinematic mode
if event.keycode == KEY_C:
is_cinematic_mode = !is_cinematic_mode
if is_cinematic_mode:
if not is_photo_mode:
if is_cinematic_mode and array_camera.size() > 0:
cinematic_timer += delta
if cinematic_timer >= change_camera_time:
cinematic_timer = 0.0
for i in range(array_camera.size()):
if array_camera[i].current:
cinematic_index = i
break
print("Cinematic Mode: enabled")
else:
print("Cinematic Mode: disabled")
return
cinematic_index = (cinematic_index + 1) % array_camera.size()
var next_cam = array_camera[cinematic_index]
set_camera(next_cam)
#Z-> soft zoom
if event.keycode == KEY_Z and camera_iso:
is_zoomed = !is_zoomed
var target_size = zoom_size if is_zoomed else normal_size
if zoom_tween and zoom_tween.is_valid():
zoom_tween.kill()
zoom_tween = create_tween()
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
zoom_tween.tween_property(camera_iso, "size", target_size, zoom_time)
return
#manual controls (1-5)
var manual_action = false
if event.keycode == KEY_1 and camera_iso:
set_camera(camera_iso)
is_moving_enabled = true
manual_action = true
elif event.keycode == KEY_2 and camera_front:
set_camera(camera_front)
is_moving_enabled = false
manual_action = true
elif event.keycode == KEY_3 and camera_side1:
set_camera(camera_side1)
is_moving_enabled = false
manual_action = true
elif event.keycode == KEY_4 and camera_side2:
set_camera(camera_side2)
is_moving_enabled = false
manual_action = true
elif event.keycode == KEY_5 and camera_top:
set_camera(camera_top)
is_moving_enabled = false
manual_action = true
if manual_action and is_cinematic_mode:
is_cinematic_mode = false
print("Cinematic Mode: Disabled")
if is_moving_enabled and pivot:
if event is InputEventMouseMotion and Input.is_mouse_button_pressed(MOUSE_BUTTON_RIGHT):
pivot.rotate_y(deg_to_rad(-event.relative.x * rotation_speed))
func _process(delta):
if is_cinematic_mode and array_camera.size() > 0:
cinematic_timer += delta
if cinematic_timer >= change_camera_time:
cinematic_timer = 0.0
cinematic_index = (cinematic_index + 1) % array_camera.size()
var next_cam = array_camera[cinematic_index]
set_camera(next_cam)
is_moving_enabled = (next_cam == camera_iso)
if not is_moving_enabled or pivot == null:
if camera_iso == null or current_cam != camera_iso:
return
var input_dir = Vector3.ZERO
if Input.is_key_pressed(KEY_W): input_dir.z -= 1
if Input.is_key_pressed(KEY_S): input_dir.z += 1
if Input.is_key_pressed(KEY_A): input_dir.x -= 1
if Input.is_key_pressed(KEY_D): input_dir.x += 1
if Input.is_action_just_pressed("zoom_in"):
if is_zoomed == false:
return
is_zoomed = false
var target_size = normal_size
if input_dir != Vector3.ZERO:
input_dir = input_dir.normalized()
if zoom_tween and zoom_tween.is_valid():
zoom_tween.kill()
var forward = pivot.transform.basis.z
var right = pivot.transform.basis.x
forward.y = 0
right.y = 0
zoom_tween = create_tween()
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
zoom_tween.tween_property(camera_iso, "size", target_size, zoom_time)
zoom_tween.parallel().tween_property(camera_iso, "fov", target_size, zoom_time)
forward = forward.normalized()
right = right.normalized()
elif Input.is_action_just_pressed("zoom_out"):
if is_zoomed == true:
return
is_zoomed = true
var target_size = zoom_size
var motion = (forward * input_dir.z + right * input_dir.x)
pivot.position += motion * move_speed * delta
if zoom_tween and zoom_tween.is_valid():
zoom_tween.kill()
zoom_tween = create_tween()
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
zoom_tween.tween_property(camera_iso, "size", target_size, zoom_time)
zoom_tween.parallel().tween_property(camera_iso, "fov", target_size, zoom_time)
func on_change_camera_request(camera_index: int) -> void:
var next_cam = array_camera[camera_index]
set_camera(next_cam)
func _unhandled_input(event: InputEvent) -> void:
var current_cam = get_viewport().get_camera_3d()
var is_photo_mode = current_cam != null and not current_cam in array_camera
if is_photo_mode:
return
if event is InputEventKey and event.pressed and not event.echo:
match event.keycode:
KEY_1:
if array_camera.size() > 0: set_camera(array_camera[0])
KEY_2:
if array_camera.size() > 1: set_camera(array_camera[1])
KEY_3:
if array_camera.size() > 2: set_camera(array_camera[2])
KEY_4:
if array_camera.size() > 3: set_camera(array_camera[3])
KEY_5:
if array_camera.size() > 4: set_camera(array_camera[4])

Binary file not shown.

View File

@@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://d2vn50t5k7xbk"
path="res://.godot/imported/LTMakeup-Regular.otf-3aec1bac2ab646ee8d91792b37ffa3b8.fontdata"
[deps]
source_file="res://core/font/LTMakeup-Regular.otf"
dest_files=["res://.godot/imported/LTMakeup-Regular.otf-3aec1bac2ab646ee8d91792b37ffa3b8.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

View File

@@ -0,0 +1,6 @@
[gd_resource type="Theme" format=3 uid="uid://cwqdjc6t31a8i"]
[ext_resource type="FontFile" uid="uid://d2vn50t5k7xbk" path="res://core/font/LTMakeup-Regular.otf" id="1_itbcg"]
[resource]
default_font = ExtResource("1_itbcg")

View File

@@ -1,5 +1,7 @@
extends Control
signal settings_requested
const TRAIN_WHISTLE_STREAM: AudioStream = preload("res://tgcc/train/sounds/train_whistle2.mp3")
@onready var play_button: Button = $%PlayButton
@@ -18,6 +20,7 @@ func _ready() -> void:
save_button.pressed.connect(_on_save_button_pressed)
quit_button.pressed.connect(_on_quit_button_pressed)
resume_button.pressed.connect(func(): UIEvents.resume_game_requested.emit())
settings_button.pressed.connect(func(): settings_requested.emit())
func _on_play_button_pressed() -> void:
_play_train_horn()

View File

@@ -4,7 +4,7 @@ extends Control
@onready var option_menu: Control = $%OptionMenu
func _ready() -> void:
option_menu.settings_button.pressed.connect(_on_settings_button_pressed)
option_menu.settings_requested.connect(_on_settings_button_pressed)
func _on_settings_button_pressed() -> void:

47
core/main_menu/sign.gd Normal file
View File

@@ -0,0 +1,47 @@
extends Node3D
@export var sub_viewport: SubViewport
@onready var quad_cartello = $%QuadSign
@onready var coll_shape = $%CollisionShape3D
func _ready() -> void:
sub_viewport.transparent_bg = true
var mat = StandardMaterial3D.new()
mat.albedo_texture = sub_viewport.get_texture()
mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
#fix color
sub_viewport.use_hdr_2d = false
mat.albedo_texture_force_srgb = true
mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
mat.albedo_color = Color(0.85, 0.85, 0.85, 1.0)
quad_cartello.material_override = mat
coll_shape.shape.size = Vector3(2.0, 2.0, 2.0)
coll_shape.position.z = 0.0
func _on_area_3d_input_event(camera: Node, event: InputEvent, event_position: Vector3, normal: Vector3, shape_idx: int) -> void:
if event is InputEventMouse:
var local_cam = quad_cartello.to_local(camera.global_position)
var local_hit = quad_cartello.to_local(event_position)
var ray_dir = (local_hit - local_cam).normalized()
if abs(ray_dir.z) < 0.0001: return
var t = -local_cam.z / ray_dir.z
var exact_pos = local_cam + ray_dir * t
var uv_x = exact_pos.x + 0.5
var uv_y = 0.5 - exact_pos.y
if uv_x < 0 or uv_x > 1 or uv_y < 0 or uv_y > 1:
return
var viewport_pos = Vector2(uv_x * sub_viewport.size.x, uv_y * sub_viewport.size.y)
var ev2d = event.duplicate()
ev2d.position = viewport_pos
ev2d.global_position = viewport_pos
sub_viewport.push_input(ev2d)

View File

@@ -0,0 +1 @@
uid://duiqgeista384

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dlp62v48tori0"
path="res://.godot/imported/audio_player_background.png-1675fa2e75631748d14a166a21ea483f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/audio_player_background.png"
dest_files=["res://.godot/imported/audio_player_background.png-1675fa2e75631748d14a166a21ea483f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bgrmy57xhg2gj"
path="res://.godot/imported/audio_player_empty.png-1b3b0e9bc78b192baac137114b08b7cd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/audio_player_empty.png"
dest_files=["res://.godot/imported/audio_player_empty.png-1b3b0e9bc78b192baac137114b08b7cd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://s8pp2i6bjkps"
path="res://.godot/imported/audio_player_wheel.png-5a27c557d9f373382107e3f2bececfee.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/audio_player_wheel.png"
dest_files=["res://.godot/imported/audio_player_wheel.png-5a27c557d9f373382107e3f2bececfee.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -1,53 +1,91 @@
extends Control
@export var radio: Radio
@export var scroll_speed: float = 60.0
@export var wheel_speed: float = -2.0
@onready var track_label: Label = $%TrackLabel
@onready var prev_track_icon_button: Button = $%PrevTrackIconButton
@onready var play_pause_icon_button: Button = $%PlayPauseIconButton
@onready var next_track_icon_button: Button = $%NextTrackIconButton
@onready var increase_volume_icon_button: Button = $%IncreaseVolumeIconButton
@onready var decrease_volume_icon_button: Button = $%DecreaseVolumeIconButton
@onready var prev_track_button: Button = $%PrevTrackButton
@onready var play_track_button: Button = $%PlayTrackButton
@onready var pause_track_button: Button = $%PauseTrackButton
@onready var next_track_button: Button = $%NextTrackButton
@onready var increase_volume_button: Button = $%IncreaseVolumeButton
@onready var decrease_volume_button: Button = $%DecreaseVolumeButton
@onready var left_wheel: TextureRect = $%LeftWheel
@onready var right_wheel: TextureRect = $%RightWheel
@onready var background: TextureRect = $%Background
func _ready() -> void:
prev_track_icon_button.pressed.connect(_on_prev_track_icon_button_pressed)
play_pause_icon_button.pressed.connect(_on_play_pause_icon_button_pressed)
next_track_icon_button.pressed.connect(_on_next_track_icon_button_pressed)
increase_volume_icon_button.pressed.connect(_on_increase_volume_icon_button_pressed)
decrease_volume_icon_button.pressed.connect(_on_decrease_volume_icon_button_pressed)
prev_track_button.pressed.connect(_on_prev_track_button_pressed)
play_track_button.pressed.connect(_on_play_track_button_pressed)
pause_track_button.pressed.connect(_on_pause_track_button_pressed)
next_track_button.pressed.connect(_on_next_track_button_pressed)
increase_volume_button.pressed.connect(_on_increase_volume_button_pressed)
decrease_volume_button.pressed.connect(_on_decrease_volume_button_pressed)
if radio:
radio.track_changed.connect(_on_radio_track_changed)
if radio.stream and radio.stream.resource_path:
track_label.text = radio.stream.resource_path.get_file().get_basename().capitalize()
play_pause_icon_button.image = play_pause_icon_button.images[1]
else:
track_label.text = "Unknown Track"
func _process(delta: float) -> void:
if radio and radio.playing and not radio.stream_paused:
if left_wheel:
left_wheel.rotation += wheel_speed * delta
if right_wheel:
right_wheel.rotation += wheel_speed * delta
if track_label and track_label.get_parent_control():
track_label.position.x += scroll_speed * delta
var text_width = track_label.get_minimum_size().x
var text_left_edge = track_label.position.x + (track_label.size.x - text_width) / 2.0
if text_left_edge > track_label.get_parent_control().size.x:
track_label.position.x = -(track_label.size.x + text_width) / 2.0
func _on_radio_track_changed(track_name: String) -> void:
track_label.text = track_name
play_pause_icon_button.image = play_pause_icon_button.images[1]
func _on_prev_track_icon_button_pressed() -> void:
func _play_button_tween() -> void:
TweenFX.stop_all(background)
background.scale = Vector2.ONE
background.rotation = 0.0
background.modulate.a = 1.0
TweenFX.press_rotate(background)
func _on_prev_track_button_pressed() -> void:
if radio:
radio.prev_track()
_play_button_tween()
func _on_play_pause_icon_button_pressed() -> void:
func _on_play_track_button_pressed() -> void:
if radio:
if !radio.stream:
radio.next_track()
else:
radio.unpause()
_play_button_tween()
func _on_pause_track_button_pressed() -> void:
if radio:
if radio.stream:
radio.toggle_pause()
else:
radio.next_track()
var play_pause_index = 0 if radio.stream_paused else 1
play_pause_icon_button.image = play_pause_icon_button.images[play_pause_index]
radio.pause()
_play_button_tween()
func _on_next_track_icon_button_pressed() -> void:
func _on_next_track_button_pressed() -> void:
if radio:
radio.next_track()
_play_button_tween()
func _on_increase_volume_icon_button_pressed() -> void:
func _on_increase_volume_button_pressed() -> void:
var current_vol = AudioManager.get_audio_bus_volume("Music", 1.0)
AudioManager.set_audio_bus_volume("Music", current_vol + 0.1)
_play_button_tween()
func _on_decrease_volume_icon_button_pressed() -> void:
func _on_decrease_volume_button_pressed() -> void:
var current_vol = AudioManager.get_audio_bus_volume("Music", 1.0)
AudioManager.set_audio_bus_volume("Music", current_vol - 0.1)
_play_button_tween()

View File

@@ -1,132 +1,174 @@
[gd_scene format=3 uid="uid://dg4f3v0ukpmay"]
[ext_resource type="Script" uid="uid://c4kekqicrv4m8" path="res://core/main_scene_ui/audio_player.gd" id="1_i2mrl"]
[ext_resource type="PackedScene" uid="uid://2tqofxxxnvhv" path="res://core/main_scene_ui/icon_button.tscn" id="1_ucnyb"]
[ext_resource type="Theme" uid="uid://bg8megpn77mod" path="res://core/font/main_theme.tres" id="2_0koyu"]
[ext_resource type="Texture2D" uid="uid://cqx45c744325t" path="res://core/main_scene_ui/assets/button_audio_previous.png" id="3_netjv"]
[ext_resource type="Texture2D" uid="uid://bdnevc7ewu5qe" path="res://core/main_scene_ui/assets/button_audio_play.png" id="4_urwwp"]
[ext_resource type="Texture2D" uid="uid://d2ft1kea45hec" path="res://core/main_scene_ui/assets/button_audio_next.png" id="5_0koyu"]
[ext_resource type="Texture2D" uid="uid://vx7wa6afj4ri" path="res://core/main_scene_ui/assets/button_audio_pause.png" id="5_urwwp"]
[ext_resource type="Texture2D" uid="uid://b0mir57askv7j" path="res://core/main_scene_ui/assets/button_audio_on.png" id="6_xv7rp"]
[ext_resource type="Texture2D" uid="uid://dbxhxvvg4s8ru" path="res://core/main_scene_ui/assets/button_audio_off.png" id="7_7ib2x"]
[ext_resource type="Texture2D" uid="uid://dlp62v48tori0" path="res://core/main_scene_ui/assets/audio_player_background.png" id="3_e87kc"]
[ext_resource type="Texture2D" uid="uid://s8pp2i6bjkps" path="res://core/main_scene_ui/assets/audio_player_wheel.png" id="4_n5r1o"]
[ext_resource type="Texture2D" uid="uid://bgrmy57xhg2gj" path="res://core/main_scene_ui/assets/audio_player_empty.png" id="10_xv7rp"]
[node name="AudioPlayer" type="Control" unique_id=425192018]
custom_minimum_size = Vector2(241, 179)
layout_mode = 3
anchor_right = 0.15208334
anchor_bottom = 0.10925926
anchor_right = 0.12552084
anchor_bottom = 0.16574074
offset_right = -241.00002
offset_bottom = -179.0
pivot_offset_ratio = Vector2(0.5, 0.5)
mouse_filter = 2
script = ExtResource("1_i2mrl")
scroll_speed = 30.0
metadata/_edit_use_anchors_ = true
[node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=1300382168]
[node name="TextureRect" type="TextureRect" parent="." unique_id=1764222864]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
pivot_offset_ratio = Vector2(0.5, 0.5)
mouse_filter = 2
texture = ExtResource("10_xv7rp")
metadata/_edit_use_anchors_ = true
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer" unique_id=1923985665]
layout_mode = 2
metadata/_edit_use_anchors_ = true
[node name="TrackLabel" type="Label" parent="HBoxContainer/VBoxContainer" unique_id=1430240022]
[node name="Background" type="TextureRect" parent="." unique_id=1772744681]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
pivot_offset_ratio = Vector2(0.5, 0.5)
mouse_filter = 2
texture = ExtResource("3_e87kc")
stretch_mode = 2
metadata/_edit_use_anchors_ = true
[node name="LeftWheel" type="TextureRect" parent="Background" unique_id=1719200441]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -51.5
offset_top = -47.5
offset_right = -20.5
offset_bottom = -16.5
grow_horizontal = 2
grow_vertical = 2
pivot_offset_ratio = Vector2(0.5, 0.5)
texture = ExtResource("4_n5r1o")
stretch_mode = 2
[node name="RightWheel" type="TextureRect" parent="Background" unique_id=960520776]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 18.5
offset_top = -47.5
offset_right = 49.5
offset_bottom = -16.5
grow_horizontal = 2
grow_vertical = 2
pivot_offset_ratio = Vector2(0.5, 0.5)
texture = ExtResource("4_n5r1o")
stretch_mode = 2
[node name="DisplayContainer" type="Control" parent="." unique_id=1280352652]
clip_contents = true
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -85.5
offset_top = -84.0
offset_right = 83.5
offset_bottom = -52.0
grow_horizontal = 2
grow_vertical = 0
[node name="TrackLabel" type="Label" parent="DisplayContainer" unique_id=441671750]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2_0koyu")
theme_override_font_sizes/font_size = 24
theme_override_font_sizes/font_size = 12
text = "Uknown Track"
horizontal_alignment = 1
vertical_alignment = 1
[node name="IconButtonsRow" type="HBoxContainer" parent="HBoxContainer/VBoxContainer" unique_id=1734127019]
[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1829043318]
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -40.0
offset_bottom = -8.0
grow_horizontal = 2
grow_vertical = 0
mouse_filter = 2
theme_override_constants/margin_left = 24
theme_override_constants/margin_right = 24
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer" unique_id=1300382168]
layout_mode = 2
size_flags_horizontal = 0
mouse_filter = 2
theme_override_constants/separation = 0
alignment = 1
[node name="PrevTrackIconButton" parent="HBoxContainer/VBoxContainer/IconButtonsRow" unique_id=1750448019 instance=ExtResource("1_ucnyb")]
[node name="PrevTrackButton" type="Button" parent="MarginContainer/HBoxContainer" unique_id=1132927190]
unique_name_in_owner = true
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
image = ExtResource("3_netjv")
size_flags_horizontal = 4
flat = true
[node name="Texture" parent="HBoxContainer/VBoxContainer/IconButtonsRow/PrevTrackIconButton" index="0" unique_id=1071359322]
anchors_preset = -1
offset_left = 116.66667
offset_top = 131.3789
offset_right = -116.666664
offset_bottom = -131.3789
texture = ExtResource("3_netjv")
metadata/_edit_use_anchors_ = true
[node name="PlayPauseIconButton" parent="HBoxContainer/VBoxContainer/IconButtonsRow" unique_id=1533336956 instance=ExtResource("1_ucnyb")]
[node name="PlayTrackButton" type="Button" parent="MarginContainer/HBoxContainer" unique_id=445406105]
unique_name_in_owner = true
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
image = ExtResource("4_urwwp")
images = Array[Texture]([ExtResource("4_urwwp"), ExtResource("5_urwwp")])
size_flags_horizontal = 5
flat = true
[node name="Texture" parent="HBoxContainer/VBoxContainer/IconButtonsRow/PlayPauseIconButton" index="0" unique_id=1071359322]
anchors_preset = -1
offset_left = 116.66667
offset_top = 131.3789
offset_right = -116.666664
offset_bottom = -131.3789
texture = ExtResource("4_urwwp")
metadata/_edit_use_anchors_ = true
[node name="NextTrackIconButton" parent="HBoxContainer/VBoxContainer/IconButtonsRow" unique_id=2108379455 instance=ExtResource("1_ucnyb")]
[node name="NextTrackButton" type="Button" parent="MarginContainer/HBoxContainer" unique_id=1836743157]
unique_name_in_owner = true
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
image = ExtResource("5_0koyu")
size_flags_horizontal = 5
flat = true
[node name="Texture" parent="HBoxContainer/VBoxContainer/IconButtonsRow/NextTrackIconButton" index="0" unique_id=1071359322]
anchors_preset = -1
offset_left = 116.66667
offset_top = 131.3789
offset_right = -116.666664
offset_bottom = -131.3789
texture = ExtResource("5_0koyu")
metadata/_edit_use_anchors_ = true
[node name="VBoxContainer2" type="VBoxContainer" parent="HBoxContainer" unique_id=1843266535]
layout_mode = 2
size_flags_vertical = 4
[node name="IncreaseVolumeIconButton" parent="HBoxContainer/VBoxContainer2" unique_id=1788399963 instance=ExtResource("1_ucnyb")]
[node name="PauseTrackButton" type="Button" parent="MarginContainer/HBoxContainer" unique_id=1151045878]
unique_name_in_owner = true
custom_minimum_size = Vector2(40, 40)
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 3
image = ExtResource("6_xv7rp")
size_flags_horizontal = 5
flat = true
[node name="Texture" parent="HBoxContainer/VBoxContainer2/IncreaseVolumeIconButton" index="0" unique_id=1071359322]
custom_minimum_size = Vector2(40, 40)
offset_left = 106.66667
offset_top = 107.01433
offset_right = -106.666664
offset_bottom = -107.014336
texture = ExtResource("6_xv7rp")
metadata/_edit_use_anchors_ = true
[node name="DecreaseVolumeIconButton" parent="HBoxContainer/VBoxContainer2" unique_id=399629327 instance=ExtResource("1_ucnyb")]
[node name="IncreaseVolumeButton" type="Button" parent="MarginContainer/HBoxContainer" unique_id=809451843]
unique_name_in_owner = true
custom_minimum_size = Vector2(40, 40)
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 3
image = ExtResource("7_7ib2x")
size_flags_horizontal = 5
flat = true
[node name="Texture" parent="HBoxContainer/VBoxContainer2/DecreaseVolumeIconButton" index="0" unique_id=1071359322]
custom_minimum_size = Vector2(40, 40)
offset_left = 106.66667
offset_top = 107.01433
offset_right = -106.666664
offset_bottom = -107.014336
texture = ExtResource("7_7ib2x")
metadata/_edit_use_anchors_ = true
[editable path="HBoxContainer/VBoxContainer/IconButtonsRow/PrevTrackIconButton"]
[editable path="HBoxContainer/VBoxContainer/IconButtonsRow/PlayPauseIconButton"]
[editable path="HBoxContainer/VBoxContainer/IconButtonsRow/NextTrackIconButton"]
[editable path="HBoxContainer/VBoxContainer2/IncreaseVolumeIconButton"]
[editable path="HBoxContainer/VBoxContainer2/DecreaseVolumeIconButton"]
[node name="DecreaseVolumeButton" type="Button" parent="MarginContainer/HBoxContainer" unique_id=1399480885]
unique_name_in_owner = true
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
size_flags_horizontal = 5
flat = true

View File

@@ -12,6 +12,9 @@ class_name IconButton
@export var images: Array[Texture]
@export var apply_texture_on_selection: bool = true
@export var enable_tooltip: bool = false
@export var tooltip_scene: PackedScene
@export var tooltip_image: Texture
func _ready():
if image != null and has_node("%Texture"):
@@ -36,3 +39,15 @@ func _on_pressed() -> void:
rotation = 0.0
modulate.a = 1.0
TweenFX.press_rotate(self)
func _make_custom_tooltip(for_text: String) -> Object:
if !enable_tooltip:
return null
var tooltip = tooltip_scene.instantiate()
tooltip.text = for_text
if tooltip_image != null:
tooltip.image = tooltip_image
return tooltip

View File

@@ -2,6 +2,8 @@
[ext_resource type="Script" uid="uid://bpbgecvan0a5k" path="res://core/main_scene_ui/icon_button.gd" id="1_r8gxt"]
[ext_resource type="Texture2D" uid="uid://bkos5j6dwqcxw" path="res://core/main_scene_ui/assets/button_chrono_night.png" id="3_6q6an"]
[ext_resource type="PackedScene" uid="uid://blh7egp5ge16m" path="res://core/tooltips/tooltip.tscn" id="3_60w2f"]
[ext_resource type="Texture2D" uid="uid://cbk8ufxb7wdgx" path="res://core/tooltips/assets/tooltip_DX.png" id="4_60w2f"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_r8gxt"]
@@ -44,6 +46,8 @@ theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_4beq1")
theme_override_styles/focus = SubResource("StyleBoxEmpty_cxhgx")
script = ExtResource("1_r8gxt")
image = ExtResource("3_6q6an")
tooltip_scene = ExtResource("3_60w2f")
tooltip_image = ExtResource("4_60w2f")
metadata/_edit_use_anchors_ = true
[node name="Texture" type="TextureRect" parent="." unique_id=1071359322]

View File

@@ -10,18 +10,21 @@ extends Control
@onready var collectible_icon_button: Button = $%CollectibleIconButton
@onready var weather_row: HBoxContainer = $%WeatherRow
@onready var time_of_day_row: HBoxContainer = $%TimeOfDayRow
@onready var cameras_row: HBoxContainer = $%CamerasRow
@onready var photo_mode_texture_panel: Panel = $%PhotoModeTexturePanel
@onready var photo_mode_texture_mask: TextureRect = $%PhotoModeTextureMask
@onready var photo_mode_black_screen: ColorRect = $%PhotoModeBlackScreen
@onready var audio_player: Control = $%AudioPlayer
@onready var time_label: Label = $%TimeLabel
@onready var dist_label: Label = $%DistLabel
@onready var tooltips: HBoxContainer = $%Tooltips
var _cycle = false
var _rain = false
var _snow = false
var _storm = false
var _wind = false
var _ui_hidden = false
var _photo_mode_mat_tween: Tween
var _photo_mode_alpha_tween: Tween
var _photo_mode_fold_tween: Tween
@@ -53,6 +56,7 @@ func _process(_delta: float) -> void:
dist_label.text = "Distance Traveled: %d km" % int(GameState.save_data.total_distance_km)
func _on_hide_ui_button_pressed() -> void:
UIEvents.on_hide_ui_requested.emit()
hide_ui()
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
await get_tree().create_timer(0.3).timeout
@@ -64,6 +68,20 @@ func _input(event: InputEvent) -> void:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
show_ui()
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("toggle_options"):
if photo_mode_texture_panel.visible or _ui_hidden:
return
if game_menu_panel.visible:
_on_resume_button_pressed()
else:
_open_game_menu_on_page(2)
elif event.is_action_pressed("hide_ui"):
if photo_mode_texture_panel.visible:
return
if not game_menu_panel.visible:
_on_hide_ui_button_pressed()
func _on_photo_icon_button_pressed() -> void:
GameState.on_enable_photo_mode_request.emit()
@@ -205,20 +223,41 @@ func _set_buttons_mouse_filter(ignore: bool) -> void:
buttons.append_array(weather_row.options_icon_buttons)
if time_of_day_row and "options_icon_buttons" in time_of_day_row:
buttons.append_array(time_of_day_row.options_icon_buttons)
if cameras_row and "options_icon_buttons" in cameras_row:
buttons.append_array(cameras_row.options_icon_buttons)
for btn in buttons:
if btn is Control:
btn.mouse_filter = filter
func hide_ui() -> void:
_ui_hidden = true
_set_buttons_mouse_filter(true)
var hud_elements = [hide_ui_button, weather_row, time_of_day_row, customize_train_button, collectible_icon_button, menu_icon_button, photo_icon_button, audio_player, choo_choo_button, time_label, dist_label]
var hud_elements = [hide_ui_button, weather_row, time_of_day_row, cameras_row, customize_train_button, collectible_icon_button, menu_icon_button, photo_icon_button, audio_player, choo_choo_button, time_label, dist_label]
for element in hud_elements:
element.visible = false
element.visible = true
TweenFX.fade_out(element, 0.25)
func show_ui() -> void:
_ui_hidden = false
_set_buttons_mouse_filter(false)
var hud_elements = [hide_ui_button, weather_row, time_of_day_row, customize_train_button, collectible_icon_button, menu_icon_button, photo_icon_button, audio_player, choo_choo_button, time_label, dist_label]
var hud_elements = [hide_ui_button, weather_row, time_of_day_row, cameras_row, customize_train_button, collectible_icon_button, menu_icon_button, photo_icon_button, audio_player, choo_choo_button, time_label, dist_label, tooltips]
for element in hud_elements:
element.show()
TweenFX.fade_in(element, 0.25)
func _on_cameras_row_on_option_changed(data: String) -> void:
match data:
"1":
UIEvents.change_camera_request.emit(0)
"2":
UIEvents.change_camera_request.emit(1)
"3":
UIEvents.change_camera_request.emit(2)
"4":
UIEvents.change_camera_request.emit(3)
"5":
UIEvents.change_camera_request.emit(4)
_:
pass

View File

@@ -27,10 +27,26 @@
[ext_resource type="Texture2D" uid="uid://tex06svipyg4" path="res://core/main_scene_ui/assets/button_random.png" id="14_gcgq4"]
[ext_resource type="Texture2D" uid="uid://1n3paucfsovj" path="res://core/main_scene_ui/assets/button_photomode.png" id="15_th1nj"]
[ext_resource type="Texture2D" uid="uid://qq84r14df2ix" path="res://core/main_scene_ui/assets/button_visibility_on.png" id="19_dyo0w"]
[ext_resource type="Texture2D" uid="uid://dijxloxgmn3ws" path="res://core/tooltips/assets/tooltip_ESC.png" id="19_mlhrv"]
[ext_resource type="Texture2D" uid="uid://c31yut8p24t8g" path="res://core/main_scene_ui/assets/button_customize.png" id="19_vywaj"]
[ext_resource type="Texture2D" uid="uid://b03si5ir3ypp7" path="res://core/main_scene_ui/assets/button_collection03.png" id="19_yggu7"]
[ext_resource type="Texture2D" uid="uid://c8io1gdqo45kw" path="res://core/tooltips/assets/tooltip_H.png" id="21_7mx2q"]
[ext_resource type="Texture2D" uid="uid://clmbvd7ilhra2" path="res://core/main_scene_ui/assets/button_choochoo_on.png" id="22_x1iix"]
[ext_resource type="Texture2D" uid="uid://oc0aqajt2yxr" path="res://core/tooltips/assets/tooltip_p.png" id="25_1n7cf"]
[ext_resource type="PackedScene" uid="uid://dx66qveii1lml" path="res://core/tooltips/tooltips.tscn" id="25_kh0c7"]
[ext_resource type="Texture2D" uid="uid://1hbcebf3mf1l" path="res://core/tooltips/assets/tooltip_Q.png" id="27_binfm"]
[ext_resource type="Texture2D" uid="uid://dsytn6pedo8i" path="res://core/tooltips/assets/camera_none.png" id="28_mukbp"]
[ext_resource type="Texture2D" uid="uid://cavfu38w67kv1" path="res://core/tooltips/assets/camera_1.png" id="29_ej62u"]
[ext_resource type="FontFile" uid="uid://bclja5no1qteh" path="res://core/font/Kestila.ttf" id="29_jn6vt"]
[ext_resource type="Texture2D" uid="uid://c4nsxmoh3itat" path="res://core/tooltips/assets/camera_2.png" id="30_b6lng"]
[ext_resource type="Texture2D" uid="uid://d12w3tr36spe8" path="res://core/tooltips/assets/tooltip_1.png" id="30_jpo3t"]
[ext_resource type="Texture2D" uid="uid://bbsohagx2646w" path="res://core/tooltips/assets/camera_3.png" id="31_xe82o"]
[ext_resource type="Texture2D" uid="uid://bi2tblkgtqnf6" path="res://core/tooltips/assets/tooltip_2.png" id="32_4h51y"]
[ext_resource type="Texture2D" uid="uid://dry1k7w03167e" path="res://core/tooltips/assets/camera_4.png" id="32_nqdet"]
[ext_resource type="Texture2D" uid="uid://1fsufkfkyti" path="res://core/tooltips/assets/camera_5.png" id="33_l4tct"]
[ext_resource type="Texture2D" uid="uid://d160748lbh8j5" path="res://core/tooltips/assets/tooltip_3.png" id="34_o8vr4"]
[ext_resource type="Texture2D" uid="uid://b4hb1i0p6fg1b" path="res://core/tooltips/assets/tooltip_4.png" id="36_yts6a"]
[ext_resource type="Texture2D" uid="uid://dtq561kbf31gw" path="res://core/tooltips/assets/tooltip_5.png" id="38_vv0oj"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hole"]
shader = ExtResource("10_shader")
@@ -153,12 +169,18 @@ theme_override_constants/separation = 8
[node name="MenuIconButton" parent="TopButtons" unique_id=707872474 instance=ExtResource("3_t1xop")]
unique_name_in_owner = true
layout_mode = 2
tooltip_text = "option"
image = ExtResource("10_6016m")
enable_tooltip = true
tooltip_image = ExtResource("19_mlhrv")
[node name="HideUIButton" parent="TopButtons" unique_id=1621140689 instance=ExtResource("3_t1xop")]
unique_name_in_owner = true
layout_mode = 2
tooltip_text = "hide UI"
image = ExtResource("19_dyo0w")
enable_tooltip = true
tooltip_image = ExtResource("21_7mx2q")
[node name="MiddleButtons" type="VBoxContainer" parent="." unique_id=542153805]
layout_mode = 1
@@ -168,9 +190,9 @@ anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_left = -100.0
offset_top = -124.0
offset_top = -172.0
offset_right = -20.0
offset_bottom = 124.0
offset_bottom = 172.0
grow_horizontal = 0
grow_vertical = 2
theme_override_constants/separation = 8
@@ -188,12 +210,18 @@ image = ExtResource("19_yggu7")
[node name="PhotoIconButton" parent="MiddleButtons" unique_id=1863476241 instance=ExtResource("3_t1xop")]
unique_name_in_owner = true
layout_mode = 2
tooltip_text = "photo mode"
image = ExtResource("15_th1nj")
enable_tooltip = true
tooltip_image = ExtResource("25_1n7cf")
[node name="ChooChooButton" parent="MiddleButtons" unique_id=774819903 instance=ExtResource("3_t1xop")]
unique_name_in_owner = true
layout_mode = 2
tooltip_text = "horn"
image = ExtResource("22_x1iix")
enable_tooltip = true
tooltip_image = ExtResource("27_binfm")
[node name="InfoLabels" type="VBoxContainer" parent="." unique_id=234435566]
custom_minimum_size = Vector2(400, 0)
@@ -203,6 +231,57 @@ offset_top = 20.0
offset_right = 420.0
offset_bottom = 220.0
[node name="CamerasRow" parent="InfoLabels" unique_id=1233961141 instance=ExtResource("2_4cc8f")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 1
[node name="IconButton" parent="InfoLabels/CamerasRow" index="0" unique_id=1750448019]
image = ExtResource("28_mukbp")
apply_texture_on_selection = false
[node name="IconButton2" parent="InfoLabels/CamerasRow" index="1" unique_id=638856991]
data = "1"
image = ExtResource("29_ej62u")
enable_tooltip = true
tooltip_image = ExtResource("30_jpo3t")
[node name="IconButton3" parent="InfoLabels/CamerasRow" index="2" unique_id=1662483962]
data = "2"
image = ExtResource("30_b6lng")
enable_tooltip = true
tooltip_image = ExtResource("32_4h51y")
[node name="IconButton4" parent="InfoLabels/CamerasRow" index="3" unique_id=1375190490]
data = "3"
image = ExtResource("31_xe82o")
enable_tooltip = true
tooltip_image = ExtResource("34_o8vr4")
[node name="IconButton5" parent="InfoLabels/CamerasRow" index="4" unique_id=315412403]
data = "4"
image = ExtResource("32_nqdet")
enable_tooltip = true
tooltip_image = ExtResource("36_yts6a")
[node name="ShowContainerTween" parent="InfoLabels/CamerasRow" index="5" unique_id=160227524 node_paths=PackedStringArray("targets")]
targets = [NodePath("../IconButton2"), NodePath("../IconButton3"), NodePath("../IconButton4"), NodePath("../IconButton5"), NodePath("../IconButton6")]
tween_types = Array[String](["impact_land", "fade_in"])
[node name="HideContainerTween" parent="InfoLabels/CamerasRow" index="6" unique_id=1169748375 node_paths=PackedStringArray("targets")]
targets = [NodePath("../IconButton6"), NodePath("../IconButton5"), NodePath("../IconButton4"), NodePath("../IconButton3"), NodePath("../IconButton2")]
tween_types = Array[String](["impact_land", "fade_out"])
[node name="IconButton6" parent="InfoLabels/CamerasRow" unique_id=1017773972 instance=ExtResource("3_t1xop")]
visible = false
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 3
data = "5"
image = ExtResource("33_l4tct")
enable_tooltip = true
tooltip_image = ExtResource("38_vv0oj")
[node name="TimeLabel" type="Label" parent="InfoLabels" unique_id=18932607]
unique_name_in_owner = true
layout_mode = 2
@@ -213,17 +292,29 @@ unique_name_in_owner = true
layout_mode = 2
theme_override_fonts/font = ExtResource("29_jn6vt")
[node name="Tooltips" parent="." unique_id=1388346317 instance=ExtResource("25_kh0c7")]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_right = 0.5
offset_left = -297.5
offset_top = -68.0
offset_right = 297.5
offset_bottom = -20.0
[node name="AudioPlayer" parent="." unique_id=425192018 node_paths=PackedStringArray("radio") instance=ExtResource("7_lapqe")]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 0.99814814
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 0.99814814
offset_left = -166.0
offset_top = -74.0
offset_right = -166.0
offset_bottom = -74.0
anchor_bottom = 1.0
offset_left = -261.0
offset_top = -199.0
offset_right = -20.0
offset_bottom = -20.0
grow_horizontal = 0
grow_vertical = 0
radio = NodePath("../Radio")
@@ -300,8 +391,10 @@ playlist = Array[AudioStream]([ExtResource("6_kd244")])
[connection signal="on_option_changed" from="Rows/TimeOfDayRow" to="." method="_on_time_of_day_row_on_option_changed"]
[connection signal="on_option_changed" from="Rows/WeatherRow" to="." method="_on_weather_row_on_option_changed"]
[connection signal="on_option_changed" from="InfoLabels/CamerasRow" to="." method="_on_cameras_row_on_option_changed"]
[editable path="Rows/TimeOfDayRow"]
[editable path="Rows/WeatherRow"]
[editable path="InfoLabels/CamerasRow"]
[editable path="GameMenuPanel/GameMenu"]
[editable path="GameMenuPanel/GameMenu/Pages/Page3"]

View File

@@ -49,18 +49,47 @@ func enable_photo_mode() -> void:
current_pan = Vector2.ZERO
if camera:
if previous_camera:
camera.size = previous_camera.size
camera.fov = previous_camera.fov
if rotation_target and "is_zoomed" in rotation_target:
is_zoomed = rotation_target.is_zoomed
if "zoom_tween" in rotation_target and rotation_target.zoom_tween and rotation_target.zoom_tween.is_valid():
rotation_target.zoom_tween.kill()
else:
if abs(camera.size - zoom_size) < abs(camera.size - normal_size):
is_zoomed = true
else:
is_zoomed = false
var target_size = zoom_size if is_zoomed else normal_size
if not is_equal_approx(camera.size, target_size):
zoom_tween = create_tween()
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
zoom_tween.tween_property(camera, "size", target_size, zoom_time)
zoom_tween.parallel().tween_property(camera, "fov", target_size, zoom_time)
camera.make_current()
func disable_photo_mode() -> void:
is_active = false
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
if previous_camera:
previous_camera.size = camera.size
previous_camera.fov = camera.fov
if rotation_target and rotation_target.has_method("sync_zoom"):
rotation_target.sync_zoom(camera.size, camera.fov, is_zoomed)
previous_camera.make_current()
func _input(event: InputEvent) -> void:
if event is InputEventKey and event.pressed and not event.echo:
if event.keycode == KEY_Z and camera:
is_zoomed = !is_zoomed
if event is InputEventMouseButton and event.pressed:
if event.button_index == MOUSE_BUTTON_WHEEL_UP and camera:
if is_zoomed == false:
return
is_zoomed = false
var target_size = zoom_size if is_zoomed else normal_size
if zoom_tween and zoom_tween.is_valid():
@@ -71,6 +100,34 @@ func _input(event: InputEvent) -> void:
zoom_tween.tween_property(camera, "size", target_size, zoom_time)
zoom_tween.parallel().tween_property(camera, "fov", target_size, zoom_time)
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN and camera:
if is_zoomed == true:
return
is_zoomed = true
var target_size = zoom_size if is_zoomed else normal_size
if zoom_tween and zoom_tween.is_valid():
zoom_tween.kill()
zoom_tween = create_tween()
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
zoom_tween.tween_property(camera, "size", target_size, zoom_time)
zoom_tween.parallel().tween_property(camera, "fov", target_size, zoom_time)
if is_active:
if event.is_action_pressed("exit_photo_mode") and not is_making_photo:
GameState.on_disable_photo_mode_request.emit()
elif event.is_action_pressed("take_photo"):
if not is_making_photo:
is_making_photo = true
GameState.on_photo_taken_prepare.emit()
await RenderingServer.frame_post_draw
captured_image = get_viewport().get_texture().get_image()
GameState.on_photo_taken_started.emit()
if event.is_action_pressed("toggle_photo_mode"):
if get_tree().paused:
return
@@ -83,18 +140,6 @@ func _input(event: InputEvent) -> void:
if event is InputEventMouseMotion and is_active:
total_yaw -= event.relative.x * rotation_speed
if event.is_action_pressed("take_photo"):
if !is_active or is_making_photo:
return
is_making_photo = true
GameState.on_photo_taken_prepare.emit()
await RenderingServer.frame_post_draw
captured_image = get_viewport().get_texture().get_image()
GameState.on_photo_taken_started.emit()
func _process(delta: float) -> void:
if not is_active:
return

View File

@@ -35,6 +35,12 @@ func prev_track():
func toggle_pause():
stream_paused = !stream_paused
func pause():
stream_paused = true
func unpause():
stream_paused = false
func stop_radio():
stop()
stream_paused = false

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cavfu38w67kv1"
path="res://.godot/imported/camera_1.png-6bef811d856883a597fd13243121c269.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/camera_1.png"
dest_files=["res://.godot/imported/camera_1.png-6bef811d856883a597fd13243121c269.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c4nsxmoh3itat"
path="res://.godot/imported/camera_2.png-2350610ab2bb8e3b3a90026f128e8544.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/camera_2.png"
dest_files=["res://.godot/imported/camera_2.png-2350610ab2bb8e3b3a90026f128e8544.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bbsohagx2646w"
path="res://.godot/imported/camera_3.png-ff967b883d8a5166da74f29b1179df2f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/camera_3.png"
dest_files=["res://.godot/imported/camera_3.png-ff967b883d8a5166da74f29b1179df2f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dry1k7w03167e"
path="res://.godot/imported/camera_4.png-43e725f6d4bb1690fa3b306344d9f2c6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/camera_4.png"
dest_files=["res://.godot/imported/camera_4.png-43e725f6d4bb1690fa3b306344d9f2c6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1fsufkfkyti"
path="res://.godot/imported/camera_5.png-cca1ded2b7eaa96d84039802746b3bee.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/camera_5.png"
dest_files=["res://.godot/imported/camera_5.png-cca1ded2b7eaa96d84039802746b3bee.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dsytn6pedo8i"
path="res://.godot/imported/camera_none.png-0964d8c8da781e3eeb4296537838b9c0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/camera_none.png"
dest_files=["res://.godot/imported/camera_none.png-0964d8c8da781e3eeb4296537838b9c0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bx0yto0ah5ffa"
path="res://.godot/imported/exit photo mode.png-8a4744e6069ce2a7928d26be53c25d02.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/exit photo mode.png"
dest_files=["res://.godot/imported/exit photo mode.png-8a4744e6069ce2a7928d26be53c25d02.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bniftx6j2h4mu"
path="res://.godot/imported/hide.png-673cab8e9d14081efde83510600e74c5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/hide.png"
dest_files=["res://.godot/imported/hide.png-673cab8e9d14081efde83510600e74c5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bms10b47ers4c"
path="res://.godot/imported/horn.png-d688275340db551ead1e04b98bef039f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/horn.png"
dest_files=["res://.godot/imported/horn.png-d688275340db551ead1e04b98bef039f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://brujlvboqbd10"
path="res://.godot/imported/photo mode.png-5dbff8e6e2d8f4fc4feda1336fb84ebf.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/photo mode.png"
dest_files=["res://.godot/imported/photo mode.png-5dbff8e6e2d8f4fc4feda1336fb84ebf.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://blpprpiha1gaa"
path="res://.godot/imported/take a photo.png-a894c87a630557874ac3c24cb0299a43.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/take a photo.png"
dest_files=["res://.godot/imported/take a photo.png-a894c87a630557874ac3c24cb0299a43.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d12w3tr36spe8"
path="res://.godot/imported/tooltip_1.png-37ffb615aa8cd89f6b904f2ffa077ce8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_1.png"
dest_files=["res://.godot/imported/tooltip_1.png-37ffb615aa8cd89f6b904f2ffa077ce8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bi2tblkgtqnf6"
path="res://.godot/imported/tooltip_2.png-c63403f312184a20c0eff2e81f1cdd25.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_2.png"
dest_files=["res://.godot/imported/tooltip_2.png-c63403f312184a20c0eff2e81f1cdd25.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d160748lbh8j5"
path="res://.godot/imported/tooltip_3.png-a097a6ca2e9dd094aba7b4aedee30fbe.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_3.png"
dest_files=["res://.godot/imported/tooltip_3.png-a097a6ca2e9dd094aba7b4aedee30fbe.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b4hb1i0p6fg1b"
path="res://.godot/imported/tooltip_4.png-e6e00962e42bd7b7717ff34329552a10.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_4.png"
dest_files=["res://.godot/imported/tooltip_4.png-e6e00962e42bd7b7717ff34329552a10.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtq561kbf31gw"
path="res://.godot/imported/tooltip_5.png-2c2f31c95b2009e3b687a8a480402a0e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_5.png"
dest_files=["res://.godot/imported/tooltip_5.png-2c2f31c95b2009e3b687a8a480402a0e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cbk8ufxb7wdgx"
path="res://.godot/imported/tooltip_DX.png-063d6843e78690903cde525bc2db7a4b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_DX.png"
dest_files=["res://.godot/imported/tooltip_DX.png-063d6843e78690903cde525bc2db7a4b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dijxloxgmn3ws"
path="res://.godot/imported/tooltip_ESC.png-2d0e5abd3e35c6060d29fc644438e7e7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_ESC.png"
dest_files=["res://.godot/imported/tooltip_ESC.png-2d0e5abd3e35c6060d29fc644438e7e7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c8io1gdqo45kw"
path="res://.godot/imported/tooltip_H.png-c799b974666a7c83abf12a75a7267207.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_H.png"
dest_files=["res://.godot/imported/tooltip_H.png-c799b974666a7c83abf12a75a7267207.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ct0mxd4yrrjdl"
path="res://.godot/imported/tooltip_MID.png-b256bdbcc34c1265eaa820dbffdc68a6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_MID.png"
dest_files=["res://.godot/imported/tooltip_MID.png-b256bdbcc34c1265eaa820dbffdc68a6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1hbcebf3mf1l"
path="res://.godot/imported/tooltip_Q.png-47e355e3faabf40eae4483c1488a1632.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_Q.png"
dest_files=["res://.godot/imported/tooltip_Q.png-47e355e3faabf40eae4483c1488a1632.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://denpwcxau18ci"
path="res://.godot/imported/tooltip_SX.png-e9e5480ba5f77bc006f44a2b9721c462.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_SX.png"
dest_files=["res://.godot/imported/tooltip_SX.png-e9e5480ba5f77bc006f44a2b9721c462.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://2rxvxgh8tuhj"
path="res://.godot/imported/tooltip_WS.png-f934d2875c750abe701590695023f092.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_WS.png"
dest_files=["res://.godot/imported/tooltip_WS.png-f934d2875c750abe701590695023f092.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://7qnqckap4yrb"
path="res://.godot/imported/tooltip_e.png-b0d6b7b402f0f481d723dec55ed51853.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_e.png"
dest_files=["res://.godot/imported/tooltip_e.png-b0d6b7b402f0f481d723dec55ed51853.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://oc0aqajt2yxr"
path="res://.godot/imported/tooltip_p.png-0e37c7ce327eddf463de861af6728a29.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/tooltip_p.png"
dest_files=["res://.godot/imported/tooltip_p.png-0e37c7ce327eddf463de861af6728a29.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1cmwbyv36er7"
path="res://.godot/imported/train speed.png-fbaa3da1019091f9ab3beeadc6589ad4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/train speed.png"
dest_files=["res://.godot/imported/train speed.png-fbaa3da1019091f9ab3beeadc6589ad4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://do2b1vm25il48"
path="res://.godot/imported/zoom in_out.png-8eda7f32afeb56acb921e862f5ab9eb6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/tooltips/assets/zoom in_out.png"
dest_files=["res://.godot/imported/zoom in_out.png-8eda7f32afeb56acb921e862f5ab9eb6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

21
core/tooltips/tooltip.gd Normal file
View File

@@ -0,0 +1,21 @@
@tool
extends HBoxContainer
@export var image: Texture:
set(value):
image = value
if is_inside_tree() and has_node("%Texture"):
$%Texture.texture = image
@export var text: String:
set(value):
text = value
if is_inside_tree() and has_node("%Label"):
$%Label.text = text
func _ready():
if image != null and has_node("%Texture"):
$%Texture.texture = image
if is_inside_tree() and has_node("%Label"):
$%Label.text = text

View File

@@ -0,0 +1 @@
uid://dp1j2sd8ciohv

View File

@@ -0,0 +1,36 @@
[gd_scene format=3 uid="uid://blh7egp5ge16m"]
[ext_resource type="Theme" uid="uid://cwqdjc6t31a8i" path="res://core/font/tooltip_theme.tres" id="1_cumfd"]
[ext_resource type="Script" uid="uid://dp1j2sd8ciohv" path="res://core/tooltips/tooltip.gd" id="1_eq2yf"]
[ext_resource type="Texture2D" uid="uid://denpwcxau18ci" path="res://core/tooltips/assets/tooltip_SX.png" id="2_eq2yf"]
[node name="Tooltip" type="HBoxContainer" unique_id=1513886073]
anchors_preset = -1
anchor_right = 0.1140625
anchor_bottom = 0.037037037
size_flags_vertical = 4
alignment = 1
script = ExtResource("1_eq2yf")
image = ExtResource("2_eq2yf")
text = "tooltip"
metadata/_edit_use_anchors_ = true
[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1680323892]
layout_mode = 2
theme_override_constants/margin_top = 8
[node name="Label" type="Label" parent="MarginContainer" unique_id=1224956226]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("1_cumfd")
theme_override_font_sizes/font_size = 32
text = "tooltip"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Texture" type="TextureRect" parent="." unique_id=32912840]
unique_name_in_owner = true
layout_mode = 2
texture = ExtResource("2_eq2yf")
expand_mode = 2
stretch_mode = 5

34
core/tooltips/tooltips.gd Normal file
View File

@@ -0,0 +1,34 @@
extends HBoxContainer
@onready var game_mode_tooltips = [$%Tooltip1, $%Tooltip2, $%Tooltip5]
@onready var photo_mode_tooltips = [$%Tooltip3, $%Tooltip4, $%Tooltip5]
func _ready() -> void:
GameState.on_enable_photo_mode_request.connect(update_tooltips_visibility.bind(true))
GameState.on_disable_photo_mode_request.connect(update_tooltips_visibility.bind(false))
GameState.on_photo_taken_prepare.connect(hide_self.bind(true))
GameState.on_photo_taken_started.connect(show_self.bind(true))
UIEvents.on_hide_ui_requested.connect(hide_self.bind(false))
update_tooltips_visibility(false)
func update_tooltips_visibility(photo_mode_is_enabled) -> void:
if photo_mode_is_enabled:
for tooltip in game_mode_tooltips:
tooltip.hide()
for tooltip in photo_mode_tooltips:
tooltip.show()
else:
for tooltip in photo_mode_tooltips:
tooltip.hide()
for tooltip in game_mode_tooltips:
tooltip.show()
func hide_self(instant: bool) -> void:
var duration = 0.01 if instant else 0.25
TweenFX.fade_out(self, duration)
func show_self(instant: bool) -> void:
show()
var duration = 0.01 if instant else 0.25
TweenFX.fade_in(self, duration)

View File

@@ -0,0 +1 @@
uid://bmvbgfmjwxdf

View File

@@ -0,0 +1,51 @@
[gd_scene format=3 uid="uid://dx66qveii1lml"]
[ext_resource type="Script" uid="uid://bmvbgfmjwxdf" path="res://core/tooltips/tooltips.gd" id="1_m08h2"]
[ext_resource type="PackedScene" uid="uid://blh7egp5ge16m" path="res://core/tooltips/tooltip.tscn" id="1_mf3bv"]
[ext_resource type="Texture2D" uid="uid://ct0mxd4yrrjdl" path="res://core/tooltips/assets/tooltip_MID.png" id="3_rej0y"]
[ext_resource type="Texture2D" uid="uid://2rxvxgh8tuhj" path="res://core/tooltips/assets/tooltip_WS.png" id="5_1vwdt"]
[ext_resource type="Texture2D" uid="uid://7qnqckap4yrb" path="res://core/tooltips/assets/tooltip_e.png" id="6_t51mm"]
[ext_resource type="Texture2D" uid="uid://cbk8ufxb7wdgx" path="res://core/tooltips/assets/tooltip_DX.png" id="9_7bv08"]
[node name="Tooltips" type="HBoxContainer" unique_id=1388346317]
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -30.0
grow_horizontal = 2
grow_vertical = 0
theme_override_constants/separation = 16
alignment = 1
script = ExtResource("1_m08h2")
[node name="Tooltip1" parent="." unique_id=2055621291 instance=ExtResource("1_mf3bv")]
unique_name_in_owner = true
layout_mode = 2
image = ExtResource("5_1vwdt")
text = "train speed"
[node name="Tooltip2" parent="." unique_id=1391382778 instance=ExtResource("1_mf3bv")]
unique_name_in_owner = true
layout_mode = 2
image = ExtResource("6_t51mm")
text = "stop train"
[node name="Tooltip3" parent="." unique_id=983284378 instance=ExtResource("1_mf3bv")]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "make a photo"
[node name="Tooltip4" parent="." unique_id=798650810 instance=ExtResource("1_mf3bv")]
unique_name_in_owner = true
visible = false
layout_mode = 2
image = ExtResource("9_7bv08")
text = "exit photo mode"
[node name="Tooltip5" parent="." unique_id=1970294963 instance=ExtResource("1_mf3bv")]
unique_name_in_owner = true
layout_mode = 2
image = ExtResource("3_rej0y")
text = "zoom in/out"

View File

@@ -47,5 +47,11 @@ signal day_time_option_changed(index: int)
#train signals
@warning_ignore("unused_signal")
signal toot_toot(update_stats: bool)
#common signals
@warning_ignore("unused_signal")
signal resume_game_requested
@warning_ignore("unused_signal")
signal on_hide_ui_requested
@warning_ignore("unused_signal")
signal change_camera_request(camera_index: int)

View File

@@ -1,6 +0,0 @@
extends Node3D
#func _input(event):
#if event is InputEventKey and event.pressed:
#if event.keycode == KEY_ESCAPE:
#get_tree().quit()

View File

@@ -1 +0,0 @@
uid://bw42tcfoee7xl

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,5 @@
[gd_scene format=4 uid="uid://38qpxwbpvd28"]
[ext_resource type="Script" uid="uid://bw42tcfoee7xl" path="res://docs/museums/biome_generator/museum_biome_generator.gd" id="1_sy6wt"]
[ext_resource type="Shader" uid="uid://bneoex8xpmcm8" path="res://core/daynight/sky.gdshader" id="2_j2qft"]
[ext_resource type="Texture2D" uid="uid://dest0qa7vaid0" path="res://core/daynight/stars_albedo.png" id="3_ncg1s"]
[ext_resource type="Script" uid="uid://brcimd12tx3dm" path="res://core/daynight/edge_detection_compositor.gd" id="4_5uio4"]
@@ -182,7 +181,6 @@ _data = {
point_count = 93
[node name="museum" type="Node3D" unique_id=2135293927]
script = ExtResource("1_sy6wt")
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1936550760]
environment = SubResource("Environment_xtogr")

View File

@@ -71,7 +71,7 @@ photo_pan_down={
}
take_photo={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":102,"location":0,"echo":false,"script":null)
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(303, 24),"global_position":Vector2(312, 72),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
toggle_photo_mode={
@@ -79,6 +79,51 @@ toggle_photo_mode={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":80,"key_label":0,"unicode":112,"location":0,"echo":false,"script":null)
]
}
train_speed_up={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
]
}
train_speed_down={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
train_stop={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
]
}
train_horn={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":113,"location":0,"echo":false,"script":null)
]
}
hide_ui={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":72,"key_label":0,"unicode":104,"location":0,"echo":false,"script":null)
]
}
toggle_options={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
exit_photo_mode={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":2,"position":Vector2(241, 14),"global_position":Vector2(250, 62),"factor":1.0,"button_index":2,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
zoom_in={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":8,"position":Vector2(390, 19),"global_position":Vector2(399, 67),"factor":1.0,"button_index":4,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
zoom_out={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":16,"position":Vector2(422, 8),"global_position":Vector2(431, 56),"factor":1.0,"button_index":5,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
[physics]

View File

@@ -4,7 +4,6 @@
[ext_resource type="Resource" uid="uid://dufa43jysup7" path="res://tgcc/main menu/menu.tres" id="2_vvb5q"]
[ext_resource type="PackedScene" uid="uid://bmwmdsdyfxfc1" path="res://tgcc/map/map_1/map_menu.tscn" id="2_wbrya"]
[ext_resource type="Shader" uid="uid://cpgtj8mhjklb8" path="res://tgcc/chunk/prop/cloud/cloud3d.gdshader" id="2_wcae3"]
[ext_resource type="Script" uid="uid://cx2tlvxhvatj5" path="res://docs/museums/daynight/control.gd" id="3_wbrya"]
[ext_resource type="Texture2D" uid="uid://ibasu8f2j88u" path="res://tgcc/chunk/material/decal/store_capsule_logo_def.png" id="4_s4fdn"]
[ext_resource type="Texture2D" uid="uid://dest0qa7vaid0" path="res://core/daynight/stars_albedo.png" id="5_25h5j"]
[ext_resource type="Shader" uid="uid://bneue3fq71vp8" path="res://tgcc/main menu/sky_test.gdshader" id="5_87uwe"]
@@ -97,10 +96,11 @@
[ext_resource type="PackedScene" uid="uid://cykkwpsq7d3ex" path="res://tgcc/chunk/countryside/scene/tea/river/chunk_river_tea_straight_5.tscn" id="87_sionv"]
[ext_resource type="PackedScene" uid="uid://dre1jaoxug015" path="res://tgcc/chunk/prop/fuji/fuji_2.tscn" id="99_61psf"]
[ext_resource type="PackedScene" uid="uid://c8fk1kxpkxpm2" path="res://tgcc/chunk/prop/fuji/fuji.tscn" id="100_0aqpp"]
[ext_resource type="PackedScene" uid="uid://c3alhtb3083qs" path="res://core/game_menu/option_menu_button.tscn" id="100_g1vc5"]
[ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="100_vvb5q"]
[ext_resource type="Texture2D" uid="uid://cu8e7pl0y4owq" path="res://core/game_menu/assets/page_3/settings_button.png" id="101_mrhmq"]
[ext_resource type="Texture2D" uid="uid://v7e7467fkdec" path="res://core/game_menu/assets/page_3/quit_button.png" id="102_4j5xl"]
[ext_resource type="Script" uid="uid://duiqgeista384" path="res://core/main_menu/sign.gd" id="101_4j5xl"]
[ext_resource type="Script" uid="uid://csqxuftsnv1br" path="res://core/main_menu/main_menu.gd" id="102_5hxod"]
[ext_resource type="PackedScene" uid="uid://cxf8s80ivwj1p" path="res://core/game_menu/option_menu.tscn" id="102_vvb5q"]
[ext_resource type="PackedScene" uid="uid://caqf471x0kttc" path="res://core/game_menu/settings_menu.tscn" id="103_4j5xl"]
[ext_resource type="Shader" uid="uid://bhqtjjs3emv7f" path="res://tgcc/main menu/godraysmenu.gdshader" id="103_g1vc5"]
[ext_resource type="PackedScene" uid="uid://cp2vmysawnuql" path="res://tgcc/chunk/prop/sign/scene/signMenu.tscn" id="103_mrhmq"]
[ext_resource type="Material" uid="uid://dljvvppsdbjd1" path="res://tgcc/chunk/material/glowplane.tres" id="104_mrhmq"]
@@ -259,6 +259,20 @@ shader_parameter/densita_raggi = 50.0
shader_parameter/velocita_movimento = 0.50000002375
shader_parameter/attenuazione_altezza = 1.3550000611026198
[sub_resource type="ViewportTexture" id="ViewportTexture_4j5xl"]
viewport_path = NodePath("MainMenuUI/SubViewport")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0hcuf"]
resource_local_to_scene = true
transparency = 1
albedo_texture = SubResource("ViewportTexture_4j5xl")
[sub_resource type="QuadMesh" id="QuadMesh_pnf06"]
material = SubResource("StandardMaterial3D_0hcuf")
[sub_resource type="BoxShape3D" id="BoxShape3D_4j5xl"]
size = Vector3(1.0275879, 0.9182129, 0.015380859)
[sub_resource type="PlaneMesh" id="PlaneMesh_g1vc5"]
size = Vector2(300, 50)
@@ -279,239 +293,6 @@ transform = Transform3D(-1, -7.619397e-09, 8.709011e-08, 0, 0.9961947, 0.0871557
fov = 80.0
size = 11.429
[node name="Control" type="Control" parent="." unique_id=199803985]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("3_wbrya")
[node name="Snow" type="CheckButton" parent="Control" unique_id=769304933]
layout_mode = 0
offset_left = 8.0
offset_top = 173.0
offset_right = 98.0
offset_bottom = 204.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Snow"
[node name="Rain" type="CheckButton" parent="Control" unique_id=1548774966]
layout_mode = 0
offset_left = 8.0
offset_top = 201.0
offset_right = 96.0
offset_bottom = 232.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Rain"
[node name="Wind" type="CheckButton" parent="Control" unique_id=943873853]
layout_mode = 0
offset_left = 8.0
offset_top = 256.0
offset_right = 96.0
offset_bottom = 287.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Wind"
[node name="WindSlider" type="HSlider" parent="Control" unique_id=1544638111]
layout_mode = 0
offset_left = 103.0
offset_top = 263.0
offset_right = 187.0
offset_bottom = 279.0
max_value = 1.0
step = 0.01
[node name="Fireflies" type="CheckButton" parent="Control" unique_id=488349591]
layout_mode = 0
offset_left = 8.0
offset_top = 284.0
offset_right = 117.0
offset_bottom = 315.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Fireflies"
[node name="Storm" type="CheckButton" parent="Control" unique_id=1859052596]
layout_mode = 0
offset_left = 98.0
offset_top = 201.0
offset_right = 194.0
offset_bottom = 232.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Storm"
[node name="DayTimeLabel" type="Label" parent="Control" unique_id=1460156174]
layout_mode = 0
offset_left = 13.0
offset_top = 15.0
offset_right = 347.0
offset_bottom = 38.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Time 00:00"
[node name="DayTimeSlider" type="HSlider" parent="Control" unique_id=723784379]
layout_mode = 0
offset_left = 13.0
offset_top = 40.0
offset_right = 138.0
offset_bottom = 56.0
max_value = 1.0
step = 0.01
[node name="DayTimeOptions" type="OptionButton" parent="Control" unique_id=218627420]
layout_mode = 0
offset_left = 13.0
offset_top = 59.0
offset_right = 124.0
offset_bottom = 90.0
selected = 1
item_count = 4
popup/item_0/text = "Sunrise"
popup/item_0/id = 1
popup/item_1/text = "Day"
popup/item_1/id = 2
popup/item_2/text = "Sunset"
popup/item_2/id = 3
popup/item_3/text = "Night"
popup/item_3/id = 4
[node name="Dust" type="CheckButton" parent="Control" unique_id=804944216]
layout_mode = 0
offset_left = 8.0
offset_top = 91.0
offset_right = 137.0
offset_bottom = 122.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Dust"
[node name="Blur" type="CheckButton" parent="Control" unique_id=2063736566]
layout_mode = 0
offset_left = 8.0
offset_top = 118.0
offset_right = 137.0
offset_bottom = 149.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Blur"
[node name="Pause" type="CheckButton" parent="Control" unique_id=1765896343]
layout_mode = 0
offset_left = 143.0
offset_top = 31.0
offset_right = 238.0
offset_bottom = 62.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Pause"
[node name="Shadows" type="CheckButton" parent="Control" unique_id=956633222]
layout_mode = 0
offset_left = 8.0
offset_top = 145.0
offset_right = 137.0
offset_bottom = 176.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
button_pressed = true
text = "Shadows"
[node name="RandomWeather" type="Button" parent="Control" unique_id=1536509006]
layout_mode = 0
offset_left = 12.0
offset_top = 314.0
offset_right = 195.0
offset_bottom = 345.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Random Weather"
[node name="WeatherEventLabel" type="Label" parent="Control" unique_id=322337968]
layout_mode = 0
offset_left = 1656.0
offset_top = 11.0
offset_right = 1908.0
offset_bottom = 34.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Weather: Clear"
[node name="Fog" type="CheckButton" parent="Control" unique_id=526128915]
layout_mode = 0
offset_left = 7.0
offset_top = 228.0
offset_right = 97.0
offset_bottom = 259.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Fog"
[node name="UpdateRails" type="Button" parent="Control" unique_id=745513027]
layout_mode = 0
offset_left = 12.0
offset_top = 351.0
offset_right = 195.0
offset_bottom = 382.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
text = "Update Rails"
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1016294400]
environment = SubResource("Environment_5p27e")
compositor = SubResource("Compositor_ljvyb")
@@ -584,14 +365,14 @@ transform = Transform3D(-0.09359112, 0, 0.9713834, 0, 0.56225973, 0, -0.38276488
[node name="Fuji4" parent="." unique_id=930179001 instance=ExtResource("99_61psf")]
transform = Transform3D(-0.09359112, 0, 0.9713834, 0, 0.56225973, 0, -0.38276488, 0, -0.23751618, 239.46135, 1.7057877, 224.6928)
[node name="Landscape" parent="Fuji4" index="0" unique_id=244602034]
[node name="Landscape" parent="Fuji4" index="0" unique_id=1897614485]
transform = Transform3D(28.638817, 1.7053026e-13, -7.6293945e-06, 0, 13.6219845, 2.1621709e-06, 0, -1.0284306e-06, 28.638834, -10.786804, 5.0069, 17.382736)
surface_material_override/0 = SubResource("ShaderMaterial_g1vc5")
[node name="Fuji5" parent="." unique_id=1070037082 instance=ExtResource("99_61psf")]
transform = Transform3D(0.0935979, 0, 0.9713791, 0, 0.56225973, 0, -0.38276324, 0, 0.23753339, -275.95566, -3.4616928, 232.02234)
[node name="Landscape" parent="Fuji5" index="0" unique_id=244602034]
[node name="Landscape" parent="Fuji5" index="0" unique_id=1897614485]
transform = Transform3D(28.638819, 1.7053026e-13, -7.6293945e-06, 0, 13.6219845, 2.1621709e-06, 0, -1.0284306e-06, 28.638836, -10.786743, 6.703195, 17.382767)
surface_material_override/0 = SubResource("ShaderMaterial_g1vc5")
@@ -601,7 +382,7 @@ transform = Transform3D(-4.88843, -0.020050459, 0.86837775, -0.010355438, 4.9646
[node name="Fuji6" parent="." unique_id=150126281 instance=ExtResource("100_0aqpp")]
transform = Transform3D(-5.287449, -0.020231497, 0.22351237, -0.011200703, 5.009496, 0.014500697, -0.9394429, 0.05414178, -1.2581636, 32.446022, 15.848213, 525.54346)
[node name="Mt Fuji_simplified_3d_mesh" parent="Fuji6" index="0" unique_id=1389340781]
[node name="Mt Fuji_simplified_3d_mesh" parent="Fuji6" index="0" unique_id=206531083]
transform = Transform3D(0.5151193, -0.011206273, -0.07264297, 0.077138014, 0.07483422, 0.48510167, 3.5762787e-07, -0.4938935, 0.07515043, 6.299696, 12.244916, 3.004303)
surface_material_override/0 = SubResource("ShaderMaterial_vvb5q")
@@ -610,50 +391,22 @@ transform = Transform3D(2.815, -4.250532e-07, 4.250532e-07, -4.250532e-07, -2.81
mesh = SubResource("PlaneMesh_mrhmq")
surface_material_override/0 = SubResource("ShaderMaterial_4j5xl")
[node name="TextureRect" type="TextureRect" parent="." unique_id=42270833]
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -363.0
offset_top = 53.0
offset_right = 363.0
offset_bottom = 320.0
grow_horizontal = 2
scale = Vector2(1.115, 1.115)
pivot_offset_ratio = Vector2(0.5, 0.5)
texture = ExtResource("4_s4fdn")
[node name="PlayButton" parent="." unique_id=600844315 instance=ExtResource("100_g1vc5")]
unique_name_in_owner = true
custom_minimum_size = Vector2(310, 100)
offset_left = 1382.0
offset_top = 565.00006
offset_right = 1390.0
offset_bottom = 575.00006
rotation = -0.009196131
[node name="SettingsButton" parent="." unique_id=1859615781 instance=ExtResource("100_g1vc5")]
unique_name_in_owner = true
custom_minimum_size = Vector2(310, 100)
offset_left = 1373.0
offset_top = 710.0
offset_right = 1381.0
offset_bottom = 720.0
rotation = 0.06252365
image = ExtResource("101_mrhmq")
[node name="QuitButton" parent="." unique_id=651503398 instance=ExtResource("100_g1vc5")]
unique_name_in_owner = true
custom_minimum_size = Vector2(303.115, 100)
offset_left = 1398.0
offset_top = 865.0
offset_right = 1406.0
offset_bottom = 875.0
rotation = 0.022713656
image = ExtResource("102_4j5xl")
[node name="Sign" parent="." unique_id=1434874277 instance=ExtResource("103_mrhmq")]
[node name="Sign" parent="." unique_id=1434874277 node_paths=PackedStringArray("sub_viewport") instance=ExtResource("103_mrhmq")]
transform = Transform3D(-0.018105423, -0.08729696, 1.6876467, 0.3427237, 1.6524807, 0.08915475, -1.6547844, 0.3432014, -7.853079e-08, 0.94805247, 4.0550222, -8.807153)
script = ExtResource("101_4j5xl")
sub_viewport = NodePath("../MainMenuUI/SubViewport")
[node name="QuadSign" type="MeshInstance3D" parent="Sign" unique_id=1021657823]
unique_name_in_owner = true
transform = Transform3D(0.20068285, 0.112294786, 0.9731978, 0.10700007, 0.9849523, -0.13571543, -0.97379464, 0.1313681, 0.18564747, 0.2177186, 1.3554051, 0.04257369)
mesh = SubResource("QuadMesh_pnf06")
[node name="Area3D" type="Area3D" parent="Sign/QuadSign" unique_id=446843206]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Sign/QuadSign/Area3D" unique_id=1980147161]
unique_name_in_owner = true
transform = Transform3D(1, 2.0116568e-07, -1.4901161e-08, -3.7252903e-09, 1, 2.2351742e-08, 0, -6.7055225e-08, 1.0000002, -0.046020508, 0.0025634766, -0.037475586)
shape = SubResource("BoxShape3D_4j5xl")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." unique_id=1950247032]
transform = Transform3D(1.5203506, -0.44894534, 0.030680113, -0.021315442, 0.030708417, 1.7382143, -0.4068166, -1.6794026, 0.023582276, 276.50534, 23.57726, 236.73982)
@@ -670,22 +423,77 @@ transform = Transform3D(1.6832176, -0.017943796, 0.008806392, -0.013573697, 0.01
mesh = SubResource("PlaneMesh_4j5xl")
surface_material_override/0 = ExtResource("104_mrhmq")
[connection signal="toggled" from="Control/Snow" to="Control" method="_on_snow_toggled"]
[connection signal="toggled" from="Control/Rain" to="Control" method="_on_rain_toggled"]
[connection signal="toggled" from="Control/Wind" to="Control" method="_on_wind_toggled"]
[connection signal="value_changed" from="Control/WindSlider" to="Control" method="_on_wind_slider_value_changed"]
[connection signal="toggled" from="Control/Fireflies" to="Control" method="_on_fireflies_toggled"]
[connection signal="toggled" from="Control/Storm" to="Control" method="_on_storm_toggled"]
[connection signal="value_changed" from="Control/DayTimeSlider" to="Control" method="_on_day_time_slider_value_changed"]
[connection signal="item_selected" from="Control/DayTimeOptions" to="Control" method="_on_option_button_item_selected"]
[connection signal="toggled" from="Control/Dust" to="Control" method="_on_dust_toggled"]
[connection signal="toggled" from="Control/Blur" to="Control" method="_on_blur_toggled"]
[connection signal="toggled" from="Control/Pause" to="Control" method="_on_pause_toggled"]
[connection signal="toggled" from="Control/Shadows" to="Control" method="_on_shadows_toggled"]
[connection signal="pressed" from="Control/RandomWeather" to="Control" method="_on_random_weather_pressed"]
[connection signal="toggled" from="Control/Fog" to="Control" method="_on_fog_toggled"]
[connection signal="pressed" from="Control/UpdateRails" to="Control" method="_on_update_rails_pressed"]
[node name="MainMenuUI" type="Control" parent="." unique_id=1919891914]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("102_5hxod")
[node name="TextureRect" type="TextureRect" parent="MainMenuUI" unique_id=42270833]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -363.0
offset_top = 53.0
offset_right = 363.0
offset_bottom = 320.0
grow_horizontal = 2
scale = Vector2(1.115, 1.115)
pivot_offset_ratio = Vector2(0.5, 0.5)
texture = ExtResource("4_s4fdn")
[node name="SettingsMenu" parent="MainMenuUI" unique_id=513569488 instance=ExtResource("103_4j5xl")]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_right = 0.0
anchor_bottom = 0.5
offset_left = 184.0
offset_top = -91.0
offset_right = 808.0
offset_bottom = 434.0
grow_vertical = 2
[node name="SubViewport" type="SubViewport" parent="MainMenuUI" unique_id=189506470]
unique_name_in_owner = true
transparent_bg = true
render_target_update_mode = 4
[node name="OptionMenu" parent="MainMenuUI/SubViewport" unique_id=1055457221 instance=ExtResource("102_vvb5q")]
unique_name_in_owner = true
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -32.0
offset_top = -10.0
offset_right = -32.0
offset_bottom = -10.0
[node name="VBoxContainer" parent="MainMenuUI/SubViewport/OptionMenu" index="0" unique_id=508055524]
anchor_top = 0.3037037
anchor_bottom = 0.6962963
offset_top = 6.0
offset_bottom = -6.0
theme_override_constants/separation = 64
[node name="ResumeButton" parent="MainMenuUI/SubViewport/OptionMenu/VBoxContainer" index="1" unique_id=635721927]
visible = false
[node name="SaveButton" parent="MainMenuUI/SubViewport/OptionMenu/VBoxContainer" index="3" unique_id=1161034414]
visible = false
[connection signal="input_event" from="Sign/QuadSign/Area3D" to="Sign" method="_on_area_3d_input_event"]
[editable path="Fuji4"]
[editable path="Fuji5"]
[editable path="Fuji6"]
[editable path="MainMenuUI/SubViewport/OptionMenu"]

View File

@@ -1,6 +1,5 @@
[gd_scene format=4 uid="uid://vjf4bdxd8saj"]
[ext_resource type="Script" uid="uid://bw42tcfoee7xl" path="res://docs/museums/biome_generator/museum_biome_generator.gd" id="1_ocmpv"]
[ext_resource type="Shader" uid="uid://bneoex8xpmcm8" path="res://core/daynight/sky.gdshader" id="2_yigf5"]
[ext_resource type="Texture2D" uid="uid://dest0qa7vaid0" path="res://core/daynight/stars_albedo.png" id="3_b8hse"]
[ext_resource type="Script" uid="uid://brcimd12tx3dm" path="res://core/daynight/edge_detection_compositor.gd" id="4_lpdy6"]
@@ -196,8 +195,7 @@ _data = {
}
point_count = 93
[node name="museum" type="Node3D" unique_id=2135293927]
script = ExtResource("1_ocmpv")
[node name="main_scene" type="Node3D" unique_id=2135293927]
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1936550760]
environment = SubResource("Environment_xtogr")