Dev de la démo

* Modification de l'apparence de l'UI des dialogues
* Changement de l'ordre de déblocage des mutations
* Ajout d'une confirmation pour l'abandon
* Ajout de la scène de fin avec la base Boréa, en tant que fin de démo
* Modification des icône de durée de vie, temps de pousse, et de mort
* Ajout d'un icône au dessus du joueur quand il n'a plus d'énergie
* Amélioration des dialogues du jeu
* Changement du modèle du téléphone
* Ajout de cellule d'énergie et de cellule de talion trouvable sur la carte
* Il est à nouveau possible de se recharger après la fin d'une région
* Buff des mutations ancien sociale et solide
* Modification de la mutation fertile (ne donne de gain de graine qu'à la maturation)
* Ajout d'une récupération automatique des graines
* Ajout de deux cartons de tutoriel ainsi qu'une option pour les revoir dans l'aide de jeu
* Amélioration générale du tutoriel
* Ajout d'un écran titre digne de ce nom
* Lors de l'arrivée à destination, ne téléporte plus le joueur sur une map vide, mais directement dans les lieux de cinématique
* Ajout graphique de plus de pattern de mousse et de roche
* Le talion apparait maintenant sur toute la carte
* La roche peut désormais apparaitre sur la zone de départ
* Ajout dud modificateur de région Canyon
* Equilibrage général
* Fix de bugs en tout genre
This commit is contained in:
2026-05-27 19:13:32 +02:00
parent 4c4b051f3f
commit 908878dff4
289 changed files with 8802 additions and 1520 deletions

View File

@@ -0,0 +1,89 @@
[gd_scene format=3 uid="uid://c2unmkf4ec4gf"]
[ext_resource type="Script" uid="uid://ds8qj6h3nerkt" path="res://entities/interactable_3d/ai_receptacle/scripts/ai_receptacle.gd" id="1_f5pxu"]
[ext_resource type="Texture2D" uid="uid://dg00xnpp6ixls" path="res://common/icons/server-2.svg" id="2_f5pxu"]
[ext_resource type="PackedScene" uid="uid://b50g4ufp0ul5x" path="res://entities/interactable_3d/ai_receptacle/assets/3d/ai_receptacle.blend" id="2_hstrx"]
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="3_ocu3y"]
[ext_resource type="PackedScene" uid="uid://dssuk68nfqq1y" path="res://entities/interactable_3d/ai_receptacle/assets/3d/ai_receptacle_broken.blend" id="4_drapv"]
[sub_resource type="BoxShape3D" id="BoxShape3D_f5pxu"]
size = Vector3(1.4648438, 1.5727539, 1.1850586)
[sub_resource type="ViewportTexture" id="ViewportTexture_drapv"]
viewport_path = NodePath("Screen/SubViewport")
[sub_resource type="LabelSettings" id="LabelSettings_s7ckp"]
font = ExtResource("3_ocu3y")
font_size = 30
[node name="AiReceptacle" type="Area3D" unique_id=1082354698]
script = ExtResource("1_f5pxu")
screen_icon = ExtResource("2_f5pxu")
screen_text = "Hello"
screen_turned_on = true
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
[node name="Model" parent="." unique_id=462471051 instance=ExtResource("2_hstrx")]
unique_name_in_owner = true
[node name="ModelBroken" parent="." unique_id=1633938801 instance=ExtResource("4_drapv")]
unique_name_in_owner = true
visible = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=447695736]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0038106, 3.0576665)
shape = SubResource("BoxShape3D_f5pxu")
[node name="Screen" type="Sprite3D" parent="." unique_id=1396407912]
transform = Transform3D(1, 0, 0, 0, 0.8021926, 0.5970652, 0, -0.5970652, 0.8021926, 0, 0.8748945, 3.3313272)
pixel_size = 0.0018
texture = SubResource("ViewportTexture_drapv")
[node name="SubViewport" type="SubViewport" parent="Screen" unique_id=709453654]
disable_3d = true
transparent_bg = true
size = Vector2i(595, 367)
[node name="TurnedOffBackground" type="ColorRect" parent="Screen/SubViewport" unique_id=65019012]
unique_name_in_owner = true
visible = false
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.0627451, 0.05882353, 0.16862746, 1)
[node name="ScreenContent" type="MarginContainer" parent="Screen/SubViewport" unique_id=380698147]
unique_name_in_owner = true
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 16
theme_override_constants/margin_right = 16
theme_override_constants/margin_bottom = 16
[node name="VBoxContainer" type="VBoxContainer" parent="Screen/SubViewport/ScreenContent" unique_id=1893636910]
layout_mode = 2
size_flags_vertical = 4
alignment = 1
[node name="ScreenIcon" type="TextureRect" parent="Screen/SubViewport/ScreenContent/VBoxContainer" unique_id=697782774]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture = ExtResource("2_f5pxu")
expand_mode = 1
stretch_mode = 5
[node name="ScreenTitle" type="Label" parent="Screen/SubViewport/ScreenContent/VBoxContainer" unique_id=443526476]
unique_name_in_owner = true
layout_mode = 2
text = "Hello"
label_settings = SubResource("LabelSettings_s7ckp")
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3

View File

@@ -0,0 +1,73 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b50g4ufp0ul5x"
path="res://.godot/imported/ai_receptacle.blend-b318d06849ebd1a83015daf5e59aedc4.scn"
[deps]
source_file="res://entities/interactable_3d/ai_receptacle/assets/3d/ai_receptacle.blend"
dest_files=["res://.godot/imported/ai_receptacle.blend-b318d06849ebd1a83015daf5e59aedc4.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": {
"Default3D": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
},
"Glass": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/glass_3d.tres",
"use_external/path": "uid://b5vlcdry8vtgi"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

View File

@@ -0,0 +1,73 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dssuk68nfqq1y"
path="res://.godot/imported/ai_receptacle_broken.blend-ab45bb89545c07a9942287d0298bb2da.scn"
[deps]
source_file="res://entities/interactable_3d/ai_receptacle/assets/3d/ai_receptacle_broken.blend"
dest_files=["res://.godot/imported/ai_receptacle_broken.blend-ab45bb89545c07a9942287d0298bb2da.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": {
"Default3D": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
},
"Glass": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/glass_3d.tres",
"use_external/path": "uid://b5vlcdry8vtgi"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

View File

@@ -0,0 +1,35 @@
@tool
extends Interactable3D
class_name AiReceptacle
@export var screen_icon : Texture :
set(v):
screen_icon = v
update()
@export var screen_text : String :
set(v):
screen_text = v
update()
@export var screen_turned_on : bool = false :
set(v):
screen_turned_on = v
update()
@export var broken : bool = false :
set(v):
broken = v
update()
func _ready():
update()
func update():
if is_node_ready():
%TurnedOffBackground.visible = not screen_turned_on
%ScreenContent.visible = screen_turned_on
%ScreenIcon.texture = screen_icon
%ScreenTitle.text = screen_text
%Model.visible = not broken
%ModelBroken.visible = broken

View File

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

View File

@@ -181,6 +181,7 @@ _data = {
}
[node name="ArtefactAnnounce" type="CanvasLayer" unique_id=1447182082]
layer = 2
visible = false
script = ExtResource("1_2sroa")
@@ -190,6 +191,7 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="BackgroundRect" type="ColorRect" parent="MarginContainer" unique_id=1594037653]
layout_mode = 2
@@ -207,6 +209,7 @@ offset_right = 500.0
offset_bottom = 500.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = SubResource("ViewportTexture_6hxtc")
[node name="SubViewport" type="SubViewport" parent="Particles" unique_id=1123249182]
@@ -235,6 +238,7 @@ offset_top = -627.0
offset_bottom = 627.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_constants/separation = 4
alignment = 1

View File

@@ -75,10 +75,10 @@ visible = false
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9791151, 0)
shape = SubResource("BoxShape3D_nvfy2")
[node name="MutationAnnounce" parent="." unique_id=1447182082 instance=ExtResource("9_247i2")]
unique_name_in_owner = true
[node name="ArtefactAnnounce" parent="." unique_id=114641656 instance=ExtResource("8_3rrt0")]
unique_name_in_owner = true
[node name="MutationAnnounce" parent="." unique_id=1447182082 instance=ExtResource("9_247i2")]
unique_name_in_owner = true
[editable path="CristalModelCrack"]

View File

@@ -183,6 +183,7 @@ _data = {
}
[node name="MutationAnnounce" type="CanvasLayer" unique_id=1447182082]
layer = 2
visible = false
script = ExtResource("1_02o74")
@@ -192,9 +193,11 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="BackgroundRect" type="ColorRect" parent="MarginContainer" unique_id=1594037653]
layout_mode = 2
mouse_filter = 2
color = Color(0.0352941, 0.0196078, 0.12549, 0.705882)
[node name="Particles" type="TextureRect" parent="." unique_id=1748571879]
@@ -209,6 +212,7 @@ offset_right = 500.0
offset_bottom = 500.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = SubResource("ViewportTexture_6hxtc")
[node name="SubViewport" type="SubViewport" parent="Particles" unique_id=1123249182]
@@ -258,7 +262,6 @@ horizontal_alignment = 1
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
mouse_filter = 0
texture = SubResource("ViewportTexture_smt8b")
stretch_mode = 5
script = ExtResource("5_qu1xy")

View File

@@ -1,14 +1,18 @@
extends Area3D
class_name Interactable3D
@export var interactable = true
@export var inspectable = false
@export var interactable := true : set = set_interactable
@export var inspectable := false
signal clicked
@export var hover_animation_player : AnimationPlayer
@export var audio_player : AudioStreamPlayer3D
func _ready():
set_interactable()
func click():
if interactable:
clicked.emit()
@@ -22,7 +26,7 @@ func stop_audio():
audio_player.stop()
func _on_mouse_entered():
if hover_animation_player and interactable:
if hover_animation_player and interactable and hover_animation_player.has_animation("hover"):
hover_animation_player.play("hover")
if inspectable:
Pointer.inspect(self)
@@ -35,3 +39,12 @@ func _on_mouse_exited():
func card_info() -> CardInfo:
return null
func set_interactable(i := interactable):
interactable = i
if is_node_ready() and hover_animation_player:
if i and hover_animation_player.has_animation("activated"):
hover_animation_player.play("activated")
if not i and hover_animation_player.has_animation("deactivated"):
hover_animation_player.play("deactivated")

View File

@@ -16,7 +16,7 @@ viewport_path = NodePath("Screen/SubViewport")
[sub_resource type="LabelSettings" id="LabelSettings_cqerb"]
font = ExtResource("3_h5gyd")
font_size = 30
font_size = 20
[node name="OrchidSaver" type="Area3D" unique_id=381308711]
script = ExtResource("1_tiit5")

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,13 +1,22 @@
[gd_scene format=3 uid="uid://csx7d5khjd6y5"]
[ext_resource type="Script" uid="uid://bj4d1x8n8ina" path="res://entities/interactable_3d/interactable_3d.gd" id="1_2si4a"]
[ext_resource type="Script" uid="uid://chedhuxpxro4k" path="res://entities/interactable_3d/phone/scripts/phone.gd" id="1_2si4a"]
[ext_resource type="AudioStream" uid="uid://ocm1dkkhv7ls" path="res://common/audio_manager/assets/sfx/phone/phone_ringing.wav" id="2_w00q2"]
[ext_resource type="PackedScene" uid="uid://5dytwh4wydcg" path="res://entities/interactable_3d/phone/assets/3d/phone.blend" id="3_lp5jo"]
[ext_resource type="Texture2D" uid="uid://dks6cugwif2em" path="res://common/icons/phone.svg" id="4_gtuax"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_mwti2"]
radius = 0.9633789
height = 2.4316406
radius = 0.87646484
height = 2.0859375
[sub_resource type="Gradient" id="Gradient_w00q2"]
offsets = PackedFloat32Array(0.020833334, 1)
colors = PackedColorArray(0.0627451, 0.05882353, 0.16862746, 1, 0.0627451, 0.05882353, 0.16862746, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_lp5jo"]
gradient = SubResource("Gradient_w00q2")
width = 139
height = 96
[sub_resource type="Animation" id="Animation_v4tdl"]
length = 0.001
@@ -23,6 +32,86 @@ tracks/0/keys = {
"update": 0,
"values": [Vector3(1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Model/Sprite3D:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Model/OffScreenBackground:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_gtuax"]
resource_name = "activated"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Model/Sprite3D:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Model/OffScreenBackground:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_euiu0"]
resource_name = "deactivated"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Model/Sprite3D:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.033333335),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Model/OffScreenBackground:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_lkqnn"]
resource_name = "hover"
@@ -43,36 +132,95 @@ tracks/0/keys = {
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xa016"]
_data = {
&"RESET": SubResource("Animation_v4tdl"),
&"activated": SubResource("Animation_gtuax"),
&"deactivated": SubResource("Animation_euiu0"),
&"hover": SubResource("Animation_lkqnn")
}
[sub_resource type="Animation" id="Animation_1kswv"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Model:rotation:z")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_ckx3x"]
resource_name = "ring"
length = 1.95
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Model:rotation:z")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.2, 0.3, 0.4, 0.5, 0.6, 0.70000005, 0.8000001, 1, 1.1, 1.2, 1.3, 1.4, 1.5000001, 1.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0.0, -0.03, 0.03, -0.03, 0.03, -0.03, 0.03, 0.0, -0.03, 0.03, -0.03, 0.03, -0.03, 0.03, 0.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_bc3p2"]
_data = {
&"RESET": SubResource("Animation_1kswv"),
&"ring": SubResource("Animation_ckx3x")
}
[node name="Phone" type="Area3D" unique_id=429299908 node_paths=PackedStringArray("hover_animation_player", "audio_player")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
transform = Transform3D(-1, 0, -1.509958e-07, 0, 1, 0, 1.509958e-07, 0, -1, 0, 0, 0)
script = ExtResource("1_2si4a")
hover_animation_player = NodePath("HoverAnimationPlayer")
audio_player = NodePath("AudioStreamPlayer3D")
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=660671507]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.21582031, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5439453, 0)
shape = SubResource("CapsuleShape3D_mwti2")
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="." unique_id=73991663]
stream = ExtResource("2_w00q2")
bus = &"Sfx"
[node name="Model" parent="." unique_id=178278867 instance=ExtResource("3_lp5jo")]
[node name="Model" parent="." unique_id=1951271790 instance=ExtResource("3_lp5jo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.000101934645, 0)
[node name="PhoneSignal" parent="Model" index="1" unique_id=2035875887]
transform = Transform3D(0.99678284, 0, -0.080149435, 0, 1, 0, 0.080149435, 0, 0.99678284, -0.27000237, 1.5518044, -0.16334502)
[node name="Sprite3D" type="Sprite3D" parent="Model" unique_id=2025147118]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.1913681, 0.3055997, -0.095009446)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.023056125, 0.6826539, -0.33169416)
visible = false
pixel_size = 0.005
texture = ExtResource("4_gtuax")
[node name="OffScreenBackground" type="Sprite3D" parent="Model" unique_id=802126508]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.023056127, 0.6826539, -0.34936276)
pixel_size = 0.005
texture = SubResource("GradientTexture2D_lp5jo")
[node name="OmniLight3D" type="OmniLight3D" parent="Model" unique_id=1684592543]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 0.9238404, -0.47173643)
light_color = Color(0.87551093, 0.72609586, 0.8473426, 1)
shadow_enabled = true
omni_range = 1.8928293
[node name="AnimationPlayer" parent="Model" index="6" unique_id=636985304]
autoplay = &"Turning"
[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="." unique_id=1414304456]
libraries/ = SubResource("AnimationLibrary_xa016")
[node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=1684592543]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.9604645e-08, 1.0397238, -0.47173643)
light_color = Color(0.87551093, 0.72609586, 0.8473426, 1)
shadow_enabled = true
omni_range = 1.8928293
[node name="RingingAnimationPlayer" type="AnimationPlayer" parent="." unique_id=1401157488]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_bc3p2")
[editable path="Model"]

View File

@@ -0,0 +1,21 @@
extends Interactable3D
class_name Phone
func click():
if interactable:
clicked.emit()
interactable = false
func set_interactable(i := interactable):
interactable = i
if is_node_ready() and hover_animation_player:
if i and hover_animation_player.has_animation("activated"):
hover_animation_player.play("activated")
if not i and hover_animation_player.has_animation("deactivated"):
hover_animation_player.play("deactivated")
if i :
%RingingAnimationPlayer.play("ring")
else:
%RingingAnimationPlayer.stop()

View File

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