Compare commits

...

104 Commits

Author SHA1 Message Date
tiger tiger tiger 7ba13a9093 fix: autoplay disabled on cards and stickies 2026-03-12 14:25:56 +01:00
betalars 420462b242 push missing scene update 2026-03-12 14:18:20 +01:00
tiger tiger tiger fad39d1d37 fix: %CardboardBox node renamed, and take away label set as child 2026-03-12 14:14:18 +01:00
tiger tiger tiger 53042effa2 Merge pull request 'implement texture switching and adding thank-you prompt' (#2) from laurins-lair into development
Reviewed-on: #2
Reviewed-by: tiger tiger tiger <tiger@noreply.localhost>
2026-03-12 13:07:54 +00:00
betalars ffcb9ba174 add visual distinction to old board 2026-03-11 23:09:58 +01:00
betalars 1c9c95f3b4 implement sprite-sheet switching depending on age and room 2026-03-11 13:56:53 +01:00
betalars 8637479c82 import card age variations 2026-03-11 13:54:15 +01:00
betalars ed8fac9d5e add thank-you-beta text 2026-03-06 18:46:44 +01:00
betalars 0d1713f024 rename p to prompts 2026-03-05 22:07:06 +01:00
tiger tiger tiger e0d744450b fix: removed blend1 backup 2026-02-22 23:13:18 +01:00
tiger tiger tiger c13d3ed020 chore: light rebake 2026-02-22 17:26:39 +01:00
tiger tiger tiger b967173038 fix: restore track dollies 2026-02-22 17:11:11 +01:00
tiger tiger tiger 34dbfbb7ee chore: light rebake 2026-02-22 17:10:03 +01:00
tiger tiger tiger fd1a82c8b8 fix: gitattributes and ignore 2026-02-22 17:02:00 +01:00
tiger tiger tiger b8eb871b24 chg: port to 4.6.1 2026-02-22 17:01:35 +01:00
betalars 4c0fd2fab1 importing and syncing german voicelines 2026-01-26 17:38:00 +01:00
tiger tiger tiger 109f5d9f45 fix: rebake lights, optimize perf 2026-01-24 17:11:05 +01:00
tiger tiger tiger 24a80a1642 fix: trains left invisible 2026-01-24 17:06:58 +01:00
tiger tiger tiger 1797a13859 fix: rebake lights, optimize perf 2026-01-24 17:03:00 +01:00
tiger tiger tiger bf406970f9 fix: crash 2026-01-24 14:16:46 +01:00
tiger tiger tiger d59b9119af fix: subways couldn't stop at endstation and would travel into limbo 2026-01-24 14:12:31 +01:00
tiger tiger tiger 6dacdc95c7 feat: working on train labels 2026-01-24 13:59:14 +01:00
tiger tiger tiger df09968e86 feat: working on subway labeling and coloring system 2026-01-24 13:18:36 +01:00
tiger tiger tiger d9855e55fc fix: voluntary room starting pitch was still overridden 2026-01-24 11:07:47 +01:00
tiger tiger tiger b99864bb6b fix: card uniqueness 2026-01-24 11:01:49 +01:00
tiger tiger tiger 2f59da1441 fix: player animation track path fix 2026-01-24 10:57:55 +01:00
tiger tiger tiger cd830ac6ce fix: player animation tracks no longer cut them down by 1 head's size 2026-01-24 10:50:38 +01:00
tiger tiger tiger 5afe964bf4 tweak: improved log message 2026-01-24 10:19:00 +01:00
tiger tiger tiger 4ca3dbf993 test: reduced some normal map resolutions 2026-01-24 10:17:28 +01:00
tiger tiger tiger 49fa79f72e fix: reduced voxel GI resolution in youth room to restore light range 2026-01-24 10:14:20 +01:00
tiger tiger tiger 0d363a5948 tweak: added a (missing story caption) default for missing story captions. 2026-01-24 10:08:51 +01:00
tiger tiger tiger 6eaff1c7fc fix: wrong interpolation method... 2026-01-23 17:38:32 +01:00
tiger tiger tiger e2c2f69162 feat: back button maybe standard bottom right? 2026-01-23 16:31:14 +01:00
tiger tiger tiger 7d067ca2ac feat: board can now be left with the mouse :D 2026-01-23 16:25:28 +01:00
tiger tiger tiger 874292245c fix: wrong memento action was hooked up 2026-01-23 16:08:11 +01:00
tiger tiger tiger 4059fd8c2b fix: had corrupted a translation key by removing punctuation 2026-01-23 16:05:46 +01:00
tiger tiger tiger 2a1531a249 feat: game instruction shown in youth room for as long as no memento has been hovered and the room is not solved 2026-01-23 16:05:09 +01:00
tiger tiger tiger b3ec003acc fix: removed custom positioning of interactables in youth room 2026-01-23 15:41:39 +01:00
tiger tiger tiger 73e4ed38d0 fix: icons now refresh when icons change. 2026-01-23 15:38:21 +01:00
tiger tiger tiger a33a7bccc9 feat: first prompts implemented, various small fixed 2026-01-23 15:30:58 +01:00
tiger tiger tiger 65cdfd3282 feat: first basic prompt 2026-01-23 15:23:53 +01:00
tiger tiger tiger acb84bbb01 feat: prompter is now an autoload 2026-01-23 15:05:24 +01:00
tiger tiger tiger 85d4809356 feat: can now add things to prompter and it can perform things. 2026-01-23 14:47:10 +01:00
tiger tiger tiger 0cf78000dd fix: tool scripts were causing havoc on inherited scene editing§ 2026-01-23 14:12:12 +01:00
tiger tiger tiger 50a471bc28 feat: basic prompt button, needs work 2026-01-23 13:39:47 +01:00
tiger tiger tiger 77cc3398e3 feat: started working on prompter class. feat: curtain now hides itself entirely in debug boot. change: skip action is now called scene_skip 2026-01-23 11:30:42 +01:00
tiger tiger tiger bebfbbab00 fix: no double escape press / settings menu doesnt steal focus 2026-01-22 20:29:22 +01:00
tiger tiger tiger d9c43de267 fix: can now leave canvas (still bug needs double ESC) 2026-01-22 19:51:39 +01:00
tiger tiger tiger d9ce285bd6 fix: can now leave canvas (still bug needs double ESC) 2026-01-22 19:42:28 +01:00
tiger tiger tiger 5d7a2bdeab feat: added scroll keys and better scrolling 2026-01-22 19:31:52 +01:00
tiger tiger tiger 460f3b687c fix: scrolling of stories. 2026-01-22 19:09:46 +01:00
tiger tiger tiger d8411a9d49 fix: game never set state PLAY 2026-01-22 18:46:28 +01:00
tiger tiger tiger 4290328a52 fix: Pause Menu now halts the app state and restores it, and ensures savegame 2026-01-22 18:41:44 +01:00
tiger tiger tiger 199c267e8e fix: Pause Menu works. 2026-01-22 18:36:36 +01:00
tiger tiger tiger 1ad3566742 fix: cards now properly talk to the right handler. 2026-01-22 17:58:56 +01:00
tiger tiger tiger 451ace47e6 refactor: some events turned into gui_input 2026-01-22 17:42:56 +01:00
tiger tiger tiger 8bc4e2b079 fix: reduce debug spam 2026-01-22 17:05:27 +01:00
tiger tiger tiger 79feca85ab fix: reduce debug spam, refactor unhandled input 2026-01-22 16:43:25 +01:00
tiger tiger tiger 963e49e741 fix: adding ui_pause input action, and logging unhandled input (very spammy) 2026-01-22 16:21:12 +01:00
tiger tiger tiger e5f315af16 refactor: named the get_ready and start_room functions _async so it's clearer how they work differently 2026-01-22 16:06:11 +01:00
tiger tiger tiger 1a387f03e4 tweak: remove demo ending 2026-01-22 16:00:01 +01:00
tiger tiger tiger f0ada4c688 tweak: remove demo ending button 2026-01-22 15:59:44 +01:00
tiger tiger tiger 16db50cb26 tweak: light now in keyhole of door 2026-01-22 15:59:01 +01:00
betalars de8537d727 revert removing export from progress variable 2026-01-22 15:52:03 +01:00
tiger tiger tiger a949ba41fb Merge branch 'development' of https://community.rokojori.com/betalars/frame-of-mind into development 2026-01-22 15:13:38 +01:00
betalars 58a5a1e85d adding existing audio clips into scenes 2026-01-22 15:12:25 +01:00
betalars 1b6b9d5fa6 add blend1 files back to gitignore 2026-01-22 15:12:25 +01:00
tiger tiger tiger dbd76cec55 fix: pause menu cleanup 2026-01-22 15:12:24 +01:00
tiger tiger tiger 9ed9bdb7d8 fix: void card 2026-01-22 14:56:16 +01:00
tiger tiger tiger 76d0ba5c5c fix: can now debug-play StoryPlayables 2026-01-22 14:25:36 +01:00
tiger tiger tiger a70833adda fix: added doorinteractive to volunteer room 2026-01-22 14:19:22 +01:00
tiger tiger tiger c60bb80a86 fix: add %UI node to subway_sequence 2026-01-22 12:04:41 +01:00
tiger tiger tiger e5958bfe74 fix: ensuring %DoorInteractable gets unlocked. 2026-01-22 12:02:18 +01:00
tiger tiger tiger 662cb9b9a5 refactor: interactables also spawn more controlled, and there's a delayed inversion of control to ensure cardboard is ready. 2026-01-22 11:57:59 +01:00
tiger tiger tiger ff973c2978 refactor: rooms now ensure ID, rooms now share initialization code 2026-01-22 11:02:58 +01:00
tiger tiger tiger 270f0ab081 tweak: doors unlock the collider on the up flank 2026-01-22 01:47:15 +01:00
tiger tiger tiger 44ee583db9 fix: loading in both board rooms unified 2026-01-22 01:36:54 +01:00
tiger tiger tiger 8c03cb05e5 fix: loading savegame 3 times after merge 2026-01-22 01:28:34 +01:00
tiger tiger tiger c7a41fd229 merge: linux changes 2026-01-22 01:18:35 +01:00
tiger tiger tiger d52829e2f9 fix: card loading 2026-01-22 01:15:53 +01:00
tiger tiger tiger d9d42dc6a5 fix: improper order of operations / delegation for cardboard caused it to be not loaded 2026-01-21 23:46:46 +01:00
tiger tiger tiger e70ebca863 chore: remove count logic that was cause for a bug before 2026-01-21 23:40:53 +01:00
tiger tiger tiger 7a10b7db1a fix: evaluations now count correctly 2026-01-21 23:36:11 +01:00
tiger tiger tiger d26f272c8f fix: Id type now stricter 2026-01-21 23:32:55 +01:00
tiger tiger tiger 1a6049b2d2 fix: bootup problems resolved. 2026-01-21 23:23:00 +01:00
tiger tiger tiger 8e4fe676a2 chore: debugging cardboard, better movement, but now save state has problems§ 2026-01-21 22:35:35 +01:00
tiger tiger tiger 72fbdd4e57 chore: clean up old code 2026-01-21 21:40:30 +01:00
tiger tiger tiger 83568806b2 fix: card-board uses more single-responsibility, and now allows cards to slide nicely into the gaps 2026-01-21 21:38:31 +01:00
tiger tiger tiger d18970a887 fix: trying to make cards a bit more robust 2026-01-21 20:43:13 +01:00
tiger tiger tiger f6873ead20 fix: rosenthal station actually therapizes 2026-01-21 18:22:53 +01:00
tiger tiger tiger 896d1b89d5 feat: train easings exposed 2026-01-21 18:16:11 +01:00
tiger tiger tiger afc7ccf158 fix: godot chopped up music streams, and I found a lot of pcm compressed stuff 2026-01-21 18:01:56 +01:00
tiger tiger tiger 59c0773ac7 fix: music playing 2026-01-21 17:38:43 +01:00
tiger tiger tiger 7dde564bf1 fix: couldn't load into adult room correctly if going through the entire game 2026-01-21 17:11:25 +01:00
tiger tiger tiger 5635498b53 chore: regenerate lighting in volunteer room, and fixup collider on interactables. 2026-01-21 16:36:13 +01:00
tiger tiger tiger 5b2b80a70d fix: small sorting bug, tested adult room 2026-01-21 16:25:16 +01:00
tiger tiger tiger 48634e887c feat: interactable have a faint glow 2026-01-21 16:04:17 +01:00
tiger tiger tiger cce97774f0 feat: interactable have a faint glow 2026-01-21 16:01:51 +01:00
tiger tiger tiger 95f0af7d16 fix: interactables now handle input as delegated by player, scene_finished etc. are not emitted twice 2026-01-21 15:41:40 +01:00
tiger tiger tiger 1a1f8707b1 fix: room identification and save games were getting tangled up 2026-01-21 15:09:59 +01:00
tiger tiger tiger ac2f4b04b4 fix: glitchy appearance of storyplayables 2026-01-21 13:33:13 +01:00
tiger tiger tiger 18895fd44c fix: moved some audio sources 2026-01-21 13:25:38 +01:00
tiger tiger tiger c3f1f55990 fix: moved some audio sources 2026-01-21 13:23:54 +01:00
tiger tiger tiger 7d6c6b1545 fix: train timings, minor transition issue to adult room, train audio 2026-01-21 13:23:04 +01:00
223 changed files with 3842 additions and 3526 deletions

44
.gitattributes vendored
View File

@ -1,24 +1,50 @@
# Normalize EOL for all files that Git considers text files. # Normalize EOL for all files that Git considers text files.
* text=auto eol=lf * text=auto eol=lf
*.blend filter=lfs diff=lfs merge=lfs -text
# 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
*.png filter=lfs diff=lfs merge=lfs -text *.png 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 *.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 *.jpeg filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text *.tga filter=lfs diff=lfs merge=lfs -text
*.ico 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 *.kra filter=lfs diff=lfs merge=lfs -text
*.ase filter=lfs diff=lfs merge=lfs -text *.ase filter=lfs diff=lfs merge=lfs -text
*.aseprite filter=lfs diff=lfs merge=lfs -text *.aseprite filter=lfs diff=lfs merge=lfs -text
*.xcf filter=lfs diff=lfs merge=lfs -text *.xcf filter=lfs diff=lfs merge=lfs -text
*.pdf 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 *.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 *.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 *.bin filter=lfs diff=lfs merge=lfs -text

6
.gitignore vendored
View File

@ -8,6 +8,10 @@ export.cfg
export_credentials.cfg export_credentials.cfg
*.tmp *.tmp
# Mics Backup and temp files
*.blend1
*.md.backup
# Imported translations (automatically generated from CSV files) # Imported translations (automatically generated from CSV files)
*.translation *.translation
@ -36,6 +40,8 @@ mono_crash.*.json
AGENTS.md AGENTS.md
CHANGELOG.md CHANGELOG.md
ISSUES.md ISSUES.md
.claude/
CLAUDE.md
.devcontainer/ .devcontainer/
**/.idea **/.idea

BIN
design/cards-src/new_cardsheet_masked.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0001.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0002.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0003.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0004.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0005.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0006.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0007.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0008.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0009.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0010.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0011.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-aged0012.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0001.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0002.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0003.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0004.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0005.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0006.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0007.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0008.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0009.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0010.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0011.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/post-it-new0012.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
design/cards-src/second_cardset_compositing.blend (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,318 @@
<?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>

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
design/cards_compositing.blend1 (Stored with Git LFS)

Binary file not shown.

BIN
design/post-its.blend (Stored with Git LFS)

Binary file not shown.

View File

@ -47,6 +47,7 @@ func _update_events():
# TODO: Find a cleaner way to cast these values # TODO: Find a cleaner way to cast these values
var tmp: Array = [] var tmp: Array = []
if Engine.is_editor_hint(): if Engine.is_editor_hint():
print("reading project settings")
tmp = ProjectSettings.get_setting("input/" + action)["events"] tmp = ProjectSettings.get_setting("input/" + action)["events"]
else: else:
tmp = InputMap.action_get_events(action) tmp = InputMap.action_get_events(action)

View File

@ -5,5 +5,5 @@ func _ready() -> void:
$MarkdownLabel.display_file("res://addons/markdownlabel/README.md") $MarkdownLabel.display_file("res://addons/markdownlabel/README.md")
$MarkdownLabel.task_checkbox_clicked.connect( $MarkdownLabel.task_checkbox_clicked.connect(
func(id: int, line: int, checked: bool, text: String) -> void: func(id: int, line: int, checked: bool, text: String) -> void:
print_debug("%s task #%d on line %d: %s" % ["Checked" if checked else "Unchecked", id, line, text]) print("%s task #%d on line %d: %s" % ["Checked" if checked else "Unchecked", id, line, text])
) )

View File

@ -640,7 +640,7 @@ func _reset_escaped_chars(_text: String,code:=false) -> String:
func _debug(string: String) -> void: func _debug(string: String) -> void:
if not _debug_mode: if not _debug_mode:
return return
print_debug(string) print(string)
func _denotes_fenced_code_block(line: String, character: String) -> bool: func _denotes_fenced_code_block(line: String, character: String) -> bool:
var stripped_line := line.strip_edges() var stripped_line := line.strip_edges()

Binary file not shown.

View File

@ -5,25 +5,56 @@ extends Node3D
@export var index : int = -1 @export var index : int = -1
@export var signage_group : String @export var signage_group : String
@export var pre_arrival_time : float = 17.0 @export_group("Motion")
@export var arrival_time : float = 15.0 @export_subgroup("Arrival")
@export var pre_leave_time : float = 20.0 @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 door_close_time : float = 1.0 @export var door_close_time : float = 1.0
@export var leave_time : float = 15.0 @export var leave_time : float = 15.0 # train takes this long to leave the platform
@export var post_leave_time : float = 5.0 @export var trans_departure : Tween.TransitionType = Tween.TRANS_QUAD
@export var ease_departure : Tween.EaseType = Tween.EASE_IN
@onready var origination : Node3D = $Origination @onready var origination : Node3D = $Origination
@onready var destination : Node3D = $Destination @onready var destination : Node3D = $Destination
@onready var subway : SubwayTrain = $Subway @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 var tween : Tween = null
signal departure(index : int)
## 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)
func _ready() -> void: func _ready() -> void:
reset() reset()
func set_line(line: StringName):
subway.set_line(line)
## One arrival and departure ## One arrival and departure
func cycle() -> void: func cycle() -> void:
await arrive() await arrive()
@ -33,48 +64,60 @@ func reset() -> void:
if tween: tween.kill() if tween: tween.kill()
subway.global_position = origination.global_position subway.global_position = origination.global_position
func _seat_player_if_inside() -> bool: func _seat_player() -> void:
if %EntryDetect.overlaps_body(State.player):
prints("Player departs inside Train", self.name) prints("Player departs inside Train", self.name)
State.player.reparent(subway) State.player.reparent(subway)
return true
return false
func _unseat_player_if_inside() -> void: func _unseat_player() -> void:
if %EntryDetect.overlaps_body(State.player):
prints("Player arrives on Train", self.name) prints("Player arrives on Train", self.name)
State.player.reparent(get_parent()) State.player.reparent(get_parent())
func arrive(endstation : bool = false) -> void: func arrive(endstation : bool = false) -> void:
%SubwayTrainAudio.play(0) subway_audio_main.play()
%SubwayTrainAudioIntense.play(0) subway_audio_2.play()
await get_tree().create_timer(pre_arrival_time).timeout await get_tree().create_timer(pre_arrival_time).timeout
if player_on_board:
train_approaching.emit(self)
if tween: tween.kill() if tween: tween.kill()
tween = create_tween().set_trans(Tween.TRANS_CIRC).set_ease(Tween.EASE_OUT) tween = create_tween().set_trans(trans_arrival).set_ease(ease_arrival)
tween.parallel().tween_property(subway, "global_position", self.global_position, arrival_time) tween.parallel().tween_property(subway, "global_position", self.global_position, arrival_time)
await tween.finished await tween.finished
subway.door_open = true subway.door_open = true
_unseat_player_if_inside()
if player_on_board:
_unseat_player()
train_arrived.emit(self)
if endstation: if endstation:
%SubwayTrainAudio.stop() subway_audio_main.stop()
%SubwayTrainAudioIntense.stop() subway_audio_2.stop()
func leave() -> void: func leave() -> void:
await get_tree().create_timer(pre_leave_time).timeout await get_tree().create_timer(station_wait_time).timeout
subway.door_open = false subway.door_open = false
await get_tree().create_timer(door_close_time).timeout await get_tree().create_timer(door_close_time).timeout
var seated := _seat_player_if_inside()
if player_on_board:
_seat_player()
train_departing.emit(self)
if tween: tween.kill() if tween: tween.kill()
tween = create_tween().set_trans(Tween.TRANS_QUART).set_ease(Tween.EASE_IN) tween = create_tween().set_trans(trans_departure).set_ease(ease_departure)
tween.parallel().tween_property(subway, "global_position", destination.global_position, leave_time) tween.parallel().tween_property(subway, "global_position", destination.global_position, leave_time)
# Player is on board and will be leaving
await tween.finished await tween.finished
await %SubwayTrainAudio.finished
# Player was on board and has left the station # Player was on board and has left the station
if seated: departure.emit(index) if player_on_board: train_left.emit(self)
reset() reset() # Warp back / rewind train position

View File

@ -1,52 +1,57 @@
class_name Fahrplan extends Node3D class_name Fahrplan extends Node3D
## easy graph: <station> : [Track1Train1 (next halt), Track1Train2], [Track2Train1(next halt), ...] ## easy graph: <station> : [Track1Train1 (next halt), Track1Train2], [Track2Train1(next halt), ...]
@onready var fahrplan : Dictionary[Node3D, Array] = { ## CAVEAT: These must be direct children of the fahrplan!
$station_hirschfeld: [[$station_university_mensa, $station_parity_square],[]], @onready var fahrplan : Dictionary[Station, Array] = {
$station_hirschfeld : [[$station_university_mensa, $station_parity_square],[]], $hirschfeld: [["u2", $uni_mensa, "u1", $parity_square],[]],
$station_university_mensa : [[$station_university_main],[]], $uni_mensa : [["u2", $uni_main],[]],
$station_university_main: [[$station_ministry],[$station_rosenthal, $station_university_mensa]], $uni_main: [["u2", $ministry],["u8", $rosenthal, "u2", $uni_mensa, "u1", $saint_exupery]],
$station_parity_square : [[$station_saint_exupery],[$station_rosenthal]], $parity_square : [["u4", $saint_exupery, "u1", $saint_exupery], []],
$station_saint_exupery : [[$station_saint_exupery],[$station_rosenthal]], $saint_exupery : [["u4", $rosenthal], ["u1", $uni_main]],
$station_ministry : [null,null], # Endstation $ministry : [null, null], # Endstation
$station_rosenthal : [null,null], # Endstation $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] @onready var tracks : Array[Dolly] = [%Track0Dolly, %Track1Dolly]
@export var random_wait : Vector2 = Vector2(1.0, 10.0) @export var empty_train_random_delay : Vector2 = Vector2(5.0, 20.0)
func _set_signage_texts(group: StringName, message: String) -> void: func _set_signage_texts(group: StringName, message: String) -> void:
get_tree().call_group(group, "set_text", "") get_tree().set_group(group, "text", "")
for i in range(len(message)): for i in range(len(message)):
get_tree().call_group(group, "set_text", message.substr(0, i+1)) get_tree().set_group(group, "text", message.substr(0, i+1))
await get_tree().create_timer(0.05).timeout await get_tree().create_timer(0.05).timeout
func _ready() -> void: func _ready() -> void:
var x : Node3D = $station_hirschfeld
print(x.name)
await get_tree().process_frame await get_tree().process_frame
tracks[0].departure.connect(player_departed) tracks[0].train_left.connect(_player_train_left)
tracks[1].departure.connect(player_departed) tracks[1].train_left.connect(_player_train_left)
enter_station($station_hirschfeld) _unparent_all_stations_except($hirschfeld)
enter_station(current)
var current_station : Node3D = null ## The current station
var current : Station
var stop := false var stop := false
var destinations : Array[Node3D] = [null, null] var destinations : Array[Station] = [null, null]
func train_traffic_loop(track: Dolly, cancel: Array) -> void: ## 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
if fahrplan[current_station][track.index] == null: # empty array (just no routes) would be falsy if fahrplan[current][track.index] == null: # empty trains dont arrive at endstation
track.arrive(true) track.arrive(true)
_set_signage_texts(track.signage_group, "Endstation") _set_signage_texts(track.signage_group, "Endstation")
return return
var routes : Array = fahrplan[current_station][track.index] var routes : Array = fahrplan[current][track.index]
if routes.is_empty(): if routes.is_empty():
_set_signage_texts(track.signage_group, "Verkehr z. Zt.\nunregelmäßig") _set_signage_texts(track.signage_group, "Verkehr z. Zt.\nunregelmäßig")
return return
@ -54,13 +59,19 @@ func train_traffic_loop(track: Dolly, cancel: Array) -> void:
while true: while true:
if cancel.is_empty(): return # abort the loop if cancel.is_empty(): return # abort the loop
var next : Node = routes.pop_front() var line : StringName = routes.pop_front()
var next : Station = routes.pop_front()
routes.append(line) # It's a ring buffer
routes.append(next) # It's a ring buffer routes.append(next) # It's a ring buffer
destinations[track.index] = next destinations[track.index] = next
_set_signage_texts(track.signage_group, next.name) # TODO: load nice string track.set_line(line)
_set_signage_texts(track.signage_group, current.get_label(line, next)) # TODO: load nice string
await get_tree().create_timer(randf_range(random_wait.x, random_wait.y)).timeout # 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
if cancel.is_empty(): return # abort the loop if cancel.is_empty(): return # abort the loop
await track.cycle() # arrive and depart await track.cycle() # arrive and depart
@ -68,16 +79,26 @@ func train_traffic_loop(track: Dolly, cancel: Array) -> void:
var cancellation_token : Array var cancellation_token : Array
func enter_station(station: Node): func enter_station(station: Station):
prints("------------", "ENTER STATION", station, station.name, "------------") prints("------------", "ENTER STATION", station, station.name, "------------")
if current_station: current_station.visible = false remove_child(current)
current_station = station current = station
current_station.visible = true add_child(station)
cancellation_token = ["go"] # Allocate a new stopping token cancellation_token = ["go"] # Allocate a new stopping token
train_traffic_loop(tracks[0], cancellation_token) _begin_traffic_loop(tracks[0], cancellation_token)
train_traffic_loop(tracks[1], cancellation_token) _begin_traffic_loop(tracks[1], cancellation_token)
func player_departed(track_index : int) -> void: func _player_train_left(track: Dolly) -> void:
cancellation_token.clear() cancellation_token.clear()
enter_station(destinations[track_index]) 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)

View File

@ -1,18 +1,8 @@
class_name Station extends Resource extends Node3D
class_name Station
enum id { @export var i18n_key : StringName
HIRSCHFELD, @export var train_labels : Dictionary[StringName,String] = {}
PARITY,
EXUPERY,
ROSENTHAL,
UNI_1,
UNI_2,
MINISTRY
}
@export var station_name: StringName = "" func get_label(line: StringName, next_stop: Station) -> String:
@export var memory: Scenes.id = Scenes.id.YOUTH_DRAVEN return train_labels.get(line+next_stop.name, line+next_stop.name)
@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

View File

@ -1 +1 @@
uid://cyeh7sa20bmcf uid://pmhadgsfinjc

View File

@ -1,26 +1,23 @@
extends RoomTemplate extends Room
class_name SubwaySequence class_name SubwaySequence
@export var all_stations: Dictionary[Station.id, Station]
@export var all_lines: Dictionary[TrainLine.id, TrainLine]
func _ready() -> void: func _ready() -> void:
super._ready()
id = State.rooms.TRANSITION id = State.rooms.TRANSITION
super._ready()
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) Scenes.player_enable.emit(true)
await Main.curtain.open() 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: func pull_save_state(save: SaveGame) -> void:
#FIXME
save.sequences_enabled = Scenes.enabled_sequences save.sequences_enabled = Scenes.enabled_sequences
save.current_room = State.rooms.ADULTHOOD
save_game = save save_game = save
# Call parent to restore player position # Call parent to restore player position

View File

@ -1,6 +1,8 @@
extends Node3D extends Node3D
class_name SubwayTrain class_name SubwayTrain
@export var materials : Dictionary[StringName, Material] = {}
@export var door_open: bool: @export var door_open: bool:
set(open): set(open):
if door_open == open: return if door_open == open: return
@ -10,8 +12,11 @@ class_name SubwayTrain
else: else:
%TrainModel/AnimationPlayer.play("door_close") %TrainModel/AnimationPlayer.play("door_close")
func _ready() -> void:
%TrainModel/AnimationPlayer.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(_discard) -> void:
%FrontWallClosed.disabled = door_open %FrontWallClosed.disabled = door_open
func set_line(line : StringName):
$TrainModel/traun_hull.material_overlay = materials[line]
$TrainModel/LineLabelBack.text = line.to_upper()
$TrainModel/LineLabelFront.text = line.to_upper()

View File

@ -1,14 +0,0 @@
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]

View File

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

View File

@ -5,5 +5,4 @@ resource_name = "display"
cull_mode = 2 cull_mode = 2
albedo_color = Color(0.16613327, 0.10919999, 0.28, 1) albedo_color = Color(0.16613327, 0.10919999, 0.28, 1)
metallic = 0.1 metallic = 0.1
metallic_specular = 0.3 roughness = 0.4
roughness = 0.15

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=3 uid="uid://tuv111h6jsnu"] [gd_scene 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="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"] [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"] [sub_resource type="PlaneMesh" id="PlaneMesh_yyrp7"]
[node name="meta_station" instance=ExtResource("1_yekr5")] [node name="meta_station" unique_id=862984273 instance=ExtResource("1_yekr5")]
[node name="water_001" parent="." index="0"] [node name="water_001" parent="." index="0" unique_id=111926402]
gi_mode = 0 gi_mode = 0
[node name="water" parent="." index="1"] [node name="water" parent="." index="1" unique_id=1328856464]
gi_mode = 0 gi_mode = 0
[node name="signal_lights_004" parent="." index="21"] [node name="signal_lights_004" parent="." index="21" unique_id=972850034]
gi_mode = 2 gi_mode = 2
[node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_004" index="0"] [node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_004" index="0" unique_id=1439750635]
transform = Transform3D(1, 0, 0, 0, 1, -8.526513e-14, 0, 8.526513e-14, 1, 2.947373, 0.36035156, 1.2887176e-07) 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") stream = ExtResource("2_yyrp7")
unit_size = 2.0 unit_size = 2.0
autoplay = true autoplay = true
bus = &"sfx" bus = &"sfx"
[node name="signal_lights_003" parent="." index="22"] [node name="signal_lights_003" parent="." index="22" unique_id=1393034]
gi_mode = 2 gi_mode = 2
[node name="signal_lights_002" parent="." index="23"] [node name="signal_lights_002" parent="." index="23" unique_id=52720530]
gi_mode = 2 gi_mode = 2
[node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_002" index="0"] [node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_002" index="0" unique_id=1680482042]
transform = Transform3D(1, 0, -8.351873e-23, 0, 1, 1.9106857e-15, -8.351873e-23, 0, 1, -8.365656, -0.024308532, 3.6567445e-07) 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") stream = ExtResource("2_yyrp7")
unit_size = 2.0 unit_size = 2.0
autoplay = true autoplay = true
bus = &"sfx" bus = &"sfx"
[node name="signal_lights_001" parent="." index="24"] [node name="signal_lights_001" parent="." index="24" unique_id=1944425223]
gi_mode = 2 gi_mode = 2
[node name="railway_lighting" parent="." index="35"] [node name="railway_lighting" parent="." index="35" unique_id=2080917627]
cast_shadow = 0 cast_shadow = 0
gi_mode = 2 gi_mode = 2
[node name="FluorescentLuz" parent="." index="41"] [node name="FluorescentLuz" parent="." index="41" unique_id=1745682064]
cast_shadow = 0 cast_shadow = 0
[node name="escalator_stairs_L" parent="." index="43"] [node name="escalator_stairs_L" parent="." index="43" unique_id=1621434836]
custom_aabb = AABB(-0.8, 0, -1, 1.6, 3.5, 7) custom_aabb = AABB(-0.8, 0, -1, 1.6, 3.5, 7)
gi_mode = 0 gi_mode = 0
surface_material_override/0 = SubResource("ShaderMaterial_jh12p") surface_material_override/0 = SubResource("ShaderMaterial_jh12p")
[node name="Ceiling" parent="." index="44"] [node name="Ceiling" parent="." index="44" unique_id=143112021]
cast_shadow = 0 cast_shadow = 0
[node name="escalator_stairs_L_001" parent="." index="46"] [node name="escalator_stairs_L_001" parent="." index="46" unique_id=774045853]
transform = Transform3D(1, 0, 2.3841858e-07, 0, 1, 0, -2.3841858e-07, 0, 1, -0.854971, 3.1997495, 4.8378654) 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") material_override = SubResource("ShaderMaterial_klf6x")
custom_aabb = AABB(-0.8, -3, -9, 1.6, 3.5, 7) custom_aabb = AABB(-0.8, -3, -9, 1.6, 3.5, 7)
gi_mode = 0 gi_mode = 0
[node name="Voids" type="Node3D" parent="." index="47"] [node name="Voids" type="Node3D" parent="." index="47" unique_id=1990649157]
transform = Transform3D(1, 0, 0, 0, 0.99999994, 0, 0, 0, 1, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, 0.99999994, 0, 0, 0, 1, 0, 0, 0)
[node name="Void" type="MeshInstance3D" parent="Voids" index="0"] [node name="Void" type="MeshInstance3D" parent="Voids" index="0" unique_id=145697625]
transform = Transform3D(3.52244, 0, 0, 0, -1.1920929e-07, 2.81712, 0, -2.81712, -1.1920929e-07, -6.37235, 1.2251098, 0.16566086) 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") material_override = SubResource("ShaderMaterial_e0ljd")
gi_mode = 0 gi_mode = 0
mesh = SubResource("PlaneMesh_yyrp7") mesh = SubResource("PlaneMesh_yyrp7")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Void2" type="MeshInstance3D" parent="Voids" index="1"] [node name="Void2" type="MeshInstance3D" parent="Voids" index="1" unique_id=1359246771]
transform = Transform3D(3.52244, 0, 0, 0, -1.1920929e-07, 2.81712, 0, -2.81712, -1.1920929e-07, 6.372, 1.2249999, 0.16599989) 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") material_override = SubResource("ShaderMaterial_e0ljd")
gi_mode = 0 gi_mode = 0
mesh = SubResource("PlaneMesh_yyrp7") mesh = SubResource("PlaneMesh_yyrp7")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Void3" type="MeshInstance3D" parent="Voids" index="2"] [node name="Void3" type="MeshInstance3D" parent="Voids" index="2" unique_id=1648551827]
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) 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") material_override = SubResource("ShaderMaterial_e0ljd")
gi_mode = 0 gi_mode = 0
mesh = SubResource("PlaneMesh_yyrp7") mesh = SubResource("PlaneMesh_yyrp7")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Void4" type="MeshInstance3D" parent="Voids" index="3"] [node name="Void4" type="MeshInstance3D" parent="Voids" index="3" unique_id=1928136706]
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) 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") material_override = SubResource("ShaderMaterial_e0ljd")
gi_mode = 0 gi_mode = 0
mesh = SubResource("PlaneMesh_yyrp7") mesh = SubResource("PlaneMesh_yyrp7")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Void5" type="MeshInstance3D" parent="Voids" index="4"] [node name="Void5" type="MeshInstance3D" parent="Voids" index="4" unique_id=144937323]
transform = Transform3D(3.52244, 0, 0, 0, -2.21081, 1.7459902, 0, -1.7459902, -2.21081, 0, 4.91844, 1.5205798) 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") material_override = SubResource("ShaderMaterial_e0ljd")
gi_mode = 0 gi_mode = 0
mesh = SubResource("PlaneMesh_yyrp7") mesh = SubResource("PlaneMesh_yyrp7")
skeleton = NodePath("") skeleton = NodePath("")
[node name="station_display_R" parent="." index="48"] [node name="station_display_R" parent="." index="48" unique_id=717625287]
cast_shadow = 0 cast_shadow = 0
[node name="Label3D" type="Label3D" parent="station_display_R" index="0" groups=["signage2"]] [node name="Label3D" type="Label3D" parent="station_display_R" index="0" unique_id=1483256478 groups=["signage2"]]
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1) transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -163,7 +163,7 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Label3D2" type="Label3D" parent="station_display_R" index="1" groups=["signage2"]] [node name="Label3D2" type="Label3D" parent="station_display_R" index="1" unique_id=200294395 groups=["signage2"]]
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1) transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -174,10 +174,10 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Cube_012" parent="." index="49"] [node name="Cube_012" parent="." index="49" unique_id=344629753]
cast_shadow = 0 cast_shadow = 0
[node name="Label3D" type="Label3D" parent="Cube_012" index="0" groups=["signage1"]] [node name="Label3D" type="Label3D" parent="Cube_012" index="0" unique_id=663534524 groups=["signage1"]]
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458555, 0.35, 0.1) transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458555, 0.35, 0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -188,7 +188,7 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Label3D2" type="Label3D" parent="Cube_012" index="1" groups=["signage1"]] [node name="Label3D2" type="Label3D" parent="Cube_012" index="1" unique_id=1765168718 groups=["signage1"]]
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1) transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -199,10 +199,10 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Cube_014" parent="." index="50"] [node name="Cube_014" parent="." index="50" unique_id=1445806880]
cast_shadow = 0 cast_shadow = 0
[node name="Label3D" type="Label3D" parent="Cube_014" index="0" groups=["signage2"]] [node name="Label3D" type="Label3D" parent="Cube_014" index="0" unique_id=433447963 groups=["signage2"]]
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1) transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -213,7 +213,7 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Label3D2" type="Label3D" parent="Cube_014" index="1" groups=["signage2"]] [node name="Label3D2" type="Label3D" parent="Cube_014" index="1" unique_id=504377523 groups=["signage2"]]
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1) transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -224,10 +224,10 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Cube_016" parent="." index="51"] [node name="Cube_016" parent="." index="51" unique_id=1680412331]
cast_shadow = 0 cast_shadow = 0
[node name="Label3D" type="Label3D" parent="Cube_016" index="0" groups=["signage1", "signage2"]] [node name="Label3D" type="Label3D" parent="Cube_016" index="0" unique_id=869875951 groups=["signage1", "signage2"]]
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458553, 0.35, 0.1) transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458553, 0.35, 0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -238,7 +238,7 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Label3D2" type="Label3D" parent="Cube_016" index="1" groups=["signage1"]] [node name="Label3D2" type="Label3D" parent="Cube_016" index="1" unique_id=161017806 groups=["signage1"]]
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1) transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -249,10 +249,10 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Cube_010" parent="." index="52"] [node name="Cube_010" parent="." index="52" unique_id=1863769251]
cast_shadow = 0 cast_shadow = 0
[node name="Label3D" type="Label3D" parent="Cube_010" index="0" groups=["signage2"]] [node name="Label3D" type="Label3D" parent="Cube_010" index="0" unique_id=521079851 groups=["signage2"]]
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1) transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -263,7 +263,7 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Label3D2" type="Label3D" parent="Cube_010" index="1" groups=["signage2"]] [node name="Label3D2" type="Label3D" parent="Cube_010" index="1" unique_id=1080113923 groups=["signage2"]]
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1) transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -274,10 +274,10 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Cube_017" parent="." index="53"] [node name="Cube_017" parent="." index="53" unique_id=48237932]
cast_shadow = 0 cast_shadow = 0
[node name="Label3D" type="Label3D" parent="Cube_017" index="0" groups=["signage1"]] [node name="Label3D" type="Label3D" parent="Cube_017" index="0" unique_id=1122044412 groups=["signage1"]]
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458555, 0.35, 0.1) transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458555, 0.35, 0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -288,7 +288,7 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Label3D2" type="Label3D" parent="Cube_017" index="1" groups=["signage1"]] [node name="Label3D2" type="Label3D" parent="Cube_017" index="1" unique_id=973870713 groups=["signage1"]]
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.855903, 0.35, -0.1) transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.855903, 0.35, -0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -299,10 +299,10 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Cube_018" parent="." index="54"] [node name="Cube_018" parent="." index="54" unique_id=176965991]
cast_shadow = 0 cast_shadow = 0
[node name="Label3D" type="Label3D" parent="Cube_018" index="0" groups=["signage2"]] [node name="Label3D" type="Label3D" parent="Cube_018" index="0" unique_id=223573175 groups=["signage2"]]
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1) transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -313,7 +313,7 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Label3D2" type="Label3D" parent="Cube_018" index="1" groups=["signage2"]] [node name="Label3D2" type="Label3D" parent="Cube_018" index="1" unique_id=1733940824 groups=["signage2"]]
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1) transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -324,10 +324,10 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Cube_019" parent="." index="55"] [node name="Cube_019" parent="." index="55" unique_id=1049546297]
cast_shadow = 0 cast_shadow = 0
[node name="Label3D" type="Label3D" parent="Cube_019" index="0" groups=["signage1"]] [node name="Label3D" type="Label3D" parent="Cube_019" index="0" unique_id=1354074723 groups=["signage1"]]
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458553, 0.35, 0.1) transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458553, 0.35, 0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
@ -338,7 +338,7 @@ outline_size = 2
horizontal_alignment = 0 horizontal_alignment = 0
vertical_alignment = 0 vertical_alignment = 0
[node name="Label3D2" type="Label3D" parent="Cube_019" index="1" groups=["signage1"]] [node name="Label3D2" type="Label3D" parent="Cube_019" index="1" unique_id=1646653447 groups=["signage1"]]
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1) transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1)
transparency = 0.6 transparency = 0.6
modulate = Color(2.454227, 1.0085243, 0.54216844, 1) modulate = Color(2.454227, 1.0085243, 0.54216844, 1)

View File

@ -1,4 +1,4 @@
[gd_resource type="ShaderMaterial" load_steps=10 format=3 uid="uid://b3wybjajg4dr3"] [gd_resource type="ShaderMaterial" 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://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"] [ext_resource type="Texture2D" uid="uid://dst0u5b51mx4h" path="res://base-environments/transition/shaders/water_color.exr" id="1_s12gp"]

View File

@ -8,6 +8,7 @@
[resource] [resource]
resource_name = "train_windows" resource_name = "train_windows"
transparency = 4 transparency = 4
cull_mode = 2
albedo_texture = ExtResource("1_qqnyp") albedo_texture = ExtResource("1_qqnyp")
metallic = 1.0 metallic = 1.0
metallic_texture = ExtResource("2_orwl3") metallic_texture = ExtResource("2_orwl3")

View File

@ -9,6 +9,7 @@
resource_name = "train_windows_transparent" resource_name = "train_windows_transparent"
transparency = 1 transparency = 1
blend_mode = 4 blend_mode = 4
cull_mode = 2
albedo_texture = ExtResource("1_p8q8d") albedo_texture = ExtResource("1_p8q8d")
metallic = 1.0 metallic = 1.0
metallic_texture = ExtResource("2_eds1u") metallic_texture = ExtResource("2_eds1u")

View File

@ -1,5 +1,5 @@
shader_type spatial; shader_type spatial;
render_mode cull_back, blend_add, unshaded; render_mode cull_disabled, blend_add, unshaded;
varying vec3 world_pos; varying vec3 world_pos;
uniform float state = 0.0; uniform float state = 0.0;

View File

@ -1,4 +1,4 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://dchm78gv31r6a"] [gd_resource type="ShaderMaterial" load_steps=4 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="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"] [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.

View File

@ -1,5 +1,8 @@
extends Node3D extends Station
func _ready() -> void: func _ready() -> void:
State.room.save_game.burnout = true %PlayerDetect.body_entered.connect(func(body):
%PlayerDetect.body_entered.connect(func(body): if visible and body is PlayerController: State.room.proceed.emit(Main.adulthood_room_path)) 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))

