Milestone 5: Private Testing Release 1

Lot's of changes.
This commit is contained in:
patrick_pluto 2024-08-05 22:35:50 +02:00
parent 0bd1414af0
commit 40100e8fee
90 changed files with 5741 additions and 156 deletions

118
assets/models/corner.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dusht7my32287"
path="res://.godot/imported/corner.gltf-d27aae84dacf6337afe0f777beb3d2f1.scn"
[deps]
source_file="res://assets/models/corner.gltf"
dest_files=["res://.godot/imported/corner.gltf-d27aae84dacf6337afe0f777beb3d2f1.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

BIN
assets/models/corner_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dl0yk41tji05p"
path.s3tc="res://.godot/imported/corner_0.png-057892c9bcbb54125ddaeb4d8fa5ca07.s3tc.ctex"
path.etc2="res://.godot/imported/corner_0.png-057892c9bcbb54125ddaeb4d8fa5ca07.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "f5beb625a2df03deb55afc45e57800a6"
}
[deps]
source_file="res://assets/models/corner_0.png"
dest_files=["res://.godot/imported/corner_0.png-057892c9bcbb54125ddaeb4d8fa5ca07.s3tc.ctex", "res://.godot/imported/corner_0.png-057892c9bcbb54125ddaeb4d8fa5ca07.etc2.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

118
assets/models/crouch.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dtgj67tfeuoaj"
path="res://.godot/imported/crouch.gltf-ace5d02cb4e9e58f95c55709db549ec7.scn"
[deps]
source_file="res://assets/models/crouch.gltf"
dest_files=["res://.godot/imported/crouch.gltf-ace5d02cb4e9e58f95c55709db549ec7.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

BIN
assets/models/crouch_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cg766o75gnvui"
path.s3tc="res://.godot/imported/crouch_0.png-2e783eb07e55b50be1eb5da8a5261871.s3tc.ctex"
path.etc2="res://.godot/imported/crouch_0.png-2e783eb07e55b50be1eb5da8a5261871.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "8ff71a591b302b50a1f969b62599d976"
}
[deps]
source_file="res://assets/models/crouch_0.png"
dest_files=["res://.godot/imported/crouch_0.png-2e783eb07e55b50be1eb5da8a5261871.s3tc.ctex", "res://.godot/imported/crouch_0.png-2e783eb07e55b50be1eb5da8a5261871.etc2.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

118
assets/models/floor.gltf Normal file
View file

@ -0,0 +1,118 @@
{
"accessors": [
{
"bufferView": 1,
"componentType": 5126,
"type": "VEC3",
"count": 52,
"min": [-16, -16, 0],
"max": [16, 16, 4]
},
{
"bufferView": 1,
"componentType": 5126,
"type": "VEC3",
"byteOffset": 12,
"count": 52
},
{
"bufferView": 1,
"componentType": 5126,
"type": "VEC2",
"byteOffset": 24,
"count": 52
},
{
"bufferView": 2,
"componentType": 5125,
"type": "SCALAR",
"count": 120
}
],
"asset": {
"generator": "goxel",
"version": "2.0"
},
"bufferViews": [
{
"buffer": 0,
"byteLength": 205
},
{
"buffer": 1,
"byteLength": 2080,
"byteStride": 40
},
{
"buffer": 2,
"byteLength": 480
}
],
"buffers": [
{
"uri": "data:application/octet-stream;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAlElEQVR4XmO8uSCNAQYatr2Bs5evWscwFAATwxAHox5gGAWjITAaAqMhMBoCoyEwGgKjITAaAqMhMBoCoyEwGgKjITAaAqMhMBoCoyEwGgKjITAaAqMhMBoCoyEwGgKjITAaAqMhMBoCoyEwGgKjITAaAqMhMBoCoyEwGgKjITAaAqMhMBoCoyEwGgKjITAaAjQPAQC0cgYIa74bEQAAAABJRU5ErkJggg==",
"byteLength": 205
},
{
"uri": "data:application/octet-stream;base64,AABwwQAAgEEAAAAAAAAAAP//fz8AAAAAAAAAPQAAAD0AAAAAAAAAAAAAgMEAAIBBAAAAAAAAAAD//38/AAAAAAAAAD0AAAA9AAAAAAAAAAAAAIDBAACAQQAAgD8AAAAA//9/PwAAAAAAAAA9AAAAPQAAAAAAAAAAAACAwQAAAAAAAAAAAAAAAAAAAAD//3+/AAAAPQAAAD0AAAAAAAAAAAAAgMEAAIBBAAAAAAAAAAAAAAAA//9/vwAAAD0AAAA9AAAAAAAAAAAAAHDBAACAQQAAAAAAAAAAAAAAAP//f78AAAA9AAAAPQAAAAAAAAAAAACAwQAAgEEAAIA///9/vwAAAAAAAAAAAAAAPQAAAD0AAAAAAAAAAAAAgMEAAIBBAAAAAP//f78AAAAAAAAAAAAAAD0AAAA9AAAAAAAAAAAAAIDBAAAAAAAAAAD//3+/AAAAAAAAAAAAAAA9AAAAPQAAAAAAAAAAAACAwQAAgEEAAIBAAAAAAP//fz8AAAAAAAAAPQAAAD0AAAAAAAAAAAAAcMEAAIBBAACAQAAAAAD//38/AAAAAAAAAD0AAAA9AAAAAAAAAAAAAIBBAABwwQAAgEAAAAAAAAAAAP//fz8AAAA9AAAAPQAAAAAAAAAAAABwwQAAgEEAAIBAAAAAAAAAAAD//38/AAAAPQAAAD0AAAAAAAAAAAAAgMEAAIBBAACAQAAAAAAAAAAA//9/PwAAAD0AAAA9AAAAAAAAAAAAAIDBAACAPwAAgEAAAAAAAAAAAP//fz8AAAA9AAAAPQAAAAAAAAAAAACAwQAAgD8AAIBA//9/vwAAAAAAAAAAAAAAPQAAAD0AAAAAAAAAAAAAgMEAAIBBAACAQP//f78AAAAAAAAAAAAAAD0AAAA9AAAAAAAAAAAAAIDBAACAwQAAAAAAAAAAAAAAAP//f78AAAA9AAAAPQAAAAAAAAAAAACAwQAAcMEAAAAAAAAAAAAAAAD//3+/AAAAPQAAAD0AAAAAAAAAAAAAcMEAAIDBAAAAAAAAAAAAAAAA//9/vwAAAD0AAAA9AAAAAAAAAAAAAIDBAACAwQAAAAD//3+/AAAAAAAAAAAAAAA9AAAAPQAAAAAAAAAAAACAwQAAgMEAAIA///9/vwAAAAAAAAAAAAAAPQAAAD0AAAAAAAAAAAAAgMEAAHDBAAAAAP//f78AAAAAAAAAAAAAAD0AAAA9AAAAAAAAAAAAAIDBAABwwQAAgED//3+/AAAAAAAAAAAAAAA9AAAAPQAAAAAAAAAAAACAwQAAgMEAAIA/AAAAAP//f78AAAAAAAAAPQAAAD0AAAAAAAAAAAAAgMEAAIDBAAAAAAAAAAD//3+/AAAAAAAAAD0AAAA9AAAAAAAAAAAAAHDBAACAwQAAgEAAAAAA//9/vwAAAAAAAAA9AAAAPQAAAAAAAAAAAABwwQAAgMEAAAAAAAAAAP//f78AAAAAAAAAPQAAAD0AAAAAAAAAAAAAgMEAAIDBAACAQAAAAAD//3+/AAAAAAAAAD0AAAA9AAAAAAAAAAAAAIDBAABwwQAAgEAAAAAAAAAAAP//fz8AAAA9AAAAPQAAAAAAAAAAAACAwQAAgMEAAIBAAAAAAAAAAAD//38/AAAAPQAAAD0AAAAAAAAAAAAAcMEAAIDBAACAQAAAAAAAAAAA//9/PwAAAD0AAAA9AAAAAAAAAAAAAIDBAACAwQAAgED//3+/AAAAAAAAAAAAAAA9AAAAPQAAAAAAAAAAAACAQQAAgMEAAAAAAAAAAP//f78AAAAAAAAAPQAAAD0AAAAAAAAAAAAAgEEAAIDBAACAPwAAAAD//3+/AAAAAAAAAD0AAAA9AAAAAAAAAAAAAIBBAABwwQAAAAAAAAAAAAAAAP//f78AAAA9AAAAPQAAAAAAAAAAAACAQQAAgMEAAAAAAAAAAAAAAAD//3+/AAAAPQAAAD0AAAAAAAAAAAAAgEEAAIDBAACAP///fz8AAAAAAAAAAAAAAD0AAAA9AAAAAAAAAAAAAIBBAACAwQAAAAD//38/AAAAAAAAAAAAAAA9AAAAPQAAAAAAAAAAAACAQQAAcMEAAAAA//9/PwAAAAAAAAAAAAAAPQAAAD0AAAAAAAAAAAAAgEEAAIDBAACAQAAAAAD//3+/AAAAAAAAAD0AAAA9AAAAAAAAAAAAAIBBAACAwQAAgEAAAAAAAAAAAP//fz8AAAA9AAAAPQAAAAAAAAAAAACAQQAAcMEAAIBA//9/PwAAAAAAAAAAAAAAPQAAAD0AAAAAAAAAAAAAgEEAAIDBAACAQP//fz8AAAAAAAAAAAAAAD0AAAA9AAAAAAAAAAAAAIBBAACAQQAAgD8AAAAA//9/PwAAAAAAAAA9AAAAPQAAAAAAAAAAAACAQQAAgEEAAAAAAAAAAP//fz8AAAAAAAAAPQAAAD0AAAAAAAAAAAAAgEEAAIBBAAAAAAAAAAAAAAAA//9/vwAAAD0AAAA9AAAAAAAAAAAAAIBBAACAQQAAAAD//38/AAAAAAAAAAAAAAA9AAAAPQAAAAAAAAAAAACAQQAAgEEAAIA///9/PwAAAAAAAAAAAAAAPQAAAD0AAAAAAAAAAAAAgEEAAIBBAACAQAAAAAD//38/AAAAAAAAAD0AAAA9AAAAAAAAAAAAAIBBAACAQQAAgEAAAAAAAAAAAP//fz8AAAA9AAAAPQAAAAAAAAAAAACAQQAAgEEAAIBA//9/PwAAAAAAAAAAAAAAPQAAAD0AAAAAAAAAAA==",
"byteLength": 2080
},
{
"uri": "data:application/octet-stream;base64,AAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAACAAAACwAAAAwAAAANAAAADQAAAA4AAAALAAAACAAAAA8AAAAQAAAAEAAAAAYAAAAIAAAAAAAAAAIAAAAKAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAEgAAAAMAAAAFAAAAFwAAAAgAAAAWAAAAGAAAABkAAAAaAAAAGgAAABkAAAAbAAAAFwAAABYAAAAVAAAACAAAABcAAAAPAAAAGgAAABwAAAAYAAAAHQAAAB4AAAAfAAAAFQAAACAAAAAXAAAADgAAAB0AAAALAAAAGwAAACEAAAAiAAAAIwAAACQAAAATAAAAJQAAACYAAAAnAAAAEgAAAAUAAAATAAAAGwAAACIAAAAaAAAAKAAAABoAAAAiAAAACwAAAB8AAAApAAAAKgAAACsAAAAlAAAAHQAAAB8AAAALAAAAEwAAAAUAAAAjAAAAAAAAACwAAAAtAAAALgAAACMAAAAFAAAAJwAAAC8AAAAwAAAAJwAAADAAAAAlAAAACgAAACwAAAAAAAAAJQAAADAAAAAqAAAACgAAADEAAAAsAAAACwAAADIAAAAMAAAAMwAAACoAAAAwAAAA",
"byteLength": 480
}
],
"images": [
{
"bufferView": 0,
"mimeType": "image/png"
}
],
"meshes": [
{
"primitives": [
{
"indices": 3,
"material": 0,
"attributes": {
"POSITION": 0,
"NORMAL": 1,
"TEXCOORD_0": 2
}
}
]
}
],
"materials": [
{
"name": "Material.1",
"pbrMetallicRoughness": {
"baseColorTexture": {
"index": 0
},
"metallicFactor": 0.200000003,
"roughnessFactor": 0.5
}
}
],
"nodes": [
{
"children": [ 1 ],
"matrix": [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1]
},
{
"mesh": 0,
"name": "Layer.1"
}
],
"scenes": [
{
"nodes": [ 0 ]
}
],
"textures": [
{
"source": 0
}
]
}

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bafgttdnmvqmo"
path="res://.godot/imported/floor.gltf-f41589b4f800248085aa506db510082f.scn"
[deps]
source_file="res://assets/models/floor.gltf"
dest_files=["res://.godot/imported/floor.gltf-f41589b4f800248085aa506db510082f.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

BIN
assets/models/floor_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://hdon3hwbdhsn"
path.s3tc="res://.godot/imported/floor_0.png-15391f34e3d0066d3432720e1b561416.s3tc.ctex"
path.etc2="res://.godot/imported/floor_0.png-15391f34e3d0066d3432720e1b561416.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "7389aa8c9ea583ea593e2624616c9e69"
}
[deps]
source_file="res://assets/models/floor_0.png"
dest_files=["res://.godot/imported/floor_0.png-15391f34e3d0066d3432720e1b561416.s3tc.ctex", "res://.godot/imported/floor_0.png-15391f34e3d0066d3432720e1b561416.etc2.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

118
assets/models/frame.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://k2l7xvnk66iu"
path="res://.godot/imported/frame.gltf-0e20b27650c04f11c1dfb68fc46aec12.scn"
[deps]
source_file="res://assets/models/frame.gltf"
dest_files=["res://.godot/imported/frame.gltf-0e20b27650c04f11c1dfb68fc46aec12.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

BIN
assets/models/frame_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://4s16yrbjxxa7"
path.s3tc="res://.godot/imported/frame_0.png-8082aedae4ce26ad246014fa06d86f4d.s3tc.ctex"
path.etc2="res://.godot/imported/frame_0.png-8082aedae4ce26ad246014fa06d86f4d.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "8ff71a591b302b50a1f969b62599d976"
}
[deps]
source_file="res://assets/models/frame_0.png"
dest_files=["res://.godot/imported/frame_0.png-8082aedae4ce26ad246014fa06d86f4d.s3tc.ctex", "res://.godot/imported/frame_0.png-8082aedae4ce26ad246014fa06d86f4d.etc2.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

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c8lwr6h3lyvhv"
path="res://.godot/imported/inverted_corner.gltf-4b1ca22cbccec7314454316fb6b10365.scn"
[deps]
source_file="res://assets/models/inverted_corner.gltf"
dest_files=["res://.godot/imported/inverted_corner.gltf-4b1ca22cbccec7314454316fb6b10365.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dh7y3wg1bnlqh"
path.s3tc="res://.godot/imported/inverted_corner_0.png-8d9e7f1e592406a090b044c3c656050a.s3tc.ctex"
path.etc2="res://.godot/imported/inverted_corner_0.png-8d9e7f1e592406a090b044c3c656050a.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "d08589cb8386987e1b6d906aa2a0dc13"
}
[deps]
source_file="res://assets/models/inverted_corner_0.png"
dest_files=["res://.godot/imported/inverted_corner_0.png-8d9e7f1e592406a090b044c3c656050a.s3tc.ctex", "res://.godot/imported/inverted_corner_0.png-8d9e7f1e592406a090b044c3c656050a.etc2.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

118
assets/models/jump.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cq3dw1i3651wb"
path="res://.godot/imported/jump.gltf-7b6f835bd8b0695f3d758d786ce34d46.scn"
[deps]
source_file="res://assets/models/jump.gltf"
dest_files=["res://.godot/imported/jump.gltf-7b6f835bd8b0695f3d758d786ce34d46.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

BIN
assets/models/jump_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c2e3li8x5ks3x"
path.s3tc="res://.godot/imported/jump_0.png-90d353e78a9dc356cb2af30b51e29589.s3tc.ctex"
path.etc2="res://.godot/imported/jump_0.png-90d353e78a9dc356cb2af30b51e29589.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "849227e505975627f18c78884f0b89d5"
}
[deps]
source_file="res://assets/models/jump_0.png"
dest_files=["res://.godot/imported/jump_0.png-90d353e78a9dc356cb2af30b51e29589.s3tc.ctex", "res://.godot/imported/jump_0.png-90d353e78a9dc356cb2af30b51e29589.etc2.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

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://1n6c08khkg2r"
path="res://.godot/imported/jump_corner.gltf-48aab81343564dd20cd29f0bff343ab2.scn"
[deps]
source_file="res://assets/models/jump_corner.gltf"
dest_files=["res://.godot/imported/jump_corner.gltf-48aab81343564dd20cd29f0bff343ab2.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 one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bd5wx8fip2u0y"
path="res://.godot/imported/jump_corner2.gltf-1a7d50337cb83e920dddd62bf381cba2.scn"
[deps]
source_file="res://assets/models/jump_corner2.gltf"
dest_files=["res://.godot/imported/jump_corner2.gltf-1a7d50337cb83e920dddd62bf381cba2.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d8a3w6npa4h"
path.s3tc="res://.godot/imported/jump_corner2_0.png-522c426e004bae657d5a964bd6c0d360.s3tc.ctex"
path.etc2="res://.godot/imported/jump_corner2_0.png-522c426e004bae657d5a964bd6c0d360.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "849227e505975627f18c78884f0b89d5"
}
[deps]
source_file="res://assets/models/jump_corner2_0.png"
dest_files=["res://.godot/imported/jump_corner2_0.png-522c426e004bae657d5a964bd6c0d360.s3tc.ctex", "res://.godot/imported/jump_corner2_0.png-522c426e004bae657d5a964bd6c0d360.etc2.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dvcsjbi4fql5d"
path.s3tc="res://.godot/imported/jump_corner_0.png-4b0d083c6e854000dfafb49c62dea93b.s3tc.ctex"
path.etc2="res://.godot/imported/jump_corner_0.png-4b0d083c6e854000dfafb49c62dea93b.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "1bfbc36721f81dcfb4afe3d6e00e9e6e"
}
[deps]
source_file="res://assets/models/jump_corner_0.png"
dest_files=["res://.godot/imported/jump_corner_0.png-4b0d083c6e854000dfafb49c62dea93b.s3tc.ctex", "res://.godot/imported/jump_corner_0.png-4b0d083c6e854000dfafb49c62dea93b.etc2.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

128
assets/models/stairs_1.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://do3f8ge4p18tt"
path="res://.godot/imported/stairs_1.gltf-b3faa75abaaa7744f04f516ad6700ffc.scn"
[deps]
source_file="res://assets/models/stairs_1.gltf"
dest_files=["res://.godot/imported/stairs_1.gltf-b3faa75abaaa7744f04f516ad6700ffc.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bi1opotnvqp73"
path.s3tc="res://.godot/imported/stairs_1_0.png-207f1ec30d182db217d1129af9f312ed.s3tc.ctex"
path.etc2="res://.godot/imported/stairs_1_0.png-207f1ec30d182db217d1129af9f312ed.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "7389aa8c9ea583ea593e2624616c9e69"
}
[deps]
source_file="res://assets/models/stairs_1_0.png"
dest_files=["res://.godot/imported/stairs_1_0.png-207f1ec30d182db217d1129af9f312ed.s3tc.ctex", "res://.godot/imported/stairs_1_0.png-207f1ec30d182db217d1129af9f312ed.etc2.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

118
assets/models/stairs_2.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bcaub427bqf63"
path="res://.godot/imported/stairs_2.gltf-53572c3c4bb5f3c8f79adfd45fe4bc2c.scn"
[deps]
source_file="res://assets/models/stairs_2.gltf"
dest_files=["res://.godot/imported/stairs_2.gltf-53572c3c4bb5f3c8f79adfd45fe4bc2c.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://fmb4osfkfb3x"
path.s3tc="res://.godot/imported/stairs_2_0.png-223cff9cd2a6a771422554f5b52194e2.s3tc.ctex"
path.etc2="res://.godot/imported/stairs_2_0.png-223cff9cd2a6a771422554f5b52194e2.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "7418cb23ee8f763cdedeb0032cc6afeb"
}
[deps]
source_file="res://assets/models/stairs_2_0.png"
dest_files=["res://.godot/imported/stairs_2_0.png-223cff9cd2a6a771422554f5b52194e2.s3tc.ctex", "res://.godot/imported/stairs_2_0.png-223cff9cd2a6a771422554f5b52194e2.etc2.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

118
assets/models/stairs_3.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bqfsyoi0wikmn"
path="res://.godot/imported/stairs_3.gltf-22172a41fb8ad833b8941bfa6111f36b.scn"
[deps]
source_file="res://assets/models/stairs_3.gltf"
dest_files=["res://.godot/imported/stairs_3.gltf-22172a41fb8ad833b8941bfa6111f36b.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cgchy1183yc1"
path.s3tc="res://.godot/imported/stairs_3_0.png-163861373163b2f777e26f261b9a82eb.s3tc.ctex"
path.etc2="res://.godot/imported/stairs_3_0.png-163861373163b2f777e26f261b9a82eb.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "7418cb23ee8f763cdedeb0032cc6afeb"
}
[deps]
source_file="res://assets/models/stairs_3_0.png"
dest_files=["res://.godot/imported/stairs_3_0.png-163861373163b2f777e26f261b9a82eb.s3tc.ctex", "res://.godot/imported/stairs_3_0.png-163861373163b2f777e26f261b9a82eb.etc2.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

118
assets/models/stairs_4.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bn04ptotmcfye"
path="res://.godot/imported/stairs_4.gltf-ab34f22899c6169c343831413f326e6b.scn"
[deps]
source_file="res://assets/models/stairs_4.gltf"
dest_files=["res://.godot/imported/stairs_4.gltf-ab34f22899c6169c343831413f326e6b.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cabntnj5aiht2"
path.s3tc="res://.godot/imported/stairs_4_0.png-c8c415d4c00d5eac2a226cd6a74f440d.s3tc.ctex"
path.etc2="res://.godot/imported/stairs_4_0.png-c8c415d4c00d5eac2a226cd6a74f440d.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "7418cb23ee8f763cdedeb0032cc6afeb"
}
[deps]
source_file="res://assets/models/stairs_4_0.png"
dest_files=["res://.godot/imported/stairs_4_0.png-c8c415d4c00d5eac2a226cd6a74f440d.s3tc.ctex", "res://.godot/imported/stairs_4_0.png-c8c415d4c00d5eac2a226cd6a74f440d.etc2.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

118
assets/models/stairs_5.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://rc3tqrfnfnnw"
path="res://.godot/imported/stairs_5.gltf-152ac59889e35702f24b64bc9de60628.scn"
[deps]
source_file="res://assets/models/stairs_5.gltf"
dest_files=["res://.godot/imported/stairs_5.gltf-152ac59889e35702f24b64bc9de60628.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://gnndsj0d7sau"
path.s3tc="res://.godot/imported/stairs_5_0.png-e46fa7491e374a7efee5612f03223acf.s3tc.ctex"
path.etc2="res://.godot/imported/stairs_5_0.png-e46fa7491e374a7efee5612f03223acf.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "7418cb23ee8f763cdedeb0032cc6afeb"
}
[deps]
source_file="res://assets/models/stairs_5_0.png"
dest_files=["res://.godot/imported/stairs_5_0.png-e46fa7491e374a7efee5612f03223acf.s3tc.ctex", "res://.godot/imported/stairs_5_0.png-e46fa7491e374a7efee5612f03223acf.etc2.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

118
assets/models/stairs_6.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cr4cm6luf5f5f"
path="res://.godot/imported/stairs_6.gltf-59e685ed83ebcebad32d89c3ed47a837.scn"
[deps]
source_file="res://assets/models/stairs_6.gltf"
dest_files=["res://.godot/imported/stairs_6.gltf-59e685ed83ebcebad32d89c3ed47a837.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cicrcipuln2gv"
path.s3tc="res://.godot/imported/stairs_6_0.png-96ea449eb54b4357f78ca164e32d61b9.s3tc.ctex"
path.etc2="res://.godot/imported/stairs_6_0.png-96ea449eb54b4357f78ca164e32d61b9.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "7418cb23ee8f763cdedeb0032cc6afeb"
}
[deps]
source_file="res://assets/models/stairs_6_0.png"
dest_files=["res://.godot/imported/stairs_6_0.png-96ea449eb54b4357f78ca164e32d61b9.s3tc.ctex", "res://.godot/imported/stairs_6_0.png-96ea449eb54b4357f78ca164e32d61b9.etc2.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

118
assets/models/stairs_7.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://mq11862hmn33"
path="res://.godot/imported/stairs_7.gltf-a512293401a4d8fe9ae86955a71ea78f.scn"
[deps]
source_file="res://assets/models/stairs_7.gltf"
dest_files=["res://.godot/imported/stairs_7.gltf-a512293401a4d8fe9ae86955a71ea78f.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dttad1bw1rjdt"
path.s3tc="res://.godot/imported/stairs_7_0.png-966e6f6cd49ac77eda83fadc4c0a71bb.s3tc.ctex"
path.etc2="res://.godot/imported/stairs_7_0.png-966e6f6cd49ac77eda83fadc4c0a71bb.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "7418cb23ee8f763cdedeb0032cc6afeb"
}
[deps]
source_file="res://assets/models/stairs_7_0.png"
dest_files=["res://.godot/imported/stairs_7_0.png-966e6f6cd49ac77eda83fadc4c0a71bb.s3tc.ctex", "res://.godot/imported/stairs_7_0.png-966e6f6cd49ac77eda83fadc4c0a71bb.etc2.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

118
assets/models/wall.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://db6qhijqwh6wk"
path="res://.godot/imported/wall.gltf-5a937a3e90517c0241c6d52793662436.scn"
[deps]
source_file="res://assets/models/wall.gltf"
dest_files=["res://.godot/imported/wall.gltf-5a937a3e90517c0241c6d52793662436.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

BIN
assets/models/wall_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://03iqumnid78v"
path.s3tc="res://.godot/imported/wall_0.png-ed83d674e980ab8183b93637d039e3b9.s3tc.ctex"
path.etc2="res://.godot/imported/wall_0.png-ed83d674e980ab8183b93637d039e3b9.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "2b3b8eca830f0de85ca87da2d1a2589f"
}
[deps]
source_file="res://assets/models/wall_0.png"
dest_files=["res://.godot/imported/wall_0.png-ed83d674e980ab8183b93637d039e3b9.s3tc.ctex", "res://.godot/imported/wall_0.png-ed83d674e980ab8183b93637d039e3b9.etc2.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

BIN
assets/stairs_1.gox Normal file

Binary file not shown.

View file

@ -8,13 +8,14 @@ size = Vector3(50, 1, 50)
[sub_resource type="PhysicalSkyMaterial" id="PhysicalSkyMaterial_ttw18"] [sub_resource type="PhysicalSkyMaterial" id="PhysicalSkyMaterial_ttw18"]
[sub_resource type="Sky" id="Sky_xg1t7"] [sub_resource type="Sky" id="Sky_05rcq"]
sky_material = SubResource("PhysicalSkyMaterial_ttw18") sky_material = SubResource("PhysicalSkyMaterial_ttw18")
[sub_resource type="Environment" id="Environment_3mjgt"] [sub_resource type="Environment" id="Environment_3mjgt"]
background_mode = 2 background_mode = 2
sky = SubResource("Sky_xg1t7") sky = SubResource("Sky_05rcq")
ambient_light_color = Color(1, 1, 1, 1) ambient_light_color = Color(1, 1, 1, 1)
ambient_light_energy = 16.0
[node name="map" type="Node3D"] [node name="map" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0)

343
maps/mansion.tscn Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
maps/wall_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

39
maps/wall_0.png.import Normal file
View file

@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://crmf2akrsdg6j"
path.s3tc="res://.godot/imported/wall_0.png-b3942b8907f71ed4ca2d3519dc07766b.s3tc.ctex"
path.etc2="res://.godot/imported/wall_0.png-b3942b8907f71ed4ca2d3519dc07766b.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "2b3b8eca830f0de85ca87da2d1a2589f"
}
[deps]
source_file="res://maps/wall_0.png"
dest_files=["res://.godot/imported/wall_0.png-b3942b8907f71ed4ca2d3519dc07766b.s3tc.ctex", "res://.godot/imported/wall_0.png-b3942b8907f71ed4ca2d3519dc07766b.etc2.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

View file

@ -44,7 +44,7 @@ placeholder_text = "Name"
custom_minimum_size = Vector2(256, 64) custom_minimum_size = Vector2(256, 64)
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
placeholder_text = "IP Address" placeholder_text = "Game Name"
[node name="join" type="Button" parent="player_customization"] [node name="join" type="Button" parent="player_customization"]
layout_mode = 2 layout_mode = 2

View file

@ -31,11 +31,14 @@ size_flags_vertical = 4
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 96 theme_override_font_sizes/font_size = 96
text = "FreeFTF" text = "FreeFTF"
horizontal_alignment = 1
[node name="create" type="Button" parent="main_content"] [node name="create" type="Button" parent="main_content"]
visible = false
layout_mode = 2 layout_mode = 2
size_flags_vertical = 0 size_flags_vertical = 0
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
disabled = true
text = "Create Lobby" text = "Create Lobby"
[node name="join" type="Button" parent="main_content"] [node name="join" type="Button" parent="main_content"]
@ -44,6 +47,18 @@ size_flags_vertical = 8
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
text = "Join Lobby" text = "Join Lobby"
[node name="settings" type="Button" parent="main_content"]
layout_mode = 2
size_flags_vertical = 8
theme_override_font_sizes/font_size = 32
text = "Settings"
[node name="matchmaking" type="Button" parent="main_content"]
layout_mode = 2
size_flags_vertical = 8
theme_override_font_sizes/font_size = 32
text = "Matchmaking Server (DEBUG)"
[node name="ver_string" type="VBoxContainer" parent="."] [node name="ver_string" type="VBoxContainer" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = 3 anchors_preset = 3
@ -59,7 +74,11 @@ grow_vertical = 0
[node name="Label" type="Label" parent="ver_string"] [node name="Label" type="Label" parent="ver_string"]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
text = "Milestone 3" text = "Milestone 5
Private Testing Release 1"
horizontal_alignment = 2
[connection signal="pressed" from="main_content/create" to="." method="_on_create_pressed"] [connection signal="pressed" from="main_content/create" to="." method="_on_create_pressed"]
[connection signal="pressed" from="main_content/join" to="." method="_on_join_pressed"] [connection signal="pressed" from="main_content/join" to="." method="_on_join_pressed"]
[connection signal="pressed" from="main_content/settings" to="." method="_on_settings_pressed"]
[connection signal="pressed" from="main_content/matchmaking" to="." method="_on_matchmaking_pressed"]

47
menus/settings.tscn Normal file
View file

@ -0,0 +1,47 @@
[gd_scene load_steps=3 format=3 uid="uid://buvl1aa0733mn"]
[ext_resource type="Script" path="res://scripts/settings.gd" id="1_kmx8a"]
[ext_resource type="Script" path="res://scripts/main_settings.gd" id="1_vdm7d"]
[node name="Settings" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_vdm7d")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="fps_counter" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
[node name="Label" type="Label" parent="VBoxContainer/fps_counter"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
text = "FPS Counter"
[node name="OptionButton" type="OptionButton" parent="VBoxContainer/fps_counter"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme_override_font_sizes/font_size = 32
alignment = 1
item_count = 2
selected = 1
popup/item_0/text = "Off"
popup/item_0/id = 0
popup/item_1/text = "On"
popup/item_1/id = 1
script = ExtResource("1_kmx8a")
[connection signal="item_selected" from="VBoxContainer/fps_counter/OptionButton" to="VBoxContainer/fps_counter/OptionButton" method="_on_item_selected"]

View file

@ -3,29 +3,28 @@
[ext_resource type="Script" path="res://scripts/freezer.gd" id="1_nmqkg"] [ext_resource type="Script" path="res://scripts/freezer.gd" id="1_nmqkg"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_pkxhd"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_pkxhd"]
height = 6.0 height = 2.5
radius = 2.0 radius = 2.0
[sub_resource type="BoxShape3D" id="BoxShape3D_uvwqt"] [sub_resource type="BoxShape3D" id="BoxShape3D_uvwqt"]
size = Vector3(5, 5, 5) size = Vector3(5, 3, 5)
[node name="freezer" type="StaticBody3D"] [node name="freezer" type="StaticBody3D"]
script = ExtResource("1_nmqkg") script = ExtResource("1_nmqkg")
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="."] [node name="CSGCylinder3D" type="CSGCylinder3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.5, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.125, 0)
radius = 2.0 radius = 2.0
height = 1.0 height = 0.25
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="."] [node name="CSGCylinder3D2" type="CSGCylinder3D" parent="."]
transparency = 0.25 transparency = 0.25
radius = 1.5 radius = 1.5
height = 4.0
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="."] [node name="CSGCylinder3D3" type="CSGCylinder3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.125, 0)
radius = 2.0 radius = 2.0
height = 1.0 height = 0.25
[node name="CollisionShape3D" type="CollisionShape3D" parent="."] [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("CylinderShape3D_pkxhd") shape = SubResource("CylinderShape3D_pkxhd")

View file

@ -3,8 +3,12 @@
[ext_resource type="Script" path="res://scripts/movement.gd" id="1_uru11"] [ext_resource type="Script" path="res://scripts/movement.gd" id="1_uru11"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_2l8cp"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_2l8cp"]
radius = 0.375
height = 1.75
[sub_resource type="CapsuleMesh" id="CapsuleMesh_fhldf"] [sub_resource type="CapsuleMesh" id="CapsuleMesh_fhldf"]
radius = 0.375
height = 1.75
[sub_resource type="BoxShape3D" id="BoxShape3D_e4age"] [sub_resource type="BoxShape3D" id="BoxShape3D_e4age"]
size = Vector3(0.5, 1, 0.75) size = Vector3(0.5, 1, 0.75)
@ -24,24 +28,24 @@ color = Color(0, 0, 0, 1)
[node name="collision" type="CollisionShape3D" parent="."] [node name="collision" type="CollisionShape3D" parent="."]
shape = SubResource("CapsuleShape3D_2l8cp") shape = SubResource("CapsuleShape3D_2l8cp")
[node name="bean" type="MeshInstance3D" parent="."] [node name="bean" type="MeshInstance3D" parent="collision"]
mesh = SubResource("CapsuleMesh_fhldf") mesh = SubResource("CapsuleMesh_fhldf")
skeleton = NodePath("../..")
[node name="cam_y" type="Node3D" parent="."] [node name="cam_y" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
[node name="Camera3D" type="Camera3D" parent="cam_y"] [node name="Camera3D" type="Camera3D" parent="cam_y"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 8)
[node name="detect_hit" type="Area3D" parent="."] [node name="detect_hit" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.25, -1.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.25, -1.25)
[node name="CollisionShape3D" type="CollisionShape3D" parent="detect_hit"] [node name="CollisionShape3D" type="CollisionShape3D" parent="detect_hit"]
shape = SubResource("BoxShape3D_e4age") shape = SubResource("BoxShape3D_e4age")
disabled = true disabled = true
[node name="hammer_bag" type="CSGBox3D" parent="."] [node name="hammer_bag" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.25, -0.75) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.25, -0.5)
visible = false visible = false
size = Vector3(0.25, 0.25, 1) size = Vector3(0.25, 0.25, 1)
@ -50,7 +54,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.75)
size = Vector3(0.5, 1, 0.75) size = Vector3(0.5, 1, 0.75)
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="hammer_bag"] [node name="CSGCylinder3D" type="CSGCylinder3D" parent="hammer_bag"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -0.25, 1.75) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, -0.25, 1.375)
height = 1.0 height = 1.0
[node name="CSGSphere3D" type="CSGSphere3D" parent="hammer_bag/CSGCylinder3D"] [node name="CSGSphere3D" type="CSGSphere3D" parent="hammer_bag/CSGCylinder3D"]
@ -63,13 +67,39 @@ wait_time = 30.0
one_shot = true one_shot = true
[node name="show_fps" type="Timer" parent="."] [node name="show_fps" type="Timer" parent="."]
wait_time = 10.0
autostart = true autostart = true
[node name="jump_timeout" type="Timer" parent="."] [node name="jump_timeout" type="Timer" parent="."]
wait_time = 2.0 wait_time = 2.0
one_shot = true one_shot = true
[node name="nametag" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
billboard = 1
text = "Test"
[node name="fps_counter" type="Label" parent="."]
visible = false
offset_right = 40.0
offset_bottom = 23.0
size_flags_horizontal = 0
size_flags_vertical = 0
theme_override_font_sizes/font_size = 64
text = "FPS: "
[node name="health" type="Label" parent="."]
visible = false
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -45.0
offset_right = 182.0
grow_vertical = 0
size_flags_horizontal = 0
size_flags_vertical = 0
theme_override_font_sizes/font_size = 64
text = "HP: 100 "
[connection signal="body_entered" from="detect_hit" to="." method="_on_detect_hit_body_entered"] [connection signal="body_entered" from="detect_hit" to="." method="_on_detect_hit_body_entered"]
[connection signal="timeout" from="time_in_bag" to="." method="_on_time_in_bag_timeout"] [connection signal="timeout" from="time_in_bag" to="." method="_on_time_in_bag_timeout"]
[connection signal="timeout" from="show_fps" to="." method="_on_show_fps_timeout"] [connection signal="timeout" from="show_fps" to="." method="_on_show_fps_timeout"]

BIN
objects/stairs_1.gox Normal file

Binary file not shown.

View file

@ -18,6 +18,8 @@ config/features=PackedStringArray("4.2", "Forward Plus")
Game="*res://scripts/game.gd" Game="*res://scripts/game.gd"
Server="*res://scripts/server.gd" Server="*res://scripts/server.gd"
Save="*res://scripts/save.gd"
Load="*res://scripts/load.gd"
[input] [input]
@ -71,6 +73,11 @@ mouse_lock={
"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":76,"key_label":0,"unicode":108,"echo":false,"script":null) "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":76,"key_label":0,"unicode":108,"echo":false,"script":null)
] ]
} }
crouch={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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)
]
}
[layer_names] [layer_names]
@ -81,4 +88,5 @@ mouse_lock={
[rendering] [rendering]
textures/vram_compression/import_etc2_astc=true textures/vram_compression/import_etc2_astc=true
environment/defaults/default_clear_color=Color(0.207803, 0.240581, 0.3157, 1)
occlusion_culling/use_occlusion_culling=true occlusion_culling/use_occlusion_culling=true

View file

@ -1,6 +1,7 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto ## Copyright (C) 2024 Patrick_Pluto
## ##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. ## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
## ##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
## ##
@ -32,36 +33,36 @@ func _on_computer_tick_timeout():
func _on_pc_1_area_body_entered(body): func _on_pc_1_area_body_entered(body):
if pc_occupied[0] == 0 and !body.beast: if pc_occupied[0] == 0 and body is CharacterBody3D and !body.beast:
pc_occupied[0] = 1 pc_occupied[0] = 1
pc_body[0] = body pc_body[0] = body
func _on_pc_2_area_body_entered(body): func _on_pc_2_area_body_entered(body):
if pc_occupied[1] == 0 and !body.beast: if pc_occupied[1] == 0 and body is CharacterBody3D and !body.beast:
pc_occupied[1] = 1 pc_occupied[1] = 1
pc_body[1] = body pc_body[1] = body
func _on_pc_3_area_body_entered(body): func _on_pc_3_area_body_entered(body):
if pc_occupied[2] == 0 and !body.beast: if pc_occupied[2] == 0 and body is CharacterBody3D and !body.beast:
pc_occupied[2] = 1 pc_occupied[2] = 1
pc_body[2] = body pc_body[2] = body
func _on_pc_1_area_body_exited(body): func _on_pc_1_area_body_exited(body):
if pc_occupied[0] == 1 and body == pc_body[0]: if pc_occupied[0] == 1 and body is CharacterBody3D and body == pc_body[0]:
pc_occupied[0] = 0 pc_occupied[0] = 0
pc_body[0] = 0 pc_body[0] = 0
func _on_pc_2_area_body_exited(body): func _on_pc_2_area_body_exited(body):
if pc_occupied[1] == 1 and body == pc_body[1]: if pc_occupied[1] == 1 and body is CharacterBody3D and body == pc_body[1]:
pc_occupied[1] = 0 pc_occupied[1] = 0
pc_body[1] = 0 pc_body[1] = 0
func _on_pc_3_area_body_exited(body): func _on_pc_3_area_body_exited(body):
if pc_occupied[2] == 1 and body == pc_body[2]: if pc_occupied[2] == 1 and body is CharacterBody3D and body == pc_body[2]:
pc_occupied[2] = 0 pc_occupied[2] = 0
pc_body[2] = 0 pc_body[2] = 0

View file

@ -1,6 +1,7 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto ## Copyright (C) 2024 Patrick_Pluto
## ##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. ## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
## ##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
## ##
@ -8,6 +9,8 @@
extends Control extends Control
var elevated = false
func _ready(): func _ready():
if Server.is_server: if Server.is_server:
$player_customization/ip.hide() $player_customization/ip.hide()
@ -19,7 +22,11 @@ func _ready():
func _process(delta): func _process(delta):
if Server.is_server: if Server.is_server:
Server.sync_playerlist.rpc($player_list/list.text) Server.sync_playerlist.rpc($player_list/list.text, multiplayer.get_unique_id())
if Server.is_server and !elevated:
_ready()
Server.send_playerinfo($player_customization/name.text, multiplayer.get_unique_id())
elevated = true
func _on_start_pressed(): func _on_start_pressed():
Server.start_game.rpc(Server.players) Server.start_game.rpc(Server.players)
@ -37,7 +44,6 @@ func _on_join_pressed():
$player_customization/join.disabled = true $player_customization/join.disabled = true
$player_customization/name.editable = false $player_customization/name.editable = false
$player_customization/ip.editable = false $player_customization/ip.editable = false
while $player_list/list.text == "": await get_tree().create_timer(1).timeout
await get_tree().create_timer(0.001).timeout
Server.send_playerinfo.rpc($player_customization/name.text, multiplayer.get_unique_id()) Server.send_playerinfo.rpc($player_customization/name.text, multiplayer.get_unique_id())

View file

@ -1,6 +1,7 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto ## Copyright (C) 2024 Patrick_Pluto
## ##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. ## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
## ##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
## ##
@ -19,9 +20,8 @@ func _process(delta):
living = false living = false
func _on_area_3d_body_entered(body): func _on_area_3d_body_entered(body):
if body is StaticBody3D: if body is CharacterBody3D:
pass if body.beast and body.got_person and !occupied:
elif body.beast and body.got_person and !occupied:
trapped_body = body.caught_body trapped_body = body.caught_body
occupied = true occupied = true
living = true living = true

View file

@ -1,6 +1,7 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto ## Copyright (C) 2024 Patrick_Pluto
## ##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. ## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
## ##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
## ##
@ -8,8 +9,21 @@
extends Node extends Node
var settings = {"save_version" = 2, "fps_counter" = 1}
var computers = 0 var computers = 0
var players = 0 var players = 0
var is_creating = false
var map_name = "mansion"
func _ready():
if FileAccess.file_exists("user://settings.json"):
var temp = Load.loadJSON("user://settings.json")
if !(temp is Dictionary) or settings["save_version"] != temp["save_version"]:
Save.saveJSON("user://settings.json", settings)
else:
settings = temp
else:
Save.saveJSON("user://settings.json", settings)
func _process(delta): func _process(delta):
pass pass
@ -18,4 +32,10 @@ func reset():
computers = 0 computers = 0
players = 0 players = 0
func save_setting(setting_name, value):
settings[setting_name] = value
Save.saveJSON("user://settings.json", settings)
func apply_settings():
pass

29
scripts/load.gd Normal file
View file

@ -0,0 +1,29 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto
##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
extends Node
func loadJSON(savePath):
if not FileAccess.file_exists(savePath):
return 1
var fileAccess = FileAccess.open(savePath, FileAccess.READ)
var jsonString = fileAccess.get_line()
fileAccess.close()
var json = JSON.new()
var error = json.parse(jsonString)
if error:
return 1
return json.data

View file

@ -1,6 +1,7 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto ## Copyright (C) 2024 Patrick_Pluto
## ##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. ## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
## ##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
## ##
@ -8,23 +9,27 @@
extends Control extends Control
func matchmaking():
get_tree().root.get_node("./main_menu").hide()
# Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
pass # Replace with function body. if !OS.is_debug_build():
$main_content/matchmaking.hide()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _on_create_pressed(): func _on_create_pressed():
Server.create_game()
Server.is_server = true
get_tree().change_scene_to_file("res://menus/create.tscn") get_tree().change_scene_to_file("res://menus/create.tscn")
func _on_join_pressed(): func _on_join_pressed():
get_tree().change_scene_to_file("res://menus/create.tscn") get_tree().change_scene_to_file("res://menus/create.tscn")
func _on_settings_pressed():
get_tree().change_scene_to_file("res://menus/settings.tscn")
func _on_matchmaking_pressed():
Server.create_game()
matchmaking()

15
scripts/main_settings.gd Normal file
View file

@ -0,0 +1,15 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto
##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
extends Control
func _process(delta):
if Input.is_action_just_pressed("escape"):
get_tree().change_scene_to_file("res://menus/main_menu.tscn")

View file

@ -1,6 +1,7 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto ## Copyright (C) 2024 Patrick_Pluto
## ##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. ## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
## ##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
## ##
@ -10,7 +11,7 @@ extends CharacterBody3D
var jump_velocity = 6 var jump_velocity = 6
var speed = 10.0 var speed = 7
var zoom = 0 var zoom = 0
var player_no var player_no
var npc = false var npc = false
@ -30,10 +31,15 @@ var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
func _ready(): func _ready():
player_no = Game.players player_no = Game.players
$nametag.text = Server.players[Server.players_numbered[player_no]]
Game.players += 1 Game.players += 1
if Server.players_numbered[player_no] == multiplayer.get_unique_id(): if Server.players_numbered[player_no] == multiplayer.get_unique_id():
if Game.settings["fps_counter"] == 1:
$fps_counter.show()
$health.show()
enabled = true enabled = true
$cam_y/Camera3D.current = true $cam_y/Camera3D.current = true
$nametag.hide()
else: else:
npc = true npc = true
@ -43,14 +49,24 @@ func _physics_process(delta):
if not is_on_floor(): if not is_on_floor():
velocity.y -= gravity * delta velocity.y -= gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor() and $jump_timeout.is_stopped():
if Input.is_action_just_pressed("jump") and is_on_floor():
if beast: if beast:
speed -= 6 speed -= 5
$jump_timeout.start() $jump_timeout.start()
velocity.y = jump_velocity velocity.y = jump_velocity
if Input.is_action_just_pressed("crouch") and !beast:
if $collision.rotation.x == 0:
$collision.rotation.x = deg_to_rad(-90)
speed -= 3
$cam_y.position.y = 0
else :
$collision.rotation.x = 0
speed += 3
$cam_y.position.y = 0.5
position.y += 1
var input_dir = Input.get_vector("left", "right", "forwards", "backwards") var input_dir = Input.get_vector("left", "right", "forwards", "backwards")
var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized() var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction: if direction:
@ -63,17 +79,11 @@ func _physics_process(delta):
move_and_slide() move_and_slide()
if !npc: if !npc:
print(hp)
Server.sync_player.rpc(name, position, rotation) Server.sync_player.rpc(name, position, rotation)
if $cam_y/Camera3D.position.z == 0:
$cam_y.position.y = 1
if mouse_locked: if mouse_locked:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
else: else:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
else:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
$cam_y.position.y = 0
if Input.is_action_just_pressed("escape"): if Input.is_action_just_pressed("escape"):
get_tree().change_scene_to_file("res://menus/main_menu.tscn") get_tree().change_scene_to_file("res://menus/main_menu.tscn")
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
@ -98,22 +108,11 @@ func _input(event):
$cam_y.rotation.x = -1.6 $cam_y.rotation.x = -1.6
rotate(Vector3.DOWN, camera_rotation.x) rotate(Vector3.DOWN, camera_rotation.x)
func _unhandled_input(event):
if !npc and !beast:
if event.is_action_pressed("zoom_in") && $cam_y/Camera3D.position.z > 0:
zoom = -1
$cam_y/Camera3D.position.z += zoom
elif event.is_action_pressed("zoom_out") && $cam_y/Camera3D.position.z <= 20:
zoom = 1
$cam_y/Camera3D.position.z += zoom
else:
zoom = 0
func beast_init(): func beast_init():
beast = true beast = true
speed += 1 speed += 2
position.y += 10 position.y += 10
$cam_y/Camera3D.position.z = 0
$detect_hit.monitoring = true $detect_hit.monitoring = true
$detect_hit.monitorable = true $detect_hit.monitorable = true
$detect_hit/CollisionShape3D.disabled = false $detect_hit/CollisionShape3D.disabled = false
@ -123,14 +122,14 @@ func _on_detect_hit_body_entered(body):
if enabled and body is CharacterBody3D and !got_person: if enabled and body is CharacterBody3D and !got_person:
Server.player_hit.rpc(body.name, name) Server.player_hit.rpc(body.name, name)
func captured(beast): func captured(beast2):
if !npc: if !npc:
$in_bag.visible = true $in_bag.visible = true
$time_in_bag.start() $time_in_bag.start()
visible = false visible = false
enabled = false enabled = false
caught = true caught = true
captured_by = beast captured_by = beast2
position_pre = position position_pre = position
position = Vector3(10000, 10000, 10000) position = Vector3(10000, 10000, 10000)
@ -163,8 +162,9 @@ func _on_time_in_bag_timeout():
func _on_show_fps_timeout(): func _on_show_fps_timeout():
print("FPS: "+str(Engine.get_frames_per_second())) $fps_counter.text = "FPS: "+str(Engine.get_frames_per_second())
$health.text = "HP: "+str(hp)
func _on_jump_timeout_timeout(): func _on_jump_timeout_timeout():
speed += 6 speed += 5

23
scripts/save.gd Normal file
View file

@ -0,0 +1,23 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto
##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
extends Node
func saveJSON(savePath, saveData):
var jsonString = JSON.stringify(saveData)
var fileAccess = FileAccess.open(savePath, FileAccess.WRITE)
if not fileAccess:
print("An error happened while saving data: ", FileAccess.get_open_error())
return 1
fileAccess.store_line(jsonString)
fileAccess.close()

View file

@ -1,6 +1,7 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto ## Copyright (C) 2024 Patrick_Pluto
## ##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3. ## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
## ##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
## ##
@ -18,6 +19,10 @@ var label
var map var map
var character = preload("res://objects/player.tscn") var character = preload("res://objects/player.tscn")
var is_server = false var is_server = false
var first_joined = true
var game_master = "debug"
var host_announced = false
var map_name = "mansion"
func reset(): func reset():
players = {} players = {}
@ -44,15 +49,30 @@ func create_game():
return error return error
multiplayer.multiplayer_peer = peer multiplayer.multiplayer_peer = peer
func _process(delta):
if multiplayer.is_server():
make_host.rpc(game_master)
@rpc("authority","call_remote","reliable") @rpc("authority","call_remote","reliable")
func sync_playerlist(text): func make_host(id):
first_joined = false
game_master = id
if str(multiplayer.get_unique_id()) == str(game_master):
is_server = true
else:
is_server = false
@rpc("any_peer", "call_remote", "reliable")
func sync_playerlist(text, host):
if !multiplayer.is_server() and (multiplayer.get_remote_sender_id() == game_master or multiplayer.get_remote_sender_id() == 0):
get_tree().root.get_node("create/player_list/list").text = text get_tree().root.get_node("create/player_list/list").text = text
@rpc("any_peer", "call_local", "reliable") @rpc("any_peer", "call_local", "reliable")
func send_playerinfo(name, id): func send_playerinfo(player_name, id):
if Server.is_server: if !multiplayer.is_server():
if is_server:
var done = 0 var done = 0
players[id] = name players[id] = player_name
label = get_tree().root.get_node("create/player_list/list") label = get_tree().root.get_node("create/player_list/list")
label.text = "" label.text = ""
for w in players: for w in players:
@ -61,49 +81,61 @@ func send_playerinfo(name, id):
else: else:
label.text = players[w] label.text = players[w]
done = 1 done = 1
else:
if first_joined:
first_joined = false
game_master = id
is_server = true
@rpc("authority", "call_local", "reliable") @rpc("any_peer", "call_local", "reliable")
func start_game(server_players): func start_game(server_players):
if !multiplayer.is_server() and (multiplayer.get_remote_sender_id() == game_master or multiplayer.get_remote_sender_id() == 0):
players = server_players players = server_players
players_numbered = players.keys() players_numbered = players.keys()
var success = get_tree().change_scene_to_file("res://maps/base_map.tscn") var success = get_tree().change_scene_to_file("res://maps/"+map_name+".tscn")
while !get_tree().root.has_node("./map/"): while !get_tree().root.has_node("./"+map_name+"/"):
await get_tree().create_timer(0.001).timeout await get_tree().create_timer(0.001).timeout
map = get_tree().root.get_node("./map/") map = get_tree().root.get_node("./"+map_name+"/")
var i = 0 var i = 0
for w in players: for w in players:
var player = character.instantiate() var player = character.instantiate()
player.name = "player" + str(i) player.name = "player" + str(i)
i += 1 i += 1
player.position.z = -i*2.5 player.position.z = -i*2.5
player.position.y = 1
map.add_child(player) map.add_child(player)
if Server.is_server: if Server.is_server:
var random = randi() % Server.players.size() var random = randi() % Server.players.size()
sync_beast.rpc(random) sync_beast.rpc(random)
Game.apply_settings()
@rpc("any_peer", "call_remote", "unreliable") @rpc("any_peer", "call_remote", "unreliable")
func sync_player(node_name, position, rotation): func sync_player(node_name, position, rotation):
var current_character = get_tree().root.get_node("./map/"+node_name) if !multiplayer.is_server():
var current_character = get_tree().root.get_node("./"+map_name+"/"+node_name)
current_character.position = position current_character.position = position
current_character.rotation = rotation current_character.rotation = rotation
@rpc("authority", "call_local", "reliable") @rpc("any_peer", "call_local", "reliable")
func sync_computers(node_name, current): func sync_computers(node_name, current):
var current_character = get_tree().root.get_node("./map/"+node_name) if !multiplayer.is_server() and (multiplayer.get_remote_sender_id() == game_master or multiplayer.get_remote_sender_id() == 0):
var current_character = get_tree().root.get_node("./"+map_name+"/computers/"+node_name)
current_character.current = current current_character.current = current
@rpc("authority", "call_local", "reliable") @rpc("any_peer", "call_local", "reliable")
func sync_beast(player): func sync_beast(player):
while !get_tree().root.has_node("./map/player"+str(player)): if !multiplayer.is_server() and (multiplayer.get_remote_sender_id() == game_master or multiplayer.get_remote_sender_id() == 0):
while !get_tree().root.has_node("./"+map_name+"/player"+str(player)):
await get_tree().create_timer(0.001).timeout await get_tree().create_timer(0.001).timeout
var current_character = get_tree().root.get_node("./map/player"+str(player)) var current_character = get_tree().root.get_node("./"+map_name+"/player"+str(player))
current_character.beast_init() current_character.beast_init()
@rpc("any_peer", "call_local", "reliable") @rpc("any_peer", "call_local", "reliable")
func player_hit(target, beast): func player_hit(target, beast):
target = get_tree().root.get_node("./map/"+target) if !multiplayer.is_server():
beast = get_tree().root.get_node("./map/"+beast) target = get_tree().root.get_node("./"+map_name+"/"+target)
beast = get_tree().root.get_node("./"+map_name+"/"+beast)
if !target.is_frozen: if !target.is_frozen:
target.captured(beast) target.captured(beast)
beast.got_one(target) beast.got_one(target)

16
scripts/settings.gd Normal file
View file

@ -0,0 +1,16 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto
##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
extends OptionButton
func _ready():
selected = Game.settings[get_parent().name]
func _on_item_selected(index):
Game.save_setting(get_parent().name, selected)

21
scripts/win.gd Normal file
View file

@ -0,0 +1,21 @@
## freeftf
## Copyright (C) 2024 Patrick_Pluto
##
## This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
extends Area3D
func _on_body_entered(body):
if body is CharacterBody3D and !body.beast and Game.computers == 0:
body.free()
$mapcam.active
func _process(delta):
if Game.computers == 0:
$CSGBox3D.show()
else:
$CSGBox3D.hide()