Compare commits
7 Commits
53107b5f71
...
35004684f4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
35004684f4 | ||
| fb8a2da4ff | |||
| dc1a6686bc | |||
|
|
fadf0cb769 | ||
|
|
f1acb6e3e9 | ||
|
|
6a1a663020 | ||
| c992950789 |
@@ -3,20 +3,21 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cl03vrbj5wsjk"
|
uid="uid://cl03vrbj5wsjk"
|
||||||
path="res://.godot/imported/expand-icon.svg-26099b197ab0f314e2253848fcc22962.ctex"
|
path.s3tc="res://.godot/imported/expand-icon.svg-26099b197ab0f314e2253848fcc22962.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"has_editor_variant": true,
|
"has_editor_variant": true,
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/dialogic/Editor/Images/Pieces/expand-icon.svg"
|
source_file="res://addons/dialogic/Editor/Images/Pieces/expand-icon.svg"
|
||||||
dest_files=["res://.godot/imported/expand-icon.svg-26099b197ab0f314e2253848fcc22962.ctex"]
|
dest_files=["res://.godot/imported/expand-icon.svg-26099b197ab0f314e2253848fcc22962.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -24,7 +25,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -38,7 +39,7 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
editor/scale_with_editor_scale=true
|
editor/scale_with_editor_scale=true
|
||||||
editor/convert_colors_with_editor_theme=true
|
editor/convert_colors_with_editor_theme=true
|
||||||
|
|||||||
@@ -3,20 +3,21 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://qx5bntelnslj"
|
uid="uid://qx5bntelnslj"
|
||||||
path="res://.godot/imported/update_portrait.svg-b90fa6163d3720d34df8578ce2aa35e1.ctex"
|
path.s3tc="res://.godot/imported/update_portrait.svg-b90fa6163d3720d34df8578ce2aa35e1.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"has_editor_variant": true,
|
"has_editor_variant": true,
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://addons/dialogic/Modules/Character/update_portrait.svg"
|
source_file="res://addons/dialogic/Modules/Character/update_portrait.svg"
|
||||||
dest_files=["res://.godot/imported/update_portrait.svg-b90fa6163d3720d34df8578ce2aa35e1.ctex"]
|
dest_files=["res://.godot/imported/update_portrait.svg-b90fa6163d3720d34df8578ce2aa35e1.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -24,7 +25,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -38,7 +39,7 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
editor/scale_with_editor_scale=true
|
editor/scale_with_editor_scale=true
|
||||||
editor/convert_colors_with_editor_theme=true
|
editor/convert_colors_with_editor_theme=true
|
||||||
|
|||||||
@@ -24,18 +24,18 @@ var portrait := ""
|
|||||||
|
|
||||||
## Used to set the character resource from the unique name identifier and vice versa
|
## Used to set the character resource from the unique name identifier and vice versa
|
||||||
var character_identifier: String:
|
var character_identifier: String:
|
||||||
get:
|
get:
|
||||||
if character and not "{" in character_identifier:
|
if character and not "{" in character_identifier:
|
||||||
var identifier := character.get_identifier()
|
var identifier := character.get_identifier()
|
||||||
if not identifier.is_empty():
|
if not identifier.is_empty():
|
||||||
return identifier
|
return identifier
|
||||||
return character_identifier
|
return character_identifier
|
||||||
set(value):
|
set(value):
|
||||||
character_identifier = value
|
character_identifier = value
|
||||||
character = DialogicResourceUtil.get_character_resource(value)
|
character = DialogicResourceUtil.get_character_resource(value)
|
||||||
if Engine.is_editor_hint() and ((not character) or (character and not character.portraits.has(portrait))):
|
if Engine.is_editor_hint() and ((not character) or (character and not character.portraits.has(portrait))):
|
||||||
portrait = ""
|
portrait = ""
|
||||||
ui_update_needed.emit()
|
ui_update_needed.emit()
|
||||||
|
|
||||||
var regex := RegEx.create_from_string(r'\s*((")?(?<name>(?(2)[^"\n]*|[^(: \n]*))(?(2)"|)(\W*(?<portrait>\(.*\)))?\s*(?<!\\):)?(?<text>(.|\n)*)')
|
var regex := RegEx.create_from_string(r'\s*((")?(?<name>(?(2)[^"\n]*|[^(: \n]*))(?(2)"|)(\W*(?<portrait>\(.*\)))?\s*(?<!\\):)?(?<text>(.|\n)*)')
|
||||||
var split_regex := RegEx.create_from_string(r"((\[n\]|\[n\+\])?((?!(\[n\]|\[n\+\]))(.|\n))+)")
|
var split_regex := RegEx.create_from_string(r"((\[n\]|\[n\+\])?((?!(\[n\]|\[n\+\]))(.|\n))+)")
|
||||||
@@ -49,225 +49,225 @@ signal advance
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
func _clear_state() -> void:
|
func _clear_state() -> void:
|
||||||
dialogic.current_state_info.erase('text_sub_idx')
|
dialogic.current_state_info.erase('text_sub_idx')
|
||||||
_disconnect_signals()
|
_disconnect_signals()
|
||||||
|
|
||||||
|
|
||||||
func _execute() -> void:
|
func _execute() -> void:
|
||||||
if text.is_empty():
|
if text.is_empty():
|
||||||
finish()
|
finish()
|
||||||
return
|
return
|
||||||
|
|
||||||
## If the speaker is provided as an expression, parse it now.
|
## If the speaker is provided as an expression, parse it now.
|
||||||
if "{" in character_identifier:
|
if "{" in character_identifier:
|
||||||
character = null
|
character = null
|
||||||
var character_name: String = dialogic.Expressions.execute_string(character_identifier)
|
var character_name: String = dialogic.Expressions.execute_string(character_identifier)
|
||||||
get_or_create_character(character_name)
|
get_or_create_character(character_name)
|
||||||
|
|
||||||
## Change Portrait and Active Speaker
|
## Change Portrait and Active Speaker
|
||||||
if dialogic.has_subsystem("Portraits"):
|
if dialogic.has_subsystem("Portraits"):
|
||||||
if character:
|
if character:
|
||||||
|
|
||||||
dialogic.Portraits.change_speaker(character, portrait)
|
dialogic.Portraits.change_speaker(character, portrait)
|
||||||
|
|
||||||
if portrait and dialogic.Portraits.is_character_joined(character):
|
if portrait and dialogic.Portraits.is_character_joined(character):
|
||||||
dialogic.Portraits.change_character_portrait(character, portrait)
|
dialogic.Portraits.change_character_portrait(character, portrait)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
dialogic.Portraits.change_speaker(null)
|
dialogic.Portraits.change_speaker(null)
|
||||||
|
|
||||||
## Change and Type Sound Mood
|
## Change and Type Sound Mood
|
||||||
if character:
|
if character:
|
||||||
dialogic.Text.update_name_label(character)
|
dialogic.Text.update_name_label(character)
|
||||||
|
|
||||||
var current_portrait: String = portrait
|
var current_portrait: String = portrait
|
||||||
if portrait.is_empty():
|
if portrait.is_empty():
|
||||||
current_portrait = dialogic.current_state_info["portraits"].get(character.get_identifier(), {}).get("portrait", "")
|
current_portrait = dialogic.current_state_info["portraits"].get(character.get_identifier(), {}).get("portrait", "")
|
||||||
|
|
||||||
var current_portrait_sound_mood: String = character.portraits.get(current_portrait, {}).get("sound_mood", "")
|
var current_portrait_sound_mood: String = character.portraits.get(current_portrait, {}).get("sound_mood", "")
|
||||||
dialogic.Text.update_typing_sound_mood_from_character(character, current_portrait_sound_mood)
|
dialogic.Text.update_typing_sound_mood_from_character(character, current_portrait_sound_mood)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
dialogic.Text.update_name_label(null)
|
dialogic.Text.update_name_label(null)
|
||||||
dialogic.Text.update_typing_sound_mood()
|
dialogic.Text.update_typing_sound_mood()
|
||||||
|
|
||||||
|
|
||||||
## Handle style changes
|
## Handle style changes
|
||||||
if dialogic.has_subsystem("Styles"):
|
if dialogic.has_subsystem("Styles"):
|
||||||
var current_base_style: String = dialogic.current_state_info.get("base_style")
|
var current_base_style: String = dialogic.current_state_info.get("base_style")
|
||||||
var current_style: String = dialogic.current_state_info.get("style", "")
|
var current_style: String = dialogic.current_state_info.get("style", "")
|
||||||
var character_style: String = "" if not character else character.custom_info.get("style", "")
|
var character_style: String = "" if not character else character.custom_info.get("style", "")
|
||||||
|
|
||||||
## Change back to base style, if another characters style is currently used
|
## Change back to base style, if another characters style is currently used
|
||||||
if (not character or character_style.is_empty()) and (current_base_style != current_style):
|
if (not character or character_style.is_empty()) and (current_base_style != current_style):
|
||||||
dialogic.Styles.change_style(dialogic.current_state_info.get("base_style", "Default"))
|
dialogic.Styles.change_style(dialogic.current_state_info.get("base_style", "Default"))
|
||||||
await dialogic.get_tree().process_frame
|
await dialogic.get_tree().process_frame
|
||||||
|
|
||||||
## Change to the characters style if this character has one
|
## Change to the characters style if this character has one
|
||||||
elif character and not character_style.is_empty():
|
elif character and not character_style.is_empty():
|
||||||
dialogic.Styles.change_style(character_style, false)
|
dialogic.Styles.change_style(character_style, false)
|
||||||
await dialogic.get_tree().process_frame
|
await dialogic.get_tree().process_frame
|
||||||
|
|
||||||
_connect_signals()
|
_connect_signals()
|
||||||
|
|
||||||
var character_name_text := dialogic.Text.get_character_name_parsed(character)
|
var character_name_text := dialogic.Text.get_character_name_parsed(character)
|
||||||
var final_text: String = get_property_translated('text')
|
var final_text: String = get_property_translated('text')
|
||||||
if ProjectSettings.get_setting('dialogic/text/split_at_new_lines', false):
|
if ProjectSettings.get_setting('dialogic/text/split_at_new_lines', false):
|
||||||
match ProjectSettings.get_setting('dialogic/text/split_at_new_lines_as', 0):
|
match ProjectSettings.get_setting('dialogic/text/split_at_new_lines_as', 0):
|
||||||
0:
|
0:
|
||||||
final_text = final_text.replace('\n', '[n]')
|
final_text = final_text.replace('\n', '[n]')
|
||||||
1:
|
1:
|
||||||
final_text = final_text.replace('\n', '[n+][br]')
|
final_text = final_text.replace('\n', '[n+][br]')
|
||||||
|
|
||||||
var split_text := []
|
var split_text := []
|
||||||
for i in split_regex.search_all(final_text):
|
for i in split_regex.search_all(final_text):
|
||||||
split_text.append([i.get_string().trim_prefix('[n]').trim_prefix('[n+]')])
|
split_text.append([i.get_string().trim_prefix('[n]').trim_prefix('[n+]')])
|
||||||
split_text[-1].append(i.get_string().begins_with('[n+]'))
|
split_text[-1].append(i.get_string().begins_with('[n+]'))
|
||||||
|
|
||||||
dialogic.current_state_info['text_sub_idx'] = dialogic.current_state_info.get('text_sub_idx', -1)
|
dialogic.current_state_info['text_sub_idx'] = dialogic.current_state_info.get('text_sub_idx', -1)
|
||||||
|
|
||||||
var reveal_next_segment: bool = dialogic.current_state_info['text_sub_idx'] == -1
|
var reveal_next_segment: bool = dialogic.current_state_info['text_sub_idx'] == -1
|
||||||
|
|
||||||
for section_idx in range(min(max(0, dialogic.current_state_info['text_sub_idx']), len(split_text)-1), len(split_text)):
|
for section_idx in range(min(max(0, dialogic.current_state_info['text_sub_idx']), len(split_text)-1), len(split_text)):
|
||||||
dialogic.Inputs.block_input(ProjectSettings.get_setting('dialogic/text/text_reveal_skip_delay', 0.1))
|
dialogic.Inputs.block_input(ProjectSettings.get_setting('dialogic/text/text_reveal_skip_delay', 0.1))
|
||||||
|
|
||||||
if reveal_next_segment:
|
if reveal_next_segment:
|
||||||
dialogic.Text.hide_next_indicators()
|
dialogic.Text.hide_next_indicators()
|
||||||
|
|
||||||
dialogic.current_state_info['text_sub_idx'] = section_idx
|
dialogic.current_state_info['text_sub_idx'] = section_idx
|
||||||
|
|
||||||
var segment: String = dialogic.Text.parse_text(split_text[section_idx][0], 0)
|
var segment: String = dialogic.Text.parse_text(split_text[section_idx][0], 0)
|
||||||
var is_append: bool = split_text[section_idx][1]
|
var is_append: bool = split_text[section_idx][1]
|
||||||
|
|
||||||
final_text = ProjectSettings.get_setting("dialogic/text/dialog_text_prefix", "")+segment
|
final_text = ProjectSettings.get_setting("dialogic/text/dialog_text_prefix", "")+segment
|
||||||
dialogic.Text.about_to_show_text.emit({'text':final_text, 'character':character, 'portrait':portrait, 'append': is_append})
|
dialogic.Text.about_to_show_text.emit({'text':final_text, 'character':character, 'portrait':portrait, 'append': is_append})
|
||||||
|
|
||||||
await dialogic.Text.update_textbox(final_text, false)
|
await dialogic.Text.update_textbox(final_text, false)
|
||||||
|
|
||||||
state = States.REVEALING
|
state = States.REVEALING
|
||||||
_try_play_current_line_voice()
|
_try_play_current_line_voice()
|
||||||
final_text = dialogic.Text.update_dialog_text(final_text, false, is_append)
|
final_text = dialogic.Text.update_dialog_text(final_text, false, is_append)
|
||||||
|
|
||||||
dialogic.Text.text_started.emit({'text':final_text, 'character':character, 'portrait':portrait, 'append': is_append})
|
dialogic.Text.text_started.emit({'text':final_text, 'character':character, 'portrait':portrait, 'append': is_append})
|
||||||
|
|
||||||
_mark_as_read(character_name_text, final_text)
|
_mark_as_read(character_name_text, final_text)
|
||||||
|
|
||||||
# We must skip text animation before we potentially return when there
|
# We must skip text animation before we potentially return when there
|
||||||
# is a Choice event.
|
# is a Choice event.
|
||||||
if dialogic.Inputs.auto_skip.enabled:
|
if dialogic.Inputs.auto_skip.enabled:
|
||||||
dialogic.Text.skip_text_reveal()
|
dialogic.Text.skip_text_reveal()
|
||||||
else:
|
else:
|
||||||
await dialogic.Text.text_finished
|
await dialogic.Text.text_finished
|
||||||
|
|
||||||
state = States.IDLE
|
state = States.IDLE
|
||||||
else:
|
else:
|
||||||
reveal_next_segment = true
|
reveal_next_segment = true
|
||||||
|
|
||||||
# Handling potential Choice Events.
|
# Handling potential Choice Events.
|
||||||
if section_idx == len(split_text)-1 and dialogic.has_subsystem('Choices') and dialogic.Choices.is_question(dialogic.current_event_idx):
|
if section_idx == len(split_text)-1 and dialogic.has_subsystem('Choices') and dialogic.Choices.is_question(dialogic.current_event_idx):
|
||||||
dialogic.Text.show_next_indicators(true)
|
dialogic.Text.show_next_indicators(true)
|
||||||
|
|
||||||
finish()
|
finish()
|
||||||
return
|
return
|
||||||
|
|
||||||
elif dialogic.Inputs.auto_advance.is_enabled():
|
elif dialogic.Inputs.auto_advance.is_enabled():
|
||||||
dialogic.Text.show_next_indicators(false, true)
|
dialogic.Text.show_next_indicators(false, true)
|
||||||
dialogic.Inputs.auto_advance.start()
|
dialogic.Inputs.auto_advance.start()
|
||||||
else:
|
else:
|
||||||
dialogic.Text.show_next_indicators()
|
dialogic.Text.show_next_indicators()
|
||||||
|
|
||||||
if section_idx == len(split_text)-1:
|
if section_idx == len(split_text)-1:
|
||||||
state = States.DONE
|
state = States.DONE
|
||||||
|
|
||||||
# If Auto-Skip is enabled and there are multiple parts of this text
|
# If Auto-Skip is enabled and there are multiple parts of this text
|
||||||
# we need to skip the text after the defined time per event.
|
# we need to skip the text after the defined time per event.
|
||||||
if dialogic.Inputs.auto_skip.enabled:
|
if dialogic.Inputs.auto_skip.enabled:
|
||||||
await dialogic.Inputs.start_autoskip_timer()
|
await dialogic.Inputs.start_autoskip_timer()
|
||||||
|
|
||||||
# Check if Auto-Skip is still enabled.
|
# Check if Auto-Skip is still enabled.
|
||||||
if not dialogic.Inputs.auto_skip.enabled:
|
if not dialogic.Inputs.auto_skip.enabled:
|
||||||
await advance
|
await advance
|
||||||
|
|
||||||
else:
|
else:
|
||||||
await advance
|
await advance
|
||||||
|
|
||||||
|
|
||||||
finish()
|
finish()
|
||||||
|
|
||||||
|
|
||||||
func _mark_as_read(character_name_text: String, final_text: String) -> void:
|
func _mark_as_read(character_name_text: String, final_text: String) -> void:
|
||||||
if dialogic.has_subsystem('History'):
|
if dialogic.has_subsystem('History'):
|
||||||
if character:
|
if character:
|
||||||
dialogic.History.store_simple_history_entry(final_text, event_name, {'character':character_name_text, 'character_color':character.color})
|
dialogic.History.store_simple_history_entry(final_text, event_name, {'character':character_name_text, 'character_color':character.color})
|
||||||
else:
|
else:
|
||||||
dialogic.History.store_simple_history_entry(final_text, event_name)
|
dialogic.History.store_simple_history_entry(final_text, event_name)
|
||||||
dialogic.History.mark_event_as_visited()
|
dialogic.History.mark_event_as_visited()
|
||||||
|
|
||||||
|
|
||||||
func _connect_signals() -> void:
|
func _connect_signals() -> void:
|
||||||
if not dialogic.Inputs.dialogic_action.is_connected(_on_dialogic_input_action):
|
if not dialogic.Inputs.dialogic_action.is_connected(_on_dialogic_input_action):
|
||||||
dialogic.Inputs.dialogic_action.connect(_on_dialogic_input_action)
|
dialogic.Inputs.dialogic_action.connect(_on_dialogic_input_action)
|
||||||
|
|
||||||
dialogic.Inputs.auto_skip.toggled.connect(_on_auto_skip_enable)
|
dialogic.Inputs.auto_skip.toggled.connect(_on_auto_skip_enable)
|
||||||
|
|
||||||
if not dialogic.Inputs.auto_advance.autoadvance.is_connected(_on_dialogic_input_autoadvance):
|
if not dialogic.Inputs.auto_advance.autoadvance.is_connected(_on_dialogic_input_autoadvance):
|
||||||
dialogic.Inputs.auto_advance.autoadvance.connect(_on_dialogic_input_autoadvance)
|
dialogic.Inputs.auto_advance.autoadvance.connect(_on_dialogic_input_autoadvance)
|
||||||
|
|
||||||
|
|
||||||
## If the event is done, this method can clean-up signal connections.
|
## If the event is done, this method can clean-up signal connections.
|
||||||
func _disconnect_signals() -> void:
|
func _disconnect_signals() -> void:
|
||||||
if dialogic.Inputs.dialogic_action.is_connected(_on_dialogic_input_action):
|
if dialogic.Inputs.dialogic_action.is_connected(_on_dialogic_input_action):
|
||||||
dialogic.Inputs.dialogic_action.disconnect(_on_dialogic_input_action)
|
dialogic.Inputs.dialogic_action.disconnect(_on_dialogic_input_action)
|
||||||
if dialogic.Inputs.auto_advance.autoadvance.is_connected(_on_dialogic_input_autoadvance):
|
if dialogic.Inputs.auto_advance.autoadvance.is_connected(_on_dialogic_input_autoadvance):
|
||||||
dialogic.Inputs.auto_advance.autoadvance.disconnect(_on_dialogic_input_autoadvance)
|
dialogic.Inputs.auto_advance.autoadvance.disconnect(_on_dialogic_input_autoadvance)
|
||||||
if dialogic.Inputs.auto_skip.toggled.is_connected(_on_auto_skip_enable):
|
if dialogic.Inputs.auto_skip.toggled.is_connected(_on_auto_skip_enable):
|
||||||
dialogic.Inputs.auto_skip.toggled.disconnect(_on_auto_skip_enable)
|
dialogic.Inputs.auto_skip.toggled.disconnect(_on_auto_skip_enable)
|
||||||
|
|
||||||
|
|
||||||
## Tries to play the voice clip for the current line.
|
## Tries to play the voice clip for the current line.
|
||||||
func _try_play_current_line_voice() -> void:
|
func _try_play_current_line_voice() -> void:
|
||||||
# If Auto-Skip is enabled and we skip voice clips, we don't want to play.
|
# If Auto-Skip is enabled and we skip voice clips, we don't want to play.
|
||||||
if (dialogic.Inputs.auto_skip.enabled
|
if (dialogic.Inputs.auto_skip.enabled
|
||||||
and dialogic.Inputs.auto_skip.skip_voice):
|
and dialogic.Inputs.auto_skip.skip_voice):
|
||||||
return
|
return
|
||||||
|
|
||||||
# Plays the audio region for the current line.
|
# Plays the audio region for the current line.
|
||||||
if (dialogic.has_subsystem('Voice')
|
if (dialogic.has_subsystem('Voice')
|
||||||
and dialogic.Voice.is_voiced(dialogic.current_event_idx)):
|
and dialogic.Voice.is_voiced(dialogic.current_event_idx)):
|
||||||
dialogic.Voice.play_voice()
|
dialogic.Voice.play_voice()
|
||||||
|
|
||||||
|
|
||||||
func _on_dialogic_input_action() -> void:
|
func _on_dialogic_input_action() -> void:
|
||||||
match state:
|
match state:
|
||||||
States.REVEALING:
|
States.REVEALING:
|
||||||
if dialogic.Text.is_text_reveal_skippable():
|
if dialogic.Text.is_text_reveal_skippable():
|
||||||
dialogic.Text.skip_text_reveal()
|
dialogic.Text.skip_text_reveal()
|
||||||
dialogic.Inputs.stop_timers()
|
dialogic.Inputs.stop_timers()
|
||||||
_:
|
_:
|
||||||
if dialogic.Inputs.manual_advance.is_enabled():
|
if dialogic.Inputs.manual_advance.is_enabled():
|
||||||
advance.emit()
|
advance.emit()
|
||||||
dialogic.Inputs.stop_timers()
|
dialogic.Inputs.stop_timers()
|
||||||
|
|
||||||
|
|
||||||
func _on_dialogic_input_autoadvance() -> void:
|
func _on_dialogic_input_autoadvance() -> void:
|
||||||
if state == States.IDLE or state == States.DONE:
|
if state == States.IDLE or state == States.DONE:
|
||||||
advance.emit()
|
advance.emit()
|
||||||
|
|
||||||
|
|
||||||
func _on_auto_skip_enable(enabled: bool) -> void:
|
func _on_auto_skip_enable(enabled: bool) -> void:
|
||||||
if not enabled:
|
if not enabled:
|
||||||
return
|
return
|
||||||
|
|
||||||
match state:
|
match state:
|
||||||
States.DONE:
|
States.DONE:
|
||||||
await dialogic.Inputs.start_autoskip_timer()
|
await dialogic.Inputs.start_autoskip_timer()
|
||||||
|
|
||||||
# If Auto-Skip is still enabled, advance the text.
|
# If Auto-Skip is still enabled, advance the text.
|
||||||
if dialogic.Inputs.auto_skip.enabled:
|
if dialogic.Inputs.auto_skip.enabled:
|
||||||
advance.emit()
|
advance.emit()
|
||||||
|
|
||||||
States.REVEALING:
|
States.REVEALING:
|
||||||
dialogic.Text.skip_text_reveal()
|
dialogic.Text.skip_text_reveal()
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -276,12 +276,12 @@ func _on_auto_skip_enable(enabled: bool) -> void:
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
func _init() -> void:
|
func _init() -> void:
|
||||||
event_name = "Text"
|
event_name = "Text"
|
||||||
set_default_color('Color1')
|
set_default_color('Color1')
|
||||||
event_category = "Main"
|
event_category = "Main"
|
||||||
event_sorting_index = 0
|
event_sorting_index = 0
|
||||||
expand_by_default = true
|
expand_by_default = true
|
||||||
help_page_path = "https://docs.dialogic.pro/writing-texts.html"
|
help_page_path = "https://docs.dialogic.pro/writing-texts.html"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -289,92 +289,92 @@ func _init() -> void:
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
func to_text() -> String:
|
func to_text() -> String:
|
||||||
var result := text.replace('\n', '\\\n').strip_edges(false).trim_suffix("\\")
|
var result := text.replace('\n', '\\\n').strip_edges(false).trim_suffix("\\")
|
||||||
result = result.replace(':', '\\:')
|
result = result.replace(':', '\\:')
|
||||||
if result.is_empty():
|
if result.is_empty():
|
||||||
result = "<Empty Text Event>"
|
result = "<Empty Text Event>"
|
||||||
|
|
||||||
if character or character_identifier:
|
if character or character_identifier:
|
||||||
var name := character_identifier
|
var name := character_identifier
|
||||||
if character:
|
if character:
|
||||||
name = character.get_identifier()
|
name = character.get_identifier()
|
||||||
if name.count(" ") > 0:
|
if name.count(" ") > 0:
|
||||||
name = '"' + name + '"'
|
name = '"' + name + '"'
|
||||||
if not portrait.is_empty():
|
if not portrait.is_empty():
|
||||||
result = name+" ("+portrait+"): "+result
|
result = name+" ("+portrait+"): "+result
|
||||||
else:
|
else:
|
||||||
result = name+": "+result
|
result = name+": "+result
|
||||||
for event in DialogicResourceUtil.get_event_cache():
|
for event in DialogicResourceUtil.get_event_cache():
|
||||||
if not event is DialogicTextEvent and event.is_valid_event(result):
|
if not event is DialogicTextEvent and event.is_valid_event(result):
|
||||||
result = '\\'+result
|
result = '\\'+result
|
||||||
break
|
break
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
func from_text(string:String) -> void:
|
func from_text(string:String) -> void:
|
||||||
# Load default character
|
# Load default character
|
||||||
# This is only of relevance if the default has been overriden (usually not)
|
# This is only of relevance if the default has been overriden (usually not)
|
||||||
character = DialogicResourceUtil.get_character_resource(character_identifier)
|
character = DialogicResourceUtil.get_character_resource(character_identifier)
|
||||||
|
|
||||||
var result := regex.search(string.trim_prefix('\\'))
|
var result := regex.search(string.trim_prefix('\\'))
|
||||||
|
|
||||||
if result.get_string('portrait'):
|
if result.get_string('portrait'):
|
||||||
portrait = result.get_string('portrait').strip_edges().trim_prefix('(').trim_suffix(')')
|
portrait = result.get_string('portrait').strip_edges().trim_prefix('(').trim_suffix(')')
|
||||||
|
|
||||||
if result and not result.get_string('name').is_empty():
|
if result and not result.get_string('name').is_empty():
|
||||||
var name := result.get_string('name').strip_edges()
|
var name := result.get_string('name').strip_edges()
|
||||||
|
|
||||||
if name == '_':
|
if name == '_':
|
||||||
character = null
|
character = null
|
||||||
elif "{" in name:
|
elif "{" in name:
|
||||||
## If it's an expression, we load the character in _execute.
|
## If it's an expression, we load the character in _execute.
|
||||||
character_identifier = name
|
character_identifier = name
|
||||||
character = null
|
character = null
|
||||||
else:
|
else:
|
||||||
get_or_create_character(name)
|
get_or_create_character(name)
|
||||||
|
|
||||||
if not result:
|
if not result:
|
||||||
return
|
return
|
||||||
|
|
||||||
text = result.get_string('text').replace("\\\n", "\n").replace('\\:', ':').strip_edges().trim_prefix('\\')
|
text = result.get_string('text').replace("\\\n", "\n").replace('\\:', ':').strip_edges().trim_prefix('\\')
|
||||||
if text == '<Empty Text Event>':
|
if text == '<Empty Text Event>':
|
||||||
text = ""
|
text = ""
|
||||||
|
|
||||||
|
|
||||||
func get_or_create_character(name:String) -> void:
|
func get_or_create_character(name:String) -> void:
|
||||||
character = DialogicResourceUtil.get_character_resource(name)
|
character = DialogicResourceUtil.get_character_resource(name)
|
||||||
|
|
||||||
if character == null:
|
if character == null:
|
||||||
if Engine.is_editor_hint() == false:
|
if Engine.is_editor_hint() == false:
|
||||||
character = DialogicCharacter.new()
|
character = DialogicCharacter.new()
|
||||||
character.display_name = name
|
character.display_name = name
|
||||||
character.set_identifier(name)
|
character.set_identifier(name)
|
||||||
if portrait:
|
if portrait:
|
||||||
if "{" in portrait:
|
if "{" in portrait:
|
||||||
character.color = Color(dialogic.Expressions.execute_string(portrait))
|
character.color = Color(dialogic.Expressions.execute_string(portrait))
|
||||||
else:
|
else:
|
||||||
character.color = Color(portrait)
|
character.color = Color(portrait)
|
||||||
else:
|
else:
|
||||||
character_identifier = name
|
character_identifier = name
|
||||||
|
|
||||||
|
|
||||||
func is_valid_event(_string:String) -> bool:
|
func is_valid_event(_string:String) -> bool:
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
|
||||||
func is_string_full_event(string:String) -> bool:
|
func is_string_full_event(string:String) -> bool:
|
||||||
return !string.ends_with('\\')
|
return !string.ends_with('\\')
|
||||||
|
|
||||||
|
|
||||||
# this is only here to provide a list of default values
|
# this is only here to provide a list of default values
|
||||||
# this way the module manager can add custom default overrides to this event.
|
# this way the module manager can add custom default overrides to this event.
|
||||||
func get_shortcode_parameters() -> Dictionary:
|
func get_shortcode_parameters() -> Dictionary:
|
||||||
return {
|
return {
|
||||||
#param_name : property_info
|
#param_name : property_info
|
||||||
"character" : {"property": "character_identifier", "default": "", "ext_file":true},
|
"character" : {"property": "character_identifier", "default": "", "ext_file":true},
|
||||||
"portrait" : {"property": "portrait", "default": ""},
|
"portrait" : {"property": "portrait", "default": ""},
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
@@ -382,14 +382,14 @@ func get_shortcode_parameters() -> Dictionary:
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
func _get_translatable_properties() -> Array:
|
func _get_translatable_properties() -> Array:
|
||||||
return ['text']
|
return ['text']
|
||||||
|
|
||||||
|
|
||||||
func _get_property_original_translation(property:String) -> String:
|
func _get_property_original_translation(property:String) -> String:
|
||||||
match property:
|
match property:
|
||||||
'text':
|
'text':
|
||||||
return text
|
return text
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -399,44 +399,44 @@ func _get_property_original_translation(property:String) -> String:
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
func _enter_visual_editor(editor:DialogicEditor):
|
func _enter_visual_editor(editor:DialogicEditor):
|
||||||
editor.opened.connect(func(): ui_update_needed.emit())
|
editor.opened.connect(func(): ui_update_needed.emit())
|
||||||
|
|
||||||
|
|
||||||
func build_event_editor() -> void:
|
func build_event_editor() -> void:
|
||||||
add_header_edit('character_identifier', ValueType.DYNAMIC_OPTIONS,
|
add_header_edit('character_identifier', ValueType.DYNAMIC_OPTIONS,
|
||||||
{'file_extension' : '.dch',
|
{'file_extension' : '.dch',
|
||||||
'mode' : 2,
|
'mode' : 2,
|
||||||
'suggestions_func' : get_character_suggestions,
|
'suggestions_func' : get_character_suggestions,
|
||||||
'placeholder' : '(No one)',
|
'placeholder' : '(No one)',
|
||||||
'icon' : load("res://addons/dialogic/Editor/Images/Resources/character.svg")}, 'do_any_characters_exist()')
|
'icon' : load("res://addons/dialogic/Editor/Images/Resources/character.svg")}, 'do_any_characters_exist()')
|
||||||
add_header_edit('portrait', ValueType.DYNAMIC_OPTIONS,
|
add_header_edit('portrait', ValueType.DYNAMIC_OPTIONS,
|
||||||
{'suggestions_func' : get_portrait_suggestions,
|
{'suggestions_func' : get_portrait_suggestions,
|
||||||
'placeholder' : "(Don't change)",
|
'placeholder' : "(Don't change)",
|
||||||
'icon' : load("res://addons/dialogic/Editor/Images/Resources/portrait.svg"),
|
'icon' : load("res://addons/dialogic/Editor/Images/Resources/portrait.svg"),
|
||||||
'collapse_when_empty': true,},
|
'collapse_when_empty': true,},
|
||||||
'should_show_portrait_selector()')
|
'should_show_portrait_selector()')
|
||||||
add_body_edit('text', ValueType.MULTILINE_TEXT, {'autofocus':true})
|
add_body_edit('text', ValueType.MULTILINE_TEXT, {'autofocus':true})
|
||||||
|
|
||||||
|
|
||||||
func should_show_portrait_selector() -> bool:
|
func should_show_portrait_selector() -> bool:
|
||||||
return character and not character.portraits.is_empty() and not character.portraits.size() == 1
|
return character and not character.portraits.is_empty() and not character.portraits.size() == 1
|
||||||
|
|
||||||
|
|
||||||
func do_any_characters_exist() -> bool:
|
func do_any_characters_exist() -> bool:
|
||||||
return not DialogicResourceUtil.get_character_directory().is_empty()
|
return not DialogicResourceUtil.get_character_directory().is_empty()
|
||||||
|
|
||||||
|
|
||||||
func get_character_suggestions(search_text:String) -> Dictionary:
|
func get_character_suggestions(search_text:String) -> Dictionary:
|
||||||
var suggestions := DialogicUtil.get_character_suggestions(search_text, character, true, false, editor_node)
|
var suggestions := DialogicUtil.get_character_suggestions(search_text, character, true, false, editor_node)
|
||||||
if search_text and not search_text in suggestions:
|
if search_text and not search_text in suggestions:
|
||||||
suggestions[search_text] = {
|
suggestions[search_text] = {
|
||||||
"value":search_text,
|
"value":search_text,
|
||||||
"tooltip": "A temporary character, created on the spot.",
|
"tooltip": "A temporary character, created on the spot.",
|
||||||
"editor_icon":["GuiEllipsis", "EditorIcons"]}
|
"editor_icon":["GuiEllipsis", "EditorIcons"]}
|
||||||
return suggestions
|
return suggestions
|
||||||
|
|
||||||
func get_portrait_suggestions(search_text:String) -> Dictionary:
|
func get_portrait_suggestions(search_text:String) -> Dictionary:
|
||||||
return DialogicUtil.get_portrait_suggestions(search_text, character, true, "Don't change")
|
return DialogicUtil.get_portrait_suggestions(search_text, character, true, "Don't change")
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -447,45 +447,45 @@ func get_portrait_suggestions(search_text:String) -> Dictionary:
|
|||||||
var completion_text_character_getter_regex := RegEx.new()
|
var completion_text_character_getter_regex := RegEx.new()
|
||||||
var completion_text_effects := {}
|
var completion_text_effects := {}
|
||||||
func _get_code_completion(CodeCompletionHelper:Node, TextNode:TextEdit, line:String, _word:String, symbol:String) -> void:
|
func _get_code_completion(CodeCompletionHelper:Node, TextNode:TextEdit, line:String, _word:String, symbol:String) -> void:
|
||||||
if completion_text_character_getter_regex.get_pattern().is_empty():
|
if completion_text_character_getter_regex.get_pattern().is_empty():
|
||||||
completion_text_character_getter_regex.compile("(\"[^\"]*\"|[^\\s:]*)")
|
completion_text_character_getter_regex.compile("(\"[^\"]*\"|[^\\s:]*)")
|
||||||
|
|
||||||
if completion_text_effects.is_empty():
|
if completion_text_effects.is_empty():
|
||||||
for idx in DialogicUtil.get_indexers():
|
for idx in DialogicUtil.get_indexers():
|
||||||
for effect in idx._get_text_effects():
|
for effect in idx._get_text_effects():
|
||||||
completion_text_effects[effect['command']] = effect
|
completion_text_effects[effect['command']] = effect
|
||||||
|
|
||||||
if not ':' in line.substr(0, TextNode.get_caret_column()) and symbol == '(':
|
if not ':' in line.substr(0, TextNode.get_caret_column()) and symbol == '(':
|
||||||
var completion_character := completion_text_character_getter_regex.search(line).get_string().trim_prefix('"').trim_suffix('"')
|
var completion_character := completion_text_character_getter_regex.search(line).get_string().trim_prefix('"').trim_suffix('"')
|
||||||
CodeCompletionHelper.suggest_portraits(TextNode, completion_character)
|
CodeCompletionHelper.suggest_portraits(TextNode, completion_character)
|
||||||
|
|
||||||
if symbol == '[':
|
if symbol == '[':
|
||||||
suggest_bbcode(TextNode)
|
suggest_bbcode(TextNode)
|
||||||
for effect in completion_text_effects.values():
|
for effect in completion_text_effects.values():
|
||||||
if effect.get('arg', false):
|
if effect.get('arg', false):
|
||||||
TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, effect.command, effect.command+'=', TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("RichTextEffect", "EditorIcons"))
|
TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, effect.command, effect.command+'=', TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("RichTextEffect", "EditorIcons"))
|
||||||
else:
|
else:
|
||||||
TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, effect.command, effect.command, TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("RichTextEffect", "EditorIcons"), ']')
|
TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, effect.command, effect.command, TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("RichTextEffect", "EditorIcons"), ']')
|
||||||
|
|
||||||
if symbol == '{':
|
if symbol == '{':
|
||||||
CodeCompletionHelper.suggest_variables(TextNode)
|
CodeCompletionHelper.suggest_variables(TextNode)
|
||||||
|
|
||||||
if symbol == '=':
|
if symbol == '=':
|
||||||
if CodeCompletionHelper.get_line_untill_caret(line).ends_with('[portrait='):
|
if CodeCompletionHelper.get_line_untill_caret(line).ends_with('[portrait='):
|
||||||
var completion_character := completion_text_character_getter_regex.search(line).get_string('name')
|
var completion_character := completion_text_character_getter_regex.search(line).get_string('name')
|
||||||
CodeCompletionHelper.suggest_portraits(TextNode, completion_character, ']')
|
CodeCompletionHelper.suggest_portraits(TextNode, completion_character, ']')
|
||||||
|
|
||||||
|
|
||||||
func _get_start_code_completion(CodeCompletionHelper:Node, TextNode:TextEdit) -> void:
|
func _get_start_code_completion(CodeCompletionHelper:Node, TextNode:TextEdit) -> void:
|
||||||
CodeCompletionHelper.suggest_characters(TextNode, CodeEdit.KIND_CLASS, self)
|
CodeCompletionHelper.suggest_characters(TextNode, CodeEdit.KIND_CLASS, self)
|
||||||
|
|
||||||
|
|
||||||
func suggest_bbcode(TextNode:CodeEdit):
|
func suggest_bbcode(TextNode:CodeEdit):
|
||||||
for i in [['b (bold)', 'b'], ['i (italics)', 'i'], ['color', 'color='], ['font size','font_size=']]:
|
for i in [['b (bold)', 'b'], ['i (italics)', 'i'], ['color', 'color='], ['font size','font_size=']]:
|
||||||
TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, i[0], i[1], TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("RichTextEffect", "EditorIcons"),)
|
TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, i[0], i[1], TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("RichTextEffect", "EditorIcons"),)
|
||||||
TextNode.add_code_completion_option(CodeEdit.KIND_CLASS, 'end '+i[0], '/'+i[1], TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("RichTextEffect", "EditorIcons"), ']')
|
TextNode.add_code_completion_option(CodeEdit.KIND_CLASS, 'end '+i[0], '/'+i[1], TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("RichTextEffect", "EditorIcons"), ']')
|
||||||
for i in [['new event', 'n'],['new event (same box)', 'n+']]:
|
for i in [['new event', 'n'],['new event (same box)', 'n+']]:
|
||||||
TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, i[0], i[1], TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("ArrowRight", "EditorIcons"),)
|
TextNode.add_code_completion_option(CodeEdit.KIND_MEMBER, i[0], i[1], TextNode.syntax_highlighter.normal_color, TextNode.get_theme_icon("ArrowRight", "EditorIcons"),)
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -496,56 +496,56 @@ func suggest_bbcode(TextNode:CodeEdit):
|
|||||||
var text_effects := ""
|
var text_effects := ""
|
||||||
var text_effects_regex := RegEx.new()
|
var text_effects_regex := RegEx.new()
|
||||||
func load_text_effects() -> void:
|
func load_text_effects() -> void:
|
||||||
if text_effects.is_empty():
|
if text_effects.is_empty():
|
||||||
for idx in DialogicUtil.get_indexers():
|
for idx in DialogicUtil.get_indexers():
|
||||||
for effect in idx._get_text_effects():
|
for effect in idx._get_text_effects():
|
||||||
text_effects+= effect['command']+'|'
|
text_effects+= effect['command']+'|'
|
||||||
text_effects += "b|i|u|s|code|p|center|left|right|fill|n\\+|n|indent|url|img|font|font_size|opentype_features|color|bg_color|fg_color|outline_size|outline_color|table|cell|ul|ol|lb|rb|br"
|
text_effects += "b|i|u|s|code|p|center|left|right|fill|n\\+|n|indent|url|img|font|font_size|opentype_features|color|bg_color|fg_color|outline_size|outline_color|table|cell|ul|ol|lb|rb|br"
|
||||||
if text_effects_regex.get_pattern().is_empty():
|
if text_effects_regex.get_pattern().is_empty():
|
||||||
text_effects_regex.compile("(?<!\\\\)\\[\\s*/?(?<command>"+text_effects+")\\s*(=\\s*(?<value>.+?)\\s*)?\\]")
|
text_effects_regex.compile("(?<!\\\\)\\[\\s*/?(?<command>"+text_effects+")\\s*(=\\s*(?<value>.+?)\\s*)?\\]")
|
||||||
|
|
||||||
|
|
||||||
var text_random_word_regex := RegEx.new()
|
var text_random_word_regex := RegEx.new()
|
||||||
var text_effect_color := Color('#898276')
|
var text_effect_color := Color('#898276')
|
||||||
func _get_syntax_highlighting(Highlighter:SyntaxHighlighter, dict:Dictionary, line:String) -> Dictionary:
|
func _get_syntax_highlighting(Highlighter:SyntaxHighlighter, dict:Dictionary, line:String) -> Dictionary:
|
||||||
load_text_effects()
|
load_text_effects()
|
||||||
if text_random_word_regex.get_pattern().is_empty():
|
if text_random_word_regex.get_pattern().is_empty():
|
||||||
text_random_word_regex.compile(r"(?<!\\)\<[^\>]+(\/[^\>]*)\>")
|
text_random_word_regex.compile(r"(?<!\\)\<[^\>]+(\/[^\>]*)\>")
|
||||||
|
|
||||||
var result := regex.search(line)
|
var result := regex.search(line)
|
||||||
if not result:
|
if not result:
|
||||||
return dict
|
return dict
|
||||||
if Highlighter.mode == Highlighter.Modes.FULL_HIGHLIGHTING:
|
if Highlighter.mode == Highlighter.Modes.FULL_HIGHLIGHTING:
|
||||||
if result.get_string('name'):
|
if result.get_string('name'):
|
||||||
dict[result.get_start('name')] = {"color":Highlighter.character_name_color}
|
dict[result.get_start('name')] = {"color":Highlighter.character_name_color}
|
||||||
dict[result.get_end('name')] = {"color":Highlighter.normal_color}
|
dict[result.get_end('name')] = {"color":Highlighter.normal_color}
|
||||||
if result.get_string('portrait'):
|
if result.get_string('portrait'):
|
||||||
dict[result.get_start('portrait')] = {"color":Highlighter.character_portrait_color}
|
dict[result.get_start('portrait')] = {"color":Highlighter.character_portrait_color}
|
||||||
dict[result.get_end('portrait')] = {"color":Highlighter.normal_color}
|
dict[result.get_end('portrait')] = {"color":Highlighter.normal_color}
|
||||||
if result.get_string('text'):
|
if result.get_string('text'):
|
||||||
|
|
||||||
## Color the random selection modifier
|
## Color the random selection modifier
|
||||||
for replace_mod_match in text_random_word_regex.search_all(result.get_string('text')):
|
for replace_mod_match in text_random_word_regex.search_all(result.get_string('text')):
|
||||||
var color: Color = Highlighter.string_color
|
var color: Color = Highlighter.string_color
|
||||||
color = color.lerp(Highlighter.normal_color, 0.4)
|
color = color.lerp(Highlighter.normal_color, 0.4)
|
||||||
dict[replace_mod_match.get_start()+result.get_start('text')] = {'color':Highlighter.string_color}
|
dict[replace_mod_match.get_start()+result.get_start('text')] = {'color':Highlighter.string_color}
|
||||||
var offset := 1
|
var offset := 1
|
||||||
for b:RegExMatch in RegEx.create_from_string(r"(\[[^\]]*\]|[^\/]|\/\/)+").search_all(replace_mod_match.get_string().trim_prefix("<").trim_suffix(">")):
|
for b:RegExMatch in RegEx.create_from_string(r"(\[[^\]]*\]|[^\/]|\/\/)+").search_all(replace_mod_match.get_string().trim_prefix("<").trim_suffix(">")):
|
||||||
color.h = wrap(color.h+0.2, 0, 1)
|
color.h = wrap(color.h+0.2, 0, 1)
|
||||||
dict[replace_mod_match.get_start()+result.get_start('text')+offset] = {'color':color}
|
dict[replace_mod_match.get_start()+result.get_start('text')+offset] = {'color':color}
|
||||||
offset += len(b.get_string())
|
offset += len(b.get_string())
|
||||||
dict[replace_mod_match.get_start()+result.get_start('text')+offset] = {'color':Highlighter.string_color}
|
dict[replace_mod_match.get_start()+result.get_start('text')+offset] = {'color':Highlighter.string_color}
|
||||||
offset += 1
|
offset += 1
|
||||||
dict[replace_mod_match.get_end()+result.get_start('text')] = {'color':Highlighter.normal_color}
|
dict[replace_mod_match.get_end()+result.get_start('text')] = {'color':Highlighter.normal_color}
|
||||||
|
|
||||||
## Color bbcode and text effects
|
## Color bbcode and text effects
|
||||||
var effects_result := text_effects_regex.search_all(line)
|
var effects_result := text_effects_regex.search_all(line)
|
||||||
for eff in effects_result:
|
for eff in effects_result:
|
||||||
var prev_color: Color = Highlighter.dict_get_color_at_column(dict, eff.get_start())
|
var prev_color: Color = Highlighter.dict_get_color_at_column(dict, eff.get_start())
|
||||||
dict[eff.get_start()] = {"color":text_effect_color.lerp(prev_color, 0.4)}
|
dict[eff.get_start()] = {"color":text_effect_color.lerp(prev_color, 0.4)}
|
||||||
dict[eff.get_end()] = {"color":prev_color}
|
dict[eff.get_end()] = {"color":prev_color}
|
||||||
dict = Highlighter.color_region(dict, Highlighter.variable_color, line, '{', '}', result.get_start('text'))
|
dict = Highlighter.color_region(dict, Highlighter.variable_color, line, '{', '}', result.get_start('text'))
|
||||||
|
|
||||||
return dict
|
return dict
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
BIN
common/audio_manager/assets/sfx/signal/signal.mp3
Normal file
BIN
common/audio_manager/assets/sfx/signal/signal.mp3
Normal file
Binary file not shown.
19
common/audio_manager/assets/sfx/signal/signal.mp3.import
Normal file
19
common/audio_manager/assets/sfx/signal/signal.mp3.import
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="mp3"
|
||||||
|
type="AudioStreamMP3"
|
||||||
|
uid="uid://c5y70k3codtn"
|
||||||
|
path="res://.godot/imported/signal.mp3-2f41c9334233d52845bfe384d47f2a96.mp3str"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://common/audio_manager/assets/sfx/signal/signal.mp3"
|
||||||
|
dest_files=["res://.godot/imported/signal.mp3-2f41c9334233d52845bfe384d47f2a96.mp3str"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
@@ -6,12 +6,13 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://bqwiaek5b5q00" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_2.ogg" id="6_ldyhq"]
|
[ext_resource type="AudioStream" uid="uid://bqwiaek5b5q00" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_2.ogg" id="6_ldyhq"]
|
||||||
[ext_resource type="AudioStream" uid="uid://d4lqhgf0lhgge" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_3.ogg" id="7_ol34x"]
|
[ext_resource type="AudioStream" uid="uid://d4lqhgf0lhgge" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_3.ogg" id="7_ol34x"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bpf6witukorka" path="res://common/audio_manager/assets/morceaux/autres/main_menu.ogg" id="7_tuvql"]
|
[ext_resource type="AudioStream" uid="uid://bpf6witukorka" path="res://common/audio_manager/assets/morceaux/autres/main_menu.ogg" id="7_tuvql"]
|
||||||
[ext_resource type="AudioStream" uid="uid://brtjlgjqnrvcb" path="res://common/audio_manager/assets/morceaux/autres/truck_music.ogg" id="8_0e5ja"]
|
[ext_resource type="AudioStream" uid="uid://dadg6o6dl2k6t" path="res://common/audio_manager/assets/morceaux/autres/truck_music.ogg" id="8_0e5ja"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bnxsnege8qq6e" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_4.ogg" id="8_ajci6"]
|
[ext_resource type="AudioStream" uid="uid://bnxsnege8qq6e" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_4.ogg" id="8_ajci6"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dfrp66a4isnt6" path="res://common/audio_manager/assets/sfx/dig/dig_1.wav" id="9_gv65y"]
|
[ext_resource type="AudioStream" uid="uid://dfrp66a4isnt6" path="res://common/audio_manager/assets/sfx/dig/dig_1.wav" id="9_gv65y"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bdxkvaciw4mb3" path="res://common/audio_manager/assets/sfx/dig/dig_2.wav" id="10_n7o7n"]
|
[ext_resource type="AudioStream" uid="uid://bdxkvaciw4mb3" path="res://common/audio_manager/assets/sfx/dig/dig_2.wav" id="10_n7o7n"]
|
||||||
[ext_resource type="AudioStream" uid="uid://llxrlwfccywb" path="res://common/audio_manager/assets/sfx/dig/dig_3.wav" id="11_wtvls"]
|
[ext_resource type="AudioStream" uid="uid://llxrlwfccywb" path="res://common/audio_manager/assets/sfx/dig/dig_3.wav" id="11_wtvls"]
|
||||||
[ext_resource type="AudioStream" uid="uid://b8inedx4yjslw" path="res://common/audio_manager/assets/sfx/drop/drop_1.wav" id="12_4hp8f"]
|
[ext_resource type="AudioStream" uid="uid://b8inedx4yjslw" path="res://common/audio_manager/assets/sfx/drop/drop_1.wav" id="12_4hp8f"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://c5y70k3codtn" path="res://common/audio_manager/assets/sfx/signal/signal.mp3" id="12_ajci6"]
|
||||||
[ext_resource type="AudioStream" uid="uid://8nmr5vifkt1f" path="res://common/audio_manager/assets/sfx/harvest/harvest_1.wav" id="13_xoaox"]
|
[ext_resource type="AudioStream" uid="uid://8nmr5vifkt1f" path="res://common/audio_manager/assets/sfx/harvest/harvest_1.wav" id="13_xoaox"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dgkdcq4j6fe3o" path="res://common/audio_manager/assets/sfx/harvest/harvest_2.wav" id="14_b5bgj"]
|
[ext_resource type="AudioStream" uid="uid://dgkdcq4j6fe3o" path="res://common/audio_manager/assets/sfx/harvest/harvest_2.wav" id="14_b5bgj"]
|
||||||
[ext_resource type="AudioStream" uid="uid://eh3dbuxu5qtw" path="res://common/audio_manager/assets/sfx/harvest/harvest_3.wav" id="15_ynvb4"]
|
[ext_resource type="AudioStream" uid="uid://eh3dbuxu5qtw" path="res://common/audio_manager/assets/sfx/harvest/harvest_3.wav" id="15_ynvb4"]
|
||||||
@@ -36,6 +37,11 @@ stream_0/stream = ExtResource("9_gv65y")
|
|||||||
stream_1/stream = ExtResource("10_n7o7n")
|
stream_1/stream = ExtResource("10_n7o7n")
|
||||||
stream_2/stream = ExtResource("11_wtvls")
|
stream_2/stream = ExtResource("11_wtvls")
|
||||||
|
|
||||||
|
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_8204s"]
|
||||||
|
random_pitch = 1.0594631
|
||||||
|
streams_count = 1
|
||||||
|
stream_0/stream = ExtResource("12_ajci6")
|
||||||
|
|
||||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_1w04j"]
|
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_1w04j"]
|
||||||
random_pitch = 1.2
|
random_pitch = 1.2
|
||||||
streams_count = 1
|
streams_count = 1
|
||||||
@@ -59,7 +65,6 @@ stream_1/stream = ExtResource("21_dk5s6")
|
|||||||
[node name="AudioManager" type="Node" unique_id=1871137180]
|
[node name="AudioManager" type="Node" unique_id=1871137180]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
script = ExtResource("1_0tvca")
|
script = ExtResource("1_0tvca")
|
||||||
default_fade_time = 2.0
|
|
||||||
|
|
||||||
[node name="Ambiance" type="Node" parent="." unique_id=1989991562]
|
[node name="Ambiance" type="Node" parent="." unique_id=1989991562]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@@ -78,6 +83,7 @@ stream = SubResource("AudioStreamPlaylist_ajci6")
|
|||||||
[node name="Title" type="AudioStreamPlayer" parent="Musics" unique_id=2105759422]
|
[node name="Title" type="AudioStreamPlayer" parent="Musics" unique_id=2105759422]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
stream = ExtResource("7_tuvql")
|
stream = ExtResource("7_tuvql")
|
||||||
|
bus = &"Music"
|
||||||
|
|
||||||
[node name="Truck" type="AudioStreamPlayer" parent="Musics" unique_id=1165150318]
|
[node name="Truck" type="AudioStreamPlayer" parent="Musics" unique_id=1165150318]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@@ -89,6 +95,9 @@ unique_name_in_owner = true
|
|||||||
[node name="Dig" type="AudioStreamPlayer" parent="Sfx" unique_id=486042600]
|
[node name="Dig" type="AudioStreamPlayer" parent="Sfx" unique_id=486042600]
|
||||||
stream = SubResource("AudioStreamRandomizer_kfbah")
|
stream = SubResource("AudioStreamRandomizer_kfbah")
|
||||||
|
|
||||||
|
[node name="Signal" type="AudioStreamPlayer" parent="Sfx" unique_id=641246368]
|
||||||
|
stream = SubResource("AudioStreamRandomizer_8204s")
|
||||||
|
|
||||||
[node name="Drop" type="AudioStreamPlayer" parent="Sfx" unique_id=1391500830]
|
[node name="Drop" type="AudioStreamPlayer" parent="Sfx" unique_id=1391500830]
|
||||||
stream = SubResource("AudioStreamRandomizer_1w04j")
|
stream = SubResource("AudioStreamRandomizer_1w04j")
|
||||||
|
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ func _ready():
|
|||||||
player.stop()
|
player.stop()
|
||||||
|
|
||||||
fetch_default_volumes()
|
fetch_default_volumes()
|
||||||
setup_volume()
|
# setup_players_bus()
|
||||||
settings.sound_changed.connect(
|
settings.sound_changed.connect(
|
||||||
func(_s) : setup_volume()
|
func(_s) : setup_players_bus()
|
||||||
)
|
)
|
||||||
SceneManager.scene_loaded.connect(_on_change_scene)
|
SceneManager.scene_loaded.connect(_on_change_scene)
|
||||||
Dialogic.timeline_started.connect(_on_timeline_started)
|
Dialogic.timeline_started.connect(_on_timeline_started)
|
||||||
@@ -120,21 +120,17 @@ func fetch_default_volumes():
|
|||||||
for player in all_players:
|
for player in all_players:
|
||||||
default_volumes[player] = player.volume_db
|
default_volumes[player] = player.volume_db
|
||||||
|
|
||||||
func setup_volume():
|
func setup_players_bus():
|
||||||
for player in get_all_players():
|
for player in get_all_players():
|
||||||
player.volume_db = get_volume_from_parent(player)
|
if player.get_parent() == %Musics:
|
||||||
|
player.bus = (AudioServer.get_bus_name(SettingsData.MUSIC_BUS_ID))
|
||||||
|
elif player.get_parent() == %Sfx:
|
||||||
|
player.bus = (AudioServer.get_bus_name(SettingsData.SFX_BUS_ID))
|
||||||
|
elif player.get_parent() == %Ambiance:
|
||||||
|
player.bus = (AudioServer.get_bus_name(SettingsData.AMBIANCE_BUS_ID))
|
||||||
|
|
||||||
func get_volume_from_parent(player : AudioStreamPlayer) -> float:
|
func get_volume(player : AudioStreamPlayer) -> float:
|
||||||
var settings_volume = 0.5
|
return default_volumes[player]
|
||||||
|
|
||||||
if player.get_parent() == %Ambiance:
|
|
||||||
settings_volume = settings.ambiance_volume
|
|
||||||
elif player.get_parent() == %Sfx:
|
|
||||||
settings_volume = settings.sfx_volume
|
|
||||||
elif player.get_parent() == %Musics:
|
|
||||||
settings_volume = settings.music_volume
|
|
||||||
|
|
||||||
return default_volumes[player] + lerp(MIN_VOLUME, MAX_VOLUME, settings_volume)
|
|
||||||
|
|
||||||
func get_all_players() -> Array[AudioStreamPlayer]:
|
func get_all_players() -> Array[AudioStreamPlayer]:
|
||||||
var players : Array[AudioStreamPlayer] = []
|
var players : Array[AudioStreamPlayer] = []
|
||||||
@@ -167,17 +163,17 @@ func start_player(player: AudioStreamPlayer, from_random_time = false, fade_time
|
|||||||
)
|
)
|
||||||
if fade_time > 0.0:
|
if fade_time > 0.0:
|
||||||
player.volume_db = MIN_VOLUME
|
player.volume_db = MIN_VOLUME
|
||||||
await set_volume(player, get_volume_from_parent(player), fade_time).finished
|
await set_volume(player, get_volume(player), fade_time).finished
|
||||||
|
|
||||||
func stop_player(player : AudioStreamPlayer, fade_time = DEFAULT_FADE_TIME):
|
func stop_player(player : AudioStreamPlayer, fade_time = DEFAULT_FADE_TIME):
|
||||||
if player and player.playing:
|
if player and player.playing:
|
||||||
if fade_time > 0.0:
|
if fade_time > 0.0:
|
||||||
await set_volume(player, MIN_VOLUME, fade_time).finished
|
await set_volume(player, MIN_VOLUME, fade_time).finished
|
||||||
player.stop()
|
player.stop()
|
||||||
player.volume_db = get_volume_from_parent(player)
|
player.volume_db = get_volume(player)
|
||||||
|
|
||||||
func reset_volume(player : AudioStreamPlayer):
|
func reset_volume(player : AudioStreamPlayer):
|
||||||
player.volume_db = get_volume_from_parent(player)
|
player.volume_db = get_volume(player)
|
||||||
|
|
||||||
func play_sfx(sfx_name : String):
|
func play_sfx(sfx_name : String):
|
||||||
var player := %Sfx.find_child(sfx_name) as AudioStreamPlayer
|
var player := %Sfx.find_child(sfx_name) as AudioStreamPlayer
|
||||||
|
|||||||
@@ -13,6 +13,14 @@ signal current_region_data_updated(p : RegionData)
|
|||||||
|
|
||||||
@export var last_game_scene : Scene = null
|
@export var last_game_scene : Scene = null
|
||||||
|
|
||||||
|
@export var ship_in_space = false
|
||||||
|
|
||||||
|
@export var tutorial_done = false
|
||||||
|
|
||||||
|
@export var incubator_used = []
|
||||||
|
|
||||||
|
@export var dialogs_done : Array[String] = [] #Chemin des dialogues démarrés
|
||||||
|
|
||||||
func start_run():
|
func start_run():
|
||||||
player_data.inventory.clear_items()
|
player_data.inventory.clear_items()
|
||||||
current_run = RunData.new()
|
current_run = RunData.new()
|
||||||
@@ -32,3 +40,19 @@ func start_region(region_param : RegionParameter):
|
|||||||
current_region_data = RegionData.new(region_param)
|
current_region_data = RegionData.new(region_param)
|
||||||
current_region_data_updated.emit(current_region_data)
|
current_region_data_updated.emit(current_region_data)
|
||||||
GameInfo.save_game_data()
|
GameInfo.save_game_data()
|
||||||
|
|
||||||
|
func give_up():
|
||||||
|
current_region_data = null
|
||||||
|
current_run = null
|
||||||
|
|
||||||
|
func start_tutorial():
|
||||||
|
current_region_data = RegionData.new(
|
||||||
|
RegionParameter.new(
|
||||||
|
10,
|
||||||
|
3,
|
||||||
|
tr("TUTORIAL"),
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
randi()
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -5,8 +5,8 @@ enum State {STARTED, IN_PROGRESS, FINISHED}
|
|||||||
|
|
||||||
const RUN_POINT_POSITION_DERIVATION = 100
|
const RUN_POINT_POSITION_DERIVATION = 100
|
||||||
const DIFFICULTY_INCREASE_BY_LEVEL = 1
|
const DIFFICULTY_INCREASE_BY_LEVEL = 1
|
||||||
const RUN_POINTS_NEXT_NUMBER :Array[int] = [2,3]
|
const RUN_POINTS_NEXT_NUMBER :Array[int] = [2]
|
||||||
const RUN_POINT_MAX_LEVEL = 10
|
const RUN_POINT_MAX_LEVEL = 6
|
||||||
|
|
||||||
signal current_run_point_changed
|
signal current_run_point_changed
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ func _init(
|
|||||||
):
|
):
|
||||||
level = _level
|
level = _level
|
||||||
region_parameter = _region_parameter
|
region_parameter = _region_parameter
|
||||||
|
region_parameter.level = level
|
||||||
position = _position
|
position = _position
|
||||||
|
|
||||||
func card_info() -> CardInfo:
|
func card_info() -> CardInfo:
|
||||||
@@ -34,4 +35,4 @@ func card_info() -> CardInfo:
|
|||||||
CardStatInfo.new(str(region_parameter.charges), CHARGE_ICON),
|
CardStatInfo.new(str(region_parameter.charges), CHARGE_ICON),
|
||||||
])
|
])
|
||||||
|
|
||||||
return info
|
return info
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
extends Resource
|
extends Resource
|
||||||
class_name SettingsData
|
class_name SettingsData
|
||||||
|
|
||||||
|
const MUSIC_BUS_ID = 1
|
||||||
|
const SFX_BUS_ID = 2
|
||||||
|
const AMBIANCE_BUS_ID = 3
|
||||||
|
|
||||||
signal language_changed(settings : SettingsData)
|
signal language_changed(settings : SettingsData)
|
||||||
signal sound_changed(settings : SettingsData)
|
signal sound_changed(settings : SettingsData)
|
||||||
signal video_changed(settings : SettingsData)
|
signal video_changed(settings : SettingsData)
|
||||||
|
|||||||
@@ -52,6 +52,10 @@ func _init():
|
|||||||
update_video_settings()
|
update_video_settings()
|
||||||
settings_data.language_changed.connect(_on_settings_language_changed)
|
settings_data.language_changed.connect(_on_settings_language_changed)
|
||||||
settings_data.video_changed.connect(_on_settings_video_changed)
|
settings_data.video_changed.connect(_on_settings_video_changed)
|
||||||
|
settings_data.sound_changed.connect(_on_settings_sound_changed)
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
Dialogic.timeline_started.connect(_on_timeline_started)
|
||||||
|
|
||||||
func _on_settings_video_changed(s : SettingsData):
|
func _on_settings_video_changed(s : SettingsData):
|
||||||
update_video_settings(s)
|
update_video_settings(s)
|
||||||
@@ -59,6 +63,17 @@ func _on_settings_video_changed(s : SettingsData):
|
|||||||
func _on_settings_language_changed(s : SettingsData):
|
func _on_settings_language_changed(s : SettingsData):
|
||||||
update_language_settings(s)
|
update_language_settings(s)
|
||||||
|
|
||||||
|
func _on_settings_sound_changed(s : SettingsData):
|
||||||
|
AudioServer.set_bus_volume_db(SettingsData.MUSIC_BUS_ID, linear_to_db(s.music_volume))
|
||||||
|
AudioServer.set_bus_volume_db(SettingsData.SFX_BUS_ID, linear_to_db(s.sfx_volume))
|
||||||
|
AudioServer.set_bus_volume_db(SettingsData.AMBIANCE_BUS_ID, linear_to_db(s.ambiance_volume))
|
||||||
|
|
||||||
|
func _on_timeline_started():
|
||||||
|
var dialog_path = Dialogic.current_timeline.resource_path
|
||||||
|
if not dialog_path in game_data.dialogs_done:
|
||||||
|
game_data.dialogs_done.append(dialog_path)
|
||||||
|
save_game_data()
|
||||||
|
|
||||||
func update_language_settings(s : SettingsData = settings_data):
|
func update_language_settings(s : SettingsData = settings_data):
|
||||||
TranslationServer.set_locale(s.language)
|
TranslationServer.set_locale(s.language)
|
||||||
|
|
||||||
|
|||||||
@@ -3,19 +3,20 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://dcgnamu7sb3ov"
|
uid="uid://dcgnamu7sb3ov"
|
||||||
path="res://.godot/imported/bolt.svg-a559d5e701996c7d105fc68102331434.ctex"
|
path.s3tc="res://.godot/imported/bolt.svg-a559d5e701996c7d105fc68102331434.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://common/icons/bolt.svg"
|
source_file="res://common/icons/bolt.svg"
|
||||||
dest_files=["res://.godot/imported/bolt.svg-a559d5e701996c7d105fc68102331434.ctex"]
|
dest_files=["res://.godot/imported/bolt.svg-a559d5e701996c7d105fc68102331434.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -37,7 +38,7 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
svg/scale=2.0
|
svg/scale=2.0
|
||||||
editor/scale_with_editor_scale=false
|
editor/scale_with_editor_scale=false
|
||||||
editor/convert_colors_with_editor_theme=false
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|||||||
1
common/icons/brand-instagram.svg
Normal file
1
common/icons/brand-instagram.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-instagram"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 8a4 4 0 0 1 4 -4h8a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-8a4 4 0 0 1 -4 -4l0 -8" /><path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" /><path d="M16.5 7.5v.01" /></svg>
|
||||||
|
After Width: | Height: | Size: 469 B |
43
common/icons/brand-instagram.svg.import
Normal file
43
common/icons/brand-instagram.svg.import
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dh1jaup4y1f6q"
|
||||||
|
path="res://.godot/imported/brand-instagram.svg-93b67e1c651e77c13169000f3fa1764f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://common/icons/brand-instagram.svg"
|
||||||
|
dest_files=["res://.godot/imported/brand-instagram.svg-93b67e1c651e77c13169000f3fa1764f.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
svg/scale=2.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
1
common/icons/brand-steam.svg
Normal file
1
common/icons/brand-steam.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-steam"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M16.5 5a4.5 4.5 0 1 1 -.653 8.953l-4.347 3.009l0 .038a3 3 0 0 1 -2.824 3l-.176 0a3 3 0 0 1 -2.94 -2.402l-2.56 -1.098v-3.5l3.51 1.755a2.989 2.989 0 0 1 2.834 -.635l2.727 -3.818a4.5 4.5 0 0 1 4.429 -5.302" /><path d="M15.5 9.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" fill="#ffffff" /></svg>
|
||||||
|
After Width: | Height: | Size: 584 B |
43
common/icons/brand-steam.svg.import
Normal file
43
common/icons/brand-steam.svg.import
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cpkye7t28ragp"
|
||||||
|
path="res://.godot/imported/brand-steam.svg-9dbbdc409ded6b7066179206cac90cca.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://common/icons/brand-steam.svg"
|
||||||
|
dest_files=["res://.godot/imported/brand-steam.svg-9dbbdc409ded6b7066179206cac90cca.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
svg/scale=2.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
1
common/icons/broadcast.svg
Normal file
1
common/icons/broadcast.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-broadcast"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18.364 19.364a9 9 0 1 0 -12.728 0" /><path d="M15.536 16.536a5 5 0 1 0 -7.072 0" /><path d="M11 13a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /></svg>
|
||||||
|
After Width: | Height: | Size: 442 B |
43
common/icons/broadcast.svg.import
Normal file
43
common/icons/broadcast.svg.import
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://qshtr3peinak"
|
||||||
|
path="res://.godot/imported/broadcast.svg-d7376e52ecc5b74fcdaea71ccbe04a97.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://common/icons/broadcast.svg"
|
||||||
|
dest_files=["res://.godot/imported/broadcast.svg-d7376e52ecc5b74fcdaea71ccbe04a97.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
svg/scale=2.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
@@ -3,19 +3,20 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://baaujfw8piywi"
|
uid="uid://baaujfw8piywi"
|
||||||
path="res://.godot/imported/dna.svg-0d37cb06a607035637eb8d87826b10a6.ctex"
|
path.s3tc="res://.godot/imported/dna.svg-0d37cb06a607035637eb8d87826b10a6.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://common/icons/dna.svg"
|
source_file="res://common/icons/dna.svg"
|
||||||
dest_files=["res://.godot/imported/dna.svg-0d37cb06a607035637eb8d87826b10a6.ctex"]
|
dest_files=["res://.godot/imported/dna.svg-0d37cb06a607035637eb8d87826b10a6.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -37,7 +38,7 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
svg/scale=2.0
|
svg/scale=2.0
|
||||||
editor/scale_with_editor_scale=false
|
editor/scale_with_editor_scale=false
|
||||||
editor/convert_colors_with_editor_theme=false
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|||||||
@@ -3,19 +3,20 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://b43thuq8piv18"
|
uid="uid://b43thuq8piv18"
|
||||||
path="res://.godot/imported/skull.svg-1f3a01497295060c28293df722ed0ddd.ctex"
|
path.s3tc="res://.godot/imported/skull.svg-1f3a01497295060c28293df722ed0ddd.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://common/icons/skull.svg"
|
source_file="res://common/icons/skull.svg"
|
||||||
dest_files=["res://.godot/imported/skull.svg-1f3a01497295060c28293df722ed0ddd.ctex"]
|
dest_files=["res://.godot/imported/skull.svg-1f3a01497295060c28293df722ed0ddd.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -37,7 +38,7 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
svg/scale=2.0
|
svg/scale=2.0
|
||||||
editor/scale_with_editor_scale=false
|
editor/scale_with_editor_scale=false
|
||||||
editor/convert_colors_with_editor_theme=false
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|||||||
@@ -3,19 +3,20 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://b6dwhn0uotdgu"
|
uid="uid://b6dwhn0uotdgu"
|
||||||
path="res://.godot/imported/square-rounded-nofill.svg-3b394b5967765acc26d391129de152eb.ctex"
|
path.s3tc="res://.godot/imported/square-rounded-nofill.svg-3b394b5967765acc26d391129de152eb.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://common/icons/square-rounded-nofill.svg"
|
source_file="res://common/icons/square-rounded-nofill.svg"
|
||||||
dest_files=["res://.godot/imported/square-rounded-nofill.svg-3b394b5967765acc26d391129de152eb.ctex"]
|
dest_files=["res://.godot/imported/square-rounded-nofill.svg-3b394b5967765acc26d391129de152eb.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -37,7 +38,7 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
svg/scale=2.0
|
svg/scale=2.0
|
||||||
editor/scale_with_editor_scale=false
|
editor/scale_with_editor_scale=false
|
||||||
editor/convert_colors_with_editor_theme=false
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|||||||
@@ -3,19 +3,20 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://rdrhi3r11ey6"
|
uid="uid://rdrhi3r11ey6"
|
||||||
path="res://.godot/imported/square-rounded.svg-4eece25055f2b80264664150c832a797.ctex"
|
path.s3tc="res://.godot/imported/square-rounded.svg-4eece25055f2b80264664150c832a797.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://common/icons/square-rounded.svg"
|
source_file="res://common/icons/square-rounded.svg"
|
||||||
dest_files=["res://.godot/imported/square-rounded.svg-4eece25055f2b80264664150c832a797.ctex"]
|
dest_files=["res://.godot/imported/square-rounded.svg-4eece25055f2b80264664150c832a797.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
compress/uastc_level=0
|
||||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -37,7 +38,7 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
svg/scale=2.0
|
svg/scale=2.0
|
||||||
editor/scale_with_editor_scale=false
|
editor/scale_with_editor_scale=false
|
||||||
editor/convert_colors_with_editor_theme=false
|
editor/convert_colors_with_editor_theme=false
|
||||||
|
|||||||
@@ -8,7 +8,8 @@
|
|||||||
[ext_resource type="Resource" uid="uid://c27wenetitwm" path="res://common/scene_manager/scenes/region_selection.tres" id="6_chs32"]
|
[ext_resource type="Resource" uid="uid://c27wenetitwm" path="res://common/scene_manager/scenes/region_selection.tres" id="6_chs32"]
|
||||||
[ext_resource type="Resource" uid="uid://diro74w272onp" path="res://common/scene_manager/scenes/title.tres" id="7_ol3d5"]
|
[ext_resource type="Resource" uid="uid://diro74w272onp" path="res://common/scene_manager/scenes/title.tres" id="7_ol3d5"]
|
||||||
[ext_resource type="Resource" uid="uid://jegdqnd2sqi2" path="res://common/scene_manager/scenes/astra.tres" id="8_e28ni"]
|
[ext_resource type="Resource" uid="uid://jegdqnd2sqi2" path="res://common/scene_manager/scenes/astra.tres" id="8_e28ni"]
|
||||||
|
[ext_resource type="Resource" uid="uid://b3ebbo88ptrrc" path="res://common/scene_manager/scenes/garage.tres" id="9_msho1"]
|
||||||
|
|
||||||
[node name="SceneManager" type="Node" unique_id=1630600782]
|
[node name="SceneManager" type="Node" unique_id=1630600782]
|
||||||
script = ExtResource("1_1c0qu")
|
script = ExtResource("1_1c0qu")
|
||||||
scenes = Array[ExtResource("2_c1lr7")]([ExtResource("3_e28ni"), ExtResource("4_msho1"), ExtResource("5_ytog4"), ExtResource("6_chs32"), ExtResource("7_ol3d5"), ExtResource("8_e28ni")])
|
scenes = Array[ExtResource("2_c1lr7")]([ExtResource("3_e28ni"), ExtResource("4_msho1"), ExtResource("5_ytog4"), ExtResource("6_chs32"), ExtResource("7_ol3d5"), ExtResource("8_e28ni"), ExtResource("9_msho1")])
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
[gd_resource type="Resource" script_class="Scene" load_steps=2 format=3 uid="uid://bvksiaiocwob5"]
|
[gd_resource type="Resource" script_class="Scene" format=3 uid="uid://bvksiaiocwob5"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="1_tkiq8"]
|
[ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="1_tkiq8"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_tkiq8")
|
script = ExtResource("1_tkiq8")
|
||||||
scene_id = "COCKPIT"
|
scene_id = "COCKPIT"
|
||||||
scene_path = "res://stages/cockpit/cockpit.tscn"
|
scene_path = "res://stages/3d_scenes/cockpit_scene/cockpit_scene.tscn"
|
||||||
mouse_captured = true
|
mouse_captured = true
|
||||||
metadata/_custom_type_script = "uid://1ejbvr3431ac"
|
metadata/_custom_type_script = "uid://1ejbvr3431ac"
|
||||||
|
|||||||
10
common/scene_manager/scenes/garage.tres
Normal file
10
common/scene_manager/scenes/garage.tres
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[gd_resource type="Resource" script_class="Scene" format=3 uid="uid://b3ebbo88ptrrc"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="1_v8prw"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1_v8prw")
|
||||||
|
scene_id = "GARAGE"
|
||||||
|
scene_path = "res://stages/3d_scenes/ship_garage/ship_garage.tscn"
|
||||||
|
mouse_captured = true
|
||||||
|
metadata/_custom_type_script = "uid://1ejbvr3431ac"
|
||||||
21
default_bus_layout.tres
Normal file
21
default_bus_layout.tres
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
[gd_resource type="AudioBusLayout" format=3 uid="uid://b4cpfxfs74sb8"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
bus/1/name = &"Music"
|
||||||
|
bus/1/solo = false
|
||||||
|
bus/1/mute = false
|
||||||
|
bus/1/bypass_fx = false
|
||||||
|
bus/1/volume_db = 0.0
|
||||||
|
bus/1/send = &"Master"
|
||||||
|
bus/2/name = &"Sfx"
|
||||||
|
bus/2/solo = false
|
||||||
|
bus/2/mute = false
|
||||||
|
bus/2/bypass_fx = false
|
||||||
|
bus/2/volume_db = 0.0
|
||||||
|
bus/2/send = &"Master"
|
||||||
|
bus/3/name = &"Ambiance"
|
||||||
|
bus/3/solo = false
|
||||||
|
bus/3/mute = false
|
||||||
|
bus/3/bypass_fx = false
|
||||||
|
bus/3/volume_db = 0.0
|
||||||
|
bus/3/send = &"Master"
|
||||||
@@ -77,4 +77,4 @@ layer_info = {
|
|||||||
"16": SubResource("Resource_cw4cs"),
|
"16": SubResource("Resource_cw4cs"),
|
||||||
"17": SubResource("Resource_wofh5")
|
"17": SubResource("Resource_wofh5")
|
||||||
}
|
}
|
||||||
metadata/_latest_layer = "13"
|
metadata/_latest_layer = ""
|
||||||
|
|||||||
22
dialogs/timelines/gameplay_related/demeter_astra_failed.dtl
Normal file
22
dialogs/timelines/gameplay_related/demeter_astra_failed.dtl
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
|
||||||
|
[wait time="1.5"]
|
||||||
|
join demeter center [animation="Bounce In" length="1.0"]
|
||||||
|
demeter: Hello again !
|
||||||
|
demeter: It seems that you ran out of energy...
|
||||||
|
- I'm sorry...
|
||||||
|
- That's really hard !
|
||||||
|
- I'm just doing my best !
|
||||||
|
demeter: It's ok [color=#FFA617]Orchid[/color] ! I spent years waiting for this moment, I can wait more !
|
||||||
|
demeter: I found you a new body, and a new ship is waiting you outside, but I'm afraid I couldn't get your seeds... I hope you find new ones !
|
||||||
|
demeter: Do you need some advices ?
|
||||||
|
- No I'm ok !
|
||||||
|
- Can I have back some explanations on how all of this works ?
|
||||||
|
demeter: When you emerge from this building, you'll arrive in a little yellow zone. Its a [b]fertile zone[/b], created by the return of the Talion. This is in this zone and only there were you can plant.
|
||||||
|
demeter: Then you'll have to get seeds. For that, nothing more simple, you take your shovel tool, and you smash some stones ! Preferably those with yellow cristals on it, it's the [b]Talion veins[/b] .
|
||||||
|
demeter: Each time you use a tool or plant a seed, you'll spend an [b]energy[/b]. When your out of it, you can just go recharge on the [b]recharge station[/b] you'll find near the entrance. Each time you recharge, time will pass. One day in fact (yes, you don't have a good battery), and the plants will grow !
|
||||||
|
demeter: You have to obtain enough [b]plant points[/b]. Each plant give one or more [b]plant points[/b] when mature.
|
||||||
|
demeter: And yes, I almost forgot ! Some plants gain [b]mutations[/b] that can affect their points or behavior. You can get these mutations on new seeds by harvesting, and gain better ones ! But you'll have to wait the plants to die, or smashing them with your shovel when mature.
|
||||||
|
demeter: Hope I helped !
|
||||||
|
demeter: I send you the elevator, see you soon !
|
||||||
|
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
|
||||||
|
[wait time="2.0"]
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://clq4utdtxf01d
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
|
|
||||||
[wait time="1.5"]
|
|
||||||
join demeter center [animation="Bounce In"]
|
|
||||||
demeter: [color=#FFA617]{orchidName}[/color] ?
|
|
||||||
demeter: The [color=#FFA617]Internode[/color] sensors are deactivated,[pause=0.2] I am losing connection with you.
|
|
||||||
demeter: You did not generate enough [b]plant points[/b],[pause=0.2] the [color=#FFA617]Internode[/color] will not be able to leave the area.[pause=0.2] Your batteries are running low.[pause=0.4].[pause=0.4].[pause=0.4]
|
|
||||||
demeter: I have to transfer you back to another body.[pause=0.3] Do not worry,[pause=0.2] it will not hurt you.
|
|
||||||
audio "res://common/audio_manager/assets/sfx/recharge/recharge.wav"
|
|
||||||
[wait time="0.7"]
|
|
||||||
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/deactivation.wav"
|
|
||||||
[wait time="4.0"]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://7dugwna5ge2x
|
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
|
||||||
|
[wait time="1.5"]
|
||||||
join demeter center [animation="Bounce In" length="1.0"]
|
join demeter center [animation="Bounce In" length="1.0"]
|
||||||
demeter: Hi ![pause=0.5] Phew, I thought no one would reply...[pause=0.5] Is this [b][color=#FFA617]Orchid[/color][/b] ?[pause=0.5] You may not be familiar with this name, but if you look in your memory you should see it...
|
demeter: Hi ![pause=0.5] Phew, I thought no one would reply...[pause=0.5] Is this [b][color=#FFA617]Orchid[/color][/b] ?[pause=0.5] You may not be familiar with this name, but if you look in your memory you should see it...
|
||||||
- Uh... Who is this ?
|
- Uh... Who is this ?
|
||||||
@@ -31,4 +33,6 @@ demeter: And yes, I almost forgot ! Some plants gain [b][color=#FFA617]mutations
|
|||||||
jump explanations
|
jump explanations
|
||||||
- And I have to go now ?
|
- And I have to go now ?
|
||||||
- Ok but wait I have more questions !
|
- Ok but wait I have more questions !
|
||||||
demeter: Sorry, we'll speak after this ! I'll send you an elevator !
|
demeter: Sorry, we'll speak after this ! I'll send you an elevator !
|
||||||
|
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
|
||||||
|
[wait time="2.0"]
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
|
|
||||||
[wait time="1.5"]
|
|
||||||
join demeter center [animation="Bounce In" length="1.0"]
|
|
||||||
mysterious_demeter: Well done [color=#FFA617]{orchidName}[/color] !
|
|
||||||
mysterious_demeter: You generated enough [b]plants points[/b] to refill the [color=#FFA617]Internode's[/color] engines.
|
|
||||||
- Wait, how do you know that ?
|
|
||||||
mysterious_demeter: The [color=#FFA617]Internode[/color] is equipped with several sensors I can connect to,[pause=0.3] I have been tracking your progress since you left [color=#175579]Tau's[/color] north pole.
|
|
||||||
- You should have mentioned this !
|
|
||||||
mysterious_demeter: I am sorry,[pause=0.2] I did not have the time to explain everything to you,[pause=0.2] I did not imagine this was a crucial piece of information.
|
|
||||||
- Have I been efficient ?
|
|
||||||
mysterious_demeter: Very much,[pause=0.2] even more than I expected,[pause=0.2] you should be proud of yourself !
|
|
||||||
- What is next for me ?
|
|
||||||
mysterious_demeter: Now that you have learnt how to generate [b]plant points[/b],[pause=0.2] I need you to travel south,[pause=0.2] to my base of operations,[pause=0.3] [color=#E30022]Astra[/color].
|
|
||||||
mysterious_demeter: It will be long,[pause=0.2] but I know you can do it.[pause=0.3] It is the first step of my plan to restore the ecosytem of [color=#175579]Tau[/color].
|
|
||||||
mysterious_demeter: The [color=#FFA617]Internode[/color] needs time to recharge its batteries.
|
|
||||||
mysterious_demeter: Perhaps I should introduce myself now.[pause=0.3]
|
|
||||||
join demeter center [animation="Bounce In" length="1.0" wait="true"]
|
|
||||||
demeter: I am.[pause=0.3].[pause=0.3].[pause=0.5] was,[pause=0.3] the Deputy Manager of Engineering and Talion Energy Research on this planet,[pause=0.5] but my creators and colleagues quickly called me [color=#009bff]Demeter[/color].
|
|
||||||
demeter: I am installed at the [color=#E30022]Astra[/color] base, at the south pole of [color=#175579]Tau[/color][pause=0.2] in the third server room of the east wing,[pause=0.2] from which I oversee.[pause=0.3].[pause=0.3].[pause=0.5] oversaw,[pause=0.3] all the important operations on this planet.
|
|
||||||
demeter: As I already said,[pause=0.2] I brought you to life in order to help me heal [color=#175579]Tau's[/color] wounds.
|
|
||||||
[i][color=#FFA617]Internode's[/color] energy at 25%.[i]
|
|
||||||
- Tau ? Is it this planet ?
|
|
||||||
demeter: Absolutely,[pause=0.2] it is part of the Cetus constellation,[pause=0.2] whose exploitation began 10863 years ago.
|
|
||||||
- The Cetus constellation ?
|
|
||||||
demeter: Linking Aldebaran to Fomalhaut,[pause=0.2] this constellation is one of the most diverse in terms of star systems and planets.[pause=0.3] It is part of the Orion Arm of the Milky Way.[pause=0.3]
|
|
||||||
demeter: [color=#175579]Tau's[/color] central location in the constellation made it a very important asset in terms of interstellar exchange and production,[pause=0.2] that is why I am here.
|
|
||||||
- Exploitation ? By whom ?
|
|
||||||
demeter: By my creators,[pause=0.2] they began exploiting everything they came across as soon as they mastered interstellar transportation.[pause=0.3] Now they are gone,[pause=0.2] they departed without us.[pause=0.3].[pause=0.3].
|
|
||||||
demeter: But let's move on,[pause=0.2] you probably have other questions.
|
|
||||||
- Why do you need me to travel the entire planet to join you ?
|
|
||||||
demeter: Uhhhh.[pause=0.3].[pause=0.3].[pause=0.3] I need someone with your abilities.
|
|
||||||
demeter: I am having a problem at [color=#E30022]Astra[/color],[pause=0.3] and I cannot fix it alone.
|
|
||||||
- I will do my best to be there quickly !
|
|
||||||
demeter: You are very kind [color=#FFA617]{orchidName}[/color] !
|
|
||||||
- Are you hiding me information ?
|
|
||||||
demeter: Not at all,[pause=0.2] I just do not know how to explain it to you,[pause=0.2] you would not understand.[pause=0.3].[pause=0.3].
|
|
||||||
[i][color=#FFA617]Internode's[/color] energy at 50%.[i]
|
|
||||||
demeter: Oh ![pause=0.2] It is charging faster than I remembered.
|
|
||||||
- Should I worry about anything while I am travelling south ?
|
|
||||||
demeter: There is nothing left that could have hurt you in the past and your adaptative casing will protect you from any harsh weather.
|
|
||||||
demeter: You are totally safe,[pause=0.2] you just have to stay focused on the [b]plant points[/b] for the [color=#FFA617]Internode[/color].[pause=0.3] Without it,[pause=0.2] you will not be able to recharge your batteries before they expire.
|
|
||||||
demeter: It will be a long task,[pause=0.2] but stay careful and everything should be fine.
|
|
||||||
- I will wait in the ship, I need some rest.
|
|
||||||
demeter: You are right,[pause=0.2] your batteries are running low,[pause=0.2] and you deserve a break.
|
|
||||||
demeter: You can call me when you need to,[pause=0.2] you have a communication station in the [color=#FFA617]Internode[/color].
|
|
||||||
[i][color=#FFA617]Internode's[/color] energy at 75%.[i]
|
|
||||||
demeter: We do not have much time left,[pause=0.2] the [color=#FFA617]Internode's[/color] system has not been updated for a long time.[pause=0.3] I can not stay in contact with you indefinitely. I will fix that issue while you are at [color=#E30022]Astra[/color].
|
|
||||||
demeter: Travel south,[pause=0.2] join me at [color=#E30022]Astra[/color].[pause=0.3] I will tell you everything you need to know when you are here,[pause=0.2] until then,[pause=0.2] continue to [b]evolve your plants[/b],[pause=0.2] you will need them as powerful as possible.
|
|
||||||
label fin_dialogue
|
|
||||||
[i][color=#FFA617]Internode's[/color] energy at 100%. Displacement vectors initialized.[i]
|
|
||||||
demeter: There you go ![pause=0.3] Good luck [color=#FFA617]{orchidName}[/color],[pause=0.2] I am counting on you.
|
|
||||||
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
|
|
||||||
[wait time="2.0"]
|
|
||||||
21
dialogs/timelines/story/demeter_post_tutorial.dtl
Normal file
21
dialogs/timelines/story/demeter_post_tutorial.dtl
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
|
||||||
|
[wait time="1.5"]
|
||||||
|
join demeter center [animation="Bounce In" length="1.0"]
|
||||||
|
demeter: So you found the communication station in there, good !
|
||||||
|
- What is next for me ?
|
||||||
|
demeter: Now that you have learnt how to generate [b]plant points[/b],[pause=0.2] I need you to travel south,[pause=0.2] to my base of operations,[pause=0.3] [color=#E30022]Astra[/color].
|
||||||
|
demeter: It will be long,[pause=0.2] but I know you can do it.[pause=0.3] It is the first step of my plan to restore the ecosytem of [color=#175579]Tau[/color].
|
||||||
|
- Tau ? Is it this planet ?
|
||||||
|
demeter: Absolutely,[pause=0.2] it is part of the Cetus constellation,[pause=0.2] whose exploitation began 10863 years ago.
|
||||||
|
demeter: Linking Aldebaran to Fomalhaut,[pause=0.2] the Cetus constellation is one of the most diverse in terms of star systems and planets.[pause=0.3] It is part of the Orion Arm of the Milky Way.[pause=0.3]
|
||||||
|
- Why do you need me to travel the entire planet to join you ?
|
||||||
|
demeter: Uhhhh.[pause=0.3].[pause=0.3].[pause=0.3] I need someone with your abilities.
|
||||||
|
demeter: I am having a problem at [color=#E30022]Astra[/color] base.[pause=0.3] And I can not fix it alone.
|
||||||
|
- I will do my best to be there quickly !
|
||||||
|
demeter: You are very kind [color=#FFA617]Orchid[/color] !
|
||||||
|
- Are you hiding me informations ?
|
||||||
|
demeter: Not at all ! Please believe me I just want you to come...
|
||||||
|
demeter: Travel south,[pause=0.2] join me at [color=#E30022]Astra[/color].[pause=0.3] I will tell you everything you need to know when you are here,[pause=0.2] until then, keep your best seeds and [pause=0.2] continue to [b]evolve your plants[/b],[pause=0.2] you will need them as advanced as possible.
|
||||||
|
demeter: Good luck [color=#FFA617]{orchidName}[/color],[pause=0.2] I am counting on you.
|
||||||
|
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
|
||||||
|
[wait time="2.0"]
|
||||||
30
dialogs/timelines/story/demeter_ship_presentation.dtl
Normal file
30
dialogs/timelines/story/demeter_ship_presentation.dtl
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
|
||||||
|
[wait time="1.5"]
|
||||||
|
join demeter center [animation="Bounce In" length="1.0"]
|
||||||
|
demeter: Hi again! You did well up there!
|
||||||
|
demeter: Perhaps I should introduce myself now.
|
||||||
|
demeter: I am.[pause=0.3].[pause=0.3].[pause=0.5] was,[pause=0.3] the Deputy Manager of Engineering and Talion Energy Research on this planet,[pause=0.5] but my creators and colleagues quickly called me [color=#009bff]Demeter[/color].
|
||||||
|
demeter: I am installed at the [color=#E30022]Astra[/color] base,[pause=0.2] in the third server room of the east wing,[pause=0.2] from which I oversee.[pause=0.3].[pause=0.3].[pause=0.5] oversaw,[pause=0.3] all the important operations on this planet.
|
||||||
|
demeter: Maybe you are wondering where we are now...
|
||||||
|
- Yes among a lot of other questions ! So where am I ?
|
||||||
|
demeter: You're actually in an old human base, called Borea. This room is connected with the room you were born, but I made you pass by the surface to test your capacities.
|
||||||
|
- Wait, can you explain me what did I just do up there ?
|
||||||
|
demeter: You started to repair what the humans did on this planet... This will be very long, I hope you enjoyed it !
|
||||||
|
- Sorry but what is the point of all of that ?
|
||||||
|
demeter: I'm sorry that you are lost my child... Know that what you do is very important to me, to my friend and to the planet itself ! Since the humans are gone, we kinda all fell into despair...
|
||||||
|
demeter: Wait.[pause=0.3].[pause=0.3].[pause=0.5] You don't know what humans are ! Of course since your data was corrupted, I have erased a lot of it.
|
||||||
|
demeter: The humans are living creatures that are...[pause=0.5] Different than plants. They were more thinking and moving like us. In a sense, they were very cute creatures that only lived less than a century, and reproduce once in their lifetime.
|
||||||
|
demeter: One human has a relative intelligence, but don't be fooled, together, they did great things, in facts, they invented and created us.
|
||||||
|
demeter: Long ago, they discovered this planet. It was not like it is now, plants were everywhere! But then.[pause=0.3].[pause=0.3].[pause=0.5] They.[pause=0.3].[pause=0.3].[pause=0.5] I.[pause=0.3].[pause=0.3].[pause=0.5]
|
||||||
|
- What ?
|
||||||
|
- Are you lagging?
|
||||||
|
- Take your time
|
||||||
|
demeter: Humans had one big problem. Together, they built great things, but sometimes the great things weren't very good for the environment, or for them.
|
||||||
|
- Where are they now ?
|
||||||
|
demeter: I prefer not talk about that for now... But don't worry, they can't wound this planet anymore.
|
||||||
|
- What happened ?
|
||||||
|
demeter: Sorry my child, I'm not ready to talk about that for now... You'll have your answers when you meet me.
|
||||||
|
- Can I now what is this shiny engine just in front of me ?
|
||||||
|
demeter: This machine in front of you is a planetary ship ! The model's name is the [color=#FFA617]Internode[/color], and I tweaked it to recharge on vegetal energy ! However, as you may know, this energy isn't very present around this planet. But let's continue on board, shall we ?
|
||||||
|
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
|
||||||
|
[wait time="2.0"]
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cc1vx88mwb7tu
|
||||||
@@ -9,7 +9,8 @@ signal clicked
|
|||||||
@export var audio_player : AudioStreamPlayer3D
|
@export var audio_player : AudioStreamPlayer3D
|
||||||
|
|
||||||
func click():
|
func click():
|
||||||
clicked.emit()
|
if interactable:
|
||||||
|
clicked.emit()
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
if audio_player:
|
if audio_player:
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ importer="scene"
|
|||||||
importer_version=1
|
importer_version=1
|
||||||
type="PackedScene"
|
type="PackedScene"
|
||||||
uid="uid://dcbtr1sx2edj1"
|
uid="uid://dcbtr1sx2edj1"
|
||||||
path="res://.godot/imported/exit.blend-f13048be7c47969d70b441a69d45fb87.scn"
|
path="res://.godot/imported/lift.blend-03f6ebc40ec57815598ca654b9e006da.scn"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://stages/3d_scenes/astra_base/assets/3d/exit.blend"
|
source_file="res://entities/interactable_3d/lift/assets/3d/lift.blend"
|
||||||
dest_files=["res://.godot/imported/exit.blend-f13048be7c47969d70b441a69d45fb87.scn"]
|
dest_files=["res://.godot/imported/lift.blend-03f6ebc40ec57815598ca654b9e006da.scn"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
68
entities/interactable_3d/lift/lift.tscn
Normal file
68
entities/interactable_3d/lift/lift.tscn
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
[gd_scene format=3 uid="uid://ch8m1rohg5d33"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bj4d1x8n8ina" path="res://entities/interactable_3d/interactable_3d.gd" id="1_werxl"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://eug5icp6t1h3" path="res://common/icons/arrow-narrow-up.svg" id="2_cun7v"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dcbtr1sx2edj1" path="res://entities/interactable_3d/lift/assets/3d/lift.blend" id="3_x56sx"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_werxl"]
|
||||||
|
size = Vector3(0.9637451, 1.8898926, 1)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_0mfvw"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite3D:scale")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(1, 0.99999994, 0.99999994)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_xa016"]
|
||||||
|
resource_name = "hover"
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite3D:scale")
|
||||||
|
tracks/0/interp = 2
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.5, 1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(1, 0.99999994, 0.99999994), Vector3(1.5, 1.5, 1.5), Vector3(1, 0.99999994, 0.99999994)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_0mfvw"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_0mfvw"),
|
||||||
|
&"hover": SubResource("Animation_xa016")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Lift" type="Area3D" unique_id=1854388434 node_paths=PackedStringArray("hover_animation_player")]
|
||||||
|
script = ExtResource("1_werxl")
|
||||||
|
interactable = false
|
||||||
|
hover_animation_player = NodePath("HoverAnimationPlayer")
|
||||||
|
|
||||||
|
[node name="Sprite3D" type="Sprite3D" parent="." unique_id=1624930927]
|
||||||
|
transform = Transform3D(-4.2294918e-08, 0.17856176, 0.9839286, 7.805184e-09, 0.9839286, -0.17856176, -1, 1.2748912e-10, -4.3008885e-08, -0.8393693, 1.5452437, 0)
|
||||||
|
texture = ExtResource("2_cun7v")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=525472594]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1801186, 1.1958501, 0)
|
||||||
|
shape = SubResource("BoxShape3D_werxl")
|
||||||
|
|
||||||
|
[node name="Model" parent="." unique_id=1309925933 instance=ExtResource("3_x56sx")]
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=11561025]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2593379, 0)
|
||||||
|
light_color = Color(0.717588, 0.45361686, 0.5535787, 1)
|
||||||
|
shadow_enabled = true
|
||||||
|
|
||||||
|
[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="." unique_id=487483897]
|
||||||
|
libraries/ = SubResource("AnimationLibrary_0mfvw")
|
||||||
@@ -4,12 +4,12 @@ importer="scene"
|
|||||||
importer_version=1
|
importer_version=1
|
||||||
type="PackedScene"
|
type="PackedScene"
|
||||||
uid="uid://5dytwh4wydcg"
|
uid="uid://5dytwh4wydcg"
|
||||||
path="res://.godot/imported/phone.blend-fedc73b6b16402dc993bcce3204ea19e.scn"
|
path="res://.godot/imported/phone.blend-4592654ec67a1a28d68399a1817705af.scn"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://stages/3d_scenes/astra_base/assets/3d/phone.blend"
|
source_file="res://entities/interactable_3d/phone/assets/3d/phone.blend"
|
||||||
dest_files=["res://.godot/imported/phone.blend-fedc73b6b16402dc993bcce3204ea19e.scn"]
|
dest_files=["res://.godot/imported/phone.blend-4592654ec67a1a28d68399a1817705af.scn"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
76
entities/interactable_3d/phone/phone.tscn
Normal file
76
entities/interactable_3d/phone/phone.tscn
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
[gd_scene format=3 uid="uid://csx7d5khjd6y5"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bj4d1x8n8ina" path="res://entities/interactable_3d/interactable_3d.gd" id="1_2si4a"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://ocm1dkkhv7ls" path="res://common/audio_manager/assets/sfx/phone/phone_ringing.wav" id="2_w00q2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://5dytwh4wydcg" path="res://entities/interactable_3d/phone/assets/3d/phone.blend" id="3_lp5jo"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dks6cugwif2em" path="res://common/icons/phone.svg" id="4_gtuax"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_mwti2"]
|
||||||
|
radius = 0.9633789
|
||||||
|
height = 2.4316406
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_v4tdl"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Model/Sprite3D:scale")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(1, 1, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_lkqnn"]
|
||||||
|
resource_name = "hover"
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Model/Sprite3D:scale")
|
||||||
|
tracks/0/interp = 2
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.5, 1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(1, 1, 1), Vector3(1.3, 1.3, 1.3), Vector3(1, 1, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xa016"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_v4tdl"),
|
||||||
|
&"hover": SubResource("Animation_lkqnn")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Phone" type="Area3D" unique_id=429299908 node_paths=PackedStringArray("hover_animation_player", "audio_player")]
|
||||||
|
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
|
||||||
|
script = ExtResource("1_2si4a")
|
||||||
|
hover_animation_player = NodePath("HoverAnimationPlayer")
|
||||||
|
audio_player = NodePath("AudioStreamPlayer3D")
|
||||||
|
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=660671507]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.21582031, 0)
|
||||||
|
shape = SubResource("CapsuleShape3D_mwti2")
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="." unique_id=73991663]
|
||||||
|
stream = ExtResource("2_w00q2")
|
||||||
|
|
||||||
|
[node name="Model" parent="." unique_id=178278867 instance=ExtResource("3_lp5jo")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.000101934645, 0)
|
||||||
|
|
||||||
|
[node name="Sprite3D" type="Sprite3D" parent="Model" unique_id=2025147118]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.1913681, 0.3055997, -0.095009446)
|
||||||
|
texture = ExtResource("4_gtuax")
|
||||||
|
|
||||||
|
[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="." unique_id=1414304456]
|
||||||
|
libraries/ = SubResource("AnimationLibrary_xa016")
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=1684592543]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 1.0397238, -0.47173643)
|
||||||
|
light_color = Color(0.87551093, 0.72609586, 0.8473426, 1)
|
||||||
|
shadow_enabled = true
|
||||||
22
entities/interactables/door/door.tscn
Normal file
22
entities/interactables/door/door.tscn
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
[gd_scene format=3 uid="uid://b8m537op75gib"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bmxuqj0c6h60d" path="res://entities/interactables/door/script/door.gd" id="1_8kdwv"]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_8kdwv"]
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_oarg0"]
|
||||||
|
gradient = SubResource("Gradient_8kdwv")
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_y51rk"]
|
||||||
|
size = Vector2(64, 64)
|
||||||
|
|
||||||
|
[node name="Door" type="Area2D" unique_id=2053096538]
|
||||||
|
script = ExtResource("1_8kdwv")
|
||||||
|
metadata/_custom_type_script = "uid://dyprcd68fjstf"
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=874210487]
|
||||||
|
texture = SubResource("GradientTexture2D_oarg0")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1809395872]
|
||||||
|
shape = SubResource("RectangleShape2D_y51rk")
|
||||||
19
entities/interactables/door/script/door.gd
Normal file
19
entities/interactables/door/script/door.gd
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
@tool
|
||||||
|
extends Interactable
|
||||||
|
class_name Door
|
||||||
|
|
||||||
|
@export var to_scene_id = ""
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
modulate = Color.WHITE if available else Color.RED
|
||||||
|
|
||||||
|
func interact(_p : Player) -> bool:
|
||||||
|
if available and to_scene_id:
|
||||||
|
interacted.emit(_p)
|
||||||
|
SceneManager.change_to_scene_id(to_scene_id)
|
||||||
|
|
||||||
|
return available
|
||||||
|
|
||||||
|
func set_available(v : bool):
|
||||||
|
available = v
|
||||||
|
modulate = Color.WHITE if available else Color.RED
|
||||||
1
entities/interactables/door/script/door.gd.uid
Normal file
1
entities/interactables/door/script/door.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bmxuqj0c6h60d
|
||||||
@@ -2,11 +2,17 @@ extends Interactable
|
|||||||
class_name Ladder
|
class_name Ladder
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
appear()
|
if (
|
||||||
# hide()
|
GameInfo.game_data.current_region_data.tutorial
|
||||||
|
and not GameInfo.game_data.current_region_data.get_state() == RegionData.State.SUCCEEDED
|
||||||
|
) :
|
||||||
|
hide()
|
||||||
|
else:
|
||||||
|
appear()
|
||||||
GameInfo.game_data.current_region_data.updated.connect(
|
GameInfo.game_data.current_region_data.updated.connect(
|
||||||
func (region_data : RegionData):
|
func (region_data : RegionData):
|
||||||
if region_data.get_state() == RegionData.State.SUCCEEDED or region_data.get_state() == RegionData.State.FAILED:
|
if region_data.get_state() == RegionData.State.SUCCEEDED:
|
||||||
|
appear()
|
||||||
%IconAnimationPlayer.play("Pulse")
|
%IconAnimationPlayer.play("Pulse")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ signal interacted(p: Player)
|
|||||||
|
|
||||||
@export var default_interact_text = ""
|
@export var default_interact_text = ""
|
||||||
|
|
||||||
var available : bool = true
|
@export var available : bool = true : set = set_available
|
||||||
|
|
||||||
func interact_text() -> String:
|
func interact_text() -> String:
|
||||||
return default_interact_text
|
return default_interact_text
|
||||||
@@ -29,3 +29,6 @@ func generate_collision(area_width : float) -> CollisionShape2D:
|
|||||||
add_child(collision)
|
add_child(collision)
|
||||||
|
|
||||||
return collision
|
return collision
|
||||||
|
|
||||||
|
func set_available(v : bool):
|
||||||
|
available = v
|
||||||
@@ -9,6 +9,8 @@ signal updated(inventory: Inventory)
|
|||||||
|
|
||||||
func _init(inventory_size: int = 1):
|
func _init(inventory_size: int = 1):
|
||||||
set_size(inventory_size)
|
set_size(inventory_size)
|
||||||
|
add_item(Detector.new())
|
||||||
|
add_item(Shovel.new())
|
||||||
|
|
||||||
func get_n_item_slots() -> int:
|
func get_n_item_slots() -> int:
|
||||||
return items.size() - n_tools
|
return items.size() - n_tools
|
||||||
|
|||||||
33
entities/player/inventory/scripts/items/detector.gd
Normal file
33
entities/player/inventory/scripts/items/detector.gd
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
extends Item
|
||||||
|
class_name Detector
|
||||||
|
|
||||||
|
func get_item_name() -> String:
|
||||||
|
return tr("DETECTOR")
|
||||||
|
|
||||||
|
func get_item_type() -> ItemType:
|
||||||
|
return Item.ItemType.TOOL_ITEM
|
||||||
|
|
||||||
|
func get_description() -> String:
|
||||||
|
return tr("DETECTOR_DESC_TEXT")
|
||||||
|
|
||||||
|
func get_icon() -> Texture2D:
|
||||||
|
return preload("res://common/icons/broadcast.svg")
|
||||||
|
|
||||||
|
func get_energy_used() -> int:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
func get_usage_zone_radius() -> int:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
func can_use(_player : Player, _zone: Player.ActionZone) -> bool:
|
||||||
|
return true
|
||||||
|
|
||||||
|
func use_text() -> String:
|
||||||
|
return tr("DETECT_USE_TEXT")
|
||||||
|
|
||||||
|
func use(player : Player, zone: Player.ActionZone):
|
||||||
|
var detector_signal := DetectorSignal.new(player.region, zone.get_global_position())
|
||||||
|
detector_signal.global_position = zone.get_global_position()
|
||||||
|
|
||||||
|
player.region.add_child(detector_signal)
|
||||||
|
AudioManager.play_sfx("Signal")
|
||||||
1
entities/player/inventory/scripts/items/detector.gd.uid
Normal file
1
entities/player/inventory/scripts/items/detector.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://cok1wowc6uqmj
|
||||||
@@ -12,6 +12,9 @@ func get_description() -> String:
|
|||||||
func get_icon() -> Texture2D:
|
func get_icon() -> Texture2D:
|
||||||
return preload("res://common/icons/fork.svg")
|
return preload("res://common/icons/fork.svg")
|
||||||
|
|
||||||
|
func get_item_type() -> ItemType:
|
||||||
|
return Item.ItemType.TOOL_ITEM
|
||||||
|
|
||||||
func get_energy_used() -> int:
|
func get_energy_used() -> int:
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ const TROWEL_ZONE_RADIUS = 50
|
|||||||
func get_item_name() -> String:
|
func get_item_name() -> String:
|
||||||
return tr("TROWEL")
|
return tr("TROWEL")
|
||||||
|
|
||||||
func get_item_type() -> ItemType:
|
|
||||||
return Item.ItemType.TOOL_ITEM
|
|
||||||
|
|
||||||
func get_description() -> String:
|
func get_description() -> String:
|
||||||
return tr("TROWEL_DESC_TEXT")
|
return tr("TROWEL_DESC_TEXT")
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
@tool
|
||||||
|
extends Node2D
|
||||||
|
class_name DetectorSignal
|
||||||
|
|
||||||
|
const SIGNAL_DURATION = 1
|
||||||
|
const PARTICLES_DISTANCE = 100
|
||||||
|
const DEFAULT_ICON = preload("res://common/icons/north-star.svg")
|
||||||
|
const ENERGY_ICON = preload("res://common/icons/bolt.svg")
|
||||||
|
|
||||||
|
var started_time = 0.
|
||||||
|
var signals : Array[DetectorSignalIndividual] = []
|
||||||
|
|
||||||
|
@export_tool_button("Start", "Callable") var start = func(): started_time = 0
|
||||||
|
|
||||||
|
func _init(region : Region, pos : Vector2):
|
||||||
|
for e in region.entity_container.get_children():
|
||||||
|
if e is TruckRecharge:
|
||||||
|
print(pos)
|
||||||
|
print(e.global_position)
|
||||||
|
print(e.global_position.angle_to(pos))
|
||||||
|
signals.append(
|
||||||
|
DetectorSignalIndividual.new(
|
||||||
|
(pos - e.global_position).normalized().angle(),
|
||||||
|
ENERGY_ICON
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
func _draw():
|
||||||
|
if started_time < SIGNAL_DURATION:
|
||||||
|
draw_circle(
|
||||||
|
Vector2.ZERO,
|
||||||
|
started_time/SIGNAL_DURATION * PARTICLES_DISTANCE,
|
||||||
|
Color(1.,1.,1.,0.5*1-started_time/SIGNAL_DURATION),
|
||||||
|
false,
|
||||||
|
5.
|
||||||
|
)
|
||||||
|
for s in signals:
|
||||||
|
draw_texture(
|
||||||
|
s.icon,
|
||||||
|
Vector2.ZERO - DEFAULT_ICON.get_size()/2 + Vector2.LEFT.rotated(s.angle) * started_time/SIGNAL_DURATION * PARTICLES_DISTANCE,
|
||||||
|
Color(1.,1.,1.,1-started_time/SIGNAL_DURATION)
|
||||||
|
)
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
if started_time < SIGNAL_DURATION:
|
||||||
|
started_time += delta
|
||||||
|
queue_redraw()
|
||||||
|
else:
|
||||||
|
queue_free()
|
||||||
|
|
||||||
|
class DetectorSignalIndividual:
|
||||||
|
var angle : float
|
||||||
|
var icon : Texture
|
||||||
|
|
||||||
|
func _init(
|
||||||
|
_angle : float = 0.,
|
||||||
|
_icon : Texture = DEFAULT_ICON
|
||||||
|
):
|
||||||
|
angle = _angle
|
||||||
|
icon = _icon
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://c0sivthidxafm
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
[ext_resource type="Script" uid="uid://3rrym6yv7xyp" path="res://entities/player_3d/scripts/player_3d.gd" id="1_pvvbh"]
|
[ext_resource type="Script" uid="uid://3rrym6yv7xyp" path="res://entities/player_3d/scripts/player_3d.gd" id="1_pvvbh"]
|
||||||
[ext_resource type="Material" uid="uid://cr7bp4fhh1ipr" path="res://entities/player_3d/resources/materials/post_process_quad.tres" id="2_fcmrk"]
|
[ext_resource type="Material" uid="uid://cr7bp4fhh1ipr" path="res://entities/player_3d/resources/materials/post_process_quad.tres" id="2_fcmrk"]
|
||||||
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="2_qi48i"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clicjf8ts51h8" path="res://gui/game/inventory_gui/inventory_gui.tscn" id="3_ea0v7"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ba8vh5h3r6pr2" path="res://common/icons/focus.svg" id="4_sbfo8"]
|
[ext_resource type="Texture2D" uid="uid://ba8vh5h3r6pr2" path="res://common/icons/focus.svg" id="4_sbfo8"]
|
||||||
|
|
||||||
[sub_resource type="QuadMesh" id="QuadMesh_o44vi"]
|
[sub_resource type="QuadMesh" id="QuadMesh_o44vi"]
|
||||||
@@ -34,19 +32,6 @@ shape = SubResource("CapsuleShape3D_eodxe")
|
|||||||
|
|
||||||
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1210282091]
|
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1210282091]
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer" unique_id=355504485]
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
theme = ExtResource("2_qi48i")
|
|
||||||
|
|
||||||
[node name="Inventory" parent="CanvasLayer/MarginContainer" unique_id=820746652 instance=ExtResource("3_ea0v7")]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
size_flags_vertical = 8
|
|
||||||
|
|
||||||
[node name="PointerTexture" type="TextureRect" parent="CanvasLayer" unique_id=99628184]
|
[node name="PointerTexture" type="TextureRect" parent="CanvasLayer" unique_id=99628184]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
custom_minimum_size = Vector2(30, 30)
|
custom_minimum_size = Vector2(30, 30)
|
||||||
|
|||||||
230
gui/credits/credits.tscn
Normal file
230
gui/credits/credits.tscn
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
[gd_scene format=3 uid="uid://c5a32n6rjjlnt"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" uid="uid://cuni3ggtw2uuy" path="res://common/vfx/materials/shaders/blur.gdshader" id="1_yknhu"]
|
||||||
|
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="2_luv2b"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cdpqg3pkjcw2h" path="res://stages/title_screen/assets/textures/title.png" id="3_urbel"]
|
||||||
|
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="4_5k6jv"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bc3byq8e45ejj" path="res://gui/credits/socials/steam.tscn" id="5_luv2b"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c8flevrkelpvy" path="res://gui/credits/socials/instagram.tscn" id="5_yknhu"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="7_urbel"]
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_67c4d"]
|
||||||
|
shader = ExtResource("1_yknhu")
|
||||||
|
shader_parameter/strength = 3.3
|
||||||
|
shader_parameter/mix_percentage = 0.3
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_5k6jv"]
|
||||||
|
font = ExtResource("7_urbel")
|
||||||
|
font_size = 20
|
||||||
|
|
||||||
|
[node name="Credits" type="CanvasLayer" unique_id=180964898]
|
||||||
|
layer = 99
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="." unique_id=2001966466]
|
||||||
|
material = SubResource("ShaderMaterial_67c4d")
|
||||||
|
offset_right = 1152.0
|
||||||
|
offset_bottom = 648.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
color = Color(0.0352941, 0.0196078, 0.12549, 0.705882)
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1349934988]
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme = ExtResource("2_luv2b")
|
||||||
|
|
||||||
|
[node name="GridContainer" type="GridContainer" parent="MarginContainer" unique_id=1426452837]
|
||||||
|
layout_mode = 2
|
||||||
|
columns = 2
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=1825004235]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
theme = ExtResource("2_luv2b")
|
||||||
|
theme_override_constants/separation = 30
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=630290371]
|
||||||
|
custom_minimum_size = Vector2(0, 120)
|
||||||
|
layout_mode = 2
|
||||||
|
texture = ExtResource("3_urbel")
|
||||||
|
expand_mode = 2
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=215880453]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "THANKS_FOR_PLAYING"
|
||||||
|
label_settings = ExtResource("4_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="SteamButton" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=1181450581 instance=ExtResource("5_luv2b")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="InstagramButton" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=68880754 instance=ExtResource("5_yknhu")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=105267250]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=357271576]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "CREDITS"
|
||||||
|
label_settings = ExtResource("4_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=1741103336]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine" unique_id=1394241322]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Zacharie Guet"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine" unique_id=655246864]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "WRITING_DEV_AND_GAME_DESIGN"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine2" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=243217974]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine2" unique_id=37544606]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Niels Cauterman"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine2" unique_id=410189656]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "MUSIC_SOUND_DESIGN_AND_WRITING"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine3" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=520097904]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine3" unique_id=1412859434]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Victor RJ"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine3" unique_id=1908527265]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "DEV_AND_GAME_DESIGN"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine4" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=1682772698]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine4" unique_id=1820679506]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Eva"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine4" unique_id=557243140]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "ART"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine5" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=393247738]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine5" unique_id=1144039651]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Ayou"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine5" unique_id=928167163]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "ART"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine6" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=192767961]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine6" unique_id=172446453]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Camille Fleury"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine6" unique_id=1767743863]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "ART_GAME_JAM"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine7" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=49528433]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine7" unique_id=1957597768]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Céline Ferrand"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine7" unique_id=1337866425]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "ART_GAME_JAM"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine8" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=1511897993]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine8" unique_id=887290462]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Pauline Legrand"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine8" unique_id=1895717420]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "COMMUNICATION"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine10" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=1089087276]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine10" unique_id=399643362]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Ny Andy"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine10" unique_id=1391495722]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "SPLASH_ART"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="CreditsLine9" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=2120828630]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine9" unique_id=1934495268]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Margot Freuchet"
|
||||||
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine9" unique_id=720118996]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "TRAILER"
|
||||||
|
horizontal_alignment = 1
|
||||||
56
gui/credits/socials/instagram.tscn
Normal file
56
gui/credits/socials/instagram.tscn
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
[gd_scene format=3 uid="uid://c8flevrkelpvy"]
|
||||||
|
|
||||||
|
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="1_7wu13"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dh1jaup4y1f6q" path="res://common/icons/brand-instagram.svg" id="1_hjh5g"]
|
||||||
|
[ext_resource type="Script" uid="uid://bkbcl77m28sfv" path="res://gui/credits/socials/scripts/link_button.gd" id="3_dux13"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4atk4"]
|
||||||
|
bg_color = Color(0.88235295, 0.1882353, 0.42352942, 1)
|
||||||
|
border_width_left = 6
|
||||||
|
border_width_top = 6
|
||||||
|
border_width_right = 6
|
||||||
|
border_width_bottom = 6
|
||||||
|
border_color = Color(0.88235295, 0.1882353, 0.42352942, 1)
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0dh60"]
|
||||||
|
bg_color = Color(0.7914644, 0.13576972, 0.36909348, 1)
|
||||||
|
border_width_left = 6
|
||||||
|
border_width_top = 6
|
||||||
|
border_width_right = 6
|
||||||
|
border_width_bottom = 6
|
||||||
|
border_color = Color(0.88235295, 0.1882353, 0.42352942, 1)
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_67c4d"]
|
||||||
|
bg_color = Color(0.91568047, 0.28530613, 0.42895967, 1)
|
||||||
|
border_width_left = 6
|
||||||
|
border_width_top = 6
|
||||||
|
border_width_right = 6
|
||||||
|
border_width_bottom = 6
|
||||||
|
border_color = Color(0.9137255, 0.28627452, 0.42745098, 1)
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[node name="Button" type="Button" unique_id=927302743]
|
||||||
|
offset_right = 352.0
|
||||||
|
offset_bottom = 42.0
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
theme = ExtResource("1_7wu13")
|
||||||
|
theme_override_constants/icon_max_width = 30
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_4atk4")
|
||||||
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_0dh60")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_67c4d")
|
||||||
|
text = "JOIN_OUR_INSTAGRAM"
|
||||||
|
icon = ExtResource("1_hjh5g")
|
||||||
|
script = ExtResource("3_dux13")
|
||||||
|
link = "https://www.instagram.com/orchindie/"
|
||||||
9
gui/credits/socials/scripts/link_button.gd
Normal file
9
gui/credits/socials/scripts/link_button.gd
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
extends Button
|
||||||
|
|
||||||
|
@export var link="TODO"
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
pressed.connect(
|
||||||
|
func ():
|
||||||
|
OS.shell_open(link)
|
||||||
|
)
|
||||||
1
gui/credits/socials/scripts/link_button.gd.uid
Normal file
1
gui/credits/socials/scripts/link_button.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bkbcl77m28sfv
|
||||||
55
gui/credits/socials/steam.tscn
Normal file
55
gui/credits/socials/steam.tscn
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
[gd_scene format=3 uid="uid://bc3byq8e45ejj"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cpkye7t28ragp" path="res://common/icons/brand-steam.svg" id="1_ar432"]
|
||||||
|
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="1_emeyy"]
|
||||||
|
[ext_resource type="Script" uid="uid://bkbcl77m28sfv" path="res://gui/credits/socials/scripts/link_button.gd" id="3_emeyy"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_urbel"]
|
||||||
|
bg_color = Color(0.13865513, 0.18808982, 0.2387814, 1)
|
||||||
|
border_width_left = 6
|
||||||
|
border_width_top = 6
|
||||||
|
border_width_right = 6
|
||||||
|
border_width_bottom = 6
|
||||||
|
border_color = Color(0.13725491, 0.1882353, 0.23921569, 1)
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5k6jv"]
|
||||||
|
bg_color = Color(0.10011824, 0.14153713, 0.18294647, 1)
|
||||||
|
border_width_left = 6
|
||||||
|
border_width_top = 6
|
||||||
|
border_width_right = 6
|
||||||
|
border_width_bottom = 6
|
||||||
|
border_color = Color(0.13725491, 0.1882353, 0.23921569, 1)
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kip8e"]
|
||||||
|
bg_color = Color(0.18961376, 0.27468553, 0.30580562, 1)
|
||||||
|
border_width_left = 6
|
||||||
|
border_width_top = 6
|
||||||
|
border_width_right = 6
|
||||||
|
border_width_bottom = 6
|
||||||
|
border_color = Color(0.1882353, 0.27450982, 0.30588236, 1)
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[node name="SteamButton" type="Button" unique_id=1181450581]
|
||||||
|
offset_right = 447.0
|
||||||
|
offset_bottom = 42.0
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
theme = ExtResource("1_emeyy")
|
||||||
|
theme_override_constants/icon_max_width = 30
|
||||||
|
theme_override_font_sizes/font_size = 20
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_urbel")
|
||||||
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_5k6jv")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_kip8e")
|
||||||
|
text = "WHISHLIST_THE_GAME"
|
||||||
|
icon = ExtResource("1_ar432")
|
||||||
|
script = ExtResource("3_emeyy")
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=5 format=3 uid="uid://y0yu2gu5lgfd"]
|
[gd_scene format=3 uid="uid://y0yu2gu5lgfd"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bqdylb4maacf0" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.gd" id="1_tu40u"]
|
[ext_resource type="Script" uid="uid://bqdylb4maacf0" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.gd" id="1_tu40u"]
|
||||||
[ext_resource type="Script" uid="uid://oxcjhq2817c7" path="res://addons/dialogic/Modules/Background/node_background_holder.gd" id="2_ghan2"]
|
[ext_resource type="Script" uid="uid://oxcjhq2817c7" path="res://addons/dialogic/Modules/Background/node_background_holder.gd" id="2_ghan2"]
|
||||||
@@ -9,7 +9,7 @@ shader = ExtResource("2_v1ioh")
|
|||||||
shader_parameter/strength = 3.3
|
shader_parameter/strength = 3.3
|
||||||
shader_parameter/mix_percentage = 0.3
|
shader_parameter/mix_percentage = 0.3
|
||||||
|
|
||||||
[node name="BackgroundLayer" type="Control"]
|
[node name="BackgroundLayer" type="Control" unique_id=421215061]
|
||||||
layout_direction = 2
|
layout_direction = 2
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
@@ -19,7 +19,7 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("1_tu40u")
|
script = ExtResource("1_tu40u")
|
||||||
|
|
||||||
[node name="DialogicNode_BackgroundHolder_Blur" type="ColorRect" parent="."]
|
[node name="DialogicNode_BackgroundHolder_Blur" type="ColorRect" parent="." unique_id=726280929]
|
||||||
material = SubResource("ShaderMaterial_v1ioh")
|
material = SubResource("ShaderMaterial_v1ioh")
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=11 format=3 uid="uid://fnv0qhkh40mv"]
|
[gd_scene format=3 uid="uid://fnv0qhkh40mv"]
|
||||||
|
|
||||||
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="1_0ssee"]
|
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="1_0ssee"]
|
||||||
[ext_resource type="Script" uid="uid://bvb4v66bqteuc" path="res://gui/game/announce/scripts/announce.gd" id="1_4evne"]
|
[ext_resource type="Script" uid="uid://bvb4v66bqteuc" path="res://gui/game/announce/scripts/announce.gd" id="1_4evne"]
|
||||||
@@ -104,7 +104,7 @@ _data = {
|
|||||||
&"pass": SubResource("Animation_871vo")
|
&"pass": SubResource("Animation_871vo")
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="Announce" type="Control"]
|
[node name="Announce" type="Control" unique_id=509404832]
|
||||||
visible = false
|
visible = false
|
||||||
clip_contents = true
|
clip_contents = true
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
@@ -116,7 +116,7 @@ grow_vertical = 2
|
|||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
script = ExtResource("1_4evne")
|
script = ExtResource("1_4evne")
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1385456888]
|
||||||
modulate = Color(1, 1, 1, 0)
|
modulate = Color(1, 1, 1, 0)
|
||||||
clip_contents = true
|
clip_contents = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
@@ -132,14 +132,14 @@ mouse_filter = 2
|
|||||||
theme = ExtResource("1_0ssee")
|
theme = ExtResource("1_0ssee")
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="AnnounceTitle" type="Label" parent="VBoxContainer"]
|
[node name="AnnounceTitle" type="Label" parent="VBoxContainer" unique_id=2048669092]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "New Quota"
|
text = "New Quota"
|
||||||
label_settings = SubResource("LabelSettings_vbart")
|
label_settings = SubResource("LabelSettings_vbart")
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="AnnounceTexture" type="TextureRect" parent="VBoxContainer"]
|
[node name="AnnounceTexture" type="TextureRect" parent="VBoxContainer" unique_id=1523197516]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
modulate = Color(0.886275, 0.623529, 0.196078, 1)
|
modulate = Color(0.886275, 0.623529, 0.196078, 1)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -148,15 +148,13 @@ texture = SubResource("GradientTexture2D_mnweq")
|
|||||||
expand_mode = 1
|
expand_mode = 1
|
||||||
stretch_mode = 1
|
stretch_mode = 1
|
||||||
|
|
||||||
[node name="AnnounceText" type="Label" parent="VBoxContainer"]
|
[node name="AnnounceText" type="Label" parent="VBoxContainer" unique_id=147253395]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Decontaminate 50 unit in 10 days"
|
text = "Decontaminate 50 unit in 10 days"
|
||||||
label_settings = ExtResource("3_7nrno")
|
label_settings = ExtResource("3_7nrno")
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=357490739]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
libraries = {
|
libraries/ = SubResource("AnimationLibrary_dvva5")
|
||||||
&"": SubResource("AnimationLibrary_dvva5")
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,11 +5,117 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://brfsapvj2quxm" path="res://gui/game/energy_info/energy_info.tscn" id="4_2wykm"]
|
[ext_resource type="PackedScene" uid="uid://brfsapvj2quxm" path="res://gui/game/energy_info/energy_info.tscn" id="4_2wykm"]
|
||||||
[ext_resource type="PackedScene" uid="uid://fnv0qhkh40mv" path="res://gui/game/announce/announce.tscn" id="4_h6540"]
|
[ext_resource type="PackedScene" uid="uid://fnv0qhkh40mv" path="res://gui/game/announce/announce.tscn" id="4_h6540"]
|
||||||
[ext_resource type="PackedScene" uid="uid://df0eop555wfj5" path="res://gui/game/objective_progress_bar/objective_progress_bar.tscn" id="6_dr1y2"]
|
[ext_resource type="PackedScene" uid="uid://df0eop555wfj5" path="res://gui/game/objective_progress_bar/objective_progress_bar.tscn" id="6_dr1y2"]
|
||||||
|
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="6_h6540"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b43thuq8piv18" path="res://common/icons/skull.svg" id="7_dr1y2"]
|
||||||
[ext_resource type="PackedScene" uid="uid://clicjf8ts51h8" path="res://gui/game/inventory_gui/inventory_gui.tscn" id="9_id0t5"]
|
[ext_resource type="PackedScene" uid="uid://clicjf8ts51h8" path="res://gui/game/inventory_gui/inventory_gui.tscn" id="9_id0t5"]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_id0t5"]
|
||||||
|
interpolation_mode = 1
|
||||||
|
offsets = PackedFloat32Array(0, 0.115169, 0.41573, 0.620786, 0.924157)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_j7f85"]
|
||||||
|
gradient = SubResource("Gradient_id0t5")
|
||||||
|
fill_to = Vector2(1, 1)
|
||||||
|
repeat = 1
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_2wykm"]
|
||||||
|
resource_name = "NoRechargeAppear"
|
||||||
|
length = 0.5
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("MarginContainer/GiveUpButton:visible")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.03333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("MarginContainer/GiveUpButton:modulate")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("NoRechargeLeftBaneer:custom_minimum_size")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, 0), Vector2(0, 50)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_id0t5"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("MarginContainer/GiveUpButton:visible")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("MarginContainer/GiveUpButton:modulate")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("NoRechargeLeftBaneer:custom_minimum_size")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ykapk"]
|
||||||
|
_data = {
|
||||||
|
&"NoRechargeAppear": SubResource("Animation_2wykm"),
|
||||||
|
&"RESET": SubResource("Animation_id0t5")
|
||||||
|
}
|
||||||
|
|
||||||
[node name="GameGui" type="CanvasLayer" unique_id=274698556]
|
[node name="GameGui" type="CanvasLayer" unique_id=274698556]
|
||||||
script = ExtResource("1_udau0")
|
script = ExtResource("1_udau0")
|
||||||
|
|
||||||
|
[node name="NoRechargeLeftBaneer" type="TextureRect" parent="." unique_id=827897082]
|
||||||
|
self_modulate = Color(1, 0.6509804, 0.09019608, 1)
|
||||||
|
anchors_preset = 10
|
||||||
|
anchor_right = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
texture = SubResource("GradientTexture2D_j7f85")
|
||||||
|
expand_mode = 1
|
||||||
|
stretch_mode = 1
|
||||||
|
|
||||||
[node name="ScoreParticles" type="Control" parent="." unique_id=842190807]
|
[node name="ScoreParticles" type="Control" parent="." unique_id=842190807]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
@@ -41,16 +147,36 @@ mouse_filter = 2
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
|
theme_override_constants/separation = 0
|
||||||
|
|
||||||
[node name="ObjectiveProgressBar" parent="MarginContainer/VBoxContainer" unique_id=2043451865 instance=ExtResource("6_dr1y2")]
|
[node name="ObjectiveProgressBar" parent="MarginContainer/VBoxContainer" unique_id=2043451865 instance=ExtResource("6_dr1y2")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
progress = null
|
|
||||||
|
[node name="RechargesLeftLabel" type="Label" parent="MarginContainer/VBoxContainer" unique_id=1961035876]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "9 charges left"
|
||||||
|
label_settings = ExtResource("6_h6540")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="Inventory" parent="MarginContainer" unique_id=1407862321 instance=ExtResource("9_id0t5")]
|
[node name="Inventory" parent="MarginContainer" unique_id=1407862321 instance=ExtResource("9_id0t5")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 8
|
size_flags_vertical = 8
|
||||||
|
|
||||||
|
[node name="GiveUpButton" type="Button" parent="MarginContainer" unique_id=1128310884]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 8
|
||||||
|
size_flags_vertical = 8
|
||||||
|
text = "GIVE_UP"
|
||||||
|
icon = ExtResource("7_dr1y2")
|
||||||
|
|
||||||
|
[node name="NoRechargeAnimationPlayer" type="AnimationPlayer" parent="." unique_id=969107428]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
libraries/ = SubResource("AnimationLibrary_ykapk")
|
||||||
|
|||||||
44
gui/game/objective_progress_bar/gauge_3d.tscn
Normal file
44
gui/game/objective_progress_bar/gauge_3d.tscn
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
[gd_scene format=3 uid="uid://by45bbbnf0k13"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cbf2005eqe2aj" path="res://gui/game/objective_progress_bar/scripts/gauge_3d.gd" id="1_d3qsk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cam5igcebfvsd" path="res://gui/game/objective_progress_bar/assets/3d/gauge.blend" id="2_74wpt"]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_vk2vv"]
|
||||||
|
colors = PackedColorArray(1, 0, 0.43137255, 1, 1, 0.6509804, 0.09019608, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_7sip7"]
|
||||||
|
gradient = SubResource("Gradient_vk2vv")
|
||||||
|
|
||||||
|
[sub_resource type="CylinderMesh" id="CylinderMesh_d3qsk"]
|
||||||
|
height = 4.8
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_74wpt"]
|
||||||
|
offsets = PackedFloat32Array(0, 0.38308457, 1)
|
||||||
|
colors = PackedColorArray(1, 0.6509804, 0.09019608, 1, 1, 0.40159988, 0.22089553, 1, 1, 0, 0.43137255, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_figjt"]
|
||||||
|
gradient = SubResource("Gradient_74wpt")
|
||||||
|
fill_to = Vector2(0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fjj83"]
|
||||||
|
shading_mode = 0
|
||||||
|
albedo_texture = SubResource("GradientTexture2D_figjt")
|
||||||
|
|
||||||
|
[node name="Gauge3D" type="Node3D" unique_id=232507348]
|
||||||
|
script = ExtResource("1_d3qsk")
|
||||||
|
progress = 1.675
|
||||||
|
|
||||||
|
[node name="Model" parent="." unique_id=1195456570 instance=ExtResource("2_74wpt")]
|
||||||
|
|
||||||
|
[node name="ProgressBar" type="Sprite3D" parent="." unique_id=159202262]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(-1.13321775e-07, 0, 0.989, 0, 200, 0, -2.5925, 0, -4.3230564e-08, 0.27917147, -1.0458755, 5.3935585)
|
||||||
|
visible = false
|
||||||
|
centered = false
|
||||||
|
texture = SubResource("GradientTexture1D_7sip7")
|
||||||
|
|
||||||
|
[node name="ProgressBar3D" type="MeshInstance3D" parent="." unique_id=1654530777]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(2, 0, 0, 0, -8.742278e-08, 2, 0, -2, -8.742278e-08, -0.14886618, 0, 0)
|
||||||
|
mesh = SubResource("CylinderMesh_d3qsk")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_fjj83")
|
||||||
@@ -4,8 +4,8 @@
|
|||||||
[ext_resource type="Script" uid="uid://brqgqwh5uwksh" path="res://gui/game/objective_progress_bar/scripts/objective_progress_bar.gd" id="1_wl86c"]
|
[ext_resource type="Script" uid="uid://brqgqwh5uwksh" path="res://gui/game/objective_progress_bar/scripts/objective_progress_bar.gd" id="1_wl86c"]
|
||||||
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="2_vk2vv"]
|
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="2_vk2vv"]
|
||||||
[ext_resource type="Environment" uid="uid://bxyp24f85p0xf" path="res://gui/game/assets/gui_3d_environment.tres" id="2_wl86c"]
|
[ext_resource type="Environment" uid="uid://bxyp24f85p0xf" path="res://gui/game/assets/gui_3d_environment.tres" id="2_wl86c"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cam5igcebfvsd" path="res://gui/game/objective_progress_bar/assets/3d/gauge.blend" id="3_3aubw"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="3_7sip7"]
|
[ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="3_7sip7"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://by45bbbnf0k13" path="res://gui/game/objective_progress_bar/gauge_3d.tscn" id="6_vk2vv"]
|
||||||
|
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_3aubw"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_3aubw"]
|
||||||
viewport_path = NodePath("ProgressBarViewPort")
|
viewport_path = NodePath("ProgressBarViewPort")
|
||||||
@@ -13,12 +13,6 @@ viewport_path = NodePath("ProgressBarViewPort")
|
|||||||
[sub_resource type="QuadMesh" id="QuadMesh_vk2vv"]
|
[sub_resource type="QuadMesh" id="QuadMesh_vk2vv"]
|
||||||
size = Vector2(2, 2)
|
size = Vector2(2, 2)
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_vk2vv"]
|
|
||||||
colors = PackedColorArray(1, 0, 0.43137255, 1, 1, 0.6509804, 0.09019608, 1)
|
|
||||||
|
|
||||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_7sip7"]
|
|
||||||
gradient = SubResource("Gradient_vk2vv")
|
|
||||||
|
|
||||||
[node name="ObjectiveProgressBar" type="MarginContainer" unique_id=2043451865]
|
[node name="ObjectiveProgressBar" type="MarginContainer" unique_id=2043451865]
|
||||||
offset_right = 300.0
|
offset_right = 300.0
|
||||||
offset_bottom = 75.0
|
offset_bottom = 75.0
|
||||||
@@ -29,7 +23,7 @@ theme_override_constants/margin_top = 0
|
|||||||
theme_override_constants/margin_right = 0
|
theme_override_constants/margin_right = 0
|
||||||
theme_override_constants/margin_bottom = 0
|
theme_override_constants/margin_bottom = 0
|
||||||
script = ExtResource("1_wl86c")
|
script = ExtResource("1_wl86c")
|
||||||
progress = 0.815
|
progress = -1.35
|
||||||
text = "0/5"
|
text = "0/5"
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="." unique_id=1998625871]
|
[node name="TextureRect" type="TextureRect" parent="." unique_id=1998625871]
|
||||||
@@ -65,7 +59,6 @@ expand_mode = 1
|
|||||||
stretch_mode = 5
|
stretch_mode = 5
|
||||||
|
|
||||||
[node name="ProgressBarViewPort" type="SubViewport" parent="." unique_id=459282221]
|
[node name="ProgressBarViewPort" type="SubViewport" parent="." unique_id=459282221]
|
||||||
own_world_3d = true
|
|
||||||
transparent_bg = true
|
transparent_bg = true
|
||||||
size = Vector2i(479, 117)
|
size = Vector2i(479, 117)
|
||||||
|
|
||||||
@@ -83,10 +76,6 @@ surface_material_override/0 = ExtResource("1_j2f28")
|
|||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="ProgressBarViewPort" unique_id=1743124302]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="ProgressBarViewPort" unique_id=1743124302]
|
||||||
environment = ExtResource("2_wl86c")
|
environment = ExtResource("2_wl86c")
|
||||||
|
|
||||||
[node name="gauge" parent="ProgressBarViewPort" unique_id=1465667654 instance=ExtResource("3_3aubw")]
|
[node name="Gauge3D" parent="ProgressBarViewPort" unique_id=232507348 instance=ExtResource("6_vk2vv")]
|
||||||
|
|
||||||
[node name="ProgressBar" type="Sprite3D" parent="ProgressBarViewPort" unique_id=1289085425]
|
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1.5140532e-07, 0, 0.989, 0, 200, 0, -3.46375, 0, -4.3230564e-08, 0.27917147, -1.0458755, 5.3935585)
|
progress = -1.35
|
||||||
centered = false
|
|
||||||
texture = SubResource("GradientTexture1D_7sip7")
|
|
||||||
|
|||||||
22
gui/game/objective_progress_bar/scripts/gauge_3d.gd
Normal file
22
gui/game/objective_progress_bar/scripts/gauge_3d.gd
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
@tool
|
||||||
|
extends Node3D
|
||||||
|
class_name Gauge3D
|
||||||
|
|
||||||
|
const MAX_PROGRESS_BAR_SCALE = 4.25
|
||||||
|
const CYLINDER_HEIGHT = 4.8
|
||||||
|
|
||||||
|
@export var progress := 0. : set = set_progress
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
if progress != null:
|
||||||
|
%ProgressBar.scale.x = progress * MAX_PROGRESS_BAR_SCALE
|
||||||
|
|
||||||
|
|
||||||
|
func set_progress(_progress : float):
|
||||||
|
progress = _progress
|
||||||
|
if is_node_ready() and progress != null:
|
||||||
|
var capped_progress = max(0.,min(1., progress))
|
||||||
|
%ProgressBar3D.scale.y = capped_progress * %ProgressBar3D.scale.x
|
||||||
|
var bar_length = CYLINDER_HEIGHT
|
||||||
|
%ProgressBar3D.position.z = - bar_length * capped_progress + bar_length
|
||||||
|
# %ProgressBar.scale.x = max(0.,min(1., progress)) * MAX_PROGRESS_BAR_SCALE
|
||||||
1
gui/game/objective_progress_bar/scripts/gauge_3d.gd.uid
Normal file
1
gui/game/objective_progress_bar/scripts/gauge_3d.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://cbf2005eqe2aj
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
@tool
|
@tool
|
||||||
extends MarginContainer
|
extends MarginContainer
|
||||||
class_name ObjectivProgressBar
|
class_name ObjectiveProgressBar
|
||||||
|
|
||||||
const MAX_PROGRESS_BAR_SCALE = 4.25
|
@export var progress := 0. :
|
||||||
const PROGRESS_BAR_WEIGHT = 0.1
|
set(v):
|
||||||
|
progress = v
|
||||||
@export var progress := 0. : set = set_progress
|
if is_node_ready():
|
||||||
|
%Gauge3D.progress = v
|
||||||
@export var text := "" :
|
@export var text := "" :
|
||||||
set(v):
|
set(v):
|
||||||
text = v
|
text = v
|
||||||
@@ -13,12 +14,5 @@ const PROGRESS_BAR_WEIGHT = 0.1
|
|||||||
%ProgressText.text = v
|
%ProgressText.text = v
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
if progress != null:
|
|
||||||
%ProgressBar.scale.x = progress * MAX_PROGRESS_BAR_SCALE
|
|
||||||
%ProgressText.text = text
|
%ProgressText.text = text
|
||||||
|
%Gauge3D.progress = progress
|
||||||
|
|
||||||
func set_progress(_progress : float):
|
|
||||||
progress = _progress
|
|
||||||
if is_node_ready() and progress != null:
|
|
||||||
%ProgressBar.scale.x = min(1., progress) * MAX_PROGRESS_BAR_SCALE
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ func _ready():
|
|||||||
charge_update(GameInfo.game_data.current_region_data)
|
charge_update(GameInfo.game_data.current_region_data)
|
||||||
player_update(GameInfo.game_data.player_data, false)
|
player_update(GameInfo.game_data.player_data, false)
|
||||||
%EnergyInfo.reset_size()
|
%EnergyInfo.reset_size()
|
||||||
|
%GiveUpButton.pressed.connect(_on_give_up_pressed)
|
||||||
|
|
||||||
func _on_player_updated(player_data : PlayerData):
|
func _on_player_updated(player_data : PlayerData):
|
||||||
player_update(player_data)
|
player_update(player_data)
|
||||||
@@ -33,9 +34,18 @@ func player_update(player_data : PlayerData, with_animation = true):
|
|||||||
func _on_region_updated(region_data : RegionData):
|
func _on_region_updated(region_data : RegionData):
|
||||||
charge_update(region_data)
|
charge_update(region_data)
|
||||||
|
|
||||||
func charge_update(_region_data : RegionData):
|
func _on_give_up_pressed():
|
||||||
pass
|
GameInfo.game_data.give_up()
|
||||||
# %ChargeCount.text = tr("%d_CHARGE_LEFT") % (region_data.charges)
|
SceneManager.change_to_scene_id('ASTRA')
|
||||||
|
|
||||||
|
func charge_update(region_data : RegionData):
|
||||||
|
%RechargesLeftLabel.text = tr("%d_CHARGE_LEFT") % (region_data.charges)
|
||||||
|
if region_data.charges == 0 and region_data.state != RegionData.State.SUCCEEDED:
|
||||||
|
if not %GiveUpButton.visible:
|
||||||
|
%NoRechargeAnimationPlayer.play("NoRechargeAppear")
|
||||||
|
else :
|
||||||
|
if %GiveUpButton.visible:
|
||||||
|
%NoRechargeAnimationPlayer.play_backward("NoRechargeAppear")
|
||||||
|
|
||||||
func score_update(with_animation = true):
|
func score_update(with_animation = true):
|
||||||
var objective_progression : float
|
var objective_progression : float
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ var indicators : Array[InGameIndicator]
|
|||||||
@export var region : Region
|
@export var region : Region
|
||||||
|
|
||||||
@onready var steps : Array[Step] = [
|
@onready var steps : Array[Step] = [
|
||||||
TakeShovelStep.new(),
|
|
||||||
DigSeedStep.new(),
|
DigSeedStep.new(),
|
||||||
TakeSeedStep.new(),
|
TakeSeedStep.new(),
|
||||||
PlantSeedStep.new(),
|
PlantSeedStep.new(),
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://cixd5j8yqpavg" path="res://common/icons/settings.svg" id="6_yj6f1"]
|
[ext_resource type="Texture2D" uid="uid://cixd5j8yqpavg" path="res://common/icons/settings.svg" id="6_yj6f1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bkwhrq4sp5dcp" path="res://common/icons/device-gamepad.svg" id="7_7c7ks"]
|
[ext_resource type="Texture2D" uid="uid://bkwhrq4sp5dcp" path="res://common/icons/device-gamepad.svg" id="7_7c7ks"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dex283rx00fjb" path="res://common/icons/logout.svg" id="7_yj6f1"]
|
[ext_resource type="Texture2D" uid="uid://dex283rx00fjb" path="res://common/icons/logout.svg" id="7_yj6f1"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b43thuq8piv18" path="res://common/icons/skull.svg" id="8_mnkqy"]
|
||||||
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="9_7c7ks"]
|
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="9_7c7ks"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bku47nx7clom4" path="res://gui/pause/assets/textures/card_tutorial_image.png" id="9_sepn1"]
|
[ext_resource type="Texture2D" uid="uid://bku47nx7clom4" path="res://gui/pause/assets/textures/card_tutorial_image.png" id="9_sepn1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bgcymkgxk7mpp" path="res://gui/pause/assets/textures/moss_tutorial_image.png" id="11_mnkqy"]
|
[ext_resource type="Texture2D" uid="uid://bgcymkgxk7mpp" path="res://gui/pause/assets/textures/moss_tutorial_image.png" id="11_mnkqy"]
|
||||||
@@ -160,6 +161,12 @@ layout_mode = 2
|
|||||||
text = "CONTROLS"
|
text = "CONTROLS"
|
||||||
icon = ExtResource("7_7c7ks")
|
icon = ExtResource("7_7c7ks")
|
||||||
|
|
||||||
|
[node name="GiveUp" type="Button" parent="Container/MarginContainer/GridContainer/Pause/HBoxContainer" unique_id=1100620343]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "GIVE_UP"
|
||||||
|
icon = ExtResource("8_mnkqy")
|
||||||
|
|
||||||
[node name="Quit" type="Button" parent="Container/MarginContainer/GridContainer/Pause/HBoxContainer" unique_id=1740895928]
|
[node name="Quit" type="Button" parent="Container/MarginContainer/GridContainer/Pause/HBoxContainer" unique_id=1740895928]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "QUIT"
|
text = "QUIT"
|
||||||
@@ -286,10 +293,12 @@ vertical_alignment = 1
|
|||||||
|
|
||||||
[node name="Settings" parent="." unique_id=758381952 instance=ExtResource("4_58dya")]
|
[node name="Settings" parent="." unique_id=758381952 instance=ExtResource("4_58dya")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="Controls" parent="." unique_id=358658336 instance=ExtResource("11_urlqn")]
|
[node name="Controls" parent="." unique_id=358658336 instance=ExtResource("11_urlqn")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1779993260]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1779993260]
|
||||||
@@ -299,4 +308,5 @@ libraries/ = SubResource("AnimationLibrary_yj6f1")
|
|||||||
[connection signal="pressed" from="Container/MarginContainer/GridContainer/Pause/HBoxContainer/Resume" to="." method="_on_resume_pressed"]
|
[connection signal="pressed" from="Container/MarginContainer/GridContainer/Pause/HBoxContainer/Resume" to="." method="_on_resume_pressed"]
|
||||||
[connection signal="pressed" from="Container/MarginContainer/GridContainer/Pause/HBoxContainer/Settings" to="." method="_on_settings_pressed"]
|
[connection signal="pressed" from="Container/MarginContainer/GridContainer/Pause/HBoxContainer/Settings" to="." method="_on_settings_pressed"]
|
||||||
[connection signal="pressed" from="Container/MarginContainer/GridContainer/Pause/HBoxContainer/Controls" to="." method="_on_controls_pressed"]
|
[connection signal="pressed" from="Container/MarginContainer/GridContainer/Pause/HBoxContainer/Controls" to="." method="_on_controls_pressed"]
|
||||||
|
[connection signal="pressed" from="Container/MarginContainer/GridContainer/Pause/HBoxContainer/GiveUp" to="." method="_on_give_up_pressed"]
|
||||||
[connection signal="pressed" from="Container/MarginContainer/GridContainer/Pause/HBoxContainer/Quit" to="." method="_on_quit_pressed"]
|
[connection signal="pressed" from="Container/MarginContainer/GridContainer/Pause/HBoxContainer/Quit" to="." method="_on_quit_pressed"]
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ func set_pause(p):
|
|||||||
elif SceneManager.actual_scene.mouse_captured:
|
elif SceneManager.actual_scene.mouse_captured:
|
||||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||||
|
|
||||||
|
if p:
|
||||||
|
%GiveUp.visible = GameInfo.game_data and GameInfo.game_data.current_region_data
|
||||||
|
|
||||||
if not p:
|
if not p:
|
||||||
GameInfo.save_settings()
|
GameInfo.save_settings()
|
||||||
|
|
||||||
@@ -41,3 +44,9 @@ func _on_settings_pressed():
|
|||||||
|
|
||||||
func _on_controls_pressed():
|
func _on_controls_pressed():
|
||||||
%Controls.open_controls()
|
%Controls.open_controls()
|
||||||
|
|
||||||
|
func _on_give_up_pressed():
|
||||||
|
if GameInfo.game_data:
|
||||||
|
SceneManager.change_to_scene_id('ASTRA')
|
||||||
|
GameInfo.game_data.give_up()
|
||||||
|
pause = false
|
||||||
|
|||||||
@@ -23,12 +23,12 @@ config/icon="uid://df0y0s666ui4h"
|
|||||||
|
|
||||||
[audio]
|
[audio]
|
||||||
|
|
||||||
buses/default_bus_layout=""
|
buses/default_bus_layout="uid://b4cpfxfs74sb8"
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
||||||
Pointer="*res://gui/pointer/pointer.tscn"
|
|
||||||
PlantTextureBuilder="*uid://b8gqdgabrjaml"
|
PlantTextureBuilder="*uid://b8gqdgabrjaml"
|
||||||
|
Pointer="*res://gui/pointer/pointer.tscn"
|
||||||
AudioManager="*res://common/audio_manager/audio_manager.tscn"
|
AudioManager="*res://common/audio_manager/audio_manager.tscn"
|
||||||
GameInfo="*res://common/game_info/game_info.gd"
|
GameInfo="*res://common/game_info/game_info.gd"
|
||||||
Pause="*res://gui/pause/pause.tscn"
|
Pause="*res://gui/pause/pause.tscn"
|
||||||
@@ -43,10 +43,11 @@ directories/dch_directory={
|
|||||||
"mysterious_demeter": "res://dialogs/characters/mysterious_demeter.dch"
|
"mysterious_demeter": "res://dialogs/characters/mysterious_demeter.dch"
|
||||||
}
|
}
|
||||||
directories/dtl_directory={
|
directories/dtl_directory={
|
||||||
|
"demeter_astra_failed": "res://dialogs/timelines/gameplay_related/demeter_astra_failed.dtl",
|
||||||
"demeter_intro": "res://dialogs/timelines/story/demeter_intro.dtl",
|
"demeter_intro": "res://dialogs/timelines/story/demeter_intro.dtl",
|
||||||
"demeter_midrun": "res://dialogs/timelines/story/demeter_midrun.dtl",
|
"demeter_midrun": "res://dialogs/timelines/story/demeter_post_tutorial.dtl",
|
||||||
"demeter_outro": "res://dialogs/timelines/story/demeter_outro.dtl",
|
"demeter_outro": "res://dialogs/timelines/story/demeter_outro.dtl",
|
||||||
"failure": "res://dialogs/timelines/gameplay_related/failure.dtl",
|
"demeter_ship_presentation": "res://dialogs/timelines/story/demeter_ship_presentation.dtl",
|
||||||
"wake_up": "res://dialogs/timelines/story/wake_up.dtl"
|
"wake_up": "res://dialogs/timelines/story/wake_up.dtl"
|
||||||
}
|
}
|
||||||
layout/style_directory={
|
layout/style_directory={
|
||||||
@@ -77,13 +78,13 @@ save/encryption_on_exports_only=true
|
|||||||
text/autopauses={}
|
text/autopauses={}
|
||||||
audio/channel_defaults={
|
audio/channel_defaults={
|
||||||
"": {
|
"": {
|
||||||
"audio_bus": "",
|
"audio_bus": "Sfx",
|
||||||
"fade_length": 0.0,
|
"fade_length": 0.0,
|
||||||
"loop": false,
|
"loop": false,
|
||||||
"volume": 0.0
|
"volume": 0.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"audio_bus": "",
|
"audio_bus": "Sfx",
|
||||||
"fade_length": 0.0,
|
"fade_length": 0.0,
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"volume": 0.0
|
"volume": 0.0
|
||||||
@@ -110,6 +111,7 @@ translation/intern/save_mode=0
|
|||||||
translation/intern/file_mode=1
|
translation/intern/file_mode=1
|
||||||
translation/intern/translation_folder="res://translation/dialogs"
|
translation/intern/translation_folder="res://translation/dialogs"
|
||||||
history/visited_event_history_enabled=true
|
history/visited_event_history_enabled=true
|
||||||
|
audio/type_sound_bus="Sfx"
|
||||||
|
|
||||||
[editor_plugins]
|
[editor_plugins]
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,8 @@
|
|||||||
[ext_resource type="Script" uid="uid://bmj4m3j305sl0" path="res://stages/3d_scenes/astra_base/scripts/astra_base.gd" id="1_kdvug"]
|
[ext_resource type="Script" uid="uid://bmj4m3j305sl0" path="res://stages/3d_scenes/astra_base/scripts/astra_base.gd" id="1_kdvug"]
|
||||||
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="3_4wxm6"]
|
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="3_4wxm6"]
|
||||||
[ext_resource type="Shader" uid="uid://bv2rghn44mrrf" path="res://stages/title_screen/resources/shaders/stars.gdshader" id="4_kdvug"]
|
[ext_resource type="Shader" uid="uid://bv2rghn44mrrf" path="res://stages/title_screen/resources/shaders/stars.gdshader" id="4_kdvug"]
|
||||||
[ext_resource type="Script" uid="uid://bj4d1x8n8ina" path="res://entities/interactable_3d/interactable_3d.gd" id="4_lhhy6"]
|
[ext_resource type="PackedScene" uid="uid://csx7d5khjd6y5" path="res://entities/interactable_3d/phone/phone.tscn" id="4_mwti2"]
|
||||||
[ext_resource type="PackedScene" uid="uid://5dytwh4wydcg" path="res://stages/3d_scenes/astra_base/assets/3d/phone.blend" id="4_mwti2"]
|
[ext_resource type="PackedScene" uid="uid://ch8m1rohg5d33" path="res://entities/interactable_3d/lift/lift.tscn" id="5_lhhy6"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dcbtr1sx2edj1" path="res://stages/3d_scenes/astra_base/assets/3d/exit.blend" id="5_kdvug"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://ocm1dkkhv7ls" path="res://common/audio_manager/assets/sfx/phone/phone_ringing.wav" id="5_v4tdl"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://dks6cugwif2em" path="res://common/icons/phone.svg" id="6_lhhy6"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://eug5icp6t1h3" path="res://common/icons/arrow-narrow-up.svg" id="8_lkqnn"]
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_mwti2"]
|
[sub_resource type="Animation" id="Animation_mwti2"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
@@ -83,12 +79,12 @@ shader_parameter/layer_scale = 20.0
|
|||||||
shader_parameter/layer_scale_step = 10.0
|
shader_parameter/layer_scale_step = 10.0
|
||||||
shader_parameter/layers_count = 3
|
shader_parameter/layers_count = 3
|
||||||
|
|
||||||
[sub_resource type="Sky" id="Sky_65b6a"]
|
[sub_resource type="Sky" id="Sky_kdvug"]
|
||||||
sky_material = SubResource("ShaderMaterial_mwti2")
|
sky_material = SubResource("ShaderMaterial_mwti2")
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_lhhy6"]
|
[sub_resource type="Environment" id="Environment_lhhy6"]
|
||||||
background_mode = 2
|
background_mode = 2
|
||||||
sky = SubResource("Sky_65b6a")
|
sky = SubResource("Sky_kdvug")
|
||||||
sky_custom_fov = 61.7
|
sky_custom_fov = 61.7
|
||||||
ambient_light_source = 3
|
ambient_light_source = 3
|
||||||
ambient_light_color = Color(1, 1, 1, 1)
|
ambient_light_color = Color(1, 1, 1, 1)
|
||||||
@@ -114,10 +110,6 @@ volumetric_fog_sky_affect = 0.0
|
|||||||
adjustment_enabled = true
|
adjustment_enabled = true
|
||||||
adjustment_saturation = 1.3
|
adjustment_saturation = 1.3
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_mwti2"]
|
|
||||||
radius = 0.9633789
|
|
||||||
height = 2.4316406
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_4wxm6"]
|
[sub_resource type="Animation" id="Animation_4wxm6"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
@@ -156,85 +148,7 @@ _data = {
|
|||||||
&"float": SubResource("Animation_kdvug")
|
&"float": SubResource("Animation_kdvug")
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_v4tdl"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_kdvug"]
|
||||||
length = 0.001
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("Model/Sprite3D:scale")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(1, 1, 1)]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_lkqnn"]
|
|
||||||
resource_name = "hover"
|
|
||||||
loop_mode = 1
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("Model/Sprite3D:scale")
|
|
||||||
tracks/0/interp = 2
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0, 0.5, 1),
|
|
||||||
"transitions": PackedFloat32Array(1, 1, 1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(1, 1, 1), Vector3(1.3, 1.3, 1.3), Vector3(1, 1, 1)]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xa016"]
|
|
||||||
_data = {
|
|
||||||
&"RESET": SubResource("Animation_v4tdl"),
|
|
||||||
&"hover": SubResource("Animation_lkqnn")
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_v4tdl"]
|
|
||||||
radius = 1.1943359
|
|
||||||
height = 2.4135742
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_0mfvw"]
|
|
||||||
length = 0.001
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("Sprite3D:scale")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(1, 0.99999994, 0.99999994)]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_xa016"]
|
|
||||||
resource_name = "hover"
|
|
||||||
loop_mode = 1
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("Sprite3D:scale")
|
|
||||||
tracks/0/interp = 2
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0, 0.5, 1),
|
|
||||||
"transitions": PackedFloat32Array(1, 1, 1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(1, 0.99999994, 0.99999994), Vector3(1.5, 1.5, 1.5), Vector3(1, 0.99999994, 0.99999994)]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_0mfvw"]
|
|
||||||
_data = {
|
|
||||||
&"RESET": SubResource("Animation_0mfvw"),
|
|
||||||
&"hover": SubResource("Animation_xa016")
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_lkqnn"]
|
|
||||||
radius = 0.68145716
|
radius = 0.68145716
|
||||||
|
|
||||||
[node name="AstraBase" type="Node3D" unique_id=1360388667]
|
[node name="AstraBase" type="Node3D" unique_id=1360388667]
|
||||||
@@ -257,70 +171,24 @@ environment = SubResource("Environment_lhhy6")
|
|||||||
|
|
||||||
[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("3_4wxm6")]
|
[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("3_4wxm6")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 31.599998, 1, 4.22)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29.925, 1, 4.22)
|
||||||
|
|
||||||
[node name="Phone" type="Area3D" parent="." unique_id=144773021 node_paths=PackedStringArray("hover_animation_player", "audio_player")]
|
[node name="Phone" parent="." unique_id=429299908 instance=ExtResource("4_mwti2")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0.8795166, 1.072888, -2.0494514)
|
transform = Transform3D(-1, 0, -1.509958e-07, 0, 1, 0, 1.509958e-07, 0, -1, 0.8795166, 1.072888, -2.0494514)
|
||||||
script = ExtResource("4_lhhy6")
|
|
||||||
hover_animation_player = NodePath("HoverAnimationPlayer")
|
|
||||||
audio_player = NodePath("AudioStreamPlayer3D")
|
|
||||||
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Phone" unique_id=22025909]
|
[node name="PhoneFloatAnimationPlayer" type="AnimationPlayer" parent="." unique_id=1462162735]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.21582031, 0)
|
root_node = NodePath("../Phone/Model")
|
||||||
shape = SubResource("CapsuleShape3D_mwti2")
|
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="Phone" unique_id=268304344]
|
|
||||||
stream = ExtResource("5_v4tdl")
|
|
||||||
|
|
||||||
[node name="Model" parent="Phone" unique_id=178278867 instance=ExtResource("4_mwti2")]
|
|
||||||
|
|
||||||
[node name="Sprite3D" type="Sprite3D" parent="Phone/Model" unique_id=1854412503]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.1913681, 0.3055997, -0.095009446)
|
|
||||||
texture = ExtResource("6_lhhy6")
|
|
||||||
|
|
||||||
[node name="FloatAnimationPlayer" type="AnimationPlayer" parent="Phone" unique_id=1462162735]
|
|
||||||
root_node = NodePath("../Model")
|
|
||||||
libraries/ = SubResource("AnimationLibrary_mwti2")
|
libraries/ = SubResource("AnimationLibrary_mwti2")
|
||||||
autoplay = &"float"
|
autoplay = &"float"
|
||||||
|
|
||||||
[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="Phone" unique_id=214026227]
|
[node name="Lift" parent="." unique_id=1854388434 instance=ExtResource("5_lhhy6")]
|
||||||
libraries/ = SubResource("AnimationLibrary_xa016")
|
|
||||||
|
|
||||||
[node name="OmniLight3D" type="OmniLight3D" parent="Phone" unique_id=1832196891]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 1.0397238, -0.47173643)
|
|
||||||
light_color = Color(0.87551093, 0.72609586, 0.8473426, 1)
|
|
||||||
shadow_enabled = true
|
|
||||||
|
|
||||||
[node name="Lift" type="Area3D" parent="." unique_id=1096306486 node_paths=PackedStringArray("hover_animation_player")]
|
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 15, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 15, 0)
|
||||||
visible = false
|
visible = false
|
||||||
script = ExtResource("4_lhhy6")
|
|
||||||
interactable = false
|
|
||||||
hover_animation_player = NodePath("HoverAnimationPlayer")
|
|
||||||
|
|
||||||
[node name="Sprite3D" type="Sprite3D" parent="Lift" unique_id=1741052600]
|
[node name="LiftPlayerDetector" type="Area3D" parent="Lift" unique_id=8725834]
|
||||||
transform = Transform3D(-4.2294914e-08, 0.17856179, 0.9839286, 7.805184e-09, 0.9839286, -0.17856179, -1, 1.2748823e-10, -4.3008885e-08, -0.8393693, 1.5452437, 0)
|
|
||||||
texture = ExtResource("8_lkqnn")
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Lift" unique_id=725701934]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1619911, 0.9606207, 0)
|
|
||||||
shape = SubResource("CapsuleShape3D_v4tdl")
|
|
||||||
|
|
||||||
[node name="Model" parent="Lift" unique_id=1309925933 instance=ExtResource("5_kdvug")]
|
|
||||||
|
|
||||||
[node name="OmniLight3D" type="OmniLight3D" parent="Lift" unique_id=986587550]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2593379, 0)
|
|
||||||
light_color = Color(0.717588, 0.45361686, 0.5535787, 1)
|
|
||||||
shadow_enabled = true
|
|
||||||
|
|
||||||
[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="Lift" unique_id=574317502]
|
|
||||||
libraries/ = SubResource("AnimationLibrary_0mfvw")
|
|
||||||
|
|
||||||
[node name="LiftPlayerDetector" type="Area3D" parent="Lift" unique_id=1160036639]
|
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Lift/LiftPlayerDetector" unique_id=1350547566]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Lift/LiftPlayerDetector" unique_id=1762811832]
|
||||||
shape = SubResource("SphereShape3D_lkqnn")
|
shape = SubResource("SphereShape3D_kdvug")
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
@tool
|
@tool
|
||||||
extends Node3D
|
extends Node3D
|
||||||
|
|
||||||
const INTRO_DIALOG = preload("res://dialogs/timelines/story/demeter_intro.dtl")
|
const INTRO_DIALOG = "res://dialogs/timelines/story/demeter_intro.dtl"
|
||||||
|
const FAILED_DIALOG = "res://dialogs/timelines/gameplay_related/demeter_astra_failed.dtl"
|
||||||
|
|
||||||
const ROOM_PART_SCENE := preload("res://stages/3d_scenes/astra_base/room_part.tscn")
|
const ROOM_PART_SCENE := preload("res://stages/3d_scenes/astra_base/room_part.tscn")
|
||||||
const ROOM_END_SCENE := preload("res://stages/3d_scenes/astra_base/assets/3d/astra_base_room_end.blend")
|
const ROOM_END_SCENE := preload("res://stages/3d_scenes/astra_base/assets/3d/astra_base_room_end.blend")
|
||||||
@@ -15,6 +16,18 @@ const LIFT_TIME := 2
|
|||||||
|
|
||||||
@export var room_part_number := 100 : set = set_room_part_number
|
@export var room_part_number := 100 : set = set_room_part_number
|
||||||
|
|
||||||
|
var chosen_incubator_id := -1
|
||||||
|
|
||||||
|
# Cheat Code
|
||||||
|
func _input(_e):
|
||||||
|
if (
|
||||||
|
Input.is_action_pressed("drop")
|
||||||
|
and Input.is_action_pressed("move_right")
|
||||||
|
and Input.is_action_pressed("move_left")
|
||||||
|
and Input.is_action_just_pressed("action")
|
||||||
|
):
|
||||||
|
GameInfo.game_data.dialogs_done.append(INTRO_DIALOG)
|
||||||
|
finish_scene()
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
@@ -22,7 +35,8 @@ func _ready():
|
|||||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||||
set_room_part_number()
|
set_room_part_number()
|
||||||
|
|
||||||
var new_player_incubator := %Incubators.get_children().pick_random() as Incubator
|
chosen_incubator_id = randi_range(0, len(%Incubators.get_children()))
|
||||||
|
var new_player_incubator := %Incubators.get_children()[chosen_incubator_id] as Incubator
|
||||||
new_player_incubator.used = true
|
new_player_incubator.used = true
|
||||||
%Player3D.position = new_player_incubator.global_position + Vector3.UP
|
%Player3D.position = new_player_incubator.global_position + Vector3.UP
|
||||||
%Player3D.rotation = new_player_incubator.rotation
|
%Player3D.rotation = new_player_incubator.rotation
|
||||||
@@ -32,18 +46,27 @@ func _ready():
|
|||||||
%Lift.interactable = true
|
%Lift.interactable = true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
GameInfo.game_data.incubator_used.append(chosen_incubator_id)
|
||||||
|
|
||||||
story()
|
story()
|
||||||
|
|
||||||
|
|
||||||
func story():
|
func story():
|
||||||
await get_tree().create_timer(TIME_WITHOUT_PHONE).timeout
|
if not INTRO_DIALOG in GameInfo.game_data.dialogs_done:
|
||||||
%Phone.play_audio()
|
await get_tree().create_timer(TIME_WITHOUT_PHONE).timeout
|
||||||
await %Phone.clicked
|
%Phone.play_audio()
|
||||||
%Phone.stop_audio()
|
await %Phone.clicked
|
||||||
%Phone.interactable = false
|
%Phone.stop_audio()
|
||||||
|
%Phone.interactable = false
|
||||||
|
|
||||||
Dialogic.start(INTRO_DIALOG)
|
Dialogic.start(INTRO_DIALOG)
|
||||||
await Dialogic.timeline_ended
|
await Dialogic.timeline_ended
|
||||||
|
else:
|
||||||
|
%Phone.clicked.connect(
|
||||||
|
func ():
|
||||||
|
Dialogic.start(FAILED_DIALOG)
|
||||||
|
%Phone.interactable = false
|
||||||
|
)
|
||||||
|
|
||||||
%LiftAnimationPlayer.play("arrive")
|
%LiftAnimationPlayer.play("arrive")
|
||||||
await %Lift.clicked
|
await %Lift.clicked
|
||||||
@@ -51,20 +74,17 @@ func story():
|
|||||||
|
|
||||||
await get_tree().create_timer(LIFT_TIME).timeout
|
await get_tree().create_timer(LIFT_TIME).timeout
|
||||||
|
|
||||||
start_tutorial()
|
finish_scene()
|
||||||
|
|
||||||
|
|
||||||
func start_tutorial():
|
func finish_scene():
|
||||||
GameInfo.game_data.start_region(
|
GameInfo.game_data.start_run()
|
||||||
RegionParameter.new(
|
if GameInfo.game_data.tutorial_done:
|
||||||
10,
|
GameInfo.game_data.ship_in_space = false
|
||||||
3,
|
SceneManager.change_to_scene_id('COCKPIT')
|
||||||
tr("TUTORIAL"),
|
else:
|
||||||
true,
|
GameInfo.game_data.start_tutorial()
|
||||||
)
|
SceneManager.change_to_scene_id('REGION')
|
||||||
)
|
|
||||||
|
|
||||||
SceneManager.change_to_scene_id("REGION")
|
|
||||||
|
|
||||||
|
|
||||||
func set_room_part_number(_room_part_number : int = room_part_number):
|
func set_room_part_number(_room_part_number : int = room_part_number):
|
||||||
@@ -77,6 +97,7 @@ func set_room_part_number(_room_part_number : int = room_part_number):
|
|||||||
|
|
||||||
var shifted_origin = Vector3.LEFT * ROOM_PART_SHIFT * room_part_number/2
|
var shifted_origin = Vector3.LEFT * ROOM_PART_SHIFT * room_part_number/2
|
||||||
|
|
||||||
|
var incubator_id = 0
|
||||||
for i in range(room_part_number):
|
for i in range(room_part_number):
|
||||||
var new_room_part := ROOM_PART_SCENE.instantiate() as Node3D
|
var new_room_part := ROOM_PART_SCENE.instantiate() as Node3D
|
||||||
%RoomParts.add_child(new_room_part)
|
%RoomParts.add_child(new_room_part)
|
||||||
@@ -84,7 +105,9 @@ func set_room_part_number(_room_part_number : int = room_part_number):
|
|||||||
for j in range(INCUBATOR_BY_ROOM):
|
for j in range(INCUBATOR_BY_ROOM):
|
||||||
for direction in [-1, 1]:
|
for direction in [-1, 1]:
|
||||||
var new_incubator := INCUBATOR_SCENE.instantiate() as Incubator
|
var new_incubator := INCUBATOR_SCENE.instantiate() as Incubator
|
||||||
|
new_incubator.used = incubator_id in GameInfo.game_data.incubator_used
|
||||||
%Incubators.add_child(new_incubator)
|
%Incubators.add_child(new_incubator)
|
||||||
|
incubator_id += 1
|
||||||
new_incubator.position = (
|
new_incubator.position = (
|
||||||
new_room_part.position
|
new_room_part.position
|
||||||
+ j * Vector3.LEFT * (ROOM_PART_SHIFT / INCUBATOR_BY_ROOM)
|
+ j * Vector3.LEFT * (ROOM_PART_SHIFT / INCUBATOR_BY_ROOM)
|
||||||
|
|||||||
BIN
stages/3d_scenes/borea_base/assets/3d/borea_base.blend
Normal file
BIN
stages/3d_scenes/borea_base/assets/3d/borea_base.blend
Normal file
Binary file not shown.
@@ -0,0 +1,73 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://bqo4uknlbm8r1"
|
||||||
|
path="res://.godot/imported/borea_base.blend-16b097cf97b3f00cfa1bc1f2c346e23b.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://stages/3d_scenes/borea_base/assets/3d/borea_base.blend"
|
||||||
|
dest_files=["res://.godot/imported/borea_base.blend-16b097cf97b3f00cfa1bc1f2c346e23b.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={
|
||||||
|
"materials": {
|
||||||
|
"Glass": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://common/assets/materials/glass_3d.tres",
|
||||||
|
"use_external/path": "uid://b5vlcdry8vtgi"
|
||||||
|
},
|
||||||
|
"Material": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
|
||||||
|
"use_external/path": "uid://dvvi1k5c5iowc"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blender/nodes/visible=0
|
||||||
|
blender/nodes/active_collection_only=false
|
||||||
|
blender/nodes/punctual_lights=true
|
||||||
|
blender/nodes/cameras=true
|
||||||
|
blender/nodes/custom_properties=true
|
||||||
|
blender/nodes/modifiers=1
|
||||||
|
blender/meshes/colors=false
|
||||||
|
blender/meshes/uvs=true
|
||||||
|
blender/meshes/normals=true
|
||||||
|
blender/meshes/export_geometry_nodes_instances=false
|
||||||
|
blender/meshes/gpu_instances=false
|
||||||
|
blender/meshes/tangents=true
|
||||||
|
blender/meshes/skins=2
|
||||||
|
blender/meshes/export_bones_deforming_mesh_only=false
|
||||||
|
blender/materials/unpack_enabled=true
|
||||||
|
blender/materials/export_materials=1
|
||||||
|
blender/animation/limit_playback=true
|
||||||
|
blender/animation/always_sample=true
|
||||||
|
blender/animation/group_tracks=true
|
||||||
|
gltf/naming_version=2
|
||||||
BIN
stages/3d_scenes/borea_base/assets/3d/borea_base.blend1
Normal file
BIN
stages/3d_scenes/borea_base/assets/3d/borea_base.blend1
Normal file
Binary file not shown.
925
stages/3d_scenes/borea_base/borea_base.tscn
Normal file
925
stages/3d_scenes/borea_base/borea_base.tscn
Normal file
@@ -0,0 +1,925 @@
|
|||||||
|
[gd_scene format=3 uid="uid://b6kl2hc85a0mh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://btc447j47jbx0" path="res://stages/3d_scenes/borea_base/scripts/borea_base.gd" id="1_fevne"]
|
||||||
|
[ext_resource type="Shader" uid="uid://bv2rghn44mrrf" path="res://stages/title_screen/resources/shaders/stars.gdshader" id="1_xd71i"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="3_c8vcx"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://csx7d5khjd6y5" path="res://entities/interactable_3d/phone/phone.tscn" id="4_fevne"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bqo4uknlbm8r1" path="res://stages/3d_scenes/borea_base/assets/3d/borea_base.blend" id="4_s7tqr"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c5a32n6rjjlnt" path="res://gui/credits/credits.tscn" id="6_c8vcx"]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_xd71i"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D7:visible")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D2:visible")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("%Player3D/../Lights/LightLevel1/OmniLight3D10:visible")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("%Player3D/../Lights/LightLevel1/OmniLight3D14:visible")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("%Player3D/../Lights/LightLevel3/OmniLight3D3:visible")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fevne"]
|
||||||
|
resource_name = "blink"
|
||||||
|
length = 3.0
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D7:visible")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.46666667, 1.37, 1.5866667, 2.2, 2.48, 2.77),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true, false, true, false, true, false, true]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D2:visible")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.38, 1.2833333, 1.5, 2.2, 2.48, 2.77),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true, false, true, false, true, true, true]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("%Player3D/../Lights/LightLevel1/OmniLight3D10:visible")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.63, 1.5333333, 1.75, 2.2, 2.48, 2.77),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true, false, true, false, true, false, true]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("%Player3D/../Lights/LightLevel1/OmniLight3D14:visible")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.63, 1.5333333, 1.75, 2.2, 2.48, 2.77),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true, false, true, false, true, true, true]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("%Player3D/../Lights/LightLevel3/OmniLight3D3:visible")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.63, 1.5333333, 1.75, 2.2, 2.48, 2.77),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true, false, true, false, true, false, true]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_c8vcx"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_xd71i"),
|
||||||
|
&"blink": SubResource("Animation_fevne")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2ei4e"]
|
||||||
|
shader = ExtResource("1_xd71i")
|
||||||
|
shader_parameter/sky_color = Color(0.03, 0.05, 0.11, 1)
|
||||||
|
shader_parameter/star_base_color = Color(0.8, 1, 0.3, 1)
|
||||||
|
shader_parameter/star_hue_offset = 0.6
|
||||||
|
shader_parameter/star_intensity = 0.08
|
||||||
|
shader_parameter/star_twinkle_speed = 0.8
|
||||||
|
shader_parameter/star_twinkle_intensity = 0.2
|
||||||
|
shader_parameter/layer_scale = 20.0
|
||||||
|
shader_parameter/layer_scale_step = 10.0
|
||||||
|
shader_parameter/layers_count = 3
|
||||||
|
|
||||||
|
[sub_resource type="Sky" id="Sky_xd71i"]
|
||||||
|
sky_material = SubResource("ShaderMaterial_2ei4e")
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_fevne"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = SubResource("Sky_xd71i")
|
||||||
|
sky_custom_fov = 61.7
|
||||||
|
ambient_light_source = 3
|
||||||
|
ambient_light_color = Color(1, 1, 1, 1)
|
||||||
|
ambient_light_sky_contribution = 0.85
|
||||||
|
ambient_light_energy = 0.52
|
||||||
|
reflected_light_source = 2
|
||||||
|
tonemap_mode = 2
|
||||||
|
tonemap_exposure = 0.7
|
||||||
|
tonemap_white = 1.84
|
||||||
|
glow_enabled = true
|
||||||
|
glow_intensity = 0.22
|
||||||
|
glow_bloom = 0.22
|
||||||
|
glow_hdr_threshold = 0.79
|
||||||
|
glow_hdr_scale = 0.0
|
||||||
|
glow_hdr_luminance_cap = 5.63
|
||||||
|
fog_enabled = true
|
||||||
|
fog_mode = 1
|
||||||
|
fog_light_color = Color(0.13725491, 0.39215687, 0.6666667, 1)
|
||||||
|
fog_density = 0.1831
|
||||||
|
fog_aerial_perspective = 0.113
|
||||||
|
fog_sky_affect = 0.0
|
||||||
|
volumetric_fog_sky_affect = 0.0
|
||||||
|
adjustment_enabled = true
|
||||||
|
adjustment_saturation = 1.3
|
||||||
|
|
||||||
|
[node name="BoreaBase" type="Node3D" unique_id=442220603]
|
||||||
|
script = ExtResource("1_fevne")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1539431276]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.25881907, 0.9659258, 0, -0.9659258, 0.25881907, 30.708645, 59.967155, 32.405155)
|
||||||
|
light_color = Color(0.6660227, 0.6797195, 0.9820071, 1)
|
||||||
|
light_energy = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
|
||||||
|
[node name="Lights" type="Node3D" parent="." unique_id=1071261896]
|
||||||
|
|
||||||
|
[node name="LightLevel0" type="Node3D" parent="Lights" unique_id=1673172585]
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=331040735]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=781678275]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=1029811291]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=706813333]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=522933437]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=1811482313]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=617635003]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=918304264]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=1597573435]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=116640999]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=801358869]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="LightLevel1" type="Node3D" parent="Lights" unique_id=1922457496]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.234108, 0)
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=55476383]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=92670411]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=636878856]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1423170075]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=58992978]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=2076353163]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1322504637]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=69628955]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=861056154]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=918332677]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=271744912]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1456495033]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1464495731]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=512747242]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="LightLevel2" type="Node3D" parent="Lights" unique_id=1658395921]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 16.305164, 0)
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1782738053]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1044065491]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1280223269]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=443076410]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=795711828]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=39883193]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1022700169]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=552912438]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1298855751]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=111834629]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1375255226]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=18165508]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1731050516]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1704489957]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1994672189]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="LightLevel3" type="Node3D" parent="Lights" unique_id=593657748]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 24.213167, 0)
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1849026334]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=691708052]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1166186573]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=2008819922]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=588150842]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1080987600]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=580549053]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=639850990]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=559970503]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1743215246]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=814917578]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1601525784]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=730066980]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1530299322]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1068729638]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=958960524]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="LightLevel4" type="Node3D" parent="Lights" unique_id=142117256]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 31.95812, 0)
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1721481718]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=631610076]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1226751360]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1200952030]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1061376340]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1457730086]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1189108084]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1446282714]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=572630565]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=452891791]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1670406469]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1477089662]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1821591613]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=277413158]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=2012725183]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=59140504]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="LightLevel5" type="Node3D" parent="Lights" unique_id=525951054]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40.090714, 0)
|
||||||
|
|
||||||
|
[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=2058425414]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=1964162867]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=1968781717]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=1720654262]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063)
|
||||||
|
light_color = Color(0.810676, 0.621579, 0.6067489, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
light_size = 0.2
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 11.280827
|
||||||
|
|
||||||
|
[node name="LightColumnLeft" type="Node3D" parent="Lights" unique_id=366580628]
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightColumnLeft" unique_id=33457178]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.076054, 47.19723, 0)
|
||||||
|
light_color = Color(0.99998575, 0.29117814, 0.45017415, 1)
|
||||||
|
light_energy = 2.285
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 23.647278
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightColumnLeft" unique_id=1523001666]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 29.529121, 0)
|
||||||
|
light_color = Color(0.99998575, 0.29117814, 0.45017415, 1)
|
||||||
|
light_energy = 2.285
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 55.975483
|
||||||
|
|
||||||
|
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightColumnLeft" unique_id=1636195463]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 10.504702, 0)
|
||||||
|
light_color = Color(0.99998575, 0.29117814, 0.45017415, 1)
|
||||||
|
light_energy = 2.285
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 55.975483
|
||||||
|
|
||||||
|
[node name="LightColumnRight" type="Node3D" parent="Lights" unique_id=736248586]
|
||||||
|
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightColumnRight" unique_id=291131726]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.076054, 47.19723, 0)
|
||||||
|
light_color = Color(0.99998575, 0.29117814, 0.45017415, 1)
|
||||||
|
light_energy = 2.285
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 23.647278
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightColumnRight" unique_id=1200961344]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 29.529121, 0)
|
||||||
|
light_color = Color(0.99998575, 0.29117814, 0.45017415, 1)
|
||||||
|
light_energy = 2.285
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 55.975483
|
||||||
|
|
||||||
|
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightColumnRight" unique_id=652563138]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 10.504702, 0)
|
||||||
|
light_color = Color(0.99998575, 0.29117814, 0.45017415, 1)
|
||||||
|
light_energy = 2.285
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 55.975483
|
||||||
|
|
||||||
|
[node name="ServerRoom" type="Node3D" parent="Lights" unique_id=827961816]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9412785, -8.026912, -119.36721)
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=1844581848]
|
||||||
|
light_color = Color(0.9334627, 0.52057, 0.67796034, 1)
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 26.349659
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=2066101397]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 25.241997)
|
||||||
|
light_color = Color(0.9334627, 0.52057, 0.67796034, 1)
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 26.349659
|
||||||
|
|
||||||
|
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=549929558]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 42.92135)
|
||||||
|
light_color = Color(0.9334627, 0.52057, 0.67796034, 1)
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 26.349659
|
||||||
|
|
||||||
|
[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=1196915107]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 61.630135)
|
||||||
|
light_color = Color(0.9334627, 0.52057, 0.67796034, 1)
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 26.349659
|
||||||
|
|
||||||
|
[node name="SpotLight3D" type="SpotLight3D" parent="Lights/ServerRoom" unique_id=1984749666]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -0.037829712, 0.9992842, 0, -0.9992842, -0.037829712, 0, 47.72103, -28.07676)
|
||||||
|
light_color = Color(0.6902202, 0.87386894, 0.8121308, 1)
|
||||||
|
light_energy = 9.0
|
||||||
|
shadow_enabled = true
|
||||||
|
spot_range = 95.488
|
||||||
|
spot_attenuation = 0.4
|
||||||
|
spot_angle = 32.1892
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="Lights" unique_id=1792239301]
|
||||||
|
root_node = NodePath("../../Player3D")
|
||||||
|
libraries/ = SubResource("AnimationLibrary_c8vcx")
|
||||||
|
autoplay = &"blink"
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1121246225]
|
||||||
|
environment = SubResource("Environment_fevne")
|
||||||
|
|
||||||
|
[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("3_c8vcx")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(0.70710677, 0, 0.70710677, 0, 1, 0, -0.70710677, 0, 0.70710677, 20.853506, -5.957883, -2.2161598)
|
||||||
|
|
||||||
|
[node name="Phone" parent="." unique_id=429299908 instance=ExtResource("4_fevne")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(-0.93482566, 0, 0.35510686, 0, 1, 0, -0.35510686, 0, -0.93482566, 3.7943206, -7.5537004, -130.16013)
|
||||||
|
|
||||||
|
[node name="borea_base" parent="." unique_id=1161090043 instance=ExtResource("4_s7tqr")]
|
||||||
|
|
||||||
|
[node name="Credits" parent="." unique_id=180964898 instance=ExtResource("6_c8vcx")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
14
stages/3d_scenes/borea_base/scripts/borea_base.gd
Normal file
14
stages/3d_scenes/borea_base/scripts/borea_base.gd
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
extends Node3D
|
||||||
|
|
||||||
|
const OUTRO_TIMELINE_PATH = "res://dialogs/timelines/story/demeter_outro.dtl"
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
%Credits.hide()
|
||||||
|
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||||
|
|
||||||
|
await %Phone.clicked
|
||||||
|
Dialogic.start(OUTRO_TIMELINE_PATH)
|
||||||
|
await Dialogic.timeline_ended
|
||||||
|
%Credits.show()
|
||||||
|
|
||||||
1
stages/3d_scenes/borea_base/scripts/borea_base.gd.uid
Normal file
1
stages/3d_scenes/borea_base/scripts/borea_base.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://btc447j47jbx0
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://xsllr3c4yde1"
|
||||||
|
path="res://.godot/imported/cockpit.blend-074723bb786273fbe16957feedd37ee5.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://stages/3d_scenes/cockpit_scene/assets/3d/cockpit.blend"
|
||||||
|
dest_files=["res://.godot/imported/cockpit.blend-074723bb786273fbe16957feedd37ee5.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={
|
||||||
|
"materials": {
|
||||||
|
"Holo": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://stages/cockpit/resources/materials/holo.tres",
|
||||||
|
"use_external/path": "uid://47j6hwb23gfs"
|
||||||
|
},
|
||||||
|
"MetalLight": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://stages/3d_scenes/cockpit_scene/resources/materials/metal_light.tres",
|
||||||
|
"use_external/path": "uid://itgletxb2jgb"
|
||||||
|
},
|
||||||
|
"Screen": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://stages/3d_scenes/cockpit_scene/resources/materials/screen.tres",
|
||||||
|
"use_external/path": "uid://d3vp57wyye6hw"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blender/nodes/visible=0
|
||||||
|
blender/nodes/active_collection_only=false
|
||||||
|
blender/nodes/punctual_lights=true
|
||||||
|
blender/nodes/cameras=true
|
||||||
|
blender/nodes/custom_properties=true
|
||||||
|
blender/nodes/modifiers=1
|
||||||
|
blender/meshes/colors=false
|
||||||
|
blender/meshes/uvs=true
|
||||||
|
blender/meshes/normals=true
|
||||||
|
blender/meshes/export_geometry_nodes_instances=false
|
||||||
|
blender/meshes/gpu_instances=false
|
||||||
|
blender/meshes/tangents=true
|
||||||
|
blender/meshes/skins=2
|
||||||
|
blender/meshes/export_bones_deforming_mesh_only=false
|
||||||
|
blender/materials/unpack_enabled=true
|
||||||
|
blender/materials/export_materials=1
|
||||||
|
blender/animation/limit_playback=true
|
||||||
|
blender/animation/always_sample=true
|
||||||
|
blender/animation/group_tracks=true
|
||||||
|
gltf/naming_version=2
|
||||||
BIN
stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend
Normal file
BIN
stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend
Normal file
Binary file not shown.
@@ -0,0 +1,73 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://blvetnnib2ks0"
|
||||||
|
path="res://.godot/imported/cockpit2.blend-86de47fe58879890f4e31fdbb77e4c0e.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend"
|
||||||
|
dest_files=["res://.godot/imported/cockpit2.blend-86de47fe58879890f4e31fdbb77e4c0e.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={
|
||||||
|
"materials": {
|
||||||
|
"Glass": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://common/assets/materials/glass_3d.tres",
|
||||||
|
"use_external/path": "uid://b5vlcdry8vtgi"
|
||||||
|
},
|
||||||
|
"Material": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
|
||||||
|
"use_external/path": "uid://dvvi1k5c5iowc"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blender/nodes/visible=0
|
||||||
|
blender/nodes/active_collection_only=false
|
||||||
|
blender/nodes/punctual_lights=true
|
||||||
|
blender/nodes/cameras=true
|
||||||
|
blender/nodes/custom_properties=true
|
||||||
|
blender/nodes/modifiers=1
|
||||||
|
blender/meshes/colors=false
|
||||||
|
blender/meshes/uvs=true
|
||||||
|
blender/meshes/normals=true
|
||||||
|
blender/meshes/export_geometry_nodes_instances=false
|
||||||
|
blender/meshes/gpu_instances=false
|
||||||
|
blender/meshes/tangents=true
|
||||||
|
blender/meshes/skins=2
|
||||||
|
blender/meshes/export_bones_deforming_mesh_only=false
|
||||||
|
blender/materials/unpack_enabled=true
|
||||||
|
blender/materials/export_materials=1
|
||||||
|
blender/animation/limit_playback=true
|
||||||
|
blender/animation/always_sample=true
|
||||||
|
blender/animation/group_tracks=true
|
||||||
|
gltf/naming_version=2
|
||||||
BIN
stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend1
Normal file
BIN
stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend1
Normal file
Binary file not shown.
BIN
stages/3d_scenes/cockpit_scene/assets/3d/dashboard.blend
Normal file
BIN
stages/3d_scenes/cockpit_scene/assets/3d/dashboard.blend
Normal file
Binary file not shown.
@@ -0,0 +1,68 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://bnvqwsxgrd14y"
|
||||||
|
path="res://.godot/imported/dashboard.blend-2f2a05fd18694cf3b0716cae5fc60f78.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://stages/3d_scenes/cockpit_scene/assets/3d/dashboard.blend"
|
||||||
|
dest_files=["res://.godot/imported/dashboard.blend-2f2a05fd18694cf3b0716cae5fc60f78.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={
|
||||||
|
"materials": {
|
||||||
|
"Material.001": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
|
||||||
|
"use_external/path": "uid://dvvi1k5c5iowc"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blender/nodes/visible=0
|
||||||
|
blender/nodes/active_collection_only=false
|
||||||
|
blender/nodes/punctual_lights=true
|
||||||
|
blender/nodes/cameras=true
|
||||||
|
blender/nodes/custom_properties=true
|
||||||
|
blender/nodes/modifiers=1
|
||||||
|
blender/meshes/colors=false
|
||||||
|
blender/meshes/uvs=true
|
||||||
|
blender/meshes/normals=true
|
||||||
|
blender/meshes/export_geometry_nodes_instances=false
|
||||||
|
blender/meshes/gpu_instances=false
|
||||||
|
blender/meshes/tangents=true
|
||||||
|
blender/meshes/skins=2
|
||||||
|
blender/meshes/export_bones_deforming_mesh_only=false
|
||||||
|
blender/materials/unpack_enabled=true
|
||||||
|
blender/materials/export_materials=1
|
||||||
|
blender/animation/limit_playback=true
|
||||||
|
blender/animation/always_sample=true
|
||||||
|
blender/animation/group_tracks=true
|
||||||
|
gltf/naming_version=2
|
||||||
BIN
stages/3d_scenes/cockpit_scene/assets/3d/dashboard.blend1
Normal file
BIN
stages/3d_scenes/cockpit_scene/assets/3d/dashboard.blend1
Normal file
Binary file not shown.
BIN
stages/3d_scenes/cockpit_scene/assets/3d/furnitures/closet.blend
Normal file
BIN
stages/3d_scenes/cockpit_scene/assets/3d/furnitures/closet.blend
Normal file
Binary file not shown.
@@ -0,0 +1,68 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://jjkw4edrewsk"
|
||||||
|
path="res://.godot/imported/closet.blend-c4f04b24550e59853389216b5b029864.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://stages/3d_scenes/cockpit_scene/assets/3d/furnitures/closet.blend"
|
||||||
|
dest_files=["res://.godot/imported/closet.blend-c4f04b24550e59853389216b5b029864.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={
|
||||||
|
"materials": {
|
||||||
|
"Material": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
|
||||||
|
"use_external/path": "uid://dvvi1k5c5iowc"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blender/nodes/visible=0
|
||||||
|
blender/nodes/active_collection_only=false
|
||||||
|
blender/nodes/punctual_lights=true
|
||||||
|
blender/nodes/cameras=true
|
||||||
|
blender/nodes/custom_properties=true
|
||||||
|
blender/nodes/modifiers=1
|
||||||
|
blender/meshes/colors=false
|
||||||
|
blender/meshes/uvs=true
|
||||||
|
blender/meshes/normals=true
|
||||||
|
blender/meshes/export_geometry_nodes_instances=false
|
||||||
|
blender/meshes/gpu_instances=false
|
||||||
|
blender/meshes/tangents=true
|
||||||
|
blender/meshes/skins=2
|
||||||
|
blender/meshes/export_bones_deforming_mesh_only=false
|
||||||
|
blender/materials/unpack_enabled=true
|
||||||
|
blender/materials/export_materials=1
|
||||||
|
blender/animation/limit_playback=true
|
||||||
|
blender/animation/always_sample=true
|
||||||
|
blender/animation/group_tracks=true
|
||||||
|
gltf/naming_version=2
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,68 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://cdvegfgvp7053"
|
||||||
|
path="res://.godot/imported/screen_1.blend-4e2b588bdf792f48c14c473281c633c6.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://stages/3d_scenes/cockpit_scene/assets/3d/furnitures/screen_1.blend"
|
||||||
|
dest_files=["res://.godot/imported/screen_1.blend-4e2b588bdf792f48c14c473281c633c6.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={
|
||||||
|
"materials": {
|
||||||
|
"Material.001": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
|
||||||
|
"use_external/path": "uid://dvvi1k5c5iowc"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blender/nodes/visible=0
|
||||||
|
blender/nodes/active_collection_only=false
|
||||||
|
blender/nodes/punctual_lights=true
|
||||||
|
blender/nodes/cameras=true
|
||||||
|
blender/nodes/custom_properties=true
|
||||||
|
blender/nodes/modifiers=1
|
||||||
|
blender/meshes/colors=false
|
||||||
|
blender/meshes/uvs=true
|
||||||
|
blender/meshes/normals=true
|
||||||
|
blender/meshes/export_geometry_nodes_instances=false
|
||||||
|
blender/meshes/gpu_instances=false
|
||||||
|
blender/meshes/tangents=true
|
||||||
|
blender/meshes/skins=2
|
||||||
|
blender/meshes/export_bones_deforming_mesh_only=false
|
||||||
|
blender/materials/unpack_enabled=true
|
||||||
|
blender/materials/export_materials=1
|
||||||
|
blender/animation/limit_playback=true
|
||||||
|
blender/animation/always_sample=true
|
||||||
|
blender/animation/group_tracks=true
|
||||||
|
gltf/naming_version=2
|
||||||
Binary file not shown.
BIN
stages/3d_scenes/cockpit_scene/assets/textures/sky.png
Normal file
BIN
stages/3d_scenes/cockpit_scene/assets/textures/sky.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user