File diff suppressed because one or more lines are too long

View File

@ -1,14 +1,14 @@
[gd_scene load_steps=4 format=3 uid="uid://d2j0d88axhfue"] [gd_scene 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="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="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"] [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" instance=ExtResource("1_4tuwp")] [node name="station_hirschfeld" unique_id=825756048 instance=ExtResource("1_4tuwp")]
[node name="meta_station" parent="." index="5" instance=ExtResource("5_ru87u")] [node name="meta_station" parent="." index="5" unique_id=1517771541 instance=ExtResource("5_ru87u")]
[node name="EscalatorAudio" type="AudioStreamPlayer3D" parent="meta_station" index="56"] [node name="EscalatorAudio" type="AudioStreamPlayer3D" parent="meta_station" index="56" unique_id=775809027]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5971837, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5971837, 0)
stream = ExtResource("3_ke0al") stream = ExtResource("3_ke0al")
attenuation_model = 1 attenuation_model = 1

View File

@ -1,4 +1,8 @@
extends Node3D extends Station
func _ready() -> void: func _ready() -> void:
%PlayerDetect.body_entered.connect(func(body): if visible and body is PlayerController: State.room.proceed.emit(Main.adulthood_room_path)) %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))

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

View File

@ -1,9 +1,15 @@
[gd_scene load_steps=25 format=3 uid="uid://df3ur5wll8vx7"] [gd_scene load_steps=31 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="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://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="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="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"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aacjs"]
shading_mode = 0 shading_mode = 0
@ -108,14 +114,6 @@ size = Vector3(31.194, 0.8, 3.8)
[node name="TrainDolly" type="Node3D"] [node name="TrainDolly" type="Node3D"]
script = ExtResource("1_5jpg8") 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" metadata/_custom_type_script = "uid://dgfje4druu3sw"
[node name="Destination" type="Node3D" parent="."] [node name="Destination" type="Node3D" parent="."]
@ -130,6 +128,13 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -150)
[node name="Subway" type="Node3D" parent="."] [node name="Subway" type="Node3D" parent="."]
script = ExtResource("2_aacjs") 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" metadata/_custom_type_script = "uid://cyohujvfoiof7"
[node name="WarpEffecScreen" type="MeshInstance3D" parent="Subway"] [node name="WarpEffecScreen" type="MeshInstance3D" parent="Subway"]
@ -160,26 +165,40 @@ spot_angle = 15.0
[node name="SubwayTrainAudio" type="AudioStreamPlayer3D" parent="Subway"] [node name="SubwayTrainAudio" type="AudioStreamPlayer3D" parent="Subway"]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.4578781, 0, -6.1605225) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, -0.742, -11.098)
stream = ExtResource("3_4h0n7") stream = ExtResource("3_4h0n7")
unit_size = 100.0 unit_size = 100.0
max_polyphony = 2
panning_strength = 0.7 panning_strength = 0.7
bus = &"sfx" bus = &"sfx"
playback_type = 1 playback_type = 1
[node name="SubwayTrainAudioIntense" type="AudioStreamPlayer3D" parent="Subway"] [node name="SubwayTrainAudioIntense" type="AudioStreamPlayer3D" parent="Subway"]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0.6660023, 0, 0) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, -0.802, 10.908)
stream = ExtResource("3_4h0n7") stream = ExtResource("3_4h0n7")
attenuation_model = 1 attenuation_model = 1
unit_size = 15.0 unit_size = 15.0
max_polyphony = 2
panning_strength = 0.9
bus = &"sfx" bus = &"sfx"
playback_type = 1 playback_type = 1
[node name="TrainModel" parent="Subway" instance=ExtResource("1_2h2xx")] [node name="TrainModel" parent="Subway" instance=ExtResource("1_2h2xx")]
unique_name_in_owner = true 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) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.4114173e-08, 0, -0.7804413)
script = null
[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
[node name="Collider" type="AnimatableBody3D" parent="Subway"] [node name="Collider" type="AnimatableBody3D" parent="Subway"]
unique_name_in_owner = true unique_name_in_owner = true

View File

@ -1,20 +1,12 @@
[gd_scene load_steps=15 format=4 uid="uid://4j1tlhfm3p40"] [gd_scene 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="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://dchm78gv31r6a" path="res://base-environments/transition/shaders/timetravel.tres" id="2_g5p57"]
[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://ddw7mob1qmlbj" path="res://base-environments/transition/shaders/u0.material" id="3_81crm"]
[ext_resource type="Material" uid="uid://rh1lc61j6qd8" path="res://base-environments/transition/import/textures/roof_greeble.tres" id="3_q0ort"] [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="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"] [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"] [sub_resource type="ArrayMesh" id="ArrayMesh_f2ux3"]
_surfaces = [{ _surfaces = [{
"aabb": AABB(-5.128359, -0.2631049, -1.4985942, 10.841061, 0.57964456, 3.1154532), "aabb": AABB(-5.128359, -0.2631049, -1.4985942, 10.841061, 0.57964456, 3.1154532),
@ -52,6 +44,7 @@ shadow_mesh = SubResource("ArrayMesh_f2ux3")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q0ort"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q0ort"]
transparency = 1 transparency = 1
blend_mode = 1 blend_mode = 1
cull_mode = 2
albedo_texture = ExtResource("5_6pwip") albedo_texture = ExtResource("5_6pwip")
roughness = 0.1 roughness = 0.1
@ -143,200 +136,198 @@ _data = {
&"door_open": SubResource("Animation_8e51f") &"door_open": SubResource("Animation_8e51f")
} }
[node name="subway_train" instance=ExtResource("1_8e51f")] [node name="subway_train" unique_id=1755696385 instance=ExtResource("1_8e51f")]
script = ExtResource("2_skiem")
[node name="traun_hull" parent="." index="0"] [node name="traun_hull" parent="." index="0" unique_id=997216472]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0) transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
layers = 4 layers = 4
gi_mode = 2 gi_mode = 2
surface_material_override/0 = SubResource("StandardMaterial3D_8e51f") surface_material_override/0 = ExtResource("3_81crm")
[node name="ApoyaCristalesLateralesPared3_LP_004_LateralesInteriores_0_001" parent="traun_hull" index="0"] [node name="ApoyaCristalesLateralesPared3_LP_004_LateralesInteriores_0_001" parent="traun_hull" index="0" unique_id=985506164]
layers = 4 layers = 4
[node name="ApoyaCristalesLateralesPared3_LP_004_LateralesInteriores_0_002" parent="traun_hull" index="1"] [node name="ApoyaCristalesLateralesPared3_LP_004_LateralesInteriores_0_002" parent="traun_hull" index="1" unique_id=1929128547]
layers = 4 layers = 4
[node name="cabin" parent="traun_hull" index="2"] [node name="cabin" parent="traun_hull" index="2" unique_id=1235405392]
layers = 4 layers = 4
[node name="cabin_001" parent="traun_hull" index="3"] [node name="cabin_001" parent="traun_hull" index="3" unique_id=42368085]
layers = 4 layers = 4
[node name="cabin_windows" parent="traun_hull" index="4"] [node name="cabin_windows" parent="traun_hull" index="4" unique_id=1682732857]
layers = 4 layers = 4
[node name="cabin_windows_001" parent="traun_hull" index="5"] [node name="cabin_windows_001" parent="traun_hull" index="5" unique_id=903571490]
layers = 4 layers = 4
[node name="ceiling" parent="traun_hull" index="6"] [node name="ceiling" parent="traun_hull" index="6" unique_id=2103099870]
layers = 4 layers = 4
[node name="ceiling_001" parent="traun_hull" index="7"] [node name="ceiling_001" parent="traun_hull" index="7" unique_id=2139068792]
layers = 4 layers = 4
[node name="Cube_004" parent="traun_hull" index="8"] [node name="Cube_004" parent="traun_hull" index="8" unique_id=720511511]
layers = 4 layers = 4
[node name="Cube_005" parent="traun_hull" index="9"] [node name="Cube_005" parent="traun_hull" index="9" unique_id=1016564497]
layers = 4 layers = 4
[node name="Cube_007" type="MeshInstance3D" parent="traun_hull" index="10"] [node name="Cube_007" type="MeshInstance3D" parent="traun_hull" index="10" unique_id=2100437457]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.140757, 3.1445234, -1.4974344e-06) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.140757, 3.1445234, -1.4974344e-06)
layers = 4 layers = 4
mesh = SubResource("ArrayMesh_7uxbi") mesh = SubResource("ArrayMesh_7uxbi")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Cube_006" parent="traun_hull" index="11"] [node name="Cube_006" parent="traun_hull" index="11" unique_id=728325690]
layers = 4 layers = 4
[node name="Cube_008" parent="traun_hull" index="12"] [node name="Cube_008" parent="traun_hull" index="12" unique_id=1209871809]
layers = 4 layers = 4
[node name="Cube_010" parent="traun_hull" index="13"] [node name="Cube_010" parent="traun_hull" index="13" unique_id=110333036]
layers = 4 layers = 4
[node name="Cube_012" parent="traun_hull" index="14"] [node name="Cube_012" parent="traun_hull" index="14" unique_id=82219605]
layers = 4 layers = 4
[node name="Cube_014" parent="traun_hull" index="15"] [node name="Cube_014" parent="traun_hull" index="15" unique_id=100170641]
layers = 4 layers = 4
[node name="door_seat2_low_MAT_SEATS_0_001" parent="traun_hull" index="16"] [node name="door_seat2_low_MAT_SEATS_0_001" parent="traun_hull" index="16" unique_id=1608318234]
layers = 4 layers = 4
[node name="door_seat2_low_MAT_SEATS_0_002" parent="traun_hull" index="17"] [node name="door_seat2_low_MAT_SEATS_0_002" parent="traun_hull" index="17" unique_id=537892245]
layers = 4 layers = 4
[node name="door_seating_001" parent="traun_hull" index="18"] [node name="door_seating_001" parent="traun_hull" index="18" unique_id=29456754]
layers = 4 layers = 4
[node name="door_seating_002" parent="traun_hull" index="19"] [node name="door_seating_002" parent="traun_hull" index="19" unique_id=1992095810]
layers = 4 layers = 4
[node name="door_seating_003" parent="traun_hull" index="20"] [node name="door_seating_003" parent="traun_hull" index="20" unique_id=1640376733]
layers = 4 layers = 4
[node name="door_seating_004" parent="traun_hull" index="21"] [node name="door_seating_004" parent="traun_hull" index="21" unique_id=1861798917]
layers = 4 layers = 4
[node name="door_seating_005" parent="traun_hull" index="22"] [node name="door_seating_005" parent="traun_hull" index="22" unique_id=1788081881]
layers = 4 layers = 4
[node name="Icosphere_003" parent="traun_hull" index="23"] [node name="Icosphere_003" parent="traun_hull" index="23" unique_id=430174688]
layers = 4 layers = 4
[node name="Icosphere_016" parent="traun_hull" index="24"] [node name="Icosphere_016" parent="traun_hull" index="24" unique_id=1677194569]
layers = 4 layers = 4
[node name="Icosphere_017" parent="traun_hull" index="25"] [node name="Icosphere_017" parent="traun_hull" index="25" unique_id=1644178170]
layers = 4 layers = 4
[node name="Icosphere_018" parent="traun_hull" index="26"] [node name="Icosphere_018" parent="traun_hull" index="26" unique_id=1112737943]
layers = 4 layers = 4
[node name="Icosphere_019" parent="traun_hull" index="27"] [node name="Icosphere_019" parent="traun_hull" index="27" unique_id=1423877139]
layers = 4 layers = 4
[node name="Icosphere_020" parent="traun_hull" index="28"] [node name="Icosphere_020" parent="traun_hull" index="28" unique_id=1819164379]
layers = 4 layers = 4
[node name="interiour_walls" parent="traun_hull" index="29"] [node name="interiour_walls" parent="traun_hull" index="29" unique_id=1262158040]
layers = 4 layers = 4
[node name="interiour_walls_001" parent="traun_hull" index="30"] [node name="interiour_walls_001" parent="traun_hull" index="30" unique_id=412676970]
layers = 4 layers = 4
[node name="MarcosPuertasInteriorLateral2_LP_004_LateralesInteriores_0_001" parent="traun_hull" index="31"] [node name="MarcosPuertasInteriorLateral2_LP_004_LateralesInteriores_0_001" parent="traun_hull" index="31" unique_id=1236591883]
layers = 4 layers = 4
[node name="MarcosPuertasInteriorLateral2_LP_004_LateralesInteriores_0_002" parent="traun_hull" index="32"] [node name="MarcosPuertasInteriorLateral2_LP_004_LateralesInteriores_0_002" parent="traun_hull" index="32" unique_id=708054081]
layers = 4 layers = 4
[node name="middle_seating" parent="traun_hull" index="33"] [node name="middle_seating" parent="traun_hull" index="33" unique_id=1557584304]
layers = 4 layers = 4
[node name="middle_seating_001" parent="traun_hull" index="34"] [node name="middle_seating_001" parent="traun_hull" index="34" unique_id=1546075330]
layers = 4 layers = 4
[node name="middle_seating_002" parent="traun_hull" index="35"] [node name="middle_seating_002" parent="traun_hull" index="35" unique_id=1396264635]
layers = 4 layers = 4
[node name="middle_seating_003" parent="traun_hull" index="36"] [node name="middle_seating_003" parent="traun_hull" index="36" unique_id=1389438019]
layers = 4 layers = 4
[node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_001" parent="traun_hull" index="37"] [node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_001" parent="traun_hull" index="37" unique_id=1287465993]
layers = 4 layers = 4
[node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_002" parent="traun_hull" index="38"] [node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_002" parent="traun_hull" index="38" unique_id=1131705536]
layers = 4 layers = 4
[node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_003" parent="traun_hull" index="39"] [node name="SeparadoresSueloInterior_LP_006_SueloInterior_0_003" parent="traun_hull" index="39" unique_id=1657133970]
layers = 4 layers = 4
[node name="SeparadoresSueloInterior_LP_007_SueloInterior_0_002" parent="traun_hull" index="40"] [node name="SeparadoresSueloInterior_LP_007_SueloInterior_0_002" parent="traun_hull" index="40" unique_id=95643343]
layers = 4 layers = 4
[node name="SeparadoresSueloInterior_LP_007_SueloInterior_0_003" parent="traun_hull" index="41"] [node name="SeparadoresSueloInterior_LP_007_SueloInterior_0_003" parent="traun_hull" index="41" unique_id=628074467]
layers = 4 layers = 4
[node name="SueloInterior_LP_006_SueloInterior_0_001" parent="traun_hull" index="42"] [node name="SueloInterior_LP_006_SueloInterior_0_001" parent="traun_hull" index="42" unique_id=887426]
layers = 4 layers = 4
[node name="train_display" parent="traun_hull" index="43"] [node name="train_display" parent="traun_hull" index="43" unique_id=2037687580]
layers = 4 layers = 4
[node name="undercarriage" parent="traun_hull" index="44"] [node name="undercarriage" parent="traun_hull" index="44" unique_id=806213779]
layers = 4 layers = 4
[node name="VentanaLateral2_LP_004_LateralTren_0_003" parent="traun_hull" index="45"] [node name="VentanaLateral2_LP_004_LateralTren_0_003" parent="traun_hull" index="45" unique_id=840775399]
layers = 4 layers = 4
surface_material_override/0 = ExtResource("2_g5p57") surface_material_override/0 = ExtResource("2_g5p57")
surface_material_override/1 = SubResource("StandardMaterial3D_q0ort") surface_material_override/1 = SubResource("StandardMaterial3D_q0ort")
[node name="VentanaLateral2_LP_004_LateralTren_0_004" parent="traun_hull" index="46"] [node name="VentanaLateral2_LP_004_LateralTren_0_004" parent="traun_hull" index="46" unique_id=987259430]
layers = 4 layers = 4
surface_material_override/0 = ExtResource("2_g5p57") surface_material_override/0 = ExtResource("2_g5p57")
surface_material_override/1 = SubResource("StandardMaterial3D_q0ort") surface_material_override/1 = SubResource("StandardMaterial3D_q0ort")
[node name="wall_seating_001" parent="traun_hull" index="47"] [node name="wall_seating_001" parent="traun_hull" index="47" unique_id=437405653]
layers = 4 layers = 4
[node name="wall_seating_002" parent="traun_hull" index="48"] [node name="wall_seating_002" parent="traun_hull" index="48" unique_id=1403151742]
layers = 4 layers = 4
[node name="wall_seating_003" parent="traun_hull" index="49"] [node name="wall_seating_003" parent="traun_hull" index="49" unique_id=218529971]
layers = 4 layers = 4
[node name="wall_seating_004" parent="traun_hull" index="50"] [node name="wall_seating_004" parent="traun_hull" index="50" unique_id=15472790]
layers = 4 layers = 4
[node name="wall_seating_005" parent="traun_hull" index="51"] [node name="wall_seating_005" parent="traun_hull" index="51" unique_id=1434451492]
layers = 4 layers = 4
[node name="wall_seating_006" parent="traun_hull" index="52"] [node name="wall_seating_006" parent="traun_hull" index="52" unique_id=1915677652]
layers = 4 layers = 4
[node name="wall_seating_007" parent="traun_hull" index="53"] [node name="wall_seating_007" parent="traun_hull" index="53" unique_id=307891428]
layers = 4 layers = 4
[node name="wall_seating_008" parent="traun_hull" index="54"] [node name="wall_seating_008" parent="traun_hull" index="54" unique_id=305835946]
layers = 4 layers = 4
[node name="window_frames" parent="traun_hull" index="55"] [node name="window_frames" parent="traun_hull" index="55" unique_id=290961844]
layers = 4 layers = 4
[node name="window_frames_001" parent="traun_hull" index="56"] [node name="window_frames_001" parent="traun_hull" index="56" unique_id=1848579204]
layers = 4 layers = 4
[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="1"] [node name="AnimationPlayer" type="AnimationPlayer" parent="." index="1" unique_id=766382601]
libraries = { libraries/ = SubResource("AnimationLibrary_skiem")
&"": SubResource("AnimationLibrary_skiem")
}
[node name="VoxelGI" type="VoxelGI" parent="." index="2"] [node name="VoxelGI" type="VoxelGI" parent="." index="2" unique_id=2117963437]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.35, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.35, 0)
layers = 4 layers = 4
subdiv = 0
size = Vector3(35, 4.6, 4) size = Vector3(35, 4.6, 4)
data = ExtResource("5_q0ort") data = ExtResource("5_q0ort")

File diff suppressed because one or more lines are too long

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

View File

@ -1,2 +0,0 @@
kitchen_hardware_albedo.tga filter=lfs diff=lfs merge=lfs -text
kitchen_hardware_normal.tga filter=lfs diff=lfs merge=lfs -text

View File

@ -41,5 +41,5 @@ process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=2048 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0

View File

@ -41,5 +41,5 @@ process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=2048 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0

Binary file not shown.

View File

@ -1,24 +0,0 @@
[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

View File

@ -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://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="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="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_w4vem"]
[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://cw1s2g8wg3120" path="res://base-environments/volunteer_room/sounds/FoM_xavier_unifood.wav" id="5_86ec2"]
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_fiu8d"] [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"] [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"] [sub_resource type="Animation" id="Animation_ayw8a"]
resource_name = "de" resource_name = "de"
length = 86.0 length = 66.0
tracks/0/type = "audio" tracks/0/type = "audio"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -108,11 +108,11 @@ tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"clips": [{ "clips": [{
"end_offset": 1.36178, "end_offset": 0.3525498,
"start_offset": 0.0, "start_offset": 1.6578125,
"stream": ExtResource("5_0dsyx") "stream": ExtResource("5_86ec2")
}], }],
"times": PackedFloat32Array(1.16667) "times": PackedFloat32Array(2.2000003)
} }
tracks/0/use_blend = true tracks/0/use_blend = true
tracks/1/type = "value" tracks/1/type = "value"
@ -122,10 +122,10 @@ tracks/1/path = NodePath("../../..:progress")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"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), "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, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968), "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),
"update": 0, "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, 16.0, 17.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]
} }
tracks/2/type = "method" tracks/2/type = "method"
tracks/2/imported = false tracks/2/imported = false
@ -134,8 +134,8 @@ tracks/2/path = NodePath("../../..")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(24.8, 47.87, 61.7667, 74.0333, 85.2667), "times": PackedFloat32Array(18.9, 40.766666, 65.2),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"values": [{ "values": [{
"args": [], "args": [],
"method": &"try_scroll" "method": &"try_scroll"
@ -144,12 +144,6 @@ tracks/2/keys = {
"method": &"try_scroll" "method": &"try_scroll"
}, { }, {
"args": [], "args": [],
"method": &"try_scroll"
}, {
"args": [],
"method": &"try_scroll"
}, {
"args": [],
"method": &"_on_text_finished" "method": &"_on_text_finished"
}] }]
} }
@ -469,6 +463,7 @@ script = ExtResource("1_86ec2")
scene_id = 8 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.") 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) paragraph_lengths = PackedInt32Array(1, 2, 6, 8, 10)
progress = -1.0
[node name="PanelContainer" type="PanelContainer" parent="."] [node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 2 layout_mode = 2

View File

@ -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://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="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="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_32a0r"]
[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://cnhkrhtk4cirx" path="res://base-environments/volunteer_room/sounds/FoM_xavier_therapie_1.wav" id="5_x5h0q"]
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_hdxjv"] [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"] [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"] [sub_resource type="Animation" id="Animation_ayw8a"]
resource_name = "de" resource_name = "de"
length = 86.0 length = 92.0
tracks/0/type = "audio" tracks/0/type = "audio"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -108,11 +108,11 @@ tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"clips": [{ "clips": [{
"end_offset": 1.36178, "end_offset": 0.0,
"start_offset": 0.0, "start_offset": 0.3923047,
"stream": ExtResource("5_bfggg") "stream": ExtResource("5_x5h0q")
}], }],
"times": PackedFloat32Array(1.16667) "times": PackedFloat32Array(1.9333333)
} }
tracks/0/use_blend = true tracks/0/use_blend = true
tracks/1/type = "value" tracks/1/type = "value"
@ -122,10 +122,10 @@ tracks/1/path = NodePath("../../..:progress")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"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), "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, 0.482968, 0.482968), "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),
"update": 0, "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, 16.0, 17.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]
} }
tracks/2/type = "method" tracks/2/type = "method"
tracks/2/imported = false tracks/2/imported = false
@ -134,7 +134,7 @@ tracks/2/path = NodePath("../../..")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(24.8, 47.87, 61.7667, 74.0333, 85.2667), "times": PackedFloat32Array(18.166666, 49.3, 59.666668, 74.76667, 91.63333),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"values": [{ "values": [{
"args": [], "args": [],
@ -469,6 +469,7 @@ script = ExtResource("1_ym0sv")
scene_id = 6 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.") 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) paragraph_lengths = PackedInt32Array(2, 3, 4, 5, 8, 11, 12, 14)
progress = -1.0
[node name="PanelContainer" type="PanelContainer" parent="."] [node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 2 layout_mode = 2

View File

@ -1,54 +0,0 @@
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

Binary file not shown.

View File

@ -0,0 +1,24 @@
[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

View File

@ -0,0 +1,34 @@
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

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=49 format=3 uid="uid://flisupth27th"] [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="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/shared_flat.gd" id="1_wdfvq"] [ext_resource type="Script" uid="uid://wiw2j1gw230e" path="res://base-environments/volunteer_room/volunteer_room.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="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="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"] [ext_resource type="PackedScene" uid="uid://dreokijo757l1" path="res://logic-scenes/interactable/interactable.tscn" id="5_my8p4"]
@ -201,11 +201,14 @@ func _on_environment_settings_update():
[node name="SharedFlat" type="Node3D"] [node name="SharedFlat" type="Node3D"]
script = ExtResource("1_wdfvq") script = ExtResource("1_wdfvq")
id = 3
[node name="PlayerController" parent="." instance=ExtResource("2_upyac")] [node name="PlayerController" parent="." instance=ExtResource("2_upyac")]
unique_name_in_owner = true 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) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2.2023005, 0, 0.7319784)
initial_pitch = 0.0
[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)
[node name="volunteer_room" parent="." instance=ExtResource("1_ln5pp")] [node name="volunteer_room" parent="." instance=ExtResource("1_ln5pp")]
@ -226,53 +229,58 @@ shape = SubResource("CapsuleShape3D_2fihi")
[node name="Collectables" type="Node3D" parent="."] [node name="Collectables" type="Node3D" parent="."]
[node name="KitchenInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] [node name="KitchenInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 3.46201, 1.8257881, -4.097006) transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0.8310573, 1.0068259, -2.7083611)
interaction = ExtResource("12_6rb4d") interaction = ExtResource("12_6rb4d")
[node name="BurnoutInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] [node name="BurnoutInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(1.3113409e-07, 0, 0.999999, 0, 1, 0, -0.999999, 0, 1.3113409e-07, -2.1812932, 0.8092947, 5.313688) transform = Transform3D(0.32358676, 0, -0.94619733, 0, 1, 0, 0.94619733, 0, 0.32358676, -2.1812932, 0.8092947, 5.313688)
interaction = ExtResource("11_kmoh8") interaction = ExtResource("11_kmoh8")
[node name="DiceInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] [node name="DiceInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(-0.70710593, 0, 0.70710605, 0, 1, 0, -0.70710605, 0, -0.70710593, -2.07945, 0.5828748, 3.3940656) transform = Transform3D(0.7071059, 0, -0.7071061, 0, 1, 0, 0.7071061, 0, 0.7071059, -2.07945, 0.5828748, 3.3940656)
interaction = ExtResource("16_e1uao") interaction = ExtResource("16_e1uao")
[node name="VoluntaryInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] [node name="VoluntaryInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(-4.3711392e-08, 0, -0.999999, 0, 1, 0, 0.999999, 0, -4.3711392e-08, 0.36332494, 1.2541859, 4.9624853) transform = Transform3D(-4.3711346e-08, 0, 0.999999, 0, 1, 0, -0.999999, 0, -4.3711346e-08, 0.36332494, 1.2541859, 4.9624853)
interaction = ExtResource("17_my8p4") interaction = ExtResource("17_my8p4")
billboard = false billboard = false
[node name="TherapyVoluntaryInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] [node name="TherapyVoluntaryInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 0.399901, 1.21835, 1.29166) unique_name_in_owner = true
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0.399901, 1.21835, 1.29166)
interaction = ExtResource("15_ci4rn") interaction = ExtResource("15_ci4rn")
billboard = false billboard = false
[node name="TherapyUniInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] [node name="TherapyUniInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(-0.999999, 0, 8.742269e-08, 0, 1, 0, -8.742269e-08, 0, -0.999999, 0.399901, 1.21835, 1.29166) unique_name_in_owner = true
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0.399901, 1.21835, 1.29166)
interaction = ExtResource("14_upyac") interaction = ExtResource("14_upyac")
billboard = false billboard = false
[node name="UniversityInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] [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.593935, -3.0279322) transform = Transform3D(-4.371135e-08, 0, -0.9999991, 0, 1, 0, 0.9999991, 0, -4.371135e-08, -2.7745893, 1.4022808, -3.0279322)
interaction = ExtResource("13_5s6pb") interaction = ExtResource("13_5s6pb")
billboard = false billboard = false
[node name="OldThougtsInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] [node name="OldThougtsInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(1.3113399e-07, 0, 0.999999, 0, 1, 0, -0.999999, 0, 1.3113399e-07, -2.40979, 0.41340256, 0.403546) transform = Transform3D(-4.3711346e-08, 0, -0.999999, 0, 1, 0, 0.999999, 0, -4.3711346e-08, -2.40979, 0.41340256, 0.403546)
interaction = ExtResource("17_my8p4") interaction = ExtResource("17_my8p4")
[node name="AutismInteractable" parent="Collectables" instance=ExtResource("5_my8p4")] [node name="AutismInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
transform = Transform3D(0.49999908, 0, 0.86602396, 0, 1, 0, -0.86602396, 0, 0.49999908, -1.8407239, 1.0439266, -3.8908288) transform = Transform3D(-0.75470823, 0, -0.65605795, 0, 1, 0, 0.65605795, 0, -0.75470823, -1.8407239, 1.0439266, -3.8908288)
interaction = ExtResource("10_gcdra") interaction = ExtResource("10_gcdra")
[node name="Board" parent="Collectables" instance=ExtResource("5_my8p4")] [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.6904116, 1.240494, 4.441236) transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -2.7652016, 1.2894461, 4.522677)
interaction = ExtResource("19_ci4rn") interaction = ExtResource("19_ci4rn")
billboard = false billboard = false
[node name="DoorInteractable" type="Node3D" parent="Collectables"]
unique_name_in_owner = true
[node name="VoxelGI" type="VoxelGI" parent="."] [node name="VoxelGI" type="VoxelGI" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.08276367, 1.3269348, 0.05317688) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.08276367, 1.3269348, 0.09955597)
size = Vector3(6.132324, 2.9212036, 12.054474) size = Vector3(6.132324, 2.9212036, 12.147232)
data = ExtResource("8_fli74") data = ExtResource("8_fli74")
[node name="Collision" type="Node3D" parent="."] [node name="Collision" type="Node3D" parent="."]
@ -374,7 +382,7 @@ shape = SubResource("BoxShape3D_2ixm0")
[node name="Scenes" type="Node3D" parent="."] [node name="Scenes" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4831846, 0, 2.44453) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4831846, 0, 2.44453)
[node name="ScenePlayer" type="AnimationPlayer" parent="Scenes"] [node name="SceneAnimationPlayer" type="AnimationPlayer" parent="Scenes"]
unique_name_in_owner = true unique_name_in_owner = true
libraries = { libraries = {
&"": SubResource("AnimationLibrary_br20t") &"": SubResource("AnimationLibrary_br20t")
@ -406,3 +414,5 @@ script = SubResource("GDScript_ri8p0")
environment = SubResource("Environment_pdgua") environment = SubResource("Environment_pdgua")
camera_attributes = SubResource("CameraAttributesPractical_0bxa6") camera_attributes = SubResource("CameraAttributesPractical_0bxa6")
script = SubResource("GDScript_3k3rl") script = SubResource("GDScript_3k3rl")
[editable path="PlayerController"]

View File

@ -26,5 +26,5 @@ func scene_finished(_id: Scenes.id, _repeat: bool):
queue("RESET") queue("RESET")
func play(anin_name: StringName = "", a: float = -1, b: float = 1, c: bool = false) -> void: func play(anin_name: StringName = "", a: float = -1, b: float = 1, c: bool = false) -> void:
print_debug("anim player accessed!") print("anim player accessed!")
super.play(anin_name, a, b, c) super.play(anin_name, a, b, c)

View File

@ -21,4 +21,4 @@ edit/normalize=false
edit/loop_mode=2 edit/loop_mode=2
edit/loop_begin=0 edit/loop_begin=0
edit/loop_end=-1 edit/loop_end=-1
compress/mode=0 compress/mode=2

View File

@ -21,4 +21,4 @@ edit/normalize=false
edit/loop_mode=2 edit/loop_mode=2
edit/loop_begin=0 edit/loop_begin=0
edit/loop_end=-1 edit/loop_end=-1
compress/mode=0 compress/mode=2

View File

@ -21,4 +21,4 @@ edit/normalize=false
edit/loop_mode=2 edit/loop_mode=2
edit/loop_begin=0 edit/loop_begin=0
edit/loop_end=-1 edit/loop_end=-1
compress/mode=0 compress/mode=2

View File

@ -21,4 +21,4 @@ edit/normalize=false
edit/loop_mode=0 edit/loop_mode=0
edit/loop_begin=0 edit/loop_begin=0
edit/loop_end=-1 edit/loop_end=-1
compress/mode=0 compress/mode=2

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=96 format=4 uid="uid://b3b0gyvklqn50"] [gd_scene load_steps=90 format=4 uid="uid://b3b0gyvklqn50"]
[ext_resource type="Script" uid="uid://bsop46tqngddc" path="res://base-environments/youth_room/youth_room.gd" id="1_aitp0"] [ext_resource type="Script" uid="uid://bsop46tqngddc" path="res://base-environments/youth_room/youth_room.gd" id="1_aitp0"]
[ext_resource type="AudioStream" uid="uid://1h6k2d8q1kw3" path="res://base-environments/youth_room/import/sounds/rain_on_window.mp3" id="2_3haaq"] [ext_resource type="AudioStream" uid="uid://1h6k2d8q1kw3" path="res://base-environments/youth_room/import/sounds/rain_on_window.mp3" id="2_3haaq"]
@ -6,7 +6,6 @@
[ext_resource type="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_x3dlb"] [ext_resource type="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_x3dlb"]
[ext_resource type="Script" uid="uid://hji6r2e8mcqo" path="res://base-environments/youth_room/climb_volume.gd" id="4_dqyng"] [ext_resource type="Script" uid="uid://hji6r2e8mcqo" path="res://base-environments/youth_room/climb_volume.gd" id="4_dqyng"]
[ext_resource type="PackedScene" uid="uid://bnskiyx1sksww" path="res://logic-scenes/board/physics-board.tscn" id="4_gyjxx"] [ext_resource type="PackedScene" uid="uid://bnskiyx1sksww" path="res://logic-scenes/board/physics-board.tscn" id="4_gyjxx"]
[ext_resource type="PackedScene" uid="uid://citwb7f4dl3l1" path="res://thank-you.tscn" id="5_kts6y"]
[ext_resource type="AnimationLibrary" uid="uid://c80h2b0uyk27g" path="res://animations/youth_intro.res" id="8_bgk6f"] [ext_resource type="AnimationLibrary" uid="uid://c80h2b0uyk27g" path="res://animations/youth_intro.res" id="8_bgk6f"]
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="8_e5y1q"] [ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="8_e5y1q"]
[ext_resource type="AudioStream" uid="uid://cudna8k7fw06t" path="res://base-environments/youth_room/audio/Moving Loop.wav" id="8_egnow"] [ext_resource type="AudioStream" uid="uid://cudna8k7fw06t" path="res://base-environments/youth_room/audio/Moving Loop.wav" id="8_egnow"]
@ -116,27 +115,6 @@ size = Vector3(1.63347, 0.305693, 0.775269)
[sub_resource type="BoxShape3D" id="BoxShape3D_bq15k"] [sub_resource type="BoxShape3D" id="BoxShape3D_bq15k"]
size = Vector3(0.244565, 1, 0.245859) size = Vector3(0.244565, 1, 0.245859)
[sub_resource type="InputEventKey" id="InputEventKey_p2hyr"]
device = -1
keycode = 88
unicode = 120
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_e2vy5"]
button_index = 2
pressed = true
[sub_resource type="Shortcut" id="Shortcut_b3maf"]
events = [SubResource("InputEventKey_p2hyr"), SubResource("InputEventJoypadButton_e2vy5")]
[sub_resource type="GDScript" id="GDScript_uy50s"]
script/source = "extends Panel
func show():
mouse_filter = MOUSE_FILTER_STOP
visible = true
"
[sub_resource type="GDScript" id="GDScript_dqyng"] [sub_resource type="GDScript" id="GDScript_dqyng"]
script/source = "extends CenterContainer script/source = "extends CenterContainer
@ -177,10 +155,6 @@ _surfaces = [{
blend_shape_mode = 0 blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_lag5h") shadow_mesh = SubResource("ArrayMesh_lag5h")
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_dqyng"]
radius = 0.5600586
height = 1.2539063
[sub_resource type="GDScript" id="GDScript_35dmj"] [sub_resource type="GDScript" id="GDScript_35dmj"]
script/source = "extends SpotLight3D script/source = "extends SpotLight3D
@ -422,12 +396,19 @@ func hide():
[node name="youth room" type="Node3D" groups=["serializable"]] [node name="youth room" type="Node3D" groups=["serializable"]]
process_mode = 1 process_mode = 1
script = ExtResource("1_aitp0") script = ExtResource("1_aitp0")
id = 1
[node name="logic" type="Node3D" parent="."] [node name="logic" type="Node3D" parent="."]
[node name="PlayerController" parent="logic" groups=["camera_owner"] instance=ExtResource("3_foj4y")] [node name="PlayerController" parent="logic" groups=["camera_owner"] instance=ExtResource("3_foj4y")]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 0.63, 0, 0.925) transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 0.5654894, 0, 0.8411364)
[node name="Yaw" parent="logic/PlayerController" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.25, 0)
[node name="Pitch" parent="logic/PlayerController/Yaw" index="0"]
transform = Transform3D(1, 0, 0, 0, 0.64278716, -0.7660439, 0, 0.7660439, 0.64278716, 0, 0, 0)
[node name="Collision" type="Node3D" parent="logic"] [node name="Collision" type="Node3D" parent="logic"]
@ -603,31 +584,11 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
[node name="ending_button" type="Button" parent="logic/UI"]
visible = false
top_level = true
layout_mode = 0
offset_left = 16.0
offset_top = 12.0
offset_right = 400.0
offset_bottom = 100.0
shortcut = SubResource("Shortcut_b3maf")
text = "You have completed
ordering your thoughts.
This is as far as the demo goes.
Press x or [ ] to wrap up."
[node name="Picker" parent="logic/UI" groups=["scene_actors"] instance=ExtResource("19_a4n1o")] [node name="Picker" parent="logic/UI" groups=["scene_actors"] instance=ExtResource("19_a4n1o")]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
layout_mode = 1 layout_mode = 1
[node name="ending" parent="logic/UI" instance=ExtResource("5_kts6y")]
visible = false
layout_mode = 1
mouse_filter = 2
script = SubResource("GDScript_uy50s")
[node name="Opening" type="CenterContainer" parent="logic/UI"] [node name="Opening" type="CenterContainer" parent="logic/UI"]
visible = false visible = false
layout_mode = 1 layout_mode = 1
@ -778,59 +739,44 @@ light_size = 20.0
omni_range = 16.8518 omni_range = 16.8518
[node name="MaskInteractable" parent="logic" instance=ExtResource("22_ks23q")] [node name="MaskInteractable" parent="logic" instance=ExtResource("22_ks23q")]
transform = Transform3D(-0.8827416, 0, 0.4698562, 0, 1, 0, -0.4698562, 0, -0.8827416, -0.032227404, 0.58693635, 2.5655098) transform = Transform3D(0.8829465, 0, -0.4694709, 0, 1, 0, 0.4694709, 0, 0.8829465, -0.05572912, 0.60013723, 2.536849)
interaction = ExtResource("12_viwxf") interaction = ExtResource("12_viwxf")
[node name="MindBoardInteractable" parent="logic" instance=ExtResource("22_ks23q")] [node name="MindBoardInteractable" parent="logic" instance=ExtResource("22_ks23q")]
transform = Transform3D(-4.371126e-08, 0, -0.9999984, 0, 1, 0, 0.9999984, 0, -4.371126e-08, -0.907206, 1.17661, 1.74337) transform = Transform3D(-4.3711317e-08, 0, 0.9999984, 0, 1, 0, -0.9999984, 0, -4.3711317e-08, -0.907206, 1.1721482, 1.6486336)
interaction = ExtResource("4_gyjxx") interaction = ExtResource("4_gyjxx")
billboard = false billboard = false
[node name="Frame" parent="logic/MindBoardInteractable" index="0"] [node name="Frame" parent="logic/MindBoardInteractable" index="2"]
transform = Transform3D(0.99999994, 0, 3.5527137e-15, 0, 1, 0, -3.5527137e-15, 0, 0.99999994, -0.08004689, -0.023632765, 0) transform = Transform3D(0.99999994, 0, 3.5527137e-15, 0, 1, 0, -3.5527137e-15, 0, 0.99999994, -0.08004689, -0.023632765, 0)
[node name="View" parent="logic/MindBoardInteractable" index="1"]
transform = Transform3D(-0.9999999, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -0.9999999, -0.08611119, 0.040526867, -0.06492537)
[node name="CeilingInteractable" parent="logic" instance=ExtResource("22_ks23q")] [node name="CeilingInteractable" parent="logic" instance=ExtResource("22_ks23q")]
transform = Transform3D(0.78626597, 0, 0.6178859, 0, 1, 0, -0.6178859, 0, 0.78626597, -0.13478619, 2.0720484, -0.42032808) transform = Transform3D(-0.7858558, 0, -0.6184074, 0, 1, 0, 0.6184074, 0, -0.7858558, -0.13478619, 2.0720484, -0.42032808)
interaction = ExtResource("19_d3c7p") interaction = ExtResource("19_d3c7p")
[node name="ComicInteractable" parent="logic" instance=ExtResource("22_ks23q")] [node name="ComicInteractable" parent="logic" instance=ExtResource("22_ks23q")]
transform = Transform3D(0.9797145, 0, 0.20039362, 0, 1, 0, -0.20039362, 0, 0.9797145, 2.8945682, 0.2537475, -0.88938636) transform = Transform3D(-0.86689585, 0, -0.49848735, 0, 1, 0, 0.49848735, 0, -0.86689585, 3.324154, 0.23257843, -0.91425914)
interaction = ExtResource("13_v3447") interaction = ExtResource("13_v3447")
[node name="View" parent="logic/ComicInteractable" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.36574292, 0.099999994, 0.032779038)
[node name="ClothesInteractable" parent="logic" instance=ExtResource("22_ks23q")] [node name="ClothesInteractable" parent="logic" instance=ExtResource("22_ks23q")]
transform = Transform3D(0.7935111, 0, -0.60855323, 0, 1, 0, 0.60855323, 0, 0.7935111, 1.6334484, 1.1331886, -0.8914416) transform = Transform3D(-0.79335207, 0, 0.6087605, 0, 1, 0, -0.6087605, 0, -0.79335207, 1.5984986, 1.1640409, -0.8420157)
interaction = ExtResource("12_x3dlb") interaction = ExtResource("12_x3dlb")
[node name="Sprite3D" parent="logic/ClothesInteractable/View" index="0"]
transform = Transform3D(1, 0, 2.9802322e-08, 0, 1, 0, -2.9802322e-08, 0, 1, -0.003991425, -0.04700005, 0.09138596)
[node name="collectable_particles" parent="logic/ClothesInteractable" index="3"] [node name="collectable_particles" parent="logic/ClothesInteractable" index="3"]
transform = Transform3D(0.99999976, 0, 0, 0, 1, 0, 0, 0, 0.99999976, 0.10009599, -0.040801764, -0.19775379) transform = Transform3D(0.99999976, 0, 0, 0, 1, 0, 0, 0, 0.99999976, 0.10009599, -0.040801764, -0.19775379)
[node name="DoorInteractable" parent="logic" instance=ExtResource("22_ks23q")] [node name="DoorInteractable" parent="logic" instance=ExtResource("22_ks23q")]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(-0.9999984, 0, 8.7422585e-08, 0, 1, 0, -8.7422585e-08, 0, -0.9999984, 0.42437345, 0.9173807, -0.95442796) transform = Transform3D(-0.9999984, 0, 8.7422585e-08, 0, 1, 0, -8.7422585e-08, 0, -0.9999984, 0.50242007, 0.91625494, -0.9138791)
visible = false visible = false
interaction = ExtResource("11_5bsh1") interaction = ExtResource("11_5bsh1")
billboard = false billboard = false
[node name="View" parent="logic/DoorInteractable" index="1"] [node name="Frame" parent="logic/DoorInteractable" index="2"]
transform = Transform3D(-0.99999964, 0, -8.7422755e-08, 0, 1, 0, 8.7422755e-08, 0, -0.99999964, 0.30241805, 0.49012983, -5.9604645e-08) transform = Transform3D(-0.99999994, 0, 8.7422755e-08, 0, 1, 0, -8.7422755e-08, 0, -0.99999994, 0.03345099, 0.03331518, 0)
[node name="Area3D" parent="logic/DoorInteractable" index="2"]
transform = Transform3D(0.9999998, 0, 2.1316282e-14, 0, 1, 0, -2.1316282e-14, 0, 0.9999998, 0.5580833, 0.16355383, 0)
[node name="CollisionShape3D" parent="logic/DoorInteractable/Area3D" index="0"]
transform = Transform3D(-4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0, 1, -0.2322388, 0, 0)
shape = SubResource("CapsuleShape3D_dqyng")
[node name="RoomAnimationPlayer" type="AnimationPlayer" parent="."] [node name="RoomAnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = { libraries = {
&"": ExtResource("23_corra") &"": ExtResource("23_corra")
} }
@ -952,15 +898,16 @@ light_cull_mask = 4293918721
omni_range = 0.147682 omni_range = 0.147682
[node name="OmniLight3D2" type="OmniLight3D" parent="visuals/lights"] [node name="OmniLight3D2" type="OmniLight3D" parent="visuals/lights"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.10614, 0.582081, 0.161548) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.837372, 0.7908516, -0.36576784)
light_color = Color(0.894118, 0.87451, 0.686275, 1) light_color = Color(0.894118, 0.87451, 0.686275, 1)
light_size = 0.2 light_size = 0.2
light_specular = 0.1 light_specular = 0.1
light_bake_mode = 1 light_bake_mode = 1
light_cull_mask = 4293918721 light_cull_mask = 4293918721
shadow_enabled = true shadow_enabled = true
omni_range = 2.0 shadow_caster_mask = 4293918721
omni_attenuation = 0.450626 omni_range = 1.733925
omni_attenuation = 0.3
[node name="OmniLight3D4" type="OmniLight3D" parent="visuals/lights"] [node name="OmniLight3D4" type="OmniLight3D" parent="visuals/lights"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.47143, 1.6968, -0.548992) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.47143, 1.6968, -0.548992)
@ -1075,7 +1022,6 @@ light_array = Array[Vector3]([Vector3(-0.545, 0.915, 1.035), Vector3(-0.47, 0.85
[node name="VoxelGI" type="VoxelGI" parent="."] [node name="VoxelGI" type="VoxelGI" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6709186, 1.184079, 0.941082) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6709186, 1.184079, 0.941082)
subdiv = 2
size = Vector3(6.1783752, 2.4035423, 4.126381) size = Vector3(6.1783752, 2.4035423, 4.126381)
data = ExtResource("40_ea6x8") data = ExtResource("40_ea6x8")
@ -1087,10 +1033,8 @@ data = ExtResource("40_ea6x8")
[connection signal="body_exited" from="logic/Bed and Ladders/bed_duck" to="logic/Bed and Ladders/ladder" method="reset"] [connection signal="body_exited" from="logic/Bed and Ladders/bed_duck" to="logic/Bed and Ladders/ladder" method="reset"]
[connection signal="body_entered" from="logic/Bed and Ladders/bed_enter" to="logic/PlayerController" method="_on_bed_enter"] [connection signal="body_entered" from="logic/Bed and Ladders/bed_enter" to="logic/PlayerController" method="_on_bed_enter"]
[connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"] [connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"]
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending_button" method="hide"]
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending" method="show"]
[editable path="logic/PlayerController"]
[editable path="logic/MindBoardInteractable"] [editable path="logic/MindBoardInteractable"]
[editable path="logic/ComicInteractable"]
[editable path="logic/ClothesInteractable"] [editable path="logic/ClothesInteractable"]
[editable path="logic/DoorInteractable"] [editable path="logic/DoorInteractable"]

View File

@ -1,85 +0,0 @@
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)

View File

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

Some files were not shown because too many files have changed in this diff Show More