diff --git a/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean.glb b/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean.glb new file mode 100644 index 0000000..dbbafc1 --- /dev/null +++ b/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0af0afc26b996c3c39fa4c7904bc4c3591a79d1c0c0cdff56ea5192438854919 +size 1265128 diff --git a/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean.glb.import b/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean.glb.import new file mode 100644 index 0000000..93df8ed --- /dev/null +++ b/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://0qb2f8igltax" +path="res://.godot/imported/grey_seal_clean.glb-5cfb1e2a37e293df0fceb791bda0d0bf.scn" + +[deps] + +source_file="res://assets/models/grey-seal-halichoerus-grypus/grey_seal_clean.glb" +dest_files=["res://.godot/imported/grey_seal_clean.glb-5cfb1e2a37e293df0fceb791bda0d0bf.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={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean_Image_0.png b/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean_Image_0.png new file mode 100644 index 0000000..b873b07 --- /dev/null +++ b/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean_Image_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19b53ee153c44d8a929c5d95f9811e4b3e7be675463494a3bdeac35161badcbe +size 1097776 diff --git a/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean_Image_0.png.import b/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean_Image_0.png.import new file mode 100644 index 0000000..32a00bf --- /dev/null +++ b/assets/models/grey-seal-halichoerus-grypus/grey_seal_clean_Image_0.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmab2r4r8h6kg" +path.s3tc="res://.godot/imported/grey_seal_clean_Image_0.png-79b10cc69366c1643b8eaf10ac139de0.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "b028693a4b1518fec263a2aaf78a7691" +} + +[deps] + +source_file="res://assets/models/grey-seal-halichoerus-grypus/grey_seal_clean_Image_0.png" +dest_files=["res://.godot/imported/grey_seal_clean_Image_0.png-79b10cc69366c1643b8eaf10ac139de0.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 diff --git a/assets/vector/dial.svg b/assets/vector/dial.svg new file mode 100644 index 0000000..6452d84 --- /dev/null +++ b/assets/vector/dial.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52a2ddf49e27641ec0bb2ce15ae1d489c8340301205bc23c328586f8833b3193 +size 32779 diff --git a/assets/vector/dial.svg.import b/assets/vector/dial.svg.import new file mode 100644 index 0000000..4d133b8 --- /dev/null +++ b/assets/vector/dial.svg.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjw3n47kehnfj" +path.s3tc="res://.godot/imported/dial.svg-109dd48e66db5803776f539728051e27.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/vector/dial.svg" +dest_files=["res://.godot/imported/dial.svg-109dd48e66db5803776f539728051e27.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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/scenes/Main Display.tscn b/scenes/Main Display.tscn index 902b061..744574f 100644 --- a/scenes/Main Display.tscn +++ b/scenes/Main Display.tscn @@ -1,5 +1,7 @@ [gd_scene format=3 uid="uid://bx8vjd7wodbv"] +[ext_resource type="PackedScene" uid="uid://j2vmxn1p5hej" path="res://scenes/compass.tscn" id="1_5j21v"] + [node name="MainDisplay" type="Control" unique_id=735638234] layout_mode = 3 anchors_preset = 15 @@ -7,3 +9,19 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 + +[node name="SubViewportContainer" type="SubViewportContainer" parent="." unique_id=1834501597] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +stretch = true + +[node name="SubViewport" type="SubViewport" parent="SubViewportContainer" unique_id=697927821] +handle_input_locally = false +size = Vector2i(1152, 648) +render_target_update_mode = 4 + +[node name="Compass" parent="SubViewportContainer/SubViewport" unique_id=1678590387 instance=ExtResource("1_5j21v")] diff --git a/scenes/compass.tscn b/scenes/compass.tscn new file mode 100644 index 0000000..eb20ad8 --- /dev/null +++ b/scenes/compass.tscn @@ -0,0 +1,35 @@ +[gd_scene format=3 uid="uid://j2vmxn1p5hej"] + +[ext_resource type="Script" uid="uid://cgcgn8lwigumx" path="res://scripts/angle_display_3d.gd" id="1_8a3he"] +[ext_resource type="Texture2D" uid="uid://cjw3n47kehnfj" path="res://assets/vector/dial.svg" id="1_vggt3"] +[ext_resource type="PackedScene" uid="uid://0qb2f8igltax" path="res://assets/models/grey-seal-halichoerus-grypus/grey_seal_clean.glb" id="2_8a3he"] +[ext_resource type="Script" uid="uid://cv5cmdlub5gtx" path="res://scenes/node_3d.gd" id="3_mut2o"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mut2o"] +transparency = 1 +cull_mode = 2 +shading_mode = 0 +albedo_color = Color(0.44361365, 0.72118443, 0, 1) +albedo_texture = ExtResource("1_vggt3") + +[sub_resource type="PlaneMesh" id="PlaneMesh_wivqi"] +material = SubResource("StandardMaterial3D_mut2o") + +[node name="Compass" type="Node3D" unique_id=1678590387] + +[node name="AngleDisplay3D" type="Node3D" parent="." unique_id=741461034] +script = ExtResource("1_8a3he") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="AngleDisplay3D" unique_id=1205234959] +mesh = SubResource("PlaneMesh_wivqi") + +[node name="Node3D" type="Node3D" parent="." unique_id=1404656477] +script = ExtResource("3_mut2o") + +[node name="grey_seal_clean" parent="Node3D" unique_id=476466866 instance=ExtResource("2_8a3he")] +transform = Transform3D(2, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0) + +[node name="Camera3D" type="Camera3D" parent="Node3D" unique_id=269443754] +transform = Transform3D(0.7071068, -0.43045935, 0.5609855, 0, 0.7933534, 0.6087614, -0.7071068, -0.43045935, 0.5609855, 2, 2, 2) +fov = 28.4 +size = 1.5 diff --git a/scenes/node_3d.gd b/scenes/node_3d.gd new file mode 100644 index 0000000..7e61e9e --- /dev/null +++ b/scenes/node_3d.gd @@ -0,0 +1,11 @@ +extends Node3D + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + self.rotate_y(delta * 0.1) diff --git a/scenes/node_3d.gd.uid b/scenes/node_3d.gd.uid new file mode 100644 index 0000000..c4b7d1e --- /dev/null +++ b/scenes/node_3d.gd.uid @@ -0,0 +1 @@ +uid://cv5cmdlub5gtx diff --git a/scripts/angle_display_3d.gd b/scripts/angle_display_3d.gd new file mode 100644 index 0000000..42916f8 --- /dev/null +++ b/scripts/angle_display_3d.gd @@ -0,0 +1,16 @@ +extends Node3D + +func _ready() -> void: + for i in range(0, 360, 30): + var label := Label3D.new() + label.text = str(i) + label.billboard = BaseMaterial3D.BILLBOARD_ENABLED + label.font_size = 64 + label.pixel_size = 0.0025 + var base_position = Vector2.from_angle(deg_to_rad(i)) * 1.15 + label.position = Vector3(base_position.x, 0.0, base_position.y) + add_child(label) + + +func _process(delta: float) -> void: + pass diff --git a/scripts/angle_display_3d.gd.uid b/scripts/angle_display_3d.gd.uid new file mode 100644 index 0000000..5efabfe --- /dev/null +++ b/scripts/angle_display_3d.gd.uid @@ -0,0 +1 @@ +uid://cgcgn8lwigumx