Compare commits
No commits in common. "development" and "testbuild-moritz-2026-01-23" have entirely different histories.
developmen
...
testbuild-
|
|
@ -1,50 +1,24 @@
|
|||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
||||
|
||||
# Explicit text files
|
||||
*.gd text eol=lf
|
||||
*.gdshader text eol=lf
|
||||
*.cfg text eol=lf
|
||||
*.tscn text eol=lf
|
||||
*.tres text eol=lf
|
||||
*.import text eol=lf
|
||||
*.godot text eol=lf
|
||||
*.md text eol=lf
|
||||
*.txt text eol=lf
|
||||
*.json text eol=lf
|
||||
*.csv text eol=lf
|
||||
*.xml text eol=lf
|
||||
*.nix text eol=lf
|
||||
*.svg text eol=lf
|
||||
*.vdf text eol=lf
|
||||
*.translation text eol=lf
|
||||
*.theme text eol=lf
|
||||
# Binary images
|
||||
*.blend filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.glb filter=lfs diff=lfs merge=lfs -text
|
||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.exr filter=lfs diff=lfs merge=lfs -text
|
||||
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.blend1 filter=lfs diff=lfs merge=lfs -text
|
||||
*.aup3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.tga filter=lfs diff=lfs merge=lfs -text
|
||||
*.ico filter=lfs diff=lfs merge=lfs -text
|
||||
# Art source files
|
||||
*.kra filter=lfs diff=lfs merge=lfs -text
|
||||
*.ase filter=lfs diff=lfs merge=lfs -text
|
||||
*.aseprite filter=lfs diff=lfs merge=lfs -text
|
||||
*.xcf filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
# 3D assets
|
||||
*.blend filter=lfs diff=lfs merge=lfs -text
|
||||
*.blend1 filter=lfs diff=lfs merge=lfs -text
|
||||
*.glb filter=lfs diff=lfs merge=lfs -text
|
||||
# Audio
|
||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||
*.flac filter=lfs diff=lfs merge=lfs -text
|
||||
*.aup3 filter=lfs diff=lfs merge=lfs -text
|
||||
# Fonts
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
# Archives & packages
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
# Misc binary
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
|
|
|
|||
|
|
@ -8,10 +8,6 @@ export.cfg
|
|||
export_credentials.cfg
|
||||
*.tmp
|
||||
|
||||
# Mics Backup and temp files
|
||||
*.blend1
|
||||
*.md.backup
|
||||
|
||||
# Imported translations (automatically generated from CSV files)
|
||||
*.translation
|
||||
|
||||
|
|
@ -40,8 +36,6 @@ mono_crash.*.json
|
|||
AGENTS.md
|
||||
CHANGELOG.md
|
||||
ISSUES.md
|
||||
.claude/
|
||||
CLAUDE.md
|
||||
.devcontainer/
|
||||
|
||||
**/.idea
|
||||
|
|
|
|||
BIN
design/cards-src/new_cardsheet_masked.png (Stored with Git LFS)
BIN
design/cards-src/new_cardsheet_masked.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0001.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0001.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0002.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0002.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0003.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0003.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0004.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0004.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0005.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0005.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0006.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0006.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0007.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0007.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0008.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0008.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0009.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0009.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0010.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0010.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0011.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0011.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-aged0012.png (Stored with Git LFS)
BIN
design/cards-src/post-it-aged0012.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0001.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0001.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0002.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0002.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0003.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0003.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0004.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0004.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0005.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0005.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0006.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0006.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0007.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0007.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0008.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0008.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0009.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0009.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0010.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0010.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0011.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0011.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/post-it-new0012.png (Stored with Git LFS)
BIN
design/cards-src/post-it-new0012.png (Stored with Git LFS)
Binary file not shown.
BIN
design/cards-src/second_cardset_compositing.blend (Stored with Git LFS)
BIN
design/cards-src/second_cardset_compositing.blend (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,318 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="2000"
|
||||
height="660"
|
||||
viewBox="0 0 529.16665 174.625"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="sticky-notes.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#999999"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
inkscape:zoom="0.52294229"
|
||||
inkscape:cx="1712.4261"
|
||||
inkscape:cy="651.12348"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1534"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1"><inkscape:page
|
||||
x="0"
|
||||
y="0"
|
||||
width="529.16663"
|
||||
height="174.625"
|
||||
id="page3"
|
||||
margin="0"
|
||||
bleed="0" /><inkscape:page
|
||||
x="539.16663"
|
||||
y="0"
|
||||
width="529.16663"
|
||||
height="174.625"
|
||||
id="page4"
|
||||
margin="0"
|
||||
bleed="0" /><inkscape:page
|
||||
x="1078.3333"
|
||||
y="0"
|
||||
width="529.16663"
|
||||
height="174.625"
|
||||
id="page5"
|
||||
margin="0"
|
||||
bleed="0" /></sodipodi:namedview><defs
|
||||
id="defs1" /><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g3"
|
||||
transform="matrix(0.75000002,0,0,0.74999998,178.24974,-189.17711)"><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0012.png"
|
||||
id="image1-6"
|
||||
x="291.50027"
|
||||
y="407.45837" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0011.png"
|
||||
id="image1-2"
|
||||
x="291.50027"
|
||||
y="329.84726" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0010.png"
|
||||
id="image1-3"
|
||||
x="291.50027"
|
||||
y="252.23615" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0009.png"
|
||||
id="image1-26"
|
||||
x="115.11139"
|
||||
y="407.45837" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0008.png"
|
||||
id="image1-9"
|
||||
x="115.11139"
|
||||
y="329.84726" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0007.png"
|
||||
id="image1-37"
|
||||
x="115.11139"
|
||||
y="252.23615" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0006.png"
|
||||
id="image1-28"
|
||||
x="-61.277512"
|
||||
y="407.45837" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0005.png"
|
||||
id="image1-61"
|
||||
x="-61.277512"
|
||||
y="329.84726" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0004.png"
|
||||
id="image1-1"
|
||||
x="-61.277512"
|
||||
y="252.23615" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0003.png"
|
||||
id="image1-8"
|
||||
x="-237.66641"
|
||||
y="407.45837" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0002.png"
|
||||
id="image1-36"
|
||||
x="-237.66641"
|
||||
y="329.84726" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-new0001.png"
|
||||
id="image1-32"
|
||||
x="-237.66641"
|
||||
y="252.23615" /></g><g
|
||||
id="g1"
|
||||
transform="matrix(0.74999998,0,0,0.74999996,717.41637,-189.61156)"><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0012.png"
|
||||
id="image1-94"
|
||||
x="291.50031"
|
||||
y="408.03766" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0011.png"
|
||||
id="image1-17"
|
||||
x="291.50031"
|
||||
y="330.42654" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0010.png"
|
||||
id="image1-59"
|
||||
x="291.50031"
|
||||
y="252.81543" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0009.png"
|
||||
id="image1-73"
|
||||
x="115.11139"
|
||||
y="408.03766" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0008.png"
|
||||
id="image1-39"
|
||||
x="115.11139"
|
||||
y="330.42654" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0007.png"
|
||||
id="image1-29"
|
||||
x="115.11139"
|
||||
y="252.81543" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0006.png"
|
||||
id="image1-885"
|
||||
x="-61.277512"
|
||||
y="408.03766" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0005.png"
|
||||
id="image1-38"
|
||||
x="-61.277512"
|
||||
y="330.42654" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0004.png"
|
||||
id="image1-15"
|
||||
x="-61.277512"
|
||||
y="252.81543" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0003.png"
|
||||
id="image1-81"
|
||||
x="-237.66641"
|
||||
y="408.03766" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0002.png"
|
||||
id="image1-44"
|
||||
x="-237.66641"
|
||||
y="330.42654" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it0001.png"
|
||||
id="image1-63"
|
||||
x="-237.66641"
|
||||
y="252.81543" /></g><g
|
||||
id="g2"
|
||||
transform="matrix(0.75,0,0,0.74999998,1256.583,-189.17711)"><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0012.png"
|
||||
id="image1-5"
|
||||
x="291.50031"
|
||||
y="407.45837" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0011.png"
|
||||
id="image1-65"
|
||||
x="291.50031"
|
||||
y="329.84726" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0010.png"
|
||||
id="image1-7"
|
||||
x="291.50031"
|
||||
y="252.23615" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0006.png"
|
||||
id="image1-4"
|
||||
x="-61.277512"
|
||||
y="407.45837" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0005.png"
|
||||
id="image1-68"
|
||||
x="-61.277512"
|
||||
y="329.84726" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0004.png"
|
||||
id="image1-64"
|
||||
x="-61.277512"
|
||||
y="252.23615" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0003.png"
|
||||
id="image1-48"
|
||||
x="-237.66641"
|
||||
y="407.45837" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0002.png"
|
||||
id="image1-27"
|
||||
x="-237.66641"
|
||||
y="329.84726" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0001.png"
|
||||
id="image1-10"
|
||||
x="-237.66641"
|
||||
y="252.23615" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0009.png"
|
||||
id="image1-62"
|
||||
x="115.11139"
|
||||
y="407.45837" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0008.png"
|
||||
id="image1-74"
|
||||
x="115.11139"
|
||||
y="329.84726" /><image
|
||||
width="176.3889"
|
||||
height="77.611115"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="post-it-aged0007.png"
|
||||
id="image1-75"
|
||||
x="115.11139"
|
||||
y="252.23615" /></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 9.4 KiB |
Binary file not shown.
BIN
design/post-its.blend (Stored with Git LFS)
BIN
design/post-its.blend (Stored with Git LFS)
Binary file not shown.
|
|
@ -47,7 +47,6 @@ func _update_events():
|
|||
# TODO: Find a cleaner way to cast these values
|
||||
var tmp: Array = []
|
||||
if Engine.is_editor_hint():
|
||||
print("reading project settings")
|
||||
tmp = ProjectSettings.get_setting("input/" + action)["events"]
|
||||
else:
|
||||
tmp = InputMap.action_get_events(action)
|
||||
|
|
|
|||
|
|
@ -5,5 +5,5 @@ func _ready() -> void:
|
|||
$MarkdownLabel.display_file("res://addons/markdownlabel/README.md")
|
||||
$MarkdownLabel.task_checkbox_clicked.connect(
|
||||
func(id: int, line: int, checked: bool, text: String) -> void:
|
||||
print("%s task #%d on line %d: %s" % ["Checked" if checked else "Unchecked", id, line, text])
|
||||
print_debug("%s task #%d on line %d: %s" % ["Checked" if checked else "Unchecked", id, line, text])
|
||||
)
|
||||
|
|
|
|||
|
|
@ -640,7 +640,7 @@ func _reset_escaped_chars(_text: String,code:=false) -> String:
|
|||
func _debug(string: String) -> void:
|
||||
if not _debug_mode:
|
||||
return
|
||||
print(string)
|
||||
print_debug(string)
|
||||
|
||||
func _denotes_fenced_code_block(line: String, character: String) -> bool:
|
||||
var stripped_line := line.strip_edges()
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -5,56 +5,25 @@ extends Node3D
|
|||
@export var index : int = -1
|
||||
@export var signage_group : String
|
||||
|
||||
@export_group("Motion")
|
||||
@export_subgroup("Arrival")
|
||||
@export var pre_arrival_time : float = 17.0 # hold train for this long (to sync with audio!)
|
||||
@export var arrival_time : float = 15.0 # train takes this long to enter (shorter = faster)
|
||||
@export var trans_arrival : Tween.TransitionType = Tween.TRANS_CIRC
|
||||
@export var ease_arrival : Tween.EaseType = Tween.EASE_OUT
|
||||
|
||||
@export_subgroup("In Station")
|
||||
@export var station_wait_time : float = 20.0
|
||||
|
||||
@export_subgroup("Departure")
|
||||
@export var pre_arrival_time : float = 17.0
|
||||
@export var arrival_time : float = 15.0
|
||||
@export var pre_leave_time : float = 20.0
|
||||
@export var door_close_time : float = 1.0
|
||||
@export var leave_time : float = 15.0 # train takes this long to leave the platform
|
||||
@export var trans_departure : Tween.TransitionType = Tween.TRANS_QUAD
|
||||
@export var ease_departure : Tween.EaseType = Tween.EASE_IN
|
||||
|
||||
@export var leave_time : float = 15.0
|
||||
@export var post_leave_time : float = 5.0
|
||||
|
||||
@onready var origination : Node3D = $Origination
|
||||
@onready var destination : Node3D = $Destination
|
||||
|
||||
@onready var subway : SubwayTrain = $Subway
|
||||
|
||||
@onready var subway_audio_main : AudioStreamPlayer3D = %SubwayTrainAudio
|
||||
@onready var subway_audio_2 : AudioStreamPlayer3D = %SubwayTrainAudioIntense
|
||||
|
||||
var player_on_board : bool:
|
||||
get: return %EntryDetect.overlaps_body(State.player)
|
||||
|
||||
var tween : Tween = null
|
||||
|
||||
|
||||
## Player is about to arrive
|
||||
signal train_approaching(track : Dolly)
|
||||
|
||||
## Player has fully arrived at station
|
||||
signal train_arrived(track : Dolly)
|
||||
|
||||
## Player is departing in train
|
||||
signal train_departing(track : Dolly)
|
||||
|
||||
## Player has fully left the station with train
|
||||
signal train_left(track : Dolly)
|
||||
|
||||
signal departure(index : int)
|
||||
|
||||
func _ready() -> void:
|
||||
reset()
|
||||
|
||||
func set_line(line: StringName):
|
||||
subway.set_line(line)
|
||||
|
||||
## One arrival and departure
|
||||
func cycle() -> void:
|
||||
await arrive()
|
||||
|
|
@ -64,60 +33,48 @@ func reset() -> void:
|
|||
if tween: tween.kill()
|
||||
subway.global_position = origination.global_position
|
||||
|
||||
func _seat_player() -> void:
|
||||
prints("Player departs inside Train", self.name)
|
||||
State.player.reparent(subway)
|
||||
func _seat_player_if_inside() -> bool:
|
||||
if %EntryDetect.overlaps_body(State.player):
|
||||
prints("Player departs inside Train", self.name)
|
||||
|
||||
State.player.reparent(subway)
|
||||
return true
|
||||
return false
|
||||
|
||||
|
||||
func _unseat_player() -> void:
|
||||
prints("Player arrives on Train", self.name)
|
||||
State.player.reparent(get_parent())
|
||||
|
||||
func _unseat_player_if_inside() -> void:
|
||||
if %EntryDetect.overlaps_body(State.player):
|
||||
prints("Player arrives on Train", self.name)
|
||||
State.player.reparent(get_parent())
|
||||
|
||||
|
||||
func arrive(endstation : bool = false) -> void:
|
||||
subway_audio_main.play()
|
||||
subway_audio_2.play()
|
||||
|
||||
%SubwayTrainAudio.play(0)
|
||||
%SubwayTrainAudioIntense.play(0)
|
||||
await get_tree().create_timer(pre_arrival_time).timeout
|
||||
|
||||
if player_on_board:
|
||||
train_approaching.emit(self)
|
||||
|
||||
if tween: tween.kill()
|
||||
tween = create_tween().set_trans(trans_arrival).set_ease(ease_arrival)
|
||||
tween = create_tween().set_trans(Tween.TRANS_CIRC).set_ease(Tween.EASE_OUT)
|
||||
tween.parallel().tween_property(subway, "global_position", self.global_position, arrival_time)
|
||||
await tween.finished
|
||||
subway.door_open = true
|
||||
|
||||
if player_on_board:
|
||||
_unseat_player()
|
||||
train_arrived.emit(self)
|
||||
|
||||
|
||||
_unseat_player_if_inside()
|
||||
if endstation:
|
||||
subway_audio_main.stop()
|
||||
subway_audio_2.stop()
|
||||
%SubwayTrainAudio.stop()
|
||||
%SubwayTrainAudioIntense.stop()
|
||||
|
||||
|
||||
|
||||
func leave() -> void:
|
||||
await get_tree().create_timer(station_wait_time).timeout
|
||||
await get_tree().create_timer(pre_leave_time).timeout
|
||||
subway.door_open = false
|
||||
await get_tree().create_timer(door_close_time).timeout
|
||||
|
||||
if player_on_board:
|
||||
_seat_player()
|
||||
train_departing.emit(self)
|
||||
|
||||
|
||||
var seated := _seat_player_if_inside()
|
||||
if tween: tween.kill()
|
||||
tween = create_tween().set_trans(trans_departure).set_ease(ease_departure)
|
||||
tween = create_tween().set_trans(Tween.TRANS_QUART).set_ease(Tween.EASE_IN)
|
||||
tween.parallel().tween_property(subway, "global_position", destination.global_position, leave_time)
|
||||
|
||||
# Player is on board and will be leaving
|
||||
await tween.finished
|
||||
await %SubwayTrainAudio.finished
|
||||
|
||||
# Player was on board and has left the station
|
||||
if player_on_board: train_left.emit(self)
|
||||
reset() # Warp back / rewind train position
|
||||
if seated: departure.emit(index)
|
||||
reset()
|
||||
|
|
|
|||
|
|
@ -1,77 +1,66 @@
|
|||
class_name Fahrplan extends Node3D
|
||||
|
||||
## easy graph: <station> : [Track1Train1 (next halt), Track1Train2], [Track2Train1(next halt), ...]
|
||||
## CAVEAT: These must be direct children of the fahrplan!
|
||||
@onready var fahrplan : Dictionary[Station, Array] = {
|
||||
$hirschfeld: [["u2", $uni_mensa, "u1", $parity_square],[]],
|
||||
$uni_mensa : [["u2", $uni_main],[]],
|
||||
$uni_main: [["u2", $ministry],["u8", $rosenthal, "u2", $uni_mensa, "u1", $saint_exupery]],
|
||||
$parity_square : [["u4", $saint_exupery, "u1", $saint_exupery], []],
|
||||
$saint_exupery : [["u4", $rosenthal], ["u1", $uni_main]],
|
||||
@onready var fahrplan : Dictionary[Node3D, Array] = {
|
||||
$station_hirschfeld: [[$station_university_mensa, $station_parity_square],[]],
|
||||
$station_hirschfeld : [[$station_university_mensa, $station_parity_square],[]],
|
||||
$station_university_mensa : [[$station_university_main],[]],
|
||||
$station_university_main: [[$station_ministry],[$station_rosenthal, $station_university_mensa]],
|
||||
$station_parity_square : [[$station_saint_exupery],[$station_rosenthal]],
|
||||
$station_saint_exupery : [[$station_saint_exupery],[$station_rosenthal]],
|
||||
|
||||
$ministry : [null, null], # Endstation
|
||||
$rosenthal : [null, null], # Endstation
|
||||
$station_ministry : [null,null], # Endstation
|
||||
$station_rosenthal : [null,null], # Endstation
|
||||
}
|
||||
|
||||
## List of all registered station nodes, used to unparent them
|
||||
@onready var stations : Array[Station] = fahrplan.keys()
|
||||
|
||||
@onready var tracks : Array[Dolly] = [%Track0Dolly, %Track1Dolly]
|
||||
|
||||
@export var empty_train_random_delay : Vector2 = Vector2(5.0, 20.0)
|
||||
@export var random_wait : Vector2 = Vector2(1.0, 10.0)
|
||||
|
||||
func _set_signage_texts(group: StringName, message: String) -> void:
|
||||
get_tree().set_group(group, "text", "")
|
||||
get_tree().call_group(group, "set_text", "")
|
||||
for i in range(len(message)):
|
||||
get_tree().set_group(group, "text", message.substr(0, i+1))
|
||||
get_tree().call_group(group, "set_text", message.substr(0, i+1))
|
||||
await get_tree().create_timer(0.05).timeout
|
||||
|
||||
func _ready() -> void:
|
||||
var x : Node3D = $station_hirschfeld
|
||||
print(x.name)
|
||||
await get_tree().process_frame
|
||||
|
||||
tracks[0].train_left.connect(_player_train_left)
|
||||
tracks[1].train_left.connect(_player_train_left)
|
||||
_unparent_all_stations_except($hirschfeld)
|
||||
enter_station(current)
|
||||
tracks[0].departure.connect(player_departed)
|
||||
tracks[1].departure.connect(player_departed)
|
||||
enter_station($station_hirschfeld)
|
||||
|
||||
|
||||
## The current station
|
||||
var current : Station
|
||||
var current_station : Node3D = null
|
||||
var stop := false
|
||||
|
||||
var destinations : Array[Station] = [null, null]
|
||||
var destinations : Array[Node3D] = [null, null]
|
||||
|
||||
## Begins the scheduled traffic (looping through the list of destinations) on a given track
|
||||
func _begin_traffic_loop(track: Dolly, cancel: Array) -> void:
|
||||
if not track.player_on_board and fahrplan[current][track.index] == null: # empty trains dont arrive at endstation
|
||||
_set_signage_texts(track.signage_group, "Gleis gesperrt")
|
||||
return
|
||||
func train_traffic_loop(track: Dolly, cancel: Array) -> void:
|
||||
|
||||
if fahrplan[current][track.index] == null: # empty trains dont arrive at endstation
|
||||
if fahrplan[current_station][track.index] == null: # empty array (just no routes) would be falsy
|
||||
track.arrive(true)
|
||||
_set_signage_texts(track.signage_group, "Endstation")
|
||||
return
|
||||
|
||||
var routes : Array = fahrplan[current][track.index]
|
||||
var routes : Array = fahrplan[current_station][track.index]
|
||||
if routes.is_empty():
|
||||
_set_signage_texts(track.signage_group, "Verkehr z. Zt.\nunregelmäßig")
|
||||
return
|
||||
|
||||
while true:
|
||||
if cancel.is_empty(): return # abort the loop
|
||||
|
||||
var line : StringName = routes.pop_front()
|
||||
var next : Station = routes.pop_front()
|
||||
|
||||
routes.append(line) # It's a ring buffer
|
||||
|
||||
var next : Node = routes.pop_front()
|
||||
routes.append(next) # It's a ring buffer
|
||||
|
||||
destinations[track.index] = next
|
||||
track.set_line(line)
|
||||
_set_signage_texts(track.signage_group, current.get_label(line, next)) # TODO: load nice string
|
||||
_set_signage_texts(track.signage_group, next.name) # TODO: load nice string
|
||||
|
||||
# Vary our schedule a little by making empty trains wait a random amount of time
|
||||
if not track.player_on_board:
|
||||
await get_tree().create_timer(randf_range(empty_train_random_delay.x, empty_train_random_delay.y)).timeout
|
||||
await get_tree().create_timer(randf_range(random_wait.x, random_wait.y)).timeout
|
||||
|
||||
if cancel.is_empty(): return # abort the loop
|
||||
await track.cycle() # arrive and depart
|
||||
|
|
@ -79,26 +68,16 @@ func _begin_traffic_loop(track: Dolly, cancel: Array) -> void:
|
|||
|
||||
var cancellation_token : Array
|
||||
|
||||
func enter_station(station: Station):
|
||||
func enter_station(station: Node):
|
||||
prints("------------", "ENTER STATION", station, station.name, "------------")
|
||||
remove_child(current)
|
||||
current = station
|
||||
add_child(station)
|
||||
|
||||
if current_station: current_station.visible = false
|
||||
current_station = station
|
||||
current_station.visible = true
|
||||
cancellation_token = ["go"] # Allocate a new stopping token
|
||||
_begin_traffic_loop(tracks[0], cancellation_token)
|
||||
_begin_traffic_loop(tracks[1], cancellation_token)
|
||||
train_traffic_loop(tracks[0], cancellation_token)
|
||||
train_traffic_loop(tracks[1], cancellation_token)
|
||||
|
||||
|
||||
func _player_train_left(track: Dolly) -> void:
|
||||
func player_departed(track_index : int) -> void:
|
||||
cancellation_token.clear()
|
||||
enter_station(destinations[track.index])
|
||||
|
||||
func _unparent_all_stations_except(except : Node3D):
|
||||
for station in stations:
|
||||
assert(station.get_parent() == self, "A station that isn't a child of Fahrplan is in the Fahrplan: %s" % station.name)
|
||||
station.visible = true # Make visible by default, parenting handles visibility and collision
|
||||
if station == except:
|
||||
current = station
|
||||
continue
|
||||
remove_child(station)
|
||||
enter_station(destinations[track_index])
|
||||
|
|
|
|||
|
|
@ -1,8 +1,18 @@
|
|||
extends Node3D
|
||||
class_name Station
|
||||
class_name Station extends Resource
|
||||
|
||||
@export var i18n_key : StringName
|
||||
@export var train_labels : Dictionary[StringName,String] = {}
|
||||
enum id {
|
||||
HIRSCHFELD,
|
||||
PARITY,
|
||||
EXUPERY,
|
||||
ROSENTHAL,
|
||||
UNI_1,
|
||||
UNI_2,
|
||||
MINISTRY
|
||||
}
|
||||
|
||||
func get_label(line: StringName, next_stop: Station) -> String:
|
||||
return train_labels.get(line+next_stop.name, line+next_stop.name)
|
||||
@export var station_name: StringName = ""
|
||||
@export var memory: Scenes.id = Scenes.id.YOUTH_DRAVEN
|
||||
@export_file("*.tscn") var station_path: String = ""
|
||||
@export var arriving_lines: Dictionary[TrainLine.id, float]
|
||||
@export var departing_lines: Dictionary[TrainLine.id, float]
|
||||
@export var announcement: AudioStream
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
uid://pmhadgsfinjc
|
||||
uid://cyeh7sa20bmcf
|
||||
|
|
|
|||
|
|
@ -1,23 +1,26 @@
|
|||
extends Room
|
||||
extends RoomTemplate
|
||||
class_name SubwaySequence
|
||||
|
||||
@export var all_stations: Dictionary[Station.id, Station]
|
||||
@export var all_lines: Dictionary[TrainLine.id, TrainLine]
|
||||
func _ready() -> void:
|
||||
id = State.rooms.TRANSITION
|
||||
super._ready()
|
||||
id = State.rooms.TRANSITION
|
||||
|
||||
func get_ready_async() -> void:
|
||||
await super.get_ready_async()
|
||||
|
||||
func start_room_async():
|
||||
await super.start_room_async()
|
||||
|
||||
func start_room():
|
||||
super.start_room()
|
||||
Scenes.player_enable.emit(true)
|
||||
|
||||
await Main.curtain.open()
|
||||
var next_room : String = await proceed # emitted by burnout_station.gd and therapy_station.gd
|
||||
await Main.curtain.black()
|
||||
Main._load_room(next_room)
|
||||
|
||||
|
||||
func pull_save_state(save: SaveGame) -> void:
|
||||
#FIXME
|
||||
save.sequences_enabled = Scenes.enabled_sequences
|
||||
save.current_room = State.rooms.ADULTHOOD
|
||||
save_game = save
|
||||
|
||||
# Call parent to restore player position
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
extends Node3D
|
||||
class_name SubwayTrain
|
||||
|
||||
@export var materials : Dictionary[StringName, Material] = {}
|
||||
|
||||
@export var door_open: bool:
|
||||
set(open):
|
||||
if door_open == open: return
|
||||
|
|
@ -12,11 +10,8 @@ class_name SubwayTrain
|
|||
else:
|
||||
%TrainModel/AnimationPlayer.play("door_close")
|
||||
|
||||
%FrontWallClosed.disabled = door_open
|
||||
func _ready() -> void:
|
||||
%TrainModel/AnimationPlayer.animation_finished.connect(_on_animation_finished)
|
||||
|
||||
|
||||
func set_line(line : StringName):
|
||||
$TrainModel/traun_hull.material_overlay = materials[line]
|
||||
$TrainModel/LineLabelBack.text = line.to_upper()
|
||||
$TrainModel/LineLabelFront.text = line.to_upper()
|
||||
|
||||
func _on_animation_finished(_discard) -> void:
|
||||
%FrontWallClosed.disabled = door_open
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
class_name TrainLine extends Resource
|
||||
|
||||
enum id {
|
||||
NONE,
|
||||
RING,
|
||||
U2,
|
||||
U3,
|
||||
U8
|
||||
}
|
||||
|
||||
@export var train_id: id = id.NONE
|
||||
@export var destination: StringName = ""
|
||||
@export var via: StringName = ""
|
||||
@export var stops: Dictionary[Station, float]
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dfkq0djtygmma
|
||||
|
|
@ -5,4 +5,5 @@ resource_name = "display"
|
|||
cull_mode = 2
|
||||
albedo_color = Color(0.16613327, 0.10919999, 0.28, 1)
|
||||
metallic = 0.1
|
||||
roughness = 0.4
|
||||
metallic_specular = 0.3
|
||||
roughness = 0.15
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene format=3 uid="uid://tuv111h6jsnu"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://tuv111h6jsnu"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://swh2v0icrwum" path="res://base-environments/transition/import/meta_station.glb" id="1_yekr5"]
|
||||
[ext_resource type="Shader" uid="uid://i3k8blcd043t" path="res://base-environments/transition/shaders/escalator_disp.gdshader" id="2_klf6x"]
|
||||
|
|
@ -56,103 +56,103 @@ shader_parameter/density = 0.05
|
|||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_yyrp7"]
|
||||
|
||||
[node name="meta_station" unique_id=862984273 instance=ExtResource("1_yekr5")]
|
||||
[node name="meta_station" instance=ExtResource("1_yekr5")]
|
||||
|
||||
[node name="water_001" parent="." index="0" unique_id=111926402]
|
||||
[node name="water_001" parent="." index="0"]
|
||||
gi_mode = 0
|
||||
|
||||
[node name="water" parent="." index="1" unique_id=1328856464]
|
||||
[node name="water" parent="." index="1"]
|
||||
gi_mode = 0
|
||||
|
||||
[node name="signal_lights_004" parent="." index="21" unique_id=972850034]
|
||||
[node name="signal_lights_004" parent="." index="21"]
|
||||
gi_mode = 2
|
||||
|
||||
[node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_004" index="0" unique_id=1439750635]
|
||||
[node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_004" index="0"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, -8.526513e-14, 0, 8.526513e-14, 1, 2.947373, 0.36035156, 1.2887176e-07)
|
||||
stream = ExtResource("2_yyrp7")
|
||||
unit_size = 2.0
|
||||
autoplay = true
|
||||
bus = &"sfx"
|
||||
|
||||
[node name="signal_lights_003" parent="." index="22" unique_id=1393034]
|
||||
[node name="signal_lights_003" parent="." index="22"]
|
||||
gi_mode = 2
|
||||
|
||||
[node name="signal_lights_002" parent="." index="23" unique_id=52720530]
|
||||
[node name="signal_lights_002" parent="." index="23"]
|
||||
gi_mode = 2
|
||||
|
||||
[node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_002" index="0" unique_id=1680482042]
|
||||
[node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_002" index="0"]
|
||||
transform = Transform3D(1, 0, -8.351873e-23, 0, 1, 1.9106857e-15, -8.351873e-23, 0, 1, -8.365656, -0.024308532, 3.6567445e-07)
|
||||
stream = ExtResource("2_yyrp7")
|
||||
unit_size = 2.0
|
||||
autoplay = true
|
||||
bus = &"sfx"
|
||||
|
||||
[node name="signal_lights_001" parent="." index="24" unique_id=1944425223]
|
||||
[node name="signal_lights_001" parent="." index="24"]
|
||||
gi_mode = 2
|
||||
|
||||
[node name="railway_lighting" parent="." index="35" unique_id=2080917627]
|
||||
[node name="railway_lighting" parent="." index="35"]
|
||||
cast_shadow = 0
|
||||
gi_mode = 2
|
||||
|
||||
[node name="FluorescentLuz" parent="." index="41" unique_id=1745682064]
|
||||
[node name="FluorescentLuz" parent="." index="41"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="escalator_stairs_L" parent="." index="43" unique_id=1621434836]
|
||||
[node name="escalator_stairs_L" parent="." index="43"]
|
||||
custom_aabb = AABB(-0.8, 0, -1, 1.6, 3.5, 7)
|
||||
gi_mode = 0
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_jh12p")
|
||||
|
||||
[node name="Ceiling" parent="." index="44" unique_id=143112021]
|
||||
[node name="Ceiling" parent="." index="44"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="escalator_stairs_L_001" parent="." index="46" unique_id=774045853]
|
||||
[node name="escalator_stairs_L_001" parent="." index="46"]
|
||||
transform = Transform3D(1, 0, 2.3841858e-07, 0, 1, 0, -2.3841858e-07, 0, 1, -0.854971, 3.1997495, 4.8378654)
|
||||
material_override = SubResource("ShaderMaterial_klf6x")
|
||||
custom_aabb = AABB(-0.8, -3, -9, 1.6, 3.5, 7)
|
||||
gi_mode = 0
|
||||
|
||||
[node name="Voids" type="Node3D" parent="." index="47" unique_id=1990649157]
|
||||
[node name="Voids" type="Node3D" parent="." index="47"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.99999994, 0, 0, 0, 1, 0, 0, 0)
|
||||
|
||||
[node name="Void" type="MeshInstance3D" parent="Voids" index="0" unique_id=145697625]
|
||||
[node name="Void" type="MeshInstance3D" parent="Voids" index="0"]
|
||||
transform = Transform3D(3.52244, 0, 0, 0, -1.1920929e-07, 2.81712, 0, -2.81712, -1.1920929e-07, -6.37235, 1.2251098, 0.16566086)
|
||||
material_override = SubResource("ShaderMaterial_e0ljd")
|
||||
gi_mode = 0
|
||||
mesh = SubResource("PlaneMesh_yyrp7")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="Void2" type="MeshInstance3D" parent="Voids" index="1" unique_id=1359246771]
|
||||
[node name="Void2" type="MeshInstance3D" parent="Voids" index="1"]
|
||||
transform = Transform3D(3.52244, 0, 0, 0, -1.1920929e-07, 2.81712, 0, -2.81712, -1.1920929e-07, 6.372, 1.2249999, 0.16599989)
|
||||
material_override = SubResource("ShaderMaterial_e0ljd")
|
||||
gi_mode = 0
|
||||
mesh = SubResource("PlaneMesh_yyrp7")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="Void3" type="MeshInstance3D" parent="Voids" index="2" unique_id=1648551827]
|
||||
[node name="Void3" type="MeshInstance3D" parent="Voids" index="2"]
|
||||
transform = Transform3D(-3.52244, -2.4628e-07, -1.07652e-14, 0, -1.1920929e-07, 2.81712, -3.07942e-07, 2.81712, 1.1920929e-07, 6.372, 1.2251072, -66.291595)
|
||||
material_override = SubResource("ShaderMaterial_e0ljd")
|
||||
gi_mode = 0
|
||||
mesh = SubResource("PlaneMesh_yyrp7")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="Void4" type="MeshInstance3D" parent="Voids" index="3" unique_id=1928136706]
|
||||
[node name="Void4" type="MeshInstance3D" parent="Voids" index="3"]
|
||||
transform = Transform3D(-3.52244, -2.4628e-07, -1.07652e-14, 0, -1.1920929e-07, 2.81712, -3.07942e-07, 2.81712, 1.1920929e-07, -6.37235, 1.2250023, -66.29199)
|
||||
material_override = SubResource("ShaderMaterial_e0ljd")
|
||||
gi_mode = 0
|
||||
mesh = SubResource("PlaneMesh_yyrp7")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="Void5" type="MeshInstance3D" parent="Voids" index="4" unique_id=144937323]
|
||||
[node name="Void5" type="MeshInstance3D" parent="Voids" index="4"]
|
||||
transform = Transform3D(3.52244, 0, 0, 0, -2.21081, 1.7459902, 0, -1.7459902, -2.21081, 0, 4.91844, 1.5205798)
|
||||
material_override = SubResource("ShaderMaterial_e0ljd")
|
||||
gi_mode = 0
|
||||
mesh = SubResource("PlaneMesh_yyrp7")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="station_display_R" parent="." index="48" unique_id=717625287]
|
||||
[node name="station_display_R" parent="." index="48"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="station_display_R" index="0" unique_id=1483256478 groups=["signage2"]]
|
||||
[node name="Label3D" type="Label3D" parent="station_display_R" index="0" groups=["signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -163,7 +163,7 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="station_display_R" index="1" unique_id=200294395 groups=["signage2"]]
|
||||
[node name="Label3D2" type="Label3D" parent="station_display_R" index="1" groups=["signage2"]]
|
||||
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -174,10 +174,10 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_012" parent="." index="49" unique_id=344629753]
|
||||
[node name="Cube_012" parent="." index="49"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_012" index="0" unique_id=663534524 groups=["signage1"]]
|
||||
[node name="Label3D" type="Label3D" parent="Cube_012" index="0" groups=["signage1"]]
|
||||
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458555, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -188,7 +188,7 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_012" index="1" unique_id=1765168718 groups=["signage1"]]
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_012" index="1" groups=["signage1"]]
|
||||
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -199,10 +199,10 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_014" parent="." index="50" unique_id=1445806880]
|
||||
[node name="Cube_014" parent="." index="50"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_014" index="0" unique_id=433447963 groups=["signage2"]]
|
||||
[node name="Label3D" type="Label3D" parent="Cube_014" index="0" groups=["signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -213,7 +213,7 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_014" index="1" unique_id=504377523 groups=["signage2"]]
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_014" index="1" groups=["signage2"]]
|
||||
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -224,10 +224,10 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_016" parent="." index="51" unique_id=1680412331]
|
||||
[node name="Cube_016" parent="." index="51"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_016" index="0" unique_id=869875951 groups=["signage1", "signage2"]]
|
||||
[node name="Label3D" type="Label3D" parent="Cube_016" index="0" groups=["signage1", "signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -238,7 +238,7 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_016" index="1" unique_id=161017806 groups=["signage1"]]
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_016" index="1" groups=["signage1"]]
|
||||
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -249,10 +249,10 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_010" parent="." index="52" unique_id=1863769251]
|
||||
[node name="Cube_010" parent="." index="52"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_010" index="0" unique_id=521079851 groups=["signage2"]]
|
||||
[node name="Label3D" type="Label3D" parent="Cube_010" index="0" groups=["signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -263,7 +263,7 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_010" index="1" unique_id=1080113923 groups=["signage2"]]
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_010" index="1" groups=["signage2"]]
|
||||
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -274,10 +274,10 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_017" parent="." index="53" unique_id=48237932]
|
||||
[node name="Cube_017" parent="." index="53"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_017" index="0" unique_id=1122044412 groups=["signage1"]]
|
||||
[node name="Label3D" type="Label3D" parent="Cube_017" index="0" groups=["signage1"]]
|
||||
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458555, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -288,7 +288,7 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_017" index="1" unique_id=973870713 groups=["signage1"]]
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_017" index="1" groups=["signage1"]]
|
||||
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.855903, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -299,10 +299,10 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_018" parent="." index="54" unique_id=176965991]
|
||||
[node name="Cube_018" parent="." index="54"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_018" index="0" unique_id=223573175 groups=["signage2"]]
|
||||
[node name="Label3D" type="Label3D" parent="Cube_018" index="0" groups=["signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -313,7 +313,7 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_018" index="1" unique_id=1733940824 groups=["signage2"]]
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_018" index="1" groups=["signage2"]]
|
||||
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -324,10 +324,10 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_019" parent="." index="55" unique_id=1049546297]
|
||||
[node name="Cube_019" parent="." index="55"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_019" index="0" unique_id=1354074723 groups=["signage1"]]
|
||||
[node name="Label3D" type="Label3D" parent="Cube_019" index="0" groups=["signage1"]]
|
||||
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
@ -338,7 +338,7 @@ outline_size = 2
|
|||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_019" index="1" unique_id=1646653447 groups=["signage1"]]
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_019" index="1" groups=["signage1"]]
|
||||
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_resource type="ShaderMaterial" format=3 uid="uid://b3wybjajg4dr3"]
|
||||
[gd_resource type="ShaderMaterial" load_steps=10 format=3 uid="uid://b3wybjajg4dr3"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://dg241b0ow4owm" path="res://base-environments/transition/import/textures/StationTiles_Albedo.png" id="1_oop75"]
|
||||
[ext_resource type="Texture2D" uid="uid://dst0u5b51mx4h" path="res://base-environments/transition/shaders/water_color.exr" id="1_s12gp"]
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
[resource]
|
||||
resource_name = "train_windows"
|
||||
transparency = 4
|
||||
cull_mode = 2
|
||||
albedo_texture = ExtResource("1_qqnyp")
|
||||
metallic = 1.0
|
||||
metallic_texture = ExtResource("2_orwl3")
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
resource_name = "train_windows_transparent"
|
||||
transparency = 1
|
||||
blend_mode = 4
|
||||
cull_mode = 2
|
||||
albedo_texture = ExtResource("1_p8q8d")
|
||||
metallic = 1.0
|
||||
metallic_texture = ExtResource("2_eds1u")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
shader_type spatial;
|
||||
render_mode cull_disabled, blend_add, unshaded;
|
||||
render_mode cull_back, blend_add, unshaded;
|
||||
|
||||
varying vec3 world_pos;
|
||||
uniform float state = 0.0;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://dchm78gv31r6a"]
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://dchm78gv31r6a"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://dpowid5cwvgu0" path="res://base-environments/transition/shaders/timetravel.gdshader" id="1_0da7x"]
|
||||
[ext_resource type="Texture2D" uid="uid://dst0u5b51mx4h" path="res://base-environments/transition/shaders/water_color.exr" id="2_4vy32"]
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,8 +1,5 @@
|
|||
extends Station
|
||||
extends Node3D
|
||||
|
||||
func _ready() -> void:
|
||||
%PlayerDetect.body_entered.connect(func(body):
|
||||
if visible and body is PlayerController:
|
||||
State.room.save_game.subway_burnout = true
|
||||
await Main.curtain.black()
|
||||
State.room.proceed.emit(Main.adulthood_room_path))
|
||||
State.room.save_game.burnout = true
|
||||
%PlayerDetect.body_entered.connect(func(body): if visible and body is PlayerController: State.room.proceed.emit(Main.adulthood_room_path))
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,14 +1,14 @@
|
|||
[gd_scene format=3 uid="uid://d2j0d88axhfue"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://d2j0d88axhfue"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c1ivlhueth0xe" path="res://base-environments/transition/import/dungeon_station.glb" id="1_4tuwp"]
|
||||
[ext_resource type="AudioStream" uid="uid://31dunmt6i7ck" path="res://base-environments/transition/audio/328953__sandermotions__escalator-1.wav" id="3_ke0al"]
|
||||
[ext_resource type="PackedScene" uid="uid://tuv111h6jsnu" path="res://base-environments/transition/import/textures/meta_station_imported.tscn" id="5_ru87u"]
|
||||
|
||||
[node name="station_hirschfeld" unique_id=825756048 instance=ExtResource("1_4tuwp")]
|
||||
[node name="station_hirschfeld" instance=ExtResource("1_4tuwp")]
|
||||
|
||||
[node name="meta_station" parent="." index="5" unique_id=1517771541 instance=ExtResource("5_ru87u")]
|
||||
[node name="meta_station" parent="." index="5" instance=ExtResource("5_ru87u")]
|
||||
|
||||
[node name="EscalatorAudio" type="AudioStreamPlayer3D" parent="meta_station" index="56" unique_id=775809027]
|
||||
[node name="EscalatorAudio" type="AudioStreamPlayer3D" parent="meta_station" index="56"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5971837, 0)
|
||||
stream = ExtResource("3_ke0al")
|
||||
attenuation_model = 1
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
extends Station
|
||||
extends Node3D
|
||||
|
||||
func _ready() -> void:
|
||||
%PlayerDetect.body_entered.connect(func(body):
|
||||
if visible and body is PlayerController:
|
||||
State.room.save_game.subway_burnout = false
|
||||
await Main.curtain.black()
|
||||
State.room.proceed.emit(Main.adulthood_room_path))
|
||||
%PlayerDetect.body_entered.connect(func(body): if visible and body is PlayerController: State.room.proceed.emit(Main.adulthood_room_path))
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,15 +1,9 @@
|
|||
[gd_scene load_steps=31 format=3 uid="uid://df3ur5wll8vx7"]
|
||||
[gd_scene load_steps=25 format=3 uid="uid://df3ur5wll8vx7"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://4j1tlhfm3p40" path="res://base-environments/transition/subway_train.tscn" id="1_2h2xx"]
|
||||
[ext_resource type="Script" uid="uid://dgfje4druu3sw" path="res://base-environments/transition/code/dolly.gd" id="1_5jpg8"]
|
||||
[ext_resource type="Script" uid="uid://cyohujvfoiof7" path="res://base-environments/transition/code/subway_train.gd" id="2_aacjs"]
|
||||
[ext_resource type="AudioStream" uid="uid://cwfr6sgcwg7sl" path="res://base-environments/transition/audio/450918__kyles__metro-subway-montreal-verdun-station-arrive-and-leave-semidistant-from-bridge-over-tracks-overpass.ogg" id="3_4h0n7"]
|
||||
[ext_resource type="Material" uid="uid://cl7e6lpjalm0c" path="res://base-environments/transition/shaders/u1.material" id="3_j8pin"]
|
||||
[ext_resource type="Material" uid="uid://c0baqy42xdxtg" path="res://base-environments/transition/shaders/u2.material" id="4_3w708"]
|
||||
[ext_resource type="Material" uid="uid://bw4y5b5lnw3cn" path="res://base-environments/transition/shaders/u4.material" id="5_3x5rc"]
|
||||
[ext_resource type="Material" uid="uid://cor0uho8hnfqc" path="res://base-environments/transition/shaders/u7.material" id="6_ckebf"]
|
||||
[ext_resource type="Material" uid="uid://d0kk76pja0orj" path="res://base-environments/transition/shaders/u8.material" id="7_dyyau"]
|
||||
[ext_resource type="FontFile" uid="uid://b231f0liphck" path="res://import/fonts/AtkinsonHyperlegible-Regular.ttf" id="10_3w708"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aacjs"]
|
||||
shading_mode = 0
|
||||
|
|
@ -114,6 +108,14 @@ size = Vector3(31.194, 0.8, 3.8)
|
|||
|
||||
[node name="TrainDolly" type="Node3D"]
|
||||
script = ExtResource("1_5jpg8")
|
||||
index = null
|
||||
signage_group = null
|
||||
pre_arrival_time = null
|
||||
arrival_time = null
|
||||
pre_leave_time = null
|
||||
door_close_time = null
|
||||
leave_time = null
|
||||
post_leave_time = null
|
||||
metadata/_custom_type_script = "uid://dgfje4druu3sw"
|
||||
|
||||
[node name="Destination" type="Node3D" parent="."]
|
||||
|
|
@ -128,13 +130,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -150)
|
|||
|
||||
[node name="Subway" type="Node3D" parent="."]
|
||||
script = ExtResource("2_aacjs")
|
||||
materials = Dictionary[StringName, Material]({
|
||||
&"u1": ExtResource("3_j8pin"),
|
||||
&"u2": ExtResource("4_3w708"),
|
||||
&"u4": ExtResource("5_3x5rc"),
|
||||
&"u7": ExtResource("6_ckebf"),
|
||||
&"u8": ExtResource("7_dyyau")
|
||||
})
|
||||
metadata/_custom_type_script = "uid://cyohujvfoiof7"
|
||||
|
||||
[node name="WarpEffecScreen" type="MeshInstance3D" parent="Subway"]
|
||||
|
|
@ -165,40 +160,26 @@ spot_angle = 15.0
|
|||
|
||||
[node name="SubwayTrainAudio" type="AudioStreamPlayer3D" parent="Subway"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, -0.742, -11.098)
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.4578781, 0, -6.1605225)
|
||||
stream = ExtResource("3_4h0n7")
|
||||
unit_size = 100.0
|
||||
max_polyphony = 2
|
||||
panning_strength = 0.7
|
||||
bus = &"sfx"
|
||||
playback_type = 1
|
||||
|
||||
[node name="SubwayTrainAudioIntense" type="AudioStreamPlayer3D" parent="Subway"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, -0.802, 10.908)
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0.6660023, 0, 0)
|
||||
stream = ExtResource("3_4h0n7")
|
||||
attenuation_model = 1
|
||||
unit_size = 15.0
|
||||
max_polyphony = 2
|
||||
panning_strength = 0.9
|
||||
bus = &"sfx"
|
||||
playback_type = 1
|
||||
|
||||
[node name="TrainModel" parent="Subway" instance=ExtResource("1_2h2xx")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.4114173e-08, 0, -0.7804413)
|
||||
|
||||
[node name="LineLabelFront" type="Label3D" parent="Subway/TrainModel"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -15.413577, 2.7434583, -6.737489e-07)
|
||||
text = "U0"
|
||||
font = ExtResource("10_3w708")
|
||||
font_size = 64
|
||||
|
||||
[node name="LineLabelBack" type="Label3D" parent="Subway/TrainModel"]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 15.410003, 2.7434583, 6.9981036e-07)
|
||||
text = "U0"
|
||||
font = ExtResource("10_3w708")
|
||||
font_size = 64
|
||||
script = null
|
||||
|
||||
[node name="Collider" type="AnimatableBody3D" parent="Subway"]
|
||||
unique_name_in_owner = true
|
||||
|
|
|
|||
|
|
@ -1,12 +1,20 @@
|
|||
[gd_scene format=4 uid="uid://4j1tlhfm3p40"]
|
||||
[gd_scene load_steps=15 format=4 uid="uid://4j1tlhfm3p40"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dmh8tmuvftqus" path="res://base-environments/transition/import/subway_train.glb" id="1_8e51f"]
|
||||
[ext_resource type="Material" uid="uid://dchm78gv31r6a" path="res://base-environments/transition/shaders/timetravel.tres" id="2_g5p57"]
|
||||
[ext_resource type="Material" uid="uid://ddw7mob1qmlbj" path="res://base-environments/transition/shaders/u0.material" id="3_81crm"]
|
||||
[ext_resource type="Script" uid="uid://cyohujvfoiof7" path="res://base-environments/transition/code/subway_train.gd" id="2_skiem"]
|
||||
[ext_resource type="Material" uid="uid://rh1lc61j6qd8" path="res://base-environments/transition/import/textures/roof_greeble.tres" id="3_q0ort"]
|
||||
[ext_resource type="Texture2D" uid="uid://bewykr0twbplg" path="res://base-environments/transition/import/textures/LateralTren_baseColor_upscayl_2x_realesrgan-x4plus-anime.png" id="5_6pwip"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://coibvxeouqllc" path="res://base-environments/transition/vfx/voxelGI_subway_train.tres" id="5_q0ort"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8e51f"]
|
||||
cull_mode = 2
|
||||
albedo_color = Color(0.22188288, 0.6046251, 0.8484487, 1)
|
||||
metallic = 0.5
|
||||
roughness = 0.5
|
||||
clearcoat_enabled = true
|
||||
clearcoat_roughness = 0.2
|
||||
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_f2ux3"]
|
||||
_surfaces = [{
|
||||
"aabb": AABB(-5.128359, -0.2631049, -1.4985942, 10.841061, 0.57964456, 3.1154532),
|
||||
|
|
@ -44,7 +52,6 @@ shadow_mesh = SubResource("ArrayMesh_f2ux3")
|
|||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q0ort"]
|
||||
transparency = 1
|
||||
blend_mode = 1
|
||||
cull_mode = 2
|
||||
albedo_texture = ExtResource("5_6pwip")
|
||||
roughness = 0.1
|
||||
|
||||
|
|
@ -136,198 +143,200 @@ _data = {
|
|||
&"door_open": SubResource("Animation_8e51f")
|
||||
}
|
||||
|
||||
[node name="subway_train" unique_id=1755696385 instance=ExtResource("1_8e51f")]
|
||||
[node name="subway_train" instance=ExtResource("1_8e51f")]
|
||||
script = ExtResource("2_skiem")
|
||||
|
||||
[node name="traun_hull" parent="." index="0" unique_id=997216472]
|
||||
[node name="traun_hull" parent="." index="0"]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
|
||||
layers = 4
|
||||
gi_mode = 2
|
||||
surface_material_override/0 = ExtResource("3_81crm")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_8e51f")
|
||||
|
||||
[node name="ApoyaCristalesLateralesPared3_LP_004_LateralesInteriores_0_001" parent="traun_hull" index="0" unique_id=985506164]
|
||||
[node name="ApoyaCristalesLateralesPared3_LP_004_LateralesInteriores_0_001" parent="traun_hull" index="0"]
|
||||
layers = 4
|
||||
|
||||
[node name="ApoyaCristalesLateralesPared3_LP_004_LateralesInteriores_0_002" parent="traun_hull" index="1" unique_id=1929128547]
|
||||
[node name="ApoyaCristalesLateralesPared3_LP_004_LateralesInteriores_0_002" parent="traun_hull" index="1"]
|
||||
layers = 4
|
||||
|
||||
[node name="cabin" parent="traun_hull" index="2" unique_id=1235405392]
|
||||
[node name="cabin" parent="traun_hull" index="2"]
|
||||
layers = 4
|
||||
|
||||
[node name="cabin_001" parent="traun_hull" index="3" unique_id=42368085]
|
||||
[node name="cabin_001" parent="traun_hull" index="3"]
|
||||
layers = 4
|
||||
|
||||
[node name="cabin_windows" parent="traun_hull" index="4" unique_id=1682732857]
|
||||
[node name="cabin_windows" parent="traun_hull" index="4"]
|
||||
layers = 4
|
||||
|
||||
[node name="cabin_windows_001" parent="traun_hull" index="5" unique_id=903571490]
|
||||
[node name="cabin_windows_001" parent="traun_hull" index="5"]
|
||||
layers = 4
|
||||
|
||||
[node name="ceiling" parent="traun_hull" index="6" unique_id=2103099870]
|
||||
[node name="ceiling" parent="traun_hull" index="6"]
|
||||
layers = 4
|
||||
|
||||
[node name="ceiling_001" parent="traun_hull" index="7" unique_id=2139068792]
|
||||
[node name="ceiling_001" parent="traun_hull" index="7"]
|
||||
layers = 4
|
||||
|
||||
[node name="Cube_004" parent="traun_hull" index="8" unique_id=720511511]
|
||||
[node name="Cube_004" parent="traun_hull" index="8"]
|
||||
layers = 4
|
||||
|
||||
[node name="Cube_005" parent="traun_hull" index="9" unique_id=1016564497]
|
||||
[node name="Cube_005" parent="traun_hull" index="9"]
|
||||
layers = 4
|
||||
|
||||
[node name="Cube_007" type="MeshInstance3D" parent="traun_hull" index="10" unique_id=2100437457]
|
||||
[node name="Cube_007" type="MeshInstance3D" parent="traun_hull" index="10"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.140757, 3.1445234, -1.4974344e-06)
|
||||
layers = 4
|
||||
mesh = SubResource("ArrayMesh_7uxbi")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="Cube_006" parent="traun_hull" index="11" unique_id=728325690]
|
||||
[node name="Cube_006" parent="traun_hull" index="11"]
|
||||
layers = 4
|
||||
|
||||
[node name="Cube_008" parent="traun_hull" index="12" unique_id=1209871809]
|
||||
[node name="Cube_008" parent="traun_hull" index="12"]
|
||||
layers = 4
|
||||
|
||||
[node name="Cube_010" parent="traun_hull" index="13" unique_id=110333036]
|
||||
[node name="Cube_010" parent="traun_hull" index="13"]
|
||||
layers = 4
|
||||
|
||||
[node name="Cube_012" parent="traun_hull" index="14" unique_id=82219605]
|
||||
[node name="Cube_012" parent="traun_hull" index="14"]
|
||||
layers = 4
|
||||
|
||||
[node name="Cube_014" parent="traun_hull" index="15" unique_id=100170641]
|
||||
[node name="Cube_014" parent="traun_hull" index="15"]
|
||||
layers = 4
|
||||
|
||||
[node name="door_seat2_low_MAT_SEATS_0_001" parent="traun_hull" index="16" unique_id=1608318234]
|
||||
[node name="door_seat2_low_MAT_SEATS_0_001" parent="traun_hull" index="16"]
|
||||
layers = 4
|
||||
|
||||
[node name="door_seat2_low_MAT_SEATS_0_002" parent="traun_hull" index="17" unique_id=537892245]
|
||||
[node name="door_seat2_low_MAT_SEATS_0_002" parent="traun_hull" index="17"]
|
||||
layers = 4
|
||||
|
||||
[node name="door_seating_001" parent="traun_hull" index="18" unique_id=29456754]
|
||||
[node name="door_seating_001" parent="traun_hull" index="18"]
|
||||
layers = 4
|
||||
|
||||
[node name="door_seating_002" parent="traun_hull" index="19" unique_id=1992095810]
|
||||
[node name="door_seating_002" parent="traun_hull" index="19"]
|
||||
layers = 4
|
||||
|
||||
[node name="door_seating_003" parent="traun_hull" index="20" unique_id=1640376733]
|
||||
[node name="door_seating_003" parent="traun_hull" index="20"]
|
||||
layers = 4
|
||||
|
||||
[node name="door_seating_004" parent="traun_hull" index="21" unique_id=1861798917]
|
||||
[node name="door_seating_004" parent="traun_hull" index="21"]
|
||||
layers = 4
|
||||
|
||||
[node name="door_seating_005" parent="traun_hull" index="22" unique_id=1788081881]
|
||||
[node name="door_seating_005" parent="traun_hull" index="22"]
|
||||
layers = 4
|
||||
|
||||
[node name="Icosphere_003" parent="traun_hull" index="23" unique_id=430174688]
|
||||
[node name="Icosphere_003" parent="traun_hull" index="23"]
|
||||
layers = 4
|
||||
|
||||
[node name="Icosphere_016" parent="traun_hull" index="24" unique_id=1677194569]
|
||||
[node name="Icosphere_016" parent="traun_hull" index="24"]
|
||||
layers = 4
|
||||
|
||||
[node name="Icosphere_017" parent="traun_hull" index="25" unique_id=1644178170]
|
||||
[node name="Icosphere_017" parent="traun_hull" index="25"]
|
||||
layers = 4
|
||||
|
||||
[node name="Icosphere_018" parent="traun_hull" index="26" unique_id=1112737943]
|
||||
[node name="Icosphere_018" parent="traun_hull" index="26"]
|
||||
layers = 4
|
||||
|
||||
[node name="Icosphere_019" parent="traun_hull" index="27" unique_id=1423877139]
|
||||
[node name="Icosphere_019" parent="traun_hull" index="27"]
|
||||
layers = 4
|
||||
|
||||
[node name="Icosphere_020" parent="traun_hull" index="28" unique_id=1819164379]
|
||||
[node name="Icosphere_020" parent="traun_hull" index="28"]
|
||||
layers = 4
|
||||
|
||||
[node name="interiour_walls" parent="traun_hull" index="29" unique_id=1262158040]
|
||||
[node name="interiour_walls" parent="traun_hull" index="29"]
|
||||
layers = 4
|
||||
|
||||
[node name="interiour_walls_001" parent="traun_hull" index="30" unique_id=412676970]
|
||||
[node name="interiour_walls_001" parent="traun_hull" index="30"]
|
||||
layers = 4
|
||||
|
||||
[node name="MarcosPuertasInteriorLateral2_LP_004_LateralesInteriores_0_001" parent="traun_hull" index="31" unique_id=1236591883]
|
||||
[node name="MarcosPuertasInteriorLateral2_LP_004_LateralesInteriores_0_001" parent="traun_hull" index="31"]
|
||||
layers = 4
|
||||
|
||||
[node name="MarcosPuertasInteriorLateral2_LP_004_LateralesInteriores_0_002" parent="traun_hull" index="32" unique_id=708054081]
|
||||
[node name="MarcosPuertasInteriorLateral2_LP_004_LateralesInteriores_0_002" parent="traun_hull" index="32"]
|
||||
layers = 4
|
||||
|
||||
[node name="middle_seating" parent="traun_hull" index="33" unique_id=1557584304]
|
||||
[node name="middle_seating" parent="traun_hull" index="33"]
|
||||
layers = 4
|
||||
|
||||
[node name="middle_seating_001" parent="traun_hull" index="34" unique_id=1546075330]
|
||||
[node name="middle_seating_001" parent="traun_hull" index="34"]
|
||||
layers = 4
|
||||
|
||||
[node name="middle_seating_002" parent="traun_hull" index="35" unique_id=1396264635]
|
||||
[node name="middle_seating_002" parent="traun_hull" index="35"]
|
||||
layers = 4
|
||||
|
||||
[node name="middle_seating_003" parent="traun_hull" index="36" unique_id=1389438019]
|
||||
[node name="middle_seating_003" parent="traun_hull" index="36"]
|
||||
layers = 4
|
||||
|
||||
[node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_001" parent="traun_hull" index="37" unique_id=1287465993]
|
||||
[node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_001" parent="traun_hull" index="37"]
|
||||
layers = 4
|
||||
|
||||
[node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_002" parent="traun_hull" index="38" unique_id=1131705536]
|
||||
[node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_002" parent="traun_hull" index="38"]
|
||||
layers = 4
|
||||
|
||||
[node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_003" parent="traun_hull" index="39" unique_id=1657133970]
|
||||
[node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_003" parent="traun_hull" index="39"]
|
||||
layers = 4
|
||||
|
||||
[node name="SeparadoresSueloInterior_LP_007_SueloInterior_0_002" parent="traun_hull" index="40" unique_id=95643343]
|
||||
[node name="SeparadoresSueloInterior_LP_007_SueloInterior_0_002" parent="traun_hull" index="40"]
|
||||
layers = 4
|
||||
|
||||
[node name="SeparadoresSueloInterior_LP_007_SueloInterior_0_003" parent="traun_hull" index="41" unique_id=628074467]
|
||||
[node name="SeparadoresSueloInterior_LP_007_SueloInterior_0_003" parent="traun_hull" index="41"]
|
||||
layers = 4
|
||||
|
||||
[node name="SueloInterior_LP_006_SueloInterior_0_001" parent="traun_hull" index="42" unique_id=887426]
|
||||
[node name="SueloInterior_LP_006_SueloInterior_0_001" parent="traun_hull" index="42"]
|
||||
layers = 4
|
||||
|
||||
[node name="train_display" parent="traun_hull" index="43" unique_id=2037687580]
|
||||
[node name="train_display" parent="traun_hull" index="43"]
|
||||
layers = 4
|
||||
|
||||
[node name="undercarriage" parent="traun_hull" index="44" unique_id=806213779]
|
||||
[node name="undercarriage" parent="traun_hull" index="44"]
|
||||
layers = 4
|
||||
|
||||
[node name="VentanaLateral2_LP_004_LateralTren_0_003" parent="traun_hull" index="45" unique_id=840775399]
|
||||
[node name="VentanaLateral2_LP_004_LateralTren_0_003" parent="traun_hull" index="45"]
|
||||
layers = 4
|
||||
surface_material_override/0 = ExtResource("2_g5p57")
|
||||
surface_material_override/1 = SubResource("StandardMaterial3D_q0ort")
|
||||
|
||||
[node name="VentanaLateral2_LP_004_LateralTren_0_004" parent="traun_hull" index="46" unique_id=987259430]
|
||||
[node name="VentanaLateral2_LP_004_LateralTren_0_004" parent="traun_hull" index="46"]
|
||||
layers = 4
|
||||
surface_material_override/0 = ExtResource("2_g5p57")
|
||||
surface_material_override/1 = SubResource("StandardMaterial3D_q0ort")
|
||||
|
||||
[node name="wall_seating_001" parent="traun_hull" index="47" unique_id=437405653]
|
||||
[node name="wall_seating_001" parent="traun_hull" index="47"]
|
||||
layers = 4
|
||||
|
||||
[node name="wall_seating_002" parent="traun_hull" index="48" unique_id=1403151742]
|
||||
[node name="wall_seating_002" parent="traun_hull" index="48"]
|
||||
layers = 4
|
||||
|
||||
[node name="wall_seating_003" parent="traun_hull" index="49" unique_id=218529971]
|
||||
[node name="wall_seating_003" parent="traun_hull" index="49"]
|
||||
layers = 4
|
||||
|
||||
[node name="wall_seating_004" parent="traun_hull" index="50" unique_id=15472790]
|
||||
[node name="wall_seating_004" parent="traun_hull" index="50"]
|
||||
layers = 4
|
||||
|
||||
[node name="wall_seating_005" parent="traun_hull" index="51" unique_id=1434451492]
|
||||
[node name="wall_seating_005" parent="traun_hull" index="51"]
|
||||
layers = 4
|
||||
|
||||
[node name="wall_seating_006" parent="traun_hull" index="52" unique_id=1915677652]
|
||||
[node name="wall_seating_006" parent="traun_hull" index="52"]
|
||||
layers = 4
|
||||
|
||||
[node name="wall_seating_007" parent="traun_hull" index="53" unique_id=307891428]
|
||||
[node name="wall_seating_007" parent="traun_hull" index="53"]
|
||||
layers = 4
|
||||
|
||||
[node name="wall_seating_008" parent="traun_hull" index="54" unique_id=305835946]
|
||||
[node name="wall_seating_008" parent="traun_hull" index="54"]
|
||||
layers = 4
|
||||
|
||||
[node name="window_frames" parent="traun_hull" index="55" unique_id=290961844]
|
||||
[node name="window_frames" parent="traun_hull" index="55"]
|
||||
layers = 4
|
||||
|
||||
[node name="window_frames_001" parent="traun_hull" index="56" unique_id=1848579204]
|
||||
[node name="window_frames_001" parent="traun_hull" index="56"]
|
||||
layers = 4
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="1" unique_id=766382601]
|
||||
libraries/ = SubResource("AnimationLibrary_skiem")
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="1"]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_skiem")
|
||||
}
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="." index="2" unique_id=2117963437]
|
||||
[node name="VoxelGI" type="VoxelGI" parent="." index="2"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.35, 0)
|
||||
layers = 4
|
||||
subdiv = 0
|
||||
size = Vector3(35, 4.6, 4)
|
||||
data = ExtResource("5_q0ort")
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,2 @@
|
|||
kitchen_hardware_albedo.tga filter=lfs diff=lfs merge=lfs -text
|
||||
kitchen_hardware_normal.tga filter=lfs diff=lfs merge=lfs -text
|
||||
|
|
@ -41,5 +41,5 @@ process/premult_alpha=false
|
|||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=1024
|
||||
process/size_limit=2048
|
||||
detect_3d/compress_to=0
|
||||
|
|
|
|||
|
|
@ -41,5 +41,5 @@ process/premult_alpha=false
|
|||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=1024
|
||||
process/size_limit=2048
|
||||
detect_3d/compress_to=0
|
||||
|
|
|
|||
BIN
src/base-environments/volunteer_room/scenes/FoM_xavier_therapie_1.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/volunteer_room/scenes/FoM_xavier_therapie_1.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dg4cq1texkil5"
|
||||
path="res://.godot/imported/FoM_xavier_therapie_1.wav-5b326af67128f51afe9b270b12a8a195.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/volunteer_room/scenes/FoM_xavier_therapie_1.wav"
|
||||
dest_files=["res://.godot/imported/FoM_xavier_therapie_1.wav-5b326af67128f51afe9b270b12a8a195.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_abtq0"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_pcx8t"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_w4vem"]
|
||||
[ext_resource type="AudioStream" uid="uid://cw1s2g8wg3120" path="res://base-environments/volunteer_room/sounds/FoM_xavier_unifood.wav" id="5_86ec2"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="5_0dsyx"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_fiu8d"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_sh3ja"]
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ tracks/5/keys = {
|
|||
|
||||
[sub_resource type="Animation" id="Animation_ayw8a"]
|
||||
resource_name = "de"
|
||||
length = 66.0
|
||||
length = 86.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
|
|
@ -108,11 +108,11 @@ tracks/0/interp = 1
|
|||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.3525498,
|
||||
"start_offset": 1.6578125,
|
||||
"stream": ExtResource("5_86ec2")
|
||||
"end_offset": 1.36178,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("5_0dsyx")
|
||||
}],
|
||||
"times": PackedFloat32Array(2.2000003)
|
||||
"times": PackedFloat32Array(1.16667)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
|
|
@ -122,10 +122,10 @@ tracks/1/path = NodePath("../../..:progress")
|
|||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667, 4.73332, 6.03333, 11.6, 12.766666, 15.8333, 16.4333, 18.266666, 19.6333, 27.1, 29.8, 35.466633, 37.3, 39.933334, 41.233334, 43.800034, 45.233334, 52.833275, 53.466667, 58.166664, 59.6, 64.2),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 1.23114, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.287175, 0.482968, 0.482968, 0.482968),
|
||||
"times": PackedFloat32Array(0, 1.66667, 4.73332, 6.03333, 11.6, 12.4, 15.8333, 16.4333, 18.9334, 19.6333, 24.5333, 25.6, 29, 30.3667, 36.1333, 39.4, 40.8, 42.2333, 44.6333, 45.2667, 47.0333, 49.2333, 53.4333, 54.6333, 57.1333, 57.8333, 61.1333, 63.2667, 66.5667, 67.5, 72.4597, 74.5, 77.2667, 78.4667, 85.2),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 1.23114, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.287175, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0]
|
||||
"values": [0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0, 13.0, 13.0, 14.0, 14.0, 15.0, 15.0, 16.0, 16.0, 17.0]
|
||||
}
|
||||
tracks/2/type = "method"
|
||||
tracks/2/imported = false
|
||||
|
|
@ -134,8 +134,8 @@ tracks/2/path = NodePath("../../..")
|
|||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(18.9, 40.766666, 65.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"times": PackedFloat32Array(24.8, 47.87, 61.7667, 74.0333, 85.2667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
|
|
@ -144,6 +144,12 @@ tracks/2/keys = {
|
|||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"_on_text_finished"
|
||||
}]
|
||||
}
|
||||
|
|
@ -463,7 +469,6 @@ script = ExtResource("1_86ec2")
|
|||
scene_id = 8
|
||||
story_array = PackedStringArray("God I am so \"happy\" mom took care of everything at home. The dishes, the laundry, the trash, the groceries, the food.", "But guess what: when you are at university, they don\'t provide a mom with your dorm.", "And suddenly, you don\'t just need to study for your first semester, you need to learn to survive on your own. Good luck building good habits with that.", "I got really thin.", "I didn\'t really manage to eat at home, I didn\'t have the money to eat takeout all the time and oh my god:", "how do students manage to survive in a cafeteria?", "I mean: How do they manage to socialise, attend all the lectures, find relationships and even look passable with all that going on?", "Is it just me? I don\'t know.", "Who I am glad about tho is Jules. She has an eating order history and someday had enough of seeing my body crumble and decieded to basically adopt me.", "I could never really relate with her former eating discorder thoughts she was probably trying to get out of my head.", "But I can\'t argue against her coping strategies helping my body get the food it needed.")
|
||||
paragraph_lengths = PackedInt32Array(1, 2, 6, 8, 10)
|
||||
progress = -1.0
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_00crh"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_3iy8l"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_32a0r"]
|
||||
[ext_resource type="AudioStream" uid="uid://cnhkrhtk4cirx" path="res://base-environments/volunteer_room/sounds/FoM_xavier_therapie_1.wav" id="5_x5h0q"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="5_bfggg"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_hdxjv"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_xkdnh"]
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ tracks/5/keys = {
|
|||
|
||||
[sub_resource type="Animation" id="Animation_ayw8a"]
|
||||
resource_name = "de"
|
||||
length = 92.0
|
||||
length = 86.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
|
|
@ -108,11 +108,11 @@ tracks/0/interp = 1
|
|||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.3923047,
|
||||
"stream": ExtResource("5_x5h0q")
|
||||
"end_offset": 1.36178,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("5_bfggg")
|
||||
}],
|
||||
"times": PackedFloat32Array(1.9333333)
|
||||
"times": PackedFloat32Array(1.16667)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
|
|
@ -122,10 +122,10 @@ tracks/1/path = NodePath("../../..:progress")
|
|||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667, 4.73332, 7.0333333, 11.6, 13.033334, 17.433332, 19.166666, 26.733334, 27.933332, 29.733202, 30.799902, 34.1999, 35.5666, 39.866665, 41.3, 46.400066, 47.833366, 52.1666, 52.8, 55.1667, 56.5, 59.033333, 60.233334, 64.9, 66.86667, 67.26674, 69.40013, 73.6, 75.46662, 78.46667, 79.4, 87.9),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 1.23114, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.287175, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"times": PackedFloat32Array(0, 1.66667, 4.73332, 6.03333, 11.6, 12.4, 15.8333, 16.4333, 18.9334, 19.6333, 24.5333, 25.6, 29, 30.3667, 36.1333, 39.4, 40.8, 42.2333, 44.6333, 45.2667, 47.0333, 49.2333, 53.4333, 54.6333, 57.1333, 57.8333, 61.1333, 63.2667, 66.5667, 67.5, 72.4597, 74.5, 77.2667, 78.4667, 85.2),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 1.23114, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.287175, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0, 13.0, 13.0, 14.0, 14.0, 15.0, 15.0, 16.0]
|
||||
"values": [0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0, 13.0, 13.0, 14.0, 14.0, 15.0, 15.0, 16.0, 16.0, 17.0]
|
||||
}
|
||||
tracks/2/type = "method"
|
||||
tracks/2/imported = false
|
||||
|
|
@ -134,7 +134,7 @@ tracks/2/path = NodePath("../../..")
|
|||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(18.166666, 49.3, 59.666668, 74.76667, 91.63333),
|
||||
"times": PackedFloat32Array(24.8, 47.87, 61.7667, 74.0333, 85.2667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
|
|
@ -469,7 +469,6 @@ script = ExtResource("1_ym0sv")
|
|||
scene_id = 6
|
||||
story_array = PackedStringArray("I sometimes wish I could go back in time to save myself from Lukas.", "Sometimes I even want to fight him one last time to make him feel how much he hurt me.", "I don\'t like these thoughts, because all they do is make my head spiral into an endless void of anger and doubt.", "So on a calm mind, I just hope he learned his lesson so his next love doesn\'t need to become a survivor.", "But do I regret being one?", "I mean it has made me go to therapy and that was a good thing.", "My therapist was pretty young and still in training.", "Talking to *him* about sex never really worked for me.", "So I still don\'t know what to do about my cravings. I\'d rather not have them but I can\'t deny they exist.", "At least he gave me the tools to figure it out on my own.", "Old thoughts are here to stay, he always said. But you can choose how to react.", "And while I choose to not react to my cravings for now, I can choose something different in the future.", "He also helped me manage the gauntlet that is an ADHD diagnosis. I suspect I wouldn\'t have the executive skills to get that on my own.", "So I guess I got my medication thanks to Lukas?", "And I can tell when to brace for my period because the weird urge to make my ex hit some very hard ground is quite specific.")
|
||||
paragraph_lengths = PackedInt32Array(2, 3, 4, 5, 8, 11, 12, 14)
|
||||
progress = -1.0
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
|
|
|||
|
|
@ -0,0 +1,54 @@
|
|||
extends RoomTemplate
|
||||
|
||||
@onready var card_picker: CardPicker = %Picker
|
||||
@onready var player: PlayerController = %PlayerController
|
||||
|
||||
func _ready():
|
||||
super._ready()
|
||||
id = State.rooms.ADULTHOOD
|
||||
|
||||
|
||||
func get_ready() -> void:
|
||||
super.get_ready()
|
||||
|
||||
Scenes.scene_finished.connect(_on_scene_finished)
|
||||
card_picker.cards_picked.connect(card_board.populate_board)
|
||||
save_game = State.save_game
|
||||
save_game.current_room = State.rooms.ADULTHOOD
|
||||
Scenes.completed_sequences = save_game.mementos_complete
|
||||
Scenes.started_sequences = save_game.mementos_complete
|
||||
Scenes.enabled_sequences = save_game.sequences_enabled
|
||||
#FIXME: fix the bloddy card board loading algorythm
|
||||
#card_board.initialise_from_save(save_game)
|
||||
card_board.board_completed.connect(func():
|
||||
#TODO: hook in ending
|
||||
save_room()
|
||||
)
|
||||
|
||||
|
||||
func start_room():
|
||||
super.start_room()
|
||||
%UI.show()
|
||||
|
||||
%PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
# Give player control immediately, then open
|
||||
Scenes.player_enable.emit(true)
|
||||
await Main.curtain.open()
|
||||
|
||||
|
||||
func _on_scene_finished(_id: int, _repeat:bool):
|
||||
await get_tree().create_timer(3).timeout
|
||||
save_room()
|
||||
|
||||
func save_room():
|
||||
# Update board state before saving
|
||||
card_board.save_to_resource(save_game)
|
||||
save_game.mementos_complete = Scenes.completed_sequences
|
||||
save_game.sequences_enabled = Scenes.enabled_sequences
|
||||
super.save_room()
|
||||
|
||||
func prepare_transition():
|
||||
pass
|
||||
|
||||
func unload():
|
||||
pass
|
||||
BIN
src/base-environments/volunteer_room/sounds/FoM_xavier_DnD.wav (Stored with Git LFS)
BIN
src/base-environments/volunteer_room/sounds/FoM_xavier_DnD.wav (Stored with Git LFS)
Binary file not shown.
|
|
@ -1,24 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://datmg48duktt1"
|
||||
path="res://.godot/imported/FoM_xavier_DnD.wav-a689cfa18e7eb4ed0e110e9622a5b653.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/volunteer_room/sounds/FoM_xavier_DnD.wav"
|
||||
dest_files=["res://.godot/imported/FoM_xavier_DnD.wav-a689cfa18e7eb4ed0e110e9622a5b653.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
Binary file not shown.
|
|
@ -1,34 +0,0 @@
|
|||
extends RoomWithBoard
|
||||
class_name VolunteerRoom
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready() # UwU, superclass _ready is not called by Godot automatically...
|
||||
prints("volunteer_room.gd", "_ready()", self)
|
||||
|
||||
|
||||
func get_ready_async() -> void:
|
||||
await super.get_ready_async()
|
||||
|
||||
%TherapyVoluntaryInteractable.visible = not save_game.subway_burnout
|
||||
%TherapyUniInteractable.visible = save_game.subway_burnout
|
||||
|
||||
card_board.board_completed.connect(func():
|
||||
save_game.childhood_board_complete = true
|
||||
#%DoorInteractable.show()
|
||||
)
|
||||
|
||||
|
||||
func start_room_async():
|
||||
await super.start_room_async()
|
||||
# Give player control immediately, then open
|
||||
%PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
Scenes.player_enable.emit(true)
|
||||
|
||||
await Main.curtain.open()
|
||||
|
||||
|
||||
func prepare_transition():
|
||||
pass
|
||||
|
||||
func unload():
|
||||
pass
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=49 format=3 uid="uid://flisupth27th"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dwbhei5kywqbd" path="res://volunteer_room_visuals.tscn" id="1_ln5pp"]
|
||||
[ext_resource type="Script" uid="uid://wiw2j1gw230e" path="res://base-environments/volunteer_room/volunteer_room.gd" id="1_wdfvq"]
|
||||
[ext_resource type="Script" uid="uid://wiw2j1gw230e" path="res://base-environments/volunteer_room/shared_flat.gd" id="1_wdfvq"]
|
||||
[ext_resource type="PackedScene" uid="uid://mkccbig41bqb" path="res://logic-scenes/player_controller/player_controller.tscn" id="2_upyac"]
|
||||
[ext_resource type="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_fli74"]
|
||||
[ext_resource type="PackedScene" uid="uid://dreokijo757l1" path="res://logic-scenes/interactable/interactable.tscn" id="5_my8p4"]
|
||||
|
|
@ -201,14 +201,11 @@ func _on_environment_settings_update():
|
|||
|
||||
[node name="SharedFlat" type="Node3D"]
|
||||
script = ExtResource("1_wdfvq")
|
||||
id = 3
|
||||
|
||||
[node name="PlayerController" parent="." instance=ExtResource("2_upyac")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2.2023005, 0, 0.7319784)
|
||||
|
||||
[node name="Camera3D" parent="PlayerController/Yaw/Pitch/Mount" index="0"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1.0000006, 0, 0, 0, 1.0000006, 0, 0.202, 0.157)
|
||||
initial_pitch = 0.0
|
||||
|
||||
[node name="volunteer_room" parent="." instance=ExtResource("1_ln5pp")]
|
||||
|
||||
|
|
@ -229,58 +226,53 @@ shape = SubResource("CapsuleShape3D_2fihi")
|
|||
[node name="Collectables" type="Node3D" parent="."]
|
||||
|
||||
[node name="KitchenInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0.8310573, 1.0068259, -2.7083611)
|
||||
transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 3.46201, 1.8257881, -4.097006)
|
||||
interaction = ExtResource("12_6rb4d")
|
||||
|
||||
[node name="BurnoutInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
transform = Transform3D(0.32358676, 0, -0.94619733, 0, 1, 0, 0.94619733, 0, 0.32358676, -2.1812932, 0.8092947, 5.313688)
|
||||
transform = Transform3D(1.3113409e-07, 0, 0.999999, 0, 1, 0, -0.999999, 0, 1.3113409e-07, -2.1812932, 0.8092947, 5.313688)
|
||||
interaction = ExtResource("11_kmoh8")
|
||||
|
||||
[node name="DiceInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
transform = Transform3D(0.7071059, 0, -0.7071061, 0, 1, 0, 0.7071061, 0, 0.7071059, -2.07945, 0.5828748, 3.3940656)
|
||||
transform = Transform3D(-0.70710593, 0, 0.70710605, 0, 1, 0, -0.70710605, 0, -0.70710593, -2.07945, 0.5828748, 3.3940656)
|
||||
interaction = ExtResource("16_e1uao")
|
||||
|
||||
[node name="VoluntaryInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
transform = Transform3D(-4.3711346e-08, 0, 0.999999, 0, 1, 0, -0.999999, 0, -4.3711346e-08, 0.36332494, 1.2541859, 4.9624853)
|
||||
transform = Transform3D(-4.3711392e-08, 0, -0.999999, 0, 1, 0, 0.999999, 0, -4.3711392e-08, 0.36332494, 1.2541859, 4.9624853)
|
||||
interaction = ExtResource("17_my8p4")
|
||||
billboard = false
|
||||
|
||||
[node name="TherapyVoluntaryInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0.399901, 1.21835, 1.29166)
|
||||
transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 0.399901, 1.21835, 1.29166)
|
||||
interaction = ExtResource("15_ci4rn")
|
||||
billboard = false
|
||||
|
||||
[node name="TherapyUniInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0.399901, 1.21835, 1.29166)
|
||||
transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 0.399901, 1.21835, 1.29166)
|
||||
interaction = ExtResource("14_upyac")
|
||||
billboard = false
|
||||
|
||||
[node name="UniversityInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
transform = Transform3D(-4.371135e-08, 0, -0.9999991, 0, 1, 0, 0.9999991, 0, -4.371135e-08, -2.7745893, 1.4022808, -3.0279322)
|
||||
transform = Transform3D(-4.371135e-08, 0, 0.9999991, 0, 1, 0, -0.9999991, 0, -4.371135e-08, -2.7745893, 1.593935, -3.0279322)
|
||||
interaction = ExtResource("13_5s6pb")
|
||||
billboard = false
|
||||
|
||||
[node name="OldThougtsInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
transform = Transform3D(-4.3711346e-08, 0, -0.999999, 0, 1, 0, 0.999999, 0, -4.3711346e-08, -2.40979, 0.41340256, 0.403546)
|
||||
transform = Transform3D(1.3113399e-07, 0, 0.999999, 0, 1, 0, -0.999999, 0, 1.3113399e-07, -2.40979, 0.41340256, 0.403546)
|
||||
interaction = ExtResource("17_my8p4")
|
||||
|
||||
[node name="AutismInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
transform = Transform3D(-0.75470823, 0, -0.65605795, 0, 1, 0, 0.65605795, 0, -0.75470823, -1.8407239, 1.0439266, -3.8908288)
|
||||
transform = Transform3D(0.49999908, 0, 0.86602396, 0, 1, 0, -0.86602396, 0, 0.49999908, -1.8407239, 1.0439266, -3.8908288)
|
||||
interaction = ExtResource("10_gcdra")
|
||||
|
||||
[node name="Board" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -2.7652016, 1.2894461, 4.522677)
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.6904116, 1.240494, 4.441236)
|
||||
interaction = ExtResource("19_ci4rn")
|
||||
billboard = false
|
||||
|
||||
[node name="DoorInteractable" type="Node3D" parent="Collectables"]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.08276367, 1.3269348, 0.09955597)
|
||||
size = Vector3(6.132324, 2.9212036, 12.147232)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.08276367, 1.3269348, 0.05317688)
|
||||
size = Vector3(6.132324, 2.9212036, 12.054474)
|
||||
data = ExtResource("8_fli74")
|
||||
|
||||
[node name="Collision" type="Node3D" parent="."]
|
||||
|
|
@ -382,7 +374,7 @@ shape = SubResource("BoxShape3D_2ixm0")
|
|||
[node name="Scenes" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4831846, 0, 2.44453)
|
||||
|
||||
[node name="SceneAnimationPlayer" type="AnimationPlayer" parent="Scenes"]
|
||||
[node name="ScenePlayer" type="AnimationPlayer" parent="Scenes"]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_br20t")
|
||||
|
|
@ -414,5 +406,3 @@ script = SubResource("GDScript_ri8p0")
|
|||
environment = SubResource("Environment_pdgua")
|
||||
camera_attributes = SubResource("CameraAttributesPractical_0bxa6")
|
||||
script = SubResource("GDScript_3k3rl")
|
||||
|
||||
[editable path="PlayerController"]
|
||||
|
|
|
|||
|
|
@ -26,5 +26,5 @@ func scene_finished(_id: Scenes.id, _repeat: bool):
|
|||
queue("RESET")
|
||||
|
||||
func play(anin_name: StringName = "", a: float = -1, b: float = 1, c: bool = false) -> void:
|
||||
print("anim player accessed!")
|
||||
print_debug("anim player accessed!")
|
||||
super.play(anin_name, a, b, c)
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ edit/normalize=false
|
|||
edit/loop_mode=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
compress/mode=0
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ edit/normalize=false
|
|||
edit/loop_mode=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
compress/mode=0
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ edit/normalize=false
|
|||
edit/loop_mode=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
compress/mode=0
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ edit/normalize=false
|
|||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
compress/mode=0
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,85 @@
|
|||
class_name InteractiveSprite extends Area3D
|
||||
|
||||
@export var interaction_ui: PackedScene = null
|
||||
|
||||
@onready var pass_to_actor: = $UiWrapper/UiSprite/SubViewport/CollectableUi
|
||||
@onready var wrapper := $UiWrapper
|
||||
@onready var ui: CollectableUi = $UiWrapper/UiSprite/SubViewport.get_child(0)
|
||||
@onready var viewport:= $UiWrapper/UiSprite/SubViewport
|
||||
|
||||
@onready var distance_tween: Tween
|
||||
|
||||
var revealed: bool = false:
|
||||
set(reveal):
|
||||
revealed = reveal
|
||||
if reveal:
|
||||
wrapper.show()
|
||||
if distance_tween != null:
|
||||
if distance_tween.is_running(): distance_tween.stop()
|
||||
distance_tween = get_tree().create_tween()
|
||||
distance_tween.tween_property($UiWrapper/Frame, ^":visibility_range_end", 3.0, 1.0)
|
||||
else:
|
||||
wrapper.hide()
|
||||
ui.vanish()
|
||||
if distance_tween != null:
|
||||
if distance_tween.is_running(): distance_tween.stop()
|
||||
distance_tween = get_tree().create_tween()
|
||||
distance_tween.tween_property($UiWrapper/Frame, ^":visibility_range_end", 0.6, 1.0)
|
||||
await get_tree().create_timer(1).timeout
|
||||
if not ui.visible:
|
||||
wrapper.hide()
|
||||
|
||||
var has_mouse: bool = false
|
||||
|
||||
# Automatically triggered story playback - e.g. for Intro in Youth Room
|
||||
func play_story() -> void:
|
||||
await ui.collect_memento()
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
if interaction_ui:
|
||||
%CanvasLayer.add_child(interaction_ui.instantiate())
|
||||
|
||||
ui.canvas_layer = %CanvasLayer
|
||||
# Find and wire the interaction UI (StoryPlayable or CardBoard)
|
||||
for child in %CanvasLayer.get_children():
|
||||
if child is CardBoard:
|
||||
ui.interaction_ui = child
|
||||
break
|
||||
elif child is Control:
|
||||
ui.interaction_ui = child
|
||||
break
|
||||
|
||||
# Connect playback_finished to restore player control
|
||||
ui.playback_finished.connect(_on_playback_finished)
|
||||
|
||||
func _on_mouse_entered():
|
||||
if not Scenes.is_playing:
|
||||
input_ray_pickable = false
|
||||
has_mouse = true
|
||||
|
||||
func _on_mouse_exited():
|
||||
input_ray_pickable = true
|
||||
has_mouse = false
|
||||
|
||||
func try_reveal(for_player: PlayerController) -> bool:
|
||||
print_debug("reveal ui!")
|
||||
revealed = ui.try_reveal()
|
||||
if revealed:
|
||||
call_deferred("wait_for_ui_exit", for_player)
|
||||
return revealed
|
||||
|
||||
func wait_for_ui_exit(for_player: PlayerController):
|
||||
await for_player.ui_exited
|
||||
collapse()
|
||||
|
||||
func collapse():
|
||||
_on_mouse_exited()
|
||||
revealed = false
|
||||
|
||||
func _on_playback_finished():
|
||||
# Restore player control via central signal
|
||||
Scenes.player_enable.emit(true)
|
||||
|
||||
func handle(event: InputEvent):
|
||||
viewport.push_input(event)
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dr4wd80dobxjd
|
||||
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue