Dev pour la béta 1
* ajout des artefacts avec la pile et l'emplacement de graine * affichage des artefacts dans le vaisseau sur une étagère * ajout des distributeurs d'artefacts dans les régions * affichage des attributs de bases de plantes dans le vaisseau * changement de l'affichage du choix des régions * changement des icônes du détecteur
This commit is contained in:
@@ -3,19 +3,20 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cvmlp5nxb2rer"
|
||||
path="res://.godot/imported/icon_bg.png-5937ce0a857c4a8a9d624ea9ebf09a97.ctex"
|
||||
path.s3tc="res://.godot/imported/icon_bg.png-5937ce0a857c4a8a9d624ea9ebf09a97.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/dialogic/Editor/HomePage/icon_bg.png"
|
||||
dest_files=["res://.godot/imported/icon_bg.png-5937ce0a857c4a8a9d624ea9ebf09a97.ctex"]
|
||||
dest_files=["res://.godot/imported/icon_bg.png-5937ce0a857c4a8a9d624ea9ebf09a97.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -37,4 +38,4 @@ 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
|
||||
detect_3d/compress_to=0
|
||||
|
||||
@@ -3,19 +3,20 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://duvcdvtgy4h4b"
|
||||
path="res://.godot/imported/icon.png-12e444f0ed59397c7537943ea85b475c.ctex"
|
||||
path.s3tc="res://.godot/imported/icon.png-12e444f0ed59397c7537943ea85b475c.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/dialogic/Modules/Call/icon.png"
|
||||
dest_files=["res://.godot/imported/icon.png-12e444f0ed59397c7537943ea85b475c.ctex"]
|
||||
dest_files=["res://.godot/imported/icon.png-12e444f0ed59397c7537943ea85b475c.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -37,4 +38,4 @@ 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
|
||||
detect_3d/compress_to=0
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
[resource]
|
||||
diffuse_mode = 3
|
||||
specular_mode = 2
|
||||
specular_mode = 1
|
||||
albedo_texture = ExtResource("1_cc1ni")
|
||||
roughness = 0.0
|
||||
rim_tint = 0.48
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
[resource]
|
||||
transparency = 1
|
||||
depth_draw_mode = 1
|
||||
shading_mode = 0
|
||||
albedo_color = Color(1, 1, 1, 0.79607844)
|
||||
albedo_texture = ExtResource("1_buts1")
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,19 @@
|
||||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://cbre45rky1f4v"
|
||||
path="res://.godot/imported/dragon-studio-power-off-386180.mp3-995a97388623e0fa5d3ec6066bd36105.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/audio_manager/assets/sfx/vending_machine/dragon-studio-power-off-386180.mp3"
|
||||
dest_files=["res://.godot/imported/dragon-studio-power-off-386180.mp3-995a97388623e0fa5d3ec6066bd36105.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
BIN
common/audio_manager/assets/sfx/vending_machine/item-drop.wav
Normal file
BIN
common/audio_manager/assets/sfx/vending_machine/item-drop.wav
Normal file
Binary file not shown.
@@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://da3srn8vx4erd"
|
||||
path="res://.godot/imported/item-drop.wav-fe2fcf1f1129f0a2ca522c0426df7f6e.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/audio_manager/assets/sfx/vending_machine/item-drop.wav"
|
||||
dest_files=["res://.godot/imported/item-drop.wav-fe2fcf1f1129f0a2ca522c0426df7f6e.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
@@ -23,10 +23,12 @@
|
||||
[ext_resource type="AudioStream" uid="uid://delq7gsdeqjq2" path="res://common/audio_manager/assets/sfx/respawn/respawn.wav" id="16_xmumj"]
|
||||
[ext_resource type="AudioStream" uid="uid://cbo4ld2yypmte" path="res://common/audio_manager/assets/sfx/harvest/harvest_5.wav" id="17_6w0re"]
|
||||
[ext_resource type="AudioStream" uid="uid://bdxkvaciw4mb3" path="res://common/audio_manager/assets/sfx/dig/dig_2.wav" id="17_bfg8q"]
|
||||
[ext_resource type="AudioStream" uid="uid://da3srn8vx4erd" path="res://common/audio_manager/assets/sfx/vending_machine/item-drop.wav" id="18_ehr7m"]
|
||||
[ext_resource type="AudioStream" uid="uid://cs4y6sinpth8e" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_1.wav" id="18_j8acj"]
|
||||
[ext_resource type="AudioStream" uid="uid://llxrlwfccywb" path="res://common/audio_manager/assets/sfx/dig/dig_3.wav" id="18_nlfrr"]
|
||||
[ext_resource type="AudioStream" uid="uid://c5nfoa6v3r5f7" path="res://common/audio_manager/assets/sfx/harvest/harvest_6.wav" id="18_o4guq"]
|
||||
[ext_resource type="AudioStream" uid="uid://bnkb51nb5ie5p" path="res://common/audio_manager/assets/sfx/door/stereogenicstudio-swish-swoosh-woosh-sfx-47-357152.mp3" id="18_yjs51"]
|
||||
[ext_resource type="AudioStream" uid="uid://cbre45rky1f4v" path="res://common/audio_manager/assets/sfx/vending_machine/dragon-studio-power-off-386180.mp3" id="19_aedoe"]
|
||||
[ext_resource type="AudioStream" uid="uid://bbhkivgarlhqm" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_2.wav" id="19_yjs51"]
|
||||
[ext_resource type="AudioStream" uid="uid://ccfubsk6135qy" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_3.wav" id="20_4ojdh"]
|
||||
[ext_resource type="AudioStream" uid="uid://bjind1iji0gt7" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_1.wav" id="20_pu6t4"]
|
||||
@@ -186,6 +188,15 @@ unique_name_in_owner = true
|
||||
[node name="Dig" type="AudioStreamPlayer" parent="Sfx" unique_id=486042600]
|
||||
stream = SubResource("AudioStreamRandomizer_6o1yh")
|
||||
|
||||
[node name="VendingMachineDrop" type="AudioStreamPlayer" parent="Sfx" unique_id=1161500181]
|
||||
stream = ExtResource("18_ehr7m")
|
||||
pitch_scale = 0.81
|
||||
|
||||
[node name="VendingMachineOff" type="AudioStreamPlayer" parent="Sfx" unique_id=743754597]
|
||||
stream = ExtResource("19_aedoe")
|
||||
volume_db = -14.149
|
||||
pitch_scale = 0.75
|
||||
|
||||
[node name="DoorOpen" type="AudioStreamPlayer" parent="Sfx" unique_id=1440910292]
|
||||
stream = ExtResource("18_yjs51")
|
||||
volume_db = -15.565
|
||||
|
||||
@@ -59,6 +59,8 @@ func _on_change_scene(scene : Scene):
|
||||
"BOREA":
|
||||
stop_all_musics()
|
||||
play_ambiance_alone("Borea", false)
|
||||
"VENDING_MACHINE_ROOM":
|
||||
stop_all_musics()
|
||||
|
||||
# Fonction s'exécutant à chaque début de timeline
|
||||
func _on_timeline_started():
|
||||
|
||||
37
common/game_data/scripts/artefacts/artefact.gd
Normal file
37
common/game_data/scripts/artefacts/artefact.gd
Normal file
@@ -0,0 +1,37 @@
|
||||
@abstract
|
||||
extends Resource
|
||||
class_name Artefact
|
||||
|
||||
const ARTEFACT_ICON = preload("res://common/icons/cube-3d-sphere.svg")
|
||||
const DESC_ICON = preload("res://common/icons/align-right.svg")
|
||||
|
||||
@abstract func get_artefact_name() -> String
|
||||
|
||||
@abstract func get_3d_scene() -> PackedScene
|
||||
|
||||
func get_artefact_desc() -> String:
|
||||
return ""
|
||||
|
||||
func modify_player_max_energy(v : int) -> int:
|
||||
return v
|
||||
|
||||
func modify_player_inventory_size(v : int) -> int:
|
||||
return v
|
||||
|
||||
func card_info() -> CardInfo:
|
||||
var info = CardInfo.new(
|
||||
get_artefact_name(),
|
||||
tr("ARTEFACT")
|
||||
)
|
||||
info.important_stat_icon = ARTEFACT_ICON
|
||||
|
||||
var desc_section := CardSectionInfo.new(
|
||||
tr("DESCRIPTION"),
|
||||
get_artefact_desc(),
|
||||
)
|
||||
desc_section.title_icon = DESC_ICON
|
||||
|
||||
info.sections.append(desc_section)
|
||||
|
||||
return info
|
||||
|
||||
@@ -4,12 +4,12 @@ importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dolv2637emdbw"
|
||||
path="res://.godot/imported/pile.blend-30b48bcbeddf39d9b6df3c289ba33608.scn"
|
||||
path="res://.godot/imported/pile.blend-80c2c782d9d6ad4f0e2e2546a3d5b176.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://gui/artefacts/pile/pile.blend"
|
||||
dest_files=["res://.godot/imported/pile.blend-30b48bcbeddf39d9b6df3c289ba33608.scn"]
|
||||
source_file="res://common/game_data/scripts/artefacts/pile/pile.blend"
|
||||
dest_files=["res://.godot/imported/pile.blend-80c2c782d9d6ad4f0e2e2546a3d5b176.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
15
common/game_data/scripts/artefacts/pile/pile.gd
Normal file
15
common/game_data/scripts/artefacts/pile/pile.gd
Normal file
@@ -0,0 +1,15 @@
|
||||
@tool
|
||||
extends Artefact
|
||||
class_name PileArtefact
|
||||
|
||||
func get_artefact_name() -> String:
|
||||
return "PILE"
|
||||
|
||||
func get_artefact_desc() -> String:
|
||||
return "PILE_DESC_TEXT"
|
||||
|
||||
func get_3d_scene() -> PackedScene:
|
||||
return preload("res://common/game_data/scripts/artefacts/pile/pile.blend")
|
||||
|
||||
func modify_player_max_energy(v : int) -> int:
|
||||
return v + 1
|
||||
@@ -4,12 +4,12 @@ importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://cclvb8o3vofff"
|
||||
path="res://.godot/imported/seed_case.blend-123afc7672467c4885837d27f75f5e08.scn"
|
||||
path="res://.godot/imported/seed_case.blend-c6a943c9ac5e07f38ec4fc399a8f6f42.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://gui/artefacts/seed_case/seed_case.blend"
|
||||
dest_files=["res://.godot/imported/seed_case.blend-123afc7672467c4885837d27f75f5e08.scn"]
|
||||
source_file="res://common/game_data/scripts/artefacts/seed_case/seed_case.blend"
|
||||
dest_files=["res://.godot/imported/seed_case.blend-c6a943c9ac5e07f38ec4fc399a8f6f42.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
15
common/game_data/scripts/artefacts/seed_case/seed_case.gd
Normal file
15
common/game_data/scripts/artefacts/seed_case/seed_case.gd
Normal file
@@ -0,0 +1,15 @@
|
||||
@tool
|
||||
extends Artefact
|
||||
class_name SeedCaseArtefact
|
||||
|
||||
func get_artefact_name() -> String:
|
||||
return "SEED_CASE"
|
||||
|
||||
func get_artefact_desc() -> String:
|
||||
return "SEED_CASE_DESC_TEXT"
|
||||
|
||||
func get_3d_scene() -> PackedScene:
|
||||
return preload("res://common/game_data/scripts/artefacts/seed_case/seed_case.blend")
|
||||
|
||||
func modify_player_inventory_size(v : int) -> int:
|
||||
return v + 1
|
||||
@@ -3,15 +3,22 @@ class_name GameData
|
||||
|
||||
enum GameMode {STORY,INFINITE}
|
||||
|
||||
signal current_run_updated(r : RunData)
|
||||
signal current_region_data_updated(p : RegionData)
|
||||
|
||||
@export var current_run : RunData = null
|
||||
|
||||
@export var current_region_data : RegionData = null
|
||||
|
||||
@export var player_data : PlayerData = PlayerData.new()
|
||||
|
||||
@export var max_mutations_by_plant : int = 2
|
||||
@export var current_run : RunData = start_run() :
|
||||
set(v):
|
||||
current_run = v
|
||||
current_run_updated.emit(v)
|
||||
|
||||
@export var current_region_data : RegionData = null :
|
||||
set(v):
|
||||
current_region_data = v
|
||||
current_region_data_updated.emit(v)
|
||||
|
||||
@export var progression_data : ProgressionData = ProgressionData.new()
|
||||
|
||||
@export var last_game_scene : Scene = null
|
||||
|
||||
@@ -25,13 +32,18 @@ signal current_region_data_updated(p : RegionData)
|
||||
|
||||
@export var dialogs_done : Array[String] = [] #Chemin des dialogues démarrés
|
||||
|
||||
func start_run():
|
||||
player_data.inventory.clear_items()
|
||||
func start_run() -> RunData:
|
||||
player_data.clear_inventory()
|
||||
current_run = RunData.new()
|
||||
current_run.artefacts_changed.connect(
|
||||
func(artefacts : Array[Artefact]):
|
||||
player_data._on_artefacts_updated(artefacts)
|
||||
)
|
||||
current_run.current_run_point_changed.connect(
|
||||
func(rp : RunPoint):
|
||||
start_region(rp.region_parameter)
|
||||
)
|
||||
return current_run
|
||||
|
||||
func reset_player():
|
||||
player_data = PlayerData.new()
|
||||
@@ -42,7 +54,6 @@ func reset_all():
|
||||
|
||||
func start_region(region_param : RegionParameter):
|
||||
current_region_data = RegionData.new(region_param)
|
||||
current_region_data_updated.emit(current_region_data)
|
||||
GameInfo.save_game_data()
|
||||
|
||||
func give_up():
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
extends Resource
|
||||
class_name PlantArchetype
|
||||
class_name ProgressionData
|
||||
|
||||
@export var archetype_name := Random.generate_random_word()
|
||||
@export var plant_area_radius = 20
|
||||
@export var plant_influence_radius = 100
|
||||
@export var growing_time = 2
|
||||
@export var lifetime = 6
|
||||
@export var base_score = 1
|
||||
@export var seed_number = 2
|
||||
@export var seed_random_loose = 1
|
||||
@export var available_mutations: Array[PlantMutation] = [
|
||||
AncientMutation.new(),
|
||||
EphemeralMutation.new(),
|
||||
@@ -28,8 +20,9 @@ class_name PlantArchetype
|
||||
VivaciousMutation.new(),
|
||||
]
|
||||
|
||||
static func get_all() -> Array[PlantArchetype]:
|
||||
return [PlantArchetype.new()]
|
||||
@export var available_artefacts: Array[Artefact] = [
|
||||
PileArtefact.new(),
|
||||
SeedCaseArtefact.new()
|
||||
]
|
||||
|
||||
static func get_random() -> PlantArchetype:
|
||||
return get_all().pick_random()
|
||||
@export var max_mutations_by_plant : int = 2
|
||||
1
common/game_data/scripts/progression_data.gd.uid
Normal file
1
common/game_data/scripts/progression_data.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cel2kwfmhvb0a
|
||||
@@ -6,7 +6,8 @@ enum State {STARTED, IN_PROGRESS, FINISHED}
|
||||
const RUN_POINTS_NEXT_NUMBER : int = 2
|
||||
const RUN_POINT_MAX_LEVEL = 5 # TODO
|
||||
|
||||
signal current_run_point_changed
|
||||
signal current_run_point_changed(rp : RunPoint)
|
||||
signal artefacts_changed(artefact : Array[Artefact])
|
||||
|
||||
var run_seed = randi()
|
||||
@export var next_run_points : Array[RunPoint] = generate_next_run_points()
|
||||
@@ -18,7 +19,19 @@ var run_seed = randi()
|
||||
|
||||
@export var last_used_modifier_name = ""
|
||||
|
||||
#region ------------------ Generation ------------------
|
||||
@export var artefacts : Array[Artefact] = []
|
||||
|
||||
var plant_info = RunDataPlantInfo.new(self)
|
||||
|
||||
func get_state() -> State:
|
||||
if not current_run_point:
|
||||
return State.STARTED
|
||||
elif current_run_point.level == RUN_POINT_MAX_LEVEL:
|
||||
return State.FINISHED
|
||||
else :
|
||||
return State.IN_PROGRESS
|
||||
|
||||
#region ------------------ Run Points ------------------
|
||||
|
||||
func generate_next_run_points(level = 0) -> Array[RunPoint]:
|
||||
|
||||
@@ -35,13 +48,12 @@ func generate_next_run_points(level = 0) -> Array[RunPoint]:
|
||||
)
|
||||
|
||||
return next_run_points
|
||||
|
||||
|
||||
func generate_next_run_point(level = 0) -> RunPoint:
|
||||
var region_parameter = RegionParameter.new()
|
||||
region_parameter.level = level
|
||||
region_parameter.region_flags = get_region_flags(region_parameter)
|
||||
region_parameter.modifiers = get_region_modifiers()
|
||||
region_parameter.modifiers = get_bad_region_modifiers()
|
||||
region_parameter.modifiers.append_array(get_good_region_modifiers())
|
||||
|
||||
return RunPoint.new(
|
||||
level,
|
||||
@@ -51,7 +63,6 @@ func generate_next_run_point(level = 0) -> RunPoint:
|
||||
func generate_borea_base_run_point() -> RunPoint:
|
||||
var region_parameter = RegionParameter.new()
|
||||
region_parameter.level = RUN_POINT_MAX_LEVEL
|
||||
region_parameter.region_flags = get_region_flags(region_parameter)
|
||||
region_parameter.region_name = tr("BOREA_BASE")
|
||||
|
||||
return RunPoint.new(
|
||||
@@ -59,16 +70,6 @@ func generate_borea_base_run_point() -> RunPoint:
|
||||
region_parameter
|
||||
)
|
||||
|
||||
#endregion
|
||||
|
||||
func get_state() -> State:
|
||||
if not current_run_point:
|
||||
return State.STARTED
|
||||
elif current_run_point.level == RUN_POINT_MAX_LEVEL:
|
||||
return State.FINISHED
|
||||
else :
|
||||
return State.IN_PROGRESS
|
||||
|
||||
func get_next_run_points() -> Array[RunPoint]:
|
||||
if current_run_point and current_run_point.level == RUN_POINT_MAX_LEVEL:
|
||||
return []
|
||||
@@ -84,15 +85,10 @@ func choose_next_run_point(run_point : RunPoint) -> RunPoint:
|
||||
last_used_modifier_name = current_run_point.region_parameter.modifiers[0].get_modifier_name()
|
||||
return current_run_point
|
||||
|
||||
func get_region_flags(region_parameter : RegionParameter) -> Array[String]:
|
||||
var flags : Array[String] = []
|
||||
func get_good_region_modifiers() -> Array[RegionModifier]:
|
||||
return [VendingMachineModifier.new(),VendingMachineModifier.new()]
|
||||
|
||||
if region_parameter.level == RUN_POINT_MAX_LEVEL and GameInfo.game_data.game_mode == GameData.GameMode.STORY:
|
||||
flags.append("borea")
|
||||
|
||||
return flags
|
||||
|
||||
func get_region_modifiers() -> Array[RegionModifier]:
|
||||
func get_bad_region_modifiers() -> Array[RegionModifier]:
|
||||
var possible_modifiers : Array[RegionModifier] = [
|
||||
AridModifier.new(),
|
||||
HumidModifier.new(),
|
||||
@@ -109,3 +105,13 @@ func get_region_modifiers() -> Array[RegionModifier]:
|
||||
last_used_modifier_name = choosen_modifier.get_modifier_name()
|
||||
|
||||
return [choosen_modifier]
|
||||
|
||||
#endregion
|
||||
|
||||
#region ------------------ Artefacts ------------------
|
||||
|
||||
func add_artefacts(a: Artefact):
|
||||
artefacts.append(a)
|
||||
artefacts_changed.emit(artefacts)
|
||||
|
||||
#endregion
|
||||
|
||||
43
common/game_data/scripts/run/run_data_plant_info.gd
Normal file
43
common/game_data/scripts/run/run_data_plant_info.gd
Normal file
@@ -0,0 +1,43 @@
|
||||
extends Node
|
||||
class_name RunDataPlantInfo
|
||||
|
||||
signal updated
|
||||
|
||||
const DEFAULT_PLANT_AREA_RADIUS = 20
|
||||
const DEFAULT_PLANT_INFLUENCE_RADIUS = 100
|
||||
const DEFAULT_GROWING_TIME = 2
|
||||
const DEFAULT_LIFETIME = 6
|
||||
const DEFAULT_BASE_SCORE = 1
|
||||
const DEFAULT_SEED_NUMBER = 2
|
||||
const DEFAULT_SEED_RANDOM_LOOSE = 1
|
||||
|
||||
var run_data : RunData
|
||||
|
||||
func _init(
|
||||
_run_data : RunData
|
||||
):
|
||||
run_data = _run_data
|
||||
|
||||
var region_modifiers : Array[RegionModifier]
|
||||
var artefacts : Array[Artefact] = []
|
||||
|
||||
func get_plant_area_radius() -> int:
|
||||
return DEFAULT_PLANT_AREA_RADIUS
|
||||
|
||||
func get_plant_influence_radius() -> int:
|
||||
return DEFAULT_PLANT_INFLUENCE_RADIUS
|
||||
|
||||
func get_growing_time() -> int:
|
||||
return DEFAULT_GROWING_TIME
|
||||
|
||||
func get_lifetime() -> int:
|
||||
return DEFAULT_LIFETIME
|
||||
|
||||
func get_base_score() -> int:
|
||||
return DEFAULT_BASE_SCORE
|
||||
|
||||
func get_seed_number() -> int:
|
||||
return DEFAULT_SEED_NUMBER
|
||||
|
||||
func get_seed_random_loose() -> int:
|
||||
return DEFAULT_SEED_RANDOM_LOOSE
|
||||
1
common/game_data/scripts/run/run_data_plant_info.gd.uid
Normal file
1
common/game_data/scripts/run/run_data_plant_info.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cf8sn5n5u2hd6
|
||||
@@ -4,7 +4,7 @@ class_name RunPoint
|
||||
|
||||
const DANGER_ICON = preload("res://common/icons/skull.svg")
|
||||
const TYPE_ICON = preload("res://common/icons/map-pin.svg")
|
||||
const OBJECTIVE_ICON = preload("res://common/icons/dna.svg")
|
||||
const OBJECTIVE_ICON = preload("res://common/icons/growth.svg")
|
||||
const CHARGE_ICON = preload("res://common/icons/bolt.svg")
|
||||
|
||||
@export var level : int = 0 # X pos along the planet, and difficulty
|
||||
@@ -24,15 +24,20 @@ func _init(
|
||||
position = _position
|
||||
|
||||
func card_info() -> CardInfo:
|
||||
var info = CardInfo.new(region_parameter.region_name)
|
||||
info.important_stat_icon = DANGER_ICON
|
||||
info.important_stat_text = "%d" % level
|
||||
var info = CardInfo.new(
|
||||
region_parameter.region_name,
|
||||
tr("REGION_TO_VISIT")
|
||||
)
|
||||
|
||||
info.type_icon = TYPE_ICON
|
||||
|
||||
info.stats.append_array([
|
||||
CardStatInfo.new(str(region_parameter.objective), OBJECTIVE_ICON),
|
||||
CardStatInfo.new(str(region_parameter.charges), CHARGE_ICON),
|
||||
CardStatInfo.new(str(region_parameter.get_objective()), OBJECTIVE_ICON),
|
||||
CardStatInfo.new(str(region_parameter.get_charge()), CHARGE_ICON),
|
||||
])
|
||||
|
||||
for m in region_parameter.modifiers:
|
||||
|
||||
info.sections.append(m.card_section())
|
||||
|
||||
return info
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
extends Node
|
||||
|
||||
const SAVE_GAME_LOCATION = "user://stw_demo_save.tres"
|
||||
const SAVE_GAME_LOCATION = "user://stw_beta_save.tres"
|
||||
const SAVE_SETTINGS_LOCATION = "user://stw_settings.tres"
|
||||
|
||||
var game_loaded = false
|
||||
|
||||
1
common/icons/cactus.svg
Normal file
1
common/icons/cactus.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#ffffff" class="icon icon-tabler icons-tabler-filled icon-tabler-cactus"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M7 22a1 1 0 0 1 -.117 -1.993l.117 -.007h2v-6a4 4 0 0 1 -3.995 -3.8l-.005 -.2v-1a1 1 0 0 1 1.993 -.117l.007 .117v1a2 2 0 0 0 1.85 1.995l.15 .005v-7a3 3 0 0 1 5.995 -.176l.005 .176v10a2 2 0 0 0 1.995 -1.85l.005 -.15v-5a1 1 0 0 1 1.993 -.117l.007 .117v5a4 4 0 0 1 -3.8 3.995l-.2 .005v3h2a1 1 0 0 1 .117 1.993l-.117 .007h-10z" /></svg>
|
||||
|
After Width: | Height: | Size: 554 B |
43
common/icons/cactus.svg.import
Normal file
43
common/icons/cactus.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dy1lkhowfs40l"
|
||||
path="res://.godot/imported/cactus.svg-bf980582753f79920261a0227d753414.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/cactus.svg"
|
||||
dest_files=["res://.godot/imported/cactus.svg-bf980582753f79920261a0227d753414.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
@@ -3,19 +3,20 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://80gifgp26h2g"
|
||||
path="res://.godot/imported/check.svg-47a7b8486ac6d60efdca46538f2829a9.ctex"
|
||||
path.s3tc="res://.godot/imported/check.svg-47a7b8486ac6d60efdca46538f2829a9.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/check.svg"
|
||||
dest_files=["res://.godot/imported/check.svg-47a7b8486ac6d60efdca46538f2829a9.ctex"]
|
||||
dest_files=["res://.godot/imported/check.svg-47a7b8486ac6d60efdca46538f2829a9.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -37,7 +38,7 @@ 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
|
||||
detect_3d/compress_to=0
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
|
||||
1
common/icons/cloud-rain.svg
Normal file
1
common/icons/cloud-rain.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-cloud-rain"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7" /><path d="M11 13v2m0 3v2m4 -5v2m0 3v2" /></svg>
|
||||
|
After Width: | Height: | Size: 417 B |
43
common/icons/cloud-rain.svg.import
Normal file
43
common/icons/cloud-rain.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ce3hclmo0jcoh"
|
||||
path="res://.godot/imported/cloud-rain.svg-80379b0936dff4583ecdd239d916ebab.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/cloud-rain.svg"
|
||||
dest_files=["res://.godot/imported/cloud-rain.svg-80379b0936dff4583ecdd239d916ebab.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
1
common/icons/cloud.svg
Normal file
1
common/icons/cloud.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#ffffff" class="icon icon-tabler icons-tabler-filled icon-tabler-cloud"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M10.04 4.305c2.195 -.667 4.615 -.224 6.36 1.176c1.386 1.108 2.188 2.686 2.252 4.34l.003 .212l.091 .003c2.3 .107 4.143 1.961 4.25 4.27l.004 .211c0 2.407 -1.885 4.372 -4.255 4.482l-.21 .005h-11.878l-.222 -.008c-2.94 -.11 -5.317 -2.399 -5.43 -5.263l-.005 -.216c0 -2.747 2.08 -5.01 4.784 -5.417l.114 -.016l.07 -.181c.663 -1.62 2.056 -2.906 3.829 -3.518l.244 -.08z" /></svg>
|
||||
|
After Width: | Height: | Size: 591 B |
43
common/icons/cloud.svg.import
Normal file
43
common/icons/cloud.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ca5ay65v2piar"
|
||||
path="res://.godot/imported/cloud.svg-3c8ab957b71c8c1031955ba13dd97127.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/cloud.svg"
|
||||
dest_files=["res://.godot/imported/cloud.svg-3c8ab957b71c8c1031955ba13dd97127.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
1
common/icons/droplet-off.svg
Normal file
1
common/icons/droplet-off.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-droplet-off"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M18.963 14.938a6.54 6.54 0 0 0 -.899 -4.06l-4.89 -7.26c-.42 -.626 -1.287 -.804 -1.936 -.398a1.376 1.376 0 0 0 -.41 .397l-1.282 1.9m-1.625 2.415l-1.986 2.946c-1.695 2.837 -1.035 6.44 1.567 8.545c2.602 2.105 6.395 2.105 8.996 0a6.83 6.83 0 0 0 1.376 -1.499" /><path d="M3 3l18 18" /></svg>
|
||||
|
After Width: | Height: | Size: 594 B |
43
common/icons/droplet-off.svg.import
Normal file
43
common/icons/droplet-off.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dei0604x87idg"
|
||||
path="res://.godot/imported/droplet-off.svg-e7f02e8378325ae2ff9295f8e574f011.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/droplet-off.svg"
|
||||
dest_files=["res://.godot/imported/droplet-off.svg-e7f02e8378325ae2ff9295f8e574f011.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
@@ -3,19 +3,20 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://4dwxhvjo0yye"
|
||||
path="res://.godot/imported/hand-grab.svg-aedc27673ee0414dc711257574ee9c66.ctex"
|
||||
path.s3tc="res://.godot/imported/hand-grab.svg-aedc27673ee0414dc711257574ee9c66.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/hand-grab.svg"
|
||||
dest_files=["res://.godot/imported/hand-grab.svg-aedc27673ee0414dc711257574ee9c66.ctex"]
|
||||
dest_files=["res://.godot/imported/hand-grab.svg-aedc27673ee0414dc711257574ee9c66.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -37,7 +38,7 @@ 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
|
||||
detect_3d/compress_to=0
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
|
||||
@@ -3,19 +3,20 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://3slhocr5wy3w"
|
||||
path="res://.godot/imported/hand-stop.svg-bc0d0e986bcb4b50bdd5686b5bff814b.ctex"
|
||||
path.s3tc="res://.godot/imported/hand-stop.svg-bc0d0e986bcb4b50bdd5686b5bff814b.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/hand-stop.svg"
|
||||
dest_files=["res://.godot/imported/hand-stop.svg-bc0d0e986bcb4b50bdd5686b5bff814b.ctex"]
|
||||
dest_files=["res://.godot/imported/hand-stop.svg-bc0d0e986bcb4b50bdd5686b5bff814b.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -37,7 +38,7 @@ 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
|
||||
detect_3d/compress_to=0
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
|
||||
1
common/icons/wind.svg
Normal file
1
common/icons/wind.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-wind"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M5 8h8.5a2.5 2.5 0 1 0 -2.34 -3.24" /><path d="M3 12h15.5a2.5 2.5 0 1 1 -2.34 3.24" /><path d="M4 16h5.5a2.5 2.5 0 1 1 -2.34 3.24" /></svg>
|
||||
|
After Width: | Height: | Size: 439 B |
43
common/icons/wind.svg.import
Normal file
43
common/icons/wind.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bingjfdcqqd2q"
|
||||
path="res://.godot/imported/wind.svg-b1263ce4dc951f76203e96e68da496a8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/wind.svg"
|
||||
dest_files=["res://.godot/imported/wind.svg-b1263ce4dc951f76203e96e68da496a8.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
|
||||
@@ -10,7 +10,8 @@
|
||||
[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"]
|
||||
[ext_resource type="Resource" uid="uid://cvrs6qsq7mpa5" path="res://common/scene_manager/scenes/borea.tres" id="10_ytog4"]
|
||||
[ext_resource type="Resource" uid="uid://cjoo5et437kr3" path="res://common/scene_manager/scenes/vending_machine_room.tres" id="11_chs32"]
|
||||
|
||||
[node name="SceneManager" type="Node" unique_id=1630600782]
|
||||
script = ExtResource("1_1c0qu")
|
||||
scenes = Array[ExtResource("2_c1lr7")]([ExtResource("3_e28ni"), ExtResource("4_msho1"), ExtResource("5_ytog4"), ExtResource("6_chs32"), ExtResource("7_ol3d5"), ExtResource("8_e28ni"), ExtResource("9_msho1"), ExtResource("10_ytog4")])
|
||||
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"), ExtResource("10_ytog4"), ExtResource("11_chs32")])
|
||||
|
||||
10
common/scene_manager/scenes/vending_machine_room.tres
Normal file
10
common/scene_manager/scenes/vending_machine_room.tres
Normal file
@@ -0,0 +1,10 @@
|
||||
[gd_resource type="Resource" script_class="Scene" format=3 uid="uid://cjoo5et437kr3"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="1_2xhcl"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_2xhcl")
|
||||
scene_id = "VENDING_MACHINE_ROOM"
|
||||
scene_path = "res://stages/3d_scenes/vending_machine_room/vending_machine_room.tscn"
|
||||
mouse_captured = true
|
||||
metadata/_custom_type_script = "uid://1ejbvr3431ac"
|
||||
@@ -2,6 +2,7 @@ extends Area3D
|
||||
class_name Interactable3D
|
||||
|
||||
@export var interactable = true
|
||||
@export var inspectable = false
|
||||
|
||||
signal clicked
|
||||
|
||||
@@ -12,16 +13,6 @@ 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()
|
||||
@@ -33,7 +24,14 @@ func stop_audio():
|
||||
func _on_mouse_entered():
|
||||
if hover_animation_player:
|
||||
hover_animation_player.play("hover")
|
||||
if inspectable:
|
||||
Pointer.inspect(self)
|
||||
|
||||
func _on_mouse_exited():
|
||||
if hover_animation_player:
|
||||
hover_animation_player.stop()
|
||||
if inspectable:
|
||||
Pointer.stop_inspect(self)
|
||||
|
||||
func card_info() -> CardInfo:
|
||||
return null
|
||||
|
||||
@@ -4,6 +4,11 @@ class_name Door
|
||||
|
||||
@export var to_scene_id = ""
|
||||
@export var icon : Texture : set = set_icon
|
||||
@export var present : bool = false : set = set_present
|
||||
@export var door_id : int
|
||||
|
||||
func _init():
|
||||
default_interact_text = "ENTER"
|
||||
|
||||
func _ready():
|
||||
if available:
|
||||
@@ -11,10 +16,13 @@ func _ready():
|
||||
else:
|
||||
%AnimatedSprite2D.play("closed")
|
||||
set_icon()
|
||||
set_present()
|
||||
|
||||
func interact(_p : Player) -> bool:
|
||||
func interact(p : Player) -> bool:
|
||||
if available and to_scene_id:
|
||||
interacted.emit(_p)
|
||||
p.region.data.entered_door = name
|
||||
interacted.emit(p)
|
||||
p.region.save()
|
||||
SceneManager.change_to_scene_id(to_scene_id)
|
||||
|
||||
return available
|
||||
@@ -32,3 +40,11 @@ func set_icon(i: Texture = icon):
|
||||
icon = i
|
||||
if is_node_ready():
|
||||
%Icon.texture = icon
|
||||
|
||||
func set_present(p := present):
|
||||
present = p
|
||||
if present:
|
||||
process_mode = Node.PROCESS_MODE_INHERIT
|
||||
else:
|
||||
process_mode = Node.PROCESS_MODE_DISABLED
|
||||
visible = present
|
||||
@@ -3,19 +3,20 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cqecty3kl6yg6"
|
||||
path="res://.godot/imported/STW_Props_Batterie_V2.png-5149763f9e1dac76893ec05c148e8056.ctex"
|
||||
path.s3tc="res://.godot/imported/STW_Props_Batterie_V2.png-5149763f9e1dac76893ec05c148e8056.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://entities/interactables/truck/recharge/STW_Props_Batterie_V2.png"
|
||||
dest_files=["res://.godot/imported/STW_Props_Batterie_V2.png-5149763f9e1dac76893ec05c148e8056.ctex"]
|
||||
dest_files=["res://.godot/imported/STW_Props_Batterie_V2.png-5149763f9e1dac76893ec05c148e8056.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -37,4 +38,4 @@ 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
|
||||
detect_3d/compress_to=0
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="AncientMutation" format=3 uid="uid://dys1ehlg4kwh7"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c7po0bstyg80u" path="res://entities/plants/scripts/plant_mutation/ancient_mutation.gd" id="1_5g2qg"]
|
||||
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_yqbjv"]
|
||||
[ext_resource type="Resource" uid="uid://wxqxm6d5twdh" path="res://entities/plants/resources/plant_parts/Leaf8.tres" id="2_s2bpe"]
|
||||
[ext_resource type="Resource" uid="uid://uoikjpno37bi" path="res://entities/plants/resources/plant_parts/Leaf9.tres" id="3_wfusp"]
|
||||
[ext_resource type="Resource" uid="uid://c5gqwck2p5h5n" path="res://entities/plants/resources/plant_parts/Leaf10.tres" id="4_60d0x"]
|
||||
[ext_resource type="Resource" uid="uid://c5fj1cw0f4mu6" path="res://entities/plants/resources/plant_parts/Leaf11.tres" id="5_ooo8j"]
|
||||
[ext_resource type="Resource" uid="uid://dce788f0adauv" path="res://entities/plants/resources/plant_parts/Leaf12.tres" id="6_d0tr0"]
|
||||
[ext_resource type="Resource" uid="uid://dd34dikqoynp3" path="res://entities/plants/resources/plant_parts/Leaf13.tres" id="7_jsy7o"]
|
||||
[ext_resource type="Resource" uid="uid://bynje6g2wvuvl" path="res://entities/plants/resources/plant_parts/Leaf14.tres" id="8_m31fx"]
|
||||
[ext_resource type="Resource" uid="uid://bd2op6q1masjt" path="res://entities/plants/resources/plant_parts/Leaf15.tres" id="9_78ar7"]
|
||||
[ext_resource type="Resource" uid="uid://bvajuw0r47edw" path="res://entities/plants/resources/plant_parts/Leaf16.tres" id="10_dq1wt"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_5g2qg")
|
||||
possible_parts = Array[ExtResource("1_yqbjv")]([ExtResource("2_s2bpe"), ExtResource("3_wfusp"), ExtResource("4_60d0x"), ExtResource("5_ooo8j"), ExtResource("6_d0tr0"), ExtResource("7_jsy7o"), ExtResource("8_m31fx"), ExtResource("9_78ar7"), ExtResource("10_dq1wt")])
|
||||
part_amount = 3
|
||||
metadata/_custom_type_script = "uid://c7po0bstyg80u"
|
||||
@@ -1,6 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ElitistMutation" load_steps=2 format=3 uid="uid://d38alhstybdtf"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bt1xh7ss13e5e" path="res://entities/plants/scripts/plant_mutation/elitist_mutation.gd" id="1_jevqj"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_jevqj")
|
||||
@@ -1,6 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ErmitMutation" load_steps=2 format=3 uid="uid://dktlbpira5kxb"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://domy822vgxfxs" path="res://entities/plants/scripts/plant_mutation/ermit_mutation.gd" id="1_yqhf5"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_yqhf5")
|
||||
@@ -1,7 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="PrecociousMutation" format=3 uid="uid://c3am7s5bjy8qk"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cx5mg5vf62bia" path="res://entities/plants/scripts/plant_mutation/precocious_mutation.gd" id="1_wjcm0"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_wjcm0")
|
||||
metadata/_custom_type_script = "uid://cx5mg5vf62bia"
|
||||
@@ -1,14 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="QualityMutation" format=3 uid="uid://uabbkvg1rciq"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_f2p7y"]
|
||||
[ext_resource type="Script" uid="uid://bdobyk2j625lb" path="res://entities/plants/scripts/plant_mutation/quality_mutation.gd" id="1_u0ku1"]
|
||||
[ext_resource type="Resource" uid="uid://crmvc77bqax1y" path="res://entities/plants/resources/plant_parts/Flower1.tres" id="2_1b5fn"]
|
||||
[ext_resource type="Resource" uid="uid://c0hr7icfkjkoi" path="res://entities/plants/resources/plant_parts/Flower2.tres" id="3_k2uo3"]
|
||||
[ext_resource type="Resource" uid="uid://clkoc1iccts2w" path="res://entities/plants/resources/plant_parts/Flower3.tres" id="4_ywc6r"]
|
||||
[ext_resource type="Resource" uid="uid://bd8yapi1pokj6" path="res://entities/plants/resources/plant_parts/Flower4.tres" id="5_fnfed"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_u0ku1")
|
||||
possible_parts = Array[ExtResource("1_f2p7y")]([ExtResource("2_1b5fn"), ExtResource("3_k2uo3"), ExtResource("4_ywc6r"), ExtResource("5_fnfed")])
|
||||
part_amount = 2
|
||||
metadata/_custom_type_script = "uid://bdobyk2j625lb"
|
||||
@@ -1,19 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="QuickMutation" format=3 uid="uid://b04gaipu237sx"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_68ssf"]
|
||||
[ext_resource type="Script" uid="uid://bhtq0cbrgu58v" path="res://entities/plants/scripts/plant_mutation/quick_mutation.gd" id="1_hr7tm"]
|
||||
[ext_resource type="Resource" uid="uid://brmd6d3l8trqs" path="res://entities/plants/resources/plant_parts/BottomLeaf1.tres" id="2_37ogi"]
|
||||
[ext_resource type="Resource" uid="uid://cfr33014u7ig5" path="res://entities/plants/resources/plant_parts/BottomLeaf2.tres" id="3_4wjrs"]
|
||||
[ext_resource type="Resource" uid="uid://cf70m1us8mfqp" path="res://entities/plants/resources/plant_parts/BottomLeaf3.tres" id="4_w4xgf"]
|
||||
[ext_resource type="Resource" uid="uid://ctlmah4ohqp25" path="res://entities/plants/resources/plant_parts/BottomLeaf4.tres" id="5_7gtu2"]
|
||||
[ext_resource type="Resource" uid="uid://b8o4q0hsm84ov" path="res://entities/plants/resources/plant_parts/BottomLeaf5.tres" id="6_yoj6x"]
|
||||
[ext_resource type="Resource" uid="uid://bb33v756anesy" path="res://entities/plants/resources/plant_parts/BottomLeaf6.tres" id="7_fuf4y"]
|
||||
[ext_resource type="Resource" uid="uid://cbqrl72y0d1yg" path="res://entities/plants/resources/plant_parts/BottomLeaf7.tres" id="8_25vee"]
|
||||
[ext_resource type="Resource" uid="uid://dwppani7gyjl5" path="res://entities/plants/resources/plant_parts/BottomLeaf8.tres" id="9_hqe0q"]
|
||||
[ext_resource type="Resource" uid="uid://dkta1u1u0efxk" path="res://entities/plants/resources/plant_parts/BottomLeaf9.tres" id="10_mxd37"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_hr7tm")
|
||||
possible_parts = Array[ExtResource("1_68ssf")]([ExtResource("2_37ogi"), ExtResource("3_4wjrs"), ExtResource("4_w4xgf"), ExtResource("5_7gtu2"), ExtResource("6_yoj6x"), ExtResource("7_fuf4y"), ExtResource("8_25vee"), ExtResource("9_hqe0q"), ExtResource("10_mxd37")])
|
||||
part_amount = 2
|
||||
metadata/_custom_type_script = "uid://bhtq0cbrgu58v"
|
||||
@@ -1,7 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="SociableMutation" load_steps=2 format=3 uid="uid://bpkvdvael2ojh"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b8q5xgvy85qeb" path="res://entities/plants/scripts/plant_mutation/sociable_mutation.gd" id="1_7u0mw"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_7u0mw")
|
||||
metadata/_custom_type_script = "uid://b8q5xgvy85qeb"
|
||||
@@ -1,7 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="StrongMutation" load_steps=2 format=3 uid="uid://co2r0jnkf8hyb"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cwj3k4p6ci5t4" path="res://entities/plants/scripts/plant_mutation/strong_mutation.gd" id="1_c0ieg"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_c0ieg")
|
||||
metadata/_custom_type_script = "uid://cwj3k4p6ci5t4"
|
||||
@@ -179,7 +179,7 @@ func save() -> EntityData:
|
||||
func card_info() -> CardInfo:
|
||||
var info = CardInfo.new(
|
||||
data.plant_name,
|
||||
tr("MATURE") if data.is_mature() else tr("JUVENILE")# data.archetype.archetype_name
|
||||
tr("MATURE") if data.is_mature() else tr("JUVENILE")
|
||||
)
|
||||
|
||||
info.important_stat_icon = SCORE_ICON
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
uid://chdj832c0rrky
|
||||
@@ -7,7 +7,6 @@ signal nearby_plant_updated()
|
||||
|
||||
enum State {PLANTED, GROWING, MATURE, DEAD}
|
||||
|
||||
@export var archetype: PlantArchetype
|
||||
@export var plant_name: String
|
||||
@export var mutations: Array[PlantMutation]
|
||||
@export var day: int:
|
||||
@@ -16,24 +15,17 @@ enum State {PLANTED, GROWING, MATURE, DEAD}
|
||||
updated.emit(self )
|
||||
@export var random_seed: int
|
||||
|
||||
@export var leafs = 0 # +1 score
|
||||
@export var roots = 0 # +1 lifetime
|
||||
|
||||
# var texture_builder: TextureBuilder = preload("res://entities/plants/scripts/texture_builder/texture_builder.tres")
|
||||
|
||||
var decontamination_area_factor = 0.
|
||||
var nearby_plants : Array[PlantData]
|
||||
|
||||
func _init(
|
||||
_position: Vector2 = Vector2.ZERO,
|
||||
_archetype: PlantArchetype = PlantArchetype.get_random(),
|
||||
_plant_name: String = Random.generate_random_word(),
|
||||
_mutations: Array[PlantMutation] = [],
|
||||
_day: int = 0,
|
||||
_random_seed = randi()
|
||||
):
|
||||
position = _position
|
||||
archetype = _archetype
|
||||
plant_name = _plant_name
|
||||
mutations = _mutations
|
||||
day = _day
|
||||
@@ -45,11 +37,13 @@ func _init(
|
||||
static func generate_from_seed(plant_seed: Seed, plant_position: Vector2) -> PlantData:
|
||||
return PlantData.new(
|
||||
plant_position,
|
||||
plant_seed.plant_archetype,
|
||||
plant_seed.plant_name,
|
||||
plant_seed.plant_mutations
|
||||
)
|
||||
|
||||
func get_plant_info() -> RunDataPlantInfo:
|
||||
return GameInfo.game_data.current_run.plant_info
|
||||
|
||||
func load_entity() -> Entity:
|
||||
var plant = Plant.new(
|
||||
self
|
||||
@@ -57,7 +51,7 @@ func load_entity() -> Entity:
|
||||
return plant
|
||||
|
||||
func get_lifetime() -> int:
|
||||
var lifetime = archetype.lifetime + roots
|
||||
var lifetime = get_plant_info().get_lifetime()
|
||||
|
||||
for m in mutations:
|
||||
lifetime = m.mutate_lifetime(self , lifetime)
|
||||
@@ -68,7 +62,7 @@ func get_lifetime() -> int:
|
||||
return lifetime
|
||||
|
||||
func get_growing_time() -> int:
|
||||
var growing_time = archetype.growing_time
|
||||
var growing_time = get_plant_info().get_growing_time()
|
||||
|
||||
for m in mutations:
|
||||
growing_time = m.mutate_growing_time(self , growing_time)
|
||||
@@ -76,7 +70,7 @@ func get_growing_time() -> int:
|
||||
return growing_time
|
||||
|
||||
func get_score(state: State = get_state()) -> int:
|
||||
var score = archetype.base_score + leafs if state == State.MATURE else 0
|
||||
var score = get_plant_info().get_base_score() if state == State.MATURE else 0
|
||||
|
||||
var mult := 1
|
||||
|
||||
@@ -102,7 +96,7 @@ func is_mature() -> bool:
|
||||
return get_state() == State.MATURE
|
||||
|
||||
func get_seed_number(state = get_state()):
|
||||
var seed_number = archetype.seed_number if (state == State.MATURE or state == State.DEAD) else 0
|
||||
var seed_number = get_plant_info().get_seed_number() if (state == State.MATURE or state == State.DEAD) else 0
|
||||
|
||||
for m in mutations:
|
||||
seed_number = m.mutate_seed_number(self , seed_number)
|
||||
@@ -113,7 +107,7 @@ func get_seed_number(state = get_state()):
|
||||
return seed_number
|
||||
|
||||
func get_seed_random_loose():
|
||||
var seed_random_loose = archetype.seed_random_loose
|
||||
var seed_random_loose = get_plant_info().get_seed_random_loose()
|
||||
for m in mutations:
|
||||
seed_random_loose = m.mutate_seed_random_loose(self , seed_random_loose)
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ func generate_plants():
|
||||
elif plant_state == PlantData.State.DEAD:
|
||||
plant_data.day = plant_data.get_lifetime()
|
||||
for j in n_mutation_per_plant:
|
||||
plant_data.mutations.append(plant_data.archetype.available_mutations.pick_random())
|
||||
plant_data.mutations.append(GameInfo.game_data.progression_data.available_mutations.pick_random())
|
||||
var plant: Plant = Plant.new(plant_data)
|
||||
print(plant.data.plant_name)
|
||||
%Plants.add_child(plant)
|
||||
|
||||
@@ -1,140 +1,142 @@
|
||||
@tool
|
||||
extends Resource
|
||||
class_name Inventory
|
||||
|
||||
signal updated(inventory: Inventory)
|
||||
signal tool_added(item: Item)
|
||||
|
||||
@export var items: Array[Item] = []
|
||||
@export var tools: Array[Item] = []
|
||||
@export var seeds: Array[Item] = []
|
||||
@export var current_item_ind: int = 0 # over both tools and items
|
||||
@export var n_tools: int = 0
|
||||
|
||||
func _init(inventory_size: int = 1):
|
||||
set_size(inventory_size)
|
||||
|
||||
func get_n_item_slots() -> int:
|
||||
return items.size() - n_tools
|
||||
|
||||
func set_size(new_size: int):
|
||||
if new_size >= 0:
|
||||
items.resize(n_tools + new_size)
|
||||
updated.emit(self )
|
||||
|
||||
func change_size(size_mod: int):
|
||||
set_size(items.size() - n_tools + size_mod)
|
||||
@export var seeds_size : int :
|
||||
set(v):
|
||||
seeds_size = v
|
||||
update_seeds_size(v)
|
||||
|
||||
func _init(size : int = 1):
|
||||
seeds_size = size
|
||||
|
||||
func current_is_tool() -> bool:
|
||||
return current_item_ind >= 0 && current_item_ind < n_tools
|
||||
|
||||
func get_best_available_slot_ind():
|
||||
if !current_is_tool() && items[current_item_ind] == null:
|
||||
return current_item_ind
|
||||
for i in range(n_tools, items.size()):
|
||||
if items[i] == null:
|
||||
return i
|
||||
# it's full
|
||||
if !current_is_tool():
|
||||
return current_item_ind
|
||||
else:
|
||||
return n_tools
|
||||
return current_item_ind <= len(tools)
|
||||
|
||||
func set_current_item(new_ind: int):
|
||||
if new_ind >= items.size():
|
||||
return
|
||||
|
||||
if new_ind != current_item_ind:
|
||||
current_item_ind = new_ind
|
||||
updated.emit(self )
|
||||
current_item_ind = new_ind % (len(tools) + len(seeds))
|
||||
updated.emit(self)
|
||||
|
||||
func change_current_item(ind_mod: int):
|
||||
if items.size() == 0:
|
||||
current_item_ind = 0
|
||||
return
|
||||
var new_ind: int = current_item_ind + ind_mod
|
||||
new_ind = new_ind % items.size()
|
||||
if new_ind < 0:
|
||||
new_ind += items.size()
|
||||
set_current_item(new_ind)
|
||||
set_current_item(current_item_ind + ind_mod)
|
||||
|
||||
func add_item(item: Item) -> bool:
|
||||
if item.type != Item.ItemType.TOOL_ITEM:
|
||||
var best_ind = get_best_available_slot_ind()
|
||||
return set_item(item, best_ind)
|
||||
return add_seed(item)
|
||||
elif item.type == Item.ItemType.TOOL_ITEM and not has_item_with_name(item.get_item_name()):
|
||||
items.insert(n_tools, item)
|
||||
if current_item_ind >= n_tools:
|
||||
current_item_ind += 1
|
||||
n_tools += 1
|
||||
tool_added.emit(item)
|
||||
updated.emit(self )
|
||||
add_tool(item)
|
||||
return true
|
||||
else:
|
||||
return false
|
||||
|
||||
func set_item(item: Item, ind: int = 0) -> bool:
|
||||
if ind < 0 || ind >= items.size():
|
||||
func add_tool(tool: Item) -> bool:
|
||||
if not has_item_with_name(tool.get_item_name()):
|
||||
tools.append(tool)
|
||||
updated.emit(self)
|
||||
tool_added.emit(tool)
|
||||
return true
|
||||
else:
|
||||
return false
|
||||
items[ind] = item
|
||||
updated.emit(self )
|
||||
return true
|
||||
|
||||
func add_seed(s: Item) -> bool:
|
||||
update_seeds_size()
|
||||
if not is_full():
|
||||
var ind = (
|
||||
current_item_ind - len(tools) if current_item_ind > len(tools)
|
||||
else 0
|
||||
)
|
||||
|
||||
while seeds[ind] != null:
|
||||
ind = (ind+1) % len(seeds)
|
||||
|
||||
seeds[ind] = s
|
||||
|
||||
updated.emit(self)
|
||||
return true
|
||||
else:
|
||||
return false
|
||||
|
||||
func update_seeds_size(size = seeds_size):
|
||||
while size > len(seeds):
|
||||
seeds.append(null)
|
||||
|
||||
while len(seeds) > size and seeds.find(null) != -1:
|
||||
seeds.pop_at(seeds.find(null))
|
||||
|
||||
func get_all_items() -> Array[Item]:
|
||||
return tools + seeds
|
||||
|
||||
func get_item(ind: int = current_item_ind) -> Item:
|
||||
if ind < 0 || ind > items.size():
|
||||
if ind < 0 || ind > len(get_all_items()):
|
||||
return null
|
||||
return items[ind]
|
||||
return get_all_items()[ind]
|
||||
|
||||
func has_item(item: Item) -> bool:
|
||||
return items.has(item)
|
||||
return get_all_items().has(item)
|
||||
|
||||
func has_item_with_name(name: String) -> bool:
|
||||
var id = items.find_custom(
|
||||
var id = get_all_items().find_custom(
|
||||
(func (i : Item):
|
||||
return i and i.get_item_name() == name)
|
||||
)
|
||||
return id != -1
|
||||
|
||||
func remove_item(item: Item):
|
||||
if item.type == Item.ItemType.TOOL_ITEM:
|
||||
printerr("trying to remove a tool")
|
||||
func remove_tool(ind : int):
|
||||
if ind != -1:
|
||||
tools.pop_at(ind)
|
||||
updated.emit(self)
|
||||
|
||||
func remove_seed(ind : int):
|
||||
if ind != -1:
|
||||
seeds[ind] = null
|
||||
updated.emit(self)
|
||||
update_seeds_size(seeds_size)
|
||||
|
||||
func remove_item(item: Item) -> bool:
|
||||
if tools.find(item) != -1:
|
||||
remove_tool(tools.find(item))
|
||||
elif seeds.find(item) != -1:
|
||||
remove_seed(seeds.find(item))
|
||||
else:
|
||||
var ind = items.find(item)
|
||||
if ind >= 0:
|
||||
items[ind] = null
|
||||
updated.emit(self )
|
||||
return false
|
||||
return true
|
||||
|
||||
func remove_item_at(ind: int = current_item_ind):
|
||||
if ind < 0 || ind > items.size():
|
||||
return
|
||||
func remove_item_at(ind: int = current_item_ind) -> bool:
|
||||
if ind < 0 || ind > len(seeds) + len(tools):
|
||||
return false
|
||||
|
||||
if ind < n_tools:
|
||||
printerr("trying to remove a tool")
|
||||
return
|
||||
|
||||
items[ind] = null
|
||||
updated.emit(self )
|
||||
if ind < len(tools):
|
||||
remove_tool(ind)
|
||||
else:
|
||||
remove_seed(ind - len(tools))
|
||||
|
||||
return true
|
||||
|
||||
func remove_current_item():
|
||||
remove_item_at()
|
||||
|
||||
func pop_item(ind: int = current_item_ind) -> Item:
|
||||
if ind < 0 || ind > items.size():
|
||||
return
|
||||
if ind < 0 || ind > len(seeds) + len(tools):
|
||||
return null
|
||||
|
||||
if ind < n_tools:
|
||||
printerr("trying to remove a tool")
|
||||
return
|
||||
var item_removed = get_item(ind)
|
||||
|
||||
remove_item_at(ind)
|
||||
|
||||
var item_removed: Item = items[ind]
|
||||
items[ind] = null
|
||||
updated.emit(self )
|
||||
return item_removed
|
||||
|
||||
func is_full():
|
||||
for i in range(n_tools, items.size()):
|
||||
if items[i] == null:
|
||||
for i in range(len(seeds)):
|
||||
if seeds[i] == null:
|
||||
return false
|
||||
return true
|
||||
|
||||
func clear_items():
|
||||
for i in range(n_tools, items.size()):
|
||||
items[i] = null
|
||||
updated.emit(self )
|
||||
func current_ind_on_tools() -> bool:
|
||||
return current_item_ind < len(tools)
|
||||
|
||||
@@ -10,18 +10,15 @@ const SCORE_ICON = preload("res://common/icons/growth.svg")
|
||||
const RARITY_POOL : Array[int] = [0,0,0,0,0,0,0,1,1,1]
|
||||
|
||||
@export var plant_name : String
|
||||
@export var plant_archetype: PlantArchetype
|
||||
@export var plant_mutations: Array[PlantMutation]
|
||||
@export var random_seed : int
|
||||
var stored_icon : Texture
|
||||
|
||||
func _init(
|
||||
_plant_name : String = "",
|
||||
_plant_archetype : PlantArchetype = PlantArchetype.get_random(),
|
||||
_plant_mutations : Array[PlantMutation] = [],
|
||||
):
|
||||
plant_name = _plant_name
|
||||
plant_archetype = _plant_archetype
|
||||
plant_mutations = _plant_mutations
|
||||
random_seed = randi()
|
||||
|
||||
@@ -29,23 +26,18 @@ static func generate_from_parent(plant_data : PlantData) -> Seed:
|
||||
if randf() < MUTATION_PROBABILITY:
|
||||
return Seed.new(
|
||||
plant_data.plant_name,
|
||||
plant_data.archetype,
|
||||
mutate_mutations(plant_data)
|
||||
)
|
||||
else :
|
||||
return Seed.new(
|
||||
plant_data.plant_name,
|
||||
plant_data.archetype,
|
||||
plant_data.mutations.duplicate_deep()
|
||||
)
|
||||
|
||||
static func generate_random() -> Seed:
|
||||
var archetype = PlantArchetype.get_random()
|
||||
|
||||
var new_seed = Seed.new(
|
||||
Random.generate_random_word(),
|
||||
PlantArchetype.get_random(),
|
||||
[generate_first_mutation(archetype)]
|
||||
[generate_first_mutation()]
|
||||
)
|
||||
|
||||
return new_seed
|
||||
@@ -142,10 +134,10 @@ func get_particles() -> Array[EffectParticles.Parameters]:
|
||||
|
||||
return param
|
||||
|
||||
static func generate_first_mutation(archetype : PlantArchetype) -> PlantMutation:
|
||||
static func generate_first_mutation() -> PlantMutation:
|
||||
var rarity : int = RARITY_POOL.pick_random()
|
||||
|
||||
var possible_mutation : PlantMutation = archetype.available_mutations.filter(
|
||||
var possible_mutation : PlantMutation = GameInfo.game_data.progression_data.available_mutations.filter(
|
||||
func (m : PlantMutation): return m.get_base_rarity() <= rarity
|
||||
).pick_random().duplicate_deep()
|
||||
|
||||
@@ -162,7 +154,7 @@ static func mutate_mutations(parent : PlantData) -> Array[PlantMutation]:
|
||||
]
|
||||
|
||||
if (
|
||||
len(parent.mutations) >= GameInfo.game_data.max_mutations_by_plant
|
||||
len(parent.mutations) >= GameInfo.game_data.progression_data.max_mutations_by_plant
|
||||
):
|
||||
mutation_possibility = [
|
||||
UpgradeMutation.new(),
|
||||
@@ -184,7 +176,7 @@ class MutationPossibility:
|
||||
class AddMutation extends MutationPossibility:
|
||||
func mutate(parent : PlantData)-> Array[PlantMutation]:
|
||||
var new_mutations = parent.mutations.duplicate_deep()
|
||||
var possible_new_mutations = parent.archetype.available_mutations.duplicate_deep()
|
||||
var possible_new_mutations = GameInfo.game_data.progression_data.available_mutations.duplicate_deep()
|
||||
|
||||
possible_new_mutations = possible_new_mutations.filter(
|
||||
func (m : PlantMutation):
|
||||
|
||||
@@ -33,17 +33,17 @@ func _init(region : Region, pos : Vector2):
|
||||
signals.append(
|
||||
DetectorSignalIndividual.new(
|
||||
(pos - e.global_position).normalized().angle(),
|
||||
DOOR_ICON,
|
||||
(e as Door).icon,
|
||||
Color("ffa617ff")
|
||||
),
|
||||
)
|
||||
if e is Plant:
|
||||
signals.append(
|
||||
DetectorSignalIndividual.new(
|
||||
(pos - e.global_position).normalized().angle(),
|
||||
PLANT_ICON
|
||||
)
|
||||
)
|
||||
# if e is Plant:
|
||||
# signals.append(
|
||||
# DetectorSignalIndividual.new(
|
||||
# (pos - e.global_position).normalized().angle(),
|
||||
# PLANT_ICON
|
||||
# )
|
||||
# )
|
||||
|
||||
func _draw():
|
||||
if started_time < SIGNAL_DURATION:
|
||||
|
||||
@@ -157,8 +157,8 @@ func pick_item(item : Item):
|
||||
func drop_item():
|
||||
var ind_to_drop := data.inventory.current_item_ind
|
||||
while (
|
||||
(data.inventory.get_item(ind_to_drop) == null or ind_to_drop < data.inventory.n_tools)
|
||||
and ind_to_drop < len(data.inventory.items) - 1
|
||||
(data.inventory.get_item(ind_to_drop) == null or ind_to_drop < len(data.inventory.tools))
|
||||
and ind_to_drop < len(data.inventory.get_all_items()) - 1
|
||||
):
|
||||
ind_to_drop += 1
|
||||
var item_to_drop = data.inventory.pop_item(ind_to_drop)
|
||||
@@ -167,10 +167,6 @@ func drop_item():
|
||||
AudioManager.play_sfx("Drop")
|
||||
region.save()
|
||||
|
||||
func delete_item(item: Item):
|
||||
if !data.inventory.current_is_tool():
|
||||
data.inventory.remove_item(item)
|
||||
|
||||
func try_use_item(item : Item, use_position : Vector2):
|
||||
await setup_action_zone(use_position, item)
|
||||
instruction = ItemActionInstruction.new(
|
||||
|
||||
@@ -6,12 +6,36 @@ signal updated(player_data : PlayerData)
|
||||
const DEFAULT_MAX_ENERGY = 3
|
||||
const DEFAULT_INVENTORY_SIZE = 3
|
||||
|
||||
@export var max_energy : int = DEFAULT_MAX_ENERGY :
|
||||
set(v):
|
||||
max_energy = v
|
||||
updated.emit(self)
|
||||
@export var max_energy : int = DEFAULT_MAX_ENERGY
|
||||
|
||||
@export var energy : int = DEFAULT_MAX_ENERGY :
|
||||
set(v):
|
||||
energy = v
|
||||
updated.emit(self)
|
||||
@export var inventory := Inventory.new(DEFAULT_INVENTORY_SIZE)
|
||||
|
||||
@export var inventory := Inventory.new(DEFAULT_INVENTORY_SIZE)
|
||||
|
||||
func get_artefacts() -> Array[Artefact]:
|
||||
if GameInfo and GameInfo.game_data and GameInfo.game_data.current_run:
|
||||
return GameInfo.game_data.current_run.artefacts
|
||||
return []
|
||||
|
||||
func _on_artefacts_updated(artefacts : Array[Artefact]):
|
||||
inventory.seeds_size = calculate_inventory_size(artefacts)
|
||||
max_energy = calculate_max_energy(artefacts)
|
||||
updated.emit()
|
||||
|
||||
func calculate_max_energy(artefacts : Array[Artefact]) -> int:
|
||||
var v = DEFAULT_MAX_ENERGY
|
||||
for a in artefacts:
|
||||
v = a.modify_player_max_energy(v)
|
||||
return v
|
||||
|
||||
func calculate_inventory_size(artefacts : Array[Artefact]) -> int:
|
||||
var v = DEFAULT_INVENTORY_SIZE
|
||||
for a in artefacts:
|
||||
v = a.modify_player_inventory_size(v)
|
||||
return v
|
||||
|
||||
func clear_inventory():
|
||||
inventory = Inventory.new(DEFAULT_INVENTORY_SIZE)
|
||||
|
||||
@@ -33,7 +33,7 @@ func _input(event):
|
||||
%Camera3D.rotate_x(-event.relative.y * MOUSE_SENSIVITY)
|
||||
%Camera3D.rotation.x = clampf($Camera3D.rotation.x, -deg_to_rad(70), deg_to_rad(70))
|
||||
query_mouse = true
|
||||
if event.is_action_pressed("action") and cockpit_action_hovered and cockpit_action_hovered:
|
||||
if event.is_action_pressed("action") and cockpit_action_hovered and cockpit_action_hovered.interactable:
|
||||
cockpit_action_hovered.click()
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ func _physics_process(delta):
|
||||
if query_mouse:
|
||||
update_mouse_hovered_cockpit_actions()
|
||||
%PointerTexture.texture = (
|
||||
POINTER_ACTION_TEXTURE if cockpit_action_hovered != null
|
||||
POINTER_ACTION_TEXTURE if cockpit_action_hovered != null and cockpit_action_hovered.interactable
|
||||
else POINTER_TEXTURE
|
||||
)
|
||||
query_mouse = false
|
||||
@@ -79,11 +79,12 @@ func update_mouse_hovered_cockpit_actions() -> void:
|
||||
query.collide_with_areas = true
|
||||
var result = space_state.intersect_ray(query)
|
||||
|
||||
if result and result.collider and result.collider is Interactable3D and result.collider.interactable:
|
||||
if cockpit_action_hovered and cockpit_action_hovered != result.collider:
|
||||
cockpit_action_hovered._on_mouse_exited()
|
||||
cockpit_action_hovered = result.collider
|
||||
cockpit_action_hovered._on_mouse_entered()
|
||||
if result and result.collider and result.collider is Interactable3D:
|
||||
if cockpit_action_hovered != result.collider:
|
||||
if cockpit_action_hovered and cockpit_action_hovered != result.collider:
|
||||
cockpit_action_hovered._on_mouse_exited()
|
||||
cockpit_action_hovered = result.collider
|
||||
cockpit_action_hovered._on_mouse_entered()
|
||||
else :
|
||||
if cockpit_action_hovered:
|
||||
cockpit_action_hovered._on_mouse_exited()
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
@abstract
|
||||
extends Resource
|
||||
class_name Artefact
|
||||
|
||||
@abstract func get_artefact_name() -> String
|
||||
|
||||
@abstract func get_3d_scene() -> PackedScene
|
||||
|
||||
# @abstract func card_info() -> CardInfo
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
@tool
|
||||
extends Artefact
|
||||
class_name PileArtefact
|
||||
|
||||
func get_artefact_name() -> String:
|
||||
return "PILE"
|
||||
|
||||
func get_3d_scene() -> PackedScene:
|
||||
return preload("res://gui/artefacts/pile/pile.blend")
|
||||
@@ -1,9 +0,0 @@
|
||||
@tool
|
||||
extends Artefact
|
||||
class_name SeedCaseArtefact
|
||||
|
||||
func get_artefact_name() -> String:
|
||||
return "SEED_CASE"
|
||||
|
||||
func get_3d_scene() -> PackedScene:
|
||||
return preload("res://gui/artefacts/seed_case/seed_case.blend")
|
||||
@@ -53,7 +53,7 @@ _data = {
|
||||
}
|
||||
|
||||
[node name="Card" type="PanelContainer" unique_id=1085885349]
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
custom_minimum_size = Vector2(450, 0)
|
||||
offset_right = 250.0
|
||||
offset_bottom = 70.0
|
||||
size_flags_horizontal = 0
|
||||
|
||||
@@ -63,9 +63,8 @@ stretch_mode = 5
|
||||
[node name="TitleText" type="Label" parent="MarginContainer/CardSectionContainer/CardSectionTitle" unique_id=1260458359]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme = ExtResource("1_t7m3x")
|
||||
text = "Hello"
|
||||
text = "Hella"
|
||||
label_settings = SubResource("LabelSettings_ycbno")
|
||||
|
||||
[node name="Text" type="RichTextLabel" parent="MarginContainer/CardSectionContainer" unique_id=2102977326]
|
||||
@@ -74,7 +73,7 @@ layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme = ExtResource("1_t7m3x")
|
||||
bbcode_enabled = true
|
||||
text = "Lorem ipsum dolor sit amet"
|
||||
text = "Hello"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
vertical_alignment = 1
|
||||
|
||||
@@ -46,8 +46,8 @@ metadata/_custom_type_script = "uid://dj2pv1hiwjfv0"
|
||||
shader = ExtResource("1_x54se")
|
||||
shader_parameter/fov = 90.0
|
||||
shader_parameter/cull_back = true
|
||||
shader_parameter/y_rot = -1.4576089e-33
|
||||
shader_parameter/x_rot = 9.688164e-35
|
||||
shader_parameter/y_rot = -7e-45
|
||||
shader_parameter/x_rot = 1.237e-42
|
||||
shader_parameter/inset = 0.0
|
||||
|
||||
[sub_resource type="Animation" id="Animation_1et8x"]
|
||||
@@ -71,8 +71,8 @@ anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -125.0
|
||||
offset_top = -30.0
|
||||
offset_right = 125.0
|
||||
offset_bottom = 131.0
|
||||
offset_right = 225.0
|
||||
offset_bottom = 121.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
scale = Vector2(1.0000002, 1.0000002)
|
||||
@@ -84,6 +84,7 @@ theme_override_constants/margin_top = -25
|
||||
theme_override_constants/margin_right = -25
|
||||
theme_override_constants/margin_bottom = -25
|
||||
script = ExtResource("2_ntbk8")
|
||||
card_width = 350
|
||||
card_info = SubResource("Resource_eb1v6")
|
||||
|
||||
[node name="SubViewportContainer" type="SubViewportContainer" parent="." unique_id=1594926759]
|
||||
@@ -96,14 +97,14 @@ mouse_filter = 2
|
||||
unique_name_in_owner = true
|
||||
transparent_bg = true
|
||||
handle_input_locally = false
|
||||
size = Vector2i(300, 211)
|
||||
size = Vector2i(400, 201)
|
||||
size_2d_override_stretch = true
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="CardContainer" type="MarginContainer" parent="SubViewportContainer/SubViewport" unique_id=1240228608]
|
||||
unique_name_in_owner = true
|
||||
offset_right = 300.0
|
||||
offset_bottom = 211.0
|
||||
offset_right = 400.0
|
||||
offset_bottom = 201.0
|
||||
mouse_filter = 2
|
||||
theme_override_constants/margin_left = 25
|
||||
theme_override_constants/margin_top = 25
|
||||
@@ -112,7 +113,7 @@ theme_override_constants/margin_bottom = 25
|
||||
|
||||
[node name="Card" parent="SubViewportContainer/SubViewport/CardContainer" unique_id=1169470018 instance=ExtResource("1_we78f")]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(250, 0)
|
||||
custom_minimum_size = Vector2(350, 0)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
down_arrow = true
|
||||
|
||||
@@ -46,9 +46,9 @@ stretch_mode = 5
|
||||
[node name="TextPlacer" type="MarginContainer" parent="." unique_id=1669037421]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
theme_override_constants/margin_left = 20
|
||||
theme_override_constants/margin_left = 26
|
||||
theme_override_constants/margin_top = 9
|
||||
theme_override_constants/margin_right = 418
|
||||
theme_override_constants/margin_right = 691
|
||||
|
||||
[node name="EnergyCount" type="RichTextLabel" parent="TextPlacer" unique_id=1073572949]
|
||||
unique_name_in_owner = true
|
||||
@@ -74,11 +74,11 @@ metadata/_custom_type_script = "uid://0dhj8sdpil7q"
|
||||
[node name="BatteryViewport" type="SubViewport" parent="." unique_id=146346475]
|
||||
own_world_3d = true
|
||||
transparent_bg = true
|
||||
size = Vector2i(529, 190)
|
||||
size = Vector2i(800, 190)
|
||||
|
||||
[node name="EnergyInfo3d" parent="BatteryViewport" unique_id=1798644168 instance=ExtResource("6_tj7lw")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.918, 2)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.918, 3.81)
|
||||
max_energy = 3
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="BatteryViewport" unique_id=1322215759]
|
||||
|
||||
@@ -2,16 +2,25 @@
|
||||
|
||||
[ext_resource type="Script" uid="uid://c66acjl2dhd7x" path="res://gui/game/inventory_gui/scripts/inventory_3d.gd" id="1_k2pqu"]
|
||||
[ext_resource type="PackedScene" uid="uid://4r2ab6foer05" path="res://gui/game/inventory_gui/inventory_item/inventory_item_3d.tscn" id="2_1jdtu"]
|
||||
[ext_resource type="Script" uid="uid://bq7admu4ahs5r" path="res://entities/player/inventory/scripts/item.gd" id="3_qyq7r"]
|
||||
[ext_resource type="Script" uid="uid://fnu2d6wna4yc" path="res://entities/player/inventory/scripts/inventory.gd" id="4_7pv7m"]
|
||||
[ext_resource type="PackedScene" uid="uid://yqq3unuxmtdl" path="res://gui/game/inventory_gui/assets/3d/item_separator.blend" id="13_8twi0"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_kcwow"]
|
||||
script = ExtResource("4_7pv7m")
|
||||
seeds = Array[ExtResource("3_qyq7r")]([null, null, null, null, null])
|
||||
seeds_size = 5
|
||||
metadata/_custom_type_script = "uid://fnu2d6wna4yc"
|
||||
|
||||
[node name="Inventory3D" type="Node3D" unique_id=810532522]
|
||||
script = ExtResource("1_k2pqu")
|
||||
inventory_item_scene = ExtResource("2_1jdtu")
|
||||
test_inventory = SubResource("Resource_kcwow")
|
||||
|
||||
[node name="Items3D" type="Node3D" parent="." unique_id=893360425]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 0, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.65, 0, 0)
|
||||
|
||||
[node name="ItemSeparator" parent="." unique_id=999679207 instance=ExtResource("13_8twi0")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.1, 0, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.29999998, 0, 0)
|
||||
|
||||
@@ -24,11 +24,11 @@ func _ready():
|
||||
|
||||
func update(inventory : Inventory):
|
||||
|
||||
var items = inventory.items
|
||||
var items = inventory.get_all_items()
|
||||
if no_tools:
|
||||
items = items.slice(inventory.n_tools, len(items))
|
||||
items = inventory.seeds
|
||||
|
||||
if len(items) != len(inventory_item_objects) or last_n_tools != inventory.n_tools:
|
||||
if len(items) != len(inventory_item_objects) or last_n_tools != len(inventory.tools):
|
||||
create_inventory_objects(inventory)
|
||||
for i in range(len(items)):
|
||||
var item : Item= items[i]
|
||||
@@ -38,7 +38,7 @@ func update(inventory : Inventory):
|
||||
if not no_tools:
|
||||
if inventory.current_item_ind == i:
|
||||
object.state = (
|
||||
InventoryItem3D.State.TOOL if i < inventory.n_tools
|
||||
InventoryItem3D.State.TOOL if i < len(inventory.tools)
|
||||
else InventoryItem3D.State.ITEM
|
||||
)
|
||||
else:
|
||||
@@ -48,19 +48,19 @@ func update(inventory : Inventory):
|
||||
func create_inventory_objects(inventory : Inventory):
|
||||
for c in %Items3D.get_children():
|
||||
c.queue_free()
|
||||
last_n_tools = inventory.n_tools
|
||||
last_n_tools = len(inventory.tools)
|
||||
|
||||
inventory_item_objects = []
|
||||
|
||||
var items = inventory.items
|
||||
var items = inventory.get_all_items()
|
||||
if no_tools:
|
||||
items = items.slice(inventory.n_tools, len(items))
|
||||
items = inventory.seeds
|
||||
|
||||
for i in range(len(items)):
|
||||
var new_inventory_object := (inventory_item_scene.instantiate() as InventoryItem3D)
|
||||
%Items3D.add_child(new_inventory_object)
|
||||
new_inventory_object.position.x = -INVENTORY_OBJECT_SIZE * i
|
||||
if i >= inventory.n_tools and not no_tools:
|
||||
if i >= len(inventory.tools) and not no_tools:
|
||||
new_inventory_object.position.x -= SEPARATOR_SIZE
|
||||
inventory_item_objects.append(new_inventory_object)
|
||||
|
||||
@@ -75,6 +75,6 @@ func create_inventory_objects(inventory : Inventory):
|
||||
) / 2
|
||||
%ItemSeparator.position.x = (
|
||||
%Items3D.position.x
|
||||
- (inventory.n_tools) * INVENTORY_OBJECT_SIZE
|
||||
- (inventory.tools.size()) * INVENTORY_OBJECT_SIZE
|
||||
+ SEPARATOR_SIZE/2
|
||||
)
|
||||
|
||||
@@ -18,9 +18,9 @@ func _ready():
|
||||
update(GameInfo.game_data.player_data.inventory)
|
||||
|
||||
func update(inventory: Inventory):
|
||||
if last_inventory_size != len(inventory.items) or last_n_tools != inventory.n_tools:
|
||||
last_inventory_size = len(inventory.items)
|
||||
last_n_tools = inventory.n_tools
|
||||
if last_inventory_size != len(inventory.get_all_items()) or last_n_tools != inventory.tools.size():
|
||||
last_inventory_size = len(inventory.get_all_items())
|
||||
last_n_tools = inventory.tools.size()
|
||||
generate_inventory_mouse_detectors(last_inventory_size, last_n_tools)
|
||||
|
||||
func generate_inventory_mouse_detectors(inventory_size: int, n_tool : int, test = false):
|
||||
|
||||
@@ -22,8 +22,8 @@ func _ready():
|
||||
|
||||
func card_info() -> CardInfo:
|
||||
var inventory := GameInfo.game_data.player_data.inventory
|
||||
if inventory and index < len(inventory.items):
|
||||
var item = GameInfo.game_data.player_data.inventory.items[index]
|
||||
if inventory and index < len(inventory.get_all_items()):
|
||||
var item = GameInfo.game_data.player_data.inventory.get_all_items()[index]
|
||||
if item:
|
||||
return item.card_info()
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ var indicators : Array[InGameIndicator]
|
||||
Step.new(
|
||||
"SELECT_ITEM_WITH_SCROLL_CLICK_OR_NUMBER",
|
||||
(func ():
|
||||
return player.data.inventory.current_item_ind != player.data.inventory.n_tools)
|
||||
return player.data.inventory.current_item_ind != player.data.inventory.tools.size())
|
||||
),
|
||||
Step.new(
|
||||
"LEFT_CLICK_TO_USE_ITEMS",
|
||||
@@ -54,7 +54,7 @@ var indicators : Array[InGameIndicator]
|
||||
Step.new(
|
||||
"TAKE_A_SEED_BY_CLICKING_ON_IT",
|
||||
(func ():
|
||||
return player.data.inventory.items.find_custom(
|
||||
return player.data.inventory.seeds.find_custom(
|
||||
func(i:Item): return i is Seed
|
||||
) != -1)
|
||||
),
|
||||
|
||||
@@ -189,6 +189,7 @@ theme_override_constants/margin_bottom = 0
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 1, 1, 0.5003133)
|
||||
material = SubResource("ShaderMaterial_6eft6")
|
||||
custom_minimum_size = Vector2(66.16, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 8
|
||||
|
||||
@@ -159,6 +159,7 @@ func update_card():
|
||||
elif inspected is Control:
|
||||
%CardPosition.position = inspected.global_position + inspected.size / 2 + CARD_UP_PADDING * Vector2.UP
|
||||
elif inspected is Node3D:
|
||||
|
||||
%CardPosition.position = (
|
||||
get_viewport().get_camera_3d().unproject_position(inspected.global_position)
|
||||
+ CARD_UP_PADDING * Vector2.UP
|
||||
|
||||
@@ -161,6 +161,7 @@ corner_radius_bottom_left = 5
|
||||
|
||||
[resource]
|
||||
Button/colors/font_color = Color(1, 1, 1, 1)
|
||||
Button/colors/font_hover_color = Color(0.60122275, 0.6012229, 0.60122395, 1)
|
||||
Button/font_sizes/font_size = 25
|
||||
Button/fonts/font = ExtResource("1_6ccgi")
|
||||
Button/styles/hover = SubResource("StyleBoxFlat_hv6r3")
|
||||
|
||||
Binary file not shown.
@@ -1,88 +0,0 @@
|
||||
@tool
|
||||
extends CanvasLayer
|
||||
class_name VendingMachine
|
||||
|
||||
enum State {CHOOSE,PAY,FETCH}
|
||||
enum ChooseState {NONE,FIRST,SECOND}
|
||||
|
||||
@export_tool_button("Update", "Callable") var update_action = update
|
||||
|
||||
@export var state : State = State.CHOOSE : set = set_state
|
||||
@export var choose_state : ChooseState = ChooseState.NONE : set = set_choose_state
|
||||
@export var artefact_1 : Artefact = null : set = set_artifact_1
|
||||
@export var artefact_2 : Artefact = null : set = set_artifact_2
|
||||
|
||||
func _ready():
|
||||
update()
|
||||
|
||||
func update():
|
||||
set_artifact_1()
|
||||
set_artifact_2()
|
||||
set_state()
|
||||
|
||||
func set_state(s := state):
|
||||
state = s
|
||||
if is_node_ready():
|
||||
%PayButton.visible = state == State.PAY
|
||||
%FetchButton.visible = state == State.FETCH
|
||||
|
||||
match state:
|
||||
State.CHOOSE:
|
||||
%IndicationLabel.text = "CHOOSE_AN_ITEM"
|
||||
State.PAY:
|
||||
%IndicationLabel.text = "PAY_THE_PRICE"
|
||||
State.FETCH:
|
||||
%IndicationLabel.text = "GET_YOUR_ITEM"
|
||||
|
||||
func set_choose_state(s := choose_state):
|
||||
choose_state = s
|
||||
if is_node_ready():
|
||||
%VendingMachine3d.screen_1_hide = s != ChooseState.FIRST
|
||||
%VendingMachine3d.screen_2_hide = s != ChooseState.SECOND
|
||||
|
||||
func set_artifact_1(a := artefact_1):
|
||||
artefact_1 = a
|
||||
if is_node_ready() and a:
|
||||
%SelectButton1.text = a.get_artefact_name()
|
||||
%VendingMachine3d.object_1_scene = a.get_3d_scene()
|
||||
|
||||
func set_artifact_2(a := artefact_2):
|
||||
artefact_2 = a
|
||||
if is_node_ready() and a:
|
||||
%SelectButton2.text = a.get_artefact_name()
|
||||
%VendingMachine3d.object_2_scene = a.get_3d_scene()
|
||||
|
||||
|
||||
func _on_fetch_button_button_down():
|
||||
pass # TODO : Adding the artifacts
|
||||
|
||||
|
||||
func _on_pay_button_button_down():
|
||||
# TODO : The payment
|
||||
if state == State.PAY and choose_state != ChooseState.NONE:
|
||||
state = State.FETCH
|
||||
|
||||
if choose_state == ChooseState.FIRST:
|
||||
%VendingMachine3d.fall_object_1()
|
||||
else :
|
||||
%VendingMachine3d.fall_object_2()
|
||||
|
||||
func _on_select_button_1_button_down():
|
||||
choose_state = ChooseState.FIRST
|
||||
if state == State.CHOOSE:
|
||||
state = State.PAY
|
||||
|
||||
func _on_select_button_2_button_down():
|
||||
choose_state = ChooseState.SECOND
|
||||
if state == State.CHOOSE:
|
||||
state = State.PAY
|
||||
|
||||
func _on_select_button_bis_1_button_down():
|
||||
choose_state = ChooseState.FIRST
|
||||
if state == State.CHOOSE:
|
||||
state = State.PAY
|
||||
|
||||
func _on_select_button_bis_2_button_down():
|
||||
choose_state = ChooseState.SECOND
|
||||
if state == State.CHOOSE:
|
||||
state = State.PAY
|
||||
@@ -1 +0,0 @@
|
||||
uid://d4jf1hruxqe6f
|
||||
@@ -1,109 +0,0 @@
|
||||
@tool
|
||||
extends Node3D
|
||||
class_name VendingMachine3d
|
||||
|
||||
const LINE_OBJECT_NUMBER = 5
|
||||
const LINE_OBJECT_SEPARATION = Vector3.LEFT * 0.2
|
||||
const FALLING_OBJECT_LINE_SHIFT = Vector3.FORWARD * 0.3
|
||||
|
||||
@export_tool_button("Update", "Callable") var update_action = update
|
||||
|
||||
@export_tool_button("Fall Object 1", "Callable") var fall_object_1_action = fall_object_1
|
||||
@export_tool_button("Fall Object 1", "Callable") var fall_object_2_action = fall_object_2
|
||||
|
||||
@export var object_1_scene : PackedScene = null : set = set_object_1_scene
|
||||
@export var object_2_scene : PackedScene = null : set = set_object_2_scene
|
||||
@export var screen_1_hide : bool = true : set = set_screen_1_hide
|
||||
@export var screen_2_hide : bool = true : set = set_screen_2_hide
|
||||
|
||||
# func _input(_e):
|
||||
# if Input.is_action_just_pressed("action"):
|
||||
# fall_object([
|
||||
# %Line1,
|
||||
# %Line2,
|
||||
# %Line3,
|
||||
# %Line4
|
||||
# ].pick_random())
|
||||
|
||||
func _ready():
|
||||
update()
|
||||
|
||||
func update():
|
||||
set_object_1_scene()
|
||||
set_object_2_scene()
|
||||
set_screen_1_hide()
|
||||
set_screen_2_hide()
|
||||
|
||||
func set_object_1_scene(scene := object_1_scene):
|
||||
if scene and is_node_ready():
|
||||
fill_lines(%Line1, scene.instantiate())
|
||||
fill_lines(%Line2, scene.instantiate())
|
||||
object_1_scene = scene
|
||||
|
||||
func set_object_2_scene(scene := object_2_scene):
|
||||
if scene and is_node_ready():
|
||||
fill_lines(%Line3, scene.instantiate())
|
||||
fill_lines(%Line4, scene.instantiate())
|
||||
object_2_scene = scene
|
||||
|
||||
func set_screen_1_hide(v := screen_1_hide):
|
||||
screen_1_hide = v
|
||||
if is_node_ready():
|
||||
%HideScreen1.visible = v
|
||||
|
||||
func set_screen_2_hide(v := screen_2_hide):
|
||||
screen_2_hide = v
|
||||
if is_node_ready():
|
||||
%HideScreen2.visible = v
|
||||
|
||||
func fall_object_1():
|
||||
fall_object([
|
||||
%Line1,
|
||||
%Line2
|
||||
].pick_random())
|
||||
|
||||
func fall_object_2():
|
||||
fall_object([
|
||||
%Line3,
|
||||
%Line4
|
||||
].pick_random())
|
||||
|
||||
func fall_object(from_line : Node3D):
|
||||
if len(from_line.get_children()):
|
||||
var falling_object = create_falling_object()
|
||||
|
||||
var object = from_line.get_children().pick_random() as Node3D
|
||||
falling_object.global_position = object.global_position + FALLING_OBJECT_LINE_SHIFT
|
||||
|
||||
var falling_model = object.duplicate()
|
||||
falling_model.position = Vector3.ZERO
|
||||
falling_object.add_child(falling_model)
|
||||
falling_object.freeze = false
|
||||
object.queue_free()
|
||||
|
||||
%FallingObjects.add_child(falling_object)
|
||||
|
||||
func clear_falling_objects():
|
||||
for c in %FallingObjects.get_children():
|
||||
c.queue_free()
|
||||
|
||||
func create_falling_object() -> RigidBody3D:
|
||||
var falling_object = RigidBody3D.new()
|
||||
var falling_collider = CollisionShape3D.new()
|
||||
var falling_shape = SphereShape3D.new()
|
||||
falling_shape.radius = 0.08
|
||||
falling_collider.shape = falling_shape
|
||||
falling_object.add_child(falling_collider)
|
||||
falling_object.gravity_scale = 0.2
|
||||
|
||||
return falling_object
|
||||
|
||||
func fill_lines(line : Node3D, object : Node3D):
|
||||
for c in line.get_children():
|
||||
c.queue_free()
|
||||
|
||||
for i in range(LINE_OBJECT_NUMBER):
|
||||
var new_object = object.duplicate()
|
||||
line.add_child(new_object)
|
||||
new_object.position = i * LINE_OBJECT_SEPARATION
|
||||
|
||||
@@ -1,399 +0,0 @@
|
||||
[gd_scene format=3 uid="uid://du308iardw46"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d4jf1hruxqe6f" path="res://gui/vending_machine/scripts/vending_machine.gd" id="1_7iup0"]
|
||||
[ext_resource type="Texture2D" uid="uid://bi5jo6pf0acjb" path="res://common/icons/carambola.svg" id="1_y06tm"]
|
||||
[ext_resource type="PackedScene" uid="uid://blva21dapmm68" path="res://gui/vending_machine/vending_machine_3d.tscn" id="2_54ak6"]
|
||||
[ext_resource type="Script" uid="uid://c6lr0fucklsto" path="res://gui/artefacts/pile/pile.gd" id="2_dvtve"]
|
||||
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="3_54ak6"]
|
||||
[ext_resource type="Script" uid="uid://c7o5p4uk556v6" path="res://gui/artefacts/seed_case/seed_case.gd" id="3_fy3vt"]
|
||||
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="4_se5lc"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmersnaoira20" path="res://common/icons/building-store.svg" id="4_yho0h"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="5_rrfqi"]
|
||||
[ext_resource type="PackedScene" uid="uid://dolv2637emdbw" path="res://gui/artefacts/pile/pile.blend" id="6_dhfph"]
|
||||
[ext_resource type="PackedScene" uid="uid://cclvb8o3vofff" path="res://gui/artefacts/seed_case/seed_case.blend" id="7_lv3q6"]
|
||||
[ext_resource type="Texture2D" uid="uid://3slhocr5wy3w" path="res://common/icons/hand-stop.svg" id="12_bfufr"]
|
||||
[ext_resource type="Texture2D" uid="uid://4dwxhvjo0yye" path="res://common/icons/hand-grab.svg" id="13_ub0g7"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_dhfph"]
|
||||
script = ExtResource("3_fy3vt")
|
||||
metadata/_custom_type_script = "uid://c7o5p4uk556v6"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_lv3q6"]
|
||||
script = ExtResource("2_dvtve")
|
||||
metadata/_custom_type_script = "uid://c6lr0fucklsto"
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_54ak6"]
|
||||
viewport_path = NodePath("CenterContainer/Particles/SubViewport")
|
||||
|
||||
[sub_resource type="Curve" id="Curve_yho0h"]
|
||||
_limits = [-200.0, 200.0, 0.0, 1.0]
|
||||
_data = [Vector2(0, -200), 0.0, 560.0, 0, 0, Vector2(0.08235294, 92.384125), 1336.3082, 1336.3082, 0, 0, Vector2(0.34901965, 200), 0.0, 0.0, 0, 0, Vector2(0.854902, -200), 0.0, 0.0, 0, 0]
|
||||
point_count = 4
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_rrfqi"]
|
||||
offsets = PackedFloat32Array(0, 0.8689956, 0.98253274)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_yho0h"]
|
||||
viewport_path = NodePath("CenterContainer/VendingMachin/VendingMachineVP")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_y06tm"]
|
||||
ambient_light_source = 2
|
||||
ambient_light_color = Color(1, 1, 1, 1)
|
||||
ambient_light_energy = 2.29
|
||||
tonemap_exposure = 0.62
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_rrfqi"]
|
||||
font = ExtResource("3_54ak6")
|
||||
font_size = 20
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_se5lc"]
|
||||
font = ExtResource("3_54ak6")
|
||||
font_size = 14
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_7iup0"]
|
||||
font = ExtResource("3_54ak6")
|
||||
font_size = 40
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fy3vt"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("CenterContainer/VendingMachin/IndicationLabel:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("CenterContainer/VendingMachin/FetchButton:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("CenterContainer/VendingMachin/PayButton:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_41u7u"]
|
||||
resource_name = "blink"
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("CenterContainer/VendingMachin/IndicationLabel:modulate")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.4666667, 1.0666666),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0.5294118), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("CenterContainer/VendingMachin/FetchButton:modulate")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0.5294118), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("CenterContainer/VendingMachin/PayButton:modulate")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.53333336, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0.5294118), Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dhfph"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_fy3vt"),
|
||||
&"blink": SubResource("Animation_41u7u")
|
||||
}
|
||||
|
||||
[node name="VendingMachine" type="CanvasLayer" unique_id=287282444]
|
||||
script = ExtResource("1_7iup0")
|
||||
artefact_1 = SubResource("Resource_dhfph")
|
||||
artefact_2 = SubResource("Resource_lv3q6")
|
||||
|
||||
[node name="CenterContainer" type="Control" parent="." unique_id=317195558]
|
||||
layout_mode = 3
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -288.0
|
||||
offset_top = -324.0
|
||||
offset_right = 288.0
|
||||
offset_bottom = 324.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Particles" type="TextureRect" parent="CenterContainer" unique_id=378633537]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -450.0
|
||||
offset_top = -450.0
|
||||
offset_right = 450.0
|
||||
offset_bottom = 450.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("ViewportTexture_54ak6")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="CenterContainer/Particles" unique_id=1096007664]
|
||||
transparent_bg = true
|
||||
size = Vector2i(900, 900)
|
||||
|
||||
[node name="GPUParticles2D" type="CPUParticles2D" parent="CenterContainer/Particles/SubViewport" unique_id=1560379094]
|
||||
position = Vector2(500, 500)
|
||||
amount = 20
|
||||
texture = ExtResource("1_y06tm")
|
||||
lifetime = 1.2
|
||||
preprocess = 1.0
|
||||
spread = 180.0
|
||||
gravity = Vector2(0, 0)
|
||||
initial_velocity_min = 2.0
|
||||
initial_velocity_max = 2.0
|
||||
linear_accel_min = 5.0
|
||||
linear_accel_max = 5.0
|
||||
linear_accel_curve = SubResource("Curve_yho0h")
|
||||
color_ramp = SubResource("Gradient_rrfqi")
|
||||
|
||||
[node name="VendingMachin" type="TextureRect" parent="CenterContainer" unique_id=2108096957]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -322.25
|
||||
offset_top = -322.25
|
||||
offset_right = 322.25
|
||||
offset_bottom = 322.25
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("ViewportTexture_yho0h")
|
||||
expand_mode = 2
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="VendingMachineVP" type="SubViewport" parent="CenterContainer/VendingMachin" unique_id=824295205]
|
||||
transparent_bg = true
|
||||
size = Vector2i(568, 543)
|
||||
|
||||
[node name="VendingMachine3d" parent="CenterContainer/VendingMachin/VendingMachineVP" unique_id=92614917 instance=ExtResource("2_54ak6")]
|
||||
unique_name_in_owner = true
|
||||
object_1_scene = ExtResource("7_lv3q6")
|
||||
object_2_scene = ExtResource("6_dhfph")
|
||||
screen_1_hide = true
|
||||
screen_2_hide = true
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CenterContainer/VendingMachin/VendingMachineVP" unique_id=1303604896]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0.375, -3)
|
||||
keep_aspect = 0
|
||||
current = true
|
||||
fov = 58.9
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="CenterContainer/VendingMachin/VendingMachineVP" unique_id=1731409341]
|
||||
environment = SubResource("Environment_y06tm")
|
||||
|
||||
[node name="MachineNameLabel" type="Label" parent="CenterContainer/VendingMachin" unique_id=1373981633]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -66.0
|
||||
offset_top = -245.0
|
||||
offset_right = 126.0
|
||||
offset_bottom = -189.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
text = "ARTEFACTS_VENDING_MACHINE"
|
||||
label_settings = SubResource("LabelSettings_rrfqi")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="IndicationLabel" type="Label" parent="CenterContainer/VendingMachin" unique_id=1388081478]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = 169.0
|
||||
offset_top = -160.0
|
||||
offset_right = 266.0
|
||||
offset_bottom = -37.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
text = "CHOOSE_AN_ITEM"
|
||||
label_settings = SubResource("LabelSettings_se5lc")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="SelectButton1" type="Button" parent="CenterContainer/VendingMachin" unique_id=2142322105]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 39.25
|
||||
offset_top = 159.25
|
||||
offset_right = 176.25
|
||||
offset_bottom = 250.25
|
||||
theme = ExtResource("4_se5lc")
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "SEED_CASE"
|
||||
flat = true
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="SelectButton2" type="Button" parent="CenterContainer/VendingMachin" unique_id=65989609]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 41.25
|
||||
offset_top = 273.0
|
||||
offset_right = 179.25
|
||||
offset_bottom = 372.25
|
||||
theme = ExtResource("4_se5lc")
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "PILE"
|
||||
flat = true
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="SelectButtonBis1" type="Button" parent="CenterContainer/VendingMachin" unique_id=741069555]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 232.25
|
||||
offset_top = 161.25
|
||||
offset_right = 466.25
|
||||
offset_bottom = 254.25
|
||||
theme = ExtResource("4_se5lc")
|
||||
theme_override_font_sizes/font_size = 14
|
||||
flat = true
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="SelectButtonBis2" type="Button" parent="CenterContainer/VendingMachin" unique_id=1526377722]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 221.25
|
||||
offset_top = 273.25
|
||||
offset_right = 465.5
|
||||
offset_bottom = 377.25
|
||||
theme = ExtResource("4_se5lc")
|
||||
theme_override_font_sizes/font_size = 14
|
||||
flat = true
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VendingMachin" unique_id=190465213]
|
||||
layout_mode = 0
|
||||
offset_left = 508.25
|
||||
offset_top = 320.25
|
||||
offset_right = 570.25
|
||||
offset_bottom = 366.25
|
||||
theme_override_constants/separation = 0
|
||||
alignment = 1
|
||||
|
||||
[node name="PriceLabel" type="Label" parent="CenterContainer/VendingMachin/HBoxContainer" unique_id=1448579465]
|
||||
layout_mode = 2
|
||||
text = "3"
|
||||
label_settings = SubResource("LabelSettings_7iup0")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="PriceIcon" type="TextureRect" parent="CenterContainer/VendingMachin/HBoxContainer" unique_id=253690587]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
texture = ExtResource("5_rrfqi")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="CenterContainer/VendingMachin" unique_id=174895788]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = 3.0
|
||||
offset_top = -298.0
|
||||
offset_right = 42.0
|
||||
offset_bottom = -259.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("4_yho0h")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="FetchButton" type="TextureButton" parent="CenterContainer/VendingMachin" unique_id=986015945]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 265.25
|
||||
offset_top = 478.25
|
||||
offset_right = 459.25
|
||||
offset_bottom = 567.25
|
||||
texture_normal = ExtResource("12_bfufr")
|
||||
texture_pressed = ExtResource("13_ub0g7")
|
||||
texture_hover = ExtResource("12_bfufr")
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="PayButton" type="TextureButton" parent="CenterContainer/VendingMachin" unique_id=1470524600]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 491.25
|
||||
offset_top = 400.25
|
||||
offset_right = 599.25
|
||||
offset_bottom = 484.25
|
||||
texture_normal = ExtResource("12_bfufr")
|
||||
texture_pressed = ExtResource("13_ub0g7")
|
||||
texture_hover = ExtResource("12_bfufr")
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1440649675]
|
||||
libraries/ = SubResource("AnimationLibrary_dhfph")
|
||||
autoplay = &"blink"
|
||||
|
||||
[connection signal="button_down" from="CenterContainer/VendingMachin/SelectButton1" to="." method="_on_select_button_1_button_down"]
|
||||
[connection signal="button_down" from="CenterContainer/VendingMachin/SelectButton2" to="." method="_on_select_button_2_button_down"]
|
||||
[connection signal="button_down" from="CenterContainer/VendingMachin/SelectButtonBis1" to="." method="_on_select_button_bis_1_button_down"]
|
||||
[connection signal="button_down" from="CenterContainer/VendingMachin/SelectButtonBis2" to="." method="_on_select_button_bis_2_button_down"]
|
||||
[connection signal="button_down" from="CenterContainer/VendingMachin/FetchButton" to="." method="_on_fetch_button_button_down"]
|
||||
[connection signal="button_down" from="CenterContainer/VendingMachin/PayButton" to="." method="_on_pay_button_button_down"]
|
||||
@@ -1,62 +0,0 @@
|
||||
[gd_scene format=3 uid="uid://blva21dapmm68"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://5l3wve81irlc" path="res://gui/vending_machine/assets/3d/vending_machine.blend" id="1_28vvr"]
|
||||
[ext_resource type="Script" uid="uid://d1prpiulsaqhn" path="res://gui/vending_machine/scripts/vending_machine_3d.gd" id="1_awnyh"]
|
||||
[ext_resource type="PackedScene" uid="uid://cclvb8o3vofff" path="res://gui/artefacts/seed_case/seed_case.blend" id="2_7ycki"]
|
||||
[ext_resource type="PackedScene" uid="uid://dolv2637emdbw" path="res://gui/artefacts/pile/pile.blend" id="3_fue4l"]
|
||||
|
||||
[sub_resource type="Environment" id="Environment_28vvr"]
|
||||
ambient_light_source = 2
|
||||
ambient_light_color = Color(1, 1, 1, 1)
|
||||
ambient_light_energy = 2.29
|
||||
tonemap_exposure = 0.62
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_7ycki"]
|
||||
colors = PackedColorArray(0.06318334, 0.059500005, 0.17, 1, 0.06318334, 0.059500005, 0.17, 1)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_vo550"]
|
||||
gradient = SubResource("Gradient_7ycki")
|
||||
height = 42
|
||||
|
||||
[node name="VendingMachine3d" type="Node3D" unique_id=92614917]
|
||||
script = ExtResource("1_awnyh")
|
||||
object_1_scene = ExtResource("3_fue4l")
|
||||
object_2_scene = ExtResource("2_7ycki")
|
||||
screen_1_hide = false
|
||||
screen_2_hide = false
|
||||
|
||||
[node name="Model" parent="." unique_id=2067475525 instance=ExtResource("1_28vvr")]
|
||||
|
||||
[node name="Line1" type="Node3D" parent="." unique_id=1631780989]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.30948043, 0.971, 0)
|
||||
|
||||
[node name="Line2" type="Node3D" parent="." unique_id=29729480]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.30941665, 0.74758303, 0)
|
||||
|
||||
[node name="Line3" type="Node3D" parent="." unique_id=532403895]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.30941665, 0.5122718, 0)
|
||||
|
||||
[node name="Line4" type="Node3D" parent="." unique_id=290175423]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.30941665, 0.26622266, 0)
|
||||
|
||||
[node name="FallingObjects" type="Node3D" parent="." unique_id=1744524061]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1595767490]
|
||||
environment = SubResource("Environment_28vvr")
|
||||
|
||||
[node name="HideScreen1" type="Sprite3D" parent="." unique_id=1626145809]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.89098024, 0.88590515, -0.55653703)
|
||||
visible = false
|
||||
texture = SubResource("GradientTexture2D_vo550")
|
||||
|
||||
[node name="HideScreen2" type="Sprite3D" parent="." unique_id=121839387]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.89098024, 0.34462702, -0.55653703)
|
||||
visible = false
|
||||
texture = SubResource("GradientTexture2D_vo550")
|
||||
@@ -16,7 +16,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
|
||||
|
||||
config/name="Seeding The Wasteland"
|
||||
config/description="Seeding planets is a survival, managment and cosy game in which you play a little gardener robot."
|
||||
config/version="alpha-1.3.1"
|
||||
config/version="beta-1"
|
||||
run/main_scene="uid://c5bruelvqbm1k"
|
||||
config/features=PackedStringArray("4.6", "Forward Plus")
|
||||
config/icon="uid://df0y0s666ui4h"
|
||||
@@ -30,12 +30,12 @@ buses/default_bus_layout="uid://b4cpfxfs74sb8"
|
||||
PlantTextureBuilder="*uid://b8gqdgabrjaml"
|
||||
Pointer="*res://gui/pointer/pointer.tscn"
|
||||
AudioManager="*res://common/audio_manager/audio_manager.tscn"
|
||||
GameInfo="*res://common/game_info/game_info.gd"
|
||||
Pause="*res://gui/pause/pause.tscn"
|
||||
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
|
||||
LoadingScreen="*res://gui/loading_screen/loading_screen.tscn"
|
||||
SceneManager="*res://common/scene_manager/scene_manager.tscn"
|
||||
SteamConnection="*uid://bq12bubjof2mo"
|
||||
GameInfo="*res://common/game_info/game_info.gd"
|
||||
|
||||
[dialogic]
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
stages/3d_scenes/cockpit_scene/assets/3d/furnitures/screen.blend
Normal file
BIN
stages/3d_scenes/cockpit_scene/assets/3d/furnitures/screen.blend
Normal file
Binary file not shown.
@@ -0,0 +1,68 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://i28ngc4hgq85"
|
||||
path="res://.godot/imported/screen.blend-f05722182a95a41f2104aab7afc27fbd.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://stages/3d_scenes/cockpit_scene/assets/3d/furnitures/screen.blend"
|
||||
dest_files=["res://.godot/imported/screen.blend-f05722182a95a41f2104aab7afc27fbd.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"Material": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
|
||||
"use_external/path": "uid://dvvi1k5c5iowc"
|
||||
}
|
||||
}
|
||||
}
|
||||
blender/nodes/visible=0
|
||||
blender/nodes/active_collection_only=false
|
||||
blender/nodes/punctual_lights=true
|
||||
blender/nodes/cameras=true
|
||||
blender/nodes/custom_properties=true
|
||||
blender/nodes/modifiers=1
|
||||
blender/meshes/colors=false
|
||||
blender/meshes/uvs=true
|
||||
blender/meshes/normals=true
|
||||
blender/meshes/export_geometry_nodes_instances=false
|
||||
blender/meshes/gpu_instances=false
|
||||
blender/meshes/tangents=true
|
||||
blender/meshes/skins=2
|
||||
blender/meshes/export_bones_deforming_mesh_only=false
|
||||
blender/materials/unpack_enabled=true
|
||||
blender/materials/export_materials=1
|
||||
blender/animation/limit_playback=true
|
||||
blender/animation/always_sample=true
|
||||
blender/animation/group_tracks=true
|
||||
gltf/naming_version=2
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
stages/3d_scenes/cockpit_scene/assets/3d/furnitures/shelf.blend
Normal file
BIN
stages/3d_scenes/cockpit_scene/assets/3d/furnitures/shelf.blend
Normal file
Binary file not shown.
@@ -0,0 +1,68 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://b4wdov3y1ulyb"
|
||||
path="res://.godot/imported/shelf.blend-71d6b6a0b2e3a015b18c034dd3a9475a.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://stages/3d_scenes/cockpit_scene/assets/3d/furnitures/shelf.blend"
|
||||
dest_files=["res://.godot/imported/shelf.blend-71d6b6a0b2e3a015b18c034dd3a9475a.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
|
||||
BIN
stages/3d_scenes/cockpit_scene/assets/3d/furnitures/shelf.blend1
Normal file
BIN
stages/3d_scenes/cockpit_scene/assets/3d/furnitures/shelf.blend1
Normal file
Binary file not shown.
@@ -7,7 +7,9 @@
|
||||
[ext_resource type="PackedScene" uid="uid://by45bbbnf0k13" path="res://gui/game/objective_progress_bar/gauge_3d.tscn" id="4_ers7b"]
|
||||
[ext_resource type="PackedScene" uid="uid://d01cp8xl0rme4" path="res://gui/game/energy_info/energy_info_3d.tscn" id="6_ogqwl"]
|
||||
[ext_resource type="PackedScene" uid="uid://jjkw4edrewsk" path="res://stages/3d_scenes/cockpit_scene/assets/3d/furnitures/closet.blend" id="7_lnpag"]
|
||||
[ext_resource type="PackedScene" uid="uid://cv0ehgy3d1kmj" path="res://stages/3d_scenes/cockpit_scene/dashboard.tscn" id="8_seqvk"]
|
||||
[ext_resource type="PackedScene" uid="uid://cv0ehgy3d1kmj" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/dashboard.tscn" id="8_seqvk"]
|
||||
[ext_resource type="PackedScene" uid="uid://cgw2ct7smispo" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/shelf.tscn" id="11_w4l7d"]
|
||||
[ext_resource type="PackedScene" uid="uid://dd6k80rhux1do" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/plant_info_screen.tscn" id="12_pxmsf"]
|
||||
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="13_a2cx2"]
|
||||
[ext_resource type="PackedScene" uid="uid://blvetnnib2ks0" path="res://stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend" id="17_omtjc"]
|
||||
|
||||
@@ -84,12 +86,12 @@ interactable = false
|
||||
|
||||
[node name="Gauge3D" parent="." unique_id=232507348 instance=ExtResource("4_ers7b")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-0.06800815, 0.07331366, -3.2046419e-09, 0, -4.371139e-09, -0.1, -0.07331366, -0.06800815, 2.9727303e-09, 1.1649051, -0.56147563, 4.99477)
|
||||
transform = Transform3D(-4.371139e-09, 0, 0.1, -0.06187238, 0.07856086, -2.7045277e-09, -0.07856086, -0.06187238, -3.4340044e-09, -0.034603596, 1.1559428, 5.314687)
|
||||
progress = 1.78
|
||||
|
||||
[node name="EnergyInfo3d" parent="." unique_id=1798644168 instance=ExtResource("6_ogqwl")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.23, 0, 0, 0, 0.23, 0, 0, 0, 0.23, -1.2966455, -0.51924133, 4.2738743)
|
||||
transform = Transform3D(0.23, 0, 0, 0, 0.23, 0, 0, 0, 0.23, -1.2966455, -0.8972735, 4.2738743)
|
||||
max_energy = 3
|
||||
|
||||
[node name="Furnitures" type="Node3D" parent="." unique_id=1095424400]
|
||||
@@ -103,3 +105,9 @@ transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 1.13
|
||||
[node name="Dashboard" parent="." unique_id=1374334508 instance=ExtResource("8_seqvk")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.035136223, -0.7094687, 6.45286)
|
||||
|
||||
[node name="Shelf" parent="." unique_id=1769159984 instance=ExtResource("11_w4l7d")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1218804, -1.0799314, 2.6211417)
|
||||
|
||||
[node name="PlantInfoScreen" parent="." unique_id=1881622243 instance=ExtResource("12_pxmsf")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2386853, -0.047743827, 4.020312)
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
[gd_scene format=3 uid="uid://xsgcpgsxmboy"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bejxdxbdddqgx" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/scripts/artefact_diplayer.gd" id="1_mb4w6"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_uy2vb"]
|
||||
radius = 0.17572357
|
||||
|
||||
[node name="ArtefactDiplayer" type="Area3D" unique_id=676305823]
|
||||
script = ExtResource("1_mb4w6")
|
||||
interactable = false
|
||||
inspectable = true
|
||||
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=494100172]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.02765441, 0)
|
||||
shape = SubResource("SphereShape3D_uy2vb")
|
||||
|
||||
[node name="Model" type="Node3D" parent="." unique_id=1722072978]
|
||||
unique_name_in_owner = true
|
||||
384
stages/3d_scenes/cockpit_scene/cockpit_elements/dashboard.tscn
Normal file
384
stages/3d_scenes/cockpit_scene/cockpit_elements/dashboard.tscn
Normal file
@@ -0,0 +1,384 @@
|
||||
[gd_scene format=3 uid="uid://cv0ehgy3d1kmj"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fet6urfgiiwr" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/scripts/dashboard.gd" id="1_vks67"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgmxjom200bej" path="res://common/icons/chevrons-up.svg" id="2_eij3d"]
|
||||
[ext_resource type="PackedScene" uid="uid://cs5gir1u8jbrg" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/holo_content.tscn" id="3_go2gd"]
|
||||
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="4_7u0n5"]
|
||||
[ext_resource type="Script" uid="uid://bj4d1x8n8ina" path="res://entities/interactable_3d/interactable_3d.gd" id="5_g7q16"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnvqwsxgrd14y" path="res://stages/3d_scenes/cockpit_scene/assets/3d/dashboard.blend" id="6_emtfq"]
|
||||
[ext_resource type="Script" uid="uid://vf8nm8ch1p8s" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/scripts/dashboard_run_point_screen.gd" id="7_lskho"]
|
||||
[ext_resource type="PackedScene" uid="uid://cdvegfgvp7053" path="res://stages/3d_scenes/cockpit_scene/assets/3d/furnitures/screen_1.blend" id="8_psxhb"]
|
||||
[ext_resource type="Texture2D" uid="uid://bsgmxvuphn73c" path="res://common/icons/arrow-narrow-down.svg" id="9_v1m0r"]
|
||||
[ext_resource type="PackedScene" uid="uid://crbjmwumboelw" path="res://gui/game/inventory_gui/inventory_3d.tscn" id="10_y1ysr"]
|
||||
[ext_resource type="Script" uid="uid://bq7admu4ahs5r" path="res://entities/player/inventory/scripts/item.gd" id="11_3cel1"]
|
||||
[ext_resource type="Script" uid="uid://fnu2d6wna4yc" path="res://entities/player/inventory/scripts/inventory.gd" id="12_oix5e"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_cvt2p"]
|
||||
viewport_path = NodePath("Holo/SubViewport")
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_5d7hc"]
|
||||
viewport_path = NodePath("StatusScreen/SubViewport")
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_vlkbw"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_qbi61"]
|
||||
viewport_path = NodePath("MainScreen/MainScreenSprite/SubViewport")
|
||||
|
||||
[sub_resource type="Animation" id="Animation_vlkbw"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("MainScreenSprite: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_qbi61"]
|
||||
resource_name = "hover"
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("MainScreenSprite:scale")
|
||||
tracks/0/interp = 1
|
||||
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.2, 1.2, 1.2), Vector3(1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2ofl5"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_vlkbw"),
|
||||
&"hover": SubResource("Animation_qbi61")
|
||||
}
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_2ofl5"]
|
||||
viewport_path = NodePath("RightScreen/RightScreenAction/SubViewport")
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_2q8cl"]
|
||||
radius = 0.34611636
|
||||
|
||||
[sub_resource type="Animation" id="Animation_stoj6"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("%RightScreenAction: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.0000002, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_5d7hc"]
|
||||
resource_name = "hover"
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("%RightScreenAction: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.0000002, 1), Vector3(1.2, 1.2, 1.2), Vector3(1, 1.0000002, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_h8fs1"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_stoj6"),
|
||||
&"hover": SubResource("Animation_5d7hc")
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_2kujw"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("LeftScreenAction: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.0000002, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_2q8cl"]
|
||||
resource_name = "hover"
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("LeftScreenAction:scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0.033333335, 0.53333336, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1.0000002, 1), Vector3(1.2, 1.2, 1.2), Vector3(1, 1.0000002, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cvt2p"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_2kujw"),
|
||||
&"hover": SubResource("Animation_2q8cl")
|
||||
}
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ne0dp"]
|
||||
script = ExtResource("12_oix5e")
|
||||
items = Array[ExtResource("11_3cel1")]([null, null, null])
|
||||
n_tools = 1
|
||||
metadata/_custom_type_script = "uid://fnu2d6wna4yc"
|
||||
|
||||
[node name="Dashboard" type="Node3D" unique_id=1374334508]
|
||||
script = ExtResource("1_vks67")
|
||||
main_screen_icon = ExtResource("2_eij3d")
|
||||
destination_title = "TO_BOREA_BASE"
|
||||
|
||||
[node name="Holo" type="Sprite3D" parent="." unique_id=1067303692]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1.0000002, 0, 8.742278e-08, 0, -1, 0, 0.83082896, 0.33655214)
|
||||
pixel_size = 0.004
|
||||
texture = SubResource("ViewportTexture_cvt2p")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="Holo" unique_id=471832787]
|
||||
disable_3d = true
|
||||
transparent_bg = true
|
||||
size = Vector2i(365, 68)
|
||||
|
||||
[node name="HoloContent" parent="Holo/SubViewport" unique_id=668915500 instance=ExtResource("3_go2gd")]
|
||||
unique_name_in_owner = true
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -162.0
|
||||
offset_top = -28.0
|
||||
offset_right = 162.0
|
||||
offset_bottom = 28.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
stop_name = ""
|
||||
|
||||
[node name="StatusScreen" type="Sprite3D" parent="." unique_id=1257606535]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1.0000002, 0, 8.742278e-08, 0, -1, 0, 1.0703605, 0.35432142)
|
||||
modulate = Color(1, 0, 0.43137255, 1)
|
||||
pixel_size = 0.003
|
||||
texture = SubResource("ViewportTexture_5d7hc")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="StatusScreen" unique_id=1357189828]
|
||||
disable_3d = true
|
||||
transparent_bg = true
|
||||
size = Vector2i(435, 98)
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="StatusScreen/SubViewport" unique_id=2076282975]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_constants/separation = -10
|
||||
alignment = 1
|
||||
|
||||
[node name="StatusLabel" type="Label" parent="StatusScreen/SubViewport/VBoxContainer" unique_id=86551380]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla "
|
||||
label_settings = ExtResource("4_7u0n5")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="MainScreen" type="Area3D" parent="." unique_id=874806978 node_paths=PackedStringArray("hover_animation_player")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.42284742, 0.4816055)
|
||||
script = ExtResource("5_g7q16")
|
||||
interactable = false
|
||||
hover_animation_player = NodePath("HoverAnimationPlayer")
|
||||
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="MainScreen" unique_id=1935076244]
|
||||
shape = SubResource("SphereShape3D_vlkbw")
|
||||
|
||||
[node name="MainScreenSprite" type="Sprite3D" parent="MainScreen" unique_id=1081515212]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 8.0014914e-08, 5.4146472e-08, 7.923836e-08, 0.35859588, 0.9334929, 5.5276644e-08, 0.9334929, -0.35859588, 0, 0, 0)
|
||||
visible = false
|
||||
pixel_size = 0.003
|
||||
texture = SubResource("ViewportTexture_qbi61")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="MainScreen/MainScreenSprite" unique_id=1101534363]
|
||||
transparent_bg = true
|
||||
size = Vector2i(150, 150)
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MainScreen/MainScreenSprite/SubViewport" unique_id=758261583]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_constants/separation = -10
|
||||
alignment = 1
|
||||
|
||||
[node name="MainScreenIcon" type="TextureRect" parent="MainScreen/MainScreenSprite/SubViewport/VBoxContainer" unique_id=1128176178]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(100, 100)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("2_eij3d")
|
||||
expand_mode = 3
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="MainScreenLabel" type="Label" parent="MainScreen/MainScreenSprite/SubViewport/VBoxContainer" unique_id=2102392578]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Take Off"
|
||||
label_settings = ExtResource("4_7u0n5")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="MainScreen" unique_id=74243401]
|
||||
libraries/ = SubResource("AnimationLibrary_2ofl5")
|
||||
|
||||
[node name="DashboardModel" parent="." unique_id=635273073 instance=ExtResource("6_emtfq")]
|
||||
|
||||
[node name="RightScreen" type="Area3D" parent="." unique_id=748959616 node_paths=PackedStringArray("action_icon", "action_label", "hover_animation_player")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.6401096, -0.4515857, -0.6215544, 0, 0.809017, -0.58778524, 0.76828337, 0.37624705, 0.51785964, -0.65, 0.5, 0.2)
|
||||
script = ExtResource("7_lskho")
|
||||
action_icon = NodePath("RightScreenAction/SubViewport/VBoxContainer/RightScreenActionIcon")
|
||||
action_label = NodePath("RightScreenAction/SubViewport/VBoxContainer/RightScreenActionLabel")
|
||||
inspectable = true
|
||||
hover_animation_player = NodePath("RightScreenHoverAnimationPlayer")
|
||||
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
|
||||
|
||||
[node name="RightScreenModel" parent="RightScreen" unique_id=2091343612 instance=ExtResource("8_psxhb")]
|
||||
transform = Transform3D(-1, -2.9802322e-08, -2.9802322e-08, 0, 1, 0, -2.9802322e-08, 1.4901161e-08, 1, 0, -0.07, 0.05)
|
||||
|
||||
[node name="RightScreenAction" type="Sprite3D" parent="RightScreen" unique_id=1289027629]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 2.9802298e-08, 1.509958e-07, 2.9802322e-08, 1.0000002, 2.0861621e-07, -1.509958e-07, 2.0861626e-07, -1, -0.01, -0.04, -0.015)
|
||||
pixel_size = 0.0015
|
||||
texture = SubResource("ViewportTexture_2ofl5")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="RightScreen/RightScreenAction" unique_id=837587699]
|
||||
transparent_bg = true
|
||||
size = Vector2i(150, 180)
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="RightScreen/RightScreenAction/SubViewport" unique_id=536772063]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_constants/separation = -10
|
||||
alignment = 1
|
||||
|
||||
[node name="RightScreenActionIcon" type="TextureRect" parent="RightScreen/RightScreenAction/SubViewport/VBoxContainer" unique_id=788824067]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(100, 100)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("9_v1m0r")
|
||||
expand_mode = 3
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RightScreenActionLabel" type="Label" parent="RightScreen/RightScreenAction/SubViewport/VBoxContainer" unique_id=2019588267]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Uwoqos Uwoqos "
|
||||
label_settings = ExtResource("4_7u0n5")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="RightScreen" unique_id=1017949170]
|
||||
transform = Transform3D(1, -2.9802322e-08, -2.9802322e-08, 0, 1, 0, 2.9802322e-08, 1.4901161e-08, 1, 0, 0, 0)
|
||||
shape = SubResource("SphereShape3D_2q8cl")
|
||||
|
||||
[node name="RightScreenHoverAnimationPlayer" type="AnimationPlayer" parent="RightScreen" unique_id=1823283272]
|
||||
libraries/ = SubResource("AnimationLibrary_h8fs1")
|
||||
|
||||
[node name="LeftScreen" type="Area3D" parent="." unique_id=1517503720 node_paths=PackedStringArray("action_icon", "action_label", "hover_animation_player")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.6401096, 0.4515857, 0.6215543, 0, 0.809017, -0.5877852, -0.76828337, 0.37624705, 0.5178596, 0.65, 0.5, 0.2)
|
||||
script = ExtResource("7_lskho")
|
||||
action_icon = NodePath("LeftScreenAction/SubViewport/VBoxContainer/LeftScreenActionIcon")
|
||||
action_label = NodePath("LeftScreenAction/SubViewport/VBoxContainer/LeftScreenActionLabel")
|
||||
inspectable = true
|
||||
hover_animation_player = NodePath("LeftScreenHoverAnimationPlayer")
|
||||
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
|
||||
|
||||
[node name="LeftScreenModel" parent="LeftScreen" unique_id=996232811 instance=ExtResource("8_psxhb")]
|
||||
transform = Transform3D(1, -1.509958e-07, -8.742278e-08, 1.509958e-07, 1, -1.4901156e-08, 8.742278e-08, 1.49011425e-08, 1, 0, -0.07, 0.05)
|
||||
|
||||
[node name="LeftScreenAction" type="Sprite3D" parent="LeftScreen" unique_id=442886447]
|
||||
transform = Transform3D(-1, 5.3045827e-08, 1.509958e-07, 5.3045838e-08, 1.0000002, 1.5913756e-07, -1.5099579e-07, 1.5913761e-07, -1, 0.01, -0.04, -0.015)
|
||||
pixel_size = 0.0015
|
||||
texture = SubResource("ViewportTexture_2ofl5")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="LeftScreen/LeftScreenAction" unique_id=1031174751]
|
||||
transparent_bg = true
|
||||
size = Vector2i(150, 180)
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="LeftScreen/LeftScreenAction/SubViewport" unique_id=1664945780]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_constants/separation = -10
|
||||
alignment = 1
|
||||
|
||||
[node name="LeftScreenActionIcon" type="TextureRect" parent="LeftScreen/LeftScreenAction/SubViewport/VBoxContainer" unique_id=266510290]
|
||||
custom_minimum_size = Vector2(100, 100)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("9_v1m0r")
|
||||
expand_mode = 3
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="LeftScreenActionLabel" type="Label" parent="LeftScreen/LeftScreenAction/SubViewport/VBoxContainer" unique_id=448288889]
|
||||
layout_mode = 2
|
||||
text = "Uwoqos Uwoqos "
|
||||
label_settings = ExtResource("4_7u0n5")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="LeftScreen" unique_id=1931637253]
|
||||
transform = Transform3D(1, -2.9802322e-08, -2.9802322e-08, 0, 1, 0, 2.9802322e-08, 1.4901161e-08, 1, 0, 0, 0)
|
||||
shape = SubResource("SphereShape3D_2q8cl")
|
||||
|
||||
[node name="LeftScreenHoverAnimationPlayer" type="AnimationPlayer" parent="LeftScreen" unique_id=972807531]
|
||||
libraries/ = SubResource("AnimationLibrary_cvt2p")
|
||||
|
||||
[node name="Inventory3D" parent="." unique_id=810532522 instance=ExtResource("10_y1ysr")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 8.940697e-08, 0, 1, 0, -8.940697e-08, 0, 1, 0, 0.5876103, 0.89364576)
|
||||
no_tools = true
|
||||
test_inventory = SubResource("Resource_ne0dp")
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user