Compare commits
102 Commits
multiplaye
...
master
Author | SHA1 | Date |
---|---|---|
|
2aa142c350 | |
|
6fba0c6e58 | |
|
74b140fb1d | |
|
b3040b4de0 | |
|
52400f950a | |
|
b4677e91b9 | |
|
fb839f3467 | |
|
a1dbbb72a9 | |
|
f18dc4336e | |
|
0ddfd64bb5 | |
|
65ea09295e | |
|
dca91249e0 | |
|
aaedb60b86 | |
|
eb1ba01812 | |
|
6b2f1db9f9 | |
|
7190a51e62 | |
|
dc8b70f14b | |
|
8e0093333d | |
|
250afc6394 | |
|
151b68d6d8 | |
|
eee4baf79a | |
|
8712d1ecda | |
|
e3241121da | |
|
8457172c53 | |
|
3ee8d878fa | |
|
6d8e66815e | |
|
63d3d8cc44 | |
|
bc8850b67d | |
|
5f71e6f9d4 | |
|
10cb509bc5 | |
|
aed4f324d0 | |
|
256adf14ab | |
|
5ac9daba58 | |
|
e0664504ff | |
|
4ab2591e79 | |
|
f60abab444 | |
|
945b96e05b | |
|
528a9bc425 | |
|
2142fbf55a | |
|
95eedf8134 | |
|
788e486d6c | |
|
7b568eb8a9 | |
|
6b131e7ee2 | |
|
784068289c | |
|
c0be7e285d | |
|
fcf3740f58 | |
|
eaa49d7a7f | |
|
59972a49f7 | |
|
4dd4093ca8 | |
|
9bf4fd5b69 | |
|
46b3100cde | |
|
004a478c43 | |
|
65ca46bdf2 | |
|
a7cfce5b47 | |
|
0fdd4ba96a | |
|
a62f60da74 | |
|
2dedb2664b | |
|
2f4181a18b | |
|
73b647484d | |
|
981496275f | |
|
0f0217713a | |
|
534a3be505 | |
|
18471e74ec | |
|
25405cf9b5 | |
|
d1e3e3d313 | |
|
a1cefe5e5a | |
|
724a0500a4 | |
|
92c1549ec5 | |
|
e2e2bcc13f | |
|
b64803f190 | |
|
0542d067ef | |
|
3d4c0b63a4 | |
|
38c518e65a | |
|
2aa0dfe02c | |
|
d957eceb5a | |
|
1f3864d53c | |
|
6ff95be4bc | |
|
00ea617f39 | |
|
9bdeb1d1e4 | |
|
71f9cdec66 | |
|
8237ec509a | |
|
4e04f38700 | |
|
aa113c7ff8 | |
|
eb99032a63 | |
|
76b8dc3a17 | |
|
de44ff2cce | |
|
074ea8b463 | |
|
4dd130ee10 | |
|
df7ad936f8 | |
|
fd0afcc42a | |
|
e99e1fc984 | |
|
a23fd5b5bf | |
|
b49b910382 | |
|
1b6d45a001 | |
|
92ee1513cc | |
|
46353fc8f6 | |
|
c47d3da2cf | |
|
036e69612c | |
|
5ebc9f4686 | |
|
4ca022610c | |
|
77e94131af | |
|
3c066fb99b |
|
@ -0,0 +1,2 @@
|
|||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
|
@ -1,5 +1,22 @@
|
|||
# ---> Godot
|
||||
# Godot 4+ specific ignores
|
||||
.godot/
|
||||
|
||||
# Godot-specific ignores
|
||||
.import/
|
||||
export.cfg
|
||||
export_presets.cfg
|
||||
|
||||
# Imported translations (automatically generated from CSV files)
|
||||
*.translation
|
||||
|
||||
# Mono-specific ignores
|
||||
.mono/
|
||||
data_*/
|
||||
mono_crash.*.json
|
||||
|
||||
#Custom
|
||||
build/
|
||||
*.sh
|
||||
*.x86_64
|
||||
*.pck
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# cs-os
|
||||
|
||||
Counter-Strike: Open Source (Close source - Open source)
|
||||
|
||||
A fan shooter (cs:go parody) game about Opensource operating systems and Proprietary operating systems
|
||||
Counter-Strike: Open Source (Close source - Open source)
|
||||
|
||||
A fan shooter (cs:go parody) game about Opensource operating systems and Proprietary operating systems
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
[preset.0]
|
||||
|
||||
name="Linux"
|
||||
platform="Linux/X11"
|
||||
runnable=true
|
||||
dedicated_server=true
|
||||
custom_features=""
|
||||
export_filter="customized"
|
||||
customized_files={
|
||||
"res://": "strip",
|
||||
"res://icon.svg": "strip",
|
||||
"res://models/": "strip",
|
||||
"res://models/player.tscn": "strip",
|
||||
"res://models/puppet.gd": "strip",
|
||||
"res://models/puppet.tscn": "strip",
|
||||
"res://scenes/": "strip",
|
||||
"res://scenes/menu.tscn": "strip",
|
||||
"res://scenes/test_map.tscn": "strip",
|
||||
"res://scripts/": "strip",
|
||||
"res://scripts/ConnectButton.gd": "strip",
|
||||
"res://scripts/GameData.gd": "strip",
|
||||
"res://scripts/Networking.gd": "strip",
|
||||
"res://scripts/Player.gd": "strip",
|
||||
"res://scripts/PlayerClass.gd": "strip",
|
||||
"res://settings/": "strip",
|
||||
"res://textures/": "strip",
|
||||
"res://textures/texture_04_2.png": "strip"
|
||||
}
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="./Cs-os.x86_64"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=true
|
||||
texture_format/bptc=true
|
||||
texture_format/s3tc=true
|
||||
texture_format/etc=false
|
||||
texture_format/etc2=false
|
||||
binary_format/architecture="x86_64"
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="#!/usr/bin/env bash
|
||||
export DISPLAY=:0
|
||||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||
\"{temp_dir}/{exe_name}\" {cmd_args}"
|
||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
||||
rm -rf \"{temp_dir}\""
|
1
icon.svg
1
icon.svg
|
@ -1 +0,0 @@
|
|||
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>
|
Before Width: | Height: | Size: 950 B |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dll54u8nmui3b"
|
||||
path="res://.godot/imported/logo.png-cca8726399059c8d4f806e28e356b14d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://logo.png"
|
||||
dest_files=["res://.godot/imported/logo.png-cca8726399059c8d4f806e28e356b14d.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
|
|
@ -0,0 +1,2 @@
|
|||
# Made in Blockbench 4.9.4
|
||||
newmtl none
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,22 @@
|
|||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://ci000murhycl2"
|
||||
path="res://.godot/imported/ak-12.obj-ad26db8e05ecd6bd3f277bc08c0cf9fc.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/ak-12.obj-ad26db8e05ecd6bd3f277bc08c0cf9fc.mesh"]
|
||||
|
||||
source_file="res://models/ak-12.obj"
|
||||
dest_files=["res://.godot/imported/ak-12.obj-ad26db8e05ecd6bd3f277bc08c0cf9fc.mesh", "res://.godot/imported/ak-12.obj-ad26db8e05ecd6bd3f277bc08c0cf9fc.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
|
@ -0,0 +1,13 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://caos4gg5cd6f6"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dndsa6rm6hovq" path="res://models/automatto.dae" id="1_kapkd"]
|
||||
|
||||
[node name="ak-47" type="Node3D"]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, -0.570068, 0, 0)
|
||||
|
||||
[node name="automatto" parent="." instance=ExtResource("1_kapkd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.18626, -1.25157, 0)
|
||||
|
||||
[node name="raycast" type="RayCast3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.92407, 0.951779, 0)
|
||||
target_position = Vector3(-1, 0, 0)
|
|
@ -0,0 +1,485 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
||||
<asset>
|
||||
<contributor>
|
||||
<author>Anonymous</author>
|
||||
<authoring_tool>Collada Exporter for Blender 2.6+, by Juan Linietsky (juan@codenix.com)</authoring_tool>
|
||||
</contributor>
|
||||
<created>2024-02-17T21:56:07Z</created>
|
||||
<modified>2024-02-17T21:56:07Z</modified>
|
||||
<unit meter="1.0" name="meter"/>
|
||||
<up_axis>Z_UP</up_axis>
|
||||
</asset>
|
||||
<library_effects>
|
||||
<effect id="id-fx-2" name="Material-fx">
|
||||
<profile_COMMON>
|
||||
<technique sid="common">
|
||||
<blinn>
|
||||
<emission>
|
||||
<color> 0.800000011920929 0.800000011920929 0.800000011920929 1.0 </color>
|
||||
</emission>
|
||||
<ambient>
|
||||
<color> 0.0 0.0 0.0 1.0 </color>
|
||||
</ambient>
|
||||
<diffuse>
|
||||
<color> 0.6400000095367432 0.6400000095367432 0.6400000095367432 0.8 </color>
|
||||
</diffuse>
|
||||
<specular>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</specular>
|
||||
<shininess>
|
||||
<float>50</float>
|
||||
</shininess>
|
||||
<reflective>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</reflective>
|
||||
<index_of_refraction>
|
||||
<float>1.2</float>
|
||||
</index_of_refraction>
|
||||
</blinn>
|
||||
<extra>
|
||||
<technique profile="FCOLLADA">
|
||||
</technique>
|
||||
<technique profile="GOOGLEEARTH">
|
||||
<double_sided>1</double_sided>
|
||||
</technique>
|
||||
</extra>
|
||||
</technique>
|
||||
</profile_COMMON>
|
||||
</effect>
|
||||
<effect id="id-fx-6" name="Material.001-fx">
|
||||
<profile_COMMON>
|
||||
<technique sid="common">
|
||||
<blinn>
|
||||
<emission>
|
||||
<color> 0.800000011920929 0.800000011920929 0.800000011920929 1.0 </color>
|
||||
</emission>
|
||||
<ambient>
|
||||
<color> 0.0 0.0 0.0 1.0 </color>
|
||||
</ambient>
|
||||
<diffuse>
|
||||
<color> 0.6400000095367432 0.6400000095367432 0.6400000095367432 0.8 </color>
|
||||
</diffuse>
|
||||
<specular>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</specular>
|
||||
<shininess>
|
||||
<float>50</float>
|
||||
</shininess>
|
||||
<reflective>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</reflective>
|
||||
<index_of_refraction>
|
||||
<float>1.2</float>
|
||||
</index_of_refraction>
|
||||
</blinn>
|
||||
<extra>
|
||||
<technique profile="FCOLLADA">
|
||||
</technique>
|
||||
<technique profile="GOOGLEEARTH">
|
||||
<double_sided>1</double_sided>
|
||||
</technique>
|
||||
</extra>
|
||||
</technique>
|
||||
</profile_COMMON>
|
||||
</effect>
|
||||
<effect id="id-fx-10" name="Material.002-fx">
|
||||
<profile_COMMON>
|
||||
<technique sid="common">
|
||||
<blinn>
|
||||
<emission>
|
||||
<color> 0.800000011920929 0.800000011920929 0.800000011920929 1.0 </color>
|
||||
</emission>
|
||||
<ambient>
|
||||
<color> 0.0 0.0 0.0 1.0 </color>
|
||||
</ambient>
|
||||
<diffuse>
|
||||
<color> 0.6400000095367432 0.6400000095367432 0.6400000095367432 0.8 </color>
|
||||
</diffuse>
|
||||
<specular>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</specular>
|
||||
<shininess>
|
||||
<float>50</float>
|
||||
</shininess>
|
||||
<reflective>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</reflective>
|
||||
<index_of_refraction>
|
||||
<float>1.2</float>
|
||||
</index_of_refraction>
|
||||
</blinn>
|
||||
<extra>
|
||||
<technique profile="FCOLLADA">
|
||||
</technique>
|
||||
<technique profile="GOOGLEEARTH">
|
||||
<double_sided>1</double_sided>
|
||||
</technique>
|
||||
</extra>
|
||||
</technique>
|
||||
</profile_COMMON>
|
||||
</effect>
|
||||
</library_effects>
|
||||
<library_materials>
|
||||
<material id="id-material-3" name="Material">
|
||||
<instance_effect url="#id-fx-2"/>
|
||||
</material>
|
||||
<material id="id-material-7" name="Material.001">
|
||||
<instance_effect url="#id-fx-6"/>
|
||||
</material>
|
||||
<material id="id-material-11" name="Material.002">
|
||||
<instance_effect url="#id-fx-10"/>
|
||||
</material>
|
||||
</library_materials>
|
||||
<library_geometries>
|
||||
<geometry id="id-mesh-4" name="Cube">
|
||||
<mesh>
|
||||
<source id="id-mesh-4-positions">
|
||||
<float_array id="id-mesh-4-positions-array" count="72"> 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-4-positions-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-4-normals">
|
||||
<float_array id="id-mesh-4-normals-array" count="72"> 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-4-normals-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-4-texcoord-0">
|
||||
<float_array id="id-mesh-4-texcoord-0-array" count="48"> 0.625 0.5 0.875 0.5 0.875 0.75 0.625 0.75 0.375 0.75 0.625 0.75 0.625 1.0 0.375 1.0 0.375 0.0 0.625 0.0 0.625 0.25 0.375 0.25 0.125 0.5 0.375 0.5 0.375 0.75 0.125 0.75 0.375 0.5 0.625 0.5 0.625 0.75 0.375 0.75 0.375 0.25 0.625 0.25 0.625 0.5 0.375 0.5</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-4-texcoord-0-array" count="24" stride="2">
|
||||
<param name="S" type="float"/>
|
||||
<param name="T" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="id-mesh-4-vertices">
|
||||
<input semantic="POSITION" source="#id-mesh-4-positions"/>
|
||||
</vertices>
|
||||
<polygons count="6" material="id-trimat-5">
|
||||
<input semantic="VERTEX" source="#id-mesh-4-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#id-mesh-4-normals" offset="0"/>
|
||||
<input semantic="TEXCOORD" source="#id-mesh-4-texcoord-0" offset="0" set="0"/>
|
||||
<p> 0 1 2 3 </p>
|
||||
<p> 4 5 6 7 </p>
|
||||
<p> 8 9 10 11 </p>
|
||||
<p> 12 13 14 15 </p>
|
||||
<p> 16 17 18 19 </p>
|
||||
<p> 20 21 22 23 </p>
|
||||
</polygons>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<geometry id="id-mesh-8" name="Cube.001">
|
||||
<mesh>
|
||||
<source id="id-mesh-8-positions">
|
||||
<float_array id="id-mesh-8-positions-array" count="72"> 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-8-positions-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-8-normals">
|
||||
<float_array id="id-mesh-8-normals-array" count="72"> 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-8-normals-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-8-texcoord-0">
|
||||
<float_array id="id-mesh-8-texcoord-0-array" count="48"> 0.625 0.5 0.875 0.5 0.875 0.75 0.625 0.75 0.375 0.75 0.625 0.75 0.625 1.0 0.375 1.0 0.375 0.0 0.625 0.0 0.625 0.25 0.375 0.25 0.125 0.5 0.375 0.5 0.375 0.75 0.125 0.75 0.375 0.5 0.625 0.5 0.625 0.75 0.375 0.75 0.375 0.25 0.625 0.25 0.625 0.5 0.375 0.5</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-8-texcoord-0-array" count="24" stride="2">
|
||||
<param name="S" type="float"/>
|
||||
<param name="T" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="id-mesh-8-vertices">
|
||||
<input semantic="POSITION" source="#id-mesh-8-positions"/>
|
||||
</vertices>
|
||||
<polygons count="6" material="id-trimat-9">
|
||||
<input semantic="VERTEX" source="#id-mesh-8-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#id-mesh-8-normals" offset="0"/>
|
||||
<input semantic="TEXCOORD" source="#id-mesh-8-texcoord-0" offset="0" set="0"/>
|
||||
<p> 0 1 2 3 </p>
|
||||
<p> 4 5 6 7 </p>
|
||||
<p> 8 9 10 11 </p>
|
||||
<p> 12 13 14 15 </p>
|
||||
<p> 16 17 18 19 </p>
|
||||
<p> 20 21 22 23 </p>
|
||||
</polygons>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<geometry id="id-mesh-12" name="Cube.002">
|
||||
<mesh>
|
||||
<source id="id-mesh-12-positions">
|
||||
<float_array id="id-mesh-12-positions-array" count="72"> 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-12-positions-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-12-normals">
|
||||
<float_array id="id-mesh-12-normals-array" count="72"> 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-12-normals-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-12-texcoord-0">
|
||||
<float_array id="id-mesh-12-texcoord-0-array" count="48"> 0.625 0.5 0.875 0.5 0.875 0.75 0.625 0.75 0.375 0.75 0.625 0.75 0.625 1.0 0.375 1.0 0.375 0.0 0.625 0.0 0.625 0.25 0.375 0.25 0.125 0.5 0.375 0.5 0.375 0.75 0.125 0.75 0.375 0.5 0.625 0.5 0.625 0.75 0.375 0.75 0.375 0.25 0.625 0.25 0.625 0.5 0.375 0.5</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-12-texcoord-0-array" count="24" stride="2">
|
||||
<param name="S" type="float"/>
|
||||
<param name="T" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="id-mesh-12-vertices">
|
||||
<input semantic="POSITION" source="#id-mesh-12-positions"/>
|
||||
</vertices>
|
||||
<polygons count="6" material="id-trimat-13">
|
||||
<input semantic="VERTEX" source="#id-mesh-12-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#id-mesh-12-normals" offset="0"/>
|
||||
<input semantic="TEXCOORD" source="#id-mesh-12-texcoord-0" offset="0" set="0"/>
|
||||
<p> 0 1 2 3 </p>
|
||||
<p> 4 5 6 7 </p>
|
||||
<p> 8 9 10 11 </p>
|
||||
<p> 12 13 14 15 </p>
|
||||
<p> 16 17 18 19 </p>
|
||||
<p> 20 21 22 23 </p>
|
||||
</polygons>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<geometry id="id-mesh-14" name="Cube.003">
|
||||
<mesh>
|
||||
<source id="id-mesh-14-positions">
|
||||
<float_array id="id-mesh-14-positions-array" count="72"> 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-14-positions-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-14-normals">
|
||||
<float_array id="id-mesh-14-normals-array" count="72"> 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-14-normals-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-14-texcoord-0">
|
||||
<float_array id="id-mesh-14-texcoord-0-array" count="48"> 0.625 0.5 0.875 0.5 0.875 0.75 0.625 0.75 0.375 0.75 0.625 0.75 0.625 1.0 0.375 1.0 0.375 0.0 0.625 0.0 0.625 0.25 0.375 0.25 0.125 0.5 0.375 0.5 0.375 0.75 0.125 0.75 0.375 0.5 0.625 0.5 0.625 0.75 0.375 0.75 0.375 0.25 0.625 0.25 0.625 0.5 0.375 0.5</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-14-texcoord-0-array" count="24" stride="2">
|
||||
<param name="S" type="float"/>
|
||||
<param name="T" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="id-mesh-14-vertices">
|
||||
<input semantic="POSITION" source="#id-mesh-14-positions"/>
|
||||
</vertices>
|
||||
<polygons count="6" material="id-trimat-15">
|
||||
<input semantic="VERTEX" source="#id-mesh-14-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#id-mesh-14-normals" offset="0"/>
|
||||
<input semantic="TEXCOORD" source="#id-mesh-14-texcoord-0" offset="0" set="0"/>
|
||||
<p> 0 1 2 3 </p>
|
||||
<p> 4 5 6 7 </p>
|
||||
<p> 8 9 10 11 </p>
|
||||
<p> 12 13 14 15 </p>
|
||||
<p> 16 17 18 19 </p>
|
||||
<p> 20 21 22 23 </p>
|
||||
</polygons>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<geometry id="id-mesh-16" name="Cube.004">
|
||||
<mesh>
|
||||
<source id="id-mesh-16-positions">
|
||||
<float_array id="id-mesh-16-positions-array" count="72"> 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-16-positions-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-16-normals">
|
||||
<float_array id="id-mesh-16-normals-array" count="72"> 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-16-normals-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-16-texcoord-0">
|
||||
<float_array id="id-mesh-16-texcoord-0-array" count="48"> 0.625 0.5 0.875 0.5 0.875 0.75 0.625 0.75 0.375 0.75 0.625 0.75 0.625 1.0 0.375 1.0 0.375 0.0 0.625 0.0 0.625 0.25 0.375 0.25 0.125 0.5 0.375 0.5 0.375 0.75 0.125 0.75 0.375 0.5 0.625 0.5 0.625 0.75 0.375 0.75 0.375 0.25 0.625 0.25 0.625 0.5 0.375 0.5</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-16-texcoord-0-array" count="24" stride="2">
|
||||
<param name="S" type="float"/>
|
||||
<param name="T" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="id-mesh-16-vertices">
|
||||
<input semantic="POSITION" source="#id-mesh-16-positions"/>
|
||||
</vertices>
|
||||
<polygons count="6" material="id-trimat-17">
|
||||
<input semantic="VERTEX" source="#id-mesh-16-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#id-mesh-16-normals" offset="0"/>
|
||||
<input semantic="TEXCOORD" source="#id-mesh-16-texcoord-0" offset="0" set="0"/>
|
||||
<p> 0 1 2 3 </p>
|
||||
<p> 4 5 6 7 </p>
|
||||
<p> 8 9 10 11 </p>
|
||||
<p> 12 13 14 15 </p>
|
||||
<p> 16 17 18 19 </p>
|
||||
<p> 20 21 22 23 </p>
|
||||
</polygons>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<geometry id="id-mesh-18" name="Cube.005">
|
||||
<mesh>
|
||||
<source id="id-mesh-18-positions">
|
||||
<float_array id="id-mesh-18-positions-array" count="72"> 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-18-positions-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-18-normals">
|
||||
<float_array id="id-mesh-18-normals-array" count="72"> 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-18-normals-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-18-texcoord-0">
|
||||
<float_array id="id-mesh-18-texcoord-0-array" count="48"> 0.625 0.5 0.875 0.5 0.875 0.75 0.625 0.75 0.375 0.75 0.625 0.75 0.625 1.0 0.375 1.0 0.375 0.0 0.625 0.0 0.625 0.25 0.375 0.25 0.125 0.5 0.375 0.5 0.375 0.75 0.125 0.75 0.375 0.5 0.625 0.5 0.625 0.75 0.375 0.75 0.375 0.25 0.625 0.25 0.625 0.5 0.375 0.5</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-18-texcoord-0-array" count="24" stride="2">
|
||||
<param name="S" type="float"/>
|
||||
<param name="T" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="id-mesh-18-vertices">
|
||||
<input semantic="POSITION" source="#id-mesh-18-positions"/>
|
||||
</vertices>
|
||||
<polygons count="6" material="id-trimat-19">
|
||||
<input semantic="VERTEX" source="#id-mesh-18-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#id-mesh-18-normals" offset="0"/>
|
||||
<input semantic="TEXCOORD" source="#id-mesh-18-texcoord-0" offset="0" set="0"/>
|
||||
<p> 0 1 2 3 </p>
|
||||
<p> 4 5 6 7 </p>
|
||||
<p> 8 9 10 11 </p>
|
||||
<p> 12 13 14 15 </p>
|
||||
<p> 16 17 18 19 </p>
|
||||
<p> 20 21 22 23 </p>
|
||||
</polygons>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</library_geometries>
|
||||
<library_visual_scenes>
|
||||
<visual_scene id="id-scene-1" name="scene">
|
||||
<node id="Cube" name="Cube" type="NODE">
|
||||
<matrix sid="transform"> 2.6000001430511475 0.0 0.0 0.0 0.0 0.19977541267871857 0.0 0.0 0.0 0.0 0.4598263204097748 2.203359842300415 0.0 0.0 0.0 1.0 </matrix>
|
||||
<instance_geometry url="#id-mesh-4">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="id-trimat-5" target="#id-material-3"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
<node id="Cube.001" name="Cube.001" type="NODE">
|
||||
<matrix sid="transform"> -1.57242467935248e-08 0.0009324373677372932 0.2314780056476593 1.6276607513427734 1.6476175090929246e-08 0.11205510795116425 -0.0019261838169768453 -0.012317478656768799 -0.5210391283035278 3.515240321050328e-09 -7.046598859972164e-09 1.4152696132659912 0.0 0.0 0.0 1.0 </matrix>
|
||||
<instance_geometry url="#id-mesh-8">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="id-trimat-9" target="#id-material-7"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
<node id="Cube.002" name="Cube.002" type="NODE">
|
||||
<matrix sid="transform"> 0.012317821383476257 0.0 -0.23190557956695557 -1.2648444175720215 0.0 0.11228424310684204 0.0 -0.016380950808525085 0.9720970988273621 0.0 0.002938566030934453 1.156082034111023 0.0 0.0 0.0 1.0 </matrix>
|
||||
<instance_geometry url="#id-mesh-12">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="id-trimat-13" target="#id-material-11"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
<node id="Cube.003" name="Cube.003" type="NODE">
|
||||
<matrix sid="transform"> 0.4965575635433197 0.0 0.0 2.8978543281555176 0.0 0.16011132299900055 0.0 -0.0013670185580849648 0.0 0.0 0.24370159208774567 2.1922411918640137 0.0 0.0 0.0 1.0 </matrix>
|
||||
<instance_geometry url="#id-mesh-14">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="id-trimat-15" target="#id-material-7"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
<node id="Cube.004" name="Cube.004" type="NODE">
|
||||
<matrix sid="transform"> 0.4965575635433197 0.0 0.0 3.762096643447876 0.0 0.19658255577087402 0.0 -0.0028609037399291992 0.0 0.0 0.28466933965682983 2.1854066848754883 0.0 0.0 0.0 1.0 </matrix>
|
||||
<instance_geometry url="#id-mesh-16">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="id-trimat-17" target="#id-material-7"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
<node id="Cube.005" name="Cube.005" type="NODE">
|
||||
<matrix sid="transform"> 0.3889171779155731 0.0 0.0 -2.7596819400787354 0.0 0.06061943992972374 0.0 0.0 0.0 0.0 0.06876473128795624 2.203359842300415 0.0 0.0 0.0 1.0 </matrix>
|
||||
<instance_geometry url="#id-mesh-18">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="id-trimat-19" target="#id-material-11"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
</visual_scene>
|
||||
</library_visual_scenes>
|
||||
<scene>
|
||||
<instance_visual_scene url="#id-scene-1" />
|
||||
</scene>
|
||||
</COLLADA>
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dndsa6rm6hovq"
|
||||
path="res://.godot/imported/automatto.dae-432f9c65d99e4ae982cd03115d636026.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://models/automatto.dae"
|
||||
dest_files=["res://.godot/imported/automatto.dae-432f9c65d99e4ae982cd03115d636026.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
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
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
|
@ -0,0 +1,189 @@
|
|||
# Made in Blockbench 4.9.4
|
||||
mtllib knife.mtl
|
||||
|
||||
o knife
|
||||
v 0.109375 1.109375 0.03125
|
||||
v 0.109375 1.109375 -0.03125
|
||||
v 0.109375 0.265625 0.03125
|
||||
v 0.109375 0.265625 -0.03125
|
||||
v -0.109375 1.109375 0.03125
|
||||
v -0.109375 1.109375 -0.03125
|
||||
v -0.109375 0.265625 0.03125
|
||||
v -0.109375 0.265625 -0.03125
|
||||
v 0.09375 1.90625 0.015625
|
||||
v 0.09375 1.90625 -0.015625
|
||||
v 0.09375 1.0625 0.015625
|
||||
v 0.09375 1.0625 -0.015625
|
||||
v -0.09375 1.90625 0.015625
|
||||
v -0.09375 1.90625 -0.015625
|
||||
v -0.09375 1.0625 0.015625
|
||||
v -0.09375 1.0625 -0.015625
|
||||
v -0.09375 1.96875 0.015625
|
||||
v -0.09375 1.96875 -0.015625
|
||||
v -0.09375 2.03125 0.015625
|
||||
v -0.09375 2.03125 -0.015625
|
||||
v -0.09375 2.09375 0.015625
|
||||
v -0.09375 2.09375 -0.015625
|
||||
v 0.15625 1.140625 0.0625
|
||||
v 0.15625 1.140625 -0.0625
|
||||
v 0.15625 1.078125 0.0625
|
||||
v 0.15625 1.078125 -0.0625
|
||||
v -0.15625 1.140625 0.0625
|
||||
v -0.15625 1.140625 -0.0625
|
||||
v -0.15625 1.078125 0.0625
|
||||
v -0.15625 1.078125 -0.0625
|
||||
vt 0.34375 0.53125
|
||||
vt 0.3125 0.53125
|
||||
vt 0.3125 0.03125
|
||||
vt 0.34375 0.03125
|
||||
vt 0.5625 0.46875
|
||||
vt 0.6875 0.46875
|
||||
vt 0.6875 0.5
|
||||
vt 0.5625 0.5
|
||||
vt 0.6875 0.40625
|
||||
vt 0.6875 0.4375
|
||||
vt 0.5625 0.4375
|
||||
vt 0.5625 0.40625
|
||||
vt 0.125 0.5
|
||||
vt 0.125 1
|
||||
vt 0 1
|
||||
vt 0 0.5
|
||||
vt 0.28125 1
|
||||
vt 0.15625 1
|
||||
vt 0.15625 0.5
|
||||
vt 0.28125 0.5
|
||||
vt 0.40625 0.03125
|
||||
vt 0.40625 0.53125
|
||||
vt 0.375 0.53125
|
||||
vt 0.375 0.03125
|
||||
vt 0.46875 0.53125
|
||||
vt 0.4375 0.53125
|
||||
vt 0.4375 0.09375
|
||||
vt 0.46875 0.09375
|
||||
vt 0.53125 0.09375
|
||||
vt 0.53125 0.53125
|
||||
vt 0.5 0.53125
|
||||
vt 0.5 0.09375
|
||||
vt 0 0.34375
|
||||
vt 0.09375 0.34375
|
||||
vt 0.09375 0.375
|
||||
vt 0 0.375
|
||||
vt 0.71875 0.625
|
||||
vt 0.71875 0.65625
|
||||
vt 0.625 0.65625
|
||||
vt 0.625 0.625
|
||||
vt 0.40625 0.5625
|
||||
vt 0.40625 1
|
||||
vt 0.3125 1
|
||||
vt 0.3125 0.5625
|
||||
vt 0.53125 1
|
||||
vt 0.4375 1
|
||||
vt 0.4375 0.5625
|
||||
vt 0.53125 0.5625
|
||||
vt 0.5625 0.53125
|
||||
vt 0.59375 0.53125
|
||||
vt 0.59375 0.65625
|
||||
vt 0.5625 0.65625
|
||||
vt 0.1484375 0.3125
|
||||
vt 0.1328125 0.3125
|
||||
vt 0.1328125 0.28125
|
||||
vt 0.1484375 0.28125
|
||||
vt 0.1484375 0.34375
|
||||
vt 0.1328125 0.34375
|
||||
vt 0.1328125 0.3125
|
||||
vt 0.1484375 0.3125
|
||||
vt 0.1328125 0.375
|
||||
vt 0.1328125 0.34375
|
||||
vt 0.1484375 0.34375
|
||||
vt 0.1484375 0.375
|
||||
vt 0 1
|
||||
vt 0 1
|
||||
vt 0 1
|
||||
vt 0 1
|
||||
vt 0.1875 0.375
|
||||
vt 0.28125 0.375
|
||||
vt 0.1875 0.46875
|
||||
vt 0 1
|
||||
vt 0 1
|
||||
vt 0 1
|
||||
vt 0 1
|
||||
vt 0.5625 0.8125
|
||||
vt 0.65625 0.8125
|
||||
vt 0.5625 0.90625
|
||||
vt 0.6875 0.59375
|
||||
vt 0.625 0.59375
|
||||
vt 0.625 0.5625
|
||||
vt 0.6875 0.5625
|
||||
vt 0.625 0.34375
|
||||
vt 0.625 0.375
|
||||
vt 0.5625 0.375
|
||||
vt 0.5625 0.34375
|
||||
vt 0 0.40625
|
||||
vt 0.15625 0.40625
|
||||
vt 0.15625 0.46875
|
||||
vt 0 0.46875
|
||||
vt 0.71875 0.9375
|
||||
vt 0.71875 1
|
||||
vt 0.5625 1
|
||||
vt 0.5625 0.9375
|
||||
vt 0.71875 0.75
|
||||
vt 0.71875 0.78125
|
||||
vt 0.5625 0.78125
|
||||
vt 0.5625 0.75
|
||||
vt 0.71875 0.71875
|
||||
vt 0.5625 0.71875
|
||||
vt 0.5625 0.6875
|
||||
vt 0.71875 0.6875
|
||||
vn 1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
vn 0 0 1
|
||||
vn 0 0 -1
|
||||
vn -1 0 0
|
||||
vn 1 0 0
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
vn 0 0 1
|
||||
vn 0 0 -1
|
||||
vn 0.7071067811865476 0.7071067811865476 0
|
||||
vn -1 0 0
|
||||
vn -1 0 0
|
||||
vn -1 0 0
|
||||
vn 0 0 0
|
||||
vn 0 0 1
|
||||
vn 0 0 0
|
||||
vn 0 0 1
|
||||
vn 1 0 0
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
vn 0 0 1
|
||||
vn 0 0 -1
|
||||
usemtl m_ca288e41-3249-06b4-832d-889f8712398d
|
||||
f 2/1/1 1/2/1 3/3/1 4/4/1
|
||||
f 5/5/2 1/6/2 2/7/2 6/8/2
|
||||
f 4/9/3 3/10/3 7/11/3 8/12/3
|
||||
f 3/13/4 1/14/4 5/15/4 7/16/4
|
||||
f 6/17/5 2/18/5 4/19/5 8/20/5
|
||||
f 7/21/6 5/22/6 6/23/6 8/24/6
|
||||
f 10/25/7 9/26/7 11/27/7 12/28/7
|
||||
f 15/29/8 13/30/8 14/31/8 16/32/8
|
||||
f 13/33/9 9/34/9 10/35/9 14/36/9
|
||||
f 12/37/10 11/38/10 15/39/10 16/40/10
|
||||
f 11/41/11 9/42/11 13/43/11 15/44/11
|
||||
f 14/45/12 10/46/12 12/47/12 16/48/12
|
||||
f 9/49/13 10/50/13 22/51/13 21/52/13
|
||||
f 17/53/14 18/54/14 14/55/14 13/56/14
|
||||
f 19/57/15 20/58/15 18/59/15 17/60/15
|
||||
f 22/61/16 20/62/16 19/63/16 21/64/16
|
||||
f 22/65/17 20/66/17 18/67/17 14/68/17
|
||||
f 14/69/18 10/70/18 22/71/18
|
||||
f 21/72/19 19/73/19 17/74/19 13/75/19
|
||||
f 13/76/20 9/77/20 21/78/20
|
||||
f 24/79/21 23/80/21 25/81/21 26/82/21
|
||||
f 29/83/22 27/84/22 28/85/22 30/86/22
|
||||
f 27/87/23 23/88/23 24/89/23 28/90/23
|
||||
f 26/91/24 25/92/24 29/93/24 30/94/24
|
||||
f 25/95/25 23/96/25 27/97/25 29/98/25
|
||||
f 28/99/26 24/100/26 26/101/26 30/102/26
|
|
@ -0,0 +1,22 @@
|
|||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://xh7mm0ldn6yw"
|
||||
path="res://.godot/imported/knife.obj-6e31f00c1b4ca74b02d0c3dd7352da69.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/knife.obj-6e31f00c1b4ca74b02d0c3dd7352da69.mesh"]
|
||||
|
||||
source_file="res://models/knife.obj"
|
||||
dest_files=["res://.godot/imported/knife.obj-6e31f00c1b4ca74b02d0c3dd7352da69.mesh", "res://.godot/imported/knife.obj-6e31f00c1b4ca74b02d0c3dd7352da69.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
|
@ -0,0 +1,3 @@
|
|||
[gd_scene format=3 uid="uid://cbsmalhxddpi6"]
|
||||
|
||||
[node name="Knife" type="Node2D"]
|
|
@ -0,0 +1,279 @@
|
|||
# Made in Blockbench 4.9.4
|
||||
mtllib ladder.mtl
|
||||
|
||||
o cube
|
||||
v 0.4375 1.375 0.0625
|
||||
v 0.4375 1.375 -0.0625
|
||||
v 0.4375 0 0.0625
|
||||
v 0.4375 0 -0.0625
|
||||
v 0.3125 1.375 -0.0625
|
||||
v 0.3125 1.375 0.0625
|
||||
v 0.3125 0 -0.0625
|
||||
v 0.3125 0 0.0625
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 4/4/1 7/3/1 5/2/1 2/1/1
|
||||
f 3/8/2 4/7/2 2/6/2 1/5/2
|
||||
f 8/12/3 3/11/3 1/10/3 6/9/3
|
||||
f 7/16/4 8/15/4 6/14/4 5/13/4
|
||||
f 6/20/5 1/19/5 2/18/5 5/17/5
|
||||
f 7/24/6 4/23/6 3/22/6 8/21/6
|
||||
o cube
|
||||
v -0.3125 1.375 0.0625
|
||||
v -0.3125 1.375 -0.0625
|
||||
v -0.3125 0 0.0625
|
||||
v -0.3125 0 -0.0625
|
||||
v -0.4375 1.375 -0.0625
|
||||
v -0.4375 1.375 0.0625
|
||||
v -0.4375 0 -0.0625
|
||||
v -0.4375 0 0.0625
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 12/28/7 15/27/7 13/26/7 10/25/7
|
||||
f 11/32/8 12/31/8 10/30/8 9/29/8
|
||||
f 16/36/9 11/35/9 9/34/9 14/33/9
|
||||
f 15/40/10 16/39/10 14/38/10 13/37/10
|
||||
f 14/44/11 9/43/11 10/42/11 13/41/11
|
||||
f 15/48/12 12/47/12 11/46/12 16/45/12
|
||||
o cube
|
||||
v 0.3125 0.3125 0.0625
|
||||
v 0.3125 0.3125 -0.0625
|
||||
v 0.3125 0.1875 0.0625
|
||||
v 0.3125 0.1875 -0.0625
|
||||
v -0.3125 0.3125 -0.0625
|
||||
v -0.3125 0.3125 0.0625
|
||||
v -0.3125 0.1875 -0.0625
|
||||
v -0.3125 0.1875 0.0625
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 20/52/13 23/51/13 21/50/13 18/49/13
|
||||
f 19/56/14 20/55/14 18/54/14 17/53/14
|
||||
f 24/60/15 19/59/15 17/58/15 22/57/15
|
||||
f 23/64/16 24/63/16 22/62/16 21/61/16
|
||||
f 22/68/17 17/67/17 18/66/17 21/65/17
|
||||
f 23/72/18 20/71/18 19/70/18 24/69/18
|
||||
o cube
|
||||
v 0.3125 0.8125 0.0625
|
||||
v 0.3125 0.8125 -0.0625
|
||||
v 0.3125 0.6875 0.0625
|
||||
v 0.3125 0.6875 -0.0625
|
||||
v -0.3125 0.8125 -0.0625
|
||||
v -0.3125 0.8125 0.0625
|
||||
v -0.3125 0.6875 -0.0625
|
||||
v -0.3125 0.6875 0.0625
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 28/76/19 31/75/19 29/74/19 26/73/19
|
||||
f 27/80/20 28/79/20 26/78/20 25/77/20
|
||||
f 32/84/21 27/83/21 25/82/21 30/81/21
|
||||
f 31/88/22 32/87/22 30/86/22 29/85/22
|
||||
f 30/92/23 25/91/23 26/90/23 29/89/23
|
||||
f 31/96/24 28/95/24 27/94/24 32/93/24
|
||||
o cube
|
||||
v 0.3125 1.25 0.0625
|
||||
v 0.3125 1.25 -0.0625
|
||||
v 0.3125 1.125 0.0625
|
||||
v 0.3125 1.125 -0.0625
|
||||
v -0.3125 1.25 -0.0625
|
||||
v -0.3125 1.25 0.0625
|
||||
v -0.3125 1.125 -0.0625
|
||||
v -0.3125 1.125 0.0625
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 36/100/25 39/99/25 37/98/25 34/97/25
|
||||
f 35/104/26 36/103/26 34/102/26 33/101/26
|
||||
f 40/108/27 35/107/27 33/106/27 38/105/27
|
||||
f 39/112/28 40/111/28 38/110/28 37/109/28
|
||||
f 38/116/29 33/115/29 34/114/29 37/113/29
|
||||
f 39/120/30 36/119/30 35/118/30 40/117/30
|
||||
o cube
|
||||
v 0.3125 1.25 0.0625
|
||||
v 0.3125 1.25 -0.0625
|
||||
v 0.3125 1.125 0.0625
|
||||
v 0.3125 1.125 -0.0625
|
||||
v -0.3125 1.25 -0.0625
|
||||
v -0.3125 1.25 0.0625
|
||||
v -0.3125 1.125 -0.0625
|
||||
v -0.3125 1.125 0.0625
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 44/124/31 47/123/31 45/122/31 42/121/31
|
||||
f 43/128/32 44/127/32 42/126/32 41/125/32
|
||||
f 48/132/33 43/131/33 41/130/33 46/129/33
|
||||
f 47/136/34 48/135/34 46/134/34 45/133/34
|
||||
f 46/140/35 41/139/35 42/138/35 45/137/35
|
||||
f 47/144/36 44/143/36 43/142/36 48/141/36
|
|
@ -0,0 +1,22 @@
|
|||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://bal0u14qxmjfb"
|
||||
path="res://.godot/imported/ladder.obj-d67956790d02128eb4831fd36b21fcc7.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/ladder.obj-d67956790d02128eb4831fd36b21fcc7.mesh"]
|
||||
|
||||
source_file="res://models/ladder.obj"
|
||||
dest_files=["res://.godot/imported/ladder.obj-d67956790d02128eb4831fd36b21fcc7.mesh", "res://.godot/imported/ladder.obj-d67956790d02128eb4831fd36b21fcc7.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
|
@ -0,0 +1 @@
|
|||
{"meta":{"format_version":"4.9","model_format":"free","box_uv":false},"name":"","model_identifier":"","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":16,"height":16},"elements":[{"name":"cube","box_uv":false,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-2,0,-4],"to":[2,2,-2],"autouv":1,"color":9,"origin":[0,0,0],"faces":{"north":{"uv":[0,0,4,2]},"east":{"uv":[0,0,2,2]},"south":{"uv":[0,0,4,2]},"west":{"uv":[0,0,2,2]},"up":{"uv":[0,0,4,2]},"down":{"uv":[0,0,4,2]}},"type":"cube","uuid":"dfa854cb-ee20-648c-5bfa-d74bfeeb6218"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-2,0,2],"to":[2,2,4],"autouv":1,"color":9,"origin":[0,0,0],"faces":{"north":{"uv":[0,0,4,2]},"east":{"uv":[0,0,2,2]},"south":{"uv":[0,0,4,2]},"west":{"uv":[0,0,2,2]},"up":{"uv":[0,0,4,2]},"down":{"uv":[0,0,4,2]}},"type":"cube","uuid":"31f49c98-badb-1000-7140-d73da4f5bb99"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[0,2,-4],"to":[2,10,-2],"autouv":1,"color":9,"origin":[0,0,0],"faces":{"north":{"uv":[0,0,2,8]},"east":{"uv":[0,0,2,8]},"south":{"uv":[0,0,2,8]},"west":{"uv":[0,0,2,8]},"up":{"uv":[0,0,2,2]},"down":{"uv":[0,0,2,2]}},"type":"cube","uuid":"df15f977-647e-8040-8882-5a19e3c1a1b3"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[0,2,2],"to":[2,10,4],"autouv":1,"color":9,"origin":[0,0,0],"faces":{"north":{"uv":[0,0,2,8]},"east":{"uv":[0,0,2,8]},"south":{"uv":[0,0,2,8]},"west":{"uv":[0,0,2,8]},"up":{"uv":[0,0,2,2]},"down":{"uv":[0,0,2,2]}},"type":"cube","uuid":"d793f84c-1004-031c-b0f5-e82412154ece"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[0,10,-4],"to":[2,12,4],"autouv":0,"color":9,"origin":[0,0,0],"faces":{"north":{"uv":[0,1,2,3]},"east":{"uv":[0,10,8,12]},"south":{"uv":[0,3,2,5]},"west":{"uv":[0,8,8,10]},"up":{"uv":[14,0,16,8]},"down":{"uv":[14,8,16,16]}},"type":"cube","uuid":"52025b1b-29e8-d9e6-743b-3432fa5598bb"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[0,12,-4],"to":[2,25,4],"autouv":0,"color":9,"origin":[0,0,0],"faces":{"north":{"uv":[0,1,2,3]},"east":{"uv":[0,10,8,12]},"south":{"uv":[0,3,2,5]},"west":{"uv":[0,8,8,10]},"up":{"uv":[14,0,16,8]},"down":{"uv":[14,8,16,16]}},"type":"cube","uuid":"f1dfc558-9761-f697-dafd-a5a9a4823e76"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[0,12,4],"to":[2,25,6],"autouv":0,"color":9,"origin":[0,0,0],"faces":{"north":{"uv":[0,1,2,3]},"east":{"uv":[0,10,8,12]},"south":{"uv":[0,3,2,5]},"west":{"uv":[0,8,8,10]},"up":{"uv":[14,0,16,8]},"down":{"uv":[14,8,16,16]}},"type":"cube","uuid":"4aac22a8-3527-6dcc-7d8c-a3cad36804b5"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[0,12,-6],"to":[2,25,-4],"autouv":0,"color":9,"origin":[0,0,0],"faces":{"north":{"uv":[0,1,2,3]},"east":{"uv":[0,10,8,12]},"south":{"uv":[0,3,2,5]},"west":{"uv":[0,8,8,10]},"up":{"uv":[14,0,16,8]},"down":{"uv":[14,8,16,16]}},"type":"cube","uuid":"9124507e-075f-e0c5-e421-23b88f8795e4"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-2,25,-3],"to":[4,31,3],"autouv":1,"color":0,"origin":[0,0,0],"faces":{"north":{"uv":[0,0,6,6]},"east":{"uv":[0,0,6,6]},"south":{"uv":[0,0,6,6]},"west":{"uv":[0,0,6,6]},"up":{"uv":[0,0,6,6]},"down":{"uv":[0,0,6,6]}},"type":"cube","uuid":"8b2a2b92-0821-bf07-41f8-1ecb453de551"}],"outliner":["dfa854cb-ee20-648c-5bfa-d74bfeeb6218","df15f977-647e-8040-8882-5a19e3c1a1b3","d793f84c-1004-031c-b0f5-e82412154ece","52025b1b-29e8-d9e6-743b-3432fa5598bb","f1dfc558-9761-f697-dafd-a5a9a4823e76","4aac22a8-3527-6dcc-7d8c-a3cad36804b5","9124507e-075f-e0c5-e421-23b88f8795e4","31f49c98-badb-1000-7140-d73da4f5bb99","8b2a2b92-0821-bf07-41f8-1ecb453de551"],"textures":[]}
|
|
@ -0,0 +1,417 @@
|
|||
# Made in Blockbench 4.9.4
|
||||
mtllib model.mtl
|
||||
|
||||
o cube
|
||||
v 0.125 0.125 -0.125
|
||||
v 0.125 0.125 -0.25
|
||||
v 0.125 0 -0.125
|
||||
v 0.125 0 -0.25
|
||||
v -0.125 0.125 -0.25
|
||||
v -0.125 0.125 -0.125
|
||||
v -0.125 0 -0.25
|
||||
v -0.125 0 -0.125
|
||||
vt 0 1
|
||||
vt 0.25 1
|
||||
vt 0.25 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.25 1
|
||||
vt 0.25 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.25 1
|
||||
vt 0.25 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.25 1
|
||||
vt 0.25 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 4/4/1 7/3/1 5/2/1 2/1/1
|
||||
f 3/8/2 4/7/2 2/6/2 1/5/2
|
||||
f 8/12/3 3/11/3 1/10/3 6/9/3
|
||||
f 7/16/4 8/15/4 6/14/4 5/13/4
|
||||
f 6/20/5 1/19/5 2/18/5 5/17/5
|
||||
f 7/24/6 4/23/6 3/22/6 8/21/6
|
||||
o cube
|
||||
v 0.125 0.125 0.25
|
||||
v 0.125 0.125 0.125
|
||||
v 0.125 0 0.25
|
||||
v 0.125 0 0.125
|
||||
v -0.125 0.125 0.125
|
||||
v -0.125 0.125 0.25
|
||||
v -0.125 0 0.125
|
||||
v -0.125 0 0.25
|
||||
vt 0 1
|
||||
vt 0.25 1
|
||||
vt 0.25 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.25 1
|
||||
vt 0.25 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.25 1
|
||||
vt 0.25 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.25 1
|
||||
vt 0.25 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 12/28/7 15/27/7 13/26/7 10/25/7
|
||||
f 11/32/8 12/31/8 10/30/8 9/29/8
|
||||
f 16/36/9 11/35/9 9/34/9 14/33/9
|
||||
f 15/40/10 16/39/10 14/38/10 13/37/10
|
||||
f 14/44/11 9/43/11 10/42/11 13/41/11
|
||||
f 15/48/12 12/47/12 11/46/12 16/45/12
|
||||
o cube
|
||||
v 0.125 0.625 -0.125
|
||||
v 0.125 0.625 -0.25
|
||||
v 0.125 0.125 -0.125
|
||||
v 0.125 0.125 -0.25
|
||||
v 0 0.625 -0.25
|
||||
v 0 0.625 -0.125
|
||||
v 0 0.125 -0.25
|
||||
v 0 0.125 -0.125
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.5
|
||||
vt 0 0.5
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.5
|
||||
vt 0 0.5
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.5
|
||||
vt 0 0.5
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.5
|
||||
vt 0 0.5
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 20/52/13 23/51/13 21/50/13 18/49/13
|
||||
f 19/56/14 20/55/14 18/54/14 17/53/14
|
||||
f 24/60/15 19/59/15 17/58/15 22/57/15
|
||||
f 23/64/16 24/63/16 22/62/16 21/61/16
|
||||
f 22/68/17 17/67/17 18/66/17 21/65/17
|
||||
f 23/72/18 20/71/18 19/70/18 24/69/18
|
||||
o cube
|
||||
v 0.125 0.625 0.25
|
||||
v 0.125 0.625 0.125
|
||||
v 0.125 0.125 0.25
|
||||
v 0.125 0.125 0.125
|
||||
v 0 0.625 0.125
|
||||
v 0 0.625 0.25
|
||||
v 0 0.125 0.125
|
||||
v 0 0.125 0.25
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.5
|
||||
vt 0 0.5
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.5
|
||||
vt 0 0.5
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.5
|
||||
vt 0 0.5
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.5
|
||||
vt 0 0.5
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 28/76/19 31/75/19 29/74/19 26/73/19
|
||||
f 27/80/20 28/79/20 26/78/20 25/77/20
|
||||
f 32/84/21 27/83/21 25/82/21 30/81/21
|
||||
f 31/88/22 32/87/22 30/86/22 29/85/22
|
||||
f 30/92/23 25/91/23 26/90/23 29/89/23
|
||||
f 31/96/24 28/95/24 27/94/24 32/93/24
|
||||
o cube
|
||||
v 0.125 0.75 0.25
|
||||
v 0.125 0.75 -0.25
|
||||
v 0.125 0.625 0.25
|
||||
v 0.125 0.625 -0.25
|
||||
v 0 0.75 -0.25
|
||||
v 0 0.75 0.25
|
||||
v 0 0.625 -0.25
|
||||
v 0 0.625 0.25
|
||||
vt 0 0.9375
|
||||
vt 0.125 0.9375
|
||||
vt 0.125 0.8125
|
||||
vt 0 0.8125
|
||||
vt 0 0.375
|
||||
vt 0.5 0.375
|
||||
vt 0.5 0.25
|
||||
vt 0 0.25
|
||||
vt 0 0.8125
|
||||
vt 0.125 0.8125
|
||||
vt 0.125 0.6875
|
||||
vt 0 0.6875
|
||||
vt 0 0.5
|
||||
vt 0.5 0.5
|
||||
vt 0.5 0.375
|
||||
vt 0 0.375
|
||||
vt 0.875 1
|
||||
vt 1 1
|
||||
vt 1 0.5
|
||||
vt 0.875 0.5
|
||||
vt 0.875 0.5
|
||||
vt 1 0.5
|
||||
vt 1 0
|
||||
vt 0.875 0
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 36/100/25 39/99/25 37/98/25 34/97/25
|
||||
f 35/104/26 36/103/26 34/102/26 33/101/26
|
||||
f 40/108/27 35/107/27 33/106/27 38/105/27
|
||||
f 39/112/28 40/111/28 38/110/28 37/109/28
|
||||
f 38/116/29 33/115/29 34/114/29 37/113/29
|
||||
f 39/120/30 36/119/30 35/118/30 40/117/30
|
||||
o cube
|
||||
v 0.125 1.5625 0.25
|
||||
v 0.125 1.5625 -0.25
|
||||
v 0.125 0.75 0.25
|
||||
v 0.125 0.75 -0.25
|
||||
v 0 1.5625 -0.25
|
||||
v 0 1.5625 0.25
|
||||
v 0 0.75 -0.25
|
||||
v 0 0.75 0.25
|
||||
vt 0 0.9375
|
||||
vt 0.125 0.9375
|
||||
vt 0.125 0.8125
|
||||
vt 0 0.8125
|
||||
vt 0 0.375
|
||||
vt 0.5 0.375
|
||||
vt 0.5 0.25
|
||||
vt 0 0.25
|
||||
vt 0 0.8125
|
||||
vt 0.125 0.8125
|
||||
vt 0.125 0.6875
|
||||
vt 0 0.6875
|
||||
vt 0 0.5
|
||||
vt 0.5 0.5
|
||||
vt 0.5 0.375
|
||||
vt 0 0.375
|
||||
vt 0.875 1
|
||||
vt 1 1
|
||||
vt 1 0.5
|
||||
vt 0.875 0.5
|
||||
vt 0.875 0.5
|
||||
vt 1 0.5
|
||||
vt 1 0
|
||||
vt 0.875 0
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 44/124/31 47/123/31 45/122/31 42/121/31
|
||||
f 43/128/32 44/127/32 42/126/32 41/125/32
|
||||
f 48/132/33 43/131/33 41/130/33 46/129/33
|
||||
f 47/136/34 48/135/34 46/134/34 45/133/34
|
||||
f 46/140/35 41/139/35 42/138/35 45/137/35
|
||||
f 47/144/36 44/143/36 43/142/36 48/141/36
|
||||
o cube
|
||||
v 0.125 1.5625 0.375
|
||||
v 0.125 1.5625 0.25
|
||||
v 0.125 0.75 0.375
|
||||
v 0.125 0.75 0.25
|
||||
v 0 1.5625 0.25
|
||||
v 0 1.5625 0.375
|
||||
v 0 0.75 0.25
|
||||
v 0 0.75 0.375
|
||||
vt 0 0.9375
|
||||
vt 0.125 0.9375
|
||||
vt 0.125 0.8125
|
||||
vt 0 0.8125
|
||||
vt 0 0.375
|
||||
vt 0.5 0.375
|
||||
vt 0.5 0.25
|
||||
vt 0 0.25
|
||||
vt 0 0.8125
|
||||
vt 0.125 0.8125
|
||||
vt 0.125 0.6875
|
||||
vt 0 0.6875
|
||||
vt 0 0.5
|
||||
vt 0.5 0.5
|
||||
vt 0.5 0.375
|
||||
vt 0 0.375
|
||||
vt 0.875 1
|
||||
vt 1 1
|
||||
vt 1 0.5
|
||||
vt 0.875 0.5
|
||||
vt 0.875 0.5
|
||||
vt 1 0.5
|
||||
vt 1 0
|
||||
vt 0.875 0
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 52/148/37 55/147/37 53/146/37 50/145/37
|
||||
f 51/152/38 52/151/38 50/150/38 49/149/38
|
||||
f 56/156/39 51/155/39 49/154/39 54/153/39
|
||||
f 55/160/40 56/159/40 54/158/40 53/157/40
|
||||
f 54/164/41 49/163/41 50/162/41 53/161/41
|
||||
f 55/168/42 52/167/42 51/166/42 56/165/42
|
||||
o cube
|
||||
v 0.125 1.5625 -0.25
|
||||
v 0.125 1.5625 -0.375
|
||||
v 0.125 0.75 -0.25
|
||||
v 0.125 0.75 -0.375
|
||||
v 0 1.5625 -0.375
|
||||
v 0 1.5625 -0.25
|
||||
v 0 0.75 -0.375
|
||||
v 0 0.75 -0.25
|
||||
vt 0 0.9375
|
||||
vt 0.125 0.9375
|
||||
vt 0.125 0.8125
|
||||
vt 0 0.8125
|
||||
vt 0 0.375
|
||||
vt 0.5 0.375
|
||||
vt 0.5 0.25
|
||||
vt 0 0.25
|
||||
vt 0 0.8125
|
||||
vt 0.125 0.8125
|
||||
vt 0.125 0.6875
|
||||
vt 0 0.6875
|
||||
vt 0 0.5
|
||||
vt 0.5 0.5
|
||||
vt 0.5 0.375
|
||||
vt 0 0.375
|
||||
vt 0.875 1
|
||||
vt 1 1
|
||||
vt 1 0.5
|
||||
vt 0.875 0.5
|
||||
vt 0.875 0.5
|
||||
vt 1 0.5
|
||||
vt 1 0
|
||||
vt 0.875 0
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 60/172/43 63/171/43 61/170/43 58/169/43
|
||||
f 59/176/44 60/175/44 58/174/44 57/173/44
|
||||
f 64/180/45 59/179/45 57/178/45 62/177/45
|
||||
f 63/184/46 64/183/46 62/182/46 61/181/46
|
||||
f 62/188/47 57/187/47 58/186/47 61/185/47
|
||||
f 63/192/48 60/191/48 59/190/48 64/189/48
|
||||
o cube
|
||||
v 0.25 1.9375 0.1875
|
||||
v 0.25 1.9375 -0.1875
|
||||
v 0.25 1.5625 0.1875
|
||||
v 0.25 1.5625 -0.1875
|
||||
v -0.125 1.9375 -0.1875
|
||||
v -0.125 1.9375 0.1875
|
||||
v -0.125 1.5625 -0.1875
|
||||
v -0.125 1.5625 0.1875
|
||||
vt 0 1
|
||||
vt 0.375 1
|
||||
vt 0.375 0.625
|
||||
vt 0 0.625
|
||||
vt 0 1
|
||||
vt 0.375 1
|
||||
vt 0.375 0.625
|
||||
vt 0 0.625
|
||||
vt 0 1
|
||||
vt 0.375 1
|
||||
vt 0.375 0.625
|
||||
vt 0 0.625
|
||||
vt 0 1
|
||||
vt 0.375 1
|
||||
vt 0.375 0.625
|
||||
vt 0 0.625
|
||||
vt 0 1
|
||||
vt 0.375 1
|
||||
vt 0.375 0.625
|
||||
vt 0 0.625
|
||||
vt 0 1
|
||||
vt 0.375 1
|
||||
vt 0.375 0.625
|
||||
vt 0 0.625
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 68/196/49 71/195/49 69/194/49 66/193/49
|
||||
f 67/200/50 68/199/50 66/198/50 65/197/50
|
||||
f 72/204/51 67/203/51 65/202/51 70/201/51
|
||||
f 71/208/52 72/207/52 70/206/52 69/205/52
|
||||
f 70/212/53 65/211/53 66/210/53 69/209/53
|
||||
f 71/216/54 68/215/54 67/214/54 72/213/54
|
|
@ -0,0 +1,22 @@
|
|||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://ctvjxmdm3qep1"
|
||||
path="res://.godot/imported/model.obj-1723858b338ad6ff2290008eeaf5c066.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/model.obj-1723858b338ad6ff2290008eeaf5c066.mesh"]
|
||||
|
||||
source_file="res://models/model.obj"
|
||||
dest_files=["res://.godot/imported/model.obj-1723858b338ad6ff2290008eeaf5c066.mesh", "res://.godot/imported/model.obj-1723858b338ad6ff2290008eeaf5c066.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
|
@ -0,0 +1,12 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://cnu1vf8k5i3tv"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://hf47u08p80fo" path="res://models/pistoletto.dae" id="1_hdcb6"]
|
||||
|
||||
[node name="pistol" type="Node3D"]
|
||||
|
||||
[node name="pistoletto" parent="." instance=ExtResource("1_hdcb6")]
|
||||
transform = Transform3D(0.21, 0, 0, 0, 0.21, 0, 0, 0, 0.21, 0, 0, 0)
|
||||
|
||||
[node name="raycast" type="RayCast3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.461124, 0.0946267, 2.01564e-08)
|
||||
target_position = Vector3(-1, 0, 0)
|
|
@ -0,0 +1,2 @@
|
|||
# Made in Blockbench 4.9.4
|
||||
newmtl none
|
|
@ -0,0 +1,709 @@
|
|||
# Made in Blockbench 4.9.4
|
||||
mtllib pistoletda.mtl
|
||||
|
||||
o cuboid
|
||||
v -0.029506699999999986 -0.5437500000000002 0.31834890625
|
||||
v -0.029506699999999986 -0.5437500000000002 0.46915109374999975
|
||||
v -0.06874999999999995 0.41875 0.36250000000000004
|
||||
v -0.07499999999999996 0.41875 -0.4687500000000002
|
||||
v -0.07499999999999983 0.2694533824900248 -0.46750108536654167
|
||||
v -0.07499999999999983 0.2367966175099752 0.05500108536654147
|
||||
v -0.07499999999999996 0.41875 0.05625000000000002
|
||||
v -0.04889999999999998 0.21875 0.06578125000000001
|
||||
v -0.04889999999999998 0.10624999999999998 0.09078125000000004
|
||||
v -0.04889999999999998 0.031249999999999972 0.35296875000000005
|
||||
v -0.04889999999999998 -0.08750000000000005 0.1720312500000001
|
||||
v -0.04889999999999998 -0.08750000000000005 0.4029687499999999
|
||||
v -0.04889999999999998 -0.15000000000000005 0.18453125000000012
|
||||
v -0.04889999999999998 -0.15000000000000005 0.41546874999999983
|
||||
v -0.029506699999999986 -0.15000000000000005 0.22459890625000006
|
||||
v -0.029506699999999986 -0.15000000000000005 0.37540109374999986
|
||||
v -0.029506699999999986 -0.51875 0.31834890625
|
||||
v -0.029506699999999986 -0.51875 0.46915109374999975
|
||||
v -0.06874999999999995 0.2812499999999999 0.36875
|
||||
v -0.04889999999999998 0.21875 0.29671875000000014
|
||||
v -0.029506699999999986 -0.5437500000000002 0.30584890625
|
||||
v -0.029506699999999986 -0.51875 0.30584890625
|
||||
v -0.029506699999999986 -0.5437500000000002 0.48165109374999976
|
||||
v -0.029506699999999986 -0.51875 0.48165109374999976
|
||||
v -0.04062499999999998 0.40456133288136675 -0.4686845652337528
|
||||
v -0.04374999999999991 0.32618399864410047 -0.46855369570125793
|
||||
v -0.04062499999999998 0.40454046119835163 -0.48118454780865455
|
||||
v -0.04374999999999991 0.32616312696108535 -0.4810536782761597
|
||||
v -0.02085 0.41875 0.3394437499999998
|
||||
v -0.022587500000000003 0.41875 0.25430625000000007
|
||||
v -0.010425 0.4375 0.3181593749999999
|
||||
v -0.011293750000000002 0.4375 0.275590625
|
||||
v -0.08749999999999983 0.24449239740090764 -0.10652031883006599
|
||||
v -0.07499999999999996 0.41875 -0.1500027071457303
|
||||
v -0.04889999999999998 0.20844521716112602 0.04594744793991074
|
||||
v -0.010469657779394929 0.21909128859118487 0.038845172507859946
|
||||
v -0.04889999999999998 0.15519184638633401 0.048519558738502985
|
||||
v -0.008798571694057046 0.22368255987661545 -0.012907807314820708
|
||||
v -0.02445000000000001 0.12784985517052427 0.01036821060770544
|
||||
v -0.02445000000000001 0.10859199121580962 0.01643259813079758
|
||||
v -0.02445000000000001 0.1286268638217558 -0.10102251730650574
|
||||
v -0.02445000000000001 0.10936899986704116 -0.09495812978341361
|
||||
v -0.02445000000000006 0.1286019559145472 -0.17331526980367568
|
||||
v -0.02445000000000006 0.1093484475032565 -0.17939347134565264
|
||||
v -0.016474818337346025 0.13846975038340695 -0.02475043988131545
|
||||
v -0.01628373642090237 0.1372633066440338 -0.01181219492564528
|
||||
v -0.02472500000000003 0.17235818289134938 -0.1614920816793832
|
||||
v -0.024725000000000004 0.1723706368449537 -0.12534570543079823
|
||||
v -0.011253538090342498 0.16976009700783365 -0.006219562359150502
|
||||
v -0.011719677677956519 0.16736201672037104 0.019656927552189805
|
||||
v 0.029506699999999986 -0.5437500000000002 0.31834890625
|
||||
v 0.029506699999999986 -0.5437500000000002 0.46915109374999975
|
||||
v 0.06874999999999995 0.41875 0.36250000000000004
|
||||
v 0.07499999999999996 0.41875 -0.4687500000000002
|
||||
v 0.07499999999999983 0.2694533824900248 -0.46750108536654167
|
||||
v 0.07499999999999983 0.2367966175099752 0.05500108536654147
|
||||
v 0.07499999999999996 0.41875 0.05625000000000002
|
||||
v 0.04889999999999998 0.21875 0.06578125000000001
|
||||
v 0.04889999999999998 0.10624999999999998 0.09078125000000004
|
||||
v 0.04889999999999998 0.031249999999999972 0.35296875000000005
|
||||
v 0.04889999999999998 -0.08750000000000005 0.1720312500000001
|
||||
v 0.04889999999999998 -0.08750000000000005 0.4029687499999999
|
||||
v 0.04889999999999998 -0.15000000000000005 0.18453125000000012
|
||||
v 0.04889999999999998 -0.15000000000000005 0.41546874999999983
|
||||
v 0.029506699999999986 -0.15000000000000005 0.22459890625000006
|
||||
v 0.029506699999999986 -0.15000000000000005 0.37540109374999986
|
||||
v 0.029506699999999986 -0.51875 0.31834890625
|
||||
v 0.029506699999999986 -0.51875 0.46915109374999975
|
||||
v 0.06874999999999995 0.2812499999999999 0.36875
|
||||
v 0.04889999999999998 0.21875 0.29671875000000014
|
||||
v 0.029506699999999986 -0.5437500000000002 0.30584890625
|
||||
v 0.029506699999999986 -0.51875 0.30584890625
|
||||
v 0.029506699999999986 -0.5437500000000002 0.48165109374999976
|
||||
v 0.029506699999999986 -0.51875 0.48165109374999976
|
||||
v 0.04062499999999998 0.40456133288136675 -0.4686845652337528
|
||||
v 0.04374999999999991 0.32618399864410047 -0.46855369570125793
|
||||
v 0.04062499999999998 0.40454046119835163 -0.48118454780865455
|
||||
v 0.04374999999999991 0.32616312696108535 -0.4810536782761597
|
||||
v 0.02085 0.41875 0.3394437499999998
|
||||
v 0.022587500000000003 0.41875 0.25430625000000007
|
||||
v 0.010425 0.4375 0.3181593749999999
|
||||
v 0.011293750000000002 0.4375 0.275590625
|
||||
v 0.08749999999999983 0.24449239740090764 -0.10652031883006599
|
||||
v 0.07499999999999996 0.41875 -0.1500027071457303
|
||||
v 0.04889999999999998 0.20844521716112602 0.04594744793991074
|
||||
v 0.010469657779394929 0.21909128859118487 0.038845172507859946
|
||||
v 0.04889999999999998 0.15519184638633401 0.048519558738502985
|
||||
v 0.008798571694057046 0.22368255987661545 -0.012907807314820708
|
||||
v 0.02445000000000001 0.12784985517052427 0.01036821060770544
|
||||
v 0.02445000000000001 0.10859199121580962 0.01643259813079758
|
||||
v 0.02445000000000001 0.1286268638217558 -0.10102251730650574
|
||||
v 0.02445000000000001 0.10936899986704116 -0.09495812978341361
|
||||
v 0.02445000000000006 0.1286019559145472 -0.17331526980367568
|
||||
v 0.02445000000000006 0.1093484475032565 -0.17939347134565264
|
||||
v 0.016474818337346025 0.13846975038340695 -0.02475043988131545
|
||||
v 0.01628373642090237 0.1372633066440338 -0.01181219492564528
|
||||
v 0.02472500000000003 0.17235818289134938 -0.1614920816793832
|
||||
v 0.024725000000000004 0.1723706368449537 -0.12534570543079823
|
||||
v 0.011253538090342498 0.16976009700783365 -0.006219562359150502
|
||||
v 0.011719677677956519 0.16736201672037104 0.019656927552189805
|
||||
vt 0.282121875 0.5504
|
||||
vt 0.282121875 0.475
|
||||
vt 0.311628125 0.475
|
||||
vt 0.311628125 0.5504
|
||||
vt 0.2390625 0.25
|
||||
vt 0.1984375 0.25
|
||||
vt 0.196875 0.21875
|
||||
vt 0.240625 0.21875
|
||||
vt 0.8333375 0.5
|
||||
vt 0.833771875 0.53125
|
||||
vt 0.822478125 0.53125
|
||||
vt 0.8229125 0.5
|
||||
vt 0.46875 0.25
|
||||
vt 0.46875 0.3125
|
||||
vt 0.40625 0.3125
|
||||
vt 0.40625 0.25
|
||||
vt 0.084375 0.30000000000000004
|
||||
vt 0.084375 0.40312499999999996
|
||||
vt 0.009375000000000001 0.40312499999999996
|
||||
vt 0.009375000000000001 0.30000000000000004
|
||||
vt 0.72555 0.5579093749999999
|
||||
vt 0.77445 0.5579093749999999
|
||||
vt 0.755234375 0.564309375
|
||||
vt 0.744765625 0.564309375
|
||||
vt 0.647425 0.25
|
||||
vt 0.696325 0.25
|
||||
vt 0.70625 0.3125
|
||||
vt 0.6375 0.3125
|
||||
vt 0.72555 0.53125
|
||||
vt 0.77445 0.53125
|
||||
vt 0.77445 0.5579093749999999
|
||||
vt 0.72555 0.5579093749999999
|
||||
vt 0.6318 0.46462187499999996
|
||||
vt 0.6807 0.46462187499999996
|
||||
vt 0.6807 0.5625
|
||||
vt 0.6318 0.5625
|
||||
vt 0.35055000000000003 0.75061875
|
||||
vt 0.39944999999999997 0.75061875
|
||||
vt 0.39944999999999997 0.855665625
|
||||
vt 0.35055000000000003 0.855665625
|
||||
vt 0.6318 0.400196875
|
||||
vt 0.6807 0.400196875
|
||||
vt 0.6807 0.46462187499999996
|
||||
vt 0.6318 0.46462187499999996
|
||||
vt 0.35055000000000003 0.71875
|
||||
vt 0.39944999999999997 0.71875
|
||||
vt 0.39944999999999997 0.75061875
|
||||
vt 0.35055000000000003 0.75061875
|
||||
vt 0.6318 0.368328125
|
||||
vt 0.6807 0.368328125
|
||||
vt 0.6807 0.400196875
|
||||
vt 0.6318 0.400196875
|
||||
vt 0.577253125 0.770034375
|
||||
vt 0.547746875 0.770034375
|
||||
vt 0.53805 0.75
|
||||
vt 0.58695 0.75
|
||||
vt 0.547746875 0.845434375
|
||||
vt 0.577253125 0.845434375
|
||||
vt 0.58695 0.86546875
|
||||
vt 0.53805 0.86546875
|
||||
vt 0.6875 0.6875
|
||||
vt 0.71875 0.6875
|
||||
vt 0.71875 0.875
|
||||
vt 0.6875 0.875
|
||||
vt 0.125 0.125
|
||||
vt 0.15625 0.125
|
||||
vt 0.15625 0.3125
|
||||
vt 0.125 0.3125
|
||||
vt 0.625 0.75
|
||||
vt 0.65625 0.75
|
||||
vt 0.65625 0.78125
|
||||
vt 0.625 0.78125
|
||||
vt 0.75 0.6875
|
||||
vt 0.78125 0.6875
|
||||
vt 0.78125 0.71875
|
||||
vt 0.75 0.71875
|
||||
vt 0.282121875 0.46875
|
||||
vt 0.311628125 0.46875
|
||||
vt 0.311628125 0.475
|
||||
vt 0.282121875 0.475
|
||||
vt 0.53125 0.25
|
||||
vt 0.5 0.25
|
||||
vt 0.5 0.21875
|
||||
vt 0.53125 0.21875
|
||||
vt 0.311628125 0.55665
|
||||
vt 0.282121875 0.55665
|
||||
vt 0.282121875 0.5504
|
||||
vt 0.311628125 0.5504
|
||||
vt 0.5625 0.21875
|
||||
vt 0.59375 0.21875
|
||||
vt 0.59375 0.25
|
||||
vt 0.5625 0.25
|
||||
vt 0.02656194936110779 0.8800568432860625
|
||||
vt 0.06718694887092802 0.8800505324140259
|
||||
vt 0.08437555063889221 0.8871416123441097
|
||||
vt 0.00937555154383947 0.8871532631847927
|
||||
vt 0.06874944932956746 0.8408710045443022
|
||||
vt 0.024999449361107793 0.8408693432860626
|
||||
vt 0.0093755265796793 0.8125
|
||||
vt 0.08437552652561016 0.8125028478712679
|
||||
vt 0.4375 0.1875
|
||||
vt 0.46875 0.1875
|
||||
vt 0.46875 0.21875
|
||||
vt 0.4375 0.21875
|
||||
vt 0.375 0.1875
|
||||
vt 0.40625 0.1875
|
||||
vt 0.40625 0.21875
|
||||
vt 0.375 0.21875
|
||||
vt 0.03558125 0.20097187500000002
|
||||
vt 0.05816875 0.20097187500000002
|
||||
vt 0.084375 0.30000000000000004
|
||||
vt 0.009375000000000001 0.30000000000000004
|
||||
vt 0.057300000000000004 0.15840312499999998
|
||||
vt 0.03645 0.15840312499999998
|
||||
vt 0.012499999999999997 0.14687499999999998
|
||||
vt 0.08124999999999999 0.14687499999999998
|
||||
vt 0.271271875 0.1875
|
||||
vt 0.259978125 0.1875
|
||||
vt 0.25433125 0.15625
|
||||
vt 0.27691875 0.15625
|
||||
vt 0.8333375 0.71875
|
||||
vt 0.8229125 0.71875
|
||||
vt 0.8177 0.6875
|
||||
vt 0.83855 0.6875
|
||||
vt 0.5093749166282874 0.5431354865986693
|
||||
vt 0.5031249166282873 0.36221361159866927
|
||||
vt 0.5906249166282873 0.36221361159866927
|
||||
vt 0.5843749166282873 0.5431354865986693
|
||||
vt 0.009375000000000001 0.5625
|
||||
vt 0.009375000000000001 0.40312499999999996
|
||||
vt 0.084375 0.40312499999999996
|
||||
vt 0.084375 0.5625
|
||||
vt 0.77785 0.19608749999999997
|
||||
vt 0.7534 0.19608749999999997
|
||||
vt 0.7534 0.18599062499999997
|
||||
vt 0.77785 0.18599062499999997
|
||||
vt 0.336265625 0.15625
|
||||
vt 0.3363625 0.1875
|
||||
vt 0.3198875 0.1875
|
||||
vt 0.319984375 0.15625
|
||||
vt 0.5512749166282873 0.3142636115986692
|
||||
vt 0.5906249166282873 0.36221361159866927
|
||||
vt 0.5031249166282873 0.36221361159866927
|
||||
vt 0.5424749166282873 0.3142636115986692
|
||||
vt 0.737775 0.46875
|
||||
vt 0.762225 0.46875
|
||||
vt 0.77445 0.5
|
||||
vt 0.72555 0.5
|
||||
vt 0.456525 0.816665625
|
||||
vt 0.48097500000000004 0.816665625
|
||||
vt 0.49319999999999997 0.8538593750000001
|
||||
vt 0.44430000000000003 0.853859375
|
||||
vt 0.65625 0.875
|
||||
vt 0.625 0.875
|
||||
vt 0.625 0.8125
|
||||
vt 0.65625 0.8125
|
||||
vt 0.456525 0.76096875
|
||||
vt 0.48097500000000004 0.76096875
|
||||
vt 0.48097500000000004 0.816665625
|
||||
vt 0.456525 0.816665625
|
||||
vt 0.75 0.25
|
||||
vt 0.78125 0.25
|
||||
vt 0.78125 0.28125
|
||||
vt 0.75 0.28125
|
||||
vt 0.456525 0.71875
|
||||
vt 0.48097500000000004 0.71875
|
||||
vt 0.48097500000000004 0.76096875
|
||||
vt 0.456525 0.76096875
|
||||
vt 0.572496875 0.15625
|
||||
vt 0.583753125 0.15625
|
||||
vt 0.582525 0.1875
|
||||
vt 0.573725 0.1875
|
||||
vt 0.822265625 0.959275
|
||||
vt 0.833984375 0.959275
|
||||
vt 0.833359375 0.9868625
|
||||
vt 0.822890625 0.9868625
|
||||
vt 0.8198875 0.5625
|
||||
vt 0.8363625 0.5625
|
||||
vt 0.833753125 0.59375
|
||||
vt 0.822496875 0.59375
|
||||
vt 0.819984375 0.9375
|
||||
vt 0.836265625 0.9375
|
||||
vt 0.833984375 0.959275
|
||||
vt 0.822265625 0.959275
|
||||
vt 0.7779875 0.21875
|
||||
vt 0.7532625 0.21875
|
||||
vt 0.7534 0.19608749999999997
|
||||
vt 0.77785 0.19608749999999997
|
||||
vt 0.2154875 0.1875
|
||||
vt 0.1907625 0.1875
|
||||
vt 0.19090000000000001 0.15625
|
||||
vt 0.21534999999999999 0.15625
|
||||
vt 0.1857375 0.37812500000000004
|
||||
vt 0.1857375 0.3656250000000001
|
||||
vt 0.2611375 0.3656250000000001
|
||||
vt 0.2611375 0.37812500000000004
|
||||
vt 0.14350967903105108 0.94375
|
||||
vt 0.18413467903105107 0.846875
|
||||
vt 0.2996034290310511 0.846875
|
||||
vt 0.27460342903105106 0.90625
|
||||
vt 0.18413467903105107 0.846875
|
||||
vt 0.19038467903105108 0.815625
|
||||
vt 0.30585342903105106 0.815625
|
||||
vt 0.2996034290310511 0.846875
|
||||
vt 0.53805 0.75
|
||||
vt 0.547746875 0.770034375
|
||||
vt 0.547746875 0.845434375
|
||||
vt 0.53805 0.86546875
|
||||
vt 0.1388625 0.5625
|
||||
vt 0.1857375 0.37812500000000004
|
||||
vt 0.2611375 0.37812500000000004
|
||||
vt 0.21426250000000002 0.5625
|
||||
vt 0.2054705829083111 0.30031454930939216
|
||||
vt 0.2108612079083111 0.28444892430939217
|
||||
vt 0.3263299579083111 0.28444892430939217
|
||||
vt 0.3623455829083111 0.3103864243093921
|
||||
vt 0.13100967903105107 1
|
||||
vt 0.14350967903105108 0.94375
|
||||
vt 0.27460342903105106 0.90625
|
||||
vt 0.24647842903105105 1
|
||||
vt 0.3876515972471376 0.6851098970706792
|
||||
vt 0.4088105251353884 0.597616038942963
|
||||
vt 0.48981363038017356 0.59375
|
||||
vt 0.4904359683173213 0.684340621820905
|
||||
vt 0.49043863038017355 0.684728125
|
||||
vt 0.48981363038017356 0.59375
|
||||
vt 0.6467198803801736 0.615978125
|
||||
vt 0.6435948803801735 0.684728125
|
||||
vt 0.1857375 0.37812500000000004
|
||||
vt 0.17948750000000002 0.37812500000000004
|
||||
vt 0.17948750000000002 0.3656250000000001
|
||||
vt 0.1857375 0.3656250000000001
|
||||
vt 0.2611375 0.3656250000000001
|
||||
vt 0.2673875 0.3656250000000001
|
||||
vt 0.2673875 0.37812500000000004
|
||||
vt 0.2611375 0.37812500000000004
|
||||
vt 0.0843709342993999 0.88715656602386
|
||||
vt 0.06718397330860035 0.8800583857699948
|
||||
vt 0.06874944932956746 0.8408710045443022
|
||||
vt 0.0843734784618089 0.8125065660018046
|
||||
vt 0.71875 0.21875
|
||||
vt 0.6875 0.21875
|
||||
vt 0.6875 0.1875
|
||||
vt 0.71875 0.1875
|
||||
vt 0.012499999999999997 0.14687499999999998
|
||||
vt 0.03645 0.15840312499999998
|
||||
vt 0.03558125 0.20097187500000002
|
||||
vt 0.009375000000000001 0.30000000000000004
|
||||
vt 0.8025390625 0.75
|
||||
vt 0.7920046875 0.78125
|
||||
vt 0.7707140625 0.78125
|
||||
vt 0.7599609375 0.75
|
||||
vt 0.4088109792112786 0.5976141613028612
|
||||
vt 0.3876515972471376 0.6851098970706792
|
||||
vt 0.22828011961982642 0.6861694931670557
|
||||
vt 0.2284100666656519 0.6117076085269533
|
||||
vt 0.13100967903105107 1
|
||||
vt 0.12109405403105107 0.994846875
|
||||
vt 0.12237842903105108 0.968221875
|
||||
vt 0.14350967903105108 0.94375
|
||||
vt 0.5523710526955196 0.28829500329210744
|
||||
vt 0.5906249166282873 0.36221361159866927
|
||||
vt 0.5512765832594778 0.3142656424745418
|
||||
vt 0.12237842903105108 0.968221875
|
||||
vt 0.10100584864927373 0.9526195425292573
|
||||
vt 0.104474539127203 0.9431386106562386
|
||||
vt 0.14312231471603176 0.9441986024772133
|
||||
vt 0.10100584864927373 0.9526195425292573
|
||||
vt 0.04534947496545675 0.9504608138795771
|
||||
vt 0.04882076616625128 0.9409814489190148
|
||||
vt 0.10447401811626256 0.9431400347294625
|
||||
vt 0.04534947496545675 0.9504608138795771
|
||||
vt 0.009244073125666732 0.9487962483807795
|
||||
vt 0.006646570968948939 0.9390423256859621
|
||||
vt 0.04882076616625128 0.9409814489190148
|
||||
vt 0.7399985271819809 0.4375
|
||||
vt 0.743357902181981 0.41051250000000006
|
||||
vt 0.7562985271819809 0.40931249999999997
|
||||
vt 0.765882902181981 0.43518750000000006
|
||||
vt 0.743357902181981 0.41051250000000006
|
||||
vt 0.734117097818019 0.39463395568785953
|
||||
vt 0.7405894449574038 0.39406405485400864
|
||||
vt 0.7562904589125373 0.40931324818050385
|
||||
vt 0.04534947496545676 0.9504608138795771
|
||||
vt 0.03220293409968965 0.9717571630656545
|
||||
vt 0.014147111445988944 0.9709247374770231
|
||||
vt 0.009244073125666732 0.9487962483807795
|
||||
vt 0.5906250833717127 0.3622139337998975
|
||||
vt 0.5523710526955196 0.28829500329210744
|
||||
vt 0.5860590527145313 0.28125032220122825
|
||||
vt 0.875 0.46875
|
||||
vt 0.8405792598348666 0.46875
|
||||
vt 0.8580567340196208 0.4585162068090871
|
||||
vt 0.2001544170916889 0.28125
|
||||
vt 0.2108612079083111 0.28444892430939217
|
||||
vt 0.2054706973720894 0.30031421242092693
|
||||
vt 0.3326125 0.3656250000000001
|
||||
vt 0.4080125 0.3656250000000001
|
||||
vt 0.4080125 0.37812500000000004
|
||||
vt 0.3326125 0.37812500000000004
|
||||
vt 0.012896831474419168 0.628125
|
||||
vt 0.12836558147441918 0.628125
|
||||
vt 0.16899058147441917 0.725
|
||||
vt 0.03789683147441916 0.6875
|
||||
vt 0.0066468314744191626 0.596875
|
||||
vt 0.12211558147441916 0.596875
|
||||
vt 0.12836558147441918 0.628125
|
||||
vt 0.012896831474419168 0.628125
|
||||
vt 0.577253125 0.845434375
|
||||
vt 0.577253125 0.770034375
|
||||
vt 0.58695 0.75
|
||||
vt 0.58695 0.86546875
|
||||
vt 0.3326125 0.37812500000000004
|
||||
vt 0.4080125 0.37812500000000004
|
||||
vt 0.4548875 0.5625
|
||||
vt 0.3794875 0.5625
|
||||
vt 0.7361700420916889 0.6281989243093922
|
||||
vt 0.8516387920916889 0.6281989243093922
|
||||
vt 0.8570294170916889 0.6440645493093922
|
||||
vt 0.7001544170916889 0.6541364243093921
|
||||
vt 0.03789683147441916 0.6875
|
||||
vt 0.16899058147441917 0.725
|
||||
vt 0.18149058147441915 0.78125
|
||||
vt 0.06602183147441917 0.78125
|
||||
vt 0.5101863696198264 0.90625
|
||||
vt 0.5911894748646116 0.910116038942963
|
||||
vt 0.6123484027528624 0.9976098970706792
|
||||
vt 0.5095640316826787 0.996840621820905
|
||||
vt 0.3532801196198264 0.928478125
|
||||
vt 0.5101863696198264 0.90625
|
||||
vt 0.5095613696198265 0.997228125
|
||||
vt 0.3564051196198264 0.997228125
|
||||
vt 0.78125 0.3125
|
||||
vt 0.78125 0.34375
|
||||
vt 0.75 0.34375
|
||||
vt 0.75 0.3125
|
||||
vt 0.3263625 0.37812500000000004
|
||||
vt 0.3263625 0.3656250000000001
|
||||
vt 0.3326125 0.3656250000000001
|
||||
vt 0.3326125 0.37812500000000004
|
||||
vt 0.024999449361107793 0.8408693432860626
|
||||
vt 0.02656194936110779 0.8800568432860625
|
||||
vt 0.00937444936110779 0.8871537182860625
|
||||
vt 0.00937757436110779 0.8125037182860625
|
||||
vt 0.625 0.1875
|
||||
vt 0.65625 0.1875
|
||||
vt 0.65625 0.21875
|
||||
vt 0.625 0.21875
|
||||
vt 0.05816875 0.20097187500000002
|
||||
vt 0.0573 0.15840312499999998
|
||||
vt 0.08124999999999999 0.14687499999999998
|
||||
vt 0.084375 0.30000000000000004
|
||||
vt 0.3230359375 0.25
|
||||
vt 0.3017453125 0.25
|
||||
vt 0.2912109375 0.21875
|
||||
vt 0.3337890625 0.21875
|
||||
vt 0.7717198803801736 0.9986694931670557
|
||||
vt 0.6123484027528624 0.9976098970706792
|
||||
vt 0.5911890207887214 0.910114161302861
|
||||
vt 0.7715899333343481 0.9242076085269533
|
||||
vt 0.19012183147441916 0.749471875
|
||||
vt 0.19140620647441917 0.776096875
|
||||
vt 0.18149058147441915 0.78125
|
||||
vt 0.16899058147441917 0.725
|
||||
vt 0.5031249166282873 0.36221361159866927
|
||||
vt 0.541378780561055 0.28829500329210744
|
||||
vt 0.5424732499970968 0.3142656424745418
|
||||
vt 0.20802572137826722 0.7243886106562386
|
||||
vt 0.21149441185619652 0.7338695425292574
|
||||
vt 0.19012183147441916 0.749471875
|
||||
vt 0.1693779457894385 0.7254486024772133
|
||||
vt 0.2636789733282785 0.7222300248457909
|
||||
vt 0.267150264529073 0.7317093898063531
|
||||
vt 0.21149389084525605 0.7338681184560334
|
||||
vt 0.20802572137826722 0.7243886106562386
|
||||
vt 0.30585316852558087 0.7202909016127383
|
||||
vt 0.30325566636886303 0.7300448243075556
|
||||
vt 0.267150264529073 0.7317093898063532
|
||||
vt 0.2636789733282785 0.7222300248457909
|
||||
vt 0.7749555069527408 0.8468125
|
||||
vt 0.7878961319527409 0.8480125000000001
|
||||
vt 0.7912555069527408 0.875
|
||||
vt 0.7653711319527409 0.8726875000000001
|
||||
vt 0.7906565209078744 0.8315633066735049
|
||||
vt 0.7971288680472591 0.8321332075073558
|
||||
vt 0.7878880636832972 0.8480117518194962
|
||||
vt 0.7749555069527408 0.8468125
|
||||
vt 0.2983526280485408 0.7521733134037993
|
||||
vt 0.28029680539484003 0.7530057389924307
|
||||
vt 0.267150264529073 0.7317093898063532
|
||||
vt 0.30325566636886303 0.7300448243075556
|
||||
vt 0.5413789473044804 0.2882946810908792
|
||||
vt 0.5031249166282873 0.36221361159866927
|
||||
vt 0.5076909472854687 0.28125
|
||||
vt 0.5102337931909129 0.1530792598348666
|
||||
vt 0.5102337931909129 0.1875
|
||||
vt 0.5 0.1705567340196208
|
||||
vt 0.8516387920916889 0.6281989243093922
|
||||
vt 0.8623455829083111 0.625
|
||||
vt 0.8570293026279105 0.6440642124209269
|
||||
vn 0 -1 0
|
||||
vn 0 -0.001669734641210571 -0.9999986059921424
|
||||
vn 0 1 0
|
||||
vn 0 0.045407660918649784 0.9989685402102997
|
||||
vn 0 1 0
|
||||
vn 0 -0.5549649411032079 -0.8318737369014082
|
||||
vn 0 -0.7553105403859344 0.6553670632415914
|
||||
vn 0 -0.04824325366519564 -0.9988356163432478
|
||||
vn 0 0.28734788556634494 0.9578262852211515
|
||||
vn 0 -0.38672667625067453 -0.9221943818285308
|
||||
vn 0 0.3880570000581315 0.9216353751380658
|
||||
vn 0 -0.19611613513818418 -0.9805806756909201
|
||||
vn 0 0.19611613513818338 0.9805806756909203
|
||||
vn 0 -1 0
|
||||
vn 0 -1 0
|
||||
vn 0 -0.24639877909159877 -0.9691685310936224
|
||||
vn 0 0.2463987790915986 0.9691685310936224
|
||||
vn 0 0 -1
|
||||
vn 0 0 1
|
||||
vn 0 -1 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
vn 0 1 0
|
||||
vn 0 -0.0046117136913912385 -0.9999893659918733
|
||||
vn 0 -0.018551344252963564 -0.999827909005549
|
||||
vn 0 0.9999986059921425 -0.001669734641209789
|
||||
vn 0 -0.9999986059921424 0.0016697346412097886
|
||||
vn 0 1 0
|
||||
vn 0 1 0
|
||||
vn 0 0.7503681023408861 -0.6610202046755738
|
||||
vn 0 0.7503681023408861 0.6610202046755739
|
||||
vn 0 -0.9976178378468323 -0.06898296608447115
|
||||
vn 0 1 0
|
||||
vn 0 0.3010478781501444 -0.9536090263107287
|
||||
vn 0 -0.9956807082909853 -0.09284356271256418
|
||||
vn 0 -0.97617147371828 -0.2170005850192155
|
||||
vn 0 0.8128151935674142 -0.5825216400323401
|
||||
vn 0 -0.9995042402321033 -0.03148450028261663
|
||||
vn 0 0.9999756719230746 0.006975353897531805
|
||||
vn 0 -0.9999756719230746 -0.006975353897531803
|
||||
vn 0 0.9999999406453262 -0.00034454222408026805
|
||||
vn 0 -0.9999999703759104 0.00024340948701756062
|
||||
vn 0 -0.123091247835108 -0.9923953570560455
|
||||
vn 0 -0.34778059498693337 0.9375759477239883
|
||||
vn 0 0.5095673090247187 -0.8604307976666729
|
||||
vn 0 -0.7226669741644133 0.6911963863129287
|
||||
vn 0 0.2608510603957077 -0.965379057308804
|
||||
vn 0 0.48596491711196277 0.8739783174291932
|
||||
vn -1 0 0
|
||||
vn -1 0 0
|
||||
vn -1 0 0
|
||||
vn 0 -1 0
|
||||
vn -1 0 0
|
||||
vn -0.5687281344121056 -0.8225255674616602 0
|
||||
vn -1 0 0
|
||||
vn -0.992496576136477 0.09144782105381558 0.08116552458944547
|
||||
vn -0.9998012525008254 -0.00013683797693984372 0.019935816340162994
|
||||
vn -1 0 0
|
||||
vn -1 0 0
|
||||
vn 0.001194690135021918 -0.001717367069094012 -0.9999978116805214
|
||||
vn -0.9992060915293383 0.03983945563841803 -0.00006652141189777811
|
||||
vn 0 1 0
|
||||
vn -0.8652090788081117 0.5011002581430316 0.017657328138941122
|
||||
vn -0.9974370834279243 0.07154903635127748 0
|
||||
vn -1 0 0
|
||||
vn -0.15061017944503302 -0.9842858583396298 -0.09218417933763436
|
||||
vn -0.8768894300418022 -0.1443824592922636 -0.45849605552248895
|
||||
vn -1 0 0
|
||||
vn -1 -2.1213190136722787e-16 6.719558933790427e-16
|
||||
vn -0.9989452182060938 0.0437505916083406 -0.013940471910941409
|
||||
vn -0.9885596717686322 0.14813004931600485 0.028412388888161257
|
||||
vn -0.9999802474254373 -0.006285280763139086 0.000002165544742403895
|
||||
vn -0.27031267778105567 -0.9624495790747458 -0.024937200518104684
|
||||
vn -0.21133651274958745 0.11538700871428621 -0.9705785473617337
|
||||
vn -0.6265919925615746 -0.6915756395740456 0.3593126905711313
|
||||
vn 1 0 0
|
||||
vn 1 0 0
|
||||
vn 1 0 0
|
||||
vn 0 -1 0
|
||||
vn 1 0 0
|
||||
vn 0.5687281344121056 -0.8225255674616601 0
|
||||
vn 1 0 0
|
||||
vn 0.992496576136477 0.09144782105381556 0.08116552458944547
|
||||
vn 0.9998012525008254 -0.0001368379769398451 0.019935816340162994
|
||||
vn 1 0 0
|
||||
vn 1 0 0
|
||||
vn -0.001194690135021918 -0.0017173670690940116 -0.9999978116805214
|
||||
vn 0.9992060915293383 0.03983945563841803 -0.0000665214118977465
|
||||
vn 0 1 0
|
||||
vn 0.8652090788081117 0.5011002581430316 0.017657328138941112
|
||||
vn 0.9974370834279243 0.07154903635127748 0
|
||||
vn 1 0 0
|
||||
vn 0.15061017944503302 -0.98428585833963 -0.09218417933763448
|
||||
vn 0.8768894300418022 -0.14438245929226376 -0.45849605552248884
|
||||
vn 1 0 0
|
||||
vn 1 -2.1213190136722763e-16 6.719558933790428e-16
|
||||
vn 0.9989452182060938 0.043750591608340605 -0.013940471910941402
|
||||
vn 0.9885596717686322 0.14813004931600482 0.028412388888161264
|
||||
vn 0.9999802474254373 -0.006285280763139084 0.000002165544742403917
|
||||
vn 0.2703126777810558 -0.9624495790747458 -0.02493720051810468
|
||||
vn 0.21133651274958745 0.11538700871428618 -0.9705785473617337
|
||||
vn 0.6265919925615746 -0.6915756395740457 0.35931269057113135
|
||||
usemtl none
|
||||
f 2/1/1 1/2/1 51/3/1 52/4/1
|
||||
f 27/5/2 77/6/2 78/7/2 28/8/2
|
||||
f 81/9/3 82/10/3 32/11/3 31/12/3
|
||||
f 69/13/4 53/14/4 3/15/4 19/16/4
|
||||
f 57/17/5 84/18/5 34/19/5 7/20/5
|
||||
f 85/21/6 35/22/6 36/23/6 86/24/6
|
||||
f 20/25/7 70/26/7 69/27/7 19/28/7
|
||||
f 87/29/8 37/30/8 35/31/8 85/32/8
|
||||
f 10/33/9 60/34/9 70/35/9 20/36/9
|
||||
f 61/37/10 11/38/10 9/39/10 59/40/10
|
||||
f 12/41/11 62/42/11 60/43/11 10/44/11
|
||||
f 63/45/12 13/46/12 11/47/12 61/48/12
|
||||
f 14/49/13 64/50/13 62/51/13 12/52/13
|
||||
f 65/53/14 15/54/14 13/55/14 63/56/14
|
||||
f 16/57/15 66/58/15 64/59/15 14/60/15
|
||||
f 67/61/16 17/62/16 15/63/16 65/64/16
|
||||
f 18/65/17 68/66/17 66/67/17 16/68/17
|
||||
f 71/69/18 21/70/18 22/71/18 72/72/18
|
||||
f 23/73/19 73/74/19 74/75/19 24/76/19
|
||||
f 21/77/20 71/78/20 51/79/20 1/80/20
|
||||
f 72/81/21 22/82/21 17/83/21 67/84/21
|
||||
f 73/85/22 23/86/22 2/87/22 52/88/22
|
||||
f 24/89/23 74/90/23 68/91/23 18/92/23
|
||||
f 75/93/24 25/94/24 4/95/24 54/96/24
|
||||
f 26/97/25 76/98/25 55/99/25 5/100/25
|
||||
f 77/101/26 27/102/26 25/103/26 75/104/26
|
||||
f 28/105/27 78/106/27 76/107/27 26/108/27
|
||||
f 30/109/28 80/110/28 57/111/28 7/112/28
|
||||
f 79/113/29 29/114/29 3/115/29 53/116/29
|
||||
f 32/117/30 82/118/30 80/119/30 30/120/30
|
||||
f 81/121/31 31/122/31 29/123/31 79/124/31
|
||||
f 55/125/32 83/126/32 33/127/32 5/128/32
|
||||
f 4/129/33 34/130/33 84/131/33 54/132/33
|
||||
f 43/133/34 93/134/34 94/135/34 44/136/34
|
||||
f 46/137/35 45/138/35 95/139/35 96/140/35
|
||||
f 38/141/36 33/142/36 83/143/36 88/144/36
|
||||
f 89/145/37 39/146/37 37/147/37 87/148/37
|
||||
f 40/149/38 90/150/38 59/151/38 9/152/38
|
||||
f 91/153/39 41/154/39 39/155/39 89/156/39
|
||||
f 42/157/40 92/158/40 90/159/40 40/160/40
|
||||
f 97/161/41 47/162/41 48/163/41 98/164/41
|
||||
f 44/165/42 94/166/42 92/167/42 42/168/42
|
||||
f 99/169/43 49/170/43 38/171/43 88/172/43
|
||||
f 50/173/44 100/174/44 86/175/44 36/176/44
|
||||
f 95/177/45 45/178/45 49/179/45 99/180/45
|
||||
f 46/181/46 96/182/46 100/183/46 50/184/46
|
||||
f 47/185/47 97/186/47 93/187/47 43/188/47
|
||||
f 98/189/48 48/190/48 41/191/48 91/192/48
|
||||
f 17/193/49 1/194/49 2/195/49 18/196/49
|
||||
f 9/197/50 11/198/50 12/199/50 10/200/50
|
||||
f 11/201/51 13/202/51 14/203/51 12/204/51
|
||||
f 13/205/52 15/206/52 16/207/52 14/208/52
|
||||
f 15/209/53 17/210/53 18/211/53 16/212/53
|
||||
f 6/213/54 8/214/54 20/215/54 19/216/54
|
||||
f 8/217/55 9/218/55 10/219/55 20/220/55
|
||||
f 34/221/56 33/222/56 6/223/56 7/224/56
|
||||
f 7/225/57 6/226/57 19/227/57 3/228/57
|
||||
f 17/229/58 22/230/58 21/231/58 1/232/58
|
||||
f 2/233/59 23/234/59 24/235/59 18/236/59
|
||||
f 4/237/60 25/238/60 26/239/60 5/240/60
|
||||
f 25/241/61 27/242/61 28/243/61 26/244/61
|
||||
f 3/245/62 29/246/62 30/247/62 7/248/62
|
||||
f 29/249/63 31/250/63 32/251/63 30/252/63
|
||||
f 33/253/64 34/254/64 4/255/64 5/256/64
|
||||
f 8/257/65 35/258/65 37/259/65 9/260/65
|
||||
f 36/261/66 33/262/66 38/263/66
|
||||
f 37/264/67 39/265/67 40/266/67 9/267/67
|
||||
f 39/268/68 41/269/68 42/270/68 40/271/68
|
||||
f 41/272/69 43/273/69 44/274/69 42/275/69
|
||||
f 38/276/70 49/277/70 50/278/70 36/279/70
|
||||
f 49/280/71 45/281/71 46/282/71 50/283/71
|
||||
f 41/284/72 48/285/72 47/286/72 43/287/72
|
||||
f 33/288/73 36/289/73 6/290/73
|
||||
f 6/291/74 36/292/74 35/293/74
|
||||
f 35/294/75 8/295/75 6/296/75
|
||||
f 52/297/76 51/298/76 67/299/76 68/300/76
|
||||
f 62/301/77 61/302/77 59/303/77 60/304/77
|
||||
f 64/305/78 63/306/78 61/307/78 62/308/78
|
||||
f 66/309/79 65/310/79 63/311/79 64/312/79
|
||||
f 68/313/80 67/314/80 65/315/80 66/316/80
|
||||
f 70/317/81 58/318/81 56/319/81 69/320/81
|
||||
f 60/321/82 59/322/82 58/323/82 70/324/82
|
||||
f 56/325/83 83/326/83 84/327/83 57/328/83
|
||||
f 69/329/84 56/330/84 57/331/84 53/332/84
|
||||
f 71/333/85 72/334/85 67/335/85 51/336/85
|
||||
f 74/337/86 73/338/86 52/339/86 68/340/86
|
||||
f 76/341/87 75/342/87 54/343/87 55/344/87
|
||||
f 78/345/88 77/346/88 75/347/88 76/348/88
|
||||
f 80/349/89 79/350/89 53/351/89 57/352/89
|
||||
f 82/353/90 81/354/90 79/355/90 80/356/90
|
||||
f 54/357/91 84/358/91 83/359/91 55/360/91
|
||||
f 87/361/92 85/362/92 58/363/92 59/364/92
|
||||
f 83/365/93 86/366/93 88/367/93
|
||||
f 90/368/94 89/369/94 87/370/94 59/371/94
|
||||
f 92/372/95 91/373/95 89/374/95 90/375/95
|
||||
f 94/376/96 93/377/96 91/378/96 92/379/96
|
||||
f 100/380/97 99/381/97 88/382/97 86/383/97
|
||||
f 96/384/98 95/385/98 99/386/98 100/387/98
|
||||
f 97/388/99 98/389/99 91/390/99 93/391/99
|
||||
f 86/392/100 83/393/100 56/394/100
|
||||
f 86/395/101 56/396/101 85/397/101
|
||||
f 58/398/102 85/399/102 56/400/102
|
|
@ -0,0 +1,22 @@
|
|||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://mn81pev3xigk"
|
||||
path="res://.godot/imported/pistoletda.obj-b2dc735ee9be3082be13821c5c2e5d32.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/pistoletda.obj-b2dc735ee9be3082be13821c5c2e5d32.mesh"]
|
||||
|
||||
source_file="res://models/pistoletda.obj"
|
||||
dest_files=["res://.godot/imported/pistoletda.obj-b2dc735ee9be3082be13821c5c2e5d32.mesh", "res://.godot/imported/pistoletda.obj-b2dc735ee9be3082be13821c5c2e5d32.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
|
@ -0,0 +1,218 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
||||
<asset>
|
||||
<contributor>
|
||||
<author>Anonymous</author>
|
||||
<authoring_tool>Collada Exporter for Blender 2.6+, by Juan Linietsky (juan@codenix.com)</authoring_tool>
|
||||
</contributor>
|
||||
<created>2024-02-17T21:50:36Z</created>
|
||||
<modified>2024-02-17T21:50:36Z</modified>
|
||||
<unit meter="1.0" name="meter"/>
|
||||
<up_axis>Z_UP</up_axis>
|
||||
</asset>
|
||||
<library_effects>
|
||||
<effect id="id-fx-2" name="Material.002-fx">
|
||||
<profile_COMMON>
|
||||
<technique sid="common">
|
||||
<blinn>
|
||||
<emission>
|
||||
<color> 0.800000011920929 0.800000011920929 0.800000011920929 1.0 </color>
|
||||
</emission>
|
||||
<ambient>
|
||||
<color> 0.0 0.0 0.0 1.0 </color>
|
||||
</ambient>
|
||||
<diffuse>
|
||||
<color> 0.6400000095367432 0.6400000095367432 0.6400000095367432 0.8 </color>
|
||||
</diffuse>
|
||||
<specular>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</specular>
|
||||
<shininess>
|
||||
<float>50</float>
|
||||
</shininess>
|
||||
<reflective>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</reflective>
|
||||
<index_of_refraction>
|
||||
<float>1.2</float>
|
||||
</index_of_refraction>
|
||||
</blinn>
|
||||
<extra>
|
||||
<technique profile="FCOLLADA">
|
||||
</technique>
|
||||
<technique profile="GOOGLEEARTH">
|
||||
<double_sided>1</double_sided>
|
||||
</technique>
|
||||
</extra>
|
||||
</technique>
|
||||
</profile_COMMON>
|
||||
</effect>
|
||||
<effect id="id-fx-6" name="Material.001-fx">
|
||||
<profile_COMMON>
|
||||
<technique sid="common">
|
||||
<blinn>
|
||||
<emission>
|
||||
<color> 0.800000011920929 0.800000011920929 0.800000011920929 1.0 </color>
|
||||
</emission>
|
||||
<ambient>
|
||||
<color> 0.0 0.0 0.0 1.0 </color>
|
||||
</ambient>
|
||||
<diffuse>
|
||||
<color> 0.6400000095367432 0.6400000095367432 0.6400000095367432 0.8 </color>
|
||||
</diffuse>
|
||||
<specular>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</specular>
|
||||
<shininess>
|
||||
<float>50</float>
|
||||
</shininess>
|
||||
<reflective>
|
||||
<color> 0.5 0.5 0.5 1.0 </color>
|
||||
</reflective>
|
||||
<index_of_refraction>
|
||||
<float>1.2</float>
|
||||
</index_of_refraction>
|
||||
</blinn>
|
||||
<extra>
|
||||
<technique profile="FCOLLADA">
|
||||
</technique>
|
||||
<technique profile="GOOGLEEARTH">
|
||||
<double_sided>1</double_sided>
|
||||
</technique>
|
||||
</extra>
|
||||
</technique>
|
||||
</profile_COMMON>
|
||||
</effect>
|
||||
</library_effects>
|
||||
<library_materials>
|
||||
<material id="id-material-3" name="Material.002">
|
||||
<instance_effect url="#id-fx-2"/>
|
||||
</material>
|
||||
<material id="id-material-7" name="Material.001">
|
||||
<instance_effect url="#id-fx-6"/>
|
||||
</material>
|
||||
</library_materials>
|
||||
<library_geometries>
|
||||
<geometry id="id-mesh-4" name="Cube">
|
||||
<mesh>
|
||||
<source id="id-mesh-4-positions">
|
||||
<float_array id="id-mesh-4-positions-array" count="72"> 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-4-positions-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-4-normals">
|
||||
<float_array id="id-mesh-4-normals-array" count="72"> 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-4-normals-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-4-texcoord-0">
|
||||
<float_array id="id-mesh-4-texcoord-0-array" count="48"> 0.625 0.5 0.875 0.5 0.875 0.75 0.625 0.75 0.375 0.75 0.625 0.75 0.625 1.0 0.375 1.0 0.375 0.0 0.625 0.0 0.625 0.25 0.375 0.25 0.125 0.5 0.375 0.5 0.375 0.75 0.125 0.75 0.375 0.5 0.625 0.5 0.625 0.75 0.375 0.75 0.375 0.25 0.625 0.25 0.625 0.5 0.375 0.5</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-4-texcoord-0-array" count="24" stride="2">
|
||||
<param name="S" type="float"/>
|
||||
<param name="T" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="id-mesh-4-vertices">
|
||||
<input semantic="POSITION" source="#id-mesh-4-positions"/>
|
||||
</vertices>
|
||||
<polygons count="6" material="id-trimat-5">
|
||||
<input semantic="VERTEX" source="#id-mesh-4-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#id-mesh-4-normals" offset="0"/>
|
||||
<input semantic="TEXCOORD" source="#id-mesh-4-texcoord-0" offset="0" set="0"/>
|
||||
<p> 0 1 2 3 </p>
|
||||
<p> 4 5 6 7 </p>
|
||||
<p> 8 9 10 11 </p>
|
||||
<p> 12 13 14 15 </p>
|
||||
<p> 16 17 18 19 </p>
|
||||
<p> 20 21 22 23 </p>
|
||||
</polygons>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<geometry id="id-mesh-8" name="Cube.001">
|
||||
<mesh>
|
||||
<source id="id-mesh-8-positions">
|
||||
<float_array id="id-mesh-8-positions-array" count="72"> 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 1.0 1.0 -1.0 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-8-positions-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-8-normals">
|
||||
<float_array id="id-mesh-8-normals-array" count="72"> 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 0.0 0.0 -1.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-8-normals-array" count="24" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="id-mesh-8-texcoord-0">
|
||||
<float_array id="id-mesh-8-texcoord-0-array" count="48"> 0.625 0.5 0.875 0.5 0.875 0.75 0.625 0.75 0.375 0.75 0.625 0.75 0.625 1.0 0.375 1.0 0.375 0.0 0.625 0.0 0.625 0.25 0.375 0.25 0.125 0.5 0.375 0.5 0.375 0.75 0.125 0.75 0.375 0.5 0.625 0.5 0.625 0.75 0.375 0.75 0.375 0.25 0.625 0.25 0.625 0.5 0.375 0.5</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#id-mesh-8-texcoord-0-array" count="24" stride="2">
|
||||
<param name="S" type="float"/>
|
||||
<param name="T" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="id-mesh-8-vertices">
|
||||
<input semantic="POSITION" source="#id-mesh-8-positions"/>
|
||||
</vertices>
|
||||
<polygons count="6" material="id-trimat-9">
|
||||
<input semantic="VERTEX" source="#id-mesh-8-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#id-mesh-8-normals" offset="0"/>
|
||||
<input semantic="TEXCOORD" source="#id-mesh-8-texcoord-0" offset="0" set="0"/>
|
||||
<p> 0 1 2 3 </p>
|
||||
<p> 4 5 6 7 </p>
|
||||
<p> 8 9 10 11 </p>
|
||||
<p> 12 13 14 15 </p>
|
||||
<p> 16 17 18 19 </p>
|
||||
<p> 20 21 22 23 </p>
|
||||
</polygons>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</library_geometries>
|
||||
<library_visual_scenes>
|
||||
<visual_scene id="id-scene-1" name="scene">
|
||||
<node id="Cube" name="Cube" type="NODE">
|
||||
<matrix sid="transform"> 0.28390204906463623 0.0 0.30559131503105164 -0.016092630103230476 0.0 0.11151131987571716 0.0 0.0 -0.7800144553184509 0.0 0.1112261414527893 -0.06142665445804596 0.0 0.0 0.0 1.0 </matrix>
|
||||
<instance_geometry url="#id-mesh-4">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="id-trimat-5" target="#id-material-3"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
<node id="Cube.001" name="Cube.001" type="NODE">
|
||||
<matrix sid="transform"> 1.2125928401947021 0.0 0.0 -1.1341843605041504 0.0 0.12897871434688568 0.0 0.0 0.0 0.0 0.33654701709747314 0.5419423580169678 0.0 0.0 0.0 1.0 </matrix>
|
||||
<instance_geometry url="#id-mesh-8">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="id-trimat-9" target="#id-material-7"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
</visual_scene>
|
||||
</library_visual_scenes>
|
||||
<scene>
|
||||
<instance_visual_scene url="#id-scene-1" />
|
||||
</scene>
|
||||
</COLLADA>
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://hf47u08p80fo"
|
||||
path="res://.godot/imported/pistoletto.dae-4af72fbdd439456c2e42ffc84bc67388.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://models/pistoletto.dae"
|
||||
dest_files=["res://.godot/imported/pistoletto.dae-4af72fbdd439456c2e42ffc84bc67388.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
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
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,22 @@
|
|||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://p2wom3t07fio"
|
||||
path="res://.godot/imported/player.obj-2e9a6922de577ef9126cb60ee24cd899.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/player.obj-2e9a6922de577ef9126cb60ee24cd899.mesh"]
|
||||
|
||||
source_file="res://models/player.obj"
|
||||
dest_files=["res://.godot/imported/player.obj-2e9a6922de577ef9126cb60ee24cd899.mesh", "res://.godot/imported/player.obj-2e9a6922de577ef9126cb60ee24cd899.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
|
@ -1,24 +0,0 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://b2jhgtduapovl"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/Player.gd" id="1_o6o4b"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_yyp7b"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_jqfxo"]
|
||||
|
||||
[node name="player" type="Node3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.10113, 0)
|
||||
|
||||
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
|
||||
script = ExtResource("1_o6o4b")
|
||||
|
||||
[node name="Head" type="Node3D" parent="CharacterBody3D"]
|
||||
|
||||
[node name="Camera" type="Camera3D" parent="CharacterBody3D/Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.675496, 0)
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"]
|
||||
shape = SubResource("CapsuleShape3D_yyp7b")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="CharacterBody3D"]
|
||||
mesh = SubResource("CapsuleMesh_jqfxo")
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,22 @@
|
|||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://dpdsmpuycacsx"
|
||||
path="res://.godot/imported/playerv2.obj-a1026b78d0af2162542ed417a916cd60.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/playerv2.obj-a1026b78d0af2162542ed417a916cd60.mesh"]
|
||||
|
||||
source_file="res://models/playerv2.obj"
|
||||
dest_files=["res://.godot/imported/playerv2.obj-a1026b78d0af2162542ed417a916cd60.mesh", "res://.godot/imported/playerv2.obj-a1026b78d0af2162542ed417a916cd60.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
|
@ -1,6 +0,0 @@
|
|||
extends CharacterBody3D
|
||||
#
|
||||
#@rpc ("authority", "call_remote")
|
||||
#func move_puppet(v: Vector3):
|
||||
#var velocity = v
|
||||
#move_and_slide()
|
|
@ -1,21 +0,0 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://vj3v8qlchp0r"]
|
||||
|
||||
[ext_resource type="Script" path="res://models/puppet.gd" id="1_5nucb"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_yyp7b"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_jqfxo"]
|
||||
|
||||
[node name="puppet" type="Node3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.10113, 0)
|
||||
|
||||
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
|
||||
script = ExtResource("1_5nucb")
|
||||
|
||||
[node name="Head" type="Node3D" parent="CharacterBody3D"]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"]
|
||||
shape = SubResource("CapsuleShape3D_yyp7b")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="CharacterBody3D"]
|
||||
mesh = SubResource("CapsuleMesh_jqfxo")
|
|
@ -0,0 +1,8 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://bf6uev4mtg2ls"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/SpectatorControls.gd" id="1_uqbjn"]
|
||||
|
||||
[node name="head" type="Node3D"]
|
||||
script = ExtResource("1_uqbjn")
|
||||
|
||||
[node name="Camera" type="Camera3D" parent="."]
|
|
@ -0,0 +1,95 @@
|
|||
# Made in Blockbench 4.9.4
|
||||
mtllib target.mtl
|
||||
|
||||
o cube
|
||||
v 0.4375 1.25 0.0625
|
||||
v 0.4375 1.25 -0.0625
|
||||
v 0.4375 0 0.0625
|
||||
v 0.4375 0 -0.0625
|
||||
v -0.4375 1.25 -0.0625
|
||||
v -0.4375 1.25 0.0625
|
||||
v -0.4375 0 -0.0625
|
||||
v -0.4375 0 0.0625
|
||||
vt 0 1
|
||||
vt 0.875 1
|
||||
vt 0.875 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.875 1
|
||||
vt 0.875 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0
|
||||
vt 0 0
|
||||
vt 0 1
|
||||
vt 0.875 1
|
||||
vt 0.875 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.875 1
|
||||
vt 0.875 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 4/4/1 7/3/1 5/2/1 2/1/1
|
||||
f 3/8/2 4/7/2 2/6/2 1/5/2
|
||||
f 8/12/3 3/11/3 1/10/3 6/9/3
|
||||
f 7/16/4 8/15/4 6/14/4 5/13/4
|
||||
f 6/20/5 1/19/5 2/18/5 5/17/5
|
||||
f 7/24/6 4/23/6 3/22/6 8/21/6
|
||||
o cube
|
||||
v 0.3125 1.8125 0.0625
|
||||
v 0.3125 1.8125 -0.0625
|
||||
v 0.3125 1.25 0.0625
|
||||
v 0.3125 1.25 -0.0625
|
||||
v -0.3125 1.8125 -0.0625
|
||||
v -0.3125 1.8125 0.0625
|
||||
v -0.3125 1.25 -0.0625
|
||||
v -0.3125 1.25 0.0625
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.4375
|
||||
vt 0 0.4375
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.4375
|
||||
vt 0 0.4375
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.4375
|
||||
vt 0 0.4375
|
||||
vt 0 1
|
||||
vt 0.125 1
|
||||
vt 0.125 0.4375
|
||||
vt 0 0.4375
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vt 0 1
|
||||
vt 0.625 1
|
||||
vt 0.625 0.875
|
||||
vt 0 0.875
|
||||
vn 0 0 -1
|
||||
vn 1 0 0
|
||||
vn 0 0 1
|
||||
vn -1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 -1 0
|
||||
usemtl none
|
||||
f 12/28/7 15/27/7 13/26/7 10/25/7
|
||||
f 11/32/8 12/31/8 10/30/8 9/29/8
|
||||
f 16/36/9 11/35/9 9/34/9 14/33/9
|
||||
f 15/40/10 16/39/10 14/38/10 13/37/10
|
||||
f 14/44/11 9/43/11 10/42/11 13/41/11
|
||||
f 15/48/12 12/47/12 11/46/12 16/45/12
|
|
@ -0,0 +1,22 @@
|
|||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://cqomvoochvl6s"
|
||||
path="res://.godot/imported/target.obj-a62cba5a2be174288296327b10ff1d3e.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/target.obj-a62cba5a2be174288296327b10ff1d3e.mesh"]
|
||||
|
||||
source_file="res://models/target.obj"
|
||||
dest_files=["res://.godot/imported/target.obj-a62cba5a2be174288296327b10ff1d3e.mesh", "res://.godot/imported/target.obj-a62cba5a2be174288296327b10ff1d3e.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
optimize_mesh=true
|
||||
force_disable_mesh_compression=false
|
|
@ -11,14 +11,18 @@ config_version=5
|
|||
[application]
|
||||
|
||||
config/name="Cs-os"
|
||||
run/main_scene="res://scenes/menu.tscn"
|
||||
run/main_scene="res://scenes/HUD/menu.tscn"
|
||||
config/features=PackedStringArray("4.2", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
boot_splash/bg_color=Color(0.282353, 0.00784314, 0.0745098, 1)
|
||||
config/icon="res://logo.png"
|
||||
|
||||
[autoload]
|
||||
|
||||
Networking="*res://scripts/Networking.gd"
|
||||
GameData="*res://scripts/GameData.gd"
|
||||
Anticheat="*res://scripts/Anticheat.gd"
|
||||
ServerUtils="*res://scripts/utils/ServerUtils.gd"
|
||||
NetUtils="*res://scripts/utils/NetUtils.gd"
|
||||
|
||||
[input]
|
||||
|
||||
|
@ -52,3 +56,28 @@ run={
|
|||
"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":4194325,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
shoot={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||
]
|
||||
}
|
||||
crawl={
|
||||
"deadzone": 0.5,
|
||||
"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":4194326,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
MWU={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||
]
|
||||
}
|
||||
MWD={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||
]
|
||||
}
|
||||
reload={
|
||||
"deadzone": 0.5,
|
||||
"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":82,"key_label":0,"unicode":114,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,383 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://b8ulqlywdvqba"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/Select.gd" id="1_nua8c"]
|
||||
|
||||
[node name="ChooseTeam" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="wallpaper" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.0392157, 0.360784, 0.419608, 1)
|
||||
|
||||
[node name="box" type="ColorRect" parent="."]
|
||||
custom_minimum_size = Vector2(100, 200)
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -250.0
|
||||
offset_top = -199.0
|
||||
offset_right = 250.0
|
||||
offset_bottom = 201.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.117647, 0.117647, 0.117647, 1)
|
||||
|
||||
[node name="background" type="Control" parent="."]
|
||||
anchors_preset = 0
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 650.0
|
||||
|
||||
[node name="Choose_team" type="Control" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = 13.0
|
||||
offset_top = -62.0
|
||||
offset_right = 53.0
|
||||
offset_bottom = -22.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TextEdit" type="TextEdit" parent="Choose_team"]
|
||||
layout_mode = 0
|
||||
offset_left = -203.0
|
||||
offset_top = -118.0
|
||||
offset_right = -143.0
|
||||
offset_bottom = -73.0
|
||||
theme_override_colors/background_color = Color(0.117647, 0.117647, 0.117647, 1)
|
||||
text = "Teams"
|
||||
|
||||
[node name="CS" type="Control" parent="Choose_team"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 11
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -268.0
|
||||
offset_top = -46.0
|
||||
offset_right = -103.0
|
||||
offset_bottom = -56.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Closed source" type="Label" parent="Choose_team/CS"]
|
||||
layout_mode = 0
|
||||
offset_top = 4.0
|
||||
offset_right = 108.0
|
||||
offset_bottom = 27.0
|
||||
text = "Closed source
|
||||
"
|
||||
|
||||
[node name="Select_CS" type="Button" parent="Choose_team/CS"]
|
||||
layout_mode = 0
|
||||
offset_left = 110.0
|
||||
offset_right = 164.0
|
||||
offset_bottom = 31.0
|
||||
text = "Select
|
||||
"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="OS" type="Control" parent="Choose_team"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 11
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -268.0
|
||||
offset_top = -82.0
|
||||
offset_right = -98.0
|
||||
offset_bottom = -92.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Open source" type="Label" parent="Choose_team/OS"]
|
||||
layout_mode = 0
|
||||
offset_top = 4.0
|
||||
offset_right = 108.0
|
||||
offset_bottom = 27.0
|
||||
text = "Open source"
|
||||
|
||||
[node name="Select_OS" type="Button" parent="Choose_team/OS"]
|
||||
layout_mode = 0
|
||||
offset_left = 110.0
|
||||
offset_right = 164.0
|
||||
offset_bottom = 31.0
|
||||
text = "Select
|
||||
"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="SP" type="Control" parent="Choose_team"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 11
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -268.0
|
||||
offset_top = -11.0
|
||||
offset_right = -98.0
|
||||
offset_bottom = -21.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Spectator" type="Label" parent="Choose_team/SP"]
|
||||
layout_mode = 0
|
||||
offset_top = 4.0
|
||||
offset_right = 108.0
|
||||
offset_bottom = 27.0
|
||||
text = "Spectator"
|
||||
|
||||
[node name="Select_SP" type="Button" parent="Choose_team/SP"]
|
||||
layout_mode = 0
|
||||
offset_left = 110.0
|
||||
offset_right = 164.0
|
||||
offset_bottom = 31.0
|
||||
text = "Select
|
||||
"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Choose_class_OS" type="Control" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -215.0
|
||||
offset_top = -135.0
|
||||
offset_right = -215.0
|
||||
offset_bottom = -135.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Class 1" type="Control" parent="Choose_class_OS"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_OS/Class 1"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class 1"
|
||||
|
||||
[node name="Select_1" type="Button" parent="Choose_class_OS/Class 1"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Class 2" type="Control" parent="Choose_class_OS"]
|
||||
anchors_preset = 0
|
||||
offset_top = 54.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 94.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_OS/Class 2"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class 2"
|
||||
|
||||
[node name="Select_2" type="Button" parent="Choose_class_OS/Class 2"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Class 3" type="Control" parent="Choose_class_OS"]
|
||||
anchors_preset = 0
|
||||
offset_top = 108.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 148.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_OS/Class 3"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class 3"
|
||||
|
||||
[node name="Select_3" type="Button" parent="Choose_class_OS/Class 3"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Class 4" type="Control" parent="Choose_class_OS"]
|
||||
anchors_preset = 0
|
||||
offset_top = 162.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 202.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_OS/Class 4"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class 4"
|
||||
|
||||
[node name="Select_4" type="Button" parent="Choose_class_OS/Class 4"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Class 5" type="Control" parent="Choose_class_OS"]
|
||||
anchors_preset = 0
|
||||
offset_top = 216.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 256.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_OS/Class 5"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class 5"
|
||||
|
||||
[node name="Select_5" type="Button" parent="Choose_class_OS/Class 5"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Choose_class_CS" type="Control" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -215.0
|
||||
offset_top = -135.0
|
||||
offset_right = -215.0
|
||||
offset_bottom = -135.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="Class -1" type="Control" parent="Choose_class_CS"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_CS/Class -1"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class -1"
|
||||
|
||||
[node name="Select_-1" type="Button" parent="Choose_class_CS/Class -1"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Class -2" type="Control" parent="Choose_class_CS"]
|
||||
anchors_preset = 0
|
||||
offset_top = 54.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 94.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_CS/Class -2"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class -2"
|
||||
|
||||
[node name="Select_-2" type="Button" parent="Choose_class_CS/Class -2"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Class -3" type="Control" parent="Choose_class_CS"]
|
||||
anchors_preset = 0
|
||||
offset_top = 108.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 148.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_CS/Class -3"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class -3"
|
||||
|
||||
[node name="Select_-3" type="Button" parent="Choose_class_CS/Class -3"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Class -4" type="Control" parent="Choose_class_CS"]
|
||||
anchors_preset = 0
|
||||
offset_top = 162.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 202.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_CS/Class -4"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class -4"
|
||||
|
||||
[node name="Select_-4" type="Button" parent="Choose_class_CS/Class -4"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
||||
|
||||
[node name="Class -5" type="Control" parent="Choose_class_CS"]
|
||||
anchors_preset = 0
|
||||
offset_top = 216.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 256.0
|
||||
|
||||
[node name="Name" type="Label" parent="Choose_class_CS/Class -5"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
text = "Class -5"
|
||||
|
||||
[node name="Select_-5" type="Button" parent="Choose_class_CS/Class -5"]
|
||||
layout_mode = 0
|
||||
offset_top = 23.0
|
||||
offset_right = 54.0
|
||||
offset_bottom = 54.0
|
||||
text = "Select"
|
||||
script = ExtResource("1_nua8c")
|
|
@ -0,0 +1,368 @@
|
|||
[gd_scene load_steps=16 format=3 uid="uid://gxfhitfre2fj"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c4pah1vj0aa4x" path="res://textures/prototype-textures/Prototype_symbol_cross_32x32px.png" id="1_g1v70"]
|
||||
[ext_resource type="Texture2D" uid="uid://na1y6c7osyj2" path="res://textures/logo/health.svg" id="1_ts1uf"]
|
||||
[ext_resource type="Texture2D" uid="uid://cxpljra1na1p8" path="res://textures/logo/shield.svg" id="2_ijndi"]
|
||||
[ext_resource type="Texture2D" uid="uid://d1i1fgjbpwped" path="res://textures/logo/magazine.svg" id="3_ssnuf"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmuo2tbe3r8ih" path="res://textures/logo/ammo.svg" id="4_f070v"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ryudk"]
|
||||
bg_color = Color(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_u8rhl"]
|
||||
texture = ExtResource("1_ts1uf")
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_n5sx0"]
|
||||
texture = ExtResource("2_ijndi")
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_w337q"]
|
||||
texture = ExtResource("3_ssnuf")
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tcxn4"]
|
||||
texture = ExtResource("4_f070v")
|
||||
|
||||
[sub_resource type="Theme" id="Theme_xwpjm"]
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_mkhl7"]
|
||||
texture = ExtResource("1_g1v70")
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pxi8e"]
|
||||
bg_color = Color(0.117647, 0.117647, 0.117647, 1)
|
||||
border_width_left = 1
|
||||
border_width_top = 1
|
||||
border_width_right = 1
|
||||
border_width_bottom = 1
|
||||
border_blend = true
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_l41k6"]
|
||||
font_size = 30
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_ky32e"]
|
||||
font_size = 64
|
||||
font_color = Color(0.992157, 0.415686, 0.631373, 1)
|
||||
shadow_size = 9
|
||||
shadow_color = Color(0, 0, 0, 0.772549)
|
||||
|
||||
[node name="HUD" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="health_and_ammo_display" type="Control" parent="."]
|
||||
custom_minimum_size = Vector2(200, 70)
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -68.0
|
||||
offset_top = -69.0
|
||||
offset_right = 132.0
|
||||
offset_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="pipe" type="Panel" parent="health_and_ammo_display"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -35.0
|
||||
offset_top = -70.0
|
||||
offset_right = -30.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_ryudk")
|
||||
|
||||
[node name="healthdisplay" type="Control" parent="health_and_ammo_display"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -100.0
|
||||
offset_top = -70.0
|
||||
offset_right = -40.0
|
||||
offset_bottom = -45.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="text" type="Label" parent="health_and_ammo_display/healthdisplay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 6
|
||||
anchor_left = 1.0
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -28.0
|
||||
offset_top = -11.5
|
||||
offset_bottom = 11.5
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
text = "100
|
||||
"
|
||||
|
||||
[node name="logo" type="Panel" parent="health_and_ammo_display/healthdisplay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -25.0
|
||||
offset_right = 25.0
|
||||
grow_vertical = 0
|
||||
theme_override_styles/panel = SubResource("StyleBoxTexture_u8rhl")
|
||||
|
||||
[node name="armordisplay" type="Control" parent="health_and_ammo_display"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -100.0
|
||||
offset_top = -35.0
|
||||
offset_right = -40.0
|
||||
offset_bottom = -10.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="text" type="Label" parent="health_and_ammo_display/armordisplay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 6
|
||||
anchor_left = 1.0
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -28.0
|
||||
offset_top = -11.5
|
||||
offset_bottom = 11.5
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
text = "100
|
||||
"
|
||||
|
||||
[node name="logo" type="Panel" parent="health_and_ammo_display/armordisplay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -25.0
|
||||
offset_right = 25.0
|
||||
grow_vertical = 0
|
||||
theme_override_styles/panel = SubResource("StyleBoxTexture_n5sx0")
|
||||
|
||||
[node name="magazinedisplay" type="Control" parent="health_and_ammo_display"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -25.0
|
||||
offset_top = -70.0
|
||||
offset_right = 35.0
|
||||
offset_bottom = -45.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="text" type="Label" parent="health_and_ammo_display/magazinedisplay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 4
|
||||
anchor_top = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_top = -11.5
|
||||
offset_right = 28.0
|
||||
offset_bottom = 11.5
|
||||
grow_vertical = 2
|
||||
text = "100
|
||||
"
|
||||
|
||||
[node name="logo" type="Panel" parent="health_and_ammo_display/magazinedisplay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -25.0
|
||||
offset_top = -25.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
theme_override_styles/panel = SubResource("StyleBoxTexture_w337q")
|
||||
|
||||
[node name="ammodisplay" type="Control" parent="health_and_ammo_display"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -25.0
|
||||
offset_top = -35.0
|
||||
offset_right = 35.0
|
||||
offset_bottom = -10.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="text" type="Label" parent="health_and_ammo_display/ammodisplay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 4
|
||||
anchor_top = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_top = -11.5
|
||||
offset_right = 28.0
|
||||
offset_bottom = 11.5
|
||||
grow_vertical = 2
|
||||
text = "100
|
||||
"
|
||||
|
||||
[node name="logo" type="Panel" parent="health_and_ammo_display/ammodisplay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -25.0
|
||||
offset_top = -25.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
theme_override_styles/panel = SubResource("StyleBoxTexture_tcxn4")
|
||||
|
||||
[node name="Control" type="Control" parent="."]
|
||||
z_index = -10
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Panel" type="Panel" parent="Control"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -6.0
|
||||
offset_top = -6.0
|
||||
offset_right = 6.0
|
||||
offset_bottom = 6.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme = SubResource("Theme_xwpjm")
|
||||
theme_override_styles/panel = SubResource("StyleBoxTexture_mkhl7")
|
||||
|
||||
[node name="Status" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -40.0
|
||||
offset_top = -23.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="round_status" type="Control" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -20.0
|
||||
offset_right = 20.0
|
||||
offset_bottom = 30.0
|
||||
grow_horizontal = 2
|
||||
|
||||
[node name="bg" type="Panel" parent="round_status"]
|
||||
layout_mode = 0
|
||||
offset_left = -66.0
|
||||
offset_right = 106.0
|
||||
offset_bottom = 66.0
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_pxi8e")
|
||||
|
||||
[node name="cs_score_game" type="Label" parent="round_status"]
|
||||
layout_mode = 0
|
||||
offset_left = -52.0
|
||||
offset_top = -2.0
|
||||
offset_right = -35.0
|
||||
offset_bottom = 37.0
|
||||
text = "0"
|
||||
label_settings = SubResource("LabelSettings_l41k6")
|
||||
|
||||
[node name="cs_score_round" type="Label" parent="round_status"]
|
||||
layout_mode = 0
|
||||
offset_left = -48.0
|
||||
offset_top = 39.0
|
||||
offset_right = -38.0
|
||||
offset_bottom = 62.0
|
||||
text = "0"
|
||||
|
||||
[node name="os_score_round" type="Label" parent="round_status"]
|
||||
layout_mode = 0
|
||||
offset_left = 83.0
|
||||
offset_top = 39.0
|
||||
offset_right = 93.0
|
||||
offset_bottom = 62.0
|
||||
text = "0"
|
||||
|
||||
[node name="os_score_game" type="Label" parent="round_status"]
|
||||
layout_mode = 0
|
||||
offset_left = 79.0
|
||||
offset_top = -2.0
|
||||
offset_right = 96.0
|
||||
offset_bottom = 40.0
|
||||
text = "0"
|
||||
label_settings = SubResource("LabelSettings_l41k6")
|
||||
|
||||
[node name="round_number" type="Label" parent="round_status"]
|
||||
layout_mode = 0
|
||||
offset_left = -13.0
|
||||
offset_top = 5.0
|
||||
offset_right = 53.0
|
||||
offset_bottom = 28.0
|
||||
text = "Round N"
|
||||
|
||||
[node name="time" type="Label" parent="round_status"]
|
||||
layout_mode = 0
|
||||
offset_left = -5.0
|
||||
offset_top = 39.0
|
||||
offset_right = 46.0
|
||||
offset_bottom = 62.0
|
||||
text = "mm:ss"
|
||||
|
||||
[node name="winner" type="Label" parent="round_status"]
|
||||
visible = false
|
||||
layout_mode = 0
|
||||
offset_left = -104.0
|
||||
offset_top = 46.0
|
||||
offset_right = 159.0
|
||||
offset_bottom = 135.0
|
||||
text = "CS WON"
|
||||
label_settings = SubResource("LabelSettings_ky32e")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="kill_log" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -156.0
|
||||
offset_right = 155.0
|
||||
offset_bottom = 314.0
|
||||
grow_horizontal = 0
|
||||
scale = Vector2(0.5, 0.5)
|
|
@ -0,0 +1,223 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://cjlgs86ey1u1o"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/ConnectButton.gd" id="1_nhpm2"]
|
||||
[ext_resource type="Script" path="res://scripts/TaskPanelButton.gd" id="1_yn6yn"]
|
||||
[ext_resource type="Script" path="res://scripts/Nickname.gd" id="2_5xejq"]
|
||||
[ext_resource type="Texture2D" uid="uid://bxmfgknljdw65" path="res://icon.svg" id="4_j2ki1"]
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_cwx4a"]
|
||||
texture = ExtResource("4_j2ki1")
|
||||
|
||||
[node name="Menu" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
scale = Vector2(1, 1.00231)
|
||||
color = Color(0.0392157, 0.360784, 0.419608, 1)
|
||||
|
||||
[node name="ColorRect2" type="ColorRect" parent="ColorRect"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 12
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -28.0
|
||||
offset_bottom = 2.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
color = Color(0.117647, 0.117647, 0.117647, 1)
|
||||
|
||||
[node name="buttons" type="Control" parent="ColorRect"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -40.0
|
||||
offset_right = 40.0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="Button_quit" type="Button" parent="ColorRect/buttons"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -28.4312
|
||||
offset_right = 30.0
|
||||
offset_bottom = 1.56878
|
||||
grow_vertical = 0
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "off"
|
||||
script = ExtResource("1_yn6yn")
|
||||
|
||||
[node name="Button_direct" type="Button" parent="ColorRect/buttons"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 30.0
|
||||
offset_top = -28.4312
|
||||
offset_right = 63.0
|
||||
offset_bottom = 1.56878
|
||||
grow_vertical = 0
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "web"
|
||||
script = ExtResource("1_yn6yn")
|
||||
|
||||
[node name="Button_settings" type="Button" parent="ColorRect/buttons"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 63.0
|
||||
offset_top = -28.4312
|
||||
offset_right = 96.0
|
||||
offset_bottom = 1.56878
|
||||
grow_vertical = 0
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "settings"
|
||||
script = ExtResource("1_yn6yn")
|
||||
|
||||
[node name="DirectMenu" type="Control" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -60.0
|
||||
offset_top = -40.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 40.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="DirectMenu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -60.0
|
||||
offset_top = -40.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 40.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.117647, 0.117647, 0.117647, 1)
|
||||
|
||||
[node name="IP" type="TextEdit" parent="DirectMenu"]
|
||||
layout_mode = 2
|
||||
offset_left = 3.0
|
||||
offset_top = 10.0
|
||||
offset_right = 63.0
|
||||
offset_bottom = 35.0
|
||||
pivot_offset = Vector2(1, 0)
|
||||
theme_override_colors/background_color = Color(0.231373, 0.231373, 0.231373, 1)
|
||||
theme_override_colors/font_selected_color = Color(0, 0, 0, 1)
|
||||
theme_override_font_sizes/font_size = 9
|
||||
text = "127.0.0.1"
|
||||
placeholder_text = "IP Address"
|
||||
|
||||
[node name="Port" type="TextEdit" parent="DirectMenu"]
|
||||
layout_mode = 2
|
||||
offset_left = 66.0
|
||||
offset_top = 10.0
|
||||
offset_right = 116.0
|
||||
offset_bottom = 35.0
|
||||
theme_override_colors/background_color = Color(0.231373, 0.231373, 0.231373, 1)
|
||||
theme_override_font_sizes/font_size = 9
|
||||
text = "2390"
|
||||
placeholder_text = "Port
|
||||
"
|
||||
|
||||
[node name="Connect" type="Button" parent="DirectMenu"]
|
||||
layout_mode = 2
|
||||
offset_left = 10.0
|
||||
offset_top = 40.0
|
||||
offset_right = 110.0
|
||||
offset_bottom = 71.0
|
||||
pivot_offset = Vector2(88, 24)
|
||||
text = "Connect"
|
||||
script = ExtResource("1_nhpm2")
|
||||
|
||||
[node name="SettingsMenu" type="Control" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -100.0
|
||||
offset_top = -50.0
|
||||
offset_right = 100.0
|
||||
offset_bottom = 50.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="ColorRect2" type="ColorRect" parent="SettingsMenu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -100.0
|
||||
offset_top = -50.0
|
||||
offset_right = 100.0
|
||||
offset_bottom = 50.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.117647, 0.117647, 0.117647, 1)
|
||||
|
||||
[node name="Nickname" type="TextEdit" parent="SettingsMenu"]
|
||||
layout_mode = 0
|
||||
offset_left = 3.0
|
||||
offset_top = 58.0
|
||||
offset_right = 153.0
|
||||
offset_bottom = 98.0
|
||||
placeholder_text = "Unnamed"
|
||||
|
||||
[node name="Label" type="Label" parent="SettingsMenu"]
|
||||
layout_mode = 0
|
||||
offset_left = 24.0
|
||||
offset_top = 17.0
|
||||
offset_right = 181.0
|
||||
offset_bottom = 40.0
|
||||
text = "Set player nickname"
|
||||
|
||||
[node name="Set" type="Button" parent="SettingsMenu"]
|
||||
layout_mode = 0
|
||||
offset_left = 154.0
|
||||
offset_top = 57.0
|
||||
offset_right = 199.0
|
||||
offset_bottom = 97.0
|
||||
text = "Set"
|
||||
script = ExtResource("2_5xejq")
|
||||
|
||||
[node name="Panel" type="Panel" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -50.0
|
||||
offset_top = -151.0
|
||||
offset_right = 50.0
|
||||
offset_bottom = -51.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxTexture_cwx4a")
|
|
@ -0,0 +1,249 @@
|
|||
[gd_scene load_steps=11 format=3 uid="uid://cwo1c5nrje1uj"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c88oa7ckhmvoh" path="res://textures/prototype-textures/Prototype_grey_32x32px.png" id="1_el5t1"]
|
||||
[ext_resource type="Texture2D" uid="uid://clc6hbxpqmr13" path="res://textures/prototype-textures/Prototype_orange_32x32px.png" id="2_cuvhc"]
|
||||
[ext_resource type="Material" uid="uid://lh788k850e21" path="res://textures/materials/red.material" id="3_3k8s5"]
|
||||
[ext_resource type="PackedScene" uid="uid://833q6upr0s1k" path="res://scenes/special/spawnpoint.tscn" id="3_k28aq"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rbwrc"]
|
||||
albedo_texture = ExtResource("1_el5t1")
|
||||
uv1_scale = Vector3(0.1, 0.1, 0.1)
|
||||
uv1_triplanar = true
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xwpjv"]
|
||||
albedo_texture = ExtResource("2_cuvhc")
|
||||
metallic_specular = 1.0
|
||||
uv1_scale = Vector3(0.1, 0.1, 0.1)
|
||||
uv1_triplanar = true
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ult2w"]
|
||||
albedo_texture = ExtResource("2_cuvhc")
|
||||
uv1_scale = Vector3(0.1, 0.1, 0.1)
|
||||
uv1_triplanar = true
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_efxfa"]
|
||||
|
||||
[sub_resource type="Sky" id="Sky_e5cvk"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_efxfa")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_n1nic"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_e5cvk")
|
||||
ambient_light_source = 3
|
||||
ambient_light_color = Color(0.0666667, 0.0235294, 0.129412, 1)
|
||||
ambient_light_energy = 8.35
|
||||
reflected_light_source = 2
|
||||
tonemap_mode = 3
|
||||
tonemap_exposure = 0.95
|
||||
tonemap_white = 4.37
|
||||
|
||||
[node name="1v1" type="Node3D"]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 26.508, 0, 0)
|
||||
|
||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="."]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0)
|
||||
use_collision = true
|
||||
|
||||
[node name="street" type="CSGBox3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(200, 0, 0, 0, 300, 0, 0, 0, 200, -244.068, 66.1137, -14.1194)
|
||||
size = Vector3(1.98291, 0.503906, 2.3484)
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="street_sub" type="CSGBox3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(0.93, 0, 0, 0, 0.99, 0, 0, 0, 0.94, 0.00422084, 0.148959, -0.000665724)
|
||||
operation = 2
|
||||
size = Vector3(2.11789, 0.804687, 2.45102)
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="box[os]" type="CSGBox3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0.622217, -0.199541, -1.00318)
|
||||
size = Vector3(1.50629, 1.00721, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box2" type="CSGBox3D" parent="CSGCombiner3D/street/box[os]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.232529, -0.164506, 1.25757)
|
||||
size = Vector3(1.04123, 0.678194, 1.08446)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box3" type="CSGBox3D" parent="CSGCombiner3D/street/box[os]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.194044, 4.71815)
|
||||
size = Vector3(1.50629, 1.3953, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box4" type="CSGBox3D" parent="CSGCombiner3D/street/box[os]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4.14056)
|
||||
size = Vector3(1.50629, 1.00721, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box5" type="CSGBox3D" parent="CSGCombiner3D/street/box[os]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.971855, -0.164506, 3.93179)
|
||||
size = Vector3(1.04123, 0.678194, 1.08446)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box6" type="CSGBox3D" parent="CSGCombiner3D/street/box[os]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0472702, 7.8889)
|
||||
size = Vector3(1.50629, 1.10175, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box7" type="CSGBox3D" parent="CSGCombiner3D/street/box[os]/box6"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.04727, 1.09568)
|
||||
size = Vector3(1.50629, 1.00721, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box8" type="CSGBox3D" parent="CSGCombiner3D/street/box[os]/box6/box7"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.212309, -0.164506, 1.08915)
|
||||
size = Vector3(1.04123, 0.678194, 1.08446)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box[cs]" type="CSGBox3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(-0.1, 0, 8.74228e-09, 0, 0.1, 0, -8.74228e-09, 0, -0.1, -0.60374, -0.199541, 1.00616)
|
||||
size = Vector3(1.50629, 1.00721, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box2" type="CSGBox3D" parent="CSGCombiner3D/street/box[cs]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.232529, -0.164506, 1.25757)
|
||||
size = Vector3(1.04123, 0.678194, 1.08446)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box3" type="CSGBox3D" parent="CSGCombiner3D/street/box[cs]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.194044, 4.71815)
|
||||
size = Vector3(1.50629, 1.3953, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box4" type="CSGBox3D" parent="CSGCombiner3D/street/box[cs]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4.14056)
|
||||
size = Vector3(1.50629, 1.00721, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box5" type="CSGBox3D" parent="CSGCombiner3D/street/box[cs]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.971855, -0.164506, 3.93179)
|
||||
size = Vector3(1.04123, 0.678194, 1.08446)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box6" type="CSGBox3D" parent="CSGCombiner3D/street/box[cs]"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0472702, 7.8889)
|
||||
size = Vector3(1.50629, 1.10175, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box7" type="CSGBox3D" parent="CSGCombiner3D/street/box[cs]/box6"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.04727, 1.09568)
|
||||
size = Vector3(1.50629, 1.00721, 1.50778)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box8" type="CSGBox3D" parent="CSGCombiner3D/street/box[cs]/box6"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.212309, -0.211776, 2.18483)
|
||||
size = Vector3(1.04123, 0.678194, 1.08446)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="box9" type="CSGBox3D" parent="CSGCombiner3D/street/box[cs]/box6"]
|
||||
transform = Transform3D(1, 0, 2.13163e-14, 0, 1, 0, -2.13163e-14, 0, 1, -5.87594, -0.211776, 2.18483)
|
||||
size = Vector3(1.04123, 0.678194, 1.08446)
|
||||
material = ExtResource("3_3k8s5")
|
||||
|
||||
[node name="house[cs]" type="CSGBox3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(40, 0, 0, 0, 80, 0, 0, 0, 80, -400.068, 11.6565, -186.564)
|
||||
size = Vector3(1.98291, 0.503906, 1.4407)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="house_sub" type="CSGBox3D" parent="CSGCombiner3D/house[cs]"]
|
||||
transform = Transform3D(0.92, 0, 0, 0, 0.9, 0, 0, 0, 0.96, -0.0160205, 0, 0)
|
||||
operation = 2
|
||||
size = Vector3(2.10019, 0.503906, 1.4407)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="door_house" type="CSGBox3D" parent="CSGCombiner3D/house[cs]"]
|
||||
transform = Transform3D(0.503765, 0, 0, 0, 0.134818, 0, 0, 0, 0.0118971, -0.0536485, -0.00606109, 0.696579)
|
||||
operation = 2
|
||||
size = Vector3(1, 2.81519, 5)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="roof_porch" type="CSGPolygon3D" parent="CSGCombiner3D/house[cs]"]
|
||||
transform = Transform3D(-2.02415e-08, 0, 0.397644, 0, 0.318244, 0, -0.463072, 0, -1.73816e-08, 0.992785, 0.246994, 0.666835)
|
||||
polygon = PackedVector2Array(-1, 0, 1.17256, 0.871638, 1.17423, 0.0159316)
|
||||
depth = 5.0
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="porch" type="CSGPolygon3D" parent="CSGCombiner3D/house[cs]"]
|
||||
transform = Transform3D(0.277503, 0, 0, 0, 0.04, 0, 0, 0, 0.028, -0.98546, -0.257268, 1.11665)
|
||||
polygon = PackedVector2Array(0, 0, 0, 1, 7, 1, 7, 0)
|
||||
depth = 14.4
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="dais" type="CSGPolygon3D" parent="CSGCombiner3D/house[cs]"]
|
||||
transform = Transform3D(0.025, 0, 0, 0, 0.625, 0, 0, 0, 0.00625, 0.794181, -0.372653, 1.12114)
|
||||
polygon = PackedVector2Array(0, 0, 0, 1, 7, 1, 7, 0)
|
||||
depth = 14.4
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="dais2" type="CSGPolygon3D" parent="CSGCombiner3D/house[cs]"]
|
||||
transform = Transform3D(0.025, 0, 0, 0, 0.625, 0, 0, 0, 0.00625, -0.985529, -0.372653, 1.12114)
|
||||
polygon = PackedVector2Array(0, 0, 0, 1, 7, 1, 7, 0)
|
||||
depth = 14.4
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="roof" type="CSGBox3D" parent="CSGCombiner3D/house[cs]"]
|
||||
transform = Transform3D(-0.5, 0, 4.37114e-08, 0, 0.375, 0, -2.18557e-08, 0, -0.25, -0.00909543, 0.640003, -0.303319)
|
||||
size = Vector3(3.99767, 2.05802, 3.42455)
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="house[os]" type="CSGBox3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(-40, 0, -3.8147e-06, 0, 80, 0, 1.90735e-06, 0, -80, -85.6572, 11.8334, 157.291)
|
||||
size = Vector3(1.98291, 0.503906, 1.4407)
|
||||
material = SubResource("StandardMaterial3D_ult2w")
|
||||
|
||||
[node name="house_sub" type="CSGBox3D" parent="CSGCombiner3D/house[os]"]
|
||||
transform = Transform3D(0.92, 0, 0, 0, 0.9, 0, 0, 0, 0.96, -0.0160203, 0, 0)
|
||||
operation = 2
|
||||
size = Vector3(2.10019, 0.503906, 1.4407)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="door_house" type="CSGBox3D" parent="CSGCombiner3D/house[os]"]
|
||||
transform = Transform3D(0.503765, 0, 0, 0, 0.134818, 0, 0, 0, 0.0118971, -0.0536485, -0.00606109, 0.696579)
|
||||
operation = 2
|
||||
size = Vector3(1, 2.81519, 5)
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="roof_porch" type="CSGPolygon3D" parent="CSGCombiner3D/house[os]"]
|
||||
transform = Transform3D(-2.02415e-08, 0, 0.397644, 0, 0.318244, 0, -0.463072, 0, -1.73816e-08, 0.992785, 0.246994, 0.666835)
|
||||
polygon = PackedVector2Array(-1, 0, 1.17256, 0.871638, 1.17423, 0.0159316)
|
||||
depth = 5.0
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="porch" type="CSGPolygon3D" parent="CSGCombiner3D/house[os]"]
|
||||
transform = Transform3D(0.277503, 0, 0, 0, 0.04, 0, 0, 0, 0.028, -0.98546, -0.257268, 1.11665)
|
||||
polygon = PackedVector2Array(0, 0, 0, 1, 7, 1, 7, 0)
|
||||
depth = 14.4
|
||||
material = SubResource("StandardMaterial3D_xwpjv")
|
||||
|
||||
[node name="pillar1" type="CSGPolygon3D" parent="CSGCombiner3D/house[os]"]
|
||||
transform = Transform3D(0.025, 0, 0, 0, 0.625, 0, 0, 0, 0.00625, 0.794181, -0.372653, 1.12114)
|
||||
polygon = PackedVector2Array(0, 0, 0, 1, 7, 1, 7, 0)
|
||||
depth = 14.4
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="pillar2" type="CSGPolygon3D" parent="CSGCombiner3D/house[os]"]
|
||||
transform = Transform3D(0.025, 0, 0, 0, 0.625, 0, 0, 0, 0.00625, -0.985529, -0.372653, 1.12114)
|
||||
polygon = PackedVector2Array(0, 0, 0, 1, 7, 1, 7, 0)
|
||||
depth = 14.4
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="roof" type="CSGBox3D" parent="CSGCombiner3D/house[os]"]
|
||||
transform = Transform3D(-0.5, 0, 4.37114e-08, 0, 0.375, 0, -2.18557e-08, 0, -0.25, -0.00909567, 0.638935, -0.303319)
|
||||
size = Vector3(3.99767, 2.05802, 3.42455)
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(-4.6386e-08, 1.9128, -0.584111, 5.68374e-08, 0.584111, 1.9128, 2, 2.77639e-08, -6.79067e-08, -44.6165, 124.745, -6.56245e-06)
|
||||
light_angular_distance = 11.76
|
||||
shadow_enabled = true
|
||||
shadow_bias = 0.665
|
||||
|
||||
[node name="spawnpoint" parent="." instance=ExtResource("3_k28aq")]
|
||||
transform = Transform3D(2.31248, 0, 0, 0, 3.73308, 0, 0, 0, 3.56885, -16.2815, -1.31731, 32.7425)
|
||||
team = 1
|
||||
|
||||
[node name="spawnpoint2" parent="." instance=ExtResource("3_k28aq")]
|
||||
transform = Transform3D(2.31133, 0, 0, 0, 4, 0, 0, 0, 4, -79.9822, -1.05881, -41.2232)
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_n1nic")
|
|
@ -0,0 +1,80 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://18evx7g8m824"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://833q6upr0s1k" path="res://scenes/special/spawnpoint.tscn" id="1_cgcr3"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_efxfa"]
|
||||
|
||||
[sub_resource type="Sky" id="Sky_e5cvk"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_efxfa")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_n1nic"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_e5cvk")
|
||||
ambient_light_source = 1
|
||||
ambient_light_color = Color(0.133333, 0.0666667, 0.231373, 1)
|
||||
ambient_light_energy = 8.35
|
||||
tonemap_mode = 3
|
||||
tonemap_exposure = 0.95
|
||||
tonemap_white = 4.37
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8g7wu"]
|
||||
|
||||
[node name="OffisMi" type="Node3D"]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0.507999, 0, 0)
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_n1nic")
|
||||
|
||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="."]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0)
|
||||
use_collision = true
|
||||
|
||||
[node name="street" type="CSGBox3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(159.419, 0, 0, 0, 5.00683, 0, 0, 0, 185.961, -71.3788, 32.6358, -34.6318)
|
||||
material_override = SubResource("StandardMaterial3D_8g7wu")
|
||||
size = Vector3(1.13598, 13, 1.19824)
|
||||
|
||||
[node name="street_sub" type="CSGBox3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0.00775909, -0.0569553, 0.00497252)
|
||||
material_override = SubResource("StandardMaterial3D_8g7wu")
|
||||
operation = 2
|
||||
size = Vector3(1.11625, 11.6663, 1.15152)
|
||||
|
||||
[node name="indoors" type="CSGBox3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(100, 0, 0, 0, 100, 0, 0, 0, 100, 118.286, 24.8046, 4.05123)
|
||||
size = Vector3(1.98291, 0.503906, 1.4407)
|
||||
|
||||
[node name="indoors_sub" type="CSGBox3D" parent="CSGCombiner3D/indoors"]
|
||||
transform = Transform3D(0.9, 0, 0, 0, 0.9, 0, 0, 0, 0.9, -0.0101299, 0, 0)
|
||||
operation = 2
|
||||
size = Vector3(2.0871, 0.503906, 1.4407)
|
||||
|
||||
[node name="door_left" type="CSGBox3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(10, 0, 0, 0, 19.5, 0, 0, 0, 10, 21.5201, 22.7882, -43.9167)
|
||||
operation = 2
|
||||
size = Vector3(1, 1.24609, 1.53955)
|
||||
|
||||
[node name="door_right" type="CSGBox3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(10, 0, 0, 0, 10, 0, 0, 0, 10, 21.0247, 25.3519, 33.9889)
|
||||
operation = 2
|
||||
size = Vector3(1, 3.05762, 5)
|
||||
|
||||
[node name="dais" type="CSGPolygon3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(10, 0, 0, 0, 10, 0, 0, 0, 10, -10, 0.587306, 76.1409)
|
||||
polygon = PackedVector2Array(0, 0, 0, 1, 7, 1, 7, 0)
|
||||
depth = 14.4
|
||||
|
||||
[node name="ramp" type="CSGPolygon3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(10, 0, 0, 0, 10, 0, 0, 0, 10, -20, 0.559414, -30.6844)
|
||||
polygon = PackedVector2Array(-1, 0, 1, 1, 1, 0)
|
||||
depth = 3.72
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(-4.37114e-08, 0.422618, -0.906308, 0, 0.906308, 0.422618, 1, 1.84732e-08, -3.9616e-08, -68.4262, 84.9077, -2.99101e-06)
|
||||
|
||||
[node name="spawnpoint" parent="." instance=ExtResource("1_cgcr3")]
|
||||
transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, -16.854, 0.629008, 2.82309)
|
||||
team = 1
|
||||
|
||||
[node name="spawnpoint2" parent="." instance=ExtResource("1_cgcr3")]
|
||||
transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 23.9201, 0.425767, -1.07893)
|
|
@ -0,0 +1,304 @@
|
|||
[gd_scene load_steps=15 format=3 uid="uid://dx2v4x2jey55t"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c88oa7ckhmvoh" path="res://textures/prototype-textures/Prototype_grey_32x32px.png" id="1_87a53"]
|
||||
[ext_resource type="Material" uid="uid://bm7dpv2ymo0s" path="res://textures/materials/black.material" id="2_acmnt"]
|
||||
[ext_resource type="Material" uid="uid://c6sa1jlgmjnln" path="res://textures/materials/orange.tres" id="3_1ncrc"]
|
||||
[ext_resource type="Texture2D" uid="uid://bxmfgknljdw65" path="res://icon.svg" id="4_6thf3"]
|
||||
[ext_resource type="PackedScene" uid="uid://833q6upr0s1k" path="res://scenes/special/spawnpoint.tscn" id="5_4t8n8"]
|
||||
[ext_resource type="Material" uid="uid://lh788k850e21" path="res://textures/materials/red.material" id="5_mri33"]
|
||||
[ext_resource type="Material" path="res://textures/materials/orange.res" id="6_n8h4m"]
|
||||
[ext_resource type="PackedScene" uid="uid://dgctb724je8cj" path="res://scenes/models/ladder.tscn" id="9_ix4hd"]
|
||||
[ext_resource type="PackedScene" uid="uid://ut1ssyeu88ui" path="res://scenes/models/target.tscn" id="10_cjpfc"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rbwrc"]
|
||||
albedo_texture = ExtResource("1_87a53")
|
||||
uv1_scale = Vector3(0.1, 0.1, 0.1)
|
||||
uv1_triplanar = true
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lkg5o"]
|
||||
albedo_texture = ExtResource("4_6thf3")
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_efxfa"]
|
||||
|
||||
[sub_resource type="Sky" id="Sky_e5cvk"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_efxfa")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_n1nic"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_e5cvk")
|
||||
ambient_light_source = 3
|
||||
ambient_light_color = Color(0.0666667, 0.0235294, 0.129412, 1)
|
||||
ambient_light_energy = 8.35
|
||||
reflected_light_source = 2
|
||||
tonemap_mode = 3
|
||||
tonemap_exposure = 0.95
|
||||
tonemap_white = 4.37
|
||||
|
||||
[node name="training" type="Node3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.508, -20.0195, 0)
|
||||
|
||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="."]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 14.2632, 0)
|
||||
use_collision = true
|
||||
|
||||
[node name="street" type="CSGBox3D" parent="CSGCombiner3D"]
|
||||
transform = Transform3D(100, 0, 0, 0, 150, 0, 0, 0, 100, -244.068, 66.1137, -14.1194)
|
||||
size = Vector3(1.98291, 0.503906, 2.3484)
|
||||
material = SubResource("StandardMaterial3D_rbwrc")
|
||||
|
||||
[node name="shooting_sub" type="CSGBox3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(-1.29289e-08, 0, -0.211434, 0, 0.0150877, 0, 0.295778, 0, -9.24206e-09, 0.00463009, -0.189736, -1.16362)
|
||||
operation = 2
|
||||
size = Vector3(0.0764232, 7.78497, 1.91521)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="street_sub" type="CSGBox3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(0.93, 0, 0, 0, 0.99, 0, 0, 0, 0.94, 0.00422084, -0.000894368, -0.000665724)
|
||||
operation = 2
|
||||
size = Vector3(2.11789, 0.501953, 2.45102)
|
||||
material = ExtResource("2_acmnt")
|
||||
|
||||
[node name="spawn" type="CSGBox3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(0.387675, 0, 0, 0, 0.0226455, 0, 0, 0, 0.275283, 0.00389695, -0.25037, -1.0268)
|
||||
size = Vector3(1.04541, 0.31958, 0.937866)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour" type="CSGBox3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(0.10194, 0, 0, 0, 0.0226455, 0, 0, 0, 0.0377425, 0.93736, -0.23922, -0.935865)
|
||||
size = Vector3(1, 0.89447, 0.90625)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_box1" type="CSGBox3D" parent="CSGCombiner3D/street/parkour"]
|
||||
transform = Transform3D(0.991001, 0, 0, 0, 1.09596, 0, 0, 0, 1.25, 0.00752103, 2.28263, 7.40127)
|
||||
size = Vector3(0.950317, 0.922791, 2.14742)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_box2" type="CSGBox3D" parent="CSGCombiner3D/street/parkour"]
|
||||
transform = Transform3D(0.991001, 0, 0, 0, 1.09596, 0, 0, 0, 1.25, 0.00752103, 2.88176, 12.7006)
|
||||
size = Vector3(0.950317, 0.922791, 2.14742)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_box3" type="CSGBox3D" parent="CSGCombiner3D/street/parkour"]
|
||||
transform = Transform3D(0.991001, 0, 0, 0, 1.09596, 0, 0, 0, 1.25, 0.00752103, 3.79818, 17.8686)
|
||||
size = Vector3(0.950317, 0.922791, 2.14742)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_box4" type="CSGBox3D" parent="CSGCombiner3D/street/parkour"]
|
||||
transform = Transform3D(0.991001, 0, 0, 0, 1.09596, 0, 0, 0, 1.25, 0.00752103, 3.79817, 22.0665)
|
||||
size = Vector3(0.950317, 0.922791, 2.14742)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_box5" type="CSGBox3D" parent="CSGCombiner3D/street/parkour"]
|
||||
transform = Transform3D(0.991001, 0, 0, 0, 1.09596, 0, 0, 0, 1.25, 0.00752103, 5.20021, 27.0735)
|
||||
size = Vector3(0.950317, 0.922791, 2.14742)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_box6" type="CSGBox3D" parent="CSGCombiner3D/street/parkour"]
|
||||
transform = Transform3D(0.991001, 0, 0, 0, 1.09596, 0, 0, 0, 1.25, 0.00752103, 5.20021, 32.3758)
|
||||
size = Vector3(0.950317, 0.922791, 2.14742)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_box7" type="CSGBox3D" parent="CSGCombiner3D/street/parkour"]
|
||||
transform = Transform3D(0.991001, 0, 0, 0, 1.09595, 0, 0, 0, 1.25, 0.00752103, 6.73271, 37.7022)
|
||||
size = Vector3(0.950317, 0.922791, 2.14742)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_box13" type="CSGBox3D" parent="CSGCombiner3D/street/parkour"]
|
||||
transform = Transform3D(0.991001, 0, 0, 0, 1.09598, 0, 0, 0, 1.25, 0.0266271, 6.85271, 47.0988)
|
||||
size = Vector3(0.959534, 0.922791, 2.1595)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_end" type="CSGBox3D" parent="CSGCombiner3D/street/parkour"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999992, 0, 0, 0, 1, -0.347962, 9.17355, 53.0341)
|
||||
size = Vector3(1.69592, 5.45794, 4.52627)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_sub_end" type="CSGBox3D" parent="CSGCombiner3D/street/parkour/parkour_end"]
|
||||
transform = Transform3D(0.9, 0, 0, 0, 1.14301, 0, 0, 0, 0.9, 0, 0.0240231, 0)
|
||||
operation = 2
|
||||
size = Vector3(1.69592, 4.45982, 4.52627)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_end_door" type="CSGBox3D" parent="CSGCombiner3D/street/parkour/parkour_end"]
|
||||
transform = Transform3D(0.900002, 0, 0, 0, 1.14301, 0, 0, 0, 0.9, 0.404045, -0.201972, -2.16516)
|
||||
operation = 2
|
||||
size = Vector3(0.8032, 4.06438, 0.304638)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="parkour_end_box)" type="CSGBox3D" parent="CSGCombiner3D/street/parkour/parkour_end"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.561937, -0.663228, -4.19617e-05)
|
||||
size = Vector3(0.401611, 3.72974, 4.05717)
|
||||
material = SubResource("StandardMaterial3D_lkg5o")
|
||||
|
||||
[node name="shooting_range" type="CSGBox3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(-1.27646e-08, 0, -0.223462, 0, 0.0142314, 0, 0.292019, 0, -9.76781e-09, 0.00526714, -0.188671, -1.58776)
|
||||
size = Vector3(2.96117, 8.45836, 1.82671)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="shooting_sub" type="CSGBox3D" parent="CSGCombiner3D/street/shooting_range"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1.06017, 0, 0, 0, 0.94, 0.131983, -0.101251, 0)
|
||||
operation = 2
|
||||
size = Vector3(2.78656, 7.7854, 1.92123)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="fence" type="CSGBox3D" parent="CSGCombiner3D/street/shooting_range"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 7.10543e-15, 0, 1.00244, 1.26456, -3.23811, 0.00521278)
|
||||
size = Vector3(0.0600586, 1.92407, 1.78809)
|
||||
material = ExtResource("2_acmnt")
|
||||
|
||||
[node name="king_of_the_hill" type="CSGMesh3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.9, 0, 0, 0, 0.5, 0.290829, -0.0257916, -0.154597)
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999999, 0, 0, 0, 1, 0, -0.224284, 0.936103)
|
||||
radius = 0.1
|
||||
height = 0.05
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("5_mri33")
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999999, 0, 0, 0, 1, 0, -0.224284, 0.0361031)
|
||||
radius = 0.1
|
||||
height = 0.05
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("5_mri33")
|
||||
|
||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999999, 0, 0, 0, 1, -0.9, -0.224284, 0.0361031)
|
||||
radius = 0.1
|
||||
height = 0.05
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("5_mri33")
|
||||
|
||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999999, 0, 0, 0, 1, -0.9, -0.224284, 0.936103)
|
||||
radius = 0.1
|
||||
height = 0.05
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("5_mri33")
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999998, 0, 0, 0, 1, -0.65, -0.200705, 0.736102)
|
||||
radius = 0.1
|
||||
height = 0.1
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("5_mri33")
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999997, 0, 0, 0, 1, -0.65, -0.200705, 0.236102)
|
||||
radius = 0.1
|
||||
height = 0.1
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("5_mri33")
|
||||
|
||||
[node name="CSGCylinder3D7" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999997, 0, 0, 0, 1, -0.2, -0.200705, 0.236102)
|
||||
radius = 0.1
|
||||
height = 0.1
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("5_mri33")
|
||||
|
||||
[node name="CSGCylinder3D8" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999997, 0, 0, 0, 1, -0.2, -0.200705, 0.736102)
|
||||
radius = 0.1
|
||||
height = 0.1
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("5_mri33")
|
||||
|
||||
[node name="CSGCylinder3D9" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999996, 0, 0, 0, 1, -0.415994, -0.174006, 0.486101)
|
||||
radius = 0.15
|
||||
height = 0.15
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("5_mri33")
|
||||
|
||||
[node name="CSGCylinder3D10" type="CSGCylinder3D" parent="CSGCombiner3D/street/king_of_the_hill"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999996, 0, 0, 0, 1, -0.415994, -0.0773044, 0.486101)
|
||||
radius = 0.1
|
||||
height = 0.05
|
||||
sides = 12
|
||||
smooth_faces = false
|
||||
material = ExtResource("6_n8h4m")
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="CSGCombiner3D/street/king_of_the_hill/CSGCylinder3D10"]
|
||||
transform = Transform3D(0.1, 0, 0, 0, 0.0370372, 0, 0, 0, 0.1, 0, 0.0374591, 0)
|
||||
light_energy = 14.419
|
||||
omni_range = 30.468
|
||||
|
||||
[node name="tower" type="CSGMesh3D" parent="CSGCombiner3D/street"]
|
||||
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
|
||||
|
||||
[node name="tower_box" type="CSGBox3D" parent="CSGCombiner3D/street/tower"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.09447, -0.0654277, -1.31192)
|
||||
size = Vector3(0.25, 0.5, 0.25)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="tower_sub" type="CSGBox3D" parent="CSGCombiner3D/street/tower"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.09447, -0.0654277, -1.31192)
|
||||
operation = 2
|
||||
size = Vector3(0.15, 0.49, 0.15)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="tower_door" type="CSGBox3D" parent="CSGCombiner3D/street/tower"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.804594, 0, 0, 0, 0.815685, -1.06183, -0.243172, -1.31417)
|
||||
operation = 2
|
||||
size = Vector3(0.187427, 0.167599, 0.17074)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="tower_floor_sub" type="CSGBox3D" parent="CSGCombiner3D/street/tower"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.999999, 0, 0, 0, 1, -1.09408, 0.117174, -1.31182)
|
||||
operation = 2
|
||||
size = Vector3(0.26, 0.15, 0.253418)
|
||||
material = ExtResource("3_1ncrc")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(0.00940726, 0.999898, -0.0107741, 0.0036501, 0.0107402, 0.999936, 0.999949, -0.00944598, -0.00354869, -44.6165, 55.8676, -6.56245e-06)
|
||||
light_angular_distance = 11.76
|
||||
shadow_enabled = true
|
||||
shadow_bias = 0.665
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_n1nic")
|
||||
|
||||
[node name="spawnpoint" parent="." instance=ExtResource("5_4t8n8")]
|
||||
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -48.5215, 20.4632, -22.9326)
|
||||
team = 1
|
||||
|
||||
[node name="spawnpoint2" parent="." instance=ExtResource("5_4t8n8")]
|
||||
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -48.5284, 20.414, -22.8886)
|
||||
|
||||
[node name="target" parent="." instance=ExtResource("10_cjpfc")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -51.6507, 20.0206, -41.6927)
|
||||
|
||||
[node name="target2" parent="." instance=ExtResource("10_cjpfc")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -48.8073, 20.0206, -40.9023)
|
||||
|
||||
[node name="target3" parent="." instance=ExtResource("10_cjpfc")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -45.801, 20.0206, -41.3646)
|
||||
|
||||
[node name="ladder" parent="." instance=ExtResource("9_ix4hd")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -67.5251, 20.0388, -23.7606)
|
||||
|
||||
[node name="ladder2" parent="." instance=ExtResource("9_ix4hd")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -67.5251, 21.3906, -23.7612)
|
||||
|
||||
[node name="ladder3" parent="." instance=ExtResource("9_ix4hd")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -67.5251, 22.7609, -23.7643)
|
||||
|
||||
[node name="ladder4" parent="." instance=ExtResource("9_ix4hd")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -67.5251, 24.0983, -23.7605)
|
||||
|
||||
[node name="ladder5" parent="." instance=ExtResource("9_ix4hd")]
|
||||
transform = Transform3D(2.98023e-08, 0, 1, 0, 1, 0, -1, 0, 2.98023e-08, -67.525, 25.45, -23.761)
|
||||
|
||||
[node name="ladder6" parent="." instance=ExtResource("9_ix4hd")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -67.525, 26.817, -23.762)
|
|
@ -1,39 +0,0 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://cjlgs86ey1u1o"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/ConnectButton.gd" id="1_oqnod"]
|
||||
|
||||
[node name="Menu" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Connect" type="Button" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 24.0
|
||||
offset_top = 584.0
|
||||
offset_right = 196.0
|
||||
offset_bottom = 634.0
|
||||
pivot_offset = Vector2(88, 24)
|
||||
text = "Connect"
|
||||
script = ExtResource("1_oqnod")
|
||||
|
||||
[node name="IP" type="TextEdit" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 25.0
|
||||
offset_top = 496.0
|
||||
offset_right = 194.0
|
||||
offset_bottom = 535.0
|
||||
text = "127.0.0.1"
|
||||
placeholder_text = "IP Address"
|
||||
|
||||
[node name="Port" type="TextEdit" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 24.0
|
||||
offset_top = 539.0
|
||||
offset_right = 195.0
|
||||
offset_bottom = 576.0
|
||||
text = "2390"
|
||||
placeholder_text = "Port"
|
|
@ -0,0 +1,13 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://caos4gg5cd6f6"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dndsa6rm6hovq" path="res://scenes/models/automatto.dae" id="1_kapkd"]
|
||||
|
||||
[node name="ak-47" type="Node3D"]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, -0.570068, 0, 0)
|
||||
|
||||
[node name="automatto" parent="." instance=ExtResource("1_kapkd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.18626, -1.25157, 0)
|
||||
|
||||
[node name="raycast" type="RayCast3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.92407, 0.951779, 0)
|
||||
target_position = Vector3(-1, 0, 0)
|
|
@ -0,0 +1,15 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://cm4as5vv2k2di"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/BulletTraces.gd" id="1_trgm5"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_g4lay"]
|
||||
albedo_color = Color(1, 0, 1, 1)
|
||||
emission = Color(1, 0, 0.741176, 1)
|
||||
emission_energy_multiplier = 9.21
|
||||
|
||||
[sub_resource type="ImmediateMesh" id="ImmediateMesh_djmsg"]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D"]
|
||||
material_override = SubResource("StandardMaterial3D_g4lay")
|
||||
mesh = SubResource("ImmediateMesh_djmsg")
|
||||
script = ExtResource("1_trgm5")
|
|
@ -0,0 +1,22 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://dvrv2bfmotivm"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bmuo2tbe3r8ih" path="res://textures/logo/ammo.svg" id="1_p3k0o"]
|
||||
[ext_resource type="Script" path="res://scripts/KillLogEntry.gd" id="1_tki6n"]
|
||||
|
||||
[node name="kill_log_entry" type="HBoxContainer"]
|
||||
offset_right = 311.0
|
||||
offset_bottom = 102.0
|
||||
scale = Vector2(0.275, 0.275)
|
||||
script = ExtResource("1_tki6n")
|
||||
|
||||
[node name="killer" type="Label" parent="."]
|
||||
layout_mode = 2
|
||||
text = "Unnamed"
|
||||
|
||||
[node name="logo" type="TextureRect" parent="."]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("1_p3k0o")
|
||||
|
||||
[node name="victim" type="Label" parent="."]
|
||||
layout_mode = 2
|
||||
text = "Unnamed"
|
|
@ -0,0 +1,5 @@
|
|||
[gd_scene format=3 uid="uid://dp0eiikisy5e8"]
|
||||
|
||||
[node name="Knife" type="Node3D"]
|
||||
|
||||
[node name="knife" type="Node3D" parent="."]
|
|
@ -0,0 +1,24 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://dgctb724je8cj"]
|
||||
|
||||
[ext_resource type="ArrayMesh" uid="uid://bal0u14qxmjfb" path="res://models/ladder.obj" id="1_57ly1"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_10q5c"]
|
||||
size = Vector3(0.894531, 1.39441, 0.121826)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_8igfg"]
|
||||
size = Vector3(0.890503, 1.36963, 1)
|
||||
|
||||
[node name="ladder" type="StaticBody3D"]
|
||||
|
||||
[node name="shape" type="MeshInstance3D" parent="."]
|
||||
mesh = ExtResource("1_57ly1")
|
||||
|
||||
[node name="collider" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.000976562, 0.667726, 0.00769043)
|
||||
shape = SubResource("BoxShape3D_10q5c")
|
||||
|
||||
[node name="active_area" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0043335, 0.679118, 0.57602)
|
||||
visible = false
|
||||
shape = SubResource("BoxShape3D_8igfg")
|
||||
disabled = true
|
|
@ -0,0 +1,12 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://cnu1vf8k5i3tv"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://hf47u08p80fo" path="res://models/pistoletto.dae" id="1_hdcb6"]
|
||||
|
||||
[node name="pistol" type="Node3D"]
|
||||
|
||||
[node name="pistoletto" parent="." instance=ExtResource("1_hdcb6")]
|
||||
transform = Transform3D(0.21, 0, 0, 0, 0.21, 0, 0, 0, 0.21, 0, 0, 0)
|
||||
|
||||
[node name="raycast" type="RayCast3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.461124, 0.0946267, 2.01564e-08)
|
||||
target_position = Vector3(-1, 0, 0)
|
|
@ -0,0 +1,128 @@
|
|||
[gd_scene load_steps=17 format=3 uid="uid://b2jhgtduapovl"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/Player.gd" id="1_o6o4b"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://xh7mm0ldn6yw" path="res://models/knife.obj" id="2_7hcoq"]
|
||||
[ext_resource type="PackedScene" uid="uid://cnu1vf8k5i3tv" path="res://scenes/models/pistol.tscn" id="2_nxbij"]
|
||||
[ext_resource type="Texture2D" uid="uid://cbf6w7ativli8" path="res://textures/knife_textures.png" id="2_y1ydh"]
|
||||
[ext_resource type="PackedScene" uid="uid://caos4gg5cd6f6" path="res://scenes/models/ak_47.tscn" id="3_r56e3"]
|
||||
[ext_resource type="Material" path="res://textures/materials/orange.res" id="6_md2fv"]
|
||||
[ext_resource type="Material" uid="uid://bfvkovv6sevfw" path="res://textures/materials/black90%.res" id="7_2k5kn"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://dpdsmpuycacsx" path="res://models/playerv2.obj" id="7_jg2rj"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jqoeg"]
|
||||
albedo_texture = ExtResource("2_y1ydh")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0suq1"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_04dhp"]
|
||||
size = Vector3(0.379028, 0.376923, 0.371674)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_xes75"]
|
||||
size = Vector3(0.44751, 0.866943, 0.152832)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_61s8a"]
|
||||
size = Vector3(0.18811, 1.06403, 0.191895)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_slu1u"]
|
||||
size = Vector3(0.191162, 1.05872, 0.195557)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_mtx2c"]
|
||||
size = Vector3(0.177368, 1.06198, 0.190918)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_shrr1"]
|
||||
size = Vector3(0.180664, 1.06628, 0.180664)
|
||||
|
||||
[node name="player" type="CharacterBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.15595, 0)
|
||||
script = ExtResource("1_o6o4b")
|
||||
|
||||
[node name="Head" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.94573, 0)
|
||||
|
||||
[node name="Camera" type="Camera3D" parent="Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0834589, 0)
|
||||
fov = 90.0
|
||||
|
||||
[node name="viewRaycast" type="RayCast3D" parent="Head/Camera"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0123241, -0.315944)
|
||||
target_position = Vector3(0, 0, -100)
|
||||
|
||||
[node name="Hand" type="Node3D" parent="Head/Camera"]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0.72454, -0.463491, -0.808041)
|
||||
|
||||
[node name="knife" type="MeshInstance3D" parent="Head/Camera/Hand"]
|
||||
transform = Transform3D(-0.139396, -0.0769224, -0.0158664, -0.077265, 0.140107, -0.000437333, 0.014104, 0.00728098, -0.159211, -0.158471, 0.141593, 0.229943)
|
||||
material_override = SubResource("StandardMaterial3D_jqoeg")
|
||||
mesh = ExtResource("2_7hcoq")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_0suq1")
|
||||
|
||||
[node name="raycast" type="RayCast3D" parent="Head/Camera/Hand/knife"]
|
||||
transform = Transform3D(-0.499475, -0.84915, -0.171667, 0.861274, -0.508089, 0.00733016, -0.0934463, -0.144191, 0.985128, -0.04988, 2.15182, 0.02285)
|
||||
|
||||
[node name="pistol" parent="Head/Camera/Hand" instance=ExtResource("2_nxbij")]
|
||||
transform = Transform3D(1, 0, -3.55271e-15, 0, 1, 0, 3.55271e-15, 0, 1, 2.38419e-07, -0.0344509, 0.118615)
|
||||
visible = false
|
||||
|
||||
[node name="ak-47" parent="Head/Camera/Hand" instance=ExtResource("3_r56e3")]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, -0.30437, -0.235472, 0.183832)
|
||||
visible = false
|
||||
|
||||
[node name="Nickname" type="Label3D" parent="Head"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.541, 0)
|
||||
billboard = 1
|
||||
text = "Unnamed"
|
||||
|
||||
[node name="Playerv2" type="MeshInstance3D" parent="Head"]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, -2.04673, 0)
|
||||
mesh = ExtResource("7_jg2rj")
|
||||
skeleton = NodePath("../../..")
|
||||
surface_material_override/0 = ExtResource("6_md2fv")
|
||||
surface_material_override/1 = ExtResource("6_md2fv")
|
||||
surface_material_override/2 = ExtResource("7_2k5kn")
|
||||
surface_material_override/3 = ExtResource("7_2k5kn")
|
||||
surface_material_override/4 = ExtResource("6_md2fv")
|
||||
surface_material_override/5 = ExtResource("6_md2fv")
|
||||
surface_material_override/6 = ExtResource("7_2k5kn")
|
||||
surface_material_override/7 = ExtResource("7_2k5kn")
|
||||
surface_material_override/8 = ExtResource("7_2k5kn")
|
||||
surface_material_override/9 = ExtResource("6_md2fv")
|
||||
surface_material_override/10 = ExtResource("6_md2fv")
|
||||
surface_material_override/11 = ExtResource("6_md2fv")
|
||||
surface_material_override/12 = ExtResource("7_2k5kn")
|
||||
surface_material_override/13 = ExtResource("6_md2fv")
|
||||
surface_material_override/14 = ExtResource("7_2k5kn")
|
||||
surface_material_override/15 = ExtResource("6_md2fv")
|
||||
surface_material_override/16 = ExtResource("7_2k5kn")
|
||||
surface_material_override/17 = ExtResource("6_md2fv")
|
||||
surface_material_override/18 = ExtResource("6_md2fv")
|
||||
surface_material_override/19 = ExtResource("7_2k5kn")
|
||||
surface_material_override/20 = ExtResource("7_2k5kn")
|
||||
surface_material_override/21 = ExtResource("7_2k5kn")
|
||||
surface_material_override/22 = ExtResource("6_md2fv")
|
||||
surface_material_override/23 = ExtResource("6_md2fv")
|
||||
surface_material_override/24 = ExtResource("6_md2fv")
|
||||
surface_material_override/25 = ExtResource("7_2k5kn")
|
||||
|
||||
[node name="collisionhead" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000598475, 0.993303, 0.0291694)
|
||||
shape = SubResource("BoxShape3D_04dhp")
|
||||
|
||||
[node name="collisionbody" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.003387, 0.364707, 0.0712848)
|
||||
shape = SubResource("BoxShape3D_xes75")
|
||||
|
||||
[node name="collisionlefthand" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.352796, 0.209396, 0.0609986)
|
||||
shape = SubResource("BoxShape3D_61s8a")
|
||||
|
||||
[node name="collisionrighthand" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.340745, 0.207778, 0.0591591)
|
||||
shape = SubResource("BoxShape3D_slu1u")
|
||||
|
||||
[node name="collisionrightleg" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.125481, -0.602212, 0.0608763)
|
||||
shape = SubResource("BoxShape3D_mtx2c")
|
||||
|
||||
[node name="collisionleftleg" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.130327, -0.599574, 0.0610861)
|
||||
shape = SubResource("BoxShape3D_shrr1")
|
|
@ -0,0 +1,21 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://2xfxpyp56wik"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/point.gd" id="1_cv6ca"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_4jsrs"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0d60f"]
|
||||
albedo_color = Color(1, 0, 0, 1)
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_bwsgk"]
|
||||
|
||||
[node name="point" type="StaticBody3D"]
|
||||
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
|
||||
script = ExtResource("1_cv6ca")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("SphereShape3D_4jsrs")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
material_override = SubResource("StandardMaterial3D_0d60f")
|
||||
mesh = SubResource("SphereMesh_bwsgk")
|
|
@ -0,0 +1,8 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://bf6uev4mtg2ls"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/SpectatorControls.gd" id="1_uqbjn"]
|
||||
|
||||
[node name="head" type="Node3D"]
|
||||
script = ExtResource("1_uqbjn")
|
||||
|
||||
[node name="Camera" type="Camera3D" parent="."]
|
|
@ -0,0 +1,24 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://ut1ssyeu88ui"]
|
||||
|
||||
[ext_resource type="ArrayMesh" uid="uid://cqomvoochvl6s" path="res://models/target.obj" id="1_5q4vg"]
|
||||
[ext_resource type="Script" path="res://scripts/target.gd" id="1_hd3f1"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_dliev"]
|
||||
size = Vector3(0.624695, 0.569092, 0.129181)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_7mpxi"]
|
||||
size = Vector3(0.877014, 1.24915, 0.123413)
|
||||
|
||||
[node name="target" type="StaticBody3D"]
|
||||
script = ExtResource("1_hd3f1")
|
||||
|
||||
[node name="Mesh" type="MeshInstance3D" parent="."]
|
||||
mesh = ExtResource("1_5q4vg")
|
||||
|
||||
[node name="head" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00143433, 1.52753, 0.000686646)
|
||||
shape = SubResource("BoxShape3D_dliev")
|
||||
|
||||
[node name="body" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.15527e-05, 0.621679, -0.000305176)
|
||||
shape = SubResource("BoxShape3D_7mpxi")
|
|
@ -0,0 +1,17 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://833q6upr0s1k"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/team_spawnpoint.gd" id="1_xuukx"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_ic53j"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lytgi"]
|
||||
albedo_color = Color(1, 1, 0, 1)
|
||||
|
||||
[node name="spawnpoint" type="Node3D"]
|
||||
transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0)
|
||||
script = ExtResource("1_xuukx")
|
||||
|
||||
[node name="area" type="CSGMesh3D" parent="."]
|
||||
visible = false
|
||||
mesh = SubResource("PlaneMesh_ic53j")
|
||||
material = SubResource("StandardMaterial3D_lytgi")
|
|
@ -1,90 +0,0 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://d0tdlmmo1texv"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cs0ysba50acxp" path="res://textures/texture_04_2.png" id="1_rei8g"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_68arr"]
|
||||
albedo_texture = ExtResource("1_rei8g")
|
||||
|
||||
[node name="test_map" type="Node3D"]
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.83748, 0.546467, 0, -0.546467, 0.83748, 0, 94.6015, 141.501)
|
||||
|
||||
[node name="terrain" type="Node3D" parent="."]
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="terrain"]
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -10)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 10)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D7" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -10)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D8" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D9" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 10)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D10" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 15, 5, -10)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D11" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 15, 5, 0)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D12" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(8.9407e-08, 1, 0, -1, 8.9407e-08, 0, 0, 0, 1, 15, 5, 10)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.1, 10)
|
||||
|
||||
[node name="CSGBox3D13" type="CSGBox3D" parent="terrain"]
|
||||
transform = Transform3D(-1, 1.78814e-07, 0, -1.26441e-07, -0.707107, -0.707107, -1.26441e-07, -0.707107, 0.707107, 10, 14.3726, -29.4839)
|
||||
material_override = SubResource("StandardMaterial3D_68arr")
|
||||
use_collision = true
|
||||
size = Vector3(10, 0.09425, 57.5945)
|
|
@ -0,0 +1 @@
|
|||
extends Node
|
|
@ -0,0 +1,11 @@
|
|||
extends MeshInstance3D
|
||||
|
||||
func init(start, end):
|
||||
var draw_mesh = ImmediateMesh.new()
|
||||
mesh = draw_mesh
|
||||
draw_mesh.surface_begin(Mesh.PRIMITIVE_LINES, material_override)
|
||||
draw_mesh.surface_add_vertex(to_local(start))
|
||||
draw_mesh.surface_add_vertex(to_local(end))
|
||||
draw_mesh.surface_end()
|
||||
await get_tree().create_timer(1).timeout
|
||||
free()
|
|
@ -5,7 +5,7 @@ extends Button
|
|||
@onready var port_input: TextEdit = $"../Port"
|
||||
|
||||
func _ready():
|
||||
button.text = "Click me"
|
||||
button.text = "Connect"
|
||||
button.pressed.connect(self._button_pressed)
|
||||
|
||||
func _button_pressed():
|
||||
|
|
|
@ -1,11 +1,78 @@
|
|||
extends Node
|
||||
|
||||
|
||||
var Weapons = {
|
||||
"knife" = {
|
||||
"number": 0,
|
||||
"magazine": -1,
|
||||
"ammo": -1
|
||||
},
|
||||
"pistol" = {
|
||||
"number": 1,
|
||||
"magazine": 50,
|
||||
"ammo": 200
|
||||
},
|
||||
"ak-47" = {
|
||||
"number": 2,
|
||||
"magazine": 30,
|
||||
"ammo": 100
|
||||
}
|
||||
}
|
||||
|
||||
var properties_example = {
|
||||
HP = 100,
|
||||
AP = 100,
|
||||
HACK = 1.0,
|
||||
class_type = 0,
|
||||
is_playable = false,
|
||||
internal_id = 0,
|
||||
nickname = "Unnamed",
|
||||
ready = false,
|
||||
current_weapon = Weapons["knife"].duplicate(),
|
||||
weapons = Weapons.duplicate(),
|
||||
last_shot = 0,
|
||||
reloading = false,
|
||||
position = Vector3(0, 5, 0)
|
||||
}
|
||||
|
||||
var client_settings
|
||||
var server_settings
|
||||
|
||||
func apply_weapon_settings(s: Dictionary): #game/weapons/weapon
|
||||
for weapon in s.values():
|
||||
Weapons[s.find_key(weapon)] = weapon
|
||||
print("New weapons: " + str(Weapons))
|
||||
|
||||
func _ready():
|
||||
var client_settings_file = FileAccess.open("res://settings/client-settings.json", FileAccess.READ)
|
||||
client_settings = JSON.parse_string(client_settings_file.get_as_text())
|
||||
var server_settings_file = FileAccess.open("res://settings/server-settings.json", FileAccess.READ)
|
||||
server_settings = JSON.parse_string(server_settings_file.get_as_text())
|
||||
read_settings()
|
||||
|
||||
func read_settings():
|
||||
var user_dir = DirAccess.open(".")
|
||||
if(!user_dir.dir_exists("./settings")):
|
||||
user_dir.make_dir("settings")
|
||||
var client_settings_file
|
||||
|
||||
if(!FileAccess.file_exists("./settings/client-settings.json")):
|
||||
print("Client-settings doesn't exist, creating one")
|
||||
var example = FileAccess.open("res://settings/client-settings.json", FileAccess.READ)
|
||||
client_settings_file = FileAccess.open("./settings/client-settings.json", FileAccess.WRITE_READ)
|
||||
client_settings_file.store_string(example.get_as_text())
|
||||
else:
|
||||
client_settings_file = FileAccess.open("./settings/client-settings.json", FileAccess.READ)
|
||||
client_settings = JSON.parse_string(client_settings_file.get_as_text())
|
||||
|
||||
|
||||
var server_settings_file
|
||||
if(!FileAccess.file_exists("./settings/server-settings.json")):
|
||||
print("Server-settings doesn't exist, creating one")
|
||||
var example = FileAccess.open("res://settings/server-settings.json", FileAccess.READ)
|
||||
server_settings_file = FileAccess.open("./settings/server-settings.json", FileAccess.WRITE_READ)
|
||||
server_settings_file.store_string(example.get_as_text())
|
||||
else:
|
||||
server_settings_file = FileAccess.open("./settings/server-settings.json", FileAccess.READ)
|
||||
server_settings = JSON.parse_string(server_settings_file.get_as_text())
|
||||
apply_weapon_settings(server_settings["game"]["weapons"])
|
||||
|
||||
func save_client_settings():
|
||||
var client_settings_file = FileAccess.open("./settings/client-settings.json", FileAccess.WRITE)
|
||||
client_settings_file.store_string(str(client_settings))
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
extends HBoxContainer
|
||||
|
||||
|
||||
func _ready():
|
||||
await get_tree().create_timer(5).timeout
|
||||
for alpha in range(100, -1, -1):
|
||||
print(str(float(alpha) / 100.))
|
||||
|
||||
self.modulate = Color(1, 1, 1, float(alpha) / 100.)
|
||||
await get_tree().create_timer(0.01).timeout
|
||||
|
||||
free()
|
|
@ -1,53 +1,18 @@
|
|||
extends Node
|
||||
|
||||
enum Class_type {
|
||||
Spectator = 0,
|
||||
Astra = 1,
|
||||
BlackArch = 2,
|
||||
Kali = 3,
|
||||
Debian = 4,
|
||||
Arch = 5,
|
||||
Windows11 = -1,
|
||||
WindowsServer = -2,
|
||||
MacOS = -3,
|
||||
WindowsXP = -4,
|
||||
Windows10 = -5
|
||||
}
|
||||
|
||||
var Distro = {
|
||||
HP = 100,
|
||||
AP = 100,
|
||||
HACK = 1.0,
|
||||
class_type = 0,
|
||||
}
|
||||
var Player = {
|
||||
distro = Distro.duplicate(),
|
||||
speed = 1.0,
|
||||
position = Vector3(0, 10, 0),
|
||||
velocity = Vector3.ZERO,
|
||||
internal_id = 0,
|
||||
}
|
||||
|
||||
const player_class := preload("res://scripts/PlayerClass.gd")
|
||||
|
||||
var player_model = preload("res://models/player.tscn")
|
||||
var player_script = load("res://scripts/Player.gd")
|
||||
var player_model = load("res://scenes/models/player.tscn")
|
||||
var peer = ENetMultiplayerPeer.new()
|
||||
var settings
|
||||
var clients = {}
|
||||
var clients:Dictionary = {}
|
||||
var last_client_id = 1
|
||||
|
||||
func _ready():
|
||||
if "--server" in OS.get_cmdline_args():
|
||||
await get_tree().create_timer(0.01).timeout #костыль пиздец но мне похую как-то
|
||||
get_tree().change_scene_to_file("res://scenes/test_map.tscn")
|
||||
StartServer()
|
||||
|
||||
#######################################SERVER####################################
|
||||
func StartServer():
|
||||
settings = GameData.server_settings
|
||||
var port = int(settings["port"])
|
||||
var maxclients = int(settings["maxclients"])
|
||||
var port = int(GameData.server_settings["port"])
|
||||
var maxclients = int(GameData.server_settings["maxclients"])
|
||||
if (peer.create_server(port, maxclients) != OK):
|
||||
print("Couldn't create server. Check if another proccess binds port " + str(port))
|
||||
print("Couldn't create server. Check if another proccess binds port %s" % str(port))
|
||||
return
|
||||
|
||||
multiplayer.multiplayer_peer = peer
|
||||
|
@ -56,68 +21,297 @@ func StartServer():
|
|||
peer.connect("peer_connected", _Peer_Connected)
|
||||
peer.connect("peer_disconnected", _Peer_Disconnected)
|
||||
|
||||
func send_everyone_except(client_id, args):
|
||||
for current_client_id in clients.keys():
|
||||
if (str(current_client_id) == str(client_id)): continue
|
||||
if (args[1] == null): args[0].rpc_id(int(current_client_id))
|
||||
elif (args[2] == null): args[0].rpc_id(int(current_client_id), args[1])
|
||||
else: args[0].rpc_id(int(current_client_id), args[1], args[2])
|
||||
|
||||
func _Peer_Connected(client_id):
|
||||
print("User " + str(client_id) + " has conected")
|
||||
var internal_id = last_client_id + 1
|
||||
last_client_id += 1
|
||||
|
||||
clients[client_id] = GameData.properties_example.duplicate()
|
||||
var client = clients[client_id]
|
||||
client["position"] = Vector3(0, 10, 0)
|
||||
client["internal_id"] = internal_id
|
||||
client["is_playable"] = false
|
||||
client["current_weapon"] = GameData.server_settings["game"]["weapons"]["knife"].duplicate()
|
||||
|
||||
var puppet = player_model.instantiate()
|
||||
var internal_id = clients.size() + 2
|
||||
puppet.find_child("CharacterBody3D").set_is_playable(false)
|
||||
puppet.find_child("CharacterBody3D").set_internal_id(internal_id)
|
||||
puppet.name = "player" + str(internal_id)
|
||||
|
||||
clients[str(client_id)] = Player.duplicate()
|
||||
clients[str(client_id)]["internal_id"] = internal_id
|
||||
|
||||
add_child(puppet)
|
||||
|
||||
for current_client_id in clients.keys():
|
||||
if (int(current_client_id) == int(client_id)): continue
|
||||
rpc_id(int(current_client_id), "spawn_puppet", internal_id)
|
||||
puppet.set_properties(clients[client_id])
|
||||
|
||||
ServerUtils.server_map.add_child(puppet)
|
||||
|
||||
@rpc("any_peer", "reliable", "call_remote")
|
||||
func client_ready(client_id):
|
||||
var client = clients[client_id]
|
||||
var internal_id = client["internal_id"]
|
||||
|
||||
NetUtils.send_everyone_except(client_id, [Networking.spawn_puppet, clients[client_id]])
|
||||
|
||||
client["ready"] = true
|
||||
var client_playermodel = ServerUtils.find_playermodel_by_internal_id(internal_id)
|
||||
if (client["class_type"] == 0):
|
||||
var class_spawnpoint = ServerUtils.find_class_type_by_number(client["class_type"])["spawnpoint"]
|
||||
client["position"] = Vector3(class_spawnpoint[0], class_spawnpoint[1], class_spawnpoint[2])
|
||||
else:
|
||||
var index = abs(client["class_type"])
|
||||
if (client["class_type"] > 0):
|
||||
client["position"] = ServerUtils.team_OS["spawnpoints"].pick_random().get_class_spawnpoint(index)
|
||||
elif (client["class_type"] < 0):
|
||||
client["position"] = ServerUtils.team_CS["spawnpoints"].pick_random().get_class_spawnpoint(index)
|
||||
client_playermodel.set_properties(client)
|
||||
client_playermodel.teleport.rpc_id(client_id, Vector3(client["position"].x, client["position"].y, client["position"].z))
|
||||
|
||||
func _Peer_Disconnected(client_id):
|
||||
clients.erase(str(client_id))
|
||||
print("User " + str(client_id) + " has disconnected")
|
||||
var client = clients[client_id]
|
||||
var internal_id = client["internal_id"]
|
||||
if (client["class_type"] < 0):
|
||||
ServerUtils.team_CS["members"].erase(client)
|
||||
elif (client["class_type"] > 0):
|
||||
ServerUtils.team_OS["members"].erase(client)
|
||||
|
||||
rpc("despawn_puppet", internal_id)
|
||||
var puppet = ServerUtils.server_map.get_node("player" + str(internal_id))
|
||||
ServerUtils.server_map.remove_child(puppet)
|
||||
clients.erase(client_id)
|
||||
if (clients.size() == 0):
|
||||
ServerUtils.new_game(null, null) #Not changing anything
|
||||
|
||||
@rpc ("any_peer", "reliable", "call_remote")
|
||||
func get_character_properties(client_id):
|
||||
if !clients.has(str(client_id)):
|
||||
if !clients.has(client_id):
|
||||
return
|
||||
var to_send = clients[str(client_id)]
|
||||
rpc_id(client_id, "set_character_properties", to_send)
|
||||
|
||||
@rpc("any_peer", "call_remote")
|
||||
func move_client(client_id, position):
|
||||
#if(settings["enableAntiCheat"]): if(position > 10): return # нормально допилить надо
|
||||
clients[str(client_id)]["position"] = position
|
||||
var client = clients[str(client_id)]
|
||||
send_everyone_except(client_id, [get_node("player" + str(client["internal_id"])).find_child("CharacterBody3D").move_puppet, position, client["internal_id"]])
|
||||
var to_send = clients[client_id]
|
||||
rpc_id(client_id, "set_character_properties", to_send.duplicate())
|
||||
|
||||
@rpc("any_peer", "call_remote", "unreliable")
|
||||
func sync_client(client_id, position, rotation):
|
||||
var client = clients[client_id]
|
||||
var internal_id = str(client["internal_id"])
|
||||
var client_playermodel = ServerUtils.find_playermodel_by_internal_id(internal_id)
|
||||
client_playermodel.position = position
|
||||
#client_playermodel.find_child("Head").rotation.y = rotation.y
|
||||
client_playermodel.rotation.y = rotation.y
|
||||
client_playermodel.find_child("Head").find_child("Camera").rotation.x = rotation.x
|
||||
client["position"] = position
|
||||
client["rotation"] = rotation
|
||||
#NetUtils.send_everyone_except(client_id, ["sync_puppet", internal_id, position, rotation])
|
||||
NetUtils.send_everyone_except(client_id, [client_playermodel.sync_puppet, internal_id, position, rotation])
|
||||
|
||||
@rpc ("any_peer", "call_remote", "reliable")
|
||||
func get_client_list(client_id):
|
||||
#var playermodel = ServerUtils.find_playermodel_by_internal_id(clients[client_id]["internal_id"])
|
||||
for current_client_id in clients.keys():
|
||||
if (current_client_id == str(client_id)): continue
|
||||
rpc_id(client_id, "spawn_puppet", clients[str(current_client_id)]["internal_id"])
|
||||
if (current_client_id == client_id): continue
|
||||
rpc_id(client_id, "spawn_puppet", clients[current_client_id])
|
||||
#rpc_id(client_id, playermodel.spawn_puppet, clients[current_client_id])
|
||||
|
||||
@rpc ("any_peer", "call_remote", "reliable")
|
||||
func get_server_settings(client_id):
|
||||
var client = clients[client_id]
|
||||
var internal_id = str(client["internal_id"])
|
||||
var client_playermodel = ServerUtils.find_playermodel_by_internal_id(internal_id)
|
||||
client_playermodel.set_game_settings.rpc_id(client_id, GameData.server_settings["game"])
|
||||
|
||||
@rpc ("any_peer", "call_remote", "reliable")
|
||||
func set_nickname(client_id, nickname):
|
||||
clients[client_id]["nickname"] = nickname
|
||||
|
||||
@rpc("any_peer", "call_remote", "reliable")
|
||||
func shot(client_id):
|
||||
var client = clients[client_id]
|
||||
var internal_id = client["internal_id"]
|
||||
var current_weapon = GameData.server_settings["game"]["weapons"].find_key(ServerUtils.find_weapon_by_number(client["current_weapon"]["number"]))
|
||||
var current_weapon_settings = GameData.server_settings["game"]["weapons"][current_weapon]
|
||||
|
||||
var client_playermodel = ServerUtils.find_playermodel_by_internal_id(internal_id)
|
||||
var raycast:RayCast3D = client_playermodel.get_node("Head/Camera/viewRaycast")
|
||||
var weapon_raycast:RayCast3D = client_playermodel.get_node("Head/Camera/Hand/" + str(current_weapon) + "/raycast")
|
||||
print("currect weapon: " + current_weapon)
|
||||
raycast.target_position.z = -current_weapon_settings["range"]
|
||||
raycast.force_raycast_update()
|
||||
raycast.force_update_transform()
|
||||
var target_point = raycast.get_collision_point()
|
||||
|
||||
weapon_raycast.target_position = weapon_raycast.to_local(target_point) * 1.1
|
||||
weapon_raycast.force_raycast_update()
|
||||
weapon_raycast.force_update_transform()
|
||||
weapon_raycast.rotation.y = atan((weapon_raycast.position.x - client_playermodel.position.x) / ((-current_weapon_settings["range"]) - (abs(weapon_raycast.position.z - client_playermodel.position.z))))
|
||||
|
||||
weapon_raycast.target_position.y += current_weapon_settings["spreading"] * randf() * sin(randf() * 2 * PI)
|
||||
weapon_raycast.target_position.z += current_weapon_settings["spreading"] * randf() * cos(randf() * 2 * PI)
|
||||
|
||||
weapon_raycast.force_raycast_update()
|
||||
weapon_raycast.force_update_transform()
|
||||
|
||||
var target = weapon_raycast.get_collider()
|
||||
|
||||
var time_since_last_shot = (Time.get_ticks_msec() - client["last_shot"]) / 1000.
|
||||
|
||||
if (time_since_last_shot < current_weapon_settings["fireRate"] and client["last_shot"] > 0):
|
||||
return
|
||||
|
||||
if (client["current_weapon"]["magazine"] == 0):
|
||||
return
|
||||
client["last_shot"] = Time.get_ticks_msec()
|
||||
|
||||
if (target is CharacterBody3D):
|
||||
var target_internal_id = int(target.name.get_slice("player", 1))
|
||||
var target_client
|
||||
|
||||
for checking_client_id in clients.keys():
|
||||
if (clients[checking_client_id]["internal_id"] == target_internal_id):
|
||||
target_client = clients[checking_client_id]
|
||||
var target_client_id = int(clients.find_key(target_client))
|
||||
|
||||
var shape_num = weapon_raycast.get_collider_shape()
|
||||
var shapes = ["head", "body", "hand", "leg"]
|
||||
var shape = ServerUtils.choose_collision_shape(target, shape_num)
|
||||
var damage
|
||||
for s in shapes:
|
||||
if s in shape.name:
|
||||
damage = current_weapon_settings["damage"][s]
|
||||
break
|
||||
|
||||
var target_client_team = 1 if target_client["class_type"] > 0 else -1
|
||||
var client_team = 1 if client["class_type"] > 0 else -1
|
||||
|
||||
if (target_client_team == client_team):
|
||||
if (GameData.server_settings["game"]["gamemodes"][str(ServerUtils.gamemode)]["friendlyfire"]):
|
||||
target_client["HP"] -= damage
|
||||
else:
|
||||
target_client["HP"] -= damage
|
||||
|
||||
if (target_client["HP"] <= 0): ###########killed
|
||||
var index = abs(client["class_type"])
|
||||
var respawn = Vector3(0, 10 ,0)
|
||||
if (target_client_team == 1):
|
||||
ServerUtils.team_CS["round_score"] += 1
|
||||
respawn = ServerUtils.team_OS["spawnpoints"].pick_random().get_class_spawnpoint(index)
|
||||
elif (target_client_team == -1):
|
||||
ServerUtils.team_OS["round_score"] += 1
|
||||
respawn = ServerUtils.team_CS["spawnpoints"].pick_random().get_class_spawnpoint(index)
|
||||
|
||||
print("Score(OS-CS): %s - %s" % [str(ServerUtils.team_OS["round_score"]), str(ServerUtils.team_CS["round_score"])])
|
||||
target_client["position"] = respawn
|
||||
target_client["HP"] = 100
|
||||
target.teleport.rpc_id(target_client_id, target_client["position"])
|
||||
NetUtils.send_everyone(["kill_notification", client["nickname"], target_client["nickname"]])
|
||||
ServerUtils.check_gamemode_end_conditions()
|
||||
target.set_hp.rpc_id(target_client_id, target_client["HP"])
|
||||
elif (target is StaticBody3D):
|
||||
#var shapes = ["head", "body"]
|
||||
#var shape_num = weapon_raycast.get_collider_shape()
|
||||
#var shape = ServerUtils.choose_collision_shape(target, shape_num)
|
||||
target.shot.rpc_id(client_id, weapon_raycast.get_collision_point())
|
||||
NetUtils.send_everyone_except(client_id, [target.shot, weapon_raycast.get_collision_point()])
|
||||
|
||||
@rpc("reliable", "call_remote", "any_peer")
|
||||
func change_weapon(client_id, new_weapon_number):
|
||||
var client = clients[client_id]
|
||||
client["reloading"] = false
|
||||
var internal_id = str(client["internal_id"])
|
||||
client["current_weapon"] = client["weapons"][ServerUtils.find_weapon_name_by_number(new_weapon_number)]
|
||||
var client_playermodel = ServerUtils.find_playermodel_by_internal_id(internal_id)
|
||||
client_playermodel.change_weapon(new_weapon_number)
|
||||
client_playermodel.change_weapon.rpc_id(client_id, new_weapon_number)
|
||||
NetUtils.send_everyone_except(client_id, [client_playermodel.change_weapon_puppet, internal_id, new_weapon_number])
|
||||
|
||||
@rpc("any_peer", "call_remote", "reliable")
|
||||
func client_reloading(client_id):
|
||||
var client = clients[client_id]
|
||||
var weapons_list = GameData.server_settings["game"]["weapons"]
|
||||
var current_client_weapon = client["current_weapon"]
|
||||
var current_weapon_example = weapons_list.find_key(ServerUtils.find_weapon_by_number(current_client_weapon["number"]))
|
||||
var current_weapon_settings = weapons_list[current_weapon_example]
|
||||
var reload_time = current_weapon_settings["reload"]
|
||||
client["reloading"] = true
|
||||
ServerUtils.reloading_complete(client_id, reload_time)
|
||||
|
||||
@rpc("reliable", "any_peer", "call_remote")
|
||||
func get_map(client_id):
|
||||
rpc_id(client_id, "receive_map", ServerUtils.map_path)
|
||||
|
||||
@rpc("reliable", "any_peer", "call_remote")
|
||||
func choose_class(client_id, class_id):
|
||||
var client = clients[client_id]
|
||||
client["class_type"] = class_id
|
||||
#client["HP"] = GameData.settings["game"]["classes"][class_id]["HP"]
|
||||
#here are must be checks if the teams are balanced. WIP.
|
||||
if class_id > 0:
|
||||
ServerUtils.team_OS["members"].push_back(client)
|
||||
elif class_id < 0:
|
||||
ServerUtils.team_CS["members"].push_back(client)
|
||||
|
||||
switch_class.rpc_id(client_id, class_id)
|
||||
|
||||
##########################################CLIENT#######################
|
||||
|
||||
var player
|
||||
var menu = preload("res://scenes/HUD/menu.tscn")
|
||||
var current_map_instance
|
||||
var choose_team_hud
|
||||
var playermodel
|
||||
var puppets_to_spawn = []
|
||||
var map_path
|
||||
var map_root_name
|
||||
|
||||
@rpc ("reliable", "call_remote")
|
||||
func set_character_properties(p):
|
||||
player = p
|
||||
|
||||
@rpc("authority", "reliable", "call_remote")
|
||||
func spawn_puppet(internal_id):
|
||||
func spawn_puppet(properties):
|
||||
if (current_map_instance == null): # Player's not ready
|
||||
puppets_to_spawn.push_back(properties)
|
||||
return
|
||||
var puppet = player_model.instantiate()
|
||||
puppet.find_child("CharacterBody3D").set_is_playable(false)
|
||||
puppet.find_child("CharacterBody3D").set_internal_id(internal_id)
|
||||
puppet.name = "player" + str(internal_id)
|
||||
properties["ready"] = true
|
||||
puppet.set_properties(properties.duplicate())
|
||||
|
||||
add_child(puppet)
|
||||
current_map_instance.add_child(puppet)
|
||||
|
||||
func spawn_puppet_onready(properties):
|
||||
var puppet = player_model.instantiate()
|
||||
properties["ready"] = true
|
||||
puppet.set_properties(properties.duplicate())
|
||||
|
||||
current_map_instance.add_child(puppet)
|
||||
|
||||
@rpc("authority", "reliable", "call_remote")
|
||||
func despawn_puppet(internal_id):
|
||||
if (current_map_instance == null):
|
||||
return
|
||||
var puppet = current_map_instance.get_node("player" + str(internal_id))
|
||||
current_map_instance.remove_child(puppet)
|
||||
|
||||
@rpc("authority", "reliable", "call_remote")
|
||||
func receive_map(p):
|
||||
map_path = p
|
||||
map_root_name = (map_path.split("/")[-1]).split(".")[0]
|
||||
|
||||
@rpc("authority", "reliable", "call_remote")
|
||||
func switch_class(class_id):
|
||||
if (class_id == 128): # team is full, you must chose another
|
||||
current_map_instance.remove_child(choose_team_hud)
|
||||
current_map_instance.add_child(choose_team_hud)
|
||||
|
||||
player["class_type"] = class_id
|
||||
rpc_id(1, "client_ready", multiplayer.get_unique_id())
|
||||
current_map_instance.remove_child(choose_team_hud)
|
||||
playermodel.set_property("is_playable", true)
|
||||
playermodel.set_property("ready", true)
|
||||
|
||||
func spawn_player():
|
||||
print(str(player_model))
|
||||
playermodel = player_model.instantiate()
|
||||
print(str(playermodel))
|
||||
var properties = GameData.properties_example.duplicate()
|
||||
|
||||
properties = player
|
||||
properties["is_playable"] = false
|
||||
properties["ready"] = false
|
||||
playermodel.set_properties(properties)
|
||||
|
||||
current_map_instance.add_child(playermodel)
|
||||
|
||||
func ConnectToServer(ip, port):
|
||||
peer.create_client(ip, port)
|
||||
|
@ -132,22 +326,38 @@ func ConnectToServer(ip, port):
|
|||
|
||||
func _Connection_Failed():
|
||||
print("Failed to connect to server")
|
||||
peer = ENetMultiplayerPeer.new()
|
||||
multiplayer.multiplayer_peer = null
|
||||
|
||||
peer = ENetMultiplayerPeer.new()
|
||||
multiplayer.multiplayer_peer = peer
|
||||
|
||||
func _Connection_Succseeded():
|
||||
print("Succsessfully connected to the server")
|
||||
|
||||
var nickname = GameData.client_settings["nickname"]
|
||||
rpc_id(1, "set_nickname", multiplayer.get_unique_id(), nickname)
|
||||
rpc_id(1, "get_character_properties", multiplayer.get_unique_id())
|
||||
rpc_id(1, "get_client_list", multiplayer.get_unique_id())
|
||||
rpc_id(1, "get_map", multiplayer.get_unique_id())
|
||||
await get_tree().create_timer(0.2).timeout # костыль
|
||||
|
||||
get_tree().change_scene_to_file("res://scenes/test_map.tscn")
|
||||
get_tree().change_scene_to_file(map_path)
|
||||
await get_tree().create_timer(1).timeout # костыль
|
||||
current_map_instance = get_tree().root.get_node(map_root_name)
|
||||
|
||||
var player_node = player_model.instantiate()
|
||||
player_node.find_child("CharacterBody3D").set_is_playable(true)
|
||||
player_node.find_child("CharacterBody3D").set_internal_id(player["internal_id"])
|
||||
add_child(player_node)
|
||||
rpc_id(1, "get_client_list", multiplayer.get_unique_id())
|
||||
await get_tree().create_timer(0.05).timeout # костыль # tp
|
||||
rpc_id(1, "get_server_settings", multiplayer.get_unique_id())
|
||||
|
||||
await spawn_player()
|
||||
|
||||
choose_team_hud = preload("res://scenes/HUD/choose_team.tscn").instantiate()
|
||||
current_map_instance.add_child(choose_team_hud)
|
||||
|
||||
for puppet in puppets_to_spawn:
|
||||
spawn_puppet_onready(puppet)
|
||||
|
||||
func _Server_Disconnected():
|
||||
print("Server has disconnected")
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||
get_tree().change_scene_to_file("res://scenes/HUD/menu.tscn")
|
||||
multiplayer.multiplayer_peer = null
|
||||
peer = ENetMultiplayerPeer.new()
|
||||
multiplayer.multiplayer_peer = peer
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
extends Button
|
||||
|
||||
@onready var button = $"."
|
||||
@onready var nick_input: TextEdit = $"../Nickname"
|
||||
|
||||
func _ready():
|
||||
nick_input.text = GameData.client_settings["nickname"]
|
||||
button.text = "Set"
|
||||
button.pressed.connect(self._button_pressed)
|
||||
|
||||
func _button_pressed():
|
||||
var nickname = nick_input.text
|
||||
print("Setting nickname to " + str(nickname))
|
||||
GameData.client_settings["nickname"] = nickname
|
||||
GameData.save_client_settings()
|
|
@ -1,71 +1,380 @@
|
|||
extends CharacterBody3D
|
||||
|
||||
|
||||
const WALK_VELOCITY = 12.0
|
||||
const RUN_VELOCITY = 24.0
|
||||
const JUMP_VELOCITY = 12.0
|
||||
const SENSETIVITY = 0.009;
|
||||
|
||||
enum Class_type {
|
||||
Spectator = 0,
|
||||
Astra = 1,
|
||||
BlackArch = 2,
|
||||
Kali = 3,
|
||||
Debian = 4,
|
||||
Arch = 5,
|
||||
Windows11 = -1,
|
||||
WindowsServer = -2,
|
||||
MacOS = -3,
|
||||
WindowsXP = -4,
|
||||
Windows10 = -5
|
||||
}
|
||||
|
||||
var Weapons = GameData.Weapons
|
||||
|
||||
var properties
|
||||
|
||||
var speed = 12
|
||||
var walk = 12
|
||||
var run = 24
|
||||
var jump = 16
|
||||
var gravity = 9.8
|
||||
var speed = WALK_VELOCITY
|
||||
var acceleration = 2.5
|
||||
var inertia = 20
|
||||
var climbing = false
|
||||
|
||||
var game_settings
|
||||
var client_settings
|
||||
var can_shoot = true
|
||||
var time_since_last_shot = 0
|
||||
|
||||
var round_status = {
|
||||
"cs_round_score" = 0,
|
||||
"os_round_score" = 0,
|
||||
"os_game_score" = 0,
|
||||
"cs_game_score" = 0,
|
||||
"round_number" = 0,
|
||||
}
|
||||
|
||||
@onready var head = $Head
|
||||
@onready var camera = $Head/Camera
|
||||
@onready var camera: Camera3D = $Head/Camera
|
||||
@onready var playerCharacterBody = $"."
|
||||
var is_playable = false
|
||||
var internal_id
|
||||
@onready var collision_shapes = find_children("collision*","",false)
|
||||
|
||||
func set_internal_id(id):
|
||||
internal_id = id
|
||||
var HUD
|
||||
var healthLabel
|
||||
var armorLabel
|
||||
var ammoLabel
|
||||
var magazineLabel
|
||||
var statusLabel
|
||||
var csScoreRoundLabel
|
||||
var csScoreGameLabel
|
||||
var osScoreRoundLabel
|
||||
var osScoreGameLabel
|
||||
var roundNumberLabel
|
||||
var timeLabel
|
||||
var winnerLabel
|
||||
var killLogList
|
||||
|
||||
func set_is_playable(value):
|
||||
is_playable = value
|
||||
func set_properties(props):
|
||||
print("Got props from server: " + str(props))
|
||||
properties = props
|
||||
$"Head/Nickname".text = properties["nickname"]
|
||||
name = "player" + str(properties["internal_id"])
|
||||
position = properties["position"]
|
||||
if (game_settings != null):
|
||||
change_weapon(properties["current_weapon"]["number"])
|
||||
|
||||
func test(text):
|
||||
print(text)
|
||||
func set_property(key, value):
|
||||
properties[key] = value
|
||||
update_state()
|
||||
|
||||
func _ready():
|
||||
if (!is_playable): return
|
||||
camera.make_current()
|
||||
func init_hud():
|
||||
HUD = $HUD
|
||||
|
||||
healthLabel = $"HUD/health_and_ammo_display/healthdisplay/text"
|
||||
armorLabel = $"HUD/health_and_ammo_display/armordisplay/text"
|
||||
ammoLabel = $"HUD/health_and_ammo_display/ammodisplay/text"
|
||||
magazineLabel = $"HUD/health_and_ammo_display/magazinedisplay/text"
|
||||
statusLabel = $"HUD/Status"
|
||||
|
||||
csScoreRoundLabel = $"HUD/round_status/cs_score_round"
|
||||
csScoreGameLabel = $"HUD/round_status/cs_score_game"
|
||||
osScoreRoundLabel = $"HUD/round_status/os_score_round"
|
||||
osScoreGameLabel = $"HUD/round_status/os_score_game"
|
||||
|
||||
roundNumberLabel = $"HUD/round_status/round_number"
|
||||
timeLabel = $"HUD/round_status/time"
|
||||
winnerLabel = $"HUD/round_status/winner"
|
||||
|
||||
killLogList = $"HUD/kill_log"
|
||||
|
||||
func update_hud():
|
||||
healthLabel.text = str(properties["HP"])
|
||||
armorLabel.text = str(properties["AP"])
|
||||
ammoLabel.text = str(properties["current_weapon"]["ammo"])
|
||||
magazineLabel.text = str(properties["current_weapon"]["magazine"])
|
||||
if (properties["reloading"]):
|
||||
statusLabel.text = "Reloading..."
|
||||
else:
|
||||
statusLabel.text = "Reloaded"
|
||||
|
||||
csScoreRoundLabel.text = str(round_status["cs_round_score"])
|
||||
csScoreGameLabel.text = str(round_status["cs_game_score"])
|
||||
|
||||
osScoreRoundLabel.text = str(round_status["os_round_score"])
|
||||
osScoreGameLabel.text = str(round_status["os_game_score"])
|
||||
|
||||
roundNumberLabel.text = "Round " + str(round_status["round_number"])
|
||||
|
||||
func find_weapon_name_by_number(number):
|
||||
var name = ""
|
||||
for weapon in game_settings["weapons"].keys():
|
||||
if (game_settings["weapons"][weapon].number == number):
|
||||
name = weapon
|
||||
return name
|
||||
|
||||
@rpc("authority", "call_local", "reliable")
|
||||
func change_weapon(new_weapon_number):
|
||||
var weapons = $"Head/Camera/Hand".get_children()
|
||||
for weapon in weapons:
|
||||
weapon.visible = false
|
||||
weapons[new_weapon_number].visible = true
|
||||
print("Changing weapon: " + str(new_weapon_number))
|
||||
#if (properties["is_playable"]):
|
||||
#properties["current_weapon"] = properties["weapons"][find_weapon_name_by_number(new_weapon_number)]
|
||||
#properties["reloading"] = false
|
||||
|
||||
func find_weapon_in_inventory(number):
|
||||
var found_weapon
|
||||
for weapon in properties["weapons"].values():
|
||||
if weapon["number"] == number:
|
||||
found_weapon = weapon
|
||||
break
|
||||
return found_weapon
|
||||
|
||||
func find_weapon_by_number(number):
|
||||
var found_weapon
|
||||
for weapon in game_settings["weapons"].keys():
|
||||
if (game_settings["weapons"][weapon]["number"] == number):
|
||||
found_weapon = game_settings["weapons"][weapon].duplicate()
|
||||
break
|
||||
return found_weapon
|
||||
|
||||
func find_current_weapon_by_number(number):
|
||||
var found_weapon
|
||||
for weapon in Weapons.keys():
|
||||
if (Weapons[weapon]["number"] == number):
|
||||
found_weapon = Weapons[weapon]
|
||||
break
|
||||
return found_weapon
|
||||
|
||||
func update_state():
|
||||
camera.set_current(false)
|
||||
$"Head/Nickname".text = properties["nickname"]
|
||||
|
||||
if (!properties["is_playable"]): return
|
||||
camera.set_current(true)
|
||||
if (HUD == null):
|
||||
var hud = load("res://scenes/HUD/hud.tscn").instantiate()
|
||||
add_child(hud)
|
||||
init_hud()
|
||||
update_hud()
|
||||
|
||||
playerCharacterBody.up_direction = Vector3.UP;
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
|
||||
func _ready():
|
||||
update_state()
|
||||
|
||||
func update_weapon_raycast():
|
||||
var current_weapon_name = Weapons.find_key(properties["current_weapon"])
|
||||
if(current_weapon_name == null): current_weapon_name = "knife"
|
||||
var raycast:RayCast3D = get_node("Head/Camera/viewRaycast")
|
||||
var weapon_raycast:RayCast3D = get_node("Head/Camera/Hand/" + str(current_weapon_name) + "/raycast")
|
||||
|
||||
weapon_raycast.target_position = weapon_raycast.to_local(raycast.to_global(raycast.target_position) - weapon_raycast.position)
|
||||
|
||||
func try_shoot():
|
||||
print(str(properties["current_weapon"]))
|
||||
#var current_weapon = game_settings["weapons"].find_key(find_weapon_by_number(properties["current_weapon"]["number"]))
|
||||
var current_weapon = find_weapon_name_by_number(properties["current_weapon"]["number"])#game_settings["weapons"].find_key(find_weapon_by_number(properties["current_weapon"]["number"]))
|
||||
print("currect weapon: " + current_weapon)
|
||||
var current_weapon_settings = game_settings["weapons"][current_weapon]
|
||||
properties["reloading"] = false
|
||||
|
||||
if (properties["current_weapon"]["magazine"] == 0):
|
||||
return
|
||||
if Input.is_action_pressed("shoot") and current_weapon_settings["fireRate"] >= 0.5 and not Input.is_action_just_pressed("shoot"):
|
||||
return
|
||||
time_since_last_shot = (Time.get_ticks_msec() - properties["last_shot"]) / 1000.
|
||||
|
||||
if (time_since_last_shot > current_weapon_settings["fireRate"]):
|
||||
Networking.shot.rpc_id(1, multiplayer.get_unique_id())
|
||||
properties["current_weapon"]["magazine"] -= 1
|
||||
properties["last_shot"] = Time.get_ticks_msec()
|
||||
|
||||
var raycast:RayCast3D = get_node("Head/Camera/viewRaycast")
|
||||
var weapon_raycast:RayCast3D = get_node("Head/Camera/Hand/" + str(current_weapon) + "/raycast")
|
||||
raycast.target_position.z = -current_weapon_settings["range"]
|
||||
raycast.force_raycast_update()
|
||||
raycast.force_update_transform()
|
||||
var target_point = raycast.get_collision_point()
|
||||
|
||||
weapon_raycast.target_position = weapon_raycast.to_local(target_point) * 1.1
|
||||
weapon_raycast.force_raycast_update()
|
||||
weapon_raycast.force_update_transform()
|
||||
weapon_raycast.rotation.y = atan((weapon_raycast.position.x - position.x) / ((-current_weapon_settings["range"]) - (abs(weapon_raycast.position.z - position.z))))
|
||||
weapon_raycast.target_position.y += current_weapon_settings["spreading"] * randf() * sin(randf() * 2 * PI)
|
||||
weapon_raycast.target_position.z += current_weapon_settings["spreading"] * randf() * cos(randf() * 2 * PI)
|
||||
|
||||
weapon_raycast.force_raycast_update()
|
||||
weapon_raycast.force_update_transform()
|
||||
|
||||
var trace = preload("res://scenes/models/bullet_trace.tscn").instantiate()
|
||||
get_node("..").add_child(trace)
|
||||
trace.init((weapon_raycast.global_position), (weapon_raycast.get_collision_point()))
|
||||
|
||||
func reload():
|
||||
var current_weapon_instance = properties["current_weapon"]
|
||||
var current_weapon = game_settings["weapons"].find_key(find_weapon_by_number(current_weapon_instance["number"]))
|
||||
var current_weapon_settings = game_settings["weapons"][current_weapon]
|
||||
var to_reload = current_weapon_settings["magazine"] - current_weapon_instance["magazine"]
|
||||
if (properties["reloading"]):
|
||||
if (to_reload <= current_weapon_instance["ammo"]):
|
||||
current_weapon_instance["magazine"] += to_reload
|
||||
current_weapon_instance["ammo"] -= to_reload
|
||||
else:
|
||||
current_weapon_instance["magazine"] += current_weapon_instance["ammo"]
|
||||
current_weapon_instance["ammo"] = 0
|
||||
properties["reloading"] = false
|
||||
if (HUD != null):
|
||||
update_hud()
|
||||
|
||||
func _unhandled_input(event):
|
||||
if (!is_playable): return
|
||||
if (!properties["is_playable"]): return
|
||||
|
||||
var weapon_change = 0
|
||||
if Input.is_action_pressed("MWU"):
|
||||
weapon_change = 1
|
||||
if Input.is_action_pressed("MWD"):
|
||||
weapon_change = -1
|
||||
if (weapon_change != 0):
|
||||
var new_weapon_number = wrap(properties["current_weapon"]["number"] + weapon_change, 0, game_settings["weapons"].size())
|
||||
properties["current_weapon"] = find_weapon_in_inventory(new_weapon_number)
|
||||
|
||||
print(str(properties["current_weapon"]))
|
||||
Networking.change_weapon.rpc_id(1, multiplayer.get_unique_id(), properties["current_weapon"]["number"])
|
||||
|
||||
if event is InputEventMouseMotion:
|
||||
head.rotate_y(-event.relative.x * SENSETIVITY)
|
||||
rotate_y(-event.relative.x * SENSETIVITY)
|
||||
camera.rotate_x(-event.relative.y * SENSETIVITY)
|
||||
camera.rotation.x = clamp(camera.rotation.x, deg_to_rad(-50), deg_to_rad(60))
|
||||
|
||||
|
||||
func _physics_process(delta):
|
||||
if (!is_playable): return
|
||||
if not is_on_floor():
|
||||
velocity.y -= 4 * gravity * delta
|
||||
|
||||
var input_dir = Input.get_vector("left", "right", "forward", "backward")
|
||||
var direction = (head.transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
|
||||
if (!properties["is_playable"]): return
|
||||
if (game_settings == null): return
|
||||
if (multiplayer.multiplayer_peer == null):
|
||||
properties["is_playable"] = false
|
||||
|
||||
if Input.is_action_pressed("shoot"):
|
||||
try_shoot()
|
||||
|
||||
if (HUD != null):
|
||||
update_hud()
|
||||
|
||||
update_weapon_raycast()
|
||||
|
||||
if Input.is_action_just_pressed("reload"):
|
||||
var current_weapon = game_settings["weapons"].find_key(find_weapon_by_number(properties["current_weapon"]["number"]))
|
||||
Networking.client_reloading.rpc_id(1, multiplayer.get_unique_id())
|
||||
properties["reloading"] = true
|
||||
get_tree().create_timer(game_settings["weapons"][current_weapon]["reload"]).connect("timeout", reload)
|
||||
|
||||
var input_dir = Input.get_vector("left", "right", "forward", "backward")
|
||||
var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
|
||||
|
||||
if direction:
|
||||
velocity.x = lerp(velocity.x, direction.x * speed, delta * acceleration)
|
||||
velocity.z = lerp(velocity.z, direction.z * speed, delta * acceleration)
|
||||
if (climbing):
|
||||
print(str(input_dir))
|
||||
velocity.y = -input_dir.y * jump / 2 if input_dir.x == 0 else abs(input_dir.x) * jump / 2
|
||||
else:
|
||||
if is_on_floor():
|
||||
velocity.x = lerp(velocity.x, direction.x * speed * 0.5, delta * inertia)
|
||||
velocity.z = lerp(velocity.z, direction.z * speed * 0.5, delta * inertia)
|
||||
elif not is_on_floor() and not climbing:
|
||||
velocity.x = lerp(velocity.x, direction.x * speed * 0.5, delta)
|
||||
velocity.z = lerp(velocity.z, direction.z * speed * 0.5, delta)
|
||||
if is_on_floor():
|
||||
if Input.is_action_just_pressed("jump"):
|
||||
velocity.y = JUMP_VELOCITY
|
||||
velocity.y = jump
|
||||
if Input.is_action_pressed("run"):
|
||||
speed = RUN_VELOCITY
|
||||
speed = run
|
||||
else:
|
||||
speed = WALK_VELOCITY
|
||||
if direction:
|
||||
velocity.x = direction.x * speed
|
||||
velocity.z = direction.z * speed
|
||||
else:
|
||||
velocity.x = lerp(velocity.x, direction.x * speed, delta * 8)
|
||||
velocity.z = lerp(velocity.z, direction.z * speed, delta * 8)
|
||||
speed = walk
|
||||
else:
|
||||
velocity.y -= 4 * gravity * delta
|
||||
velocity.x = lerp(velocity.x, direction.x * speed, delta)
|
||||
velocity.z = lerp(velocity.z, direction.z * speed, delta)
|
||||
move_and_slide()
|
||||
for index in get_slide_collision_count():
|
||||
var collision := get_slide_collision(index)
|
||||
var body := collision.get_collider()
|
||||
if ("ladder" in body.name):
|
||||
climbing = true
|
||||
else:
|
||||
climbing = false
|
||||
#print("Collided with: " + body.name)
|
||||
if (!multiplayer.is_server()):
|
||||
Networking.move_client.rpc_id(1, multiplayer.get_unique_id(), $".".position)
|
||||
print("I am " + $"..".name +", belonging of " + str(multiplayer.get_unique_id()) + ", with internal ID: " + str(internal_id))
|
||||
Networking.sync_client.rpc_id(1, multiplayer.get_unique_id(), $".".position, {"y": rotation.y, "x": camera.rotation.x})
|
||||
#print("I am " + $"..".name +", belonging of " + str(multiplayer.get_unique_id()) + ", with internal ID: " + str(properties["internal_id"]))
|
||||
|
||||
@rpc ("authority", "call_remote")
|
||||
func move_puppet(p: Vector3, i_id):
|
||||
if (i_id == internal_id):
|
||||
@rpc ("authority", "call_remote", "unreliable")
|
||||
func sync_puppet(i_id, p, rot):
|
||||
if(!properties["ready"]): return
|
||||
if(properties["is_playable"]): return
|
||||
if (int(i_id) == properties["internal_id"]):
|
||||
playerCharacterBody.position = p
|
||||
rotation.y = rot.y
|
||||
camera.rotation.x = rot.x
|
||||
|
||||
@rpc ("authority", "call_remote", "reliable")
|
||||
func set_hp(hp):
|
||||
if (!properties["is_playable"]): return
|
||||
properties["HP"] = hp
|
||||
|
||||
@rpc ("authority", "call_remote", "reliable")
|
||||
func set_game_settings(s):
|
||||
game_settings = s
|
||||
gravity = game_settings["moving"]["gravity"]
|
||||
walk = game_settings["moving"]["walk"]
|
||||
run = game_settings["moving"]["run"]
|
||||
jump = game_settings["moving"]["jump"]
|
||||
acceleration = game_settings["moving"]["acceleration"]
|
||||
inertia = game_settings["moving"]["inertia"]
|
||||
change_weapon(properties["current_weapon"]["number"])
|
||||
GameData.apply_weapon_settings(game_settings["weapons"])
|
||||
Weapons = GameData.Weapons
|
||||
|
||||
@rpc ("authority", "call_remote", "reliable")
|
||||
func teleport(pos):
|
||||
position = pos
|
||||
|
||||
@rpc ("authority", "call_remote", "reliable")
|
||||
func change_weapon_puppet(i_id, new_weapon_number):
|
||||
if (int(i_id) == properties["internal_id"]):
|
||||
change_weapon(new_weapon_number)
|
||||
|
||||
@rpc("authority", "call_remote", "reliable")
|
||||
func update_round_status(s):
|
||||
print("Updated round status: " + str(s))
|
||||
round_status = s
|
||||
if(HUD != null):
|
||||
update_hud()
|
||||
|
||||
@rpc("authority", "call_remote", "reliable")
|
||||
func end_round(result):
|
||||
print("Result: %s" % str(result))
|
||||
winnerLabel.visible = true
|
||||
if (result > 0):
|
||||
winnerLabel.text = "OS WON"
|
||||
elif (result < 0 ):
|
||||
winnerLabel.text = "CS WON"
|
||||
await get_tree().create_timer(1).timeout
|
||||
winnerLabel.visible = false
|
||||
winnerLabel.text = ""
|
||||
|
||||
@rpc("authority", "call_remote", "reliable")
|
||||
func kill_notification(killer, victim):
|
||||
var entry = load("res://scenes/models/kill_log_entry.tscn").instantiate()
|
||||
entry.get_node("killer").text = str(killer)
|
||||
entry.get_node("victim").text = str(victim)
|
||||
killLogList.add_child(entry)
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
enum Class_type {
|
||||
Spectator = 0,
|
||||
Astra = 1,
|
||||
BlackArch = 2,
|
||||
Kali = 3,
|
||||
Debian = 4,
|
||||
Arch = 5,
|
||||
Windows11 = -1,
|
||||
WindowsServer = -2,
|
||||
MacOS = -3,
|
||||
WindowsXP = -4,
|
||||
Windows10 = -5
|
||||
}
|
||||
|
||||
var Distro = {
|
||||
HP = 100,
|
||||
AP = 100,
|
||||
HACK = 1.0,
|
||||
class_type = 0,
|
||||
}
|
||||
var Player = {
|
||||
distro = Distro,
|
||||
speed = 1.0,
|
||||
position = Vector3(0, 10, 0)
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
extends Button
|
||||
|
||||
@onready var button = $"."
|
||||
@onready var choose_team = $"../.."
|
||||
@onready var choose_class_os = $"../../../Choose_class_OS"
|
||||
@onready var choose_class_cs = $"../../../Choose_class_CS"
|
||||
|
||||
func _ready():
|
||||
button.pressed.connect(self._button_pressed)
|
||||
|
||||
func _button_pressed():
|
||||
match name:
|
||||
"Select_CS":
|
||||
choose_class_cs.visible = true
|
||||
choose_class_os.visible = false
|
||||
"Select_OS":
|
||||
choose_class_os.visible = true
|
||||
choose_class_cs.visible = false
|
||||
"Select_SP":
|
||||
print("Spectating")
|
||||
Networking.choose_class.rpc_id(1, multiplayer.get_unique_id(), 0)
|
||||
_:
|
||||
var class_id = int(name.split("_")[1])
|
||||
Networking.choose_class.rpc_id(1, multiplayer.get_unique_id(), class_id)
|
||||
choose_team.visible = false
|
|
@ -0,0 +1,42 @@
|
|||
extends Node3D
|
||||
|
||||
const SENSETIVITY = 0.009;
|
||||
var walk = 2
|
||||
@onready var head = $"."
|
||||
@onready var camera = $"./Camera"
|
||||
|
||||
func _ready():
|
||||
camera.make_current()
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
|
||||
func _unhandled_input(event):
|
||||
if Input.is_action_pressed("MWU"):
|
||||
walk += walk / 5.
|
||||
if Input.is_action_pressed("MWD"):
|
||||
walk -= walk / 5.
|
||||
walk = clamp(walk, 0.01, 15)
|
||||
if event is InputEventMouseMotion:
|
||||
head.rotate_y(-event.relative.x * SENSETIVITY)
|
||||
camera.rotate_x(-event.relative.y * SENSETIVITY)
|
||||
camera.rotation.x = clamp(camera.rotation.x, deg_to_rad(-90), deg_to_rad(90))
|
||||
|
||||
func _physics_process(delta):
|
||||
var input_dir = Input.get_vector("left", "right", "forward", "backward")
|
||||
#var direction = head.transform.rotation
|
||||
var direction = (head.transform.basis * Vector3(input_dir.x, input_dir.x, input_dir.y)).normalized()
|
||||
#var direction = (head.transform.basis * Vector2(input_dir.x, input_dir.y)).normalized()
|
||||
var velocity = Vector3.ZERO
|
||||
var speed
|
||||
|
||||
if Input.is_action_pressed("run"):
|
||||
speed = walk * 2
|
||||
else:
|
||||
speed = walk
|
||||
velocity.y = Input.get_vector("crawl", "jump", "left", "right").x * speed
|
||||
if direction:
|
||||
velocity.x = direction.x * speed
|
||||
velocity.z = direction.z * speed
|
||||
else:
|
||||
velocity.x = lerp(velocity.x, direction.x * speed, delta * 4)
|
||||
velocity.z = lerp(velocity.z, direction.z * speed, delta * 4)
|
||||
head.position += velocity
|
|
@ -0,0 +1,18 @@
|
|||
extends Button
|
||||
|
||||
@onready var button = $"."
|
||||
@onready var direct_menu = $"../../../DirectMenu"
|
||||
@onready var settings_menu = $"../../../SettingsMenu"
|
||||
|
||||
func _ready():
|
||||
button.pressed.connect(self._button_pressed)
|
||||
|
||||
func _button_pressed():
|
||||
if ("quit" in name):
|
||||
get_tree().quit()
|
||||
elif ("direct" in name):
|
||||
settings_menu.visible = false
|
||||
direct_menu.visible = true
|
||||
elif("settings" in name):
|
||||
settings_menu.visible = true
|
||||
direct_menu.visible = false
|
|
@ -0,0 +1,5 @@
|
|||
extends StaticBody3D
|
||||
|
||||
func _ready():
|
||||
await get_tree().create_timer(1).timeout
|
||||
free()
|
|
@ -0,0 +1,10 @@
|
|||
extends StaticBody3D
|
||||
|
||||
var point = load("res://scenes/models/point.tscn")
|
||||
|
||||
@rpc("reliable", "authority")
|
||||
func shot(pos):
|
||||
print("Shot to " + str(pos))
|
||||
var new_point:StaticBody3D = point.instantiate()
|
||||
add_child(new_point)
|
||||
new_point.position = to_local(pos)
|
|
@ -0,0 +1,19 @@
|
|||
extends Node3D
|
||||
|
||||
enum teams {
|
||||
team_CS = -1,
|
||||
team_OS = 1
|
||||
}
|
||||
|
||||
@onready var spawnpoints = [
|
||||
Vector3(0, 1, 0),
|
||||
Vector3(scale.x, 2, scale.z),
|
||||
Vector3(-scale.x, 2, scale.z),
|
||||
Vector3(scale.x, 2, -scale.z),
|
||||
Vector3(-scale.x, 2, -scale.z)
|
||||
]
|
||||
|
||||
@export var team:teams
|
||||
|
||||
func get_class_spawnpoint(class_id):
|
||||
return position + (spawnpoints[abs(class_id) - 1])
|
|
@ -0,0 +1,40 @@
|
|||
extends Node
|
||||
|
||||
func send_everyone(args):
|
||||
for current_client_id in Networking.clients.keys():
|
||||
if (args.size() == 1):
|
||||
var playermodel = ServerUtils.find_playermodel_by_internal_id(Networking.clients[current_client_id]["internal_id"])
|
||||
playermodel.rpc_id(int(current_client_id), args[0])
|
||||
elif (args.size() == 2):
|
||||
var playermodel = ServerUtils.find_playermodel_by_internal_id(Networking.clients[current_client_id]["internal_id"])
|
||||
playermodel.rpc_id(int(current_client_id), args[0], args[1])
|
||||
elif (args.size() == 3):
|
||||
var playermodel = ServerUtils.find_playermodel_by_internal_id(Networking.clients[current_client_id]["internal_id"])
|
||||
playermodel.rpc_id(int(current_client_id), args[0], args[1], args[2])
|
||||
else:
|
||||
var playermodel = ServerUtils.find_playermodel_by_internal_id(Networking.clients[current_client_id]["internal_id"])
|
||||
playermodel.rpc_id(int(current_client_id), args[0], args[1], args[2], args[3])
|
||||
|
||||
func send_everyone_except(client_id, args):
|
||||
if (typeof(args[0]) == 4): #string
|
||||
for current_client_id in Networking.clients.keys():
|
||||
if (str(current_client_id) == str(client_id)): continue
|
||||
if (args.size() == 1):
|
||||
var playermodel = ServerUtils.find_playermodel_by_internal_id(Networking.clients[current_client_id]["internal_id"])
|
||||
playermodel.rpc_id(int(current_client_id), args[0])
|
||||
elif (args.size() == 2):
|
||||
var playermodel = ServerUtils.find_playermodel_by_internal_id(Networking.clients[current_client_id]["internal_id"])
|
||||
playermodel.rpc_id(int(current_client_id), args[0], args[1])
|
||||
elif (args.size() == 3):
|
||||
var playermodel = ServerUtils.find_playermodel_by_internal_id(Networking.clients[current_client_id]["internal_id"])
|
||||
playermodel.rpc_id(int(current_client_id), args[0], args[1], args[2])
|
||||
else:
|
||||
var playermodel = ServerUtils.find_playermodel_by_internal_id(Networking.clients[current_client_id]["internal_id"])
|
||||
playermodel.rpc_id(int(current_client_id), args[0], args[1], args[2], args[3])
|
||||
else:
|
||||
for current_client_id in Networking.clients.keys():
|
||||
if (str(current_client_id) == str(client_id)): continue
|
||||
if (args.size() == 1): args[0].rpc_id(int(current_client_id))
|
||||
elif (args.size() == 2): args[0].rpc_id(int(current_client_id), args[1])
|
||||
elif (args.size() == 3): args[0].rpc_id(int(current_client_id), args[1], args[2])
|
||||
else: args[0].rpc_id(int(current_client_id), args[1], args[2], args[3])
|
|
@ -0,0 +1,223 @@
|
|||
extends Node
|
||||
|
||||
var team_CS = {
|
||||
"spawnpoints": [],
|
||||
"members": [],
|
||||
"round_score": 0,
|
||||
"game_score": 0
|
||||
}
|
||||
var team_OS = {
|
||||
"spawnpoints": [],
|
||||
"members": [],
|
||||
"round_score": 0,
|
||||
"game_score": 0
|
||||
}
|
||||
|
||||
var round_number = 0
|
||||
var gamemode
|
||||
var map_path
|
||||
var map_root_name
|
||||
var server_map
|
||||
|
||||
func find_class_type_by_number(number):
|
||||
var found_class
|
||||
var classtypes = GameData.server_settings["game"]["classTypes"]
|
||||
for classtype in classtypes:
|
||||
if classtypes[classtype]["number"] == number:
|
||||
found_class = classtypes[classtype].duplicate()
|
||||
break
|
||||
return found_class
|
||||
|
||||
func check_map_availability(path):
|
||||
var maps = DirAccess.open("res://scenes/maps").get_files()
|
||||
var map_name = (path.split("/")[-1]).split(".")[0]
|
||||
for map in maps:
|
||||
var checking_map_name = str(map.split(".")[0])
|
||||
if(checking_map_name == map_name):
|
||||
return true
|
||||
return false
|
||||
|
||||
func check_gamemode_availability(gm):
|
||||
var gamemodes = GameData.server_settings["game"]["gamemodes"].keys()
|
||||
for g in gamemodes:
|
||||
if gm == g:
|
||||
return true
|
||||
return false
|
||||
|
||||
func find_weapon_name_by_number(number):
|
||||
var name = ""
|
||||
for weapon in GameData.server_settings["game"]["weapons"].keys():
|
||||
if (GameData.server_settings["game"]["weapons"][weapon].number == number):
|
||||
name = weapon
|
||||
return name
|
||||
|
||||
func find_weapon_by_number(number):
|
||||
var found_weapon
|
||||
for weapon in GameData.server_settings["game"]["weapons"].keys():
|
||||
if (GameData.server_settings["game"]["weapons"][weapon]["number"] == number):
|
||||
found_weapon = GameData.server_settings["game"]["weapons"][weapon].duplicate()
|
||||
break
|
||||
return found_weapon
|
||||
|
||||
func find_playermodel_by_internal_id(internal_id):
|
||||
return server_map.get_node("player" + str(internal_id))
|
||||
|
||||
func reloading_complete(client_id, reloading_time):
|
||||
await get_tree().create_timer(reloading_time).timeout
|
||||
var client = Networking.clients[client_id]
|
||||
if (!client["reloading"]): # if a client has interrupted the reloading
|
||||
return
|
||||
|
||||
var weapons_list = GameData.server_settings["game"]["weapons"]
|
||||
var current_client_weapon = client["current_weapon"]
|
||||
var current_weapon_example = weapons_list.find_key(ServerUtils.find_weapon_by_number(current_client_weapon["number"]))
|
||||
var current_weapon_settings = weapons_list[current_weapon_example]
|
||||
var to_reload = current_weapon_settings["magazine"] - current_client_weapon["magazine"]
|
||||
if (to_reload <= current_client_weapon["ammo"]):
|
||||
current_client_weapon["magazine"] += to_reload
|
||||
current_client_weapon["ammo"] -= to_reload
|
||||
else:
|
||||
current_client_weapon["magazine"] += current_client_weapon["ammo"]
|
||||
current_client_weapon["ammo"] = 0
|
||||
|
||||
func choose_collision_shape(target, shape_num):
|
||||
var collision_shapes:Array = []
|
||||
for s in target.get_children():
|
||||
if s is CollisionShape3D:
|
||||
collision_shapes.push_back(s)
|
||||
var shape
|
||||
for i in range(0, collision_shapes.size()):
|
||||
if i == shape_num:
|
||||
shape = collision_shapes[i]
|
||||
break
|
||||
return shape
|
||||
|
||||
func new_round():
|
||||
round_number += 1
|
||||
team_OS["round_score"] = 0
|
||||
team_CS["round_score"] = 0
|
||||
print("CS members " + str(team_CS["members"]))
|
||||
print("OS members " + str(team_OS["members"]))
|
||||
for member in team_CS["members"]:
|
||||
member["position"] = team_CS["spawnpoints"].pick_random().get_class_spawnpoint(abs(member["class_type"]))
|
||||
ServerUtils.find_playermodel_by_internal_id(member["internal_id"]).teleport.rpc_id(Networking.clients.find_key(member), member["position"])
|
||||
for member in team_OS["members"]:
|
||||
member["position"] = team_OS["spawnpoints"].pick_random().get_class_spawnpoint(abs(member["class_type"]))
|
||||
ServerUtils.find_playermodel_by_internal_id(member["internal_id"]).teleport.rpc_id(Networking.clients.find_key(member), member["position"])
|
||||
send_scores()
|
||||
|
||||
func new_game(new_map_path, new_gamemode):
|
||||
team_OS["game_score"] = 0
|
||||
team_OS["round_score"] = 0
|
||||
team_CS["game_score"] = 0
|
||||
team_CS["round_score"] = 0
|
||||
|
||||
round_number = 0
|
||||
send_scores()
|
||||
new_map_path = map_path if (new_map_path == null) else new_map_path
|
||||
new_gamemode = gamemode if (new_gamemode == null) else new_gamemode
|
||||
await switch_map(new_map_path)
|
||||
await switch_gamemode(new_gamemode)
|
||||
|
||||
func check_gamemode_end_conditions():
|
||||
match gamemode:
|
||||
"TDM":
|
||||
var kills_amount_to_win = GameData.server_settings["game"]["gamemodes"]["TDM"]["kills"]
|
||||
if team_OS["round_score"] >= kills_amount_to_win:
|
||||
team_OS["game_score"] += 1
|
||||
print("OS won")
|
||||
NetUtils.send_everyone(["end_round", 1]) # 1 = os is win
|
||||
new_round()
|
||||
|
||||
elif team_CS["round_score"] >= kills_amount_to_win:
|
||||
team_CS["game_score"] += 1
|
||||
NetUtils.send_everyone(["end_round", -1]) # -1 = cs is win
|
||||
print("CS won")
|
||||
new_round()
|
||||
send_scores()
|
||||
|
||||
func switch_map(new_map_path):
|
||||
print("Switching map to %s" % new_map_path)
|
||||
if (not ServerUtils.check_map_availability(new_map_path)):
|
||||
var default_map = GameData.server_settings["defaults"]["map"]
|
||||
print("Error. No map found. Loading default map %s" % default_map)
|
||||
new_map_path = "res://scenes/maps/%s.tscn" % default_map
|
||||
if (not ServerUtils.check_map_availability(new_map_path)):
|
||||
print("Error. Default map is not valid. Please, specify a valid map in a config file.")
|
||||
return
|
||||
map_path = new_map_path
|
||||
get_tree().change_scene_to_file(map_path)
|
||||
await get_tree().create_timer(0.1).timeout #I know that this isn't a good practice, but I didn't find anything better
|
||||
map_root_name = (map_path.split("/")[-1]).split(".")[0]
|
||||
server_map = get_tree().root.get_node(map_root_name)
|
||||
|
||||
var spawnpoints = server_map.find_children("spawnpoint*", "" ,true)
|
||||
team_OS["spawnpoints"] = []
|
||||
team_CS["spawnpoints"] = []
|
||||
for spawnpoint in spawnpoints:
|
||||
if spawnpoint.team == 0: # cs
|
||||
team_CS["spawnpoints"].push_back(spawnpoint)
|
||||
elif spawnpoint.team > 0: # os
|
||||
team_OS["spawnpoints"].push_back(spawnpoint)
|
||||
var spectator = preload("res://scenes/models/spectator.tscn").instantiate()
|
||||
server_map.add_child(spectator)
|
||||
|
||||
func send_scores():
|
||||
NetUtils.send_everyone(["update_round_status", {
|
||||
"cs_round_score" = team_CS["round_score"],
|
||||
"os_round_score" = team_OS["round_score"],
|
||||
"os_game_score" = team_OS["game_score"],
|
||||
"cs_game_score" = team_CS["game_score"],
|
||||
"round_number" = round_number,
|
||||
}])
|
||||
|
||||
func switch_gamemode(new_gamemode):
|
||||
if not ServerUtils.check_gamemode_availability(new_gamemode):
|
||||
print("No gamemode found")
|
||||
return
|
||||
gamemode = new_gamemode
|
||||
|
||||
func parse_arguments():
|
||||
var arguments = {}
|
||||
for argument in OS.get_cmdline_args():
|
||||
if argument.find("=") > -1:
|
||||
var key_value = argument.split("=")
|
||||
arguments[key_value[0].lstrip("--")] = key_value[1]
|
||||
else:
|
||||
# Options without an argument will be present in the dictionary,
|
||||
# with the value set to an empty string.
|
||||
arguments[argument.lstrip("--")] = ""
|
||||
return arguments
|
||||
|
||||
func setup_server():
|
||||
var arguments = parse_arguments()
|
||||
|
||||
GameData.read_settings()
|
||||
|
||||
################ parsing map
|
||||
var path = "res://scenes/maps/%s.tscn" % arguments["map"] if arguments.has("map") else "res://scenes/maps/%s.tscn" % GameData.server_settings["defaults"]["map"]
|
||||
if (ServerUtils.check_map_availability(path)):
|
||||
map_path = path
|
||||
else:
|
||||
print("Unknown map %s Available maps:" % path)
|
||||
for map in DirAccess.open("res://scenes/maps").get_files():
|
||||
print(str(map.split(".")[0]))
|
||||
get_tree().quit()
|
||||
return
|
||||
################ parsing gamemode
|
||||
var gm = str(arguments["gamemode"]) if (arguments.has("gamemode")) else "TDM"
|
||||
if (ServerUtils.check_gamemode_availability(gm)):
|
||||
print("Gamemode exists")
|
||||
else:
|
||||
print("No")
|
||||
|
||||
await new_game(map_path, gm)
|
||||
|
||||
var spectator = preload("res://scenes/models/spectator.tscn").instantiate()
|
||||
server_map.add_child(spectator)
|
||||
|
||||
Networking.StartServer()
|
||||
|
||||
func _ready():
|
||||
if "--server" in OS.get_cmdline_args():
|
||||
setup_server()
|
|
@ -1,3 +1 @@
|
|||
{
|
||||
|
||||
}
|
||||
{ "nickname": "Unnamed" }
|
||||
|
|
|
@ -2,4 +2,91 @@
|
|||
"port": 2390,
|
||||
"maxclients": 10,
|
||||
"enableAntiCheat": false,
|
||||
"defaults":{
|
||||
"map": "1v1",
|
||||
"gamemode": "TDM"
|
||||
},
|
||||
"game": {
|
||||
"classes":{
|
||||
"class_1":{
|
||||
"HP": 1100000,
|
||||
"AP": 10000,
|
||||
"damage_mul": 0.0001
|
||||
}
|
||||
},
|
||||
"gamemodes":{
|
||||
"TDM": {
|
||||
"duration": 15,
|
||||
"kills": 3,
|
||||
"rounds": 3,
|
||||
"friendlyfire": false
|
||||
},
|
||||
"operation_cleaning": {
|
||||
"duration": 20,
|
||||
"rounds": 3,
|
||||
"friendlyfire": false
|
||||
}
|
||||
},
|
||||
"moving": {
|
||||
"walk": 12,
|
||||
"run": 24,
|
||||
"gravity": 9.8,
|
||||
"jump": 12,
|
||||
"acceleration": 2.5,
|
||||
"inertia": 20
|
||||
},
|
||||
"weapons": {
|
||||
"knife": {
|
||||
"number": 0,
|
||||
"damage": {
|
||||
"head": 70,
|
||||
"body": 40,
|
||||
"hand": 10,
|
||||
"leg": 20
|
||||
},
|
||||
"reload": 3,
|
||||
"magazine": -1,
|
||||
"fireRate": 3,
|
||||
"spreading": 0,
|
||||
"ammo": -1,
|
||||
"range": 2
|
||||
},
|
||||
"pistol": {
|
||||
"number": 1,
|
||||
"damage": {
|
||||
"head": 90,
|
||||
"body": 60,
|
||||
"hand": 30,
|
||||
"leg": 10
|
||||
},
|
||||
"reload": 2,
|
||||
"magazine": 10,
|
||||
"fireRate": 0.5,
|
||||
"spreading": 0,
|
||||
"ammo": 200,
|
||||
"range": 100
|
||||
},
|
||||
"ak-47": {
|
||||
"number": 2,
|
||||
"damage": {
|
||||
"head": 35,
|
||||
"body": 20,
|
||||
"hand": 10,
|
||||
"leg": 15
|
||||
},
|
||||
"reload": 4,
|
||||
"magazine": 30,
|
||||
"fireRate": 0.2,
|
||||
"spreading": 1,
|
||||
"ammo": 100,
|
||||
"range": 100
|
||||
}
|
||||
},
|
||||
"classTypes": {
|
||||
"spectator": {
|
||||
"number": 0,
|
||||
"spawnpoint": [0, 4, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 511 B |
|
@ -2,8 +2,8 @@
|
|||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cs0ysba50acxp"
|
||||
path.s3tc="res://.godot/imported/texture_04_2.png-b107066fb6487ebd3c651f32c491c785.s3tc.ctex"
|
||||
uid="uid://cbf6w7ativli8"
|
||||
path.s3tc="res://.godot/imported/knife_textures.png-bfa45f2fa32fc252fea8eb5aaf3203bc.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
|
@ -11,8 +11,8 @@ metadata={
|
|||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/texture_04_2.png"
|
||||
dest_files=["res://.godot/imported/texture_04_2.png-b107066fb6487ebd3c651f32c491c785.s3tc.ctex"]
|
||||
source_file="res://textures/knife_textures.png"
|
||||
dest_files=["res://.godot/imported/knife_textures.png-bfa45f2fa32fc252fea8eb5aaf3203bc.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
|
@ -0,0 +1,283 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="151.4978"
|
||||
height="101.86783"
|
||||
viewBox="0 0 40.083792 26.952529"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1">
|
||||
<linearGradient
|
||||
id="linearGradient1">
|
||||
<stop
|
||||
style="stop-color:#ff1515;stop-opacity:0;"
|
||||
offset="0.50428748"
|
||||
id="stop2" />
|
||||
<stop
|
||||
style="stop-color:#ffc668;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1"
|
||||
id="linearGradient2"
|
||||
x1="23.45673"
|
||||
y1="19.128405"
|
||||
x2="32.11002"
|
||||
y2="19.128405"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(7.5922353,5.6898694)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1"
|
||||
id="linearGradient9"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="23.45673"
|
||||
y1="19.128405"
|
||||
x2="32.11002"
|
||||
y2="19.128405"
|
||||
gradientTransform="translate(4.2861871,-9.0511383)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1"
|
||||
id="linearGradient17"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(4.2861871,-9.0511383)"
|
||||
x1="23.45673"
|
||||
y1="19.128405"
|
||||
x2="32.11002"
|
||||
y2="19.128405" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1"
|
||||
id="linearGradient23"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(4.2861871,-9.0511383)"
|
||||
x1="23.45673"
|
||||
y1="19.128405"
|
||||
x2="32.11002"
|
||||
y2="19.128405" />
|
||||
</defs>
|
||||
<g
|
||||
id="layer1"
|
||||
transform="translate(-7.7660105,-19.689474)"
|
||||
style="display:none">
|
||||
<ellipse
|
||||
style="fill:#8a5f1c;fill-opacity:1;stroke:url(#linearGradient2);stroke-width:0.361542;stroke-opacity:1"
|
||||
id="path1"
|
||||
cx="35.37561"
|
||||
cy="24.818274"
|
||||
rx="4.145874"
|
||||
ry="4.3052993" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;stroke-width:0.353999"
|
||||
id="rect1"
|
||||
width="21.087387"
|
||||
height="8.6107426"
|
||||
x="14.361528"
|
||||
y="20.511501"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.353999;stroke-opacity:1"
|
||||
id="rect3"
|
||||
width="5.6808996"
|
||||
height="5.6621842"
|
||||
x="10.619092"
|
||||
y="21.910383" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.353999;stroke-opacity:1"
|
||||
id="rect4"
|
||||
width="3.541163"
|
||||
height="8.5967808"
|
||||
x="9.446908"
|
||||
y="20.52474" />
|
||||
</g>
|
||||
<g
|
||||
id="g23"
|
||||
transform="matrix(1.0743678,0,0,1.0743678,-6.222672,-5.7121353)">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.406013;stroke-opacity:1"
|
||||
id="rect18"
|
||||
width="4.2534728"
|
||||
height="9.4148655"
|
||||
x="5.7919383"
|
||||
y="5.3747172" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:#ffffff;stroke-width:0.425851;stroke-opacity:1"
|
||||
id="rect19"
|
||||
width="6.8339643"
|
||||
height="6.81145"
|
||||
x="6.7365112"
|
||||
y="6.5947447" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:0.376601"
|
||||
id="rect20"
|
||||
width="21.794388"
|
||||
height="9.4292669"
|
||||
x="10.70198"
|
||||
y="5.3612318"
|
||||
ry="0" />
|
||||
<ellipse
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.39977;stroke-opacity:1"
|
||||
id="ellipse20"
|
||||
cx="32.069561"
|
||||
cy="10.077267"
|
||||
rx="4.5842433"
|
||||
ry="4.7605257" />
|
||||
<ellipse
|
||||
style="fill:#8a5f1c;fill-opacity:1;stroke:url(#linearGradient23);stroke-width:0.361542;stroke-opacity:1"
|
||||
id="ellipse21"
|
||||
cx="32.069561"
|
||||
cy="10.077267"
|
||||
rx="4.145874"
|
||||
ry="4.3052993" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;stroke-width:0.353999"
|
||||
id="rect21"
|
||||
width="21.087387"
|
||||
height="8.6107426"
|
||||
x="11.05548"
|
||||
y="5.770494"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.353999;stroke-opacity:1"
|
||||
id="rect22"
|
||||
width="5.6808996"
|
||||
height="5.6621842"
|
||||
x="7.3130436"
|
||||
y="7.1693778" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.353999;stroke-opacity:1"
|
||||
id="rect23"
|
||||
width="3.541163"
|
||||
height="8.5967808"
|
||||
x="6.1408596"
|
||||
y="5.7837348" />
|
||||
</g>
|
||||
<g
|
||||
id="layer3"
|
||||
transform="matrix(1.0743678,0,0,1.0743678,-2.4482425,2.6217572)">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.406013;stroke-opacity:1"
|
||||
id="rect4-1-8"
|
||||
width="4.2534728"
|
||||
height="9.4148655"
|
||||
x="5.7919383"
|
||||
y="5.3747172" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:#ffffff;stroke-width:0.425851;stroke-opacity:1"
|
||||
id="rect16"
|
||||
width="6.8339643"
|
||||
height="6.81145"
|
||||
x="6.7365112"
|
||||
y="6.5947447" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:0.376601"
|
||||
id="rect17"
|
||||
width="21.794388"
|
||||
height="9.4292669"
|
||||
x="10.70198"
|
||||
y="5.3612318"
|
||||
ry="0" />
|
||||
<ellipse
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.39977;stroke-opacity:1"
|
||||
id="path1-6"
|
||||
cx="32.069561"
|
||||
cy="10.077267"
|
||||
rx="4.5842433"
|
||||
ry="4.7605257" />
|
||||
<ellipse
|
||||
style="fill:#8a5f1c;fill-opacity:1;stroke:url(#linearGradient9);stroke-width:0.361542;stroke-opacity:1"
|
||||
id="ellipse17"
|
||||
cx="32.069561"
|
||||
cy="10.077267"
|
||||
rx="4.145874"
|
||||
ry="4.3052993" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;stroke-width:0.353999"
|
||||
id="rect1-2"
|
||||
width="21.087387"
|
||||
height="8.6107426"
|
||||
x="11.05548"
|
||||
y="5.770494"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.353999;stroke-opacity:1"
|
||||
id="rect3-6"
|
||||
width="5.6808996"
|
||||
height="5.6621842"
|
||||
x="7.3130436"
|
||||
y="7.1693778" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.353999;stroke-opacity:1"
|
||||
id="rect4-1"
|
||||
width="3.541163"
|
||||
height="8.5967808"
|
||||
x="6.1408596"
|
||||
y="5.7837348" />
|
||||
</g>
|
||||
<g
|
||||
id="layer3-2"
|
||||
transform="matrix(1.0743678,0,0,1.0743678,0.70412529,11.011282)">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.406013;stroke-opacity:1"
|
||||
id="rect4-1-8-0"
|
||||
width="4.2534728"
|
||||
height="9.4148655"
|
||||
x="5.7919383"
|
||||
y="5.3747172" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:#ffffff;stroke-width:0.425851;stroke-opacity:1"
|
||||
id="rect16-6"
|
||||
width="6.8339643"
|
||||
height="6.81145"
|
||||
x="6.7365112"
|
||||
y="6.5947447" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:0.376601"
|
||||
id="rect17-1"
|
||||
width="21.794388"
|
||||
height="9.4292669"
|
||||
x="10.70198"
|
||||
y="5.3612318"
|
||||
ry="0" />
|
||||
<ellipse
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.39977;stroke-opacity:1"
|
||||
id="path1-6-5"
|
||||
cx="32.069561"
|
||||
cy="10.077267"
|
||||
rx="4.5842433"
|
||||
ry="4.7605257" />
|
||||
<ellipse
|
||||
style="fill:#8a5f1c;fill-opacity:1;stroke:url(#linearGradient17);stroke-width:0.361542;stroke-opacity:1"
|
||||
id="ellipse17-5"
|
||||
cx="32.069561"
|
||||
cy="10.077267"
|
||||
rx="4.145874"
|
||||
ry="4.3052993" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;stroke-width:0.353999"
|
||||
id="rect1-2-4"
|
||||
width="21.087387"
|
||||
height="8.6107426"
|
||||
x="11.05548"
|
||||
y="5.770494"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.353999;stroke-opacity:1"
|
||||
id="rect3-6-7"
|
||||
width="5.6808996"
|
||||
height="5.6621842"
|
||||
x="7.3130436"
|
||||
y="7.1693778" />
|
||||
<rect
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.353999;stroke-opacity:1"
|
||||
id="rect4-1-6"
|
||||
width="3.541163"
|
||||
height="8.5967808"
|
||||
x="6.1408596"
|
||||
y="5.7837348" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.0 KiB |
|
@ -2,16 +2,16 @@
|
|||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bxmfgknljdw65"
|
||||
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||
uid="uid://bmuo2tbe3r8ih"
|
||||
path="res://.godot/imported/ammo.svg-a48c5afd8ec441778c292a61a489df3b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.svg"
|
||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
|
||||
source_file="res://textures/logo/ammo.svg"
|
||||
dest_files=["res://.godot/imported/ammo.svg-a48c5afd8ec441778c292a61a489df3b.ctex"]
|
||||
|
||||
[params]
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="199.99416"
|
||||
height="199.99411"
|
||||
viewBox="0 0 52.915119 52.915108"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#">
|
||||
<defs
|
||||
id="defs1">
|
||||
<linearGradient
|
||||
id="swatch14">
|
||||
<stop
|
||||
style="stop-color:#f70000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop15" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path
|
||||
d="M 17.71158,0 V 17.719848 L 0.00155029,17.738968 0,35.203535 h 17.711063 l -5.16e-4,17.709513 8.747269,-0.0615 8.717297,0.06356 0.01964,-17.711064 17.718298,5.17e-4 -0.06149,-8.747269 0.06356,-8.717297 -17.719848,-0.01964 -0.01912,-17.71881471 z"
|
||||
style="fill:#d40000;stroke-width:0.35411"
|
||||
id="path30" />
|
||||
<metadata
|
||||
id="metadata58">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://na1y6c7osyj2"
|
||||
path="res://.godot/imported/health.svg-34f0f55daee51496769c12bd4e69bb8d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/logo/health.svg"
|
||||
dest_files=["res://.godot/imported/health.svg-34f0f55daee51496769c12bd4e69bb8d.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
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="91.47361"
|
||||
height="133.22157"
|
||||
viewBox="0 0 24.202393 35.248207"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
id="layer1"
|
||||
transform="translate(-15.183286,-10.201804)">
|
||||
<path
|
||||
d="m 23.487037,10.203596 c 0.02985,0.04804 0.04551,0.07318 0.111205,0.178449 6.586509,8.917751 -8.649294,29.512008 -8.412215,29.278272 0.03443,-0.01426 1.868784,1.842609 10.035593,5.789694 C 38.10633,27.971499 39.418665,11.976389 39.385067,12.089649 L 23.525516,10.203204 c 0,0 -6.83e-4,-9.95e-4 -9.09e-4,-0.0014 -0.0019,5e-5 -0.0034,2.02e-4 -0.0053,3.85e-4 -0.0055,3.32e-4 -0.01151,1.65e-4 -0.01704,4.01e-4 -0.0051,2.64e-4 -0.01528,9.83e-4 -0.01528,9.83e-4 z"
|
||||
style="fill:#8b7e7e;fill-opacity:1;stroke-width:0.353999"
|
||||
id="path38" />
|
||||
</g>
|
||||
<g
|
||||
id="layer2"
|
||||
transform="translate(-15.183286,-10.201804)">
|
||||
<path
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke-width:0.353999"
|
||||
d="M 27.660497,12.834958 C 33.148914,13.134884 17.098776,43.43903 16.884371,40.287503 16.851245,39.800585 29.542678,16.896614 27.660497,12.834958 Z"
|
||||
id="path57" />
|
||||
<path
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke-width:0.353999"
|
||||
d="M 30.530946,13.122291 C 36.064211,13.463794 19.526758,44.908118 19.321489,41.740045 19.289933,41.253022 32.413127,17.183947 30.530946,13.122291 Z"
|
||||
id="path57-5" />
|
||||
<path
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke-width:0.353999"
|
||||
d="M 33.559303,13.191355 C 39.069473,13.491347 22.192156,45.975058 21.979196,42.830999 21.946214,42.344071 35.441484,17.253011 33.559303,13.191355 Z"
|
||||
id="path57-2" />
|
||||
<path
|
||||
style="fill:#4d4d4d;fill-opacity:1;stroke-width:0.353999"
|
||||
d="M 36.754727,13.340402 C 42.237802,13.741358 24.699436,46.936499 24.392168,43.61032 24.346033,43.110914 38.644857,17.38499 36.754727,13.340402 Z"
|
||||
id="path57-7" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d1i1fgjbpwped"
|
||||
path="res://.godot/imported/magazine.svg-87874fb5953f9966e3e389fa7ebeb69b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/logo/magazine.svg"
|
||||
dest_files=["res://.godot/imported/magazine.svg-87874fb5953f9966e3e389fa7ebeb69b.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
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="122.00974"
|
||||
height="120.53511"
|
||||
viewBox="0 0 32.281743 31.891581"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
id="layer1"
|
||||
transform="translate(-10.317465,-13.96557)">
|
||||
<path
|
||||
d="m 13.752649,13.968657 c -2.154433,0.03105 -3.642111,0.304645 -3.411678,1.035078 0.737386,2.337396 0.220248,18.676416 4.350122,23.121587 3.993913,4.298823 11.203757,7.483639 11.683525,7.69307 0.0082,0.0036 0.07958,0.03696 0.08371,0.03876 0.0041,-0.0018 0.07555,-0.03519 0.08372,-0.03876 0.479769,-0.209432 7.689604,-3.394239 11.683525,-7.69307 4.129883,-4.44518 3.612734,-20.784187 4.350122,-23.121587 0.737245,-2.336938 -16.109791,0.0017 -16.116329,0.0026 h -0.0021 c -0.0045,-6.24e-4 -7.966236,-1.105953 -12.704651,-1.037662 z"
|
||||
style="fill:#11b1ff;fill-opacity:1;stroke-width:0.265"
|
||||
id="path13" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cxpljra1na1p8"
|
||||
path="res://.godot/imported/shield.svg-5699a9fcb58857c3f97318f5501bd1f5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/logo/shield.svg"
|
||||
dest_files=["res://.godot/imported/shield.svg-5699a9fcb58857c3f97318f5501bd1f5.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
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://coy1cnoshvj7w"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c88oa7ckhmvoh" path="res://textures/prototype-textures/Prototype_grey_32x32px.png" id="1_nvwxs"]
|
||||
|
||||
[resource]
|
||||
albedo_texture = ExtResource("1_nvwxs")
|
||||
uv1_scale = Vector3(0.1, 0.1, 0.1)
|
||||
uv1_triplanar = true
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://c6sa1jlgmjnln"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://clc6hbxpqmr13" path="res://textures/prototype-textures/Prototype_orange_32x32px.png" id="1_cwst7"]
|
||||
|
||||
[resource]
|
||||
albedo_texture = ExtResource("1_cwst7")
|
||||
uv1_scale = Vector3(0.1, 0.1, 0.1)
|
||||
uv1_triplanar = true
|
|
@ -0,0 +1,8 @@
|
|||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://1h2wx1eutscp"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bsk3du2ujcf0g" path="res://textures/prototype-textures/Prototype_pink_32x32px.png" id="1_vqqut"]
|
||||
|
||||
[resource]
|
||||
albedo_texture = ExtResource("1_vqqut")
|
||||
uv1_scale = Vector3(0.1, 0.1, 0.1)
|
||||
uv1_triplanar = true
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dyf4no30s6bcb"
|
||||
path.s3tc="res://.godot/imported/texture_01.png-75429132b66012deb505c6cb3a836a6a.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/prototype-textures/Dark/texture_01.png"
|
||||
dest_files=["res://.godot/imported/texture_01.png-75429132b66012deb505c6cb3a836a6a.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://8mp3p4shnemy"
|
||||
path.s3tc="res://.godot/imported/texture_02.png-ab82e3e00c75250845af3a1a8a61d477.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/prototype-textures/Dark/texture_02.png"
|
||||
dest_files=["res://.godot/imported/texture_02.png-ab82e3e00c75250845af3a1a8a61d477.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cvmx4e4mxw5yp"
|
||||
path.s3tc="res://.godot/imported/texture_03.png-1bab2fa4cc4f48abbce2f789e301ce7f.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/prototype-textures/Dark/texture_03.png"
|
||||
dest_files=["res://.godot/imported/texture_03.png-1bab2fa4cc4f48abbce2f789e301ce7f.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue