diff --git a/common/icons/logout.svg.import b/common/icons/logout.svg.import index 4160a63..ac177c8 100644 --- a/common/icons/logout.svg.import +++ b/common/icons/logout.svg.import @@ -3,19 +3,20 @@ importer="texture" type="CompressedTexture2D" uid="uid://dex283rx00fjb" -path="res://.godot/imported/logout.svg-15891d2f0d875a13ef182339fdbc6039.ctex" +path.s3tc="res://.godot/imported/logout.svg-15891d2f0d875a13ef182339fdbc6039.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://common/icons/logout.svg" -dest_files=["res://.godot/imported/logout.svg-15891d2f0d875a13ef182339fdbc6039.ctex"] +dest_files=["res://.godot/imported/logout.svg-15891d2f0d875a13ef182339fdbc6039.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 diff --git a/common/icons/phone.svg b/common/icons/phone.svg new file mode 100644 index 0000000..8810c4a --- /dev/null +++ b/common/icons/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/common/icons/phone.svg.import b/common/icons/phone.svg.import new file mode 100644 index 0000000..354a868 --- /dev/null +++ b/common/icons/phone.svg.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dks6cugwif2em" +path.s3tc="res://.godot/imported/phone.svg-8966bc13014a00a59fa575f3ae370ef6.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://common/icons/phone.svg" +dest_files=["res://.godot/imported/phone.svg-8966bc13014a00a59fa575f3ae370ef6.s3tc.ctex"] + +[params] + +compress/mode=2 +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=true +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=0 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/scene_manager/scene_manager.gd b/common/scene_manager/scene_manager.gd index 4665699..141bce2 100644 --- a/common/scene_manager/scene_manager.gd +++ b/common/scene_manager/scene_manager.gd @@ -4,6 +4,7 @@ const TITLE_SCREEN = "res://stages/title_screen/title_screen.tscn" const PLANET_SCENE = "res://stages/terrain/planet/planet.tscn" const TRUCK_SCENE = "res://stages/terrain/truck/truck.tscn" const INTRO_SCENE = "res://stages/intro/intro.tscn" +const COCKPIT_SCENE = "res://stages/cockpit/cockpit.tscn" const REGION_SELECTION_SCREEN = "res://stages/region_selection/region_selection.tscn" signal scene_loaded diff --git a/entities/interactables/truck/ladder/scripts/truck_ladder.gd b/entities/interactables/truck/ladder/scripts/truck_ladder.gd index cc29aad..26f4915 100644 --- a/entities/interactables/truck/ladder/scripts/truck_ladder.gd +++ b/entities/interactables/truck/ladder/scripts/truck_ladder.gd @@ -3,5 +3,5 @@ class_name TruckLadder func interact(p : Player): p.planet.save() - SceneManager.change_scene(SceneManager.REGION_SELECTION_SCREEN) + SceneManager.change_scene(SceneManager.COCKPIT_SCENE) return true diff --git a/gui/game/energy_info/scripts/energy_info.gd b/gui/game/energy_info/scripts/energy_info.gd index 99eeb4f..5861162 100644 --- a/gui/game/energy_info/scripts/energy_info.gd +++ b/gui/game/energy_info/scripts/energy_info.gd @@ -10,9 +10,6 @@ var max_energy := 0 @export_tool_button("Update", "Callable") var update_action = func(): update(wanted_energy, wanted_max_energy) -func _ready(): - %EnergyAnimationPlayer.disappear() - func update( _energy : int, _max_energy : int, @@ -20,7 +17,6 @@ func update( ): var changed = (energy != _energy or max_energy != _max_energy) if changed: - print("Energy change with %d/%d" % [_energy, _max_energy]) energy = _energy max_energy = _max_energy var energy_count_text = "[b]%d[/b] / %d" % [energy, max_energy] diff --git a/gui/game/pass_day/scripts/pass_day.gd b/gui/game/pass_day/scripts/pass_day.gd index 0c8a836..a91df85 100644 --- a/gui/game/pass_day/scripts/pass_day.gd +++ b/gui/game/pass_day/scripts/pass_day.gd @@ -26,6 +26,7 @@ var is_animation_disappeared := false func _ready(): hide() setup_energy_values() + %EnergyPassDayInfo.hide() func _process(delta): if recharging: @@ -35,7 +36,6 @@ func _process(delta): max_energy_reached.emit() elif (new_current_energy != current_energy): %EnergyPassDayInfo.update(new_current_energy, max_energy, true) - print("Call energy info with %d/%d" % [new_current_energy, max_energy]) current_energy = new_current_energy func setup_energy_values(): @@ -52,7 +52,6 @@ func pass_day_animation(): is_animation_disappeared=false %EnergyPassDayInfo.update(from_energy, max_energy, false) - print("Call energy info with %d/%d" % [from_energy, max_energy]) await appear() is_animation_appeared = true diff --git a/gui/game/scripts/game_gui.gd b/gui/game/scripts/game_gui.gd index 533445f..e61df29 100644 --- a/gui/game/scripts/game_gui.gd +++ b/gui/game/scripts/game_gui.gd @@ -12,6 +12,7 @@ func _ready(): planet_update(GameInfo.game_data.current_planet_data, false) player_update(GameInfo.game_data.player_data, false) inventory_update(GameInfo.game_data.player_data.inventory) + %EnergyInfo.reset_size() func _on_player_updated(player_data : PlayerData): player_update(player_data) diff --git a/gui/tools/control_animation_player.gd b/gui/tools/control_animation_player.gd index d90999a..90d2d48 100644 --- a/gui/tools/control_animation_player.gd +++ b/gui/tools/control_animation_player.gd @@ -71,6 +71,7 @@ func disappear( offset : int = 20, transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_LINEAR, ): + setup_default_values() start_anim() add_tween( "modulate:a", @@ -95,6 +96,7 @@ func appear( offset : int = 20, transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_LINEAR, ): + setup_default_values() start_anim() target.visible = true target.modulate.a = 0. diff --git a/stages/cockpit/assets/3d/cockpit.blend b/stages/cockpit/assets/3d/cockpit.blend new file mode 100644 index 0000000..a638d12 Binary files /dev/null and b/stages/cockpit/assets/3d/cockpit.blend differ diff --git a/stages/cockpit/assets/3d/cockpit.blend.import b/stages/cockpit/assets/3d/cockpit.blend.import new file mode 100644 index 0000000..c70f50d --- /dev/null +++ b/stages/cockpit/assets/3d/cockpit.blend.import @@ -0,0 +1,77 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://xsllr3c4yde1" +path="res://.godot/imported/cockpit.blend-043f73cf84b030cfc681bc4a789d77b2.scn" + +[deps] + +source_file="res://stages/cockpit/assets/3d/cockpit.blend" +dest_files=["res://.godot/imported/cockpit.blend-043f73cf84b030cfc681bc4a789d77b2.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": { +"Holo": { +"use_external/enabled": true, +"use_external/fallback_path": "res://stages/cockpit/resources/materials/holo.tres", +"use_external/path": "uid://47j6hwb23gfs" +}, +"MetalLight": { +"use_external/enabled": true, +"use_external/fallback_path": "res://stages/cockpit/resources/materials/metal_light.tres", +"use_external/path": "uid://itgletxb2jgb" +}, +"Screen": { +"use_external/enabled": true, +"use_external/fallback_path": "res://stages/cockpit/resources/materials/screen.tres", +"use_external/path": "uid://d3vp57wyye6hw" +} +} +} +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/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 diff --git a/stages/cockpit/assets/3d/cockpit.blend1 b/stages/cockpit/assets/3d/cockpit.blend1 new file mode 100644 index 0000000..8370529 Binary files /dev/null and b/stages/cockpit/assets/3d/cockpit.blend1 differ diff --git a/stages/cockpit/cockpit.tscn b/stages/cockpit/cockpit.tscn new file mode 100644 index 0000000..3dbbe5f --- /dev/null +++ b/stages/cockpit/cockpit.tscn @@ -0,0 +1,356 @@ +[gd_scene load_steps=28 format=3 uid="uid://fhnrl3dregsm"] + +[ext_resource type="Script" uid="uid://b4tpigoloyxu0" path="res://stages/cockpit/scripts/cockpit.gd" id="1_koamw"] +[ext_resource type="Shader" uid="uid://bv2rghn44mrrf" path="res://stages/title_screen/resources/shaders/stars.gdshader" id="1_sk3hm"] +[ext_resource type="PackedScene" uid="uid://xsllr3c4yde1" path="res://stages/cockpit/assets/3d/cockpit.blend" id="2_3b5pk"] +[ext_resource type="Texture2D" uid="uid://l2xplg72hs6j" path="res://common/icons/map-pin.svg" id="3_3b5pk"] +[ext_resource type="PackedScene" uid="uid://cm5b7w7j6527f" path="res://stages/title_screen/planet_3d.tscn" id="3_oq6nq"] +[ext_resource type="Texture2D" uid="uid://dks6cugwif2em" path="res://common/icons/phone.svg" id="4_bse8l"] +[ext_resource type="Texture2D" uid="uid://dex283rx00fjb" path="res://common/icons/logout.svg" id="5_oq6nq"] +[ext_resource type="Script" uid="uid://bj4d1x8n8ina" path="res://stages/cockpit/scripts/cockpit_action.gd" id="6_22o3l"] +[ext_resource type="Script" uid="uid://jsxatpqfid88" path="res://stages/cockpit/scripts/cockpit_camera.gd" id="8_koamw"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_7a1qq"] +shader = ExtResource("1_sk3hm") +shader_parameter/sky_color = Color(0.03, 0.05, 0.11, 1) +shader_parameter/star_base_color = Color(0.8, 1, 0.3, 1) +shader_parameter/star_hue_offset = 0.6 +shader_parameter/star_intensity = 0.08 +shader_parameter/star_twinkle_speed = 0.8 +shader_parameter/star_twinkle_intensity = 0.2 +shader_parameter/layer_scale = 20.0 +shader_parameter/layer_scale_step = 10.0 +shader_parameter/layers_count = 3 + +[sub_resource type="Sky" id="Sky_65b6a"] +sky_material = SubResource("ShaderMaterial_7a1qq") + +[sub_resource type="Environment" id="Environment_ers7b"] +background_mode = 2 +sky = SubResource("Sky_65b6a") +sky_custom_fov = 61.7 +ambient_light_source = 3 +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_sky_contribution = 0.85 +ambient_light_energy = 2.0 +reflected_light_source = 2 +tonemap_mode = 2 +tonemap_exposure = 0.7 +tonemap_white = 1.84 +glow_enabled = true +glow_intensity = 0.22 +glow_bloom = 0.22 +glow_hdr_threshold = 0.79 +glow_hdr_scale = 0.0 +glow_hdr_luminance_cap = 5.63 +fog_light_energy = 0.58 +fog_density = 0.0 +fog_sky_affect = 0.0 +adjustment_enabled = true +adjustment_saturation = 1.3 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_22o3l"] +seed = -1177198901 +frequency = 1.0 + +[sub_resource type="Animation" id="Animation_koamw"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Planet3d: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_22o3l"] +resource_name = "turn" +length = 50.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../Planet3d:rotation:z") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 50), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -6.283] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_biiuk"] +_data = { +&"RESET": SubResource("Animation_koamw"), +&"turn": SubResource("Animation_22o3l") +} + +[sub_resource type="SphereShape3D" id="SphereShape3D_3b5pk"] +radius = 0.5618684 + +[sub_resource type="Animation" id="Animation_eodxe"] +resource_name = "hover" +length = 0.6 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D:scale") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(1, 1, 1), Vector3(1.4, 1.4, 1.4), Vector3(1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_a2cx2"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(1, 1, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_6o275"] +_data = { +&"RESET": SubResource("Animation_a2cx2"), +&"hover": SubResource("Animation_eodxe") +} + +[sub_resource type="SphereShape3D" id="SphereShape3D_oq6nq"] + +[sub_resource type="Animation" id="Animation_biiuk"] +resource_name = "hover" +length = 0.6 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D:scale") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0.4, 0.4, 0.4), Vector3(0.6, 0.6, 0.6), Vector3(0.4, 0.4, 0.4)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite3D2:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0.4, 0.4, 0.4), Vector3(0.6, 0.6, 0.6), Vector3(0.4, 0.4, 0.4)] +} + +[sub_resource type="Animation" id="Animation_j2e5k"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0.4, 0.4, 0.4)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite3D2:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0.4, 0.4, 0.4)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_eodxe"] +_data = { +&"RESET": SubResource("Animation_j2e5k"), +&"hover": SubResource("Animation_biiuk") +} + +[sub_resource type="Animation" id="Animation_oq6nq"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera3D:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0.35664433] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera3D:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0.0] +} + +[sub_resource type="Animation" id="Animation_bse8l"] +resource_name = "arrive" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera3D:position:x") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.5, 0.4649279] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera3D:position:y") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.23333333, 0.5, 0.73333335, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, -0.1, 0.0, -0.1, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_4qr0g"] +_data = { +&"RESET": SubResource("Animation_oq6nq"), +&"arrive": SubResource("Animation_bse8l") +} + +[node name="Cockpit" type="Node3D"] +script = ExtResource("1_koamw") + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_ers7b") + +[node name="Cockpit" parent="." instance=ExtResource("2_3b5pk")] + +[node name="Planet3d" parent="." instance=ExtResource("3_oq6nq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -33.448, -83.679, 0) +radius = 80.0 +details = 112 +noise = SubResource("FastNoiseLite_22o3l") +height = 11.26 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Planet3d"] +root_node = NodePath("../../ArriveAnimationPlayer") +libraries = { +&"": SubResource("AnimationLibrary_biiuk") +} +autoplay = "turn" + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.88172376, -0.122102074, 0.45569107, -0.47176614, -0.22820692, 0.8516797, 0, -0.9659259, -0.25881907, 0.03206873, 3.2286942, -1.7533616) +light_color = Color(0.6287269, 0.4718002, 0.27988377, 1) +light_energy = 1.815 +shadow_enabled = true +directional_shadow_mode = 1 +directional_shadow_split_1 = 0.039 + +[node name="MapAction" type="Area3D" parent="." node_paths=PackedStringArray("animation_player")] +transform = Transform3D(-4.371139e-08, -0.9816273, 0.19080897, 0, 0.19080897, 0.9816273, -1, 4.290829e-08, -8.340525e-09, -0.652, -0.162, 0) +script = ExtResource("6_22o3l") +animation_player = NodePath("AnimationPlayer") + +[node name="Sprite3D" type="Sprite3D" parent="MapAction"] +transform = Transform3D(1, 0, 0, 0, 1, 3.5787761e-16, 0, -3.5787761e-16, 1, 0, 0, 0) +texture = ExtResource("3_3b5pk") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="MapAction"] +transform = Transform3D(1, 2.1316282e-14, -5.3290705e-15, 0, 1, -3.5787743e-16, 0, -3.5787748e-16, 1, 4.1635495e-10, -0.011038661, -0.10670784) +shape = SubResource("SphereShape3D_3b5pk") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="MapAction"] +libraries = { +&"": SubResource("AnimationLibrary_6o275") +} + +[node name="Communications" type="Area3D" parent="."] +visible = false + +[node name="Sprite3D" type="Sprite3D" parent="Communications"] +transform = Transform3D(-1.7484556e-08, 0, -0.4, 0, 0.4, 0, 0.4, 0, -1.7484556e-08, -0.925, 0.13795245, -0.8395888) +texture = ExtResource("4_bse8l") + +[node name="ExitAction" type="Area3D" parent="." node_paths=PackedStringArray("animation_player")] +unique_name_in_owner = true +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0.35664433, 0, 0) +script = ExtResource("6_22o3l") +animation_player = NodePath("AnimationPlayer") + +[node name="Sprite3D" type="Sprite3D" parent="ExitAction"] +transform = Transform3D(0.3899745, 0, -0.08899378, 0, 0.4, 0, 0.08899378, 0, 0.3899745, 1.22, -0.572, -1.003) +texture = ExtResource("5_oq6nq") + +[node name="Sprite3D2" type="Sprite3D" parent="ExitAction"] +transform = Transform3D(0.38990447, 0, 0.089300044, 0, 0.4, 0, -0.089300044, 0, 0.38990447, -1.22, -0.572, -1.003) +flip_h = true +texture = ExtResource("5_oq6nq") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="ExitAction"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1033944, -0.664206, -0.880886) +shape = SubResource("SphereShape3D_oq6nq") + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="ExitAction"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.103, -0.664, -0.881) +shape = SubResource("SphereShape3D_oq6nq") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="ExitAction"] +libraries = { +&"": SubResource("AnimationLibrary_eodxe") +} + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0.35664433, 0, 0) +fov = 92.8 +near = 0.003 +script = ExtResource("8_koamw") + +[node name="ArriveAnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +libraries = { +&"": SubResource("AnimationLibrary_4qr0g") +} +autoplay = "arrive" + +[connection signal="clicked" from="MapAction" to="." method="_on_map_action_clicked"] +[connection signal="clicked" from="ExitAction" to="." method="_on_exit_action_clicked"] diff --git a/stages/cockpit/resources/materials/holo.tres b/stages/cockpit/resources/materials/holo.tres new file mode 100644 index 0000000..c63a91d --- /dev/null +++ b/stages/cockpit/resources/materials/holo.tres @@ -0,0 +1,7 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://47j6hwb23gfs"] + +[resource] +transparency = 1 +blend_mode = 1 +cull_mode = 2 +albedo_color = Color(0.7175189, 0.37356204, 1.92523e-07, 1) diff --git a/stages/cockpit/resources/materials/metal.tres b/stages/cockpit/resources/materials/metal.tres new file mode 100644 index 0000000..6e03938 --- /dev/null +++ b/stages/cockpit/resources/materials/metal.tres @@ -0,0 +1,5 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://c3p0vgn6adjiu"] + +[resource] +transparency = 1 +blend_mode = 1 diff --git a/stages/cockpit/resources/materials/metal_dark.tres b/stages/cockpit/resources/materials/metal_dark.tres new file mode 100644 index 0000000..a1349ab --- /dev/null +++ b/stages/cockpit/resources/materials/metal_dark.tres @@ -0,0 +1,3 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://pwv7126nlcn2"] + +[resource] diff --git a/stages/cockpit/resources/materials/metal_light.tres b/stages/cockpit/resources/materials/metal_light.tres new file mode 100644 index 0000000..f4cb2b8 --- /dev/null +++ b/stages/cockpit/resources/materials/metal_light.tres @@ -0,0 +1,9 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://itgletxb2jgb"] + +[resource] +albedo_color = Color(0.57235396, 0.6842567, 0.7280819, 1) +metallic_specular = 0.0 +stencil_flags = 2 +stencil_reference = 2 +stencil_color = Color(0.018611502, 0.019698085, 0.041198723, 1) +stencil_outline_thickness = 0.02 diff --git a/stages/cockpit/resources/materials/screen.tres b/stages/cockpit/resources/materials/screen.tres new file mode 100644 index 0000000..23c2bb5 --- /dev/null +++ b/stages/cockpit/resources/materials/screen.tres @@ -0,0 +1,7 @@ +[gd_resource type="ORMMaterial3D" format=3 uid="uid://d3vp57wyye6hw"] + +[resource] +albedo_color = Color(1, 0.7176471, 0.011764706, 1) +emission_enabled = true +emission = Color(1, 0.7176471, 0.011764706, 1) +emission_energy_multiplier = 0.8 diff --git a/stages/cockpit/scripts/cockpit.gd b/stages/cockpit/scripts/cockpit.gd new file mode 100644 index 0000000..7bea34d --- /dev/null +++ b/stages/cockpit/scripts/cockpit.gd @@ -0,0 +1,16 @@ +extends Node3D +class_name Cockpit + +func _ready(): + if not GameInfo.game_data.get_current_planet_data(): + %ExitAction.hide() + + +func _on_map_action_clicked(): + SceneManager.change_scene(SceneManager.REGION_SELECTION_SCREEN) + +func _on_exit_action_clicked(): + if GameInfo.game_data.get_current_planet_data(): + %ArriveAnimationPlayer.play_backwards("arrive") + await %ArriveAnimationPlayer.animation_finished + SceneManager.change_scene(SceneManager.PLANET_SCENE) diff --git a/stages/cockpit/scripts/cockpit.gd.uid b/stages/cockpit/scripts/cockpit.gd.uid new file mode 100644 index 0000000..c390bb4 --- /dev/null +++ b/stages/cockpit/scripts/cockpit.gd.uid @@ -0,0 +1 @@ +uid://b4tpigoloyxu0 diff --git a/stages/cockpit/scripts/cockpit_action.gd b/stages/cockpit/scripts/cockpit_action.gd new file mode 100644 index 0000000..89329de --- /dev/null +++ b/stages/cockpit/scripts/cockpit_action.gd @@ -0,0 +1,17 @@ +extends Area3D +class_name CockpitAction + +signal clicked + +@export var animation_player : AnimationPlayer + +func click(): + clicked.emit() + +func _on_mouse_entered(): + if animation_player: + animation_player.play("hover") + +func _on_mouse_exited(): + if animation_player: + animation_player.stop() diff --git a/stages/cockpit/scripts/cockpit_action.gd.uid b/stages/cockpit/scripts/cockpit_action.gd.uid new file mode 100644 index 0000000..d509a5e --- /dev/null +++ b/stages/cockpit/scripts/cockpit_action.gd.uid @@ -0,0 +1 @@ +uid://bj4d1x8n8ina diff --git a/stages/cockpit/scripts/cockpit_camera.gd b/stages/cockpit/scripts/cockpit_camera.gd new file mode 100644 index 0000000..1bc5d86 --- /dev/null +++ b/stages/cockpit/scripts/cockpit_camera.gd @@ -0,0 +1,39 @@ +extends Camera3D + +const RAY_LENGTH = 1000. + +var cockpit_action_hovered : CockpitAction = null +var _mouse_event : InputEventMouse +var _query_mouse := false + +func _unhandled_input(event): + if event is InputEventMouse: + _mouse_event = event + _query_mouse = true + if event.is_action_pressed("action") and cockpit_action_hovered and cockpit_action_hovered: + cockpit_action_hovered.click() + +func _physics_process(_delta): + if _query_mouse: + update_mouse_hovered_cockpit_actions() + _query_mouse = false + +func update_mouse_hovered_cockpit_actions() -> void: + + var space_state = get_world_3d().direct_space_state + var from = project_ray_origin(_mouse_event.position) + var to = from + project_ray_normal(_mouse_event.position) * RAY_LENGTH + + var query = PhysicsRayQueryParameters3D.create(from, to) + query.collide_with_areas = true + var result = space_state.intersect_ray(query) + + if result.is_empty(): + if cockpit_action_hovered: + cockpit_action_hovered._on_mouse_exited() + cockpit_action_hovered = null + elif result.collider is CockpitAction: + 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() diff --git a/stages/cockpit/scripts/cockpit_camera.gd.uid b/stages/cockpit/scripts/cockpit_camera.gd.uid new file mode 100644 index 0000000..b62a480 --- /dev/null +++ b/stages/cockpit/scripts/cockpit_camera.gd.uid @@ -0,0 +1 @@ +uid://jsxatpqfid88 diff --git a/stages/region_selection/scripts/region_selection.gd b/stages/region_selection/scripts/region_selection.gd index c0df458..1a385c7 100644 --- a/stages/region_selection/scripts/region_selection.gd +++ b/stages/region_selection/scripts/region_selection.gd @@ -111,4 +111,4 @@ func _on_travel_validation_no_now_button_button_down(): func _on_return_button_button_down(): if GameInfo.game_data.get_current_planet_data(): - SceneManager.change_scene(SceneManager.PLANET_SCENE) + SceneManager.change_scene(SceneManager.COCKPIT_SCENE) diff --git a/stages/terrain/planet/assets/textures/moss_biome/moss_contamination_atlas_texture.png b/stages/terrain/planet/assets/textures/moss_biome/moss_contamination_atlas_texture.png index a6267ac..d0dc543 100644 Binary files a/stages/terrain/planet/assets/textures/moss_biome/moss_contamination_atlas_texture.png and b/stages/terrain/planet/assets/textures/moss_biome/moss_contamination_atlas_texture.png differ diff --git a/stages/terrain/planet/assets/textures/moss_biome/moss_ground_texture.png b/stages/terrain/planet/assets/textures/moss_biome/moss_ground_texture.png new file mode 100644 index 0000000..973512f Binary files /dev/null and b/stages/terrain/planet/assets/textures/moss_biome/moss_ground_texture.png differ diff --git a/stages/terrain/planet/assets/textures/moss_biome/moss_ground_texture.png.import b/stages/terrain/planet/assets/textures/moss_biome/moss_ground_texture.png.import new file mode 100644 index 0000000..419ad49 --- /dev/null +++ b/stages/terrain/planet/assets/textures/moss_biome/moss_ground_texture.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsa7wbwjiebnw" +path="res://.godot/imported/moss_ground_texture.png-c04fbb538eff33b5a200a959b09aefb5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://stages/terrain/planet/assets/textures/moss_biome/moss_ground_texture.png" +dest_files=["res://.godot/imported/moss_ground_texture.png-c04fbb538eff33b5a200a959b09aefb5.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/stages/terrain/planet/assets/textures/moss_biome/moss_rock_atlas_texture.png b/stages/terrain/planet/assets/textures/moss_biome/moss_rock_atlas_texture.png new file mode 100644 index 0000000..dfc9b24 Binary files /dev/null and b/stages/terrain/planet/assets/textures/moss_biome/moss_rock_atlas_texture.png differ diff --git a/stages/terrain/planet/assets/textures/moss_biome/moss_rock_atlas_texture.png.import b/stages/terrain/planet/assets/textures/moss_biome/moss_rock_atlas_texture.png.import new file mode 100644 index 0000000..43f8d95 --- /dev/null +++ b/stages/terrain/planet/assets/textures/moss_biome/moss_rock_atlas_texture.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ch4rydip0nlt6" +path="res://.godot/imported/moss_rock_atlas_texture.png-9e39fbed50de2857d6c90ff91f86917a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://stages/terrain/planet/assets/textures/moss_biome/moss_rock_atlas_texture.png" +dest_files=["res://.godot/imported/moss_rock_atlas_texture.png-9e39fbed50de2857d6c90ff91f86917a.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/stages/terrain/planet/resources/materials/ground_planet_tilemap.tres b/stages/terrain/planet/resources/materials/moss_biome/ground_planet_tilemap.tres similarity index 68% rename from stages/terrain/planet/resources/materials/ground_planet_tilemap.tres rename to stages/terrain/planet/resources/materials/moss_biome/ground_planet_tilemap.tres index ef138ce..b2d3eaf 100644 --- a/stages/terrain/planet/resources/materials/ground_planet_tilemap.tres +++ b/stages/terrain/planet/resources/materials/moss_biome/ground_planet_tilemap.tres @@ -1,9 +1,9 @@ [gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://dpxu8yeee4qi1"] -[ext_resource type="Shader" uid="uid://q5isn3rwrir8" path="res://common/vfx/materials/shaders/texture_color_filter.gdshader" id="1_6vcas"] -[ext_resource type="Texture2D" uid="uid://bnrjnvceprxfn" path="res://stages/terrain/planet/assets/textures/garden_background_texture.png" id="2_x0w2y"] +[ext_resource type="Shader" uid="uid://q5isn3rwrir8" path="res://common/vfx/materials/shaders/texture_color_filter.gdshader" id="1_k4e5t"] +[ext_resource type="Texture2D" uid="uid://bnrjnvceprxfn" path="res://stages/terrain/planet/assets/textures/garden_background_texture.png" id="2_k4e5t"] [resource] -shader = ExtResource("1_6vcas") -shader_parameter/red_overlay_tex = ExtResource("2_x0w2y") -shader_parameter/scale = 0.006944444 +shader = ExtResource("1_k4e5t") +shader_parameter/red_overlay_tex = ExtResource("2_k4e5t") +shader_parameter/scale = 0.005 diff --git a/stages/terrain/planet/resources/moss_biome.tres b/stages/terrain/planet/resources/moss_biome.tres index 6239785..c397c65 100644 --- a/stages/terrain/planet/resources/moss_biome.tres +++ b/stages/terrain/planet/resources/moss_biome.tres @@ -1,13 +1,13 @@ [gd_resource type="TileSet" load_steps=9 format=3 uid="uid://bqo32vh5etspf"] +[ext_resource type="Texture2D" uid="uid://ch4rydip0nlt6" path="res://stages/terrain/planet/assets/textures/moss_biome/moss_rock_atlas_texture.png" id="1_spfgy"] [ext_resource type="Texture2D" uid="uid://dr72xhc07i56e" path="res://stages/terrain/planet/assets/textures/moss_biome/moss_contamination_atlas_texture.png" id="1_uqnql"] -[ext_resource type="Texture2D" uid="uid://ddecvei4l62gn" path="res://stages/terrain/planet/assets/textures/red_tiles.png" id="1_w5kw3"] [ext_resource type="Texture2D" uid="uid://yl4dg6gerykb" path="res://stages/terrain/planet/assets/textures/green_tiles.png" id="2_04qcq"] [ext_resource type="Texture2D" uid="uid://bi08trir23od2" path="res://stages/terrain/planet/assets/textures/red_rect.png" id="4_spfgy"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_4i8c6"] resource_name = "Rock" -texture = ExtResource("1_w5kw3") +texture = ExtResource("1_spfgy") texture_region_size = Vector2i(64, 64) 0:0/0 = 0 0:0/0/terrain_set = 0 @@ -178,11 +178,13 @@ texture_region_size = Vector2i(64, 64) 9:1/0 = 0 9:1/0/terrain_set = 0 9:1/0/terrain = 1 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, 32, -32, -16, -16, -32, 32, -32, 32, 16, 16, 32) +9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32) 9:1/0/terrains_peering_bit/right_side = 1 +9:1/0/terrains_peering_bit/bottom_right_corner = 1 9:1/0/terrains_peering_bit/bottom_side = 1 9:1/0/terrains_peering_bit/bottom_left_corner = 1 9:1/0/terrains_peering_bit/left_side = 1 +9:1/0/terrains_peering_bit/top_left_corner = 1 9:1/0/terrains_peering_bit/top_side = 1 9:1/0/terrains_peering_bit/top_right_corner = 1 11:1/0 = 0 @@ -282,13 +284,15 @@ texture_region_size = Vector2i(64, 64) 10:2/0 = 0 10:2/0/terrain_set = 0 10:2/0/terrain = 1 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 32, -32, 16, -32, -32, 16, -32, 32, -16, 32, 32) +10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32) 10:2/0/terrains_peering_bit/right_side = 1 10:2/0/terrains_peering_bit/bottom_right_corner = 1 10:2/0/terrains_peering_bit/bottom_side = 1 +10:2/0/terrains_peering_bit/bottom_left_corner = 1 10:2/0/terrains_peering_bit/left_side = 1 10:2/0/terrains_peering_bit/top_left_corner = 1 10:2/0/terrains_peering_bit/top_side = 1 +10:2/0/terrains_peering_bit/top_right_corner = 1 11:2/0 = 0 11:2/0/terrain_set = 0 11:2/0/terrain = 1 @@ -322,6 +326,7 @@ texture_region_size = Vector2i(64, 64) 4:3/0/terrain_set = 0 4:3/0/terrain = 1 4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -16, -16, -32, 16, -32, 32, -16, 32, 16, 16, 32, -32, 32) +4:3/0/terrains_peering_bit/right_side = 1 4:3/0/terrains_peering_bit/bottom_side = 1 4:3/0/terrains_peering_bit/bottom_left_corner = 1 4:3/0/terrains_peering_bit/left_side = 1 @@ -384,6 +389,18 @@ texture_region_size = Vector2i(64, 64) 11:3/0/terrains_peering_bit/left_side = 1 11:3/0/terrains_peering_bit/top_left_corner = 1 11:3/0/terrains_peering_bit/top_side = 1 +10:1/0 = 0 +10:1/0/terrain_set = 0 +10:1/0/terrain = 1 +10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32) +10:1/0/terrains_peering_bit/right_side = 1 +10:1/0/terrains_peering_bit/bottom_right_corner = 1 +10:1/0/terrains_peering_bit/bottom_side = 1 +10:1/0/terrains_peering_bit/bottom_left_corner = 1 +10:1/0/terrains_peering_bit/left_side = 1 +10:1/0/terrains_peering_bit/top_left_corner = 1 +10:1/0/terrains_peering_bit/top_side = 1 +10:1/0/terrains_peering_bit/top_right_corner = 1 [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_spfgy"] resource_name = "Cristal" diff --git a/stages/terrain/planet/scripts/planet.gd b/stages/terrain/planet/scripts/planet.gd index 0b04ef8..3199bb5 100644 --- a/stages/terrain/planet/scripts/planet.gd +++ b/stages/terrain/planet/scripts/planet.gd @@ -10,8 +10,6 @@ const MIN_PASS_DAY_ANIMATION_TIME : float = PassDay.TIME_MARGIN * 2 const TILE_SET : TileSet = preload("res://stages/terrain/planet/resources/moss_biome.tres") const TILE_SCALE = 1 const TILE_SIZE : int = roundi(TILE_SET.tile_size.x * TILE_SCALE) -const GROUND_TILE_MAP_MATERIAL : Material = preload("res://stages/terrain/planet/resources/materials/ground_planet_tilemap.tres") -const CONTAMINATION_TILE_MAP_MATERIAL : Material = preload("res://stages/terrain/planet/resources/materials/contamination_planet_tilemap.tres") const START_ROCK_HOLE_RADIUS = 5 const START_DECONTAMINATION_HOLE_RADIUS = 3 const CHUNK_TILE_SIZE : int = 20 diff --git a/stages/terrain/planet/scripts/tile_map_layers/ground_layer.gd b/stages/terrain/planet/scripts/tile_map_layers/ground_layer.gd index 9dbf97d..2cf548f 100644 --- a/stages/terrain/planet/scripts/tile_map_layers/ground_layer.gd +++ b/stages/terrain/planet/scripts/tile_map_layers/ground_layer.gd @@ -2,7 +2,7 @@ extends PlanetLayer class_name GroundLayer -const MATERIAL : Material = preload("res://stages/terrain/planet/resources/materials/ground_planet_tilemap.tres") +const MATERIAL : Material = preload("res://stages/terrain/planet/resources/materials/moss_biome/ground_planet_tilemap.tres") const GROUND_TILE_TERRAIN_SET : int = 0 const GROUND_TILE_TERRAIN : int = 3