diff --git a/common/audio_manager/audio_manager.tscn b/common/audio_manager/audio_manager.tscn index 43e83c9..1011b31 100644 --- a/common/audio_manager/audio_manager.tscn +++ b/common/audio_manager/audio_manager.tscn @@ -19,10 +19,17 @@ [ext_resource type="AudioStream" uid="uid://8nmr5vifkt1f" path="res://common/audio_manager/assets/sfx/harvest/harvest_1.wav" id="13_xoaox"] [ext_resource type="AudioStream" uid="uid://dgkdcq4j6fe3o" path="res://common/audio_manager/assets/sfx/harvest/harvest_2.wav" id="14_b5bgj"] [ext_resource type="AudioStream" uid="uid://eh3dbuxu5qtw" path="res://common/audio_manager/assets/sfx/harvest/harvest_3.wav" id="15_ynvb4"] +[ext_resource type="AudioStream" uid="uid://ctfaxvblcg5lc" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_1.wav" id="16_em3o8"] [ext_resource type="AudioStream" uid="uid://bown4yipeef8l" path="res://common/audio_manager/assets/sfx/harvest/harvest_4.wav" id="16_obeji"] +[ext_resource type="AudioStream" uid="uid://dfrp66a4isnt6" path="res://common/audio_manager/assets/sfx/dig/dig_1.wav" id="16_qog4c"] [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://c1dnklmka2ccn" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_2.wav" id="17_rk2e0"] +[ext_resource type="AudioStream" uid="uid://dd1uu6dd6sloe" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_3.wav" id="18_4sa2t"] +[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://eq7wufwnolto" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_4.wav" id="19_qog4c"] [ext_resource type="AudioStream" uid="uid://bjind1iji0gt7" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_1.wav" id="20_pu6t4"] [ext_resource type="AudioStream" uid="uid://cqa0gvgpoa7pd" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_2.wav" id="21_dk5s6"] [ext_resource type="AudioStream" uid="uid://d1cpi438ep0ys" path="res://common/audio_manager/assets/sfx/announce/annnounce.wav" id="22_btfwx"] @@ -46,7 +53,18 @@ stream_0 = ExtResource("2_tuvql") stream_1 = ExtResource("3_7uv4r") stream_2 = ExtResource("4_tuvql") +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_6o1yh"] +streams_count = 3 +stream_0/stream = ExtResource("16_qog4c") +stream_1/stream = ExtResource("17_bfg8q") +stream_2/stream = ExtResource("18_nlfrr") + [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_kfbah"] +streams_count = 4 +stream_0/stream = ExtResource("16_em3o8") +stream_1/stream = ExtResource("17_rk2e0") +stream_2/stream = ExtResource("18_4sa2t") +stream_3/stream = ExtResource("19_qog4c") [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_1w04j"] random_pitch = 1.2 @@ -146,6 +164,9 @@ volume_db = -3.0 unique_name_in_owner = true [node name="Dig" type="AudioStreamPlayer" parent="Sfx" unique_id=486042600] +stream = SubResource("AudioStreamRandomizer_6o1yh") + +[node name="Rocks" type="AudioStreamPlayer" parent="Sfx" unique_id=1012908521] stream = SubResource("AudioStreamRandomizer_kfbah") [node name="Respawn" type="AudioStreamPlayer" parent="Sfx" unique_id=1902559716] diff --git a/common/vfx/particles/explosion_particles.tscn b/common/vfx/particles/explosion_particles.tscn index d567bf5..d32b7a5 100644 --- a/common/vfx/particles/explosion_particles.tscn +++ b/common/vfx/particles/explosion_particles.tscn @@ -5,8 +5,16 @@ [node name="ExplosionParticles" type="CPUParticles2D" unique_id=1558673457] emitting = false texture = ExtResource("1_60vma") +lifetime = 2.0 one_shot = true +speed_scale = 4.0 +explosiveness = 0.9 +emission_shape = 1 +emission_sphere_radius = 30.0 direction = Vector2(0, -10) spread = 60.41 -initial_velocity_min = 156.29 -initial_velocity_max = 252.19 +gravity = Vector2(0, 500) +initial_velocity_min = 330.58 +initial_velocity_max = 412.67 +angle_min = -50.0 +angle_max = 50.0 diff --git a/entities/player/assets/sprites/robot.tres b/entities/player/assets/sprites/robot.tres new file mode 100644 index 0000000..50b5ec3 --- /dev/null +++ b/entities/player/assets/sprites/robot.tres @@ -0,0 +1,3 @@ +[gd_resource type="SpriteFrames" format=3 uid="uid://b62q2fakkopmu"] + +[resource] diff --git a/entities/player/inventory/scripts/items/shovel.gd b/entities/player/inventory/scripts/items/shovel.gd index c1a618b..dd1bb0d 100644 --- a/entities/player/inventory/scripts/items/shovel.gd +++ b/entities/player/inventory/scripts/items/shovel.gd @@ -1,6 +1,7 @@ extends Fork class_name Shovel +const DIG_PARTICLES := preload("res://entities/player/inventory/scripts/items/utils/dig_particles.tscn") const SHOVEL_ZONE_RADIUS = 50 func get_item_name() -> String: @@ -33,7 +34,7 @@ func can_use(_player : Player, zone : Player.ActionZone) -> bool: return false func use(player : Player, zone : Player.ActionZone) -> bool: - AudioManager.play_sfx("Dig") + AudioManager.play_sfx("Rocks") for area in zone.get_affected_areas(): if area and area is Plant: harvest(area, player) @@ -45,5 +46,10 @@ func use(player : Player, zone : Player.ActionZone) -> bool: var rock_layer : RockLayer = bodies[rock_layer_id] rock_layer.dig_rocks(zone.get_tiles()) + + + var particles := (DIG_PARTICLES.instantiate() as Node2D) + player.region.add_child(particles) + particles.global_position = zone.get_global_position() return true diff --git a/entities/player/inventory/scripts/items/utils/dig_particles.tscn b/entities/player/inventory/scripts/items/utils/dig_particles.tscn new file mode 100644 index 0000000..c36b446 --- /dev/null +++ b/entities/player/inventory/scripts/items/utils/dig_particles.tscn @@ -0,0 +1,33 @@ +[gd_scene format=3 uid="uid://d4bokthua8vum"] + +[ext_resource type="Script" uid="uid://rjpuk6wfusk0" path="res://entities/player/inventory/scripts/items/utils/scripts/dig_particles.gd" id="1_80bhs"] +[ext_resource type="PackedScene" uid="uid://drf23tyb65cpc" path="res://common/vfx/particles/explosion_particles.tscn" id="1_c4ts5"] + +[sub_resource type="Gradient" id="Gradient_7foqj"] +offsets = PackedFloat32Array(0, 0.73362446, 1) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0.84705883, 1, 1, 1, 0) + +[sub_resource type="Curve" id="Curve_w1iqb"] +_limits = [-1.0, 1.0, 0.0, 1.0] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[node name="DigParticles" type="Node2D" unique_id=358042179] +script = ExtResource("1_80bhs") + +[node name="ExplosionParticles" parent="." unique_id=1558673457 instance=ExtResource("1_c4ts5")] +unique_name_in_owner = true +amount = 10 +lifetime = 1.0 +speed_scale = 3.0 +spread = 50.0 +gravity = Vector2(0, 400) +initial_velocity_min = 150.0 +initial_velocity_max = 200.0 +scale_amount_min = 0.2 +scale_amount_max = 0.3 +color = Color(0.5372549, 0.54901963, 0.5137255, 1) +color_ramp = SubResource("Gradient_7foqj") +hue_variation_min = -0.05 +hue_variation_max = 0.05 +hue_variation_curve = SubResource("Curve_w1iqb") diff --git a/entities/player/inventory/scripts/items/utils/scripts/dig_particles.gd b/entities/player/inventory/scripts/items/utils/scripts/dig_particles.gd new file mode 100644 index 0000000..e66d7b8 --- /dev/null +++ b/entities/player/inventory/scripts/items/utils/scripts/dig_particles.gd @@ -0,0 +1,9 @@ +extends Node2D + +func _ready(): + print("Emitting !") + %ExplosionParticles.emitting = true + %ExplosionParticles.finished.connect( + queue_free + ) + diff --git a/entities/player/inventory/scripts/items/utils/scripts/dig_particles.gd.uid b/entities/player/inventory/scripts/items/utils/scripts/dig_particles.gd.uid new file mode 100644 index 0000000..6406002 --- /dev/null +++ b/entities/player/inventory/scripts/items/utils/scripts/dig_particles.gd.uid @@ -0,0 +1 @@ +uid://rjpuk6wfusk0 diff --git a/entities/player/player.tscn b/entities/player/player.tscn index 289691b..2bf0a38 100644 --- a/entities/player/player.tscn +++ b/entities/player/player.tscn @@ -4,6 +4,7 @@ [ext_resource type="Texture2D" uid="uid://dompaj451gklw" path="res://entities/player/assets/sprites/movement_particles.png" id="2_bls4j"] [ext_resource type="Texture2D" uid="uid://ys5fis3gsnoy" path="res://entities/player/assets/sprites/shadow.png" id="2_fkugw"] [ext_resource type="Texture2D" uid="uid://c7ff87jniga5m" path="res://entities/player/assets/sprites/robot.png" id="4_bls4j"] +[ext_resource type="Script" uid="uid://b1mmtgmi5oq86" path="res://entities/player/scripts/player_sprite.gd" id="5_fkugw"] [sub_resource type="CircleShape2D" id="CircleShape2D_sglur"] radius = 27.0 @@ -118,11 +119,43 @@ animations = [{ "speed": 5.0 }] -[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_bls4j"] +[sub_resource type="Animation" id="Animation_fkugw"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("PlayerSprite:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0.99999994, -17)] +} -[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_fkugw"] -states/StateMachine/node = SubResource("AnimationNodeStateMachine_bls4j") -states/StateMachine/position = Vector2(386, 91) +[sub_resource type="Animation" id="Animation_8fjmc"] +resource_name = "float" +length = 4.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("PlayerSprite:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1.9666667, 4), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(0.99999994, -17), Vector2(1, -12), Vector2(0.99999994, -17)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_qiwj3"] +_data = { +&"RESET": SubResource("Animation_fkugw"), +&"float": SubResource("Animation_8fjmc") +} [node name="Player" type="CharacterBody2D" unique_id=447849413] script = ExtResource("1_abrql") @@ -132,9 +165,9 @@ position = Vector2(0, -17) shape = SubResource("CircleShape2D_sglur") [node name="Shadow" type="Sprite2D" parent="." unique_id=875064259] -modulate = Color(0, 0, 0, 0.60784316) +modulate = Color(0, 0, 0, 0.41568628) position = Vector2(-1, 13) -scale = Vector2(0.35897446, 0.3589744) +scale = Vector2(0.41025653, 0.41025642) texture = ExtResource("2_fkugw") [node name="InteractArea2D" type="Area2D" parent="." unique_id=1048722411] @@ -153,14 +186,16 @@ gravity = Vector2(0, 100) scale_amount_curve = SubResource("Curve_fkugw") color_ramp = SubResource("Gradient_bls4j") -[node name="Sprite" type="AnimatedSprite2D" parent="." unique_id=638545037] +[node name="PlayerSprite" type="AnimatedSprite2D" parent="." unique_id=638545037] unique_name_in_owner = true position = Vector2(0.99999994, -17) scale = Vector2(0.0656168, 0.065616846) sprite_frames = SubResource("SpriteFrames_a1qjk") -animation = &"back" +animation = &"front_right" +frame_progress = 0.46771586 +script = ExtResource("5_fkugw") +wanted_orientation = 2 -[node name="FloatAnimationPlayer" type="AnimationPlayer" parent="." unique_id=929823261] - -[node name="AnimationTree" type="AnimationTree" parent="." unique_id=563415659] -tree_root = SubResource("AnimationNodeStateMachine_fkugw") +[node name="FloatAnimationPlayer" type="AnimationPlayer" parent="." unique_id=793749564] +libraries/ = SubResource("AnimationLibrary_qiwj3") +autoplay = &"float" diff --git a/entities/player/scripts/player.gd b/entities/player/scripts/player.gd index f750405..da30aa0 100644 --- a/entities/player/scripts/player.gd +++ b/entities/player/scripts/player.gd @@ -99,25 +99,23 @@ func calculate_direction(): func turn_animate(input_direction): if input_direction.x > TURN_ANIMATION_MINIMUM_THRESHOLD: if input_direction.y > TURN_ANIMATION_MINIMUM_THRESHOLD: - %Sprite.play("front_right") + %PlayerSprite.wanted_orientation = PlayerSprite.ROrient.FRONT_RIGHT elif input_direction.y < -TURN_ANIMATION_MINIMUM_THRESHOLD: - %Sprite.play("back_right") + %PlayerSprite.wanted_orientation = PlayerSprite.ROrient.BACK_RIGHT else: - %Sprite.play("right") + %PlayerSprite.wanted_orientation = PlayerSprite.ROrient.RIGHT elif input_direction.x < -TURN_ANIMATION_MINIMUM_THRESHOLD: if input_direction.y > TURN_ANIMATION_MINIMUM_THRESHOLD: - %Sprite.play("front_left") + %PlayerSprite.wanted_orientation = PlayerSprite.ROrient.FRONT_LEFT elif input_direction.y < -TURN_ANIMATION_MINIMUM_THRESHOLD: - %Sprite.play("back_left") + %PlayerSprite.wanted_orientation = PlayerSprite.ROrient.BACK_LEFT else: - %Sprite.play("left") + %PlayerSprite.wanted_orientation = PlayerSprite.ROrient.LEFT else: if input_direction.y > TURN_ANIMATION_MINIMUM_THRESHOLD: - %Sprite.play("front") + %PlayerSprite.wanted_orientation = PlayerSprite.ROrient.FRONT elif input_direction.y < -TURN_ANIMATION_MINIMUM_THRESHOLD: - %Sprite.play("back") - else: - %Sprite.play("front") + %PlayerSprite.wanted_orientation = PlayerSprite.ROrient.BACK func can_interact(interactable : Interactable): return interactable.can_interact(self) diff --git a/entities/player/scripts/player_sprite.gd b/entities/player/scripts/player_sprite.gd new file mode 100644 index 0000000..77f0325 --- /dev/null +++ b/entities/player/scripts/player_sprite.gd @@ -0,0 +1,113 @@ +@tool +extends AnimatedSprite2D +class_name PlayerSprite + +const ORIENTATION_TIME = 0.1 + +enum ROrient { + FRONT, + FRONT_RIGHT, + FRONT_LEFT, + BACK, + BACK_RIGHT, + BACK_LEFT, + RIGHT, + LEFT, +} + +@export var wanted_orientation : ROrient +var orientation : ROrient : set = set_orientation + +var time_since_last_orientation = 10. + +func _process(delta): + time_since_last_orientation += delta + + if time_since_last_orientation > ORIENTATION_TIME and wanted_orientation != orientation: + time_since_last_orientation = 0. + if is_closest_clockwise(orientation, wanted_orientation): + orientation = clock_wise(orientation) + else : + orientation = counter_clock_wise(orientation) + + +func set_orientation(o : ROrient = orientation): + orientation = o + if is_node_ready() and animation != orientation_to_str(o): + play(orientation_to_str(o)) + + +static func orientation_to_str(o : ROrient) -> String: + match o: + ROrient.FRONT: + return "front" + ROrient.FRONT_RIGHT: + return "front_right" + ROrient.FRONT_LEFT: + return "front_left" + ROrient.BACK: + return "back" + ROrient.BACK_RIGHT: + return "back_right" + ROrient.BACK_LEFT: + return "back_left" + ROrient.RIGHT: + return "right" + ROrient.LEFT: + return "left" + _: + return "front" + +static func clock_wise(o : ROrient) -> ROrient: + match o: + ROrient.FRONT: + return ROrient.FRONT_LEFT + ROrient.FRONT_LEFT: + return ROrient.LEFT + ROrient.LEFT: + return ROrient.BACK_LEFT + ROrient.BACK_LEFT: + return ROrient.BACK + ROrient.BACK: + return ROrient.BACK_RIGHT + ROrient.BACK_RIGHT: + return ROrient.RIGHT + ROrient.RIGHT: + return ROrient.FRONT_RIGHT + ROrient.FRONT_RIGHT: + return ROrient.FRONT + _: + return ROrient.FRONT + +static func counter_clock_wise(o : ROrient) -> ROrient: + match o: + ROrient.FRONT: + return ROrient.FRONT_RIGHT + ROrient.FRONT_RIGHT: + return ROrient.RIGHT + ROrient.RIGHT: + return ROrient.BACK_RIGHT + ROrient.BACK_RIGHT: + return ROrient.BACK + ROrient.BACK: + return ROrient.BACK_LEFT + ROrient.BACK_LEFT: + return ROrient.LEFT + ROrient.LEFT: + return ROrient.FRONT_LEFT + ROrient.FRONT_LEFT: + return ROrient.FRONT + _: + return ROrient.FRONT + +static func is_closest_clockwise( + current : ROrient, + wanted : ROrient, +): + var move := current + var step := 0 + while move != wanted: + step += 1 + move = clock_wise(move) + return step < 4 + \ No newline at end of file diff --git a/entities/player/scripts/player_sprite.gd.uid b/entities/player/scripts/player_sprite.gd.uid new file mode 100644 index 0000000..f1bf995 --- /dev/null +++ b/entities/player/scripts/player_sprite.gd.uid @@ -0,0 +1 @@ +uid://b1mmtgmi5oq86 diff --git a/gui/loading_screen/assets/fond.jpg b/gui/loading_screen/assets/fond.jpg new file mode 100644 index 0000000..de8e937 Binary files /dev/null and b/gui/loading_screen/assets/fond.jpg differ diff --git a/gui/loading_screen/assets/fond.jpg.import b/gui/loading_screen/assets/fond.jpg.import new file mode 100644 index 0000000..0e52e68 --- /dev/null +++ b/gui/loading_screen/assets/fond.jpg.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d4mj2mdjgkxsu" +path="res://.godot/imported/fond.jpg-4f076ce7d6a6874c8e67959f569870d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://gui/loading_screen/assets/fond.jpg" +dest_files=["res://.godot/imported/fond.jpg-4f076ce7d6a6874c8e67959f569870d5.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 diff --git a/gui/loading_screen/loading_screen.tscn b/gui/loading_screen/loading_screen.tscn index 831a5cd..51bdacd 100644 --- a/gui/loading_screen/loading_screen.tscn +++ b/gui/loading_screen/loading_screen.tscn @@ -1,21 +1,100 @@ -[gd_scene load_steps=7 format=3 uid="uid://dxfe3cr3qy45y"] +[gd_scene format=3 uid="uid://dxfe3cr3qy45y"] [ext_resource type="Script" uid="uid://c41axxu2t3a8a" path="res://gui/loading_screen/scripts/loading_screen.gd" id="1_mrd8x"] [ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="1_vsl4m"] +[ext_resource type="Texture2D" uid="uid://d4mj2mdjgkxsu" path="res://gui/loading_screen/assets/fond.jpg" id="2_hjgyq"] [ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="2_sm2e5"] [ext_resource type="Script" uid="uid://0dhj8sdpil7q" path="res://gui/tools/control_animation_player.gd" id="4_h5vhe"] [ext_resource type="FontFile" uid="uid://c7k6ssq6ocwdk" path="res://gui/ressources/fonts/Ubuntu/Ubuntu-M.ttf" id="4_hjgyq"] +[ext_resource type="Texture2D" uid="uid://c7ff87jniga5m" path="res://entities/player/assets/sprites/robot.png" id="6_il1kt"] [sub_resource type="LabelSettings" id="LabelSettings_il1kt"] font = ExtResource("4_hjgyq") font_size = 20 -[node name="LoadingScreen" type="CanvasLayer"] +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_80gkw"] +load_path = "res://.godot/imported/robot.png-17ad80b7e526843a55ea7e95e3e071cb.ctex" + +[sub_resource type="AtlasTexture" id="AtlasTexture_qyvts"] +atlas = SubResource("CompressedTexture2D_80gkw") +region = Rect2(51, 141, 658, 786) + +[sub_resource type="Animation" id="Animation_ym1wt"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("LoadingInterface/MarginContainer/Robot:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [SubResource("AtlasTexture_qyvts")] +} + +[sub_resource type="AtlasTexture" id="AtlasTexture_bb3wj"] +atlas = ExtResource("6_il1kt") +region = Rect2(51, 141, 658, 786) + +[sub_resource type="AtlasTexture" id="AtlasTexture_k4yw7"] +atlas = ExtResource("6_il1kt") +region = Rect2(811, 140, 655, 794) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mdpou"] +atlas = ExtResource("6_il1kt") +region = Rect2(1553, 140, 669, 799) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2yj18"] +atlas = ExtResource("6_il1kt") +region = Rect2(2341, 140, 648, 782) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ov8hr"] +atlas = ExtResource("6_il1kt") +region = Rect2(3103, 140, 627, 784) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fekqf"] +atlas = ExtResource("6_il1kt") +region = Rect2(3840, 140, 653, 782) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0aqnl"] +atlas = ExtResource("6_il1kt") +region = Rect2(4623, 141, 671, 798) + +[sub_resource type="AtlasTexture" id="AtlasTexture_a0dhh"] +atlas = ExtResource("6_il1kt") +region = Rect2(5371, 140, 654, 794) + +[sub_resource type="Animation" id="Animation_hkdx5"] +resource_name = "rotate" +length = 1.6 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("LoadingInterface/MarginContainer/Robot:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2, 0.4, 0.6, 0.8, 1, 1.2, 1.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [SubResource("AtlasTexture_bb3wj"), SubResource("AtlasTexture_k4yw7"), SubResource("AtlasTexture_mdpou"), SubResource("AtlasTexture_2yj18"), SubResource("AtlasTexture_ov8hr"), SubResource("AtlasTexture_fekqf"), SubResource("AtlasTexture_0aqnl"), SubResource("AtlasTexture_a0dhh")] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_uvn3e"] +_data = { +&"RESET": SubResource("Animation_ym1wt"), +&"rotate": SubResource("Animation_hkdx5") +} + +[node name="LoadingScreen" type="CanvasLayer" unique_id=1827705213] process_mode = 3 layer = 1000000 script = ExtResource("1_mrd8x") -[node name="LoadingInterface" type="Control" parent="."] +[node name="LoadingInterface" type="Control" parent="." unique_id=692218991] unique_name_in_owner = true process_mode = 3 layout_mode = 3 @@ -26,7 +105,7 @@ offset_bottom = -0.00061035156 grow_horizontal = 2 grow_vertical = 2 -[node name="ColorRect" type="ColorRect" parent="LoadingInterface"] +[node name="ColorRect" type="ColorRect" parent="LoadingInterface" unique_id=853934911] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -35,7 +114,18 @@ grow_horizontal = 2 grow_vertical = 2 color = Color(0.05882353, 0.05882353, 0.16862746, 1) -[node name="MarginContainer" type="MarginContainer" parent="LoadingInterface"] +[node name="TextureRect" type="TextureRect" parent="LoadingInterface" unique_id=149577846] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("2_hjgyq") +expand_mode = 1 +stretch_mode = 6 + +[node name="MarginContainer" type="MarginContainer" parent="LoadingInterface" unique_id=513488942] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -48,32 +138,48 @@ theme_override_constants/margin_top = 30 theme_override_constants/margin_right = 30 theme_override_constants/margin_bottom = 30 -[node name="VBoxContainer" type="VBoxContainer" parent="LoadingInterface/MarginContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="LoadingInterface/MarginContainer" unique_id=1574150484] layout_mode = 2 alignment = 1 -[node name="LoadingTitle" type="Label" parent="LoadingInterface/MarginContainer/VBoxContainer"] +[node name="LoadingTitle" type="Label" parent="LoadingInterface/MarginContainer/VBoxContainer" unique_id=1413861137] +modulate = Color(1, 0.6509804, 0.09019608, 1) layout_mode = 2 text = "LOADING" label_settings = ExtResource("1_vsl4m") horizontal_alignment = 1 vertical_alignment = 1 -[node name="LoadingText" type="Label" parent="LoadingInterface/MarginContainer/VBoxContainer"] +[node name="LoadingText" type="Label" parent="LoadingInterface/MarginContainer/VBoxContainer" unique_id=1422028379] unique_name_in_owner = true +modulate = Color(1, 0.6509804, 0.09019608, 1) layout_mode = 2 text = "Preparing Scene" label_settings = SubResource("LabelSettings_il1kt") horizontal_alignment = 1 vertical_alignment = 1 -[node name="LoadingProgressBar" type="ProgressBar" parent="LoadingInterface/MarginContainer/VBoxContainer"] +[node name="LoadingProgressBar" type="ProgressBar" parent="LoadingInterface/MarginContainer/VBoxContainer" unique_id=1282408334] unique_name_in_owner = true custom_minimum_size = Vector2(0, 50) layout_mode = 2 theme = ExtResource("2_sm2e5") -[node name="LoadingAnimation" type="Node" parent="LoadingInterface"] +[node name="Robot" type="TextureRect" parent="LoadingInterface/MarginContainer" unique_id=2041221081] +custom_minimum_size = Vector2(80, 80) +layout_mode = 2 +size_flags_horizontal = 8 +size_flags_vertical = 8 +texture = SubResource("AtlasTexture_qyvts") +expand_mode = 1 +stretch_mode = 5 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="LoadingInterface/MarginContainer/Robot" unique_id=1643807800] +root_node = NodePath("../../../..") +libraries/ = SubResource("AnimationLibrary_uvn3e") +autoplay = &"rotate" + +[node name="LoadingAnimation" type="Node" parent="LoadingInterface" unique_id=1183969574] unique_name_in_owner = true script = ExtResource("4_h5vhe") metadata/_custom_type_script = "uid://0dhj8sdpil7q" diff --git a/gui/tools/control_animation_player.gd b/gui/tools/control_animation_player.gd index 03a31d3..de73241 100644 --- a/gui/tools/control_animation_player.gd +++ b/gui/tools/control_animation_player.gd @@ -106,7 +106,7 @@ func appear( 1., duration, transition_type - ).finished + ) target.position = target_default_pos + Vector2.UP * offset