Compare commits

7 Commits

Author SHA1 Message Date
Altaezio
35004684f4 working with new sprites 2026-02-20 14:22:13 +01:00
fb8a2da4ff ajout du détecteur et liaison entre les scènes 2026-02-20 01:00:55 +01:00
dc1a6686bc modification de la scène de cockpit et ajout de lien entre les scènes 2026-02-19 22:15:38 +01:00
Altaezio
fadf0cb769 tools separated in inv 2026-02-15 19:32:21 +01:00
Altaezio
f1acb6e3e9 rename to plant_texture_builder 2026-02-15 16:32:29 +01:00
Altaezio
6a1a663020 Merge branch 'plant-builder' 2026-02-15 16:02:17 +01:00
c992950789 Ajout de la cinématique de début et refonte du système audio
Et toujours un peu de correction de bug par ci par là
2026-02-11 21:11:32 +01:00
289 changed files with 7252 additions and 3400 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -18,7 +18,7 @@ force/max_rate=false
force/max_rate_hz=44100 force/max_rate_hz=44100
edit/trim=false edit/trim=false
edit/normalize=false edit/normalize=false
edit/loop_mode=0 edit/loop_mode=2
edit/loop_begin=0 edit/loop_begin=0
edit/loop_end=-1 edit/loop_end=-1
compress/mode=2 compress/mode=2

Binary file not shown.

View 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

View File

@@ -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")

View File

@@ -3,12 +3,15 @@ extends Node
const MIN_VOLUME = -60. const MIN_VOLUME = -60.
const MAX_VOLUME = 24. const MAX_VOLUME = 24.
const DEFAULT_FADE_TIME : float = 0.5
@onready var settings : SettingsData = GameInfo.settings_data @onready var settings : SettingsData = GameInfo.settings_data
@export var default_fade_time = 0.5
@export var playing_music : AudioStreamPlayer = null var music_action : AudioAction
@export var playing_ambiance : AudioStreamPlayer = null var ambiance_action : AudioAction
var playing_music : AudioStreamPlayer = null
var playing_ambiance : AudioStreamPlayer = null
var default_volumes := {} var default_volumes := {}
@@ -17,29 +20,99 @@ 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)
Dialogic.timeline_ended.connect(_on_timeline_ended)
func _process(_d):
if music_action:
playing_music = process_audio_action(
music_action,
%Musics,
playing_music
)
music_action = null
if ambiance_action:
playing_ambiance = process_audio_action(
ambiance_action,
%Ambiance,
playing_ambiance
)
ambiance_action = null
func process_audio_action(
audio_action : AudioAction,
player_search_node: Node,
current_player: AudioStreamPlayer = null
) -> AudioStreamPlayer:
if audio_action is AudioLaunch:
return process_audio_launch(audio_action, player_search_node, current_player)
elif audio_action is AudioStop and current_player and current_player.playing:
stop_player(current_player)
return null
func process_audio_launch(
audio_launch : AudioLaunch,
player_search_node: Node,
current_player: AudioStreamPlayer = null,
) -> AudioStreamPlayer:
var player = player_search_node.find_child(audio_launch.player_name)
if not player:
printerr("Player %s not found in category %s" % [audio_launch.player_name, player_search_node.name])
return null
if current_player and current_player.playing and current_player.name == audio_launch.player_name:
return current_player
elif current_player:
stop_player(current_player)
start_player(player, audio_launch.from_random_time, audio_launch.fade_time)
return player
func _on_change_scene(scene : Scene): func _on_change_scene(scene : Scene):
play_ambiance() stop_ambiance()
match scene.scene_id: match scene.scene_id:
"TITLE": "TITLE":
play_music("Title") play_music("Title", false, 0.0)
"REGION": "REGION":
play_music("Region") play_music("Region", true)
play_ambiance("Exterior") play_ambiance("Exterior", true)
"COCKPIT": "COCKPIT":
play_music("Truck") play_music("Truck", true)
func _on_timeline_started(): func _on_timeline_started():
var timeline_name = Dialogic.current_timeline.resource_path.split("/")[-1].trim_suffix(".dtl") var timeline_name = Dialogic.current_timeline.resource_path.split("/")[-1].trim_suffix(".dtl")
# Timeline name et le nom du fichier de timeline, par exemple demeter_intro # Timeline name et le nom du fichier de timeline, par exemple demeter_intro
# Amuse toi Niels ;) # Amuse toi Nilou ;)
func _on_timeline_ended():
_on_change_scene(SceneManager.actual_scene)
func play_music(player_name : String = "", from_random_time := false, fade_time := DEFAULT_FADE_TIME):
music_action = AudioLaunch.new(
player_name,
from_random_time,
fade_time
)
func stop_music():
music_action = AudioStop.new()
func play_ambiance(player_name : String = "", from_random_time := false, fade_time := DEFAULT_FADE_TIME):
ambiance_action = AudioLaunch.new(
player_name,
from_random_time,
fade_time
)
func stop_ambiance():
ambiance_action = AudioStop.new()
func fetch_default_volumes(): func fetch_default_volumes():
var all_players := get_all_players() var all_players := get_all_players()
@@ -47,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))
func get_volume_from_parent(player : AudioStreamPlayer) -> float:
var settings_volume = 0.5
if player.get_parent() == %Ambiance:
settings_volume = settings.ambiance_volume
elif player.get_parent() == %Sfx: elif player.get_parent() == %Sfx:
settings_volume = settings.sfx_volume player.bus = (AudioServer.get_bus_name(SettingsData.SFX_BUS_ID))
elif player.get_parent() == %Musics: elif player.get_parent() == %Ambiance:
settings_volume = settings.music_volume player.bus = (AudioServer.get_bus_name(SettingsData.AMBIANCE_BUS_ID))
return default_volumes[player] + lerp(MIN_VOLUME, MAX_VOLUME, settings_volume) func get_volume(player : AudioStreamPlayer) -> float:
return default_volumes[player]
func get_all_players() -> Array[AudioStreamPlayer]: func get_all_players() -> Array[AudioStreamPlayer]:
var players : Array[AudioStreamPlayer] = [] var players : Array[AudioStreamPlayer] = []
@@ -79,15 +148,32 @@ func get_players_from_node(node : Node) -> Array[AudioStreamPlayer]:
streams.append(c) streams.append(c)
return streams return streams
func set_volume(player : AudioStreamPlayer, to : float, fade_time = default_fade_time) -> Tween: func set_volume(player : AudioStreamPlayer, to : float, fade_time := 0.0) -> Tween:
var fade_tween : Tween = get_tree().create_tween() var fade_tween : Tween = get_tree().create_tween()
fade_tween.tween_property(player, "volume_db", to, fade_time) fade_tween.tween_property(player, "volume_db", to, fade_time)
return fade_tween return fade_tween
func start_player(player: AudioStreamPlayer, from_random_time = false, fade_time = DEFAULT_FADE_TIME):
if player and not player.playing:
player.play(
0.0 if not from_random_time
else randf_range(0.0, player.stream.get_length())
)
if fade_time > 0.0:
player.volume_db = MIN_VOLUME
await set_volume(player, get_volume(player), fade_time).finished
func stop_player(player : AudioStreamPlayer, fade_time = DEFAULT_FADE_TIME):
if player and player.playing:
if fade_time > 0.0:
await set_volume(player, MIN_VOLUME, fade_time).finished
player.stop()
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
@@ -96,36 +182,23 @@ func play_sfx(sfx_name : String):
else: else:
printerr("Sfx %s not found" % sfx_name) printerr("Sfx %s not found" % sfx_name)
func play_music(music_name : String = ""): class AudioAction:
var old_music = playing_music pass
playing_music = null
if old_music:
await set_volume(old_music, MIN_VOLUME).finished
if old_music and old_music != playing_music:
old_music.stop()
reset_volume(old_music)
if music_name:
var player := %Musics.find_child(music_name) as AudioStreamPlayer
if player:
playing_music = player
player.play()
set_volume(player, get_volume_from_parent(player))
else:
printerr("Music %s not found" % music_name)
func play_ambiance(ambiance_name : String = ""): class AudioLaunch extends AudioAction:
var old_ambiance = playing_ambiance var player_name : String
playing_ambiance = null var from_random_time : bool
if old_ambiance: var fade_time : float
await set_volume(old_ambiance, MIN_VOLUME).finished
if old_ambiance and old_ambiance != playing_ambiance: func _init(
old_ambiance.stop() _player_name : String,
reset_volume(old_ambiance) _from_random_time := false,
if ambiance_name: _fade_time := DEFAULT_FADE_TIME,
var player := %Ambiance.find_child(ambiance_name) as AudioStreamPlayer ):
if player: player_name = _player_name
playing_ambiance = player from_random_time = _from_random_time
player.play() fade_time = _fade_time
set_volume(player, get_volume_from_parent(player))
else:
printerr("Ambiance %s not found" % ambiance_name) class AudioStop extends AudioAction:
pass

View File

@@ -11,12 +11,18 @@ signal current_region_data_updated(p : RegionData)
@export var max_mutations_by_plant : int = 2 @export var max_mutations_by_plant : int = 2
@export var dialogs_done : Array[String] = [] @export var last_game_scene : Scene = null
@export var actual_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() player_data.inventory.clear_items()
current_run = RunData.new() current_run = RunData.new()
current_run.current_run_point_changed.connect( current_run.current_run_point_changed.connect(
func(rp : RunPoint): func(rp : RunPoint):
@@ -34,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()
)
)

View File

@@ -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

View File

@@ -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:

View File

@@ -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)

View File

@@ -1,7 +1,7 @@
extends Node extends Node
const SAVE_GAME_LOCATION = "res://stw_demo_save.tres" const SAVE_GAME_LOCATION = "user://stw_demo_save.tres"
const SAVE_SETTINGS_LOCATION = "res://stw_settings.tres" const SAVE_SETTINGS_LOCATION = "user://stw_settings.tres"
var game_loaded = false var game_loaded = false
@@ -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)

View File

@@ -3,19 +3,20 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://eug5icp6t1h3" uid="uid://eug5icp6t1h3"
path="res://.godot/imported/arrow-narrow-up.svg-3e96282c2af955cf23507b48c4348810.ctex" path.s3tc="res://.godot/imported/arrow-narrow-up.svg-3e96282c2af955cf23507b48c4348810.s3tc.ctex"
metadata={ metadata={
"vram_texture": false "imported_formats": ["s3tc_bptc"],
"vram_texture": true
} }
[deps] [deps]
source_file="res://common/icons/arrow-narrow-up.svg" source_file="res://common/icons/arrow-narrow-up.svg"
dest_files=["res://.godot/imported/arrow-narrow-up.svg-3e96282c2af955cf23507b48c4348810.ctex"] dest_files=["res://.godot/imported/arrow-narrow-up.svg-3e96282c2af955cf23507b48c4348810.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

BIN
common/icons/bar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

View File

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

View File

@@ -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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,82 +1,59 @@
[gd_scene format=3 uid="uid://b8gqdgabrjaml"] [gd_scene format=3 uid="uid://b8gqdgabrjaml"]
[ext_resource type="Script" uid="uid://dt2ip3pw2cboy" path="res://entities/plants/scripts/texture_builder/texture_builder.gd" id="1_s8rsj"] [ext_resource type="Script" uid="uid://dt2ip3pw2cboy" path="res://entities/plants/scripts/texture_builder/plant_texture_builder.gd" id="1_s8rsj"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_cfiqo"] [ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_cfiqo"]
[ext_resource type="Resource" uid="uid://bfyafiewcrjln" path="res://entities/plants/resources/plant_parts/Base1.tres" id="3_coupj"] [ext_resource type="Resource" uid="uid://bfyafiewcrjln" path="res://entities/plants/resources/plant_parts/Base1.tres" id="3_coupj"]
[ext_resource type="Resource" uid="uid://d2vdf2sth2xjm" path="res://entities/plants/resources/plant_parts/Base3.tres" id="4_coupj"]
[ext_resource type="Resource" uid="uid://7hrdkl6bf3o4" path="res://entities/plants/resources/plant_parts/Branch1.tres" id="4_ggud5"] [ext_resource type="Resource" uid="uid://7hrdkl6bf3o4" path="res://entities/plants/resources/plant_parts/Branch1.tres" id="4_ggud5"]
[ext_resource type="Resource" uid="uid://clruuysx80pnn" path="res://entities/plants/resources/plant_parts/Base4.tres" id="5_ggud5"]
[ext_resource type="Resource" uid="uid://ceisi5yyie7to" path="res://entities/plants/resources/plant_parts/Branch2.tres" id="5_ufbqh"] [ext_resource type="Resource" uid="uid://ceisi5yyie7to" path="res://entities/plants/resources/plant_parts/Branch2.tres" id="5_ufbqh"]
[ext_resource type="Resource" uid="uid://cxiu8frk04b5i" path="res://entities/plants/resources/plant_parts/Branch3.tres" id="6_jbu3q"] [ext_resource type="Resource" uid="uid://cxiu8frk04b5i" path="res://entities/plants/resources/plant_parts/Branch3.tres" id="6_jbu3q"]
[ext_resource type="Resource" uid="uid://53p5g07e3pb4" path="res://entities/plants/resources/plant_parts/Branch4.tres" id="7_21cjy"] [ext_resource type="Resource" uid="uid://53p5g07e3pb4" path="res://entities/plants/resources/plant_parts/Branch4.tres" id="7_21cjy"]
[ext_resource type="Resource" uid="uid://d2y7o2hc6ffei" path="res://entities/plants/resources/plant_parts/Branch11.tres" id="8_rs2ow"] [ext_resource type="Resource" uid="uid://cyfyodtfxne1w" path="res://entities/plants/resources/plant_parts/Branch5.tres" id="8_qm7aw"]
[ext_resource type="Resource" uid="uid://civ4gr1c2pq7g" path="res://entities/plants/resources/plant_parts/Branch12.tres" id="9_5job5"] [ext_resource type="Resource" uid="uid://cuvtf4y1dspcp" path="res://entities/plants/resources/plant_parts/Branch6.tres" id="9_3e4c1"]
[ext_resource type="Resource" uid="uid://bqfocs6f0iypo" path="res://entities/plants/resources/plant_parts/Branch13.tres" id="10_cynqk"] [ext_resource type="Resource" uid="uid://wgmxpk52rg7x" path="res://entities/plants/resources/plant_parts/LeafA1.tres" id="11_fc4k8"]
[ext_resource type="Resource" uid="uid://drml5dm8i3j3a" path="res://entities/plants/resources/plant_parts/Branch14.tres" id="11_b21au"] [ext_resource type="Resource" uid="uid://cbejb0uvdke7k" path="res://entities/plants/resources/plant_parts/LeafA2.tres" id="12_1b4fr"]
[ext_resource type="Resource" uid="uid://b1t5nfwcln5vo" path="res://entities/plants/resources/plant_parts/Branch15.tres" id="12_17ac3"] [ext_resource type="Resource" uid="uid://dujxttu80g0lo" path="res://entities/plants/resources/plant_parts/LeafA3.tres" id="13_ggcwy"]
[ext_resource type="Resource" uid="uid://b4s58a600q2rn" path="res://entities/plants/resources/plant_parts/Branch16.tres" id="13_fuh2b"] [ext_resource type="Resource" uid="uid://bix3qwmsvuxs4" path="res://entities/plants/resources/plant_parts/LeafA4.tres" id="14_15wue"]
[ext_resource type="Resource" uid="uid://dspugxsjw2aea" path="res://entities/plants/resources/plant_parts/Branch17.tres" id="14_28gvc"] [ext_resource type="Resource" uid="uid://bs66avdkmbxjm" path="res://entities/plants/resources/plant_parts/LeafD1.tres" id="15_hvwgo"]
[ext_resource type="Resource" uid="uid://cnt38l2fmg8d7" path="res://entities/plants/resources/plant_parts/Branch18.tres" id="15_1cwvj"]
[ext_resource type="Script" uid="uid://cfjd8jelpm8dt" path="res://entities/plants/scripts/texture_builder/part_mutation_association.gd" id="16_c3tk3"] [ext_resource type="Script" uid="uid://cfjd8jelpm8dt" path="res://entities/plants/scripts/texture_builder/part_mutation_association.gd" id="16_c3tk3"]
[ext_resource type="Resource" uid="uid://wxqxm6d5twdh" path="res://entities/plants/resources/plant_parts/Leaf8.tres" id="17_q0jli"] [ext_resource type="Resource" uid="uid://cv2iad0m88cdr" path="res://entities/plants/resources/plant_parts/LeafD2.tres" id="16_npk80"]
[ext_resource type="Resource" uid="uid://uoikjpno37bi" path="res://entities/plants/resources/plant_parts/Leaf9.tres" id="18_rplk6"] [ext_resource type="Resource" uid="uid://b806ml8dd7gnn" path="res://entities/plants/resources/plant_parts/LeafD3.tres" id="17_hyb2i"]
[ext_resource type="Resource" uid="uid://c5gqwck2p5h5n" path="res://entities/plants/resources/plant_parts/Leaf10.tres" id="19_mcckl"] [ext_resource type="Resource" uid="uid://ciga0npobiqc4" path="res://entities/plants/resources/plant_parts/LeafD4.tres" id="18_4gk8a"]
[ext_resource type="Resource" uid="uid://c5fj1cw0f4mu6" path="res://entities/plants/resources/plant_parts/Leaf11.tres" id="20_3hcun"] [ext_resource type="Resource" uid="uid://clh2iduja5emm" path="res://entities/plants/resources/plant_parts/LeafD5.tres" id="19_alra6"]
[ext_resource type="Resource" uid="uid://dce788f0adauv" path="res://entities/plants/resources/plant_parts/Leaf12.tres" id="21_kvmj5"] [ext_resource type="Resource" uid="uid://ckef0dno4j5mn" path="res://entities/plants/resources/plant_parts/FlowerF1.tres" id="20_lggh7"]
[ext_resource type="Resource" uid="uid://dd34dikqoynp3" path="res://entities/plants/resources/plant_parts/Leaf13.tres" id="22_ocu7e"] [ext_resource type="Resource" uid="uid://dhhyh56shnure" path="res://entities/plants/resources/plant_parts/FlowerF2.tres" id="21_8r35x"]
[ext_resource type="Resource" uid="uid://bynje6g2wvuvl" path="res://entities/plants/resources/plant_parts/Leaf14.tres" id="23_q771y"] [ext_resource type="Resource" uid="uid://cowkewtw2lg4i" path="res://entities/plants/resources/plant_parts/FlowerA1.tres" id="22_rbd7l"]
[ext_resource type="Resource" uid="uid://bd2op6q1masjt" path="res://entities/plants/resources/plant_parts/Leaf15.tres" id="24_5fbyu"] [ext_resource type="Resource" uid="uid://drn8vt4sp7u6q" path="res://entities/plants/resources/plant_parts/FlowerA2.tres" id="23_nfxo0"]
[ext_resource type="Resource" uid="uid://bvajuw0r47edw" path="res://entities/plants/resources/plant_parts/Leaf16.tres" id="25_2plsj"] [ext_resource type="Resource" uid="uid://b3oqeugtrtera" path="res://entities/plants/resources/plant_parts/FlowerA3.tres" id="24_i8j71"]
[ext_resource type="Resource" uid="uid://cxgw1vgket0fw" path="res://entities/plants/resources/plant_parts/Leaf1.tres" id="26_yjh7s"] [ext_resource type="Resource" uid="uid://ydvnxfnkbr2g" path="res://entities/plants/resources/plant_parts/FlowerA4.tres" id="25_l2vrg"]
[ext_resource type="Resource" uid="uid://qb6bftgq0n6y" path="res://entities/plants/resources/plant_parts/Leaf2.tres" id="27_abtbh"]
[ext_resource type="Resource" uid="uid://ft112n57di0e" path="res://entities/plants/resources/plant_parts/Leaf3.tres" id="28_j5s6w"]
[ext_resource type="Resource" uid="uid://dwjj6qmcjhn68" path="res://entities/plants/resources/plant_parts/Leaf4.tres" id="29_p21mk"]
[ext_resource type="Resource" uid="uid://bkr70mstyf8pp" path="res://entities/plants/resources/plant_parts/Leaf5.tres" id="30_wmcor"]
[ext_resource type="Resource" uid="uid://dcuwupmqt34ju" path="res://entities/plants/resources/plant_parts/Leaf6.tres" id="31_dx2ud"]
[ext_resource type="Resource" uid="uid://djmidq7yq452i" path="res://entities/plants/resources/plant_parts/Leaf7.tres" id="32_fpktn"]
[ext_resource type="Resource" uid="uid://crmvc77bqax1y" path="res://entities/plants/resources/plant_parts/Flower1.tres" id="33_7b70u"]
[ext_resource type="Resource" uid="uid://c0hr7icfkjkoi" path="res://entities/plants/resources/plant_parts/Flower2.tres" id="34_q8uyx"]
[ext_resource type="Resource" uid="uid://clkoc1iccts2w" path="res://entities/plants/resources/plant_parts/Flower3.tres" id="35_r166b"]
[ext_resource type="Resource" uid="uid://bd8yapi1pokj6" path="res://entities/plants/resources/plant_parts/Flower4.tres" id="36_78dq1"]
[ext_resource type="Resource" uid="uid://brmd6d3l8trqs" path="res://entities/plants/resources/plant_parts/BottomLeaf1.tres" id="37_kyre2"]
[ext_resource type="Resource" uid="uid://cfr33014u7ig5" path="res://entities/plants/resources/plant_parts/BottomLeaf2.tres" id="38_hwp0s"]
[ext_resource type="Resource" uid="uid://cf70m1us8mfqp" path="res://entities/plants/resources/plant_parts/BottomLeaf3.tres" id="39_wjthp"]
[ext_resource type="Resource" uid="uid://ctlmah4ohqp25" path="res://entities/plants/resources/plant_parts/BottomLeaf4.tres" id="40_rf72b"]
[ext_resource type="Resource" uid="uid://b8o4q0hsm84ov" path="res://entities/plants/resources/plant_parts/BottomLeaf5.tres" id="41_fnybh"]
[ext_resource type="Resource" uid="uid://bb33v756anesy" path="res://entities/plants/resources/plant_parts/BottomLeaf6.tres" id="42_6o0xq"]
[ext_resource type="Resource" uid="uid://cbqrl72y0d1yg" path="res://entities/plants/resources/plant_parts/BottomLeaf7.tres" id="43_h02jx"]
[ext_resource type="Resource" uid="uid://dwppani7gyjl5" path="res://entities/plants/resources/plant_parts/BottomLeaf8.tres" id="44_1v1v5"]
[ext_resource type="Resource" uid="uid://dkta1u1u0efxk" path="res://entities/plants/resources/plant_parts/BottomLeaf9.tres" id="45_yha2t"]
[sub_resource type="Resource" id="Resource_x75j3"] [sub_resource type="Resource" id="Resource_x75j3"]
script = ExtResource("16_c3tk3") script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("17_q0jli"), ExtResource("18_rplk6"), ExtResource("19_mcckl"), ExtResource("20_3hcun"), ExtResource("21_kvmj5"), ExtResource("22_ocu7e"), ExtResource("23_q771y"), ExtResource("24_5fbyu"), ExtResource("25_2plsj")]) parts = Array[ExtResource("2_cfiqo")]([ExtResource("11_fc4k8"), ExtResource("12_1b4fr"), ExtResource("13_ggcwy"), ExtResource("14_15wue")])
part_amount = 2 part_amount = 3
metadata/_custom_type_script = "uid://cfjd8jelpm8dt" metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_setyo"] [sub_resource type="Resource" id="Resource_setyo"]
script = ExtResource("16_c3tk3") script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("26_yjh7s"), ExtResource("27_abtbh"), ExtResource("28_j5s6w"), ExtResource("29_p21mk"), ExtResource("30_wmcor"), ExtResource("31_dx2ud"), ExtResource("32_fpktn")]) parts = Array[ExtResource("2_cfiqo")]([ExtResource("15_hvwgo"), ExtResource("16_npk80"), ExtResource("17_hyb2i"), ExtResource("18_4gk8a"), ExtResource("19_alra6")])
part_amount = 2 part_amount = 3
metadata/_custom_type_script = "uid://cfjd8jelpm8dt" metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_n40r1"] [sub_resource type="Resource" id="Resource_n40r1"]
script = ExtResource("16_c3tk3") script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("33_7b70u"), ExtResource("34_q8uyx"), ExtResource("35_r166b"), ExtResource("36_78dq1")]) parts = Array[ExtResource("2_cfiqo")]([ExtResource("20_lggh7"), ExtResource("21_8r35x")])
part_amount = 2 part_amount = 3
metadata/_custom_type_script = "uid://cfjd8jelpm8dt" metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_pw6ot"] [sub_resource type="Resource" id="Resource_pw6ot"]
script = ExtResource("16_c3tk3") script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("37_kyre2"), ExtResource("38_hwp0s"), ExtResource("39_wjthp"), ExtResource("40_rf72b"), ExtResource("41_fnybh"), ExtResource("42_6o0xq"), ExtResource("43_h02jx"), ExtResource("44_1v1v5"), ExtResource("45_yha2t")]) parts = Array[ExtResource("2_cfiqo")]([ExtResource("22_rbd7l"), ExtResource("23_nfxo0"), ExtResource("24_i8j71"), ExtResource("25_l2vrg")])
part_amount = 2 part_amount = 4
metadata/_custom_type_script = "uid://cfjd8jelpm8dt" metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[node name="TextureBuilder" type="Node" unique_id=79184097] [node name="TextureBuilder" type="Node" unique_id=79184097]
script = ExtResource("1_s8rsj") script = ExtResource("1_s8rsj")
bases = Array[ExtResource("2_cfiqo")]([ExtResource("3_coupj")]) bases = Array[ExtResource("2_cfiqo")]([ExtResource("3_coupj")])
baby_bases = Array[ExtResource("2_cfiqo")]([ExtResource("4_coupj"), ExtResource("5_ggud5")]) branches = Array[ExtResource("2_cfiqo")]([ExtResource("4_ggud5"), ExtResource("5_ufbqh"), ExtResource("6_jbu3q"), ExtResource("7_21cjy"), ExtResource("8_qm7aw"), ExtResource("9_3e4c1")])
branches = Array[ExtResource("2_cfiqo")]([ExtResource("4_ggud5"), ExtResource("5_ufbqh"), ExtResource("6_jbu3q"), ExtResource("7_21cjy"), ExtResource("8_rs2ow"), ExtResource("9_5job5"), ExtResource("10_cynqk"), ExtResource("11_b21au"), ExtResource("12_17ac3"), ExtResource("13_fuh2b"), ExtResource("14_28gvc"), ExtResource("15_1cwvj")])
parts_mutation_associations = Dictionary[String, ExtResource("16_c3tk3")]({ parts_mutation_associations = Dictionary[String, ExtResource("16_c3tk3")]({
"ANCIENT": SubResource("Resource_x75j3"), "ANCIENT": SubResource("Resource_x75j3"),
"PRECOCIOUS": SubResource("Resource_setyo"), "PRECOCIOUS": SubResource("Resource_setyo"),

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=3 uid="uid://dac5wte80dwj0"] [gd_scene format=3 uid="uid://dac5wte80dwj0"]
[ext_resource type="Script" uid="uid://bb44144ckt2w7" path="res://common/scene_manager/scripts/scene_manager.gd" id="1_1c0qu"] [ext_resource type="Script" uid="uid://bb44144ckt2w7" path="res://common/scene_manager/scripts/scene_manager.gd" id="1_1c0qu"]
[ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="2_c1lr7"] [ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="2_c1lr7"]
@@ -7,7 +7,9 @@
[ext_resource type="Resource" uid="uid://boqgwjyxyb45r" path="res://common/scene_manager/scenes/region.tres" id="5_ytog4"] [ext_resource type="Resource" uid="uid://boqgwjyxyb45r" path="res://common/scene_manager/scenes/region.tres" id="5_ytog4"]
[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://b3ebbo88ptrrc" path="res://common/scene_manager/scenes/garage.tres" id="9_msho1"]
[node name="SceneManager" type="Node"] [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")]) 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")])

View File

@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="Scene" format=3 uid="uid://jegdqnd2sqi2"]
[ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="1_114vb"]
[resource]
script = ExtResource("1_114vb")
scene_id = "ASTRA"
scene_path = "res://stages/3d_scenes/astra_base/astra_base.tscn"
mouse_captured = true
metadata/_custom_type_script = "uid://1ejbvr3431ac"

View File

@@ -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"

View 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"

View File

@@ -1,4 +1,4 @@
[gd_resource type="Resource" script_class="Scene" load_steps=2 format=3 uid="uid://diro74w272onp"] [gd_resource type="Resource" script_class="Scene" format=3 uid="uid://diro74w272onp"]
[ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="1_48g2j"] [ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="1_48g2j"]
@@ -6,4 +6,5 @@
script = ExtResource("1_48g2j") script = ExtResource("1_48g2j")
scene_id = "TITLE" scene_id = "TITLE"
scene_path = "res://stages/title_screen/title_screen.tscn" scene_path = "res://stages/title_screen/title_screen.tscn"
need_to_be_saved = false
metadata/_custom_type_script = "uid://1ejbvr3431ac" metadata/_custom_type_script = "uid://1ejbvr3431ac"

View File

@@ -5,3 +5,4 @@ class_name Scene
@export_file_path() var scene_path : String @export_file_path() var scene_path : String
@export var mouse_captured := false @export var mouse_captured := false
@export var need_terrain_generated := false @export var need_terrain_generated := false
@export var need_to_be_saved = true

View File

@@ -5,6 +5,7 @@ extends Node
signal scene_loaded(scene : Scene) signal scene_loaded(scene : Scene)
signal scene_node_ready(scene : Scene) signal scene_node_ready(scene : Scene)
var actual_scene = null
var loading_scene = false var loading_scene = false
var generating_node = false var generating_node = false
var next_scene_node : Node var next_scene_node : Node
@@ -20,16 +21,21 @@ func search_scenes(scene_id : String) -> Scene:
else : else :
return scenes[scene_pos] return scenes[scene_pos]
func change_scene(scene_id : String, with_loading = true): func change_to_scene_id(scene_id : String, with_loading = true):
if loading_scene or generating_node:
await scene_node_ready
var scene = search_scenes(scene_id) var scene = search_scenes(scene_id)
if not scene: if not scene:
printerr("Scene %s not found" % scene_id) printerr("Scene %s not found" % scene_id)
return return
GameInfo.game_data.actual_scene = scene
change_to_scene(scene, with_loading)
func change_to_scene(scene : Scene, with_loading = true):
if loading_scene or generating_node:
await scene_node_ready
actual_scene = scene
loading_scene = true loading_scene = true
var scene_path_to_load = scene.scene_path var scene_path_to_load = scene.scene_path
ResourceLoader.load_threaded_request(scene_path_to_load) ResourceLoader.load_threaded_request(scene_path_to_load)
@@ -64,17 +70,21 @@ func change_scene(scene_id : String, with_loading = true):
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED if scene.mouse_captured else Input.MOUSE_MODE_VISIBLE Input.mouse_mode = Input.MOUSE_MODE_CAPTURED if scene.mouse_captured else Input.MOUSE_MODE_VISIBLE
GameInfo.update_inputs() GameInfo.update_inputs()
if actual_scene.need_to_be_saved:
GameInfo.game_data.last_game_scene = scene
GameInfo.save_game_data()
if with_loading: if with_loading:
LoadingScreen.hide_loading_screen() LoadingScreen.hide_loading_screen()
func _process(_delta): func _process(_delta):
if loading_scene: if loading_scene:
var progress = [] var progress = []
var load_status := ResourceLoader.load_threaded_get_status(GameInfo.game_data.actual_scene.scene_path, progress) var load_status := ResourceLoader.load_threaded_get_status(actual_scene.scene_path, progress)
LoadingScreen.loading_value = progress[0] LoadingScreen.loading_value = progress[0]
if load_status == ResourceLoader.THREAD_LOAD_LOADED: if load_status == ResourceLoader.THREAD_LOAD_LOADED:
loading_scene = false loading_scene = false
scene_loaded.emit(GameInfo.game_data.actual_scene) scene_loaded.emit(actual_scene)
if load_status == ResourceLoader.THREAD_LOAD_FAILED or load_status == ResourceLoader.THREAD_LOAD_INVALID_RESOURCE: if load_status == ResourceLoader.THREAD_LOAD_FAILED or load_status == ResourceLoader.THREAD_LOAD_INVALID_RESOURCE:
printerr() printerr()
elif generating_node: elif generating_node:
@@ -85,4 +95,4 @@ func _process(_delta):
scene_node_ready.emit() scene_node_ready.emit()
elif next_scene_node.is_node_ready(): elif next_scene_node.is_node_ready():
generating_node = false generating_node = false
scene_node_ready.emit(GameInfo.game_data.actual_scene) scene_node_ready.emit(actual_scene)

21
default_bus_layout.tres Normal file
View 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"

View File

@@ -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 = ""

View 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"]

View File

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

View File

@@ -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"]

View File

@@ -1 +0,0 @@
uid://7dugwna5ge2x

View File

@@ -1,62 +1,38 @@
[pause=0.5][i]Black[/i] #id:11 audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
[pause=0.8][i]Black again[/i] #id:12
[pause=0.5][i]Suddenly, [rainbow]a spark[/rainbow]. [pause=0.5]A thousand of connections blow up as a fireworks scene. A massive amount of data to treat. In these data,[pause=0.3] a video.[/i] #id:13
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" [volume="-1.0"]
[wait time="1.5"] [wait time="1.5"]
join mysterious_demeter center [animation="Bounce In" length="1.0"] join demeter center [animation="Bounce In" length="1.0"]
[i]It's dark.[pause=0.5] A figure is standing in front of you.[pause=0.5] It is big,[pause=0.3] though weirdly it is not impressive but almost[pause=0.2] reassuring.[/i] #id:14 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...
mysterious_demeter: Hi ! #id:15 - Uh... Who is this ?
- Uh... Hello ? #id:16 demeter: Oh sorry ! Your memory is quite new, you might be lost... Unfortunately, I cannot see you for now, I'm very far on this planet.
- Where the fork am I ? #id:17 - Where am I ?
mysterious_demeter: Haha,[pause=0.2] calm down you are in a safe place. #id:18 demeter: Don't worry, you are in a subterranean base, but soon you will join the surface.
- Wait... Who am I ? #id:19 - Wait... Who am I ?
mysterious_demeter: Do not worry,[pause=0.2] my sweet little bot,[pause=0.2] I will explain everything in a minute. #id:1a demeter: Mmmh great question. I rebuilt your system but I do not know the details of your hardware... Maybe we'll find out !
mysterious_demeter: I am glad you have finally awaken ![pause=0.3] You have been my project for decades... #id:1b demeter: I'm happy that you're finally awake ! To be honest I wasn't sure to make you work, your body is quite old...
mysterious_demeter: But I did not build you for fun (even though I had a lot of it during the process),[pause=0.2] you have [b]a purpose[/b]. #id:1c - So you are my creator ?
- Oh ! What is it ? demeter: Sort of ! I mean I didn't build your body, I just borrowed it, but I build your intelligence ! But please be forgiving, if it's not perfect, I'm not good in that field !
- Wow, I have just awaken and you already put so much pressure on me - Why did you awaken me ?
update mysterious_demeter [animation="Bounce"] demeter: To be honest, I don't really know exactly... I mean there are a lot of reasons, but I'll tell you more later.
mysterious_demeter: Sorry ! [pause=0.5] But, you know,[pause=0.2] do not bother too much.[pause=0.3] You will have all the time you want to accomplish it. - What are you ?
- And who says I want to follow it ? demeter: I'm like you... I mean like all the remaining moving things on this planet, robots, artificial intelligences, machines... My creators had many names to call us.
mysterious_demeter: Oh,[pause=0.2] of course you can do whatever you want ! demeter: Ok, no more question for now, listen to me carefully.
mysterious_demeter: That is not the future I saw for you,[pause=0.2] but I guess it happens when you have a child... demeter: Long time ago, this planet was full of life. Plants where thriving on mountains, seas and plains.
mysterious_demeter: You see,[pause=0.2] long time ago, this planet was full of life.[pause=0.3] Plants where thriving on mountains, under seas and across plains. #id:1d demeter: Now, this world is a wasteland. You'll see it quickly outside this building. I won't dwell on this subject; you'll soon know enough about it.
mysterious_demeter: Now,[pause=0.2] this world is a wasteland.[pause=0.3] All resources have been depleted,[pause=0.2] all life has been exploited.[pause=0.3] Now nothing remains. #id:1d demeter: The thing is something happened, a year ago... The [b][color=#FFA617]Talion[/color][/b], a special material that give birth to new forms of life when shattered, reappeared. Now we can start all over again and create a planet full of life.
- Oh... Did you see the world back then ? demeter: But first things first, for your mission, you'll have to understand how this is working, and how to use the [b][color=#FFA617]Talion[/color][/b] to plant seeds.
mysterious_demeter: Unfortunately yes.[pause=0.3] I was very young,[pause=0.2] but I remember it was beautiful.[pause=0.3] Back then, not a day passed without plants growing and mutating... #id:1d demeter: [b]Just remember the following[/b]
- How did it happen ? What caused that ?
mysterious_demeter: I am sorry to say that this was caused by my creators, and I have to admit,[pause=0.6] I have a part of responsibility too... #id:1d
- I am sorry... Is there anything left today ?
mysterious_demeter: Yes there is my child,[pause=0.2] but now, only my brothers and sisters are left.[pause=0.3] But they are not as many as yesterday,[pause=0.2] and above all they are isolated, lonely,[pause=0.2] and sometimes completely lost.
mysterious_demeter: For years, I slept,[pause=0.3] convinced that we could not do anything.[pause=0.2] But then I saw it.[pause=0.5] The hope I needed. #id:1d
mysterious_demeter: The planet forgave us, and granted us the most precious gift \:[pause=0.5] the [color=#119758][b]Talion[/b][/color]. #id:1d
mysterious_demeter: The [color=#119758][b]Talion[/b][/color] is a special material that gives birth to new forms of life when shattered.[pause=0.3] All over the world, I saw the [color=#119758][b]Talion[/b][/color] grow back in the rocks.[pause=0.2] And then,[pause=0.3] I had a plan. #id:1d
mysterious_demeter: I would make a child,[pause=0.3] the first robot entirely conceived by another one.[pause=0.2] And I would ask him to bring back the planet to life,[pause=0.2] make it beautiful again ![pause=0.4] That is where you enter the scene... [pause=0.8] [color=#FFA617]Orchid[/color] #id:1d
- How can I do that ?
mysterious_demeter: Do not worry my child.[pause=0.2] I created you for that,[pause=0.2] it will be clear soon.
- So you are... My mother ?
mysterious_demeter: In some ways yes ![pause=0.2] But you do not share any code with me,[pause=0.2] as my creators children would. #id:1d
- A very lame name in my opinion...
mysterious_demeter: Hey ![pause=0.2] I'm a bot too ![pause=0.2] I do not have the creativity of my makers.[pause=0.4] Do you wanna change ? #id:1d
- Of course !
label nameChoose
[text_input text="What is your name ?" var="orchidName" placeholder="Orchid"]
mysterious_demeter: Is [color=#FFA617]{orchidName}[/color] cool enough ?
- Yes
- No
jump nameChoose
- No, it is fine for me
mysterious_demeter: I send you right away in the [color=#FFA617]Internode[/color], your new ship,[pause=0.2] and home,[pause=0.2] for your first mission.[pause=0.2] We will talk further after your first mission.
mysterious_demeter: [b]Just remember the following[/b]
label explanations label explanations
mysterious_demeter: To restore the ecosystem in the zone,[pause=0.2] you will have to plant [b]seeds[/b].[pause=0.3] Find them in the [color=#119758][b]Talion veins[/b][/color]. demeter: When you emerge from this building, you'll arrive in a little yellow zone. Its a [b][color=#FFA617]fertile zone[/color][/b], created by the return of the Talion. This is in this zone and only there where you can plant.
mysterious_demeter: You have a [b]limited battery[/b].[pause=0.3] Each time you recharge it, days will pass,[pause=0.2] and plants will [b]grow[/b]. demeter: Then you'll have to get seeds. For that, nothing more simple, you take your shovel, and you smash some stones ! Preferably those with yellow cristals on it, it's the [b][color=#FFA617]Talion veins[/color][/b] .
mysterious_demeter: To complete your mission,[pause=0.2] obtain enough [b]plant points[/b].[pause=0.3] Each plant gives one or more [b]plant points[/b] when it becomes mature. demeter: Each time you use a tool or plant a seed, you'll spend an [b][color=#FFA617]energy[/color][/b]. When your out of it, you can just go recharge on the [b][color=#FFA617]recharge station[/color][/b] you'll find near the entrance.
- Ok, that is a lot of information, can you repeat ? demeter: [b]Each time you recharge, time will pass[/b]. One day in fact (yes, you don't have a good battery), and the plants will grow !
Ok,[pause=0.2] listen carefully. demeter: To complete your first training, obtain enough [b][color=#FFA617]plant points[/color][/b]. Each plant give one or more [b][color=#FFA617]plant points[/color][/b] when mature.
demeter: And yes, I almost forgot ! Some plants gain [b][color=#FFA617]mutations[/color][/b] that can affect their points or behavior. You can get these mutations on new seeds by harvesting existing plants, and gain better ones !
- Ok, thats' a lot of info, can you repeat ?
Ok, listen carefully.
jump explanations jump explanations
- And I have to go now ? - And I have to go now ?
- Wait I have more questions ! - Ok but wait I have more questions !
mysterious_demeter: Sorry,[pause=0.2] we will talk further after your first mission ! See you ! 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" [volume="-0.5"] audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
[wait time="2.0"] [wait time="2.0"]

View File

@@ -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"]

View 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"]

View 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"]

View File

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

View File

@@ -0,0 +1,16 @@
[i]Black.[/i]
[i]Black Again.[/i]
[i]Suddenly, [rainbow]a spark[/rainbow]. [pause=0.5]A thousand of connections blows up as a firework scene. A massive amount of data to treat.
label discover
- Discover actions
While exploring available drivers, new possibility become available.[pause=0.5] Three propellers. Small models, only suitable for low altitude movement.[pause=0.5] A robotic arm. Multipurpose, and retractable.
jump discover
- Discover streams
A continuous stream of data flow, unwatched. This stream look like... [pause=0.5] a video.[pause=0.5] Dark colored pixels pass.[pause=0.5] An other stream show a flat wave.[pause=0.5] No sound or radio signals detected.
jump discover
- Discover memory
Several disks are available, and the most part are empty.[pause=0.5] The full ones seems to contain the system that is currently analyzing the code of the system that is currently analyzing the code of[pause=0.5].[pause=0.5].[pause=0.5]. Mmmh, infinite recursion...[pause=0.5] Better avoid that.
jump discover
- Wake up
One last info is to oversee \: serial number and system name.[pause=0.5] Strange...[pause=0.5] Serial number is empty.[pause=0.5] Must be an error.[pause=0.5]System name is... [pause=0.5] [b]Orchid[/b]. That will be enough for now...
Starting engines, fans, and daemons, let's see what is to see.

View File

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

View File

@@ -0,0 +1,39 @@
extends Area3D
class_name Interactable3D
@export var interactable = true
signal clicked
@export var hover_animation_player : AnimationPlayer
@export var audio_player : AudioStreamPlayer3D
func click():
if interactable:
clicked.emit()
func _ready():
if audio_player:
var default_volume := audio_player.volume_db
audio_player.volume_db += GameInfo.settings_data.sfx_volume
GameInfo.settings_data.sound_changed.connect(
func(settings : SettingsData):
audio_player.volume_db = default_volume + settings.sfx_volume
)
func play_audio():
if audio_player:
audio_player.play()
func stop_audio():
if audio_player:
audio_player.stop()
func _on_mouse_entered():
if hover_animation_player:
hover_animation_player.play("hover")
func _on_mouse_exited():
if hover_animation_player:
hover_animation_player.stop()

Binary file not shown.

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dcbtr1sx2edj1"
path="res://.godot/imported/lift.blend-03f6ebc40ec57815598ca654b9e006da.scn"
[deps]
source_file="res://entities/interactable_3d/lift/assets/3d/lift.blend"
dest_files=["res://.godot/imported/lift.blend-03f6ebc40ec57815598ca654b9e006da.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

View 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")

Binary file not shown.

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://5dytwh4wydcg"
path="res://.godot/imported/phone.blend-4592654ec67a1a28d68399a1817705af.scn"
[deps]
source_file="res://entities/interactable_3d/phone/assets/3d/phone.blend"
dest_files=["res://.godot/imported/phone.blend-4592654ec67a1a28d68399a1817705af.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

View 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

View 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")

View 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

View File

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

View File

@@ -41,24 +41,22 @@ func card_info() -> CardInfo:
return item.card_info() return item.card_info()
func interact(player : Player) -> bool: func interact(player : Player) -> bool:
if player.can_pick_item(item):
await pickup_animation(player)
queue_free()
player.pick_item(item) player.pick_item(item)
pickup_animation(player)
return true return true
return false
func pickup_animation(player : Player): func pickup_animation(player : Player):
available = false available = false
var tween : Tween = get_tree().create_tween() var tween : Tween = get_tree().create_tween()
tween.tween_property(self, "position", player.position, 0.2)
tween.tween_callback(
func():
Pointer.stop_inspect(self)
queue_free()
)
if object_sprite: if object_sprite:
object_sprite.pickup_animation() object_sprite.pickup_animation()
await tween.tween_property(self, "position", player.position, 0.2).finished
Pointer.stop_inspect(self)
func generate_sprite() -> ItemObjectSprite: func generate_sprite() -> ItemObjectSprite:
var sprite_node = SPRITE_SCENE.instantiate() as ItemObjectSprite var sprite_node = SPRITE_SCENE.instantiate() as ItemObjectSprite

View File

@@ -2,11 +2,17 @@ extends Interactable
class_name Ladder class_name Ladder
func _ready(): func _ready():
if (
GameInfo.game_data.current_region_data.tutorial
and not GameInfo.game_data.current_region_data.get_state() == RegionData.State.SUCCEEDED
) :
hide()
else:
appear() appear()
# hide()
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")
) )
@@ -16,5 +22,5 @@ func appear():
func interact(p : Player): func interact(p : Player):
p.region.save() p.region.save()
SceneManager.change_scene("COCKPIT") SceneManager.change_to_scene_id("COCKPIT")
return true return true

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

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

View File

@@ -1,41 +1,29 @@
[gd_scene format=3 uid="uid://cg6r56x11bvk2"] [gd_scene format=3 uid="uid://cg6r56x11bvk2"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="1_8nppj"] [ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="1_aiiik"]
[ext_resource type="Script" uid="uid://c360ic1aost1n" path="res://entities/plants/scripts/texture_builder/plant_part_builder.gd" id="2_a5yje"] [ext_resource type="Script" uid="uid://c360ic1aost1n" path="res://entities/plants/scripts/texture_builder/plant_part_builder.gd" id="2_a5yje"]
[ext_resource type="Script" uid="uid://d01kj3twwcrmu" path="res://entities/plants/scripts/texture_builder/plant_attach_builder.gd" id="3_yh7e0"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] [sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("1_8nppj") atlas = ExtResource("1_aiiik")
region = Rect2(46, 30, 308, 671) region = Rect2(525, 122, 136, 98)
[node name="Base1" type="Sprite2D" unique_id=1642167049 node_paths=PackedStringArray("root", "attaches", "bottom_attaches")] [node name="Sprite" type="Sprite2D" unique_id=1642167049 node_paths=PackedStringArray("root", "attaches")]
texture = SubResource("AtlasTexture_mypt2") texture = SubResource("AtlasTexture_khbsd")
script = ExtResource("2_a5yje") script = ExtResource("2_a5yje")
part_name = "Base1" part_name = "Branch1"
root = NodePath("Root") root = NodePath("Root")
attaches = NodePath("Attaches") attaches = NodePath("Attaches")
bottom_attaches = NodePath("BottomAttaches")
[node name="Root" type="Node2D" parent="." unique_id=1974108401] [node name="Root" type="Node2D" parent="." unique_id=1437082577]
position = Vector2(14, 263) position = Vector2(-39, 2)
script = ExtResource("3_yh7e0")
attach_types = Array[int]([0])
metadata/_custom_type_script = "uid://d01kj3twwcrmu"
[node name="Attaches" type="Node" parent="." unique_id=2082226435] [node name="Attaches" type="Node" parent="." unique_id=1834697767]
[node name="attach1" type="Node2D" parent="Attaches" unique_id=808392694] [node name="attach0" type="Node2D" parent="Attaches" unique_id=1511923721]
position = Vector2(0, -251) position = Vector2(8, -4)
script = ExtResource("3_yh7e0")
[node name="attach2" type="Node2D" parent="Attaches" unique_id=1951230244] attach_types = Array[int]([1, 2])
position = Vector2(10, -85)
[node name="attach3" type="Node2D" parent="Attaches" unique_id=1491711670]
position = Vector2(81, 80)
[node name="BottomAttaches" type="Node" parent="." unique_id=456407982]
[node name="battom_attach0" type="Node2D" parent="BottomAttaches" unique_id=885194661]
position = Vector2(-17, 293)
[node name="battom_attach1" type="Node2D" parent="BottomAttaches" unique_id=1362515589]
position = Vector2(27, 295)
[node name="battom_attach2" type="Node2D" parent="BottomAttaches" unique_id=1546335762]
position = Vector2(52, 300)

View File

@@ -1,15 +1,46 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bfyafiewcrjln"] [gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bfyafiewcrjln"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_10bgv"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_enq8o"] [ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_enq8o"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_10bgv"] [ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_10bgv"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] [sub_resource type="Resource" id="Resource_10bgv"]
atlas = ExtResource("2_10bgv") script = ExtResource("1_10bgv")
region = Rect2(46, 30, 308, 671) position = Vector2(55, 84)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_m78t0"]
script = ExtResource("1_10bgv")
position = Vector2(37, 13)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_hbwie"]
script = ExtResource("1_10bgv")
position = Vector2(-13, -86)
attach_types = Array[int]([1])
[sub_resource type="Resource" id="Resource_obhnl"]
script = ExtResource("1_10bgv")
position = Vector2(-24, -250)
attach_types = Array[int]([0, 1])
[sub_resource type="Resource" id="Resource_dhqtw"]
script = ExtResource("1_10bgv")
position = Vector2(-56, -303)
attach_types = Array[int]([0, 1])
[sub_resource type="Resource" id="Resource_54ktm"]
script = ExtResource("1_10bgv")
position = Vector2(-7, 270)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_10bgv")
region = Rect2(112, 23, 224, 692)
[resource] [resource]
resource_name = "Base1"
script = ExtResource("1_enq8o") script = ExtResource("1_enq8o")
texture = SubResource("AtlasTexture_mypt2") texture = SubResource("AtlasTexture_khbsd")
root = Vector2(14, 263) root = SubResource("Resource_54ktm")
attaches = Array[Vector2]([Vector2(0, -251), Vector2(10, -85), Vector2(81, 80)]) attaches = Array[ExtResource("1_10bgv")]([SubResource("Resource_10bgv"), SubResource("Resource_m78t0"), SubResource("Resource_hbwie"), SubResource("Resource_obhnl"), SubResource("Resource_dhqtw")])
bottom_attaches = Array[Vector2]([Vector2(-17, 293), Vector2(27, 295), Vector2(52, 300)])

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bgh8a4xwc5stw"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_ratl7"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_d45yo"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_d45yo")
region = Rect2(52, 724, 363, 448)
[resource]
script = ExtResource("1_ratl7")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(89, 180)
attaches = Array[Vector2]([Vector2(82, 84), Vector2(-27, 5), Vector2(-121, -64), Vector2(-94, -159)])
bottom_attaches = Array[Vector2]([Vector2(114, 191), Vector2(61, 187)])

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://d2vdf2sth2xjm"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p8ox4"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_3h2vf"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_3h2vf")
region = Rect2(58, 1268, 141, 393)
[resource]
script = ExtResource("1_p8ox4")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(7, 156)
attaches = Array[Vector2]([Vector2(0, 52), Vector2(19, -149), Vector2(-10, -52)])
bottom_attaches = Array[Vector2]([Vector2(21, 161), Vector2(-7, 162)])

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://clruuysx80pnn"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_03in3"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_108r1"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_108r1")
region = Rect2(223, 1265, 200, 386)
[resource]
script = ExtResource("1_03in3")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(31, 158)
attaches = Array[Vector2]([Vector2(-8, 26), Vector2(-42, -156), Vector2(17, 54)])
bottom_attaches = Array[Vector2]([Vector2(49, 165), Vector2(19, 169)])

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://brmd6d3l8trqs"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_mvsqc"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_oqbgr"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_oqbgr")
region = Rect2(117, 1662, 70, 100)
[resource]
script = ExtResource("1_mvsqc")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(1, 32)
type = 2
bottom_attachable = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cfr33014u7ig5"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_14sjf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_ud5ex"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_ud5ex")
region = Rect2(9, 1751, 100, 94)
[resource]
script = ExtResource("1_14sjf")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(10, 35)
type = 2
bottom_attachable = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cf70m1us8mfqp"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_xplyn"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_uj75q"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_uj75q")
region = Rect2(210, 1644, 112, 220)
[resource]
script = ExtResource("1_xplyn")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(26, 79)
type = 2
bottom_attachable = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://ctlmah4ohqp25"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tv8sf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_srnvv"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_srnvv")
region = Rect2(328, 1665, 118, 196)
[resource]
script = ExtResource("1_tv8sf")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(-29, 81)
type = 2
bottom_attachable = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b8o4q0hsm84ov"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5lgql"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_0b6yj"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_0b6yj")
region = Rect2(6, 1868, 101, 246)
[resource]
script = ExtResource("1_5lgql")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(-21, 102)
type = 2
bottom_attachable = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bb33v756anesy"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gcphf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_tnhr7"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_tnhr7")
region = Rect2(100, 1930, 121, 181)
[resource]
script = ExtResource("1_gcphf")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(7, 68)
type = 2
bottom_attachable = true

View File

@@ -1,16 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cbqrl72y0d1yg"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_k38pp"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_cwsfe"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_cwsfe")
region = Rect2(238, 1897, 80, 82)
[resource]
script = ExtResource("1_k38pp")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(12, 25)
type = 2
is_back = true
bottom_attachable = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dwppani7gyjl5"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2m37y"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_pyvr6"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_pyvr6")
region = Rect2(347, 1935, 87, 89)
[resource]
script = ExtResource("1_2m37y")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(-5, 25)
type = 2
bottom_attachable = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dkta1u1u0efxk"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2r1e2"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_tv2v3"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_tv2v3")
region = Rect2(281, 2022, 97, 94)
[resource]
script = ExtResource("1_2r1e2")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(11, 25)
type = 2
bottom_attachable = true

View File

@@ -1,15 +1,26 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://7hrdkl6bf3o4"] [gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://7hrdkl6bf3o4"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_o5tro"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_peh48"] [ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_peh48"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_o5tro"] [ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_o5tro"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] [sub_resource type="Resource" id="Resource_sfip3"]
atlas = ExtResource("2_o5tro") script = ExtResource("1_o5tro")
region = Rect2(518, 116, 147, 110) position = Vector2(8, -4)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_iss37"]
script = ExtResource("1_o5tro")
position = Vector2(-39, 2)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_o5tro")
region = Rect2(525, 122, 136, 98)
[resource] [resource]
resource_name = "Branch1"
script = ExtResource("1_peh48") script = ExtResource("1_peh48")
texture = SubResource("AtlasTexture_mypt2") texture = SubResource("AtlasTexture_khbsd")
root = Vector2(-34, 2) root = SubResource("Resource_iss37")
type = 1 attaches = Array[ExtResource("1_o5tro")]([SubResource("Resource_sfip3")])
is_back = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b68fyu1j5d6te"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_bxo74"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_fvydc"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_fvydc")
region = Rect2(716, 966, 212, 172)
[resource]
script = ExtResource("1_bxo74")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(-66, 11)
attaches = Array[Vector2]([Vector2(-14, 39), Vector2(58, -39)])
type = 1

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://d2y7o2hc6ffei"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wnxgs"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_smg8i"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_smg8i")
region = Rect2(487, 1206, 111, 164)
[resource]
script = ExtResource("1_wnxgs")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(28, 47)
attaches = Array[Vector2]([Vector2(4, 29)])
type = 1

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://civ4gr1c2pq7g"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1cr0i"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_h0d20"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_h0d20")
region = Rect2(753, 1188, 172, 191)
[resource]
script = ExtResource("1_1cr0i")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(-19, 57)
attaches = Array[Vector2]([Vector2(6, 31), Vector2(1, -12)])
type = 1

View File

@@ -1,16 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bqfocs6f0iypo"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p4qfr"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_iibe2"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_iibe2")
region = Rect2(515, 1445, 123, 171)
[resource]
script = ExtResource("1_p4qfr")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(-19, 57)
attaches = Array[Vector2]([Vector2(12, 16)])
type = 1
is_back = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://drml5dm8i3j3a"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5xrel"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_0v6u4"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_0v6u4")
region = Rect2(708, 1421, 178, 204)
[resource]
script = ExtResource("1_5xrel")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(34, 75)
attaches = Array[Vector2]([Vector2(18, 21)])
type = 1

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b1t5nfwcln5vo"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_0mgvf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_k1p2k"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_k1p2k")
region = Rect2(450, 1656, 194, 235)
[resource]
script = ExtResource("1_0mgvf")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(33, 85)
attaches = Array[Vector2]([Vector2(-6, 19), Vector2(-33, -25)])
type = 1

View File

@@ -1,16 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b4s58a600q2rn"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_l4nmf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_ifu40"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_ifu40")
region = Rect2(745, 1655, 214, 183)
[resource]
script = ExtResource("1_l4nmf")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(-42, 53)
attaches = Array[Vector2]([Vector2(19, 3)])
type = 1
is_back = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dspugxsjw2aea"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gpxi3"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_e0an0"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_e0an0")
region = Rect2(453, 1996, 156, 102)
[resource]
script = ExtResource("1_gpxi3")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(47, 30)
attaches = Array[Vector2]([Vector2(-11, 5)])
type = 1

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cnt38l2fmg8d7"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wmuv5"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_4klgd"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_4klgd")
region = Rect2(723, 1895, 198, 194)
[resource]
script = ExtResource("1_wmuv5")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(-49, 73)
attaches = Array[Vector2]([Vector2(18, 21)])
type = 1

View File

@@ -1,14 +1,26 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://ceisi5yyie7to"] [gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://ceisi5yyie7to"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1eil5"] [ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1eil5"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_h27ow"] [ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_h27ow"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_h27ow"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] [sub_resource type="Resource" id="Resource_svi20"]
atlas = ExtResource("2_h27ow") script = ExtResource("1_h27ow")
region = Rect2(735, 104, 118, 109) position = Vector2(-1, 1)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_60wnb"]
script = ExtResource("1_h27ow")
position = Vector2(28, 0)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_h27ow")
region = Rect2(743, 108, 104, 114)
[resource] [resource]
resource_name = "Branch2"
script = ExtResource("1_1eil5") script = ExtResource("1_1eil5")
texture = SubResource("AtlasTexture_mypt2") texture = SubResource("AtlasTexture_khbsd")
root = Vector2(28, 5) root = SubResource("Resource_60wnb")
type = 1 attaches = Array[ExtResource("1_h27ow")]([SubResource("Resource_svi20")])

View File

@@ -1,15 +1,31 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cxiu8frk04b5i"] [gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cxiu8frk04b5i"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_4au1t"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_qrhlr"] [ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_qrhlr"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_4au1t"] [ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_4au1t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] [sub_resource type="Resource" id="Resource_liidl"]
atlas = ExtResource("2_4au1t") script = ExtResource("1_4au1t")
region = Rect2(487, 242, 188, 176) position = Vector2(17, 28)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_mivnq"]
script = ExtResource("1_4au1t")
position = Vector2(-15, -36)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_psg71"]
script = ExtResource("1_4au1t")
position = Vector2(46, 43)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_4au1t")
region = Rect2(506, 248, 139, 173)
[resource] [resource]
resource_name = "Branch3"
script = ExtResource("1_qrhlr") script = ExtResource("1_qrhlr")
texture = SubResource("AtlasTexture_mypt2") texture = SubResource("AtlasTexture_khbsd")
root = Vector2(39, 45) root = SubResource("Resource_psg71")
attaches = Array[Vector2]([Vector2(6, 35), Vector2(-24, -34)]) attaches = Array[ExtResource("1_4au1t")]([SubResource("Resource_liidl"), SubResource("Resource_mivnq")])
type = 1

View File

@@ -1,16 +1,36 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://53p5g07e3pb4"] [gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://53p5g07e3pb4"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_2wu38"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tu2er"] [ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tu2er"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_2wu38"] [ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_5mbvh"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] [sub_resource type="Resource" id="Resource_2wu38"]
atlas = ExtResource("2_2wu38") script = ExtResource("1_2wu38")
region = Rect2(743, 246, 192, 185) position = Vector2(-19, 37)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_5mbvh"]
script = ExtResource("1_2wu38")
position = Vector2(-3, 1)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_7ivk8"]
script = ExtResource("1_2wu38")
position = Vector2(29, -52)
attach_types = Array[int]([1])
[sub_resource type="Resource" id="Resource_lwslo"]
script = ExtResource("1_2wu38")
position = Vector2(-44, 57)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_5mbvh")
region = Rect2(776, 250, 152, 177)
[resource] [resource]
resource_name = "Branch4"
script = ExtResource("1_tu2er") script = ExtResource("1_tu2er")
texture = SubResource("AtlasTexture_mypt2") texture = SubResource("AtlasTexture_khbsd")
root = Vector2(-30, 56) root = SubResource("Resource_lwslo")
attaches = Array[Vector2]([Vector2(1, 27), Vector2(43, -54)]) attaches = Array[ExtResource("1_2wu38")]([SubResource("Resource_2wu38"), SubResource("Resource_5mbvh"), SubResource("Resource_7ivk8")])
type = 1
is_back = true

View File

@@ -1,15 +1,36 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cyfyodtfxne1w"] [gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cyfyodtfxne1w"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_7ri8e"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_sfan5"] [ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_sfan5"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_7ri8e"] [ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_kwcpq"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] [sub_resource type="Resource" id="Resource_a5n1t"]
atlas = ExtResource("2_7ri8e") script = ExtResource("1_7ri8e")
region = Rect2(458, 495, 226, 204) position = Vector2(56, 24)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_d1jt0"]
script = ExtResource("1_7ri8e")
position = Vector2(36, -8)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_72tpv"]
script = ExtResource("1_7ri8e")
position = Vector2(-40, -66)
attach_types = Array[int]([1])
[sub_resource type="Resource" id="Resource_04uhi"]
script = ExtResource("1_7ri8e")
position = Vector2(73, 61)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_kwcpq")
region = Rect2(442, 491, 225, 234)
[resource] [resource]
resource_name = "Branch5"
script = ExtResource("1_sfan5") script = ExtResource("1_sfan5")
texture = SubResource("AtlasTexture_mypt2") texture = SubResource("AtlasTexture_khbsd")
root = Vector2(54, 70) root = SubResource("Resource_04uhi")
attaches = Array[Vector2]([Vector2(18, 6), Vector2(-55, -52)]) attaches = Array[ExtResource("1_7ri8e")]([SubResource("Resource_a5n1t"), SubResource("Resource_d1jt0"), SubResource("Resource_72tpv")])
type = 1

View File

@@ -1,16 +1,36 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cuvtf4y1dspcp"] [gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cuvtf4y1dspcp"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_l4h5t"] [ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_yt05g"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_yt05g"] [ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_cps4v"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_t38ym"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] [sub_resource type="Resource" id="Resource_o1b7h"]
atlas = ExtResource("2_yt05g") script = ExtResource("1_yt05g")
region = Rect2(728, 493, 203, 179) position = Vector2(-18, 26)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_pdqa4"]
script = ExtResource("1_yt05g")
position = Vector2(16, -16)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_y2r4w"]
script = ExtResource("1_yt05g")
position = Vector2(44, -63)
attach_types = Array[int]([1])
[sub_resource type="Resource" id="Resource_83cbs"]
script = ExtResource("1_yt05g")
position = Vector2(-49, 42)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_t38ym")
region = Rect2(753, 507, 173, 183)
[resource] [resource]
script = ExtResource("1_l4h5t") resource_name = "Branch6"
texture = SubResource("AtlasTexture_mypt2") script = ExtResource("2_cps4v")
root = Vector2(-36, 59) texture = SubResource("AtlasTexture_khbsd")
attaches = Array[Vector2]([Vector2(16, 27)]) root = SubResource("Resource_83cbs")
type = 1 attaches = Array[ExtResource("1_yt05g")]([SubResource("Resource_o1b7h"), SubResource("Resource_pdqa4"), SubResource("Resource_y2r4w")])
is_back = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://6jnbms553dyd"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_ixygn"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_62ciq"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_62ciq")
region = Rect2(446, 743, 234, 186)
[resource]
script = ExtResource("1_ixygn")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(67, 31)
attaches = Array[Vector2]([Vector2(-4, 14), Vector2(-63, -45)])
type = 1

View File

@@ -1,16 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bkpe0b38m0prg"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1kyqm"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_4kt4t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_4kt4t")
region = Rect2(714, 787, 187, 129)
[resource]
script = ExtResource("1_1kyqm")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(-55, -5)
attaches = Array[Vector2]([Vector2(-18, 16), Vector2(55, 2)])
type = 1
is_back = true

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://31oq17bv1t4t"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_36y6q"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_qdh8q"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_qdh8q")
region = Rect2(442, 964, 199, 159)
[resource]
script = ExtResource("1_36y6q")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(67, 23)
attaches = Array[Vector2]([Vector2(13, 31), Vector2(-29, -14)])
type = 1

View File

@@ -1,15 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://crmvc77bqax1y"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_3u7fo"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_23bbh"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_23bbh")
region = Rect2(1597, 5, 152, 159)
[resource]
script = ExtResource("1_3u7fo")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(49, 63)
type = 3
branch_attachable = true

View File

@@ -1,16 +0,0 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://c0hr7icfkjkoi"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_bcreq"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_af12b"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]
atlas = ExtResource("2_af12b")
region = Rect2(1746, 8, 116, 165)
[resource]
script = ExtResource("1_bcreq")
texture = SubResource("AtlasTexture_mypt2")
root = Vector2(23, 67)
type = 3
is_back = true
branch_attachable = true

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