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:
2026-04-10 16:16:54 +02:00
parent 84a2eafe57
commit 8062c42e7b
154 changed files with 2780 additions and 1772 deletions

View File

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

View File

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

Binary file not shown.

View File

@@ -1,68 +0,0 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dolv2637emdbw"
path="res://.godot/imported/pile.blend-30b48bcbeddf39d9b6df3c289ba33608.scn"
[deps]
source_file="res://gui/artefacts/pile/pile.blend"
dest_files=["res://.godot/imported/pile.blend-30b48bcbeddf39d9b6df3c289ba33608.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.

View File

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

View File

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

View File

@@ -1,68 +0,0 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cclvb8o3vofff"
path="res://.godot/imported/seed_case.blend-123afc7672467c4885837d27f75f5e08.scn"
[deps]
source_file="res://gui/artefacts/seed_case/seed_case.blend"
dest_files=["res://.godot/imported/seed_case.blend-123afc7672467c4885837d27f75f5e08.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,68 +0,0 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://5l3wve81irlc"
path="res://.godot/imported/vending_machine.blend-07b605eb32be6fa48a7c007c48e05515.scn"
[deps]
source_file="res://gui/vending_machine/assets/3d/vending_machine.blend"
dest_files=["res://.godot/imported/vending_machine.blend-07b605eb32be6fa48a7c007c48e05515.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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