diff --git a/assets/models/beacon.glb b/assets/models/beacon.glb new file mode 100644 index 0000000..090d3b4 Binary files /dev/null and b/assets/models/beacon.glb differ diff --git a/assets/models/beacon.glb.import b/assets/models/beacon.glb.import new file mode 100644 index 0000000..7659042 --- /dev/null +++ b/assets/models/beacon.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dtlq3fx567v8u" +path="res://.godot/imported/beacon.glb-3513a65128c3782a8d43b86437e287f9.scn" + +[deps] + +source_file="res://assets/models/beacon.glb" +dest_files=["res://.godot/imported/beacon.glb-3513a65128c3782a8d43b86437e287f9.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/beacon_0.png b/assets/models/beacon_0.png new file mode 100644 index 0000000..32ca014 Binary files /dev/null and b/assets/models/beacon_0.png differ diff --git a/assets/models/beacon_0.png.import b/assets/models/beacon_0.png.import new file mode 100644 index 0000000..ce14c25 --- /dev/null +++ b/assets/models/beacon_0.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://diu78yjigehbs" +path="res://.godot/imported/beacon_0.png-e5f48377f73b61e37c6625831aa3b5fd.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "4a33f2c67335ed7b8bf1a3bbd378cbe8" +} + +[deps] + +source_file="res://assets/models/beacon_0.png" +dest_files=["res://.godot/imported/beacon_0.png-e5f48377f73b61e37c6625831aa3b5fd.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=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=1 diff --git a/assets/models/beacon_1.png b/assets/models/beacon_1.png new file mode 100644 index 0000000..1ad11a1 Binary files /dev/null and b/assets/models/beacon_1.png differ diff --git a/assets/models/beacon_1.png.import b/assets/models/beacon_1.png.import new file mode 100644 index 0000000..f29c630 --- /dev/null +++ b/assets/models/beacon_1.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dra488vdpxom8" +path="res://.godot/imported/beacon_1.png-73ed087984ac3fc3aaba6c09e24ef9c6.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "c0403214754e84ef28778bd1b0de68ae" +} + +[deps] + +source_file="res://assets/models/beacon_1.png" +dest_files=["res://.godot/imported/beacon_1.png-73ed087984ac3fc3aaba6c09e24ef9c6.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=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=1 diff --git a/assets/models/bucket.glb b/assets/models/bucket.glb new file mode 100644 index 0000000..7ea4746 Binary files /dev/null and b/assets/models/bucket.glb differ diff --git a/assets/models/bucket.glb.import b/assets/models/bucket.glb.import new file mode 100644 index 0000000..a043790 --- /dev/null +++ b/assets/models/bucket.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b0qk358lfuwo5" +path="res://.godot/imported/bucket.glb-e8ab7325004f9ad1443b5b4478e210c1.scn" + +[deps] + +source_file="res://assets/models/bucket.glb" +dest_files=["res://.godot/imported/bucket.glb-e8ab7325004f9ad1443b5b4478e210c1.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/bucket_0.png b/assets/models/bucket_0.png new file mode 100644 index 0000000..d8660d7 Binary files /dev/null and b/assets/models/bucket_0.png differ diff --git a/assets/models/bucket_0.png.import b/assets/models/bucket_0.png.import new file mode 100644 index 0000000..517c1a3 --- /dev/null +++ b/assets/models/bucket_0.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bue7suud3wre6" +path="res://.godot/imported/bucket_0.png-71141ae25d0a814cdba97dd19050ef6e.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "078934beeccb3b7aa8ae0b69063550c0" +} + +[deps] + +source_file="res://assets/models/bucket_0.png" +dest_files=["res://.godot/imported/bucket_0.png-71141ae25d0a814cdba97dd19050ef6e.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=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=1 diff --git a/assets/models/bucket_1.png b/assets/models/bucket_1.png new file mode 100644 index 0000000..bab2b2c Binary files /dev/null and b/assets/models/bucket_1.png differ diff --git a/assets/models/bucket_1.png.import b/assets/models/bucket_1.png.import new file mode 100644 index 0000000..53e6360 --- /dev/null +++ b/assets/models/bucket_1.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4goxcghhac82" +path="res://.godot/imported/bucket_1.png-d241a160d46e4b5767d6b546f8846687.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "ff5efd4095b816714dc7f4776971640a" +} + +[deps] + +source_file="res://assets/models/bucket_1.png" +dest_files=["res://.godot/imported/bucket_1.png-d241a160d46e4b5767d6b546f8846687.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=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=1 diff --git a/assets/models/console.glb b/assets/models/console.glb new file mode 100644 index 0000000..e5da635 Binary files /dev/null and b/assets/models/console.glb differ diff --git a/assets/models/console.glb.import b/assets/models/console.glb.import new file mode 100644 index 0000000..045b65a --- /dev/null +++ b/assets/models/console.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bt1vmagu0chn0" +path="res://.godot/imported/console.glb-32a67e0988ed6b687d9ad73e565b165a.scn" + +[deps] + +source_file="res://assets/models/console.glb" +dest_files=["res://.godot/imported/console.glb-32a67e0988ed6b687d9ad73e565b165a.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/console_0.png b/assets/models/console_0.png new file mode 100644 index 0000000..9cb1212 Binary files /dev/null and b/assets/models/console_0.png differ diff --git a/assets/models/console_0.png.import b/assets/models/console_0.png.import new file mode 100644 index 0000000..202989b --- /dev/null +++ b/assets/models/console_0.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cit6huc8vob6d" +path="res://.godot/imported/console_0.png-bedd2d2a47e675a259632fa690d16b26.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "7ab037a42621a1c7736b2d0199c792a7" +} + +[deps] + +source_file="res://assets/models/console_0.png" +dest_files=["res://.godot/imported/console_0.png-bedd2d2a47e675a259632fa690d16b26.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=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=1 diff --git a/assets/models/console_1.png b/assets/models/console_1.png new file mode 100644 index 0000000..62c5ee7 Binary files /dev/null and b/assets/models/console_1.png differ diff --git a/assets/models/console_1.png.import b/assets/models/console_1.png.import new file mode 100644 index 0000000..ea443ac --- /dev/null +++ b/assets/models/console_1.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vjxdejsjc8yk" +path="res://.godot/imported/console_1.png-214bb5bded1bbfac0e8a1e77cf12b018.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "32b866c21b764bf4db75811911839598" +} + +[deps] + +source_file="res://assets/models/console_1.png" +dest_files=["res://.godot/imported/console_1.png-214bb5bded1bbfac0e8a1e77cf12b018.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=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=1 diff --git a/assets/models/helm.glb b/assets/models/helm.glb new file mode 100644 index 0000000..d684bcf Binary files /dev/null and b/assets/models/helm.glb differ diff --git a/assets/models/helm.glb.import b/assets/models/helm.glb.import new file mode 100644 index 0000000..e4c5cd5 --- /dev/null +++ b/assets/models/helm.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://kf2nb5grxa00" +path="res://.godot/imported/helm.glb-d8af94d005461fb60c69c9d06dcdda93.scn" + +[deps] + +source_file="res://assets/models/helm.glb" +dest_files=["res://.godot/imported/helm.glb-d8af94d005461fb60c69c9d06dcdda93.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/helm_0.png b/assets/models/helm_0.png new file mode 100644 index 0000000..368d154 Binary files /dev/null and b/assets/models/helm_0.png differ diff --git a/assets/models/helm_0.png.import b/assets/models/helm_0.png.import new file mode 100644 index 0000000..64c1eb0 --- /dev/null +++ b/assets/models/helm_0.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmxbyg878fmkt" +path="res://.godot/imported/helm_0.png-3c378c3cdd0411bb9d86d4acf6b015a1.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "8a387cdd119acb84f8eccef6f2015ec8" +} + +[deps] + +source_file="res://assets/models/helm_0.png" +dest_files=["res://.godot/imported/helm_0.png-3c378c3cdd0411bb9d86d4acf6b015a1.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=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=1 diff --git a/assets/models/helm_1.png b/assets/models/helm_1.png new file mode 100644 index 0000000..6bf85c4 Binary files /dev/null and b/assets/models/helm_1.png differ diff --git a/assets/models/helm_1.png.import b/assets/models/helm_1.png.import new file mode 100644 index 0000000..e246880 --- /dev/null +++ b/assets/models/helm_1.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b70aqw174w0xr" +path="res://.godot/imported/helm_1.png-627b65b67315758695a995026603b66c.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "19d388e59cc2f30128bf86c603ffcdd5" +} + +[deps] + +source_file="res://assets/models/helm_1.png" +dest_files=["res://.godot/imported/helm_1.png-627b65b67315758695a995026603b66c.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=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=1 diff --git a/assets/models/tank.glb b/assets/models/tank.glb new file mode 100644 index 0000000..dfab0fa Binary files /dev/null and b/assets/models/tank.glb differ diff --git a/assets/models/tank.glb.import b/assets/models/tank.glb.import new file mode 100644 index 0000000..0dbf7f6 --- /dev/null +++ b/assets/models/tank.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c14ydwer1shn0" +path="res://.godot/imported/tank.glb-76f82d6558c0a3a4a1c3aff1a8d57a88.scn" + +[deps] + +source_file="res://assets/models/tank.glb" +dest_files=["res://.godot/imported/tank.glb-76f82d6558c0a3a4a1c3aff1a8d57a88.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/tank_0.png b/assets/models/tank_0.png new file mode 100644 index 0000000..59db153 Binary files /dev/null and b/assets/models/tank_0.png differ diff --git a/assets/models/tank_0.png.import b/assets/models/tank_0.png.import new file mode 100644 index 0000000..5fa62e4 --- /dev/null +++ b/assets/models/tank_0.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dad4sxe530ewq" +path="res://.godot/imported/tank_0.png-0bfd23945c435e913f1b4de9f2941e60.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "1b9f110f69efd0db4d3e86a651542ff9" +} + +[deps] + +source_file="res://assets/models/tank_0.png" +dest_files=["res://.godot/imported/tank_0.png-0bfd23945c435e913f1b4de9f2941e60.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=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=1 diff --git a/assets/models/tank_1.png b/assets/models/tank_1.png new file mode 100644 index 0000000..419cfa2 Binary files /dev/null and b/assets/models/tank_1.png differ diff --git a/assets/models/tank_1.png.import b/assets/models/tank_1.png.import new file mode 100644 index 0000000..a7a53d2 --- /dev/null +++ b/assets/models/tank_1.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0df8omsenlvx" +path="res://.godot/imported/tank_1.png-cece4169e5d1203008084b4a9a2bb17f.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "67f9f9e3f0b9eec29e7f975d81a9bfe7" +} + +[deps] + +source_file="res://assets/models/tank_1.png" +dest_files=["res://.godot/imported/tank_1.png-cece4169e5d1203008084b4a9a2bb17f.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=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=1 diff --git a/assets/models/valve.glb b/assets/models/valve.glb new file mode 100644 index 0000000..ba3ce63 Binary files /dev/null and b/assets/models/valve.glb differ diff --git a/assets/models/valve.glb.import b/assets/models/valve.glb.import new file mode 100644 index 0000000..a9874f3 --- /dev/null +++ b/assets/models/valve.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dlaqo3pxhylno" +path="res://.godot/imported/valve.glb-ff1c2408c02630f6d2af244d320d3eb1.scn" + +[deps] + +source_file="res://assets/models/valve.glb" +dest_files=["res://.godot/imported/valve.glb-ff1c2408c02630f6d2af244d320d3eb1.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/valve_0.png b/assets/models/valve_0.png new file mode 100644 index 0000000..ec7a517 Binary files /dev/null and b/assets/models/valve_0.png differ diff --git a/assets/models/valve_0.png.import b/assets/models/valve_0.png.import new file mode 100644 index 0000000..ff80a2f --- /dev/null +++ b/assets/models/valve_0.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7gop4bfdnib7" +path="res://.godot/imported/valve_0.png-b4c1ad9c1ba5137b920b774fb8d47f3e.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "2e9810e69c7d5d9de06a9110ab3d462e" +} + +[deps] + +source_file="res://assets/models/valve_0.png" +dest_files=["res://.godot/imported/valve_0.png-b4c1ad9c1ba5137b920b774fb8d47f3e.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=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=1 diff --git a/assets/models/valve_1.png b/assets/models/valve_1.png new file mode 100644 index 0000000..b595685 Binary files /dev/null and b/assets/models/valve_1.png differ diff --git a/assets/models/valve_1.png.import b/assets/models/valve_1.png.import new file mode 100644 index 0000000..4052e68 --- /dev/null +++ b/assets/models/valve_1.png.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbn05qvmclmf1" +path="res://.godot/imported/valve_1.png-4b77157fa13af74164771b3250639615.ctex" +metadata={ +"vram_texture": false +} +generator_parameters={ +"md5": "f2111d5ac282114066fe954dc57e3032" +} + +[deps] + +source_file="res://assets/models/valve_1.png" +dest_files=["res://.godot/imported/valve_1.png-4b77157fa13af74164771b3250639615.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=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=1 diff --git a/src/main.gd b/src/main.gd index 2c18603..3872cc5 100644 --- a/src/main.gd +++ b/src/main.gd @@ -268,6 +268,62 @@ func make_door(z: float) -> Node3D: return d +var _models := {} + + +func prop_scene(file: String) -> PackedScene: + if _models.has(file): + return _models[file] + var path := "res://assets/models/" + file + _models[file] = load(path) if FileAccess.file_exists(path) else null + return _models[file] + + +func _clamp_metals(p: Node3D) -> void: + for mi in p.find_children("*", "MeshInstance3D", true, false): + if mi.mesh: + for si in mi.mesh.get_surface_count(): + var mt = mi.mesh.surface_get_material(si) + if mt is BaseMaterial3D: + mt.metallic = minf(mt.metallic, 0.2) + + +func place_prop(file: String, pos: Vector3, target_h: float) -> bool: + var ps := prop_scene(file) + if not ps: + return false + _fit_prop(ps.instantiate(), pos, target_h) + return true + + +func attach_model(node: Node3D, file: String, target_h: float) -> bool: + ## swap an interactable's primitive mesh for a generated GLB (must be in tree) + var ps := prop_scene(file) + if not ps: + return false + for c in node.get_children(): + if c is MeshInstance3D: + c.visible = false + var p: Node3D = ps.instantiate() + node.add_child(p) + p.position = Vector3.ZERO + _clamp_metals(p) + var inv := node.global_transform.affine_inverse() + var aabb := AABB() + var first := true + for mi in p.find_children("*", "MeshInstance3D", true, false): + var b: AABB = (inv * mi.global_transform) * mi.get_aabb() + aabb = b if first else aabb.merge(b) + first = false + if first: + return true + var sc := target_h / maxf(aabb.size.y, 0.01) + p.scale = Vector3.ONE * sc + var c2 := aabb.get_center() + p.position = Vector3(-c2.x * sc, -aabb.position.y * sc, -c2.z * sc) + return true + + var _post_scene: PackedScene = null var _post_checked := false @@ -283,11 +339,7 @@ func _fit_prop(p: Node3D, pos: Vector3, target_h: float) -> void: var b: AABB = mi.global_transform * mi.get_aabb() aabb = b if first else aabb.merge(b) first = false - if mi.mesh: - for si in mi.mesh.get_surface_count(): - var mt = mi.mesh.surface_get_material(si) - if mt is BaseMaterial3D: - mt.metallic = minf(mt.metallic, 0.2) + _clamp_metals(p) if first: return var sc := target_h / maxf(aabb.size.y, 0.01) @@ -507,7 +559,8 @@ func _build_objects() -> void: Vector3(7.2, 2.0, 25.8), PI / 2.0, 24, Color(1.0, 0.75, 0.3)) # --- segment D: valve, bucket, tank --- - box(Vector3(-3.8, 1.4, 28), Vector3(0.5, 0.5, 0.5), Color(0.3, 0.5, 0.7)).material = glow(Color(0.25, 0.5, 0.9), 0.5) + if not place_prop("valve.glb", Vector3(-3.5, 0, 28), 1.2): + box(Vector3(-3.8, 1.4, 28), Vector3(0.5, 0.5, 0.5), Color(0.3, 0.5, 0.7)).material = glow(Color(0.25, 0.5, 0.9), 0.5) box(Vector3(-3.4, 0.9, 28), Vector3(0.12, 1.6, 0.12), Color(0.3, 0.5, 0.9)).material = glow(Color(0.3, 0.55, 1.0), 0.9) # stream var valve := ElementField.make("water", 1.3, Color(0.2, 0.4, 1.0, 0.10)) valve.position = Vector3(-3.3, 0.8, 28) @@ -517,11 +570,13 @@ func _build_objects() -> void: var bucket := I.Bucket.new() bucket.position = Vector3(-2.8, 0, 29) add_child(bucket) + attach_model(bucket, "bucket.glb", 0.45) var tank := I.Tank.new() tank.door = door4 tank.position = Vector3(3.2, 0, 32.5) add_child(tank) + attach_model(tank, "tank.glb", 1.35) tank.label = sign3d("GRAV TANK 0/2", Vector3(3.2, 1.9, 32.2)) sign3d("SLUICE DOOR OPENS AT TANK 2/2. BUCKET LEAKS. HUSTLE.", Vector3(0, 2.7, 33.2), PI, 24) diff --git a/src/zones.gd b/src/zones.gd index 9e25457..b89ad12 100644 --- a/src/zones.gd +++ b/src/zones.gd @@ -187,6 +187,7 @@ static func hydro(m) -> void: var bucket2 := I.Bucket.new() bucket2.position = Vector3(22, 0, 50) m.add_child(bucket2) + m.attach_model(bucket2, "bucket.glb", 0.45) m.box(Vector3(26, 2, 48.9), Vector3(0.3, 4, 5.8), Color.WHITE, null, false, "hydro_wall") m.box(Vector3(26, 2, 57.1), Vector3(0.3, 4, 5.8), Color.WHITE, null, false, "hydro_wall") m.box(Vector3(26, 3.5, 53), Vector3(0.3, 1, 2.4), Color.WHITE, null, false, "hydro_wall") @@ -211,6 +212,7 @@ static func hydro(m) -> void: basin.position = Vector3(30, 0, 53) basin.on_full = func(): m.system_online("hydro") m.add_child(basin) + m.attach_model(basin, "tank.glb", 1.35) basin.label = m.sign3d("MAINS PRESSURIZER 0/2", Vector3(29.4, 2.0, 52.4), -PI / 2.0, 26) m.sign3d("WATER MAINS PRESSURIZER — FEED IT AND THE SHIP DRINKS AGAIN.", Vector3(29, 2.9, 53.8), -PI / 2.0, 22, Color(0.5, 1.0, 0.5)) @@ -242,6 +244,7 @@ static func comms(m) -> void: "radio", 4.5, Color(0.8, 0.4, 1.0, 0.08), "broadcasting") beacon.position = Vector3(-7, 0.8, 64) m.add_child(beacon) + m.attach_model(beacon, "beacon.glb", 0.5) m.box(Vector3(-7, 0.4, 64), Vector3(0.8, 0.8, 0.8), Color.WHITE, null, false, "comms_greeble") m.sign3d("PORTABLE BEACON — CHARGE TO BROADCAST.\nRADIO DOES NOT CARE ABOUT WALLS.", Vector3(-7, 2.2, 64.5), PI, 24, Color(0.8, 0.5, 1.0)) @@ -289,7 +292,8 @@ static func bridge(m) -> void: m.add_child(o) # captain's console + core socket - m.box(Vector3(4.5, 0.6, 75.5), Vector3(3.4, 1.2, 1.0), Color(0.35, 0.25, 0.18)) + if not m.place_prop("console.glb", Vector3(4.5, 0, 75.7), 1.15): + m.box(Vector3(4.5, 0.6, 75.5), Vector3(3.4, 1.2, 1.0), Color(0.35, 0.25, 0.18)) var console := I.Trigger.new() console.prompt_text = "INSERT CORE PROCESSOR (ORBIT CORRECTION)" console.position = Vector3(4.5, 1.2, 75.5) @@ -311,18 +315,19 @@ static func bridge(m) -> void: m.sign3d("DIAGNOSTIC KIOSK", Vector3(7.5, 1.9, 67.5), PI, 22) # the helm — visible from day one, yours only at the end - m.box(Vector3(2.2, 0.5, 77.0), Vector3(0.5, 1.0, 0.5), Color(0.3, 0.22, 0.16)) - var wheel := MeshInstance3D.new() - var wm := TorusMesh.new() - wm.inner_radius = 0.28 - wm.outer_radius = 0.42 - wheel.mesh = wm - wheel.rotation.x = PI / 2.0 - wheel.position = Vector3(2.2, 1.25, 77.0) - var wmat := StandardMaterial3D.new() - wmat.albedo_color = Color(0.55, 0.35, 0.15) - wheel.material_override = wmat - m.add_child(wheel) + if not m.place_prop("helm.glb", Vector3(2.2, 0, 77.0), 1.5): + m.box(Vector3(2.2, 0.5, 77.0), Vector3(0.5, 1.0, 0.5), Color(0.3, 0.22, 0.16)) + var wheel := MeshInstance3D.new() + var wm := TorusMesh.new() + wm.inner_radius = 0.28 + wm.outer_radius = 0.42 + wheel.mesh = wm + wheel.rotation.x = PI / 2.0 + wheel.position = Vector3(2.2, 1.25, 77.0) + var wmat := StandardMaterial3D.new() + wmat.albedo_color = Color(0.55, 0.35, 0.15) + wheel.material_override = wmat + m.add_child(wheel) var helm := I.Trigger.new() helm.prompt_text = "TAKE THE HELM" helm.position = Vector3(2.2, 1.2, 77.0)