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="Sky" id="Sky_xg1t7"]
[sub_resource type="Sky" id="Sky_05rcq"]
sky_material = SubResource("PhysicalSkyMaterial_ttw18")
[sub_resource type="Environment" id="Environment_3mjgt"]
background_mode = 2
sky = SubResource("Sky_xg1t7")
sky = SubResource("Sky_05rcq")
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_energy = 16.0
[node name="map" type="Node3D"]
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)
layout_mode = 2
theme_override_font_sizes/font_size = 32
placeholder_text = "IP Address"
placeholder_text = "Game Name"
[node name="join" type="Button" parent="player_customization"]
layout_mode = 2

View file

@ -31,11 +31,14 @@ size_flags_vertical = 4
layout_mode = 2
theme_override_font_sizes/font_size = 96
text = "FreeFTF"
horizontal_alignment = 1
[node name="create" type="Button" parent="main_content"]
visible = false
layout_mode = 2
size_flags_vertical = 0
theme_override_font_sizes/font_size = 32
disabled = true
text = "Create Lobby"
[node name="join" type="Button" parent="main_content"]
@ -44,6 +47,18 @@ size_flags_vertical = 8
theme_override_font_sizes/font_size = 32
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="."]
layout_mode = 1
anchors_preset = 3
@ -59,7 +74,11 @@ grow_vertical = 0
[node name="Label" type="Label" parent="ver_string"]
layout_mode = 2
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/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"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_pkxhd"]
height = 6.0
height = 2.5
radius = 2.0
[sub_resource type="BoxShape3D" id="BoxShape3D_uvwqt"]
size = Vector3(5, 5, 5)
size = Vector3(5, 3, 5)
[node name="freezer" type="StaticBody3D"]
script = ExtResource("1_nmqkg")
[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
height = 1.0
height = 0.25
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="."]
transparency = 0.25
radius = 1.5
height = 4.0
[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
height = 1.0
height = 0.25
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("CylinderShape3D_pkxhd")

View file

@ -3,8 +3,12 @@
[ext_resource type="Script" path="res://scripts/movement.gd" id="1_uru11"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_2l8cp"]
radius = 0.375
height = 1.75
[sub_resource type="CapsuleMesh" id="CapsuleMesh_fhldf"]
radius = 0.375
height = 1.75
[sub_resource type="BoxShape3D" id="BoxShape3D_e4age"]
size = Vector3(0.5, 1, 0.75)
@ -24,24 +28,24 @@ color = Color(0, 0, 0, 1)
[node name="collision" type="CollisionShape3D" parent="."]
shape = SubResource("CapsuleShape3D_2l8cp")
[node name="bean" type="MeshInstance3D" parent="."]
[node name="bean" type="MeshInstance3D" parent="collision"]
mesh = SubResource("CapsuleMesh_fhldf")
skeleton = NodePath("../..")
[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"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 8)
[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"]
shape = SubResource("BoxShape3D_e4age")
disabled = true
[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
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)
[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
[node name="CSGSphere3D" type="CSGSphere3D" parent="hammer_bag/CSGCylinder3D"]
@ -63,13 +67,39 @@ wait_time = 30.0
one_shot = true
[node name="show_fps" type="Timer" parent="."]
wait_time = 10.0
autostart = true
[node name="jump_timeout" type="Timer" parent="."]
wait_time = 2.0
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="timeout" from="time_in_bag" to="." method="_on_time_in_bag_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"
Server="*res://scripts/server.gd"
Save="*res://scripts/save.gd"
Load="*res://scripts/load.gd"
[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)
]
}
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]
@ -81,4 +88,5 @@ mouse_lock={
[rendering]
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

View file

@ -1,10 +1,11 @@
## Copyright (C) 2024 Patrick_Pluto
## 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, 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.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
## 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 StaticBody3D
@ -32,36 +33,36 @@ func _on_computer_tick_timeout():
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_body[0] = 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_body[1] = 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_body[2] = 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_body[0] = 0
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_body[1] = 0
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_body[2] = 0

View file

@ -1,13 +1,16 @@
## Copyright (C) 2024 Patrick_Pluto
## 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, 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.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
## 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
var elevated = false
func _ready():
if Server.is_server:
$player_customization/ip.hide()
@ -19,8 +22,12 @@ func _ready():
func _process(delta):
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():
Server.start_game.rpc(Server.players)
@ -37,7 +44,6 @@ func _on_join_pressed():
$player_customization/join.disabled = true
$player_customization/name.editable = false
$player_customization/ip.editable = false
while $player_list/list.text == "":
await get_tree().create_timer(0.001).timeout
await get_tree().create_timer(1).timeout
Server.send_playerinfo.rpc($player_customization/name.text, multiplayer.get_unique_id())

View file

@ -1,10 +1,11 @@
## Copyright (C) 2024 Patrick_Pluto
## 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, 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.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
## 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 StaticBody3D
@ -19,19 +20,18 @@ func _process(delta):
living = false
func _on_area_3d_body_entered(body):
if body is StaticBody3D:
pass
elif body.beast and body.got_person and !occupied:
trapped_body = body.caught_body
occupied = true
living = true
body.lost_one()
trapped_body.frozen()
elif !body.beast and occupied and living and body != trapped_body:
trapped_body.unfreeze()
trapped_body._on_time_in_bag_timeout()
occupied = false
trapped_body = null
if body is CharacterBody3D:
if body.beast and body.got_person and !occupied:
trapped_body = body.caught_body
occupied = true
living = true
body.lost_one()
trapped_body.frozen()
elif !body.beast and occupied and living and body != trapped_body:
trapped_body.unfreeze()
trapped_body._on_time_in_bag_timeout()
occupied = false
trapped_body = null
func _on_timer_timeout():
if occupied and living:

View file

@ -1,15 +1,29 @@
## Copyright (C) 2024 Patrick_Pluto
## 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, 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.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
## 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
var settings = {"save_version" = 2, "fps_counter" = 1}
var computers = 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):
pass
@ -18,4 +32,10 @@ func reset():
computers = 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,30 +1,35 @@
## Copyright (C) 2024 Patrick_Pluto
## 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, 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.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
## 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 matchmaking():
get_tree().root.get_node("./main_menu").hide()
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
if !OS.is_debug_build():
$main_content/matchmaking.hide()
func _on_create_pressed():
Server.create_game()
Server.is_server = true
get_tree().change_scene_to_file("res://menus/create.tscn")
func _on_join_pressed():
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,16 +1,17 @@
## Copyright (C) 2024 Patrick_Pluto
## 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, 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.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
## 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 CharacterBody3D
var jump_velocity = 6
var speed = 10.0
var speed = 7
var zoom = 0
var player_no
var npc = false
@ -30,10 +31,15 @@ var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
func _ready():
player_no = Game.players
$nametag.text = Server.players[Server.players_numbered[player_no]]
Game.players += 1
if Server.players_numbered[player_no] == multiplayer.get_unique_id():
if Game.settings["fps_counter"] == 1:
$fps_counter.show()
$health.show()
enabled = true
$cam_y/Camera3D.current = true
$nametag.hide()
else:
npc = true
@ -42,14 +48,24 @@ func _physics_process(delta):
if not is_on_floor():
velocity.y -= gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
if Input.is_action_just_pressed("jump") and is_on_floor() and $jump_timeout.is_stopped():
if beast:
speed -= 6
speed -= 5
$jump_timeout.start()
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 direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
@ -63,17 +79,11 @@ func _physics_process(delta):
move_and_slide()
if !npc:
print(hp)
Server.sync_player.rpc(name, position, rotation)
if $cam_y/Camera3D.position.z == 0:
$cam_y.position.y = 1
if mouse_locked:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
else:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
if mouse_locked:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
else:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
$cam_y.position.y = 0
if Input.is_action_just_pressed("escape"):
get_tree().change_scene_to_file("res://menus/main_menu.tscn")
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
@ -98,22 +108,11 @@ func _input(event):
$cam_y.rotation.x = -1.6
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():
beast = true
speed += 1
speed += 2
position.y += 10
$cam_y/Camera3D.position.z = 0
$detect_hit.monitoring = true
$detect_hit.monitorable = true
$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:
Server.player_hit.rpc(body.name, name)
func captured(beast):
func captured(beast2):
if !npc:
$in_bag.visible = true
$time_in_bag.start()
visible = false
enabled = false
caught = true
captured_by = beast
captured_by = beast2
position_pre = position
position = Vector3(10000, 10000, 10000)
@ -163,8 +162,9 @@ func _on_time_in_bag_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():
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,10 +1,11 @@
## Copyright (C) 2024 Patrick_Pluto
## 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, 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.
##
## You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
## 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
@ -18,6 +19,10 @@ var label
var map
var character = preload("res://objects/player.tscn")
var is_server = false
var first_joined = true
var game_master = "debug"
var host_announced = false
var map_name = "mansion"
func reset():
players = {}
@ -43,68 +48,95 @@ func create_game():
if error:
return error
multiplayer.multiplayer_peer = peer
func _process(delta):
if multiplayer.is_server():
make_host.rpc(game_master)
@rpc("authority","call_remote","reliable")
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("authority", "call_remote", "reliable")
func sync_playerlist(text):
get_tree().root.get_node("create/player_list/list").text = text
@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
@rpc("any_peer", "call_local", "reliable")
func send_playerinfo(name, id):
if Server.is_server:
var done = 0
players[id] = name
label = get_tree().root.get_node("create/player_list/list")
label.text = ""
for w in players:
if done == 1:
label.text = str(label.text +"\n" + players[w])
else:
label.text = players[w]
done = 1
func send_playerinfo(player_name, id):
if !multiplayer.is_server():
if is_server:
var done = 0
players[id] = player_name
label = get_tree().root.get_node("create/player_list/list")
label.text = ""
for w in players:
if done == 1:
label.text = str(label.text +"\n" + players[w])
else:
label.text = players[w]
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):
players = server_players
players_numbered = players.keys()
var success = get_tree().change_scene_to_file("res://maps/base_map.tscn")
while !get_tree().root.has_node("./map/"):
await get_tree().create_timer(0.001).timeout
map = get_tree().root.get_node("./map/")
var i = 0
for w in players:
var player = character.instantiate()
player.name = "player" + str(i)
i += 1
player.position.z = -i*2.5
map.add_child(player)
if Server.is_server:
var random = randi() % Server.players.size()
sync_beast.rpc(random)
if !multiplayer.is_server() and (multiplayer.get_remote_sender_id() == game_master or multiplayer.get_remote_sender_id() == 0):
players = server_players
players_numbered = players.keys()
var success = get_tree().change_scene_to_file("res://maps/"+map_name+".tscn")
while !get_tree().root.has_node("./"+map_name+"/"):
await get_tree().create_timer(0.001).timeout
map = get_tree().root.get_node("./"+map_name+"/")
var i = 0
for w in players:
var player = character.instantiate()
player.name = "player" + str(i)
i += 1
player.position.z = -i*2.5
player.position.y = 1
map.add_child(player)
if Server.is_server:
var random = randi() % Server.players.size()
sync_beast.rpc(random)
Game.apply_settings()
@rpc("any_peer", "call_remote", "unreliable")
func sync_player(node_name, position, rotation):
var current_character = get_tree().root.get_node("./map/"+node_name)
current_character.position = position
current_character.rotation = rotation
if !multiplayer.is_server():
var current_character = get_tree().root.get_node("./"+map_name+"/"+node_name)
current_character.position = position
current_character.rotation = rotation
@rpc("authority", "call_local", "reliable")
@rpc("any_peer", "call_local", "reliable")
func sync_computers(node_name, current):
var current_character = get_tree().root.get_node("./map/"+node_name)
current_character.current = current
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
@rpc("authority", "call_local", "reliable")
@rpc("any_peer", "call_local", "reliable")
func sync_beast(player):
while !get_tree().root.has_node("./map/player"+str(player)):
await get_tree().create_timer(0.001).timeout
var current_character = get_tree().root.get_node("./map/player"+str(player))
current_character.beast_init()
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
var current_character = get_tree().root.get_node("./"+map_name+"/player"+str(player))
current_character.beast_init()
@rpc("any_peer", "call_local", "reliable")
func player_hit(target, beast):
target = get_tree().root.get_node("./map/"+target)
beast = get_tree().root.get_node("./map/"+beast)
if !target.is_frozen:
target.captured(beast)
beast.got_one(target)
if !multiplayer.is_server():
target = get_tree().root.get_node("./"+map_name+"/"+target)
beast = get_tree().root.get_node("./"+map_name+"/"+beast)
if !target.is_frozen:
target.captured(beast)
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()