Compare commits
121 Commits
4.6.0-rc1
...
developmen
| Author | SHA1 | Date |
|---|---|---|
|
|
b752779526 | |
|
|
c603b2247b | |
|
|
791ba9946d | |
|
|
7bd81643cc | |
|
|
6e67e083f8 | |
|
|
6f2c278bfa | |
|
|
2ceb9216e0 | |
|
|
2e473e4b4e | |
|
|
6e9bd9b790 | |
|
|
e813129cbe | |
|
|
dc9a06e375 | |
|
|
1dca96614e | |
|
|
9fae245381 | |
|
|
fd5ac294b3 | |
|
|
c645a39eba | |
|
|
b555ffaf46 | |
|
|
5b1a989f66 | |
|
|
fc3ad3a555 | |
|
|
f8f50a0755 | |
|
|
a1766d5c3c | |
|
|
d78cece129 | |
|
|
a07ec30716 | |
|
|
34872b6b12 | |
|
|
f6df5131dd | |
|
|
83a8973e6b | |
|
|
46a79eae61 | |
|
|
86af2e812a | |
|
|
a49325eb37 | |
|
|
6b9a338a20 | |
|
|
f9655a47e6 | |
|
|
1d9a264324 | |
|
|
14453c12b9 | |
|
|
0de7f96064 | |
|
|
c0f3bd40a9 | |
|
|
92879b6bbf | |
|
|
53fd4a7501 | |
|
|
54569c7adc | |
|
|
b57aa76e23 | |
|
|
d58225f21b | |
|
|
03f427b76a | |
|
|
9990a80845 | |
|
|
69cec724f5 | |
|
|
6c9bbe871d | |
|
|
982c426439 | |
|
|
059b4b96cc | |
|
|
9ea0d05d72 | |
|
|
1edc6106ff | |
|
|
72f79386db | |
|
|
f7c8b84531 | |
|
|
b745593eb7 | |
|
|
2452081c45 | |
|
|
3de31d61b2 | |
|
|
406d7e5002 | |
|
|
b79780835e | |
|
|
350361395d | |
|
|
95e7160920 | |
|
|
e23f496b70 | |
|
|
48242e954f | |
|
|
294a5c2a7d | |
|
|
7653be9555 | |
|
|
2b949d8e73 | |
|
|
efc2488dff | |
|
|
071c0de5a7 | |
|
|
a9af1e5995 | |
|
|
cc73e1e4b6 | |
|
|
cdcf6609d7 | |
|
|
7c8428af01 | |
|
|
75c2200bd8 | |
|
|
b5a4bd2896 | |
|
|
99632f6043 | |
|
|
80eb4a727f | |
|
|
69e05f7562 | |
|
|
b47801ae5c | |
|
|
666df45e06 | |
|
|
9749736e7d | |
|
|
8561310d9e | |
|
|
f0ad263e57 | |
|
|
23d2d3bb9e | |
|
|
cd42b64d1c | |
|
|
c19b395d98 | |
|
|
f2a2c13e65 | |
|
|
7abff22ccc | |
|
|
2fccf9d545 | |
|
|
3fe7d4a6f5 | |
|
|
c115e7b2d6 | |
|
|
3295c44ce9 | |
|
|
7fc85783cc | |
|
|
9eee693670 | |
|
|
a0f6261c1e | |
|
|
098eef6fe5 | |
|
|
525926086b | |
|
|
cef278dced | |
|
|
28186aaf6a | |
|
|
f3fa31f12e | |
|
|
3cd721e522 | |
|
|
d26ace7dff | |
|
|
0d150d31fc | |
|
|
6fcc13abe7 | |
|
|
31b17e802d | |
|
|
4b07eaf6c5 | |
|
|
88cb69fc88 | |
|
|
e676c416ef | |
|
|
9cada12210 | |
|
|
371334d85a | |
|
|
09e8f5b882 | |
|
|
7f5b2d685f | |
|
|
fac8919b8b | |
|
|
9361f6fd66 | |
|
|
71625825dc | |
|
|
00c6e13702 | |
|
|
e998d3154b | |
|
|
20927d4af0 | |
|
|
8fe40f44d4 | |
|
|
7e74639207 | |
|
|
489241f5db | |
|
|
f87b0455f3 | |
|
|
520dfa8174 | |
|
|
899a606199 | |
|
|
d9e5ca8443 | |
|
|
e421a37ccc | |
|
|
d51e0ae65e |
|
|
@ -8,6 +8,10 @@ export.cfg
|
|||
export_credentials.cfg
|
||||
*.tmp
|
||||
|
||||
# Mics Backup and temp files
|
||||
*.blend1
|
||||
*.md.backup
|
||||
|
||||
# Imported translations (automatically generated from CSV files)
|
||||
*.translation
|
||||
|
||||
|
|
@ -36,6 +40,7 @@ mono_crash.*.json
|
|||
AGENTS.md
|
||||
CHANGELOG.md
|
||||
ISSUES.md
|
||||
.devcontainer/
|
||||
|
||||
**/.idea
|
||||
**/.DS_Store
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ func _update_events():
|
|||
# TODO: Find a cleaner way to cast these values
|
||||
var tmp: Array = []
|
||||
if Engine.is_editor_hint():
|
||||
print("reading project settings")
|
||||
tmp = ProjectSettings.get_setting("input/" + action)["events"]
|
||||
else:
|
||||
tmp = InputMap.action_get_events(action)
|
||||
|
|
|
|||
|
|
@ -5,5 +5,5 @@ func _ready() -> void:
|
|||
$MarkdownLabel.display_file("res://addons/markdownlabel/README.md")
|
||||
$MarkdownLabel.task_checkbox_clicked.connect(
|
||||
func(id: int, line: int, checked: bool, text: String) -> void:
|
||||
print_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])
|
||||
)
|
||||
|
|
|
|||
|
|
@ -640,7 +640,7 @@ func _reset_escaped_chars(_text: String,code:=false) -> String:
|
|||
func _debug(string: String) -> void:
|
||||
if not _debug_mode:
|
||||
return
|
||||
print_debug(string)
|
||||
print(string)
|
||||
|
||||
func _denotes_fenced_code_block(line: String, character: String) -> bool:
|
||||
var stripped_line := line.strip_edges()
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/base-environments/transition/audio/107215__keithpeter__birmingham-erdington-canal-transformer-3.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/transition/audio/107215__keithpeter__birmingham-erdington-canal-transformer-3.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dbwcsy5klf2o1"
|
||||
path="res://.godot/imported/107215__keithpeter__birmingham-erdington-canal-transformer-3.wav-abc5cb917678fd9eb9a68b1f697f63cc.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/transition/audio/107215__keithpeter__birmingham-erdington-canal-transformer-3.wav"
|
||||
dest_files=["res://.godot/imported/107215__keithpeter__birmingham-erdington-canal-transformer-3.wav-abc5cb917678fd9eb9a68b1f697f63cc.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=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
BIN
src/base-environments/transition/audio/328953__sandermotions__escalator-1.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/transition/audio/328953__sandermotions__escalator-1.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://31dunmt6i7ck"
|
||||
path="res://.godot/imported/328953__sandermotions__escalator-1.wav-13ca6f1515b00824916859f10801afb8.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/transition/audio/328953__sandermotions__escalator-1.wav"
|
||||
dest_files=["res://.godot/imported/328953__sandermotions__escalator-1.wav-13ca6f1515b00824916859f10801afb8.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=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
BIN
src/base-environments/transition/audio/388049__jacekksiazek__fluorescent-lamp-with-broken-ignitor.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/transition/audio/388049__jacekksiazek__fluorescent-lamp-with-broken-ignitor.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dxxhtgf3k8ueh"
|
||||
path="res://.godot/imported/388049__jacekksiazek__fluorescent-lamp-with-broken-ignitor.wav-d0e93eab8a188d5d7663547820e28a04.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/transition/audio/388049__jacekksiazek__fluorescent-lamp-with-broken-ignitor.wav"
|
||||
dest_files=["res://.godot/imported/388049__jacekksiazek__fluorescent-lamp-with-broken-ignitor.wav-d0e93eab8a188d5d7663547820e28a04.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=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://cwfr6sgcwg7sl"
|
||||
path="res://.godot/imported/450918__kyles__metro-subway-montreal-verdun-station-arrive-and-leave-semidistant-from-bridge-over-tracks-overpass.ogg-12fe2c5a0e3d8b5a363ae7108e4bdca5.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/transition/audio/450918__kyles__metro-subway-montreal-verdun-station-arrive-and-leave-semidistant-from-bridge-over-tracks-overpass.ogg"
|
||||
dest_files=["res://.godot/imported/450918__kyles__metro-subway-montreal-verdun-station-arrive-and-leave-semidistant-from-bridge-over-tracks-overpass.ogg-12fe2c5a0e3d8b5a363ae7108e4bdca5.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0.0
|
||||
bpm=0.0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
Binary file not shown.
Binary file not shown.
BIN
src/base-environments/transition/audio/537769__janbezouska__factory-fluorescent-light-buzz.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/transition/audio/537769__janbezouska__factory-fluorescent-light-buzz.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://ba7s5uqc4iu66"
|
||||
path="res://.godot/imported/537769__janbezouska__factory-fluorescent-light-buzz.wav-895aa9e245e1ca30292a119cee78a69d.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/transition/audio/537769__janbezouska__factory-fluorescent-light-buzz.wav"
|
||||
dest_files=["res://.godot/imported/537769__janbezouska__factory-fluorescent-light-buzz.wav-895aa9e245e1ca30292a119cee78a69d.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=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
BIN
src/base-environments/transition/audio/717561__trp__220401-fluorescent-light-buzz-high-pitched-videontg.mp3 (Stored with Git LFS)
Normal file
BIN
src/base-environments/transition/audio/717561__trp__220401-fluorescent-light-buzz-high-pitched-videontg.mp3 (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://d4i1dsvl7tm5o"
|
||||
path="res://.godot/imported/717561__trp__220401-fluorescent-light-buzz-high-pitched-videontg.mp3-d33503667b4af35637fb18c6ddbf4a5f.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/transition/audio/717561__trp__220401-fluorescent-light-buzz-high-pitched-videontg.mp3"
|
||||
dest_files=["res://.godot/imported/717561__trp__220401-fluorescent-light-buzz-high-pitched-videontg.mp3-d33503667b4af35637fb18c6ddbf4a5f.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=true
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,123 @@
|
|||
## A dolly tweens all contents to and from two destination points, and to its origin.
|
||||
class_name Dolly
|
||||
extends Node3D
|
||||
|
||||
@export var index : int = -1
|
||||
@export var signage_group : String
|
||||
|
||||
@export_group("Motion")
|
||||
@export_subgroup("Arrival")
|
||||
@export var pre_arrival_time : float = 17.0 # hold train for this long (to sync with audio!)
|
||||
@export var arrival_time : float = 15.0 # train takes this long to enter (shorter = faster)
|
||||
@export var trans_arrival : Tween.TransitionType = Tween.TRANS_CIRC
|
||||
@export var ease_arrival : Tween.EaseType = Tween.EASE_OUT
|
||||
|
||||
@export_subgroup("In Station")
|
||||
@export var station_wait_time : float = 20.0
|
||||
|
||||
@export_subgroup("Departure")
|
||||
@export var door_close_time : float = 1.0
|
||||
@export var leave_time : float = 15.0 # train takes this long to leave the platform
|
||||
@export var trans_departure : Tween.TransitionType = Tween.TRANS_QUAD
|
||||
@export var ease_departure : Tween.EaseType = Tween.EASE_IN
|
||||
|
||||
|
||||
@onready var origination : Node3D = $Origination
|
||||
@onready var destination : Node3D = $Destination
|
||||
|
||||
@onready var subway : SubwayTrain = $Subway
|
||||
|
||||
@onready var subway_audio_main : AudioStreamPlayer3D = %SubwayTrainAudio
|
||||
@onready var subway_audio_2 : AudioStreamPlayer3D = %SubwayTrainAudioIntense
|
||||
|
||||
var player_on_board : bool:
|
||||
get: return %EntryDetect.overlaps_body(State.player)
|
||||
|
||||
var tween : Tween = null
|
||||
|
||||
|
||||
## Player is about to arrive
|
||||
signal train_approaching(track : Dolly)
|
||||
|
||||
## Player has fully arrived at station
|
||||
signal train_arrived(track : Dolly)
|
||||
|
||||
## Player is departing in train
|
||||
signal train_departing(track : Dolly)
|
||||
|
||||
## Player has fully left the station with train
|
||||
signal train_left(track : Dolly)
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
reset()
|
||||
|
||||
func set_line(line: StringName):
|
||||
subway.set_line(line)
|
||||
|
||||
## One arrival and departure
|
||||
func cycle() -> void:
|
||||
await arrive()
|
||||
await leave()
|
||||
|
||||
func reset() -> void:
|
||||
if tween: tween.kill()
|
||||
subway.global_position = origination.global_position
|
||||
|
||||
func _seat_player() -> void:
|
||||
prints("Player departs inside Train", self.name)
|
||||
State.player.reparent(subway)
|
||||
|
||||
|
||||
func _unseat_player() -> void:
|
||||
prints("Player arrives on Train", self.name)
|
||||
State.player.reparent(get_parent())
|
||||
|
||||
|
||||
|
||||
func arrive(endstation : bool = false) -> void:
|
||||
subway_audio_main.play()
|
||||
subway_audio_2.play()
|
||||
|
||||
await get_tree().create_timer(pre_arrival_time).timeout
|
||||
|
||||
if player_on_board:
|
||||
train_approaching.emit(self)
|
||||
|
||||
if tween: tween.kill()
|
||||
tween = create_tween().set_trans(trans_arrival).set_ease(ease_arrival)
|
||||
tween.parallel().tween_property(subway, "global_position", self.global_position, arrival_time)
|
||||
await tween.finished
|
||||
subway.door_open = true
|
||||
|
||||
if player_on_board:
|
||||
_unseat_player()
|
||||
train_arrived.emit(self)
|
||||
|
||||
|
||||
if endstation:
|
||||
subway_audio_main.stop()
|
||||
subway_audio_2.stop()
|
||||
|
||||
|
||||
|
||||
func leave() -> void:
|
||||
await get_tree().create_timer(station_wait_time).timeout
|
||||
subway.door_open = false
|
||||
await get_tree().create_timer(door_close_time).timeout
|
||||
|
||||
if player_on_board:
|
||||
_seat_player()
|
||||
train_departing.emit(self)
|
||||
|
||||
|
||||
if tween: tween.kill()
|
||||
tween = create_tween().set_trans(trans_departure).set_ease(ease_departure)
|
||||
tween.parallel().tween_property(subway, "global_position", destination.global_position, leave_time)
|
||||
|
||||
# Player is on board and will be leaving
|
||||
await tween.finished
|
||||
|
||||
# Player was on board and has left the station
|
||||
if player_on_board: train_left.emit(self)
|
||||
reset() # Warp back / rewind train position
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dgfje4druu3sw
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
class_name Fahrplan extends Node3D
|
||||
|
||||
## easy graph: <station> : [Track1Train1 (next halt), Track1Train2], [Track2Train1(next halt), ...]
|
||||
## CAVEAT: These must be direct children of the fahrplan!
|
||||
@onready var fahrplan : Dictionary[Station, Array] = {
|
||||
$hirschfeld: [["u2", $uni_mensa, "u1", $parity_square],[]],
|
||||
$uni_mensa : [["u2", $uni_main],[]],
|
||||
$uni_main: [["u2", $ministry],["u8", $rosenthal, "u2", $uni_mensa, "u1", $saint_exupery]],
|
||||
$parity_square : [["u4", $saint_exupery, "u1", $saint_exupery], []],
|
||||
$saint_exupery : [["u4", $rosenthal], ["u1", $uni_main]],
|
||||
|
||||
$ministry : [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]
|
||||
|
||||
@export var empty_train_random_delay : Vector2 = Vector2(5.0, 20.0)
|
||||
|
||||
func _set_signage_texts(group: StringName, message: String) -> void:
|
||||
get_tree().set_group(group, "text", "")
|
||||
for i in range(len(message)):
|
||||
get_tree().set_group(group, "text", message.substr(0, i+1))
|
||||
await get_tree().create_timer(0.05).timeout
|
||||
|
||||
func _ready() -> void:
|
||||
await get_tree().process_frame
|
||||
|
||||
tracks[0].train_left.connect(_player_train_left)
|
||||
tracks[1].train_left.connect(_player_train_left)
|
||||
_unparent_all_stations_except($hirschfeld)
|
||||
enter_station(current)
|
||||
|
||||
|
||||
## The current station
|
||||
var current : Station
|
||||
var stop := false
|
||||
|
||||
var destinations : Array[Station] = [null, null]
|
||||
|
||||
## Begins the scheduled traffic (looping through the list of destinations) on a given track
|
||||
func _begin_traffic_loop(track: Dolly, cancel: Array) -> void:
|
||||
if not track.player_on_board and fahrplan[current][track.index] == null: # empty trains dont arrive at endstation
|
||||
_set_signage_texts(track.signage_group, "Gleis gesperrt")
|
||||
return
|
||||
|
||||
if fahrplan[current][track.index] == null: # empty trains dont arrive at endstation
|
||||
track.arrive(true)
|
||||
_set_signage_texts(track.signage_group, "Endstation")
|
||||
return
|
||||
|
||||
var routes : Array = fahrplan[current][track.index]
|
||||
if routes.is_empty():
|
||||
_set_signage_texts(track.signage_group, "Verkehr z. Zt.\nunregelmäßig")
|
||||
return
|
||||
|
||||
while true:
|
||||
if cancel.is_empty(): return # abort the loop
|
||||
|
||||
var line : StringName = routes.pop_front()
|
||||
var next : Station = routes.pop_front()
|
||||
|
||||
routes.append(line) # It's a ring buffer
|
||||
routes.append(next) # It's a ring buffer
|
||||
|
||||
destinations[track.index] = next
|
||||
track.set_line(line)
|
||||
_set_signage_texts(track.signage_group, current.get_label(line, next)) # TODO: load nice string
|
||||
|
||||
# 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
|
||||
await track.cycle() # arrive and depart
|
||||
|
||||
|
||||
var cancellation_token : Array
|
||||
|
||||
func enter_station(station: Station):
|
||||
prints("------------", "ENTER STATION", station, station.name, "------------")
|
||||
remove_child(current)
|
||||
current = station
|
||||
add_child(station)
|
||||
|
||||
cancellation_token = ["go"] # Allocate a new stopping token
|
||||
_begin_traffic_loop(tracks[0], cancellation_token)
|
||||
_begin_traffic_loop(tracks[1], cancellation_token)
|
||||
|
||||
|
||||
func _player_train_left(track: Dolly) -> void:
|
||||
cancellation_token.clear()
|
||||
enter_station(destinations[track.index])
|
||||
|
||||
func _unparent_all_stations_except(except : Node3D):
|
||||
for station in stations:
|
||||
assert(station.get_parent() == self, "A station that isn't a child of Fahrplan is in the Fahrplan: %s" % station.name)
|
||||
station.visible = true # Make visible by default, parenting handles visibility and collision
|
||||
if station == except:
|
||||
current = station
|
||||
continue
|
||||
remove_child(station)
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://bi4cwmajhpa5f
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
extends Node3D
|
||||
class_name Station
|
||||
|
||||
@export var i18n_key : StringName
|
||||
@export var train_labels : Dictionary[StringName,String] = {}
|
||||
|
||||
func get_label(line: StringName, next_stop: Station) -> String:
|
||||
return train_labels.get(line+next_stop.name, line+next_stop.name)
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://pmhadgsfinjc
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
extends Room
|
||||
class_name SubwaySequence
|
||||
|
||||
func _ready() -> void:
|
||||
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()
|
||||
|
||||
Scenes.player_enable.emit(true)
|
||||
|
||||
await Main.curtain.open()
|
||||
|
||||
|
||||
func pull_save_state(save: SaveGame) -> void:
|
||||
save.sequences_enabled = Scenes.enabled_sequences
|
||||
save_game = save
|
||||
|
||||
# Call parent to restore player position
|
||||
super.pull_save_state(save)
|
||||
|
|
@ -1,12 +1,22 @@
|
|||
|
||||
extends Node3D
|
||||
class_name SubwayTrain
|
||||
|
||||
@export var materials : Dictionary[StringName, Material] = {}
|
||||
|
||||
@export var door_open: bool:
|
||||
set(open):
|
||||
|
||||
if is_node_ready() and door_open != open:
|
||||
if open:
|
||||
$AnimationPlayer.play("door_open")
|
||||
else:
|
||||
$AnimationPlayer.play("door_close")
|
||||
if door_open == open: return
|
||||
door_open=open
|
||||
if open:
|
||||
%TrainModel/AnimationPlayer.play("door_open")
|
||||
else:
|
||||
%TrainModel/AnimationPlayer.play("door_close")
|
||||
|
||||
%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()
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,29 @@ import_script/path=""
|
|||
materials/extract=1
|
||||
materials/extract_format=0
|
||||
materials/extract_path="res://base-environments/transition/import/textures"
|
||||
_subresources={}
|
||||
_subresources={
|
||||
"materials": {
|
||||
"ParedTunel": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://base-environments/transition/import/textures/ParedTunel.tres",
|
||||
"use_external/path": "uid://bcim2jku0oi5s"
|
||||
},
|
||||
"station_floor": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://base-environments/transition/import/textures/station_floor.tres",
|
||||
"use_external/path": "uid://duhe1nn0uwulo"
|
||||
},
|
||||
"station_tiles": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://base-environments/transition/import/textures/station_tiles.tres",
|
||||
"use_external/path": "uid://b3wybjajg4dr3"
|
||||
},
|
||||
"unlit_station_tiles": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://base-environments/transition/import/textures/unlit_station_tiles.tres",
|
||||
"use_external/path": "uid://85u11etmwhac"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=2
|
||||
gltf/embedded_image_handling=1
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -14,7 +14,8 @@ metallic_texture_channel = 2
|
|||
roughness_texture = ExtResource("2_i1m4q")
|
||||
roughness_texture_channel = 1
|
||||
emission_enabled = true
|
||||
emission_energy_multiplier = 30.0
|
||||
emission_energy_multiplier = 4.0
|
||||
emission_on_uv2 = true
|
||||
emission_texture = ExtResource("3_fnaaw")
|
||||
normal_enabled = true
|
||||
normal_texture = ExtResource("4_wnwnf")
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ metallic_texture_channel = 2
|
|||
roughness_texture = ExtResource("2_5i5r4")
|
||||
roughness_texture_channel = 1
|
||||
emission_enabled = true
|
||||
emission_energy_multiplier = 5.0
|
||||
emission_energy_multiplier = 3.0
|
||||
emission_texture = ExtResource("3_68xv4")
|
||||
normal_enabled = true
|
||||
normal_texture = ExtResource("4_5bw0m")
|
||||
|
|
|
|||
|
|
@ -4,4 +4,6 @@
|
|||
resource_name = "display"
|
||||
cull_mode = 2
|
||||
albedo_color = Color(0.16613327, 0.10919999, 0.28, 1)
|
||||
roughness = 0.1
|
||||
metallic = 0.1
|
||||
metallic_specular = 0.3
|
||||
roughness = 0.15
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://tuv111h6jsnu"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://tuv111h6jsnu"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://swh2v0icrwum" path="res://base-environments/transition/import/meta_station.glb" id="1_yekr5"]
|
||||
[ext_resource type="Shader" uid="uid://i3k8blcd043t" path="res://base-environments/transition/shaders/escalator_disp.gdshader" id="2_klf6x"]
|
||||
[ext_resource type="AudioStream" uid="uid://dbwcsy5klf2o1" path="res://base-environments/transition/audio/107215__keithpeter__birmingham-erdington-canal-transformer-3.wav" id="2_yyrp7"]
|
||||
[ext_resource type="Texture2D" uid="uid://dfkqm1qqjq7sg" path="res://base-environments/transition/import/meta_station_stairs_albedo-stairs_alpha.png" id="3_e0ljd"]
|
||||
[ext_resource type="Texture2D" uid="uid://bkakclhq1uwda" path="res://base-environments/transition/shaders/stairs_normal.png" id="4_yyrp7"]
|
||||
[ext_resource type="FontFile" uid="uid://8es6n8tktmx6" path="res://import/fonts/Doto-ExtraBold.ttf" id="5_e0ljd"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jh12p"]
|
||||
render_priority = 0
|
||||
|
|
@ -62,11 +64,47 @@ gi_mode = 0
|
|||
[node name="water" parent="." index="1"]
|
||||
gi_mode = 0
|
||||
|
||||
[node name="signal_lights_004" parent="." index="21"]
|
||||
gi_mode = 2
|
||||
|
||||
[node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_004" index="0"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, -8.526513e-14, 0, 8.526513e-14, 1, 2.947373, 0.36035156, 1.2887176e-07)
|
||||
stream = ExtResource("2_yyrp7")
|
||||
unit_size = 2.0
|
||||
autoplay = true
|
||||
bus = &"sfx"
|
||||
|
||||
[node name="signal_lights_003" parent="." index="22"]
|
||||
gi_mode = 2
|
||||
|
||||
[node name="signal_lights_002" parent="." index="23"]
|
||||
gi_mode = 2
|
||||
|
||||
[node name="TransformerBuzzAudio" type="AudioStreamPlayer3D" parent="signal_lights_002" index="0"]
|
||||
transform = Transform3D(1, 0, -8.351873e-23, 0, 1, 1.9106857e-15, -8.351873e-23, 0, 1, -8.365656, -0.024308532, 3.6567445e-07)
|
||||
stream = ExtResource("2_yyrp7")
|
||||
unit_size = 2.0
|
||||
autoplay = true
|
||||
bus = &"sfx"
|
||||
|
||||
[node name="signal_lights_001" parent="." index="24"]
|
||||
gi_mode = 2
|
||||
|
||||
[node name="railway_lighting" parent="." index="35"]
|
||||
cast_shadow = 0
|
||||
gi_mode = 2
|
||||
|
||||
[node name="FluorescentLuz" parent="." index="41"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="escalator_stairs_L" parent="." index="43"]
|
||||
custom_aabb = AABB(-0.8, 0, -1, 1.6, 3.5, 7)
|
||||
gi_mode = 0
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_jh12p")
|
||||
|
||||
[node name="Ceiling" parent="." index="44"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="escalator_stairs_L_001" parent="." index="46"]
|
||||
transform = Transform3D(1, 0, 2.3841858e-07, 0, 1, 0, -2.3841858e-07, 0, 1, -0.854971, 3.1997495, 4.8378654)
|
||||
material_override = SubResource("ShaderMaterial_klf6x")
|
||||
|
|
@ -110,3 +148,203 @@ material_override = SubResource("ShaderMaterial_e0ljd")
|
|||
gi_mode = 0
|
||||
mesh = SubResource("PlaneMesh_yyrp7")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="station_display_R" parent="." index="48"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="station_display_R" index="0" groups=["signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="station_display_R" index="1" groups=["signage2"]]
|
||||
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_012" parent="." index="49"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_012" index="0" groups=["signage1"]]
|
||||
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458555, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_012" index="1" groups=["signage1"]]
|
||||
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_014" parent="." index="50"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_014" index="0" groups=["signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_014" index="1" groups=["signage2"]]
|
||||
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_016" parent="." index="51"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_016" index="0" groups=["signage1", "signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_016" index="1" groups=["signage1"]]
|
||||
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_010" parent="." index="52"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_010" index="0" groups=["signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_010" index="1" groups=["signage2"]]
|
||||
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_017" parent="." index="53"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_017" index="0" groups=["signage1"]]
|
||||
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458555, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_017" index="1" groups=["signage1"]]
|
||||
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.855903, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_018" parent="." index="54"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_018" index="0" groups=["signage2"]]
|
||||
transform = Transform3D(1, 0, 1.9895195e-13, 0, 1, 0, -1.9895195e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_018" index="1" groups=["signage2"]]
|
||||
transform = Transform3D(-1, 0, -8.742282e-08, 0, 1, 0, 8.742282e-08, 0, -1, 0.85590327, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Cube_019" parent="." index="55"]
|
||||
cast_shadow = 0
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Cube_019" index="0" groups=["signage1"]]
|
||||
transform = Transform3D(1, 0, 1.9895197e-13, 0, 1, 0, -1.9895197e-13, 0, 1, -0.8458553, 0.35, 0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Cube_019" index="1" groups=["signage1"]]
|
||||
transform = Transform3D(-1, 0, -8.742293e-08, 0, 1, 0, 8.742293e-08, 0, -1, 0.85590315, 0.35, -0.1)
|
||||
transparency = 0.6
|
||||
modulate = Color(2.454227, 1.0085243, 0.54216844, 1)
|
||||
text = "Loem Ipsum
|
||||
dolor sit amed"
|
||||
font = ExtResource("5_e0ljd")
|
||||
outline_size = 2
|
||||
horizontal_alignment = 0
|
||||
vertical_alignment = 0
|
||||
|
|
|
|||
|
|
@ -9,15 +9,18 @@
|
|||
[resource]
|
||||
resource_name = "station_ceiling"
|
||||
vertex_color_use_as_albedo = true
|
||||
albedo_color = Color(0.48570347, 0.48570353, 0.48570347, 1)
|
||||
albedo_texture = ExtResource("1_fw6ln")
|
||||
metallic = 0.5
|
||||
metallic_specular = 0.2
|
||||
metallic_texture = ExtResource("2_ilmcm")
|
||||
roughness_texture = ExtResource("2_ilmcm")
|
||||
roughness_texture_channel = 1
|
||||
emission_enabled = true
|
||||
emission = Color(0.9894878, 0.815461, 0.7171153, 1)
|
||||
emission_energy_multiplier = 0.5
|
||||
emission_operator = 1
|
||||
emission_texture = ExtResource("4_4f468")
|
||||
normal_enabled = true
|
||||
normal_scale = 0.2
|
||||
normal_texture = ExtResource("3_k7xpx")
|
||||
ao_enabled = true
|
||||
ao_light_affect = 0.5
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
[resource]
|
||||
resource_name = "train_windows"
|
||||
transparency = 4
|
||||
cull_mode = 2
|
||||
albedo_texture = ExtResource("1_qqnyp")
|
||||
metallic = 1.0
|
||||
metallic_texture = ExtResource("2_orwl3")
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
resource_name = "train_windows_transparent"
|
||||
transparency = 1
|
||||
blend_mode = 4
|
||||
cull_mode = 2
|
||||
albedo_texture = ExtResource("1_p8q8d")
|
||||
metallic = 1.0
|
||||
metallic_texture = ExtResource("2_eds1u")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
shader_type spatial;
|
||||
render_mode cull_back, blend_add, unshaded;
|
||||
render_mode cull_disabled, blend_add, unshaded;
|
||||
|
||||
varying vec3 world_pos;
|
||||
uniform float state = 0.0;
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,18 +0,0 @@
|
|||
class_name Station extends Resource
|
||||
|
||||
enum id {
|
||||
HIRSCHFELD,
|
||||
PARITY,
|
||||
EXUPERY,
|
||||
ROSENTHAL,
|
||||
UNI_1,
|
||||
UNI_2,
|
||||
MINISTRY
|
||||
}
|
||||
|
||||
@export var station_name: StringName = ""
|
||||
@export var memory: Scenes.id = Scenes.id.YOUTH_DRAVEN
|
||||
@export_file("*.tscn") var station_path: String = ""
|
||||
@export var arriving_lines: Dictionary[TrainLine.id, float]
|
||||
@export var departing_lines: Dictionary[TrainLine.id, float]
|
||||
@export var announcement: AudioStream
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://cyeh7sa20bmcf
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
extends Node3D
|
||||
|
||||
signal leave_room
|
||||
extends Station
|
||||
|
||||
func _ready() -> void:
|
||||
%PlayerDetect.body_entered.connect(func(body): if body is PlayerController: leave_room.emit())
|
||||
%PlayerDetect.body_entered.connect(func(body):
|
||||
if visible and body is PlayerController:
|
||||
State.room.save_game.subway_burnout = true
|
||||
await Main.curtain.black()
|
||||
State.room.proceed.emit(Main.adulthood_room_path))
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,8 @@
|
|||
extends Station
|
||||
|
||||
func _ready() -> void:
|
||||
%PlayerDetect.body_entered.connect(func(body):
|
||||
if visible and body is PlayerController:
|
||||
State.room.save_game.subway_burnout = false
|
||||
await Main.curtain.black()
|
||||
State.room.proceed.emit(Main.adulthood_room_path))
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://c3wiasfotoy5
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,185 +0,0 @@
|
|||
extends RoomTemplate
|
||||
|
||||
@export var all_stations: Dictionary[Station.id, Station]
|
||||
@export var all_lines: Dictionary[TrainLine.id, TrainLine]
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
id = State.rooms.TRANSITION
|
||||
|
||||
func start_room():
|
||||
super.start_room()
|
||||
|
||||
%LeftDetection.body_entered.connect(on_left_train_enter)
|
||||
%RightDetection.body_entered.connect(on_right_train_enter)
|
||||
%LeftDetection.body_exited.connect(on_left_train_exit)
|
||||
%RightDetection.body_exited.connect(on_right_train_exit)
|
||||
|
||||
%burnout_station.leave_room.connect(func():
|
||||
proceed.emit(Main.adulthood_room_path))
|
||||
|
||||
|
||||
%PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
# Give player control immediately, then open
|
||||
Scenes.player_enable.emit(true)
|
||||
await Main.curtain.open()
|
||||
|
||||
|
||||
var left_first_station: bool = false
|
||||
func on_first_station() -> void:
|
||||
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_DND
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
%ShedulePlayer_R.play("train_arriving")
|
||||
await get_tree().create_timer(12.0).timeout
|
||||
if left_first_station: return
|
||||
%ShedulePlayer_R.play("train_leaving")
|
||||
await get_tree().create_timer(3.0).timeout
|
||||
%RightLabel.text = "do not board"
|
||||
await get_tree().create_timer(6.0).timeout
|
||||
%ShedulePlayer_L.play("train_arriving")
|
||||
|
||||
var on_second_platform: bool = false
|
||||
func on_first_transition(_is_left: bool = false):
|
||||
%StationPlayer.play("first_transition")
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
on_second_platform = true
|
||||
|
||||
func on_second_transition():
|
||||
%StationPlayer.play("second_transition")
|
||||
|
||||
func on_third_transition():
|
||||
%StationPlayer.play("third_transition")
|
||||
|
||||
func pull_save_state(save: SaveGame) -> void:
|
||||
#FIXME
|
||||
save.sequences_enabled = Scenes.enabled_sequences
|
||||
save.current_room = State.rooms.ADULTHOOD
|
||||
save_game = save
|
||||
|
||||
# Call parent to restore player position
|
||||
super.pull_save_state(save)
|
||||
|
||||
func prepare_transition():
|
||||
for child in %Stations.get_children():
|
||||
if child is Node3D:
|
||||
if not child.name == "burnout_station":
|
||||
child.queue_free()
|
||||
|
||||
func unload():
|
||||
pass
|
||||
|
||||
func on_left_train_enter(_body) -> void:
|
||||
if not left_first_station:
|
||||
left_first_station = true
|
||||
await get_tree().create_timer(2.0).timeout
|
||||
%Train2.get_child(0).door_open = false
|
||||
on_first_transition(true)
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_VOLUNTARY
|
||||
%SubwayMap.current_station = Scenes.id.ADULT_VOLUNTARY
|
||||
%RightLabel.text = "U3 Gesundquell \n via Rosenthal Hospital"
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_AUTISM
|
||||
%SubwayMap.current_station = Scenes.id.ADULT_AUTISM
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
%Train2.get_child(0).door_open = true
|
||||
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
if not changeover:
|
||||
%Train2.get_child(0).door_open = false
|
||||
on_second_transition()
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_SELF_ADVOCACY
|
||||
%SubwayMap.current_station = Scenes.id.ADULT_SELF_ADVOCACY
|
||||
%RightLabel.text = "do not board"
|
||||
%LeftLabel.text = "do not board"
|
||||
on_final = true
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
%Train2.get_child(0).door_open = true
|
||||
else:
|
||||
%ShedulePlayer_L.play("train_leaving")
|
||||
%LeftLabel.text = "do not board"
|
||||
return
|
||||
if changeover:
|
||||
%ShedulePlayer_R.play("train_leaving")
|
||||
await get_tree().create_timer(2.0).timeout
|
||||
%Train2.get_child(0).door_open = false
|
||||
on_second_transition()
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
save_game.seen.append(str(Scenes.id.ADULT_THERAPY_UNI))
|
||||
%SubwayMap.current_station = Scenes.id.ADULT_THERAPY_UNI
|
||||
%RightLabel.text = "do not board"
|
||||
%LeftLabel.text = "do not board"
|
||||
on_final = true
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
%Train2.get_child(0).door_open = true
|
||||
|
||||
var on_final: bool = false:
|
||||
set(final):
|
||||
#FIXME: this needs to be a proper sequence!
|
||||
on_final = final
|
||||
await get_tree().create_timer(0.5).timeout
|
||||
if final: prepare_transition()
|
||||
var on_direct_path: bool = false
|
||||
func on_right_train_enter(_body) -> void:
|
||||
if not left_first_station:
|
||||
on_direct_path = true
|
||||
%Train.get_child(0).door_open = false
|
||||
await get_tree().create_timer(2.0).timeout
|
||||
left_first_station = true
|
||||
on_first_transition(false)
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_EATING
|
||||
%SubwayMap.current_station = Scenes.id.ADULT_EATING
|
||||
%LeftLabel.text = "U8 Gesundquell \n via Rosenthal Hospital"
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_SELF_ADVOCACY
|
||||
%SubwayMap.current_station = Scenes.id.ADULT_SELF_ADVOCACY
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
%Train.get_child(0).door_open = true
|
||||
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
|
||||
if not changeover:
|
||||
%Train.get_child(0).door_open = false
|
||||
on_second_transition()
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_BURNOUT
|
||||
%SubwayMap.current_station = Scenes.id.ADULT_BURNOUT
|
||||
%RightLabel.text = "do not board"
|
||||
%LeftLabel.text = "do not board"
|
||||
on_final = true
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
%Train.get_child(0).door_open = true
|
||||
else:
|
||||
%ShedulePlayer_R.play("train_leaving")
|
||||
%RightLabel.text = "do not board"
|
||||
return
|
||||
if changeover:
|
||||
on_second_transition()
|
||||
if on_direct_path: %ShedulePlayer_L.play("train_leaving")
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
Scenes.enabled_sequences += 1 << Scenes.id.ADULT_AUTISM
|
||||
%SubwayMap.current_station = Scenes.id.ADULT_AUTISM
|
||||
await get_tree().create_timer(2.0).timeout
|
||||
%Train2.get_child(0).door_open = false
|
||||
%RightLabel.text = "do not board"
|
||||
%LeftLabel.text = "do not board"
|
||||
on_final = true
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
%Train.get_child(0).door_open = true
|
||||
|
||||
var changeover: bool = false
|
||||
func on_left_train_exit(_body):
|
||||
if on_second_platform and not on_final:
|
||||
changeover = true
|
||||
%ShedulePlayer_R.play("train_arriving")
|
||||
|
||||
func on_right_train_exit(_body):
|
||||
if on_second_platform and not on_final:
|
||||
changeover = true
|
||||
%ShedulePlayer_L.play("train_arriving")
|
||||
await get_tree().create_timer(10).timeout
|
||||
%RightLabel.text = "U1 weissnicht \n via Saint-Exupery Sq."
|
||||
await get_tree().create_timer(5).timeout
|
||||
%ShedulePlayer_R.play("train_arriving")
|
||||
|
|
@ -0,0 +1,575 @@
|
|||
[gd_scene load_steps=46 format=3 uid="uid://fgp3tbah7msy"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://snugj1gnggjj" path="res://base-environments/transition/code/subway_sequence.gd" id="1_yfan7"]
|
||||
[ext_resource type="PackedScene" uid="uid://mkccbig41bqb" path="res://logic-scenes/player_controller/player_controller.tscn" id="2_il5go"]
|
||||
[ext_resource type="Script" uid="uid://bi4cwmajhpa5f" path="res://base-environments/transition/code/fahrplan.gd" id="4_yfan7"]
|
||||
[ext_resource type="PackedScene" uid="uid://d2j0d88axhfue" path="res://base-environments/transition/stations/dungeon_station.tscn" id="5_rum2v"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://d0ywd1vewvryc" path="res://base-environments/transition/vfx/dungeon_VoxelGI.res" id="6_ii0j1"]
|
||||
[ext_resource type="AudioStream" uid="uid://ba7s5uqc4iu66" path="res://base-environments/transition/audio/537769__janbezouska__factory-fluorescent-light-buzz.wav" id="7_rkl48"]
|
||||
[ext_resource type="PackedScene" uid="uid://bk1l1a7eae838" path="res://base-environments/transition/misc/subway_map.tscn" id="8_rcbu2"]
|
||||
[ext_resource type="PackedScene" uid="uid://dmvn3x67nduqp" path="res://base-environments/transition/stations/uni_station.tscn" id="9_bdj4u"]
|
||||
[ext_resource type="Script" uid="uid://pmhadgsfinjc" path="res://base-environments/transition/code/station.gd" id="10_iq74k"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://pb8f1dk8ginr" path="res://base-environments/transition/vfx/ministry_gi.res" id="11_il5go"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://b5b1dkf1rrsh6" path="res://base-environments/transition/vfx/saint_exupery_gi.tres" id="11_iq74k"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://bwsoyukt82gvb" path="res://base-environments/transition/uni_mensa_gi.tres" id="11_rum2v"]
|
||||
[ext_resource type="PackedScene" uid="uid://inavuxjmq6hi" path="res://base-environments/transition/stations/burnout_station.tscn" id="11_vomua"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://dram781e770bj" path="res://base-environments/transition/vfx/uni_voxelGI.tres" id="12_ii0j1"]
|
||||
[ext_resource type="Script" uid="uid://c3wiasfotoy5" path="res://base-environments/transition/stations/therapy_station.gd" id="12_il5go"]
|
||||
[ext_resource type="PackedScene" uid="uid://uhayiqixlv0e" path="res://base-environments/transition/stations/volunteer_station.tscn" id="13_265nv"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://uml26uico8na" path="res://base-environments/transition/vfx/rosenthal_gi.tres" id="14_iq74k"]
|
||||
[ext_resource type="Material" uid="uid://dchm78gv31r6a" path="res://base-environments/transition/shaders/timetravel.tres" id="15_hdxw7"]
|
||||
[ext_resource type="Script" uid="uid://br1w2nt4pj8lt" path="res://vfx/post_processing/post_process_shader_template.gd" id="16_a6spw"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://wr8uuicetrvx" path="res://base-environments/transition/vfx/parity_square_gi.tres" id="16_iq74k"]
|
||||
[ext_resource type="Script" uid="uid://mgertkn5ub0g" path="res://dev-util/hdr_sdr_switch.gd" id="17_ov8kk"]
|
||||
[ext_resource type="PackedScene" uid="uid://df3ur5wll8vx7" path="res://base-environments/transition/subway_track.tscn" id="17_yfan7"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_rkl48"]
|
||||
viewport_path = NodePath("Logic/Fahrplan/hirschfeld/SubwayMap3D/MapViewport")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_il5go"]
|
||||
resource_local_to_scene = true
|
||||
albedo_color = Color(0.70380783, 0.70380783, 0.70380783, 1)
|
||||
albedo_texture = SubResource("ViewportTexture_rkl48")
|
||||
metallic = 0.3
|
||||
metallic_specular = 0.3
|
||||
roughness = 0.15
|
||||
emission_enabled = true
|
||||
emission = Color(1, 1, 1, 1)
|
||||
emission_energy_multiplier = 0.1
|
||||
emission_operator = 1
|
||||
emission_texture = SubResource("ViewportTexture_rkl48")
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_rkl48"]
|
||||
resource_local_to_scene = true
|
||||
material = SubResource("StandardMaterial3D_il5go")
|
||||
size = Vector2(1.505, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rkl48"]
|
||||
resource_name = "beam_metal.001"
|
||||
cull_mode = 2
|
||||
albedo_color = Color(0.27999386, 0.27999386, 0.27999386, 1)
|
||||
metallic = 0.8
|
||||
metallic_specular = 0.3
|
||||
roughness = 0.2
|
||||
uv1_scale = Vector3(0.1, 0.1, 0.1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_rkl48"]
|
||||
material = SubResource("StandardMaterial3D_rkl48")
|
||||
size = Vector3(0.1, 0.7, 1.5)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sofnd"]
|
||||
albedo_color = Color(0.5953387, 0.22751653, 9.62615e-08, 1)
|
||||
metallic = 0.7
|
||||
roughness = 0.5
|
||||
clearcoat_enabled = true
|
||||
clearcoat_roughness = 0.1
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_8c5ii"]
|
||||
size = Vector3(0.15, 1.2, 1.7)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_symoa"]
|
||||
size = Vector3(0.3, 1, 1.5)
|
||||
|
||||
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_rkl48"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_yfan7"]
|
||||
size = Vector3(8, 2.5, 0.5)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_il5go"]
|
||||
size = Vector3(4, 2.5, 0.4)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_iq74k"]
|
||||
size = Vector3(4.392578, 2.5, 0.4)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_biibr"]
|
||||
size = Vector3(4.392578, 2.5, 0.4)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_rum2v"]
|
||||
size = Vector3(4.393, 2.5, 0.6)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ii0j1"]
|
||||
size = Vector3(0.4, 2.5, 0.5)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ltric"]
|
||||
size = Vector3(2.393, 1.0219727, 1.1)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_rcbu2"]
|
||||
size = Vector3(4.325035, 0.5001221, 29.45169)
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_wgcl8"]
|
||||
sky_top_color = Color(0.138464, 0.0447571, 0.169373, 1)
|
||||
sky_horizon_color = Color(4.62055e-06, 0.722684, 0.905603, 1)
|
||||
ground_bottom_color = Color(0.578219, 0.40697, 0.222187, 1)
|
||||
ground_horizon_color = Color(0.138283, 0.487665, 0.674041, 1)
|
||||
ground_curve = 0.165643
|
||||
ground_energy_multiplier = 0.2
|
||||
|
||||
[sub_resource type="Sky" id="Sky_5ahgt"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_wgcl8")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_8c5ii"]
|
||||
sky = SubResource("Sky_5ahgt")
|
||||
ambient_light_color = Color(0.15686275, 0.15686275, 0.15686275, 1)
|
||||
ambient_light_sky_contribution = 0.0
|
||||
tonemap_mode = 3
|
||||
tonemap_exposure = 1.1
|
||||
ssao_enabled = true
|
||||
sdfgi_read_sky_light = false
|
||||
sdfgi_cascades = 3
|
||||
sdfgi_min_cell_size = 0.01953125
|
||||
sdfgi_energy = 0.5
|
||||
glow_enabled = true
|
||||
glow_levels/2 = 0.05
|
||||
glow_levels/3 = 0.1
|
||||
glow_levels/4 = 0.2
|
||||
glow_levels/5 = 0.4
|
||||
glow_levels/6 = 0.5
|
||||
glow_normalized = true
|
||||
glow_intensity = 0.5
|
||||
glow_strength = 0.7
|
||||
glow_mix = 1.0
|
||||
glow_bloom = 0.2
|
||||
glow_hdr_threshold = 0.5
|
||||
glow_hdr_luminance_cap = 50.0
|
||||
fog_enabled = true
|
||||
fog_light_color = Color(0.03529412, 0.15294118, 0.1882353, 1)
|
||||
fog_density = 0.02
|
||||
fog_height = 0.25
|
||||
fog_height_density = 0.5
|
||||
volumetric_fog_density = 0.03
|
||||
volumetric_fog_albedo = Color(0.395, 0.6122501, 0.79, 1)
|
||||
adjustment_enabled = true
|
||||
adjustment_contrast = 0.99
|
||||
|
||||
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_symoa"]
|
||||
|
||||
[sub_resource type="CompositorEffect" id="CompositorEffect_820wi"]
|
||||
resource_local_to_scene = false
|
||||
resource_name = ""
|
||||
enabled = false
|
||||
effect_callback_type = 4
|
||||
needs_motion_vectors = false
|
||||
needs_normal_roughness = false
|
||||
script = ExtResource("16_a6spw")
|
||||
shader_code = "//color.rgb = pow(color.rgb, vec3(1.3));
|
||||
color.rgb = max(vec3(0.0), pow(color.rgb, vec3(1.6, 1.5, 1.4)) * vec3(5.0, 4.0, 4.0) + vec3(-0.01, 0.01, -0.0));
|
||||
//float gray = color.r * 0.2125 + color.g * 0.7154 + color.b * 0.0721;
|
||||
//color.rgb = vec3(gray);"
|
||||
metadata/_custom_type_script = "uid://br1w2nt4pj8lt"
|
||||
|
||||
[sub_resource type="Compositor" id="Compositor_e75no"]
|
||||
compositor_effects = Array[CompositorEffect]([SubResource("CompositorEffect_820wi")])
|
||||
|
||||
[node name="SubwaySequence" type="Node3D"]
|
||||
script = ExtResource("1_yfan7")
|
||||
id = 2
|
||||
|
||||
[node name="Logic" type="Node3D" parent="." groups=["labels"]]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="PlayerController" parent="Logic" instance=ExtResource("2_il5go")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.0218763, 6.1035156e-05, -5.6086483)
|
||||
continuous_cd = true
|
||||
|
||||
[node name="Track0Dolly" parent="Logic" instance=ExtResource("17_yfan7")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.2, -0.2, -32.5)
|
||||
index = 0
|
||||
signage_group = "signage2"
|
||||
|
||||
[node name="Track1Dolly" parent="Logic" instance=ExtResource("17_yfan7")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -6.2, -0.2, -32.5)
|
||||
index = 1
|
||||
signage_group = "signage1"
|
||||
|
||||
[node name="Fahrplan" type="Node3D" parent="Logic"]
|
||||
script = ExtResource("4_yfan7")
|
||||
metadata/_custom_type_script = "uid://bi4cwmajhpa5f"
|
||||
|
||||
[node name="hirschfeld" parent="Logic/Fahrplan" groups=["signage1"] instance=ExtResource("5_rum2v")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.015596004, 0.007891655, -0.018885009)
|
||||
script = ExtResource("10_iq74k")
|
||||
i18n_key = &"Hirschfeld-Str."
|
||||
train_labels = Dictionary[StringName, String]({
|
||||
&"u1lise_meitner": "U1 Ring ↺",
|
||||
&"u1parity_square": "U1 Ring ↻",
|
||||
&"u2uni_mensa": "U2 Ambitz"
|
||||
})
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="Logic/Fahrplan/hirschfeld"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.020572662, 1.5449562, -25.981638)
|
||||
size = Vector3(20, 3.75, 84)
|
||||
data = ExtResource("6_ii0j1")
|
||||
|
||||
[node name="SubwayMap3D" type="Node3D" parent="Logic/Fahrplan/hirschfeld"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.021, 1.4, -22.606)
|
||||
|
||||
[node name="MapPanel1" type="MeshInstance3D" parent="Logic/Fahrplan/hirschfeld/SubwayMap3D"]
|
||||
transform = Transform3D(-6.389512e-08, 0, 1.46175, 0, 1.46175, 0, -1.46175, 0, -6.389512e-08, 0, 0, 0)
|
||||
mesh = SubResource("QuadMesh_rkl48")
|
||||
|
||||
[node name="MapPanel2" type="MeshInstance3D" parent="Logic/Fahrplan/hirschfeld/SubwayMap3D"]
|
||||
transform = Transform3D(-6.389512e-08, 0, -1.46175, 0, 1.46175, 0, 1.46175, 0, -6.389512e-08, 0, 0, 0)
|
||||
mesh = SubResource("QuadMesh_rkl48")
|
||||
|
||||
[node name="Stand" type="MeshInstance3D" parent="Logic/Fahrplan/hirschfeld/SubwayMap3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.15, 0)
|
||||
mesh = SubResource("BoxMesh_rkl48")
|
||||
|
||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Logic/Fahrplan/hirschfeld/SubwayMap3D"]
|
||||
transform = Transform3D(1.46175, 0, 0, 0, 1.46175, 0, 0, 0, 1.46175, 0, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_sofnd")
|
||||
use_collision = true
|
||||
|
||||
[node name="CSGMesh3D" type="CSGMesh3D" parent="Logic/Fahrplan/hirschfeld/SubwayMap3D/CSGCombiner3D"]
|
||||
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 0, 0, 0)
|
||||
mesh = SubResource("BoxMesh_8c5ii")
|
||||
|
||||
[node name="CSGMesh3D2" type="CSGMesh3D" parent="Logic/Fahrplan/hirschfeld/SubwayMap3D/CSGCombiner3D"]
|
||||
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 0, 0, 0)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_symoa")
|
||||
|
||||
[node name="MapViewport" type="SubViewport" parent="Logic/Fahrplan/hirschfeld/SubwayMap3D"]
|
||||
disable_3d = true
|
||||
size = Vector2i(2896, 2048)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="SubwayMap" parent="Logic/Fahrplan/hirschfeld/SubwayMap3D/MapViewport" instance=ExtResource("8_rcbu2")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="SubwayMapAudio" type="AudioStreamPlayer3D" parent="Logic/Fahrplan/hirschfeld/SubwayMap3D"]
|
||||
stream = ExtResource("7_rkl48")
|
||||
unit_size = 2.0
|
||||
max_db = -5.0
|
||||
autoplay = true
|
||||
panning_strength = 0.5
|
||||
bus = &"sfx"
|
||||
|
||||
[node name="uni_mensa" parent="Logic/Fahrplan" instance=ExtResource("9_bdj4u")]
|
||||
visible = false
|
||||
script = ExtResource("10_iq74k")
|
||||
i18n_key = &"Uni (Alte Mensa)"
|
||||
train_labels = Dictionary[StringName, String]({
|
||||
&"u2hirschfeld": "U2 Turingplatz",
|
||||
&"u2uni_main": "U2 Ambitz"
|
||||
})
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="Logic/Fahrplan/uni_mensa"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.020572662, 1.5449562, -25.981638)
|
||||
size = Vector3(11, 3.7785034, 84)
|
||||
data = ExtResource("11_rum2v")
|
||||
|
||||
[node name="SubwayMap3D" type="Node3D" parent="Logic/Fahrplan/uni_mensa"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.021, 1.4, -22.606)
|
||||
|
||||
[node name="MapPanel1" type="MeshInstance3D" parent="Logic/Fahrplan/uni_mensa/SubwayMap3D"]
|
||||
transform = Transform3D(-6.389512e-08, 0, 1.46175, 0, 1.46175, 0, -1.46175, 0, -6.389512e-08, 0, 0, 0)
|
||||
mesh = SubResource("QuadMesh_rkl48")
|
||||
|
||||
[node name="MapPanel2" type="MeshInstance3D" parent="Logic/Fahrplan/uni_mensa/SubwayMap3D"]
|
||||
transform = Transform3D(-6.389512e-08, 0, -1.46175, 0, 1.46175, 0, 1.46175, 0, -6.389512e-08, 0, 0, 0)
|
||||
mesh = SubResource("QuadMesh_rkl48")
|
||||
|
||||
[node name="Stand" type="MeshInstance3D" parent="Logic/Fahrplan/uni_mensa/SubwayMap3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.15, 0)
|
||||
mesh = SubResource("BoxMesh_rkl48")
|
||||
|
||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Logic/Fahrplan/uni_mensa/SubwayMap3D"]
|
||||
transform = Transform3D(1.46175, 0, 0, 0, 1.46175, 0, 0, 0, 1.46175, 0, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_sofnd")
|
||||
use_collision = true
|
||||
|
||||
[node name="CSGMesh3D" type="CSGMesh3D" parent="Logic/Fahrplan/uni_mensa/SubwayMap3D/CSGCombiner3D"]
|
||||
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 0, 0, 0)
|
||||
mesh = SubResource("BoxMesh_8c5ii")
|
||||
|
||||
[node name="CSGMesh3D2" type="CSGMesh3D" parent="Logic/Fahrplan/uni_mensa/SubwayMap3D/CSGCombiner3D"]
|
||||
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 0, 0, 0)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_symoa")
|
||||
|
||||
[node name="uni_main" parent="Logic/Fahrplan" instance=ExtResource("9_bdj4u")]
|
||||
visible = false
|
||||
script = ExtResource("10_iq74k")
|
||||
i18n_key = &"Universität"
|
||||
train_labels = Dictionary[StringName, String]({
|
||||
&"u1saint_exupery": "U1 Ring ↺",
|
||||
&"u1saint_jude": "U1 Ring ↻",
|
||||
&"u2ministry": "U2 Ambitz",
|
||||
&"u2uni_mensa": "U2 Turingplatz",
|
||||
&"u8rosenthal": "U8 Gesundquell",
|
||||
&"u8saint_jude": "U8 Südstadt"
|
||||
})
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="Logic/Fahrplan/uni_main"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.020572662, 1.5449562, -25.981638)
|
||||
size = Vector3(11, 3.7785034, 84)
|
||||
data = ExtResource("12_ii0j1")
|
||||
|
||||
[node name="SubwayMap3D" type="Node3D" parent="Logic/Fahrplan/uni_main"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.021, 1.4, -22.606)
|
||||
|
||||
[node name="MapPanel1" type="MeshInstance3D" parent="Logic/Fahrplan/uni_main/SubwayMap3D"]
|
||||
transform = Transform3D(-6.389512e-08, 0, 1.46175, 0, 1.46175, 0, -1.46175, 0, -6.389512e-08, 0, 0, 0)
|
||||
mesh = SubResource("QuadMesh_rkl48")
|
||||
|
||||
[node name="MapPanel2" type="MeshInstance3D" parent="Logic/Fahrplan/uni_main/SubwayMap3D"]
|
||||
transform = Transform3D(-6.389512e-08, 0, -1.46175, 0, 1.46175, 0, 1.46175, 0, -6.389512e-08, 0, 0, 0)
|
||||
mesh = SubResource("QuadMesh_rkl48")
|
||||
|
||||
[node name="Stand" type="MeshInstance3D" parent="Logic/Fahrplan/uni_main/SubwayMap3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.15, 0)
|
||||
mesh = SubResource("BoxMesh_rkl48")
|
||||
|
||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Logic/Fahrplan/uni_main/SubwayMap3D"]
|
||||
transform = Transform3D(1.46175, 0, 0, 0, 1.46175, 0, 0, 0, 1.46175, 0, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_sofnd")
|
||||
use_collision = true
|
||||
|
||||
[node name="CSGMesh3D" type="CSGMesh3D" parent="Logic/Fahrplan/uni_main/SubwayMap3D/CSGCombiner3D"]
|
||||
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 0, 0, 0)
|
||||
mesh = SubResource("BoxMesh_8c5ii")
|
||||
|
||||
[node name="CSGMesh3D2" type="CSGMesh3D" parent="Logic/Fahrplan/uni_main/SubwayMap3D/CSGCombiner3D"]
|
||||
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 0, 0, 0)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_symoa")
|
||||
|
||||
[node name="saint_exupery" parent="Logic/Fahrplan" instance=ExtResource("11_vomua")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1.2, 0, 0, 0)
|
||||
visible = false
|
||||
script = ExtResource("12_il5go")
|
||||
train_labels = Dictionary[StringName, String]({
|
||||
&"u1parity_suqare": "U1 Ring ↺",
|
||||
&"u1uni_main": "U1 Ring ↻",
|
||||
&"u4rosenthal": "U4 Gesundquell"
|
||||
})
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="Logic/Fahrplan/saint_exupery"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.020572662, 1.5449562, -25.981638)
|
||||
subdiv = 2
|
||||
size = Vector3(11, 3.7785034, 84)
|
||||
data = ExtResource("11_iq74k")
|
||||
|
||||
[node name="ministry" parent="Logic/Fahrplan" instance=ExtResource("11_vomua")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1.2, 0, 0, 0)
|
||||
visible = false
|
||||
i18n_key = &"Bildungsministerium"
|
||||
train_labels = Dictionary[StringName, String]({
|
||||
&"u2ambitz": "U2 Ambitz",
|
||||
&"u2uni_main": "U2 Turingplatz"
|
||||
})
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="Logic/Fahrplan/ministry"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.020572662, 1.5449562, -25.981638)
|
||||
size = Vector3(11, 3.7785034, 84)
|
||||
data = ExtResource("11_il5go")
|
||||
|
||||
[node name="rosenthal" parent="Logic/Fahrplan" instance=ExtResource("11_vomua")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1.2, 0, 0, 0)
|
||||
visible = false
|
||||
script = ExtResource("12_il5go")
|
||||
i18n_key = &"Rosenthal Klinik"
|
||||
train_labels = Dictionary[StringName, String]({
|
||||
&"u4gertrud_koch": "U4 Gesundquell",
|
||||
&"u4saint_exupery": "U4 Nordstadt",
|
||||
&"u8gertrud_koch": "U8 Gesundquell",
|
||||
&"u8uni_main": "U8 Südstadt"
|
||||
})
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="Logic/Fahrplan/rosenthal"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.020572662, 1.5449562, -25.981638)
|
||||
subdiv = 2
|
||||
size = Vector3(11, 3.7785034, 84)
|
||||
data = ExtResource("14_iq74k")
|
||||
|
||||
[node name="parity_square" parent="Logic/Fahrplan" instance=ExtResource("13_265nv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1.3, 0, 0, 0)
|
||||
visible = false
|
||||
script = ExtResource("10_iq74k")
|
||||
i18n_key = &"Parity Square"
|
||||
train_labels = Dictionary[StringName, String]({
|
||||
&"u1hirschfeld": "U1 Ring ↺",
|
||||
&"u1saint_exupery": "U1 Ring ↻",
|
||||
&"u4saint_exupery": "U4 Gesundquell"
|
||||
})
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="Logic/Fahrplan/parity_square"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.7692308, 0.020572662, 1.5449562, -27.640734)
|
||||
subdiv = 2
|
||||
size = Vector3(11, 3.7785034, 104.75287)
|
||||
data = ExtResource("16_iq74k")
|
||||
|
||||
[node name="SubwayMap3D" type="Node3D" parent="Logic/Fahrplan/parity_square"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.021, 1.4, -22.606)
|
||||
|
||||
[node name="MapPanel1" type="MeshInstance3D" parent="Logic/Fahrplan/parity_square/SubwayMap3D"]
|
||||
transform = Transform3D(-6.389512e-08, 0, 1.46175, 0, 1.46175, 0, -1.46175, 0, -6.389512e-08, 0, 0, 0)
|
||||
mesh = SubResource("QuadMesh_rkl48")
|
||||
|
||||
[node name="MapPanel2" type="MeshInstance3D" parent="Logic/Fahrplan/parity_square/SubwayMap3D"]
|
||||
transform = Transform3D(-6.389512e-08, 0, -1.46175, 0, 1.46175, 0, 1.46175, 0, -6.389512e-08, 0, 0, 0)
|
||||
mesh = SubResource("QuadMesh_rkl48")
|
||||
|
||||
[node name="Stand" type="MeshInstance3D" parent="Logic/Fahrplan/parity_square/SubwayMap3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.15, 0)
|
||||
mesh = SubResource("BoxMesh_rkl48")
|
||||
|
||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Logic/Fahrplan/parity_square/SubwayMap3D"]
|
||||
transform = Transform3D(1.46175, 0, 0, 0, 1.46175, 0, 0, 0, 1.46175, 0, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_sofnd")
|
||||
use_collision = true
|
||||
|
||||
[node name="CSGMesh3D" type="CSGMesh3D" parent="Logic/Fahrplan/parity_square/SubwayMap3D/CSGCombiner3D"]
|
||||
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 0, 0, 0)
|
||||
mesh = SubResource("BoxMesh_8c5ii")
|
||||
|
||||
[node name="CSGMesh3D2" type="CSGMesh3D" parent="Logic/Fahrplan/parity_square/SubwayMap3D/CSGCombiner3D"]
|
||||
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 0, 0, 0)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_symoa")
|
||||
|
||||
[node name="MapViewport" type="SubViewport" parent="Logic/Fahrplan/parity_square/SubwayMap3D"]
|
||||
disable_3d = true
|
||||
size = Vector2i(2896, 2048)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="SubwayMap" parent="Logic/Fahrplan/parity_square/SubwayMap3D/MapViewport" instance=ExtResource("8_rcbu2")]
|
||||
|
||||
[node name="Collision" type="StaticBody3D" parent="Logic"]
|
||||
|
||||
[node name="World Boundary (Floor)" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
shape = SubResource("WorldBoundaryShape3D_rkl48")
|
||||
debug_color = Color(0.5019608, 0.003921569, 0.9607843, 1)
|
||||
|
||||
[node name="CollisionShape3D3" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.143, 1, -66.5)
|
||||
shape = SubResource("BoxShape3D_yfan7")
|
||||
|
||||
[node name="CollisionShape3D4" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.143, 1, 0.25)
|
||||
shape = SubResource("BoxShape3D_yfan7")
|
||||
|
||||
[node name="CollisionShape3D5" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 1.8523458, 1, -1.1576476)
|
||||
shape = SubResource("BoxShape3D_il5go")
|
||||
|
||||
[node name="CollisionShape3D7" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 1.567, 1.031, -2)
|
||||
shape = SubResource("BoxShape3D_iq74k")
|
||||
|
||||
[node name="CollisionShape3D8" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -1.567, 1.031, -2)
|
||||
shape = SubResource("BoxShape3D_biibr")
|
||||
|
||||
[node name="CollisionShape3D9" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 0, 1.031, -2)
|
||||
shape = SubResource("BoxShape3D_rum2v")
|
||||
|
||||
[node name="CollisionShape3D10" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -7.783883)
|
||||
shape = SubResource("BoxShape3D_ii0j1")
|
||||
|
||||
[node name="CollisionShape3D11" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -9.45743)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D12" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -17.783882)
|
||||
shape = SubResource("BoxShape3D_ii0j1")
|
||||
|
||||
[node name="CollisionShape3D13" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -19.45743)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D14" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -16.102852)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D15" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -27.783882)
|
||||
shape = SubResource("BoxShape3D_ii0j1")
|
||||
|
||||
[node name="CollisionShape3D16" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -29.45743)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D17" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -26.102852)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D18" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -37.783882)
|
||||
shape = SubResource("BoxShape3D_ii0j1")
|
||||
|
||||
[node name="CollisionShape3D19" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -39.457428)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D20" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -36.10285)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D21" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -47.783882)
|
||||
shape = SubResource("BoxShape3D_ii0j1")
|
||||
|
||||
[node name="CollisionShape3D22" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -49.457428)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D23" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -46.10285)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D24" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5282154e-07, 1.031, -57.783882)
|
||||
shape = SubResource("BoxShape3D_ii0j1")
|
||||
|
||||
[node name="CollisionShape3D26" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 3.259746e-07, 0.29198635, -56.10285)
|
||||
shape = SubResource("BoxShape3D_ltric")
|
||||
|
||||
[node name="CollisionShape3D6" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -1.8618617, 1, -1.1576476)
|
||||
shape = SubResource("BoxShape3D_il5go")
|
||||
|
||||
[node name="train" type="CollisionShape3D" parent="Logic/Collision"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.0680046, -0.24993896, -32.189793)
|
||||
shape = SubResource("BoxShape3D_rcbu2")
|
||||
|
||||
[node name="MapViewport" type="SubViewport" parent="Logic"]
|
||||
disable_3d = true
|
||||
size = Vector2i(2896, 2048)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="SubwayMap" parent="Logic/MapViewport" instance=ExtResource("8_rcbu2")]
|
||||
|
||||
[node name="material_helper" type="MeshInstance3D" parent="Logic"]
|
||||
material_override = ExtResource("15_hdxw7")
|
||||
cast_shadow = 0
|
||||
skeleton = NodePath("../SceneAnimationPlayer")
|
||||
|
||||
[node name="SceneAnimationPlayer" type="AnimationPlayer" parent="Logic"]
|
||||
unique_name_in_owner = true
|
||||
autoplay = "RESET"
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_8c5ii")
|
||||
camera_attributes = SubResource("CameraAttributesPractical_symoa")
|
||||
compositor = SubResource("Compositor_e75no")
|
||||
script = ExtResource("17_ov8kk")
|
||||
|
||||
[node name="UI" type="Control" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[editable path="Logic/PlayerController"]
|
||||
|
|
@ -0,0 +1,244 @@
|
|||
[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="Script" uid="uid://dgfje4druu3sw" path="res://base-environments/transition/code/dolly.gd" id="1_5jpg8"]
|
||||
[ext_resource type="Script" uid="uid://cyohujvfoiof7" path="res://base-environments/transition/code/subway_train.gd" id="2_aacjs"]
|
||||
[ext_resource type="AudioStream" uid="uid://cwfr6sgcwg7sl" path="res://base-environments/transition/audio/450918__kyles__metro-subway-montreal-verdun-station-arrive-and-leave-semidistant-from-bridge-over-tracks-overpass.ogg" id="3_4h0n7"]
|
||||
[ext_resource type="Material" uid="uid://cl7e6lpjalm0c" path="res://base-environments/transition/shaders/u1.material" id="3_j8pin"]
|
||||
[ext_resource type="Material" uid="uid://c0baqy42xdxtg" path="res://base-environments/transition/shaders/u2.material" id="4_3w708"]
|
||||
[ext_resource type="Material" uid="uid://bw4y5b5lnw3cn" path="res://base-environments/transition/shaders/u4.material" id="5_3x5rc"]
|
||||
[ext_resource type="Material" uid="uid://cor0uho8hnfqc" path="res://base-environments/transition/shaders/u7.material" id="6_ckebf"]
|
||||
[ext_resource type="Material" uid="uid://d0kk76pja0orj" path="res://base-environments/transition/shaders/u8.material" id="7_dyyau"]
|
||||
[ext_resource type="FontFile" uid="uid://b231f0liphck" path="res://import/fonts/AtkinsonHyperlegible-Regular.ttf" id="10_3w708"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aacjs"]
|
||||
shading_mode = 0
|
||||
albedo_color = Color(0.03529412, 0.15294118, 0.1882353, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_aacjs"]
|
||||
material = SubResource("StandardMaterial3D_aacjs")
|
||||
size = Vector3(1, 50, 150)
|
||||
|
||||
[sub_resource type="Shader" id="Shader_tpaj8"]
|
||||
code = "shader_type spatial;
|
||||
render_mode depth_prepass_alpha;
|
||||
|
||||
uniform float time;
|
||||
uniform sampler2D horizontal_gradient: repeat_disable;
|
||||
uniform sampler2D horizontal_emission: repeat_disable;
|
||||
uniform sampler2D vertical_gradient: repeat_disable;
|
||||
uniform sampler2D vertical_emission: repeat_disable;
|
||||
|
||||
void vertex() {
|
||||
// Called for every vertex the material is visible on.
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
float anim_progress = time;
|
||||
//float anim_progress = fract(TIME * 0.25);
|
||||
|
||||
ALBEDO = texture(horizontal_gradient, UV.yx).xyz * mix(vec3(1.0), texture(vertical_gradient, UV * vec2(anim_progress)).xyz, anim_progress);
|
||||
ALPHA = min(clamp(3.0-anim_progress*2.0, 0.0, 1.0), texture(horizontal_gradient, UV.yx).w * texture(vertical_gradient, UV).w * pow(anim_progress, 0.6));
|
||||
EMISSION = texture(horizontal_emission, UV.yx).xyz * mix(vec3(1.0), texture(vertical_emission, UV * vec2(anim_progress)).xyz, min(1.0, anim_progress));
|
||||
ROUGHNESS = 0.5;
|
||||
SPECULAR = 0.4;
|
||||
METALLIC = 0.3;
|
||||
}
|
||||
|
||||
//void light() {
|
||||
// // Called for every pixel for every light affecting the material.
|
||||
// // Uncomment to replace the default light processing function with this one.
|
||||
//}
|
||||
"
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_sofnd"]
|
||||
offsets = PackedFloat32Array(0.190283, 0.237517, 0.252362, 0.263158, 0.358974, 0.620783)
|
||||
colors = PackedColorArray(0, 0, 0, 1, 0.498876, 0.371803, 0.25703, 1, 0.999199, 0.798087, 0.641907, 1, 0.552793, 0.341064, 0.190397, 1, 0.428199, 0.393103, 0.309389, 1, 0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bjefl"]
|
||||
gradient = SubResource("Gradient_sofnd")
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_csq32"]
|
||||
offsets = PackedFloat32Array(0, 0.0526316, 0.165992, 0.62753, 0.647773, 0.704453, 0.731444, 1)
|
||||
colors = PackedColorArray(0.0563103, 0.372397, 0.669528, 1, 0, 0, 0, 0.968627, 0.0844204, 0.319764, 0.485866, 0.796078, 0.0554195, 0.372493, 0.670199, 0.871024, 0, 0, 0, 0.933333, 0.0507, 0.237315, 0.39, 1, 0.0563103, 0.372397, 0.669528, 1, 0.0261, 0.092075, 0.29, 0.894118)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_tpaj8"]
|
||||
gradient = SubResource("Gradient_csq32")
|
||||
width = 1024
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_grftg"]
|
||||
offsets = PackedFloat32Array(0.147099, 0.159244, 0.195682, 0.213225, 0.267206, 0.287449, 0.31444, 0.34143, 0.364372, 0.398111, 0.430499, 0.442645, 0.480432, 0.511471, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0.194349, 0.194349, 0.194349, 1, 0.194349, 0.194349, 0.194349, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_v43sq"]
|
||||
gradient = SubResource("Gradient_grftg")
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_l33v1"]
|
||||
offsets = PackedFloat32Array(0.022942, 0.11471, 0.2045054, 0.21741071, 0.25024083, 0.26036772, 0.438596, 0.45614, 0.473684, 0.866397, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0.0820244, 0.0820244, 0.0820244, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_nnax0"]
|
||||
gradient = SubResource("Gradient_l33v1")
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0vobo"]
|
||||
render_priority = 1
|
||||
shader = SubResource("Shader_tpaj8")
|
||||
shader_parameter/time = 0.0
|
||||
shader_parameter/horizontal_gradient = SubResource("GradientTexture1D_tpaj8")
|
||||
shader_parameter/horizontal_emission = SubResource("GradientTexture1D_bjefl")
|
||||
shader_parameter/vertical_gradient = SubResource("GradientTexture1D_nnax0")
|
||||
shader_parameter/vertical_emission = SubResource("GradientTexture1D_v43sq")
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_ppxbm"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_j8pin"]
|
||||
size = Vector3(30.020142, 3.5859985, 3.5711975)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_aacjs"]
|
||||
size = Vector3(31.245972, 4.7752075, 1)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_4h0n7"]
|
||||
size = Vector3(16.285, 4.775, 1)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_xhnml"]
|
||||
size = Vector3(6.041, 4.775, 1)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_5b47p"]
|
||||
size = Vector3(5.908, 4.775, 1)
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_5jpg8"]
|
||||
radius = 2.0
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_q8slu"]
|
||||
size = Vector3(31.194, 0.8, 3.8)
|
||||
|
||||
[node name="TrainDolly" type="Node3D"]
|
||||
script = ExtResource("1_5jpg8")
|
||||
metadata/_custom_type_script = "uid://dgfje4druu3sw"
|
||||
|
||||
[node name="Destination" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 150)
|
||||
|
||||
[node name="PotemkinsFacade" type="MeshInstance3D" parent="Destination"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.2, 0, 0)
|
||||
mesh = SubResource("BoxMesh_aacjs")
|
||||
|
||||
[node name="Origination" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -150)
|
||||
|
||||
[node name="Subway" type="Node3D" parent="."]
|
||||
script = ExtResource("2_aacjs")
|
||||
materials = Dictionary[StringName, Material]({
|
||||
&"u1": ExtResource("3_j8pin"),
|
||||
&"u2": ExtResource("4_3w708"),
|
||||
&"u4": ExtResource("5_3x5rc"),
|
||||
&"u7": ExtResource("6_ckebf"),
|
||||
&"u8": ExtResource("7_dyyau")
|
||||
})
|
||||
metadata/_custom_type_script = "uid://cyohujvfoiof7"
|
||||
|
||||
[node name="WarpEffecScreen" type="MeshInstance3D" parent="Subway"]
|
||||
transform = Transform3D(-4.108744e-06, 0.1808367, -2.8743172, -6.330816e-06, -2.8743172, -0.1808367, 42.01, -4.1546687e-07, -3.0837123e-07, 2.4883583, 1.286, 3.9468384)
|
||||
material_override = SubResource("ShaderMaterial_0vobo")
|
||||
mesh = SubResource("QuadMesh_ppxbm")
|
||||
skeleton = NodePath("../Collider")
|
||||
|
||||
[node name="EntryDetect" type="Area3D" parent="Subway"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0, 0)
|
||||
|
||||
[node name="InteriorTriggerShape" type="CollisionShape3D" parent="Subway/EntryDetect"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7977905, 1.3545837, -0.13719177)
|
||||
shape = SubResource("BoxShape3D_j8pin")
|
||||
debug_color = Color(0.7607843, 0.8117647, 0, 0.7176471)
|
||||
|
||||
[node name="SpotLight3D" type="SpotLight3D" parent="Subway"]
|
||||
transform = Transform3D(-0.9620134, -0.0361063, -0.27060416, -2.0788793e-10, 0.9912155, -0.13225639, 0.27300233, -0.12723242, -0.9535627, -1.7471651, 0.40866053, 14.344355)
|
||||
light_energy = 5.0
|
||||
light_specular = 0.0
|
||||
light_bake_mode = 0
|
||||
distance_fade_begin = 150.0
|
||||
distance_fade_length = 50.0
|
||||
spot_range = 200.0
|
||||
spot_attenuation = 0.2
|
||||
spot_angle = 15.0
|
||||
|
||||
[node name="SubwayTrainAudio" type="AudioStreamPlayer3D" parent="Subway"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, -0.742, -11.098)
|
||||
stream = ExtResource("3_4h0n7")
|
||||
unit_size = 100.0
|
||||
max_polyphony = 2
|
||||
panning_strength = 0.7
|
||||
bus = &"sfx"
|
||||
playback_type = 1
|
||||
|
||||
[node name="SubwayTrainAudioIntense" type="AudioStreamPlayer3D" parent="Subway"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, -0.802, 10.908)
|
||||
stream = ExtResource("3_4h0n7")
|
||||
attenuation_model = 1
|
||||
unit_size = 15.0
|
||||
max_polyphony = 2
|
||||
panning_strength = 0.9
|
||||
bus = &"sfx"
|
||||
playback_type = 1
|
||||
|
||||
[node name="TrainModel" parent="Subway" instance=ExtResource("1_2h2xx")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -3.4114173e-08, 0, -0.7804413)
|
||||
|
||||
[node name="LineLabelFront" type="Label3D" parent="Subway/TrainModel"]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -15.413577, 2.7434583, -6.737489e-07)
|
||||
text = "U0"
|
||||
font = ExtResource("10_3w708")
|
||||
font_size = 64
|
||||
|
||||
[node name="LineLabelBack" type="Label3D" parent="Subway/TrainModel"]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 15.410003, 2.7434583, 6.9981036e-07)
|
||||
text = "U0"
|
||||
font = ExtResource("10_3w708")
|
||||
font_size = 64
|
||||
|
||||
[node name="Collider" type="AnimatableBody3D" parent="Subway"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0, 0)
|
||||
input_ray_pickable = false
|
||||
sync_to_physics = false
|
||||
|
||||
[node name="FrontWallClosed" type="CollisionShape3D" parent="Subway/Collider"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.8395386, 1.4940796, -1.533)
|
||||
shape = SubResource("BoxShape3D_aacjs")
|
||||
|
||||
[node name="FrontWallOpen1" type="CollisionShape3D" parent="Subway/Collider"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.8054885, 1.4940796, -1.4447353)
|
||||
shape = SubResource("BoxShape3D_4h0n7")
|
||||
|
||||
[node name="FrontWallOpen2" type="CollisionShape3D" parent="Subway/Collider"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.442047, 1.4940796, -1.4447353)
|
||||
shape = SubResource("BoxShape3D_xhnml")
|
||||
|
||||
[node name="FrontWallOpen3" type="CollisionShape3D" parent="Subway/Collider"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.829376, 1.4940796, -1.4447353)
|
||||
shape = SubResource("BoxShape3D_5b47p")
|
||||
|
||||
[node name="RearWall" type="CollisionShape3D" parent="Subway/Collider"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.344, 1.457)
|
||||
shape = SubResource("BoxShape3D_aacjs")
|
||||
|
||||
[node name="DriverCabin1" type="CollisionShape3D" parent="Subway/Collider"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.448963, 1.0697384, 0)
|
||||
shape = SubResource("SphereShape3D_5jpg8")
|
||||
debug_color = Color(0, 0.46666667, 0.54901963, 0.9254902)
|
||||
|
||||
[node name="DriverCabin2" type="CollisionShape3D" parent="Subway/Collider"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.730333, 1.0697384, 0)
|
||||
shape = SubResource("SphereShape3D_5jpg8")
|
||||
debug_color = Color(0, 0.46666667, 0.54901963, 0.9254902)
|
||||
|
||||
[node name="TrainFloor" type="CollisionShape3D" parent="Subway/Collider"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.2, 0)
|
||||
shape = SubResource("BoxShape3D_q8slu")
|
||||
debug_color = Color(0.5375858, 0, 0.22143945, 1)
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -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]
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://dfkq0djtygmma
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -41,5 +41,5 @@ process/premult_alpha=false
|
|||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=2048
|
||||
process/size_limit=1024
|
||||
detect_3d/compress_to=0
|
||||
|
|
|
|||
|
|
@ -41,5 +41,5 @@ process/premult_alpha=false
|
|||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=2048
|
||||
process/size_limit=1024
|
||||
detect_3d/compress_to=0
|
||||
|
|
|
|||
BIN
src/base-environments/volunteer_room/scenes/FoM_xavier_therapie_1.wav (Stored with Git LFS)
BIN
src/base-environments/volunteer_room/scenes/FoM_xavier_therapie_1.wav (Stored with Git LFS)
Binary file not shown.
|
|
@ -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
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_abtq0"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_pcx8t"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_w4vem"]
|
||||
[ext_resource type="AudioStream" uid="uid://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="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_sh3ja"]
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ tracks/5/keys = {
|
|||
|
||||
[sub_resource type="Animation" id="Animation_ayw8a"]
|
||||
resource_name = "de"
|
||||
length = 86.0
|
||||
length = 66.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
|
|
@ -108,11 +108,11 @@ tracks/0/interp = 1
|
|||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 1.36178,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("5_0dsyx")
|
||||
"end_offset": 0.3525498,
|
||||
"start_offset": 1.6578125,
|
||||
"stream": ExtResource("5_86ec2")
|
||||
}],
|
||||
"times": PackedFloat32Array(1.16667)
|
||||
"times": PackedFloat32Array(2.2000003)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
|
|
@ -122,10 +122,10 @@ tracks/1/path = NodePath("../../..:progress")
|
|||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667, 4.73332, 6.03333, 11.6, 12.4, 15.8333, 16.4333, 18.9334, 19.6333, 24.5333, 25.6, 29, 30.3667, 36.1333, 39.4, 40.8, 42.2333, 44.6333, 45.2667, 47.0333, 49.2333, 53.4333, 54.6333, 57.1333, 57.8333, 61.1333, 63.2667, 66.5667, 67.5, 72.4597, 74.5, 77.2667, 78.4667, 85.2),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 1.23114, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.287175, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"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),
|
||||
"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/imported = false
|
||||
|
|
@ -134,8 +134,8 @@ tracks/2/path = NodePath("../../..")
|
|||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(24.8, 47.87, 61.7667, 74.0333, 85.2667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(18.9, 40.766666, 65.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
|
|
@ -144,12 +144,6 @@ tracks/2/keys = {
|
|||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"_on_text_finished"
|
||||
}]
|
||||
}
|
||||
|
|
@ -469,6 +463,7 @@ script = ExtResource("1_86ec2")
|
|||
scene_id = 8
|
||||
story_array = PackedStringArray("God I am so \"happy\" mom took care of everything at home. The dishes, the laundry, the trash, the groceries, the food.", "But guess what: when you are at university, they don\'t provide a mom with your dorm.", "And suddenly, you don\'t just need to study for your first semester, you need to learn to survive on your own. Good luck building good habits with that.", "I got really thin.", "I didn\'t really manage to eat at home, I didn\'t have the money to eat takeout all the time and oh my god:", "how do students manage to survive in a cafeteria?", "I mean: How do they manage to socialise, attend all the lectures, find relationships and even look passable with all that going on?", "Is it just me? I don\'t know.", "Who I am glad about tho is Jules. She has an eating order history and someday had enough of seeing my body crumble and decieded to basically adopt me.", "I could never really relate with her former eating discorder thoughts she was probably trying to get out of my head.", "But I can\'t argue against her coping strategies helping my body get the food it needed.")
|
||||
paragraph_lengths = PackedInt32Array(1, 2, 6, 8, 10)
|
||||
progress = -1.0
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_00crh"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_3iy8l"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_32a0r"]
|
||||
[ext_resource type="AudioStream" uid="uid://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="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_xkdnh"]
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ tracks/5/keys = {
|
|||
|
||||
[sub_resource type="Animation" id="Animation_ayw8a"]
|
||||
resource_name = "de"
|
||||
length = 86.0
|
||||
length = 92.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
|
|
@ -108,11 +108,11 @@ tracks/0/interp = 1
|
|||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 1.36178,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("5_bfggg")
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.3923047,
|
||||
"stream": ExtResource("5_x5h0q")
|
||||
}],
|
||||
"times": PackedFloat32Array(1.16667)
|
||||
"times": PackedFloat32Array(1.9333333)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
|
|
@ -122,10 +122,10 @@ tracks/1/path = NodePath("../../..:progress")
|
|||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667, 4.73332, 6.03333, 11.6, 12.4, 15.8333, 16.4333, 18.9334, 19.6333, 24.5333, 25.6, 29, 30.3667, 36.1333, 39.4, 40.8, 42.2333, 44.6333, 45.2667, 47.0333, 49.2333, 53.4333, 54.6333, 57.1333, 57.8333, 61.1333, 63.2667, 66.5667, 67.5, 72.4597, 74.5, 77.2667, 78.4667, 85.2),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 1.23114, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.287175, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"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),
|
||||
"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/imported = false
|
||||
|
|
@ -134,7 +134,7 @@ tracks/2/path = NodePath("../../..")
|
|||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
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),
|
||||
"values": [{
|
||||
"args": [],
|
||||
|
|
@ -469,6 +469,7 @@ script = ExtResource("1_ym0sv")
|
|||
scene_id = 6
|
||||
story_array = PackedStringArray("I sometimes wish I could go back in time to save myself from Lukas.", "Sometimes I even want to fight him one last time to make him feel how much he hurt me.", "I don\'t like these thoughts, because all they do is make my head spiral into an endless void of anger and doubt.", "So on a calm mind, I just hope he learned his lesson so his next love doesn\'t need to become a survivor.", "But do I regret being one?", "I mean it has made me go to therapy and that was a good thing.", "My therapist was pretty young and still in training.", "Talking to *him* about sex never really worked for me.", "So I still don\'t know what to do about my cravings. I\'d rather not have them but I can\'t deny they exist.", "At least he gave me the tools to figure it out on my own.", "Old thoughts are here to stay, he always said. But you can choose how to react.", "And while I choose to not react to my cravings for now, I can choose something different in the future.", "He also helped me manage the gauntlet that is an ADHD diagnosis. I suspect I wouldn\'t have the executive skills to get that on my own.", "So I guess I got my medication thanks to Lukas?", "And I can tell when to brace for my period because the weird urge to make my ex hit some very hard ground is quite specific.")
|
||||
paragraph_lengths = PackedInt32Array(2, 3, 4, 5, 8, 11, 12, 14)
|
||||
progress = -1.0
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
|
|
|||
|
|
@ -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
|
||||
BIN
src/base-environments/volunteer_room/sounds/FoM_xavier_DnD.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/volunteer_room/sounds/FoM_xavier_DnD.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -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
|
||||
Binary file not shown.
|
|
@ -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
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=49 format=3 uid="uid://flisupth27th"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dwbhei5kywqbd" path="res://volunteer_room_visuals.tscn" id="1_ln5pp"]
|
||||
[ext_resource type="Script" uid="uid://wiw2j1gw230e" path="res://base-environments/volunteer_room/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="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_fli74"]
|
||||
[ext_resource type="PackedScene" uid="uid://dreokijo757l1" path="res://logic-scenes/interactable/interactable.tscn" id="5_my8p4"]
|
||||
|
|
@ -201,11 +201,14 @@ func _on_environment_settings_update():
|
|||
|
||||
[node name="SharedFlat" type="Node3D"]
|
||||
script = ExtResource("1_wdfvq")
|
||||
id = 3
|
||||
|
||||
[node name="PlayerController" parent="." instance=ExtResource("2_upyac")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2.2023005, 0, 0.7319784)
|
||||
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")]
|
||||
|
||||
|
|
@ -226,53 +229,58 @@ shape = SubResource("CapsuleShape3D_2fihi")
|
|||
[node name="Collectables" type="Node3D" parent="."]
|
||||
|
||||
[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")
|
||||
|
||||
[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")
|
||||
|
||||
[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")
|
||||
|
||||
[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")
|
||||
billboard = false
|
||||
|
||||
[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")
|
||||
billboard = false
|
||||
|
||||
[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")
|
||||
billboard = false
|
||||
|
||||
[node name="UniversityInteractable" parent="Collectables" instance=ExtResource("5_my8p4")]
|
||||
transform = Transform3D(-4.371135e-08, 0, 0.9999991, 0, 1, 0, -0.9999991, 0, -4.371135e-08, -2.7745893, 1.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")
|
||||
billboard = false
|
||||
|
||||
[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")
|
||||
|
||||
[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")
|
||||
|
||||
[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")
|
||||
billboard = false
|
||||
|
||||
[node name="DoorInteractable" type="Node3D" parent="Collectables"]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.08276367, 1.3269348, 0.05317688)
|
||||
size = Vector3(6.132324, 2.9212036, 12.054474)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.08276367, 1.3269348, 0.09955597)
|
||||
size = Vector3(6.132324, 2.9212036, 12.147232)
|
||||
data = ExtResource("8_fli74")
|
||||
|
||||
[node name="Collision" type="Node3D" parent="."]
|
||||
|
|
@ -374,7 +382,7 @@ shape = SubResource("BoxShape3D_2ixm0")
|
|||
[node name="Scenes" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4831846, 0, 2.44453)
|
||||
|
||||
[node name="ScenePlayer" type="AnimationPlayer" parent="Scenes"]
|
||||
[node name="SceneAnimationPlayer" type="AnimationPlayer" parent="Scenes"]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_br20t")
|
||||
|
|
@ -406,3 +414,5 @@ script = SubResource("GDScript_ri8p0")
|
|||
environment = SubResource("Environment_pdgua")
|
||||
camera_attributes = SubResource("CameraAttributesPractical_0bxa6")
|
||||
script = SubResource("GDScript_3k3rl")
|
||||
|
||||
[editable path="PlayerController"]
|
||||
|
|
|
|||
|
|
@ -26,5 +26,5 @@ func scene_finished(_id: Scenes.id, _repeat: bool):
|
|||
queue("RESET")
|
||||
|
||||
func play(anin_name: StringName = "", a: float = -1, b: float = 1, c: bool = false) -> void:
|
||||
print_debug("anim player accessed!")
|
||||
print("anim player accessed!")
|
||||
super.play(anin_name, a, b, c)
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ edit/normalize=false
|
|||
edit/loop_mode=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ edit/normalize=false
|
|||
edit/loop_mode=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ edit/normalize=false
|
|||
edit/loop_mode=2
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ edit/normalize=false
|
|||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
|
|
|
|||
|
|
@ -1,50 +1,11 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://cg70r0102t8nl"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d2lwghq7ye7ng" path="res://base-environments/youth_room/fairylights_animation_player.gd" id="1_mdd6t"]
|
||||
[ext_resource type="Texture2D" uid="uid://i75aktvgsdwg" path="res://base-environments/youth_room/import/textures/wires_normal.png" id="1_p3lcj"]
|
||||
[ext_resource type="Texture2D" uid="uid://chisldkpt6bf5" path="res://base-environments/youth_room/import/textures/wires_albedo.png" id="1_xsr58"]
|
||||
[ext_resource type="Script" uid="uid://f26vfrf8n4l" path="res://addons/LineRenderer/line_renderer.gd" id="2_javfj"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://f5fr2e5gq313" path="res://base-environments/youth_room/shaders/fairy_light_diode.res" id="4_qh8yy"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_2caij"]
|
||||
script/source = "
|
||||
extends Node3D
|
||||
|
||||
@export var light_array: Array[Vector3]:
|
||||
set(points):
|
||||
light_array = points
|
||||
if is_inside_tree():
|
||||
rebuild()
|
||||
|
||||
@onready var wires:LineRenderer3D = $wires
|
||||
@onready var diodes:MultiMeshInstance3D = $diodes
|
||||
@export var rng_seed:int = 42
|
||||
var rng = RandomNumberGenerator.new()
|
||||
@export var size:float = 0.1:
|
||||
set(new_size):
|
||||
size = new_size
|
||||
rebuild()
|
||||
if is_inside_tree():
|
||||
wires.end_thickness = size*0.1
|
||||
wires.start_thickness = size*0.1
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
rebuild()
|
||||
|
||||
func rebuild():
|
||||
rng.seed = rng_seed
|
||||
rng.state = 0
|
||||
for child in wires.get_children(): child.free()
|
||||
wires.points = light_array
|
||||
diodes.multimesh.instance_count = light_array.size()
|
||||
var meshBuffer:PackedFloat32Array
|
||||
for point in light_array:
|
||||
var base:Basis = Basis(Vector3(rng.randf_range(-1, 1), rng.randf_range(-1, 1), rng.randf_range(-1, 1)).normalized(), rng.randf_range(0, PI*2))
|
||||
base = base.scaled(Vector3(size, size, size))
|
||||
meshBuffer.append_array([base.x.x, base.x.y, base.x.z, point.x, base.y.x, base.y.y, base.y.z, point.y, base.z.x, base.z.y, base.z.z, point.z])
|
||||
diodes.multimesh.buffer = meshBuffer
|
||||
"
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5ca5e"]
|
||||
transparency = 2
|
||||
alpha_scissor_threshold = 0.5
|
||||
|
|
@ -55,7 +16,7 @@ albedo_texture = ExtResource("1_xsr58")
|
|||
normal_enabled = true
|
||||
normal_texture = ExtResource("1_p3lcj")
|
||||
|
||||
[sub_resource type="ImmediateMesh" id="ImmediateMesh_30v5y"]
|
||||
[sub_resource type="ImmediateMesh" id="ImmediateMesh_hnqbx"]
|
||||
|
||||
[sub_resource type="MultiMesh" id="MultiMesh_ic3h7"]
|
||||
transform_format = 1
|
||||
|
|
@ -64,13 +25,13 @@ mesh = ExtResource("4_qh8yy")
|
|||
buffer = PackedFloat32Array(0.09981685, 0.0048210253, -0.0036542376, -0.545, -0.004285584, 0.09898752, 0.013531633, 0.915, 0.0042696027, -0.013350244, 0.09901284, 1.035, 0.07000746, -0.035884943, 0.061735135, -0.47, 0.052533384, 0.084440574, -0.010489702, 0.855, -0.048365276, 0.03977513, 0.077966265, 0.905, 0.004258701, 0.09203124, -0.038885914, -0.44, -0.0057153255, 0.039081898, 0.09186915, 0.871, 0.09974567, -0.0016899735, 0.00692427, 0.78, 0.021999925, -0.08708059, -0.0439656, -0.385, 0.08009742, 0.041850984, -0.042812362, 0.91, 0.055681296, -0.025796626, 0.0789565, 0.69, 0.09233354, 0.028834114, -0.025359664, -0.38, -0.035966184, 0.08807498, -0.0308096, 0.995, 0.013451844, 0.0375685, 0.091693275, 0.595, 0.041037153, 0.023612177, 0.08808186, -0.39, -0.08183642, -0.033079606, 0.0469951, 0.925, 0.040233698, -0.091368504, 0.005748424, 0.465, 0.096389726, 0.024975834, -0.009231994, -0.364, -0.025152955, 0.09678175, -0.0007887144, 0.86, 0.008737898, 0.0030823578, 0.09956982, 0.211, 0.09051618, -0.035352834, 0.023600822, -0.295, 0.009805123, 0.07139074, 0.06933414, 0.82, -0.04136038, -0.060444523, 0.06808656, 0.06, 0.099969886, -0.00044002375, 0.0024142524, -0.255, 0.00037742994, 0.099965714, 0.0025912046, 0.805, -0.0024248264, -0.0025813123, 0.09993727, -0.15, 0.06669522, -0.074469164, 0.002468294, -0.175, 0.066979624, 0.061372936, 0.04179824, 0.83, -0.03264166, -0.026224172, 0.090811975, -0.355, 0.008275211, 0.052801844, -0.08451915, -0.135, 0.09518374, -0.029311886, -0.008992719, 0.955, -0.029522488, -0.07970432, -0.052684378, -0.515, 0.09839882, -0.010216827, 0.014604448, -0.025, 0.0064255283, 0.09676424, 0.024400702, 0.78, -0.01662486, -0.023071585, 0.09587135, -0.615, -0.034177337, -0.07165746, -0.06080394, 0.115, 0.014493376, 0.059907008, -0.07874703, 0.63, 0.092853926, -0.035726182, -0.010089032, -0.695, -0.023289097, -0.071124874, 0.06632399, 0.245, 0.07954721, -0.053165104, -0.02908116, 0.555, 0.055945147, 0.045986135, 0.06895951, -0.745, -0.05999255, -0.025455302, -0.07584802, 0.37, -0.07084022, 0.060961187, 0.03557245, 0.595, 0.03718277, 0.07507172, -0.054604758, -0.805, 0.010777453, 0.09121187, 0.03955051, 0.455, 0.027344523, -0.04096749, 0.08702841, 0.745, 0.09558308, 0.0014354527, -0.029356688, -0.84, 0.0745873, 0.007008575, -0.06623908, 0.505, -0.03662421, 0.08737851, -0.03199474, 0.89, 0.055636343, 0.048123557, 0.067740105, -0.87, -0.052477725, -0.040816348, -0.07470016, 0.445, -0.07717951, -0.014203754, 0.061980464, 1.175, -0.035908382, 0.090179145, -0.024048049, -0.87, 0.065261625, -0.074675135, 0.012827498, 0.26, -0.071961984, -0.06638678, -0.020353615, 1.28, 0.023714853, 0.004052181, -0.0970628, -0.815, 0.04776166, -0.086053446, 0.017709581, 0.125, -0.045023393, -0.0066644074, 0.08904202, 1.35, -0.075443484, -0.050501395, -0.04192721, -0.8, 0.05265527, -0.07790997, -0.034021474, -0.037, -0.057078417, -0.0027407527, -0.08206426, 1.479, 0.06300379, 0.06263008, -0.04591292, -0.834, 0.07262851, 0.053707976, 0.042901676, -0.2, -0.03499957, 0.082609534, -0.044166677, 1.601, -0.0591619, 0.017062197, 0.07879563, -0.851, 0.058154207, 0.02977618, -0.07570646, -0.359, -0.046415366, 0.0885717, -0.00081792625, 1.769, 0.06681094, 0.035615087, 0.06532889, -0.85, 0.08759906, -0.04253812, 0.022735743, -0.5, 0.033643764, 0.0876653, 0.034393217, 1.949, -0.034561586, -0.022478973, 0.091105394, -0.85, 0.09468309, -0.029932225, -0.011797212, -0.594, 0.019968888, 0.025923345, 0.09449457, 2.126, -0.0252261, -0.09182615, 0.030522157, -0.85, 0.062641285, -0.07662324, 0.014316082, -0.634, 0.07794788, 0.0616799, -0.010941619, 2.238, -0.0004463233, 0.01801305, 0.098363265, -0.85, 0.051075388, -0.039760582, 0.07622598, -0.634, -0.015580878, 0.0829139, 0.053689104, 2.035, -0.08454904, -0.0392986, 0.03615355, -0.85, -0.055891007, -0.07219604, -0.040791273, -0.614, -0.07006708, 0.014808285, 0.06979484, 1.875, -0.044348616, 0.06759029, -0.058862157, -0.85, -0.05453172, 0.05173852, -0.06595012, -0.65, 0.038997572, 0.085303895, 0.034676112, 1.655, 0.07419893, -0.006809469, -0.06669445, -0.85, 0.08583314, 0.043052655, -0.027913136, -0.65, 0.030251084, -0.0864024, -0.04024298, 1.475, -0.04144329, 0.026097784, -0.08718578, -0.87)
|
||||
|
||||
[node name="fairylights" type="Node3D"]
|
||||
script = SubResource("GDScript_2caij")
|
||||
script = ExtResource("1_mdd6t")
|
||||
light_array = Array[Vector3]([Vector3(0, 0, 0), Vector3(0, 1, 0)])
|
||||
|
||||
[node name="wires" type="MeshInstance3D" parent="."]
|
||||
material_override = SubResource("StandardMaterial3D_5ca5e")
|
||||
gi_mode = 0
|
||||
mesh = SubResource("ImmediateMesh_30v5y")
|
||||
mesh = SubResource("ImmediateMesh_hnqbx")
|
||||
script = ExtResource("2_javfj")
|
||||
points = Array[Vector3]([Vector3(0, 0, 0), Vector3(0, 1, 0)])
|
||||
start_thickness = 0.01
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
|
||||
extends Node3D
|
||||
|
||||
@export var light_array: Array[Vector3]:
|
||||
set(points):
|
||||
light_array = points
|
||||
if is_inside_tree():
|
||||
rebuild()
|
||||
|
||||
@onready var wires:LineRenderer3D = $wires
|
||||
@onready var diodes:MultiMeshInstance3D = $diodes
|
||||
@export var rng_seed:int = 42
|
||||
var rng = RandomNumberGenerator.new()
|
||||
@export var size:float = 0.1:
|
||||
set(new_size):
|
||||
size = new_size
|
||||
rebuild()
|
||||
if is_inside_tree():
|
||||
wires.end_thickness = size*0.1
|
||||
wires.start_thickness = size*0.1
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
rebuild()
|
||||
|
||||
func rebuild():
|
||||
rng.seed = rng_seed
|
||||
rng.state = 0
|
||||
for child in wires.get_children(): child.free()
|
||||
wires.points = light_array
|
||||
diodes.multimesh.instance_count = light_array.size()
|
||||
var meshBuffer:PackedFloat32Array
|
||||
for point in light_array:
|
||||
var base:Basis = Basis(Vector3(rng.randf_range(-1, 1), rng.randf_range(-1, 1), rng.randf_range(-1, 1)).normalized(), rng.randf_range(0, PI*2))
|
||||
base = base.scaled(Vector3(size, size, size))
|
||||
meshBuffer.append_array([base.x.x, base.x.y, base.x.z, point.x, base.y.x, base.y.y, base.y.z, point.y, base.z.x, base.z.y, base.z.z, point.z])
|
||||
diodes.multimesh.buffer = meshBuffer
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://d2lwghq7ye7ng
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_resource type="ShaderMaterial" format=3 uid="uid://ct7uc5i5yp5qf"]
|
||||
[gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://ct7uc5i5yp5qf"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c61ekclk8loxn" path="res://base-environments/youth_room/import/textures/red_plaster_weathered_rough_4k.png" id="1_2nxvx"]
|
||||
[ext_resource type="Texture2D" uid="uid://kf0vfm4sf0o3" path="res://base-environments/youth_room/import/textures/red_plaster_weathered_nor_gl_4k.png" id="2_80i0p"]
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue