commit ad86d7e7a1f1aecccd201b8b5448926faf5272ae Author: Nikolai Fesenko <152747946+NikolaiFesenko-code@users.noreply.github.com> Date: Thu Aug 28 19:16:51 2025 +0200 first commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/Blends/Bullet/bullet.bin b/Blends/Bullet/bullet.bin new file mode 100644 index 0000000..b8b9206 Binary files /dev/null and b/Blends/Bullet/bullet.bin differ diff --git a/Blends/Bullet/bullet.blend b/Blends/Bullet/bullet.blend new file mode 100644 index 0000000..4f68d24 Binary files /dev/null and b/Blends/Bullet/bullet.blend differ diff --git a/Blends/Bullet/bullet.blend.import b/Blends/Bullet/bullet.blend.import new file mode 100644 index 0000000..cc4d2a6 --- /dev/null +++ b/Blends/Bullet/bullet.blend.import @@ -0,0 +1,53 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b0liw8legvd75" +path="res://.godot/imported/bullet.blend-aecd7a557a0af27523b464e0f47011d9.scn" + +[deps] + +source_file="res://Blends/Bullet/bullet.blend" +dest_files=["res://.godot/imported/bullet.blend-aecd7a557a0af27523b464e0f47011d9.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +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="" +_subresources={} +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 diff --git a/Blends/Bullet/bullet.gltf b/Blends/Bullet/bullet.gltf new file mode 100644 index 0000000..795525c --- /dev/null +++ b/Blends/Bullet/bullet.gltf @@ -0,0 +1,109 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v4.5.47", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"Cylinder", + "scale":[ + 0.2840249538421631, + 0.2840249538421631, + 0.2840249538421631 + ] + } + ], + "meshes":[ + { + "name":"Cylinder", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + }, + "indices":3 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":1344, + "max":[ + 1, + 1.727235198020935, + 1 + ], + "min":[ + -1, + -1.1535364389419556, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":1344, + "type":"VEC3" + }, + { + "bufferView":2, + "componentType":5126, + "count":1344, + "type":"VEC2" + }, + { + "bufferView":3, + "componentType":5123, + "count":2868, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":16128, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":16128, + "byteOffset":16128, + "target":34962 + }, + { + "buffer":0, + "byteLength":10752, + "byteOffset":32256, + "target":34962 + }, + { + "buffer":0, + "byteLength":5736, + "byteOffset":43008, + "target":34963 + } + ], + "buffers":[ + { + "byteLength":48744, + "uri":"bullet.bin" + } + ] +} diff --git a/Blends/Bullet/bullet.gltf.import b/Blends/Bullet/bullet.gltf.import new file mode 100644 index 0000000..5d21eea --- /dev/null +++ b/Blends/Bullet/bullet.gltf.import @@ -0,0 +1,37 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bm80w1xsgge1i" +path="res://.godot/imported/bullet.gltf-6d3c98d4dc820f9f636e1d92658faa28.scn" + +[deps] + +source_file="res://Blends/Bullet/bullet.gltf" +dest_files=["res://.godot/imported/bullet.gltf-6d3c98d4dc820f9f636e1d92658faa28.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +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="" +_subresources={} +gltf/naming_version=1 +gltf/embedded_image_handling=1 diff --git a/Blends/Person/person.blend b/Blends/Person/person.blend new file mode 100644 index 0000000..0bf573d Binary files /dev/null and b/Blends/Person/person.blend differ diff --git a/Blends/Person/person.blend.import b/Blends/Person/person.blend.import new file mode 100644 index 0000000..51b9a09 --- /dev/null +++ b/Blends/Person/person.blend.import @@ -0,0 +1,53 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://d1482e45gv3uh" +path="res://.godot/imported/person.blend-3ffbac08256d1337c1761d28bf1a1374.scn" + +[deps] + +source_file="res://Blends/Person/person.blend" +dest_files=["res://.godot/imported/person.blend-3ffbac08256d1337c1761d28bf1a1374.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +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="" +_subresources={} +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 diff --git a/Blends/Person/person.blend1 b/Blends/Person/person.blend1 new file mode 100644 index 0000000..4eceb0d Binary files /dev/null and b/Blends/Person/person.blend1 differ diff --git a/Blends/Person/person2.bin b/Blends/Person/person2.bin new file mode 100644 index 0000000..dd87bd9 Binary files /dev/null and b/Blends/Person/person2.bin differ diff --git a/Blends/Person/person2.blend b/Blends/Person/person2.blend new file mode 100644 index 0000000..5f8706b Binary files /dev/null and b/Blends/Person/person2.blend differ diff --git a/Blends/Person/person2.blend.import b/Blends/Person/person2.blend.import new file mode 100644 index 0000000..cc9984b --- /dev/null +++ b/Blends/Person/person2.blend.import @@ -0,0 +1,53 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b55mu0jpaa37r" +path="res://.godot/imported/person2.blend-b629d0362adc3a4d1b2f7a7c364ef7f2.scn" + +[deps] + +source_file="res://Blends/Person/person2.blend" +dest_files=["res://.godot/imported/person2.blend-b629d0362adc3a4d1b2f7a7c364ef7f2.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +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="" +_subresources={} +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 diff --git a/Blends/Person/person2.blend1 b/Blends/Person/person2.blend1 new file mode 100644 index 0000000..2d680c4 Binary files /dev/null and b/Blends/Person/person2.blend1 differ diff --git a/Blends/Person/person2.gltf b/Blends/Person/person2.gltf new file mode 100644 index 0000000..ebdf5bf --- /dev/null +++ b/Blends/Person/person2.gltf @@ -0,0 +1,527 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v4.5.47", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0, + 1, + 2, + 3, + 4, + 5 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"Cylinder", + "scale":[ + 0.49489328265190125, + 0.49489328265190125, + 0.49489328265190125 + ] + }, + { + "mesh":1, + "name":"Sphere", + "scale":[ + 0.34253957867622375, + 0.34253957867622375, + 0.34253957867622375 + ], + "translation":[ + 0, + 0.9137375354766846, + 0 + ] + }, + { + "mesh":2, + "name":"Cylinder.001", + "rotation":[ + 0.7071068286895752, + 0, + 0, + 0.7071068286895752 + ], + "scale":[ + 0.09387290477752686, + 0.09387290477752686, + 0.09387290477752686 + ], + "translation":[ + 0, + 0.3499005436897278, + -0.5304383039474487 + ] + }, + { + "mesh":3, + "name":"Cylinder.002", + "rotation":[ + 0.7071068286895752, + 0, + 0, + 0.7071068286895752 + ], + "scale":[ + 0.05276608467102051, + 0.05276608467102051, + 0.05276608467102051 + ], + "translation":[ + 0, + 0.3499005436897278, + -1.1748628616333008 + ] + }, + { + "mesh":4, + "name":"Cylinder.003", + "rotation":[ + 0, + -0.7071068286895752, + 0.7071068286895752, + 1.1520233300643667e-07 + ], + "scale":[ + 0.09387290477752686, + 0.09387290477752686, + 0.09387290477752686 + ], + "translation":[ + 0, + 0.3499005436897278, + 0.4700198769569397 + ] + }, + { + "mesh":5, + "name":"Cylinder.004", + "rotation":[ + 0, + -0.7071068286895752, + 0.7071068286895752, + 1.1520233300643667e-07 + ], + "scale":[ + 0.05276608467102051, + 0.05276608467102051, + 0.05276608467102051 + ], + "translation":[ + 0, + 0.3499005436897278, + 1.1144444942474365 + ] + } + ], + "meshes":[ + { + "name":"Cylinder", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + }, + "indices":3 + } + ] + }, + { + "name":"Sphere", + "primitives":[ + { + "attributes":{ + "POSITION":4, + "NORMAL":5, + "TEXCOORD_0":6 + }, + "indices":7 + } + ] + }, + { + "name":"Cylinder.001", + "primitives":[ + { + "attributes":{ + "POSITION":8, + "NORMAL":9, + "TEXCOORD_0":10 + }, + "indices":11 + } + ] + }, + { + "name":"Cylinder.002", + "primitives":[ + { + "attributes":{ + "POSITION":12, + "NORMAL":13, + "TEXCOORD_0":14 + }, + "indices":11 + } + ] + }, + { + "name":"Cylinder.003", + "primitives":[ + { + "attributes":{ + "POSITION":15, + "NORMAL":16, + "TEXCOORD_0":17 + }, + "indices":11 + } + ] + }, + { + "name":"Cylinder.004", + "primitives":[ + { + "attributes":{ + "POSITION":18, + "NORMAL":19, + "TEXCOORD_0":20 + }, + "indices":11 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":386, + "max":[ + 1, + 1.3712552785873413, + 1 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":386, + "type":"VEC3" + }, + { + "bufferView":2, + "componentType":5126, + "count":386, + "type":"VEC2" + }, + { + "bufferView":3, + "componentType":5123, + "count":756, + "type":"SCALAR" + }, + { + "bufferView":4, + "componentType":5126, + "count":1984, + "max":[ + 0.9999997019767761, + 1, + 0.9999993443489075 + ], + "min":[ + -0.9999990463256836, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":5, + "componentType":5126, + "count":1984, + "type":"VEC3" + }, + { + "bufferView":6, + "componentType":5126, + "count":1984, + "type":"VEC2" + }, + { + "bufferView":7, + "componentType":5123, + "count":2880, + "type":"SCALAR" + }, + { + "bufferView":8, + "componentType":5126, + "count":192, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -6.242982387542725, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":9, + "componentType":5126, + "count":192, + "type":"VEC3" + }, + { + "bufferView":10, + "componentType":5126, + "count":192, + "type":"VEC2" + }, + { + "bufferView":11, + "componentType":5123, + "count":372, + "type":"SCALAR" + }, + { + "bufferView":12, + "componentType":5126, + "count":192, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -6.242982387542725, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":13, + "componentType":5126, + "count":192, + "type":"VEC3" + }, + { + "bufferView":14, + "componentType":5126, + "count":192, + "type":"VEC2" + }, + { + "bufferView":15, + "componentType":5126, + "count":192, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -6.242982387542725, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":16, + "componentType":5126, + "count":192, + "type":"VEC3" + }, + { + "bufferView":17, + "componentType":5126, + "count":192, + "type":"VEC2" + }, + { + "bufferView":18, + "componentType":5126, + "count":192, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -6.242982387542725, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":19, + "componentType":5126, + "count":192, + "type":"VEC3" + }, + { + "bufferView":20, + "componentType":5126, + "count":192, + "type":"VEC2" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":4632, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":4632, + "byteOffset":4632, + "target":34962 + }, + { + "buffer":0, + "byteLength":3088, + "byteOffset":9264, + "target":34962 + }, + { + "buffer":0, + "byteLength":1512, + "byteOffset":12352, + "target":34963 + }, + { + "buffer":0, + "byteLength":23808, + "byteOffset":13864, + "target":34962 + }, + { + "buffer":0, + "byteLength":23808, + "byteOffset":37672, + "target":34962 + }, + { + "buffer":0, + "byteLength":15872, + "byteOffset":61480, + "target":34962 + }, + { + "buffer":0, + "byteLength":5760, + "byteOffset":77352, + "target":34963 + }, + { + "buffer":0, + "byteLength":2304, + "byteOffset":83112, + "target":34962 + }, + { + "buffer":0, + "byteLength":2304, + "byteOffset":85416, + "target":34962 + }, + { + "buffer":0, + "byteLength":1536, + "byteOffset":87720, + "target":34962 + }, + { + "buffer":0, + "byteLength":744, + "byteOffset":89256, + "target":34963 + }, + { + "buffer":0, + "byteLength":2304, + "byteOffset":90000, + "target":34962 + }, + { + "buffer":0, + "byteLength":2304, + "byteOffset":92304, + "target":34962 + }, + { + "buffer":0, + "byteLength":1536, + "byteOffset":94608, + "target":34962 + }, + { + "buffer":0, + "byteLength":2304, + "byteOffset":96144, + "target":34962 + }, + { + "buffer":0, + "byteLength":2304, + "byteOffset":98448, + "target":34962 + }, + { + "buffer":0, + "byteLength":1536, + "byteOffset":100752, + "target":34962 + }, + { + "buffer":0, + "byteLength":2304, + "byteOffset":102288, + "target":34962 + }, + { + "buffer":0, + "byteLength":2304, + "byteOffset":104592, + "target":34962 + }, + { + "buffer":0, + "byteLength":1536, + "byteOffset":106896, + "target":34962 + } + ], + "buffers":[ + { + "byteLength":108432, + "uri":"person2.bin" + } + ] +} diff --git a/Blends/Person/person2.gltf.import b/Blends/Person/person2.gltf.import new file mode 100644 index 0000000..c0be894 --- /dev/null +++ b/Blends/Person/person2.gltf.import @@ -0,0 +1,37 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c7t8himcaqljg" +path="res://.godot/imported/person2.gltf-ed797fe8ca34d616aca6969a266cc89c.scn" + +[deps] + +source_file="res://Blends/Person/person2.gltf" +dest_files=["res://.godot/imported/person2.gltf-ed797fe8ca34d616aca6969a266cc89c.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +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="" +_subresources={} +gltf/naming_version=1 +gltf/embedded_image_handling=1 diff --git a/Blends/Revolver/revolver.bin b/Blends/Revolver/revolver.bin new file mode 100644 index 0000000..c6ab212 Binary files /dev/null and b/Blends/Revolver/revolver.bin differ diff --git a/Blends/Revolver/revolver.blend b/Blends/Revolver/revolver.blend new file mode 100644 index 0000000..e8202dc Binary files /dev/null and b/Blends/Revolver/revolver.blend differ diff --git a/Blends/Revolver/revolver.blend.import b/Blends/Revolver/revolver.blend.import new file mode 100644 index 0000000..eea9379 --- /dev/null +++ b/Blends/Revolver/revolver.blend.import @@ -0,0 +1,53 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dbef5u3d8gjh1" +path="res://.godot/imported/revolver.blend-9eca1178ea40680aabb7b629cb801a80.scn" + +[deps] + +source_file="res://Blends/Revolver/revolver.blend" +dest_files=["res://.godot/imported/revolver.blend-9eca1178ea40680aabb7b629cb801a80.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +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="" +_subresources={} +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 diff --git a/Blends/Revolver/revolver.gltf b/Blends/Revolver/revolver.gltf new file mode 100644 index 0000000..74b9942 --- /dev/null +++ b/Blends/Revolver/revolver.gltf @@ -0,0 +1,510 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v4.5.47", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0, + 1, + 2, + 3, + 4 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"Cylinder", + "rotation":[ + 0.7071068286895752, + 0, + 0, + 0.7071067690849304 + ], + "scale":[ + 0.23238803446292877, + 0.23238803446292877, + 0.23238803446292877 + ], + "translation":[ + 0, + 0.05112162232398987, + 0.37481021881103516 + ] + }, + { + "mesh":1, + "name":"Cylinder.002", + "rotation":[ + 0.612372636795044, + 0.3535531163215637, + 0.3535531163215637, + 0.612372636795044 + ], + "scale":[ + 0.7773303985595703, + 0.7773302793502808, + 0.7773303985595703 + ], + "translation":[ + 0, + 0.5426994562149048, + 3.978928565979004 + ] + }, + { + "mesh":2, + "name":"Cube", + "scale":[ + 0.9418143630027771, + 1.0147711038589478, + 1.0147711038589478 + ], + "translation":[ + 0, + 0.6085922718048096, + 5.807253360748291 + ] + }, + { + "mesh":3, + "name":"Cube.001", + "scale":[ + 0.2118355631828308, + 0.2118355631828308, + 0.12430712580680847 + ], + "translation":[ + 0, + 1.539679765701294, + 5.944412708282471 + ] + }, + { + "mesh":4, + "name":"Cube.002", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 1, + 0.07154088467359543, + 0.5644685626029968 + ], + "translation":[ + 0, + -0.3052576780319214, + 3.9369218349456787 + ] + } + ], + "materials":[ + { + "doubleSided":true, + "name":"Material.001", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 0.15515927970409393, + 0.15515927970409393, + 0.15515927970409393, + 1 + ], + "roughnessFactor":0.2539682388305664 + } + }, + { + "doubleSided":true, + "name":"Material.004", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 0.32002636790275574, + 0.17223814129829407, + 0.02414736896753311, + 1 + ], + "metallicFactor":0, + "roughnessFactor":0 + } + } + ], + "meshes":[ + { + "name":"Cylinder", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + }, + "indices":3, + "material":0 + } + ] + }, + { + "name":"Cylinder.004", + "primitives":[ + { + "attributes":{ + "POSITION":4, + "NORMAL":5, + "TEXCOORD_0":6 + }, + "indices":7, + "material":0 + } + ] + }, + { + "name":"Cube.001", + "primitives":[ + { + "attributes":{ + "POSITION":8, + "NORMAL":9, + "TEXCOORD_0":10 + }, + "indices":11, + "material":1 + } + ] + }, + { + "name":"Cube.002", + "primitives":[ + { + "attributes":{ + "POSITION":12, + "NORMAL":13, + "TEXCOORD_0":14 + }, + "indices":15, + "material":0 + } + ] + }, + { + "name":"Cube.003", + "primitives":[ + { + "attributes":{ + "POSITION":16, + "NORMAL":17, + "TEXCOORD_0":18 + }, + "indices":19, + "material":0 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":488, + "max":[ + 1.0000009536743164, + 12.563094139099121, + 1.4950957298278809 + ], + "min":[ + -1, + -9.067973136901855, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":488, + "type":"VEC3" + }, + { + "bufferView":2, + "componentType":5126, + "count":488, + "type":"VEC2" + }, + { + "bufferView":3, + "componentType":5123, + "count":1116, + "type":"SCALAR" + }, + { + "bufferView":4, + "componentType":5126, + "count":1748, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":5, + "componentType":5126, + "count":1748, + "type":"VEC3" + }, + { + "bufferView":6, + "componentType":5126, + "count":1748, + "type":"VEC2" + }, + { + "bufferView":7, + "componentType":5123, + "count":3948, + "type":"SCALAR" + }, + { + "bufferView":8, + "componentType":5126, + "count":184, + "max":[ + 1, + 4.133121967315674, + 5.306743144989014 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":9, + "componentType":5126, + "count":184, + "type":"VEC3" + }, + { + "bufferView":10, + "componentType":5126, + "count":184, + "type":"VEC2" + }, + { + "bufferView":11, + "componentType":5123, + "count":996, + "type":"SCALAR" + }, + { + "bufferView":12, + "componentType":5126, + "count":72, + "max":[ + 1, + 4.332823276519775, + 6.877199172973633 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":13, + "componentType":5126, + "count":72, + "type":"VEC3" + }, + { + "bufferView":14, + "componentType":5126, + "count":72, + "type":"VEC2" + }, + { + "bufferView":15, + "componentType":5123, + "count":132, + "type":"SCALAR" + }, + { + "bufferView":16, + "componentType":5126, + "count":102, + "max":[ + 1.1593170166015625, + 24.79684829711914, + 1.5239633321762085 + ], + "min":[ + -1, + -1.012521743774414, + -1.7991608381271362 + ], + "type":"VEC3" + }, + { + "bufferView":17, + "componentType":5126, + "count":102, + "type":"VEC3" + }, + { + "bufferView":18, + "componentType":5126, + "count":102, + "type":"VEC2" + }, + { + "bufferView":19, + "componentType":5123, + "count":240, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":5856, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":5856, + "byteOffset":5856, + "target":34962 + }, + { + "buffer":0, + "byteLength":3904, + "byteOffset":11712, + "target":34962 + }, + { + "buffer":0, + "byteLength":2232, + "byteOffset":15616, + "target":34963 + }, + { + "buffer":0, + "byteLength":20976, + "byteOffset":17848, + "target":34962 + }, + { + "buffer":0, + "byteLength":20976, + "byteOffset":38824, + "target":34962 + }, + { + "buffer":0, + "byteLength":13984, + "byteOffset":59800, + "target":34962 + }, + { + "buffer":0, + "byteLength":7896, + "byteOffset":73784, + "target":34963 + }, + { + "buffer":0, + "byteLength":2208, + "byteOffset":81680, + "target":34962 + }, + { + "buffer":0, + "byteLength":2208, + "byteOffset":83888, + "target":34962 + }, + { + "buffer":0, + "byteLength":1472, + "byteOffset":86096, + "target":34962 + }, + { + "buffer":0, + "byteLength":1992, + "byteOffset":87568, + "target":34963 + }, + { + "buffer":0, + "byteLength":864, + "byteOffset":89560, + "target":34962 + }, + { + "buffer":0, + "byteLength":864, + "byteOffset":90424, + "target":34962 + }, + { + "buffer":0, + "byteLength":576, + "byteOffset":91288, + "target":34962 + }, + { + "buffer":0, + "byteLength":264, + "byteOffset":91864, + "target":34963 + }, + { + "buffer":0, + "byteLength":1224, + "byteOffset":92128, + "target":34962 + }, + { + "buffer":0, + "byteLength":1224, + "byteOffset":93352, + "target":34962 + }, + { + "buffer":0, + "byteLength":816, + "byteOffset":94576, + "target":34962 + }, + { + "buffer":0, + "byteLength":480, + "byteOffset":95392, + "target":34963 + } + ], + "buffers":[ + { + "byteLength":95872, + "uri":"revolver.bin" + } + ] +} diff --git a/Blends/Revolver/revolver.gltf.import b/Blends/Revolver/revolver.gltf.import new file mode 100644 index 0000000..7957fd1 --- /dev/null +++ b/Blends/Revolver/revolver.gltf.import @@ -0,0 +1,37 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://k5auld1jqu12" +path="res://.godot/imported/revolver.gltf-2f09f45f77c9a2ad80b7b4682649a98b.scn" + +[deps] + +source_file="res://Blends/Revolver/revolver.gltf" +dest_files=["res://.godot/imported/revolver.gltf-2f09f45f77c9a2ad80b7b4682649a98b.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +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="" +_subresources={} +gltf/naming_version=1 +gltf/embedded_image_handling=1 diff --git a/Blends/Room/room.bin b/Blends/Room/room.bin new file mode 100644 index 0000000..03705c9 Binary files /dev/null and b/Blends/Room/room.bin differ diff --git a/Blends/Room/room.blend b/Blends/Room/room.blend new file mode 100644 index 0000000..9e6eeb0 Binary files /dev/null and b/Blends/Room/room.blend differ diff --git a/Blends/Room/room.blend.import b/Blends/Room/room.blend.import new file mode 100644 index 0000000..46e8699 --- /dev/null +++ b/Blends/Room/room.blend.import @@ -0,0 +1,53 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://klut6wrayg4d" +path="res://.godot/imported/room.blend-9d0bd1a84da53bf6f4c51da3e4c6aaad.scn" + +[deps] + +source_file="res://Blends/Room/room.blend" +dest_files=["res://.godot/imported/room.blend-9d0bd1a84da53bf6f4c51da3e4c6aaad.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +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="" +_subresources={} +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 diff --git a/Blends/Room/room.blend1 b/Blends/Room/room.blend1 new file mode 100644 index 0000000..394713d Binary files /dev/null and b/Blends/Room/room.blend1 differ diff --git a/Blends/Room/room.gltf b/Blends/Room/room.gltf new file mode 100644 index 0000000..a1803a1 --- /dev/null +++ b/Blends/Room/room.gltf @@ -0,0 +1,218 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v4.5.47", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0, + 1 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"Cube", + "scale":[ + 9.804580688476562, + 0.1993253380060196, + 9.804580688476562 + ] + }, + { + "mesh":1, + "name":"Cube.001", + "rotation":[ + 0, + 1, + 0, + 0 + ], + "scale":[ + -1.6664633750915527, + -0.08638607710599899, + -1.6664633750915527 + ], + "translation":[ + 0, + 3.2104644775390625, + 0 + ] + } + ], + "materials":[ + { + "doubleSided":true, + "name":"Material", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 0.800000011920929, + 0.800000011920929, + 0.800000011920929, + 1 + ], + "metallicFactor":0, + "roughnessFactor":0.5 + } + } + ], + "meshes":[ + { + "name":"Cube", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + }, + "indices":3, + "material":0 + } + ] + }, + { + "name":"Cube.001", + "primitives":[ + { + "attributes":{ + "POSITION":4, + "NORMAL":5, + "TEXCOORD_0":6 + }, + "indices":7 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":80, + "max":[ + 1.0650200843811035, + 53.38763427734375, + 1.0650200843811035 + ], + "min":[ + -1.0650200843811035, + -1.065019965171814, + -1.0650200843811035 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":80, + "type":"VEC3" + }, + { + "bufferView":2, + "componentType":5126, + "count":80, + "type":"VEC2" + }, + { + "bufferView":3, + "componentType":5123, + "count":132, + "type":"SCALAR" + }, + { + "bufferView":4, + "componentType":5126, + "count":189, + "max":[ + 1, + 37.008480072021484, + 1 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":5, + "componentType":5126, + "count":189, + "type":"VEC3" + }, + { + "bufferView":6, + "componentType":5126, + "count":189, + "type":"VEC2" + }, + { + "bufferView":7, + "componentType":5123, + "count":594, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":960, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":960, + "byteOffset":960, + "target":34962 + }, + { + "buffer":0, + "byteLength":640, + "byteOffset":1920, + "target":34962 + }, + { + "buffer":0, + "byteLength":264, + "byteOffset":2560, + "target":34963 + }, + { + "buffer":0, + "byteLength":2268, + "byteOffset":2824, + "target":34962 + }, + { + "buffer":0, + "byteLength":2268, + "byteOffset":5092, + "target":34962 + }, + { + "buffer":0, + "byteLength":1512, + "byteOffset":7360, + "target":34962 + }, + { + "buffer":0, + "byteLength":1188, + "byteOffset":8872, + "target":34963 + } + ], + "buffers":[ + { + "byteLength":10060, + "uri":"room.bin" + } + ] +} diff --git a/Blends/Room/room.gltf.import b/Blends/Room/room.gltf.import new file mode 100644 index 0000000..604b27c --- /dev/null +++ b/Blends/Room/room.gltf.import @@ -0,0 +1,37 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cuqeg7u667dw6" +path="res://.godot/imported/room.gltf-585e1c5257412464ade5977ed3d5d49b.scn" + +[deps] + +source_file="res://Blends/Room/room.gltf" +dest_files=["res://.godot/imported/room.gltf-585e1c5257412464ade5977ed3d5d49b.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +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="" +_subresources={} +gltf/naming_version=1 +gltf/embedded_image_handling=1 diff --git a/Lights/env.tres b/Lights/env.tres new file mode 100644 index 0000000..25e176b --- /dev/null +++ b/Lights/env.tres @@ -0,0 +1,15 @@ +[gd_resource type="Environment" load_steps=3 format=3 uid="uid://ds2paom7jm3mf"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_bo1nx"] +sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1) +ground_horizon_color = Color(0.662243, 0.671743, 0.686743, 1) + +[sub_resource type="Sky" id="Sky_8gbba"] +sky_material = SubResource("ProceduralSkyMaterial_bo1nx") + +[resource] +background_mode = 2 +background_energy_multiplier = 0.1 +sky = SubResource("Sky_8gbba") +tonemap_mode = 2 +glow_enabled = true diff --git a/Scenes/bullet.tscn b/Scenes/bullet.tscn new file mode 100644 index 0000000..3340330 --- /dev/null +++ b/Scenes/bullet.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://j06vthscroca"] + +[ext_resource type="PackedScene" uid="uid://bm80w1xsgge1i" path="res://Blends/Bullet/bullet.gltf" id="1_xjght"] +[ext_resource type="Script" uid="uid://bckkey7836cjp" path="res://Scripts/bullet.gd" id="2_oduel"] + +[node name="bullet" instance=ExtResource("1_xjght")] +script = ExtResource("2_oduel") + +[node name="Cylinder" parent="." index="0"] +transform = Transform3D(0.02, 0, 0, 0, 0.02, 0, 0, 0, 0.02, 0, 0, 0) diff --git a/Scenes/main.tscn b/Scenes/main.tscn new file mode 100644 index 0000000..dd0955b --- /dev/null +++ b/Scenes/main.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=6 format=3 uid="uid://b4ot3p50x08po"] + +[ext_resource type="PackedScene" uid="uid://cuqeg7u667dw6" path="res://Blends/Room/room.gltf" id="1_jjgbg"] +[ext_resource type="PackedScene" uid="uid://c7t8himcaqljg" path="res://Blends/Person/person2.gltf" id="2_bo1nx"] +[ext_resource type="PackedScene" uid="uid://j06vthscroca" path="res://Scenes/bullet.tscn" id="3_8gbba"] +[ext_resource type="PackedScene" uid="uid://bge7npb7b1y6x" path="res://Scenes/revolver.tscn" id="4_jjvhh"] +[ext_resource type="Script" uid="uid://dcmqt4341kxem" path="res://Scripts/bullet_stack.gd" id="4_kry3j"] + +[node name="Node3D" type="Node3D"] + +[node name="room" parent="." instance=ExtResource("1_jjgbg")] + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.960866, 0.277013, 0, -0.277013, 0.960866, 0.416753, 5.34576, 3.16175) +h_offset = -0.33 +current = true + +[node name="SpotLight3D" type="SpotLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 6.13189, 0) +spot_range = 4.8595 +spot_angle = 42.0126 + +[node name="person2" parent="." instance=ExtResource("2_bo1nx")] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.0599972, 3.68584, -2.25251) + +[node name="revolver" parent="." instance=ExtResource("4_jjvhh")] +transform = Transform3D(-0.1, -8.74228e-09, 0, 8.74228e-09, -0.1, 0, 0, 0, 0.1, 0.354285, 4.2476, 0.425178) +is_player_revolver = true + +[node name="BulletStack" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.09463, 3.35364, -0.941887) +script = ExtResource("4_kry3j") + +[node name="bullet" parent="BulletStack" instance=ExtResource("3_8gbba")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000887632, -0.00966144, 0.00413632) diff --git a/Scenes/revolver.tscn b/Scenes/revolver.tscn new file mode 100644 index 0000000..7f18831 --- /dev/null +++ b/Scenes/revolver.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=3 uid="uid://bge7npb7b1y6x"] + +[ext_resource type="PackedScene" uid="uid://k5auld1jqu12" path="res://Blends/Revolver/revolver.gltf" id="1_wa2bx"] +[ext_resource type="Script" uid="uid://d3174fuibuuyo" path="res://Scripts/revolver.gd" id="2_ncs2m"] + +[node name="revolver" node_paths=PackedStringArray("cylinder") instance=ExtResource("1_wa2bx")] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0) +script = ExtResource("2_ncs2m") +cylinder = NodePath("Cylinder_002") + +[node name="Cylinder" parent="." index="0"] +transform = Transform3D(0.232388, 0, 0, 0, -1.0158e-08, -0.232388, 0, 0.232388, -1.0158e-08, 0, 0.0511216, 0.37481) + +[node name="Cylinder_002" parent="." index="1"] +transform = Transform3D(0.388665, 1.69891e-08, 0.673188, 0.673188, -2.9426e-08, -0.388665, 1.69891e-08, 0.77733, -2.9426e-08, 0.0429976, 0.542699, 3.97893) + +[node name="Cube_002" parent="." index="4"] +transform = Transform3D(-4.37114e-08, 0, 0.564469, 0, 0.0715409, 0, -1, 0, -2.46737e-08, 0, -0.305258, 3.93692) diff --git a/Scripts/bullet.gd b/Scripts/bullet.gd new file mode 100644 index 0000000..c9ee22c --- /dev/null +++ b/Scripts/bullet.gd @@ -0,0 +1,26 @@ +extends Node3D + +signal destination_reached + + +var is_live: bool = false +var is_target_reached: bool = true + +var target_position: Vector3 + +func _ready() -> void: + target_position = Vector3.ZERO + destination_reached.connect(on_target_reached) + +func _process(delta: float) -> void: + if !is_target_reached: + self.global_position = lerp(global_position, target_position, delta / 0.1) + if (global_position.length() - target_position.length() ) == 0.0: + destination_reached.emit() + +func moveTo(target_pos: Vector3): + target_position = target_pos + is_target_reached = false + +func on_target_reached(): + is_target_reached = true diff --git a/Scripts/bullet.gd.uid b/Scripts/bullet.gd.uid new file mode 100644 index 0000000..f22a265 --- /dev/null +++ b/Scripts/bullet.gd.uid @@ -0,0 +1 @@ +uid://bckkey7836cjp diff --git a/Scripts/bullet_stack.gd b/Scripts/bullet_stack.gd new file mode 100644 index 0000000..13df87c --- /dev/null +++ b/Scripts/bullet_stack.gd @@ -0,0 +1,20 @@ +extends Node3D +@onready var bullet_sc = preload("res://Scenes/bullet.tscn") + + +var bullets = Array() + +var h_offset: float = 0.15 +var v_offset: float = 0.1 + + +func _ready() -> void: + GameManager.set_bullet_stack(self) + generate_bullet_stack() + +func generate_bullet_stack(): + for i in range(1, 22, 1): + var newBullet = bullet_sc.instantiate() + newBullet.position = Vector3(i*h_offset,0,0) + bullets.append(newBullet) + add_child(newBullet) diff --git a/Scripts/bullet_stack.gd.uid b/Scripts/bullet_stack.gd.uid new file mode 100644 index 0000000..e74836b --- /dev/null +++ b/Scripts/bullet_stack.gd.uid @@ -0,0 +1 @@ +uid://dcmqt4341kxem diff --git a/Scripts/game_manager.gd b/Scripts/game_manager.gd new file mode 100644 index 0000000..400f047 --- /dev/null +++ b/Scripts/game_manager.gd @@ -0,0 +1,24 @@ +extends Node + +var bullets: Array + +var player1_revolver: Node3D +var player2_revolver: Node3D +var bullet_stack: Node3D + +func _ready() -> void: + bullets.resize(21) + +func _input(event: InputEvent) -> void: + if event.is_action_released("load"): + player1_revolver.load_bullet(bullet_stack.bullets[0]) + +func set_player_revolver(newRevolver): + player1_revolver = newRevolver +func set_enemy_revolver(newRevolver): + player2_revolver = newRevolver +func set_bullet_stack(newStack): + bullet_stack = newStack + +func add_bullet(): + pass diff --git a/Scripts/game_manager.gd.uid b/Scripts/game_manager.gd.uid new file mode 100644 index 0000000..79ddd5f --- /dev/null +++ b/Scripts/game_manager.gd.uid @@ -0,0 +1 @@ +uid://cjdog8xi8r8xf diff --git a/Scripts/revolver.gd b/Scripts/revolver.gd new file mode 100644 index 0000000..5beabb8 --- /dev/null +++ b/Scripts/revolver.gd @@ -0,0 +1,29 @@ +extends Node3D + +var bullet_target_pos = Vector3(2.231,0.03,4.612) + +var loaded_bullets = Array() +var max_bullets: int = 6 +var current_round: int = 0 + + +@export var is_player_revolver: bool = false +@export var cylinder: Node3D + +var is_cylinder_out: bool = false +func _ready() -> void: + if is_player_revolver: + GameManager.set_player_revolver(self) + else: + GameManager.set_enemy_revolver(self) + +func _process(delta: float) -> void: + if is_cylinder_out: + cylinder.position = lerp(cylinder.position, Vector3(1.947,0.543,3.979), delta/ 0.1) + else: + cylinder.position = lerp(cylinder.position, Vector3(0,0.543,3.979), delta/ 0.1) +func load_bullet(bullet_object): + bullet_object.moveTo(to_global(bullet_target_pos)) + is_cylinder_out = true +func shoot(): + pass diff --git a/Scripts/revolver.gd.uid b/Scripts/revolver.gd.uid new file mode 100644 index 0000000..f714b98 --- /dev/null +++ b/Scripts/revolver.gd.uid @@ -0,0 +1 @@ +uid://d3174fuibuuyo diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..9d8b7fa --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..7573fde --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddo21a6tw56i0" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..8e1216d --- /dev/null +++ b/project.godot @@ -0,0 +1,28 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="project-tur" +run/main_scene="uid://b4ot3p50x08po" +config/features=PackedStringArray("4.4", "Forward Plus") +config/icon="res://icon.svg" + +[autoload] + +GameManager="*res://Scripts/game_manager.gd" + +[input] + +load={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +] +}