Преглед изворни кода

Fix 3D platformer (#872)

Also converted the PNG files to lossless WebP and removed an unused .import file while I was at it.
The rest of the changes were done automatically by the editor when I opened the files.
Jonathan Nicholl пре 2 година
родитељ
комит
3696e43696
99 измењених фајлова са 255 додато и 549 уклоњено
  1. 1 1
      3d/platformer/default_env.tres
  2. 2 0
      3d/platformer/enemy/enemy.glb.import
  3. BIN
      3d/platformer/icon.png
  4. 0 34
      3d/platformer/icon.png.import
  5. BIN
      3d/platformer/icon.webp
  6. 34 0
      3d/platformer/icon.webp.import
  7. BIN
      3d/platformer/particle.png
  8. BIN
      3d/platformer/particle.webp
  9. 4 4
      3d/platformer/particle.webp.import
  10. BIN
      3d/platformer/player/controls/osb_down.png
  11. BIN
      3d/platformer/player/controls/osb_down.webp
  12. 4 4
      3d/platformer/player/controls/osb_down.webp.import
  13. BIN
      3d/platformer/player/controls/osb_fire.png
  14. BIN
      3d/platformer/player/controls/osb_fire.webp
  15. 4 4
      3d/platformer/player/controls/osb_fire.webp.import
  16. BIN
      3d/platformer/player/controls/osb_jump.png
  17. BIN
      3d/platformer/player/controls/osb_jump.webp
  18. 4 4
      3d/platformer/player/controls/osb_jump.webp.import
  19. BIN
      3d/platformer/player/controls/osb_left.png
  20. BIN
      3d/platformer/player/controls/osb_left.webp
  21. 4 4
      3d/platformer/player/controls/osb_left.webp.import
  22. BIN
      3d/platformer/player/controls/osb_right.png
  23. BIN
      3d/platformer/player/controls/osb_right.webp
  24. 4 4
      3d/platformer/player/controls/osb_right.webp.import
  25. BIN
      3d/platformer/player/controls/osb_up.png
  26. BIN
      3d/platformer/player/controls/osb_up.webp
  27. 4 4
      3d/platformer/player/controls/osb_up.webp.import
  28. 5 5
      3d/platformer/player/player.gd
  29. 2 0
      3d/platformer/player/player.glb.import
  30. 10 15
      3d/platformer/player/player.tscn
  31. 25 41
      3d/platformer/project.godot
  32. BIN
      3d/platformer/stage/grid_map.scn
  33. BIN
      3d/platformer/stage/meshes/previews/ceiling.png
  34. BIN
      3d/platformer/stage/meshes/previews/ceiling.webp
  35. 4 4
      3d/platformer/stage/meshes/previews/ceiling.webp.import
  36. BIN
      3d/platformer/stage/meshes/previews/ceiling_corner.png
  37. BIN
      3d/platformer/stage/meshes/previews/ceiling_corner.webp
  38. 4 4
      3d/platformer/stage/meshes/previews/ceiling_corner.webp.import
  39. BIN
      3d/platformer/stage/meshes/previews/ceiling_wall.png
  40. BIN
      3d/platformer/stage/meshes/previews/ceiling_wall.webp
  41. 4 4
      3d/platformer/stage/meshes/previews/ceiling_wall.webp.import
  42. BIN
      3d/platformer/stage/meshes/previews/corner.png
  43. BIN
      3d/platformer/stage/meshes/previews/corner.webp
  44. 4 4
      3d/platformer/stage/meshes/previews/corner.webp.import
  45. BIN
      3d/platformer/stage/meshes/previews/corner_fix.png
  46. BIN
      3d/platformer/stage/meshes/previews/corner_fix.webp
  47. 5 6
      3d/platformer/stage/meshes/previews/corner_fix.webp.import
  48. BIN
      3d/platformer/stage/meshes/previews/corner_fixr.png
  49. BIN
      3d/platformer/stage/meshes/previews/corner_fixr.webp
  50. 4 4
      3d/platformer/stage/meshes/previews/corner_fixr.webp.import
  51. BIN
      3d/platformer/stage/meshes/previews/corner_floor.png
  52. BIN
      3d/platformer/stage/meshes/previews/corner_floor.webp
  53. 4 4
      3d/platformer/stage/meshes/previews/corner_floor.webp.import
  54. BIN
      3d/platformer/stage/meshes/previews/floor.png
  55. BIN
      3d/platformer/stage/meshes/previews/floor.webp
  56. 4 4
      3d/platformer/stage/meshes/previews/floor.webp.import
  57. BIN
      3d/platformer/stage/meshes/previews/floor_corner.png
  58. BIN
      3d/platformer/stage/meshes/previews/floor_corner.webp
  59. 4 4
      3d/platformer/stage/meshes/previews/floor_corner.webp.import
  60. BIN
      3d/platformer/stage/meshes/previews/floor_edge.png
  61. BIN
      3d/platformer/stage/meshes/previews/floor_edge.webp
  62. 4 4
      3d/platformer/stage/meshes/previews/floor_edge.webp.import
  63. BIN
      3d/platformer/stage/meshes/previews/ramp.png
  64. BIN
      3d/platformer/stage/meshes/previews/ramp.webp
  65. 4 4
      3d/platformer/stage/meshes/previews/ramp.webp.import
  66. BIN
      3d/platformer/stage/meshes/previews/tree_top.png
  67. BIN
      3d/platformer/stage/meshes/previews/tree_top.webp
  68. 4 4
      3d/platformer/stage/meshes/previews/tree_top.webp.import
  69. BIN
      3d/platformer/stage/meshes/previews/trunk.png
  70. BIN
      3d/platformer/stage/meshes/previews/trunk.webp
  71. 4 4
      3d/platformer/stage/meshes/previews/trunk.webp.import
  72. BIN
      3d/platformer/stage/meshes/previews/trunk_deco.png
  73. BIN
      3d/platformer/stage/meshes/previews/trunk_deco.webp
  74. 4 4
      3d/platformer/stage/meshes/previews/trunk_deco.webp.import
  75. BIN
      3d/platformer/stage/meshes/previews/trunk_floor.png
  76. BIN
      3d/platformer/stage/meshes/previews/trunk_floor.webp
  77. 4 4
      3d/platformer/stage/meshes/previews/trunk_floor.webp.import
  78. BIN
      3d/platformer/stage/meshes/previews/wall.png
  79. BIN
      3d/platformer/stage/meshes/previews/wall.webp
  80. 4 4
      3d/platformer/stage/meshes/previews/wall.webp.import
  81. BIN
      3d/platformer/stage/meshes/previews/wall_floor.png
  82. BIN
      3d/platformer/stage/meshes/previews/wall_floor.webp
  83. 4 4
      3d/platformer/stage/meshes/previews/wall_floor.webp.import
  84. BIN
      3d/platformer/stage/meshes/previews/wall_var.png
  85. BIN
      3d/platformer/stage/meshes/previews/wall_var.webp
  86. 4 4
      3d/platformer/stage/meshes/previews/wall_var.webp.import
  87. BIN
      3d/platformer/stage/panorama.png
  88. BIN
      3d/platformer/stage/panorama.webp
  89. 4 4
      3d/platformer/stage/panorama.webp.import
  90. 7 7
      3d/platformer/stage/stage.tscn
  91. 2 2
      3d/platformer/stage/tile_material.tres
  92. 0 294
      3d/platformer/stage/tiles.glb.import
  93. 54 36
      3d/platformer/stage/tiles.tres
  94. BIN
      3d/platformer/stage/tiles_albedo.png
  95. BIN
      3d/platformer/stage/tiles_albedo.webp
  96. 4 4
      3d/platformer/stage/tiles_albedo.webp.import
  97. BIN
      3d/platformer/stage/tiles_rough.png
  98. BIN
      3d/platformer/stage/tiles_rough.webp
  99. 4 4
      3d/platformer/stage/tiles_rough.webp.import

+ 1 - 1
3d/platformer/default_env.tres

@@ -1,6 +1,6 @@
 [gd_resource type="Environment" load_steps=4 format=3 uid="uid://odyhne6bhlsu"]
 
-[ext_resource type="Texture2D" uid="uid://qdur4kpvvtdg" path="res://stage/panorama.png" id="1"]
+[ext_resource type="Texture2D" uid="uid://qdur4kpvvtdg" path="res://stage/panorama.webp" id="1"]
 
 [sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_3qare"]
 panorama = ExtResource("1")

+ 2 - 0
3d/platformer/enemy/enemy.glb.import

@@ -26,6 +26,7 @@ skins/use_named_skins=true
 animation/import=true
 animation/fps=30
 animation/trimming=false
+animation/remove_immutable_tracks=true
 import_script/path=""
 _subresources={
 "animations": {
@@ -3635,3 +3636,4 @@ _subresources={
 }
 }
 }
+gltf/embedded_image_handling=1

BIN
3d/platformer/icon.png


+ 0 - 34
3d/platformer/icon.png.import

@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dypbdx5dxnb7w"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
-
-[params]
-
-compress/mode=0
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/bptc_ldr=0
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=true
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1

BIN
3d/platformer/icon.webp


+ 34 - 0
3d/platformer/icon.webp.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cvdgvdp40wpy6"
+path="res://.godot/imported/icon.webp-e94f9a68b0f625a567a797079e4d325f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://icon.webp"
+dest_files=["res://.godot/imported/icon.webp-e94f9a68b0f625a567a797079e4d325f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

BIN
3d/platformer/particle.png


BIN
3d/platformer/particle.webp


+ 4 - 4
3d/platformer/particle.png.import → 3d/platformer/particle.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://y3opjgnv67r8"
-path="res://.godot/imported/particle.png-c2ba3d91e96c62035d672392a1197218.ctex"
+path="res://.godot/imported/particle.webp-973931d37118dc68803b55353a07e7d3.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://particle.png"
-dest_files=["res://.godot/imported/particle.png-c2ba3d91e96c62035d672392a1197218.ctex"]
+source_file="res://particle.webp"
+dest_files=["res://.godot/imported/particle.webp-973931d37118dc68803b55353a07e7d3.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/player/controls/osb_down.png


BIN
3d/platformer/player/controls/osb_down.webp


+ 4 - 4
3d/platformer/player/controls/osb_down.png.import → 3d/platformer/player/controls/osb_down.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://68sox6egj4j7"
-path="res://.godot/imported/osb_down.png-3bcabfc1fcfaeeccc61e2e829d6554c4.ctex"
+path="res://.godot/imported/osb_down.webp-9c1833813ef4174c85dd69f362177c63.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://player/controls/osb_down.png"
-dest_files=["res://.godot/imported/osb_down.png-3bcabfc1fcfaeeccc61e2e829d6554c4.ctex"]
+source_file="res://player/controls/osb_down.webp"
+dest_files=["res://.godot/imported/osb_down.webp-9c1833813ef4174c85dd69f362177c63.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/player/controls/osb_fire.png


BIN
3d/platformer/player/controls/osb_fire.webp


+ 4 - 4
3d/platformer/player/controls/osb_fire.png.import → 3d/platformer/player/controls/osb_fire.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://bdrdyihccbisd"
-path="res://.godot/imported/osb_fire.png-2e93a3da4bfeb57477fca7905c0173a4.ctex"
+path="res://.godot/imported/osb_fire.webp-154e2653c82838a02f0bae91ac04156e.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://player/controls/osb_fire.png"
-dest_files=["res://.godot/imported/osb_fire.png-2e93a3da4bfeb57477fca7905c0173a4.ctex"]
+source_file="res://player/controls/osb_fire.webp"
+dest_files=["res://.godot/imported/osb_fire.webp-154e2653c82838a02f0bae91ac04156e.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/player/controls/osb_jump.png


BIN
3d/platformer/player/controls/osb_jump.webp


+ 4 - 4
3d/platformer/player/controls/osb_jump.png.import → 3d/platformer/player/controls/osb_jump.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://wbqqcwj1d5u0"
-path="res://.godot/imported/osb_jump.png-aa75300abbd0a7d9e9bc4796371c64a3.ctex"
+path="res://.godot/imported/osb_jump.webp-d288fb386413bd39611fb89cfad2120e.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://player/controls/osb_jump.png"
-dest_files=["res://.godot/imported/osb_jump.png-aa75300abbd0a7d9e9bc4796371c64a3.ctex"]
+source_file="res://player/controls/osb_jump.webp"
+dest_files=["res://.godot/imported/osb_jump.webp-d288fb386413bd39611fb89cfad2120e.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/player/controls/osb_left.png


BIN
3d/platformer/player/controls/osb_left.webp


+ 4 - 4
3d/platformer/player/controls/osb_left.png.import → 3d/platformer/player/controls/osb_left.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://r6qxvqi0unib"
-path="res://.godot/imported/osb_left.png-10e92e56ebe36a5205968909dc4b286b.ctex"
+path="res://.godot/imported/osb_left.webp-2e7a675a7e14843285bf9372377266c3.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://player/controls/osb_left.png"
-dest_files=["res://.godot/imported/osb_left.png-10e92e56ebe36a5205968909dc4b286b.ctex"]
+source_file="res://player/controls/osb_left.webp"
+dest_files=["res://.godot/imported/osb_left.webp-2e7a675a7e14843285bf9372377266c3.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/player/controls/osb_right.png


BIN
3d/platformer/player/controls/osb_right.webp


+ 4 - 4
3d/platformer/player/controls/osb_right.png.import → 3d/platformer/player/controls/osb_right.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://bw76q621n8fie"
-path="res://.godot/imported/osb_right.png-fb8adc0d65f2da35441a371b0865044c.ctex"
+path="res://.godot/imported/osb_right.webp-a6039f7d31991d4f425ea07894becb70.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://player/controls/osb_right.png"
-dest_files=["res://.godot/imported/osb_right.png-fb8adc0d65f2da35441a371b0865044c.ctex"]
+source_file="res://player/controls/osb_right.webp"
+dest_files=["res://.godot/imported/osb_right.webp-a6039f7d31991d4f425ea07894becb70.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/player/controls/osb_up.png


BIN
3d/platformer/player/controls/osb_up.webp


+ 4 - 4
3d/platformer/player/controls/osb_up.png.import → 3d/platformer/player/controls/osb_up.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://kujhqacj3v72"
-path="res://.godot/imported/osb_up.png-03a826da4884734d6f66c813539bfce8.ctex"
+path="res://.godot/imported/osb_up.webp-e391cb650b6ccc198c31c0a125801d15.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://player/controls/osb_up.png"
-dest_files=["res://.godot/imported/osb_up.png-03a826da4884734d6f66c813539bfce8.ctex"]
+source_file="res://player/controls/osb_up.webp"
+dest_files=["res://.godot/imported/osb_up.webp-e391cb650b6ccc198c31c0a125801d15.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

+ 5 - 5
3d/platformer/player/player.gd

@@ -28,7 +28,7 @@ var shoot_blend := 0.0
 var coins := 0
 
 @onready var initial_position := position
-@onready var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") * \
+@onready var gravity: Vector3 = ProjectSettings.get_setting("physics/3d/default_gravity") * \
 		ProjectSettings.get_setting("physics/3d/default_gravity_vector")
 
 @onready var _camera := $Target/Camera3D as Camera3D
@@ -171,9 +171,9 @@ func _physics_process(delta):
 		# How much the player should be running (as opposed to walking). 0.0 = fully walking, 1.0 = fully running.
 		_animation_tree[&"parameters/speed/blend_amount"] = minf(1.0, horizontal_speed / (MAX_SPEED * 0.5))
 
-	_animation_tree[&"parameters/state/current"] = anim
-	_animation_tree[&"parameters/air_dir/blend_amount"] = clamp(-velocity.y / 4 + 0.5, 0, 1)
-	_animation_tree[&"parameters/gun/blend_amount"] = min(shoot_blend, 1.0)
+	_animation_tree[&"parameters/state/blend_amount"] = anim
+	_animation_tree[&"parameters/air_dir/blend_amount"] = clampf(-velocity.y / 4 + 0.5, 0, 1)
+	_animation_tree[&"parameters/gun/blend_amount"] = minf(shoot_blend, 1.0)
 
 
 func adjust_facing(facing: Vector3, target: Vector3, step: float, adjust_rate: float, \
@@ -186,7 +186,7 @@ func adjust_facing(facing: Vector3, target: Vector3, step: float, adjust_rate: f
 
 	var ang := atan2(y,x)
 
-	if abs(ang) < 0.001:
+	if absf(ang) < 0.001:
 		return facing
 
 	var s := signf(ang)

+ 2 - 0
3d/platformer/player/player.glb.import

@@ -26,6 +26,7 @@ skins/use_named_skins=true
 animation/import=true
 animation/fps=30
 animation/trimming=false
+animation/remove_immutable_tracks=true
 import_script/path=""
 _subresources={
 "animations": {
@@ -7237,3 +7238,4 @@ _subresources={
 }
 }
 }
+gltf/embedded_image_handling=1

+ 10 - 15
3d/platformer/player/player.tscn

@@ -3,11 +3,11 @@
 [ext_resource type="Script" path="res://player/player.gd" id="1"]
 [ext_resource type="Script" path="res://player/follow_camera.gd" id="2"]
 [ext_resource type="PackedScene" uid="uid://yd1e7ai2k5cr" path="res://player/player.glb" id="3_uccbe"]
-[ext_resource type="Texture2D" uid="uid://kujhqacj3v72" path="res://player/controls/osb_up.png" id="4_lmv6w"]
-[ext_resource type="Texture2D" uid="uid://68sox6egj4j7" path="res://player/controls/osb_down.png" id="5_4oxdy"]
-[ext_resource type="Texture2D" uid="uid://r6qxvqi0unib" path="res://player/controls/osb_left.png" id="6_k2dm4"]
+[ext_resource type="Texture2D" uid="uid://kujhqacj3v72" path="res://player/controls/osb_up.webp" id="4_lmv6w"]
+[ext_resource type="Texture2D" uid="uid://68sox6egj4j7" path="res://player/controls/osb_down.webp" id="5_4oxdy"]
+[ext_resource type="Texture2D" uid="uid://r6qxvqi0unib" path="res://player/controls/osb_left.webp" id="6_k2dm4"]
 [ext_resource type="AudioStream" uid="uid://cdx3i7hr2acow" path="res://player/sound_shoot.wav" id="7"]
-[ext_resource type="Texture2D" uid="uid://bw76q621n8fie" path="res://player/controls/osb_right.png" id="7_yth2f"]
+[ext_resource type="Texture2D" uid="uid://bw76q621n8fie" path="res://player/controls/osb_right.webp" id="7_yth2f"]
 [ext_resource type="AudioStream" uid="uid://bplqk77bffdxr" path="res://player/sound_jump.wav" id="8"]
 
 [sub_resource type="CapsuleShape3D" id="1"]
@@ -44,15 +44,10 @@ filters = ["Skeleton/Skeleton3D:MASTER", "Skeleton/Skeleton3D:chest", "Skeleton/
 
 [sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_lxtyk"]
 
-[sub_resource type="AnimationNodeTransition" id="21"]
-enabled_inputs = 2
-input_0/name = "on floor"
-input_0/auto_advance = false
-input_1/name = "in air"
-input_1/auto_advance = false
+[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_bivc5"]
 
 [sub_resource type="AnimationNodeBlendTree" id="23"]
-graph_offset = Vector2(-1070.57, -570.033)
+graph_offset = Vector2(-221.364, -194.029)
 nodes/Animation/node = SubResource("17")
 nodes/Animation/position = Vector2(-260, -400)
 "nodes/Animation 2/node" = SubResource("13")
@@ -76,8 +71,8 @@ nodes/scale/node = SubResource("20")
 nodes/scale/position = Vector2(260, -120)
 nodes/speed/node = SubResource("AnimationNodeBlend2_lxtyk")
 nodes/speed/position = Vector2(-80, -200)
-nodes/state/node = SubResource("21")
-nodes/state/position = Vector2(440, 0)
+nodes/state/node = SubResource("AnimationNodeBlend2_bivc5")
+nodes/state/position = Vector2(460, 10)
 node_connections = [&"output", 0, &"gun", &"air_dir", 0, &"Animation 3", &"air_dir", 1, &"Animation 4", &"gun", 0, &"state", &"gun", 1, &"Animation 5", &"run", 0, &"Animation", &"run", 1, &"speed", &"scale", 0, &"run", &"speed", 0, &"Animation 6", &"speed", 1, &"Animation 2", &"state", 0, &"scale", &"state", 1, &"air_dir"]
 
 [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_basvh"]
@@ -182,7 +177,7 @@ parameters/gun/blend_amount = 0.0
 parameters/run/blend_amount = 0.0
 parameters/scale/scale = 1.5
 parameters/speed/blend_amount = 0
-parameters/state/current = 0
+parameters/state/blend_amount = 0.0
 
 [node name="Forward" type="TouchScreenButton" parent="."]
 visible = false
@@ -228,7 +223,7 @@ stream = SubResource("AudioStreamRandomizer_axa7i")
 volume_db = -6.0
 
 [node name="BlobShadow" type="Decal" parent="."]
-extents = Vector3(0.8, 6, 0.8)
+size = Vector3(1.6, 12, 1.6)
 texture_albedo = SubResource("GradientTexture2D_kvc1x")
 upper_fade = 3.99999
 lower_fade = 1.0

+ 25 - 41
3d/platformer/project.godot

@@ -8,22 +8,6 @@
 
 config_version=5
 
-_global_script_classes=[{
-"base": "RigidBody3D",
-"class": &"Bullet",
-"language": &"GDScript",
-"path": "res://player/bullet/bullet.gd"
-}, {
-"base": "CharacterBody3D",
-"class": &"Player",
-"language": &"GDScript",
-"path": "res://player/player.gd"
-}]
-_global_script_class_icons={
-"Bullet": "",
-"Player": ""
-}
-
 [application]
 
 config/name="Platformer 3D"
@@ -31,112 +15,112 @@ config/description="Platformer 3D demo using a CharacterBody3D.
 It uses similar code to the 2D platformer, but implemented in 3D."
 run/main_scene="res://game.tscn"
 config/features=PackedStringArray("4.0")
-config/icon="res://icon.png"
+config/icon="res://icon.webp"
 
 [input]
 
 ui_accept={
 "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":16777221,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, 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":16777222,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, 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":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":16777221,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
+, 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":16777222,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
+, 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":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 ui_select={
 "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":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 ui_cancel={
 "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":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":16777217,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 ui_focus_next={
 "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":16777218,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":16777218,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 ]
 }
 ui_focus_prev={
 "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":0,"unicode":0,"echo":false,"script":null)
+"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":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 ]
 }
 ui_left={
 "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":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 ui_right={
 "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":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 ui_up={
 "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":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 ui_down={
 "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":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":16777234,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 ui_page_up={
 "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":16777235,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":16777235,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 ]
 }
 ui_page_down={
 "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":16777236,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":16777236,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 ]
 }
 move_forward={
 "deadzone": 0.2,
-"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":87,"unicode":0,"echo":false,"script":null)
-, 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":4194320,"unicode":0,"echo":false,"script":null)
+"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":87,"key_label":0,"unicode":0,"echo":false,"script":null)
+, 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":4194320,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null)
 ]
 }
 move_back={
 "deadzone": 0.2,
-"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":83,"unicode":0,"echo":false,"script":null)
-, 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":4194322,"unicode":0,"echo":false,"script":null)
+"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":83,"key_label":0,"unicode":0,"echo":false,"script":null)
+, 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":4194322,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
 ]
 }
 move_left={
 "deadzone": 0.2,
-"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":65,"unicode":0,"echo":false,"script":null)
-, 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":4194319,"unicode":0,"echo":false,"script":null)
+"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":65,"key_label":0,"unicode":0,"echo":false,"script":null)
+, 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":4194319,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
 ]
 }
 move_right={
 "deadzone": 0.2,
-"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":68,"unicode":0,"echo":false,"script":null)
-, 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":4194321,"unicode":0,"echo":false,"script":null)
+"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":68,"key_label":0,"unicode":0,"echo":false,"script":null)
+, 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":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
 ]
 }
 jump={
 "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":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+"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":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 shoot={
 "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,"unicode":0,"echo":false,"script":null)
+"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)
 , Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null)
@@ -145,7 +129,7 @@ shoot={
 }
 reset_position={
 "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":82,"unicode":0,"echo":false,"script":null)
+"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":82,"key_label":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null)
 ]
 }

BIN
3d/platformer/stage/grid_map.scn


BIN
3d/platformer/stage/meshes/previews/ceiling.png


BIN
3d/platformer/stage/meshes/previews/ceiling.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/ceiling.png.import → 3d/platformer/stage/meshes/previews/ceiling.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://de4ium0qlom16"
-path="res://.godot/imported/ceiling.png-b411c4fb2dfe7b76f76ab05d80894e46.ctex"
+path="res://.godot/imported/ceiling.webp-6c8ec1a6977577fc1d8308a5cb512679.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/ceiling.png"
-dest_files=["res://.godot/imported/ceiling.png-b411c4fb2dfe7b76f76ab05d80894e46.ctex"]
+source_file="res://stage/meshes/previews/ceiling.webp"
+dest_files=["res://.godot/imported/ceiling.webp-6c8ec1a6977577fc1d8308a5cb512679.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/ceiling_corner.png


BIN
3d/platformer/stage/meshes/previews/ceiling_corner.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/ceiling_corner.png.import → 3d/platformer/stage/meshes/previews/ceiling_corner.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://d15fcw2varcjl"
-path="res://.godot/imported/ceiling_corner.png-498ca340a8db3cbc6c34dcad400b367a.ctex"
+path="res://.godot/imported/ceiling_corner.webp-ca7ec745639aecae126fd4a7c0115ea1.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/ceiling_corner.png"
-dest_files=["res://.godot/imported/ceiling_corner.png-498ca340a8db3cbc6c34dcad400b367a.ctex"]
+source_file="res://stage/meshes/previews/ceiling_corner.webp"
+dest_files=["res://.godot/imported/ceiling_corner.webp-ca7ec745639aecae126fd4a7c0115ea1.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/ceiling_wall.png


BIN
3d/platformer/stage/meshes/previews/ceiling_wall.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/ceiling_wall.png.import → 3d/platformer/stage/meshes/previews/ceiling_wall.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://chf3t80xvxnjs"
-path="res://.godot/imported/ceiling_wall.png-8f89fa4a64d434133e380de70c43c51b.ctex"
+path="res://.godot/imported/ceiling_wall.webp-a2509388480a65851c94c9802b54a65b.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/ceiling_wall.png"
-dest_files=["res://.godot/imported/ceiling_wall.png-8f89fa4a64d434133e380de70c43c51b.ctex"]
+source_file="res://stage/meshes/previews/ceiling_wall.webp"
+dest_files=["res://.godot/imported/ceiling_wall.webp-a2509388480a65851c94c9802b54a65b.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/corner.png


BIN
3d/platformer/stage/meshes/previews/corner.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/corner.png.import → 3d/platformer/stage/meshes/previews/corner.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://clum5gu8hk1ue"
-path="res://.godot/imported/corner.png-43951091ea7eae66be65ec5c105969dc.ctex"
+path="res://.godot/imported/corner.webp-19d67f2c1aa9fc8d73bfbbf23048dfc7.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/corner.png"
-dest_files=["res://.godot/imported/corner.png-43951091ea7eae66be65ec5c105969dc.ctex"]
+source_file="res://stage/meshes/previews/corner.webp"
+dest_files=["res://.godot/imported/corner.webp-19d67f2c1aa9fc8d73bfbbf23048dfc7.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/corner_fix.png


BIN
3d/platformer/stage/meshes/previews/corner_fix.webp


+ 5 - 6
3d/platformer/stage/meshes/previews/corner_fix.png.import → 3d/platformer/stage/meshes/previews/corner_fix.webp.import

@@ -3,24 +3,23 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://ckwv7e3lpmorb"
-path.s3tc="res://.godot/imported/corner_fix.png-9f4da4381cb6d362902dc512c1a5e9e1.s3tc.ctex"
-path.etc2="res://.godot/imported/corner_fix.png-9f4da4381cb6d362902dc512c1a5e9e1.etc2.ctex"
+path.s3tc="res://.godot/imported/corner_fix.webp-bc947c0527b474b1e52d39a93f6cd55a.s3tc.ctex"
 metadata={
-"imported_formats": ["s3tc", "etc2"],
+"imported_formats": ["s3tc_bptc"],
 "vram_texture": true
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/corner_fix.png"
-dest_files=["res://.godot/imported/corner_fix.png-9f4da4381cb6d362902dc512c1a5e9e1.s3tc.ctex", "res://.godot/imported/corner_fix.png-9f4da4381cb6d362902dc512c1a5e9e1.etc2.ctex"]
+source_file="res://stage/meshes/previews/corner_fix.webp"
+dest_files=["res://.godot/imported/corner_fix.webp-bc947c0527b474b1e52d39a93f6cd55a.s3tc.ctex"]
 
 [params]
 
 compress/mode=2
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=true

BIN
3d/platformer/stage/meshes/previews/corner_fixr.png


BIN
3d/platformer/stage/meshes/previews/corner_fixr.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/corner_fixr.png.import → 3d/platformer/stage/meshes/previews/corner_fixr.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://vb3ik3vup68g"
-path="res://.godot/imported/corner_fixr.png-b8d2d6e26f2e0653e892e0105c8411e4.ctex"
+path="res://.godot/imported/corner_fixr.webp-f8a3b48c3de3657d3feae52cbd1b0c3f.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/corner_fixr.png"
-dest_files=["res://.godot/imported/corner_fixr.png-b8d2d6e26f2e0653e892e0105c8411e4.ctex"]
+source_file="res://stage/meshes/previews/corner_fixr.webp"
+dest_files=["res://.godot/imported/corner_fixr.webp-f8a3b48c3de3657d3feae52cbd1b0c3f.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/corner_floor.png


BIN
3d/platformer/stage/meshes/previews/corner_floor.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/corner_floor.png.import → 3d/platformer/stage/meshes/previews/corner_floor.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://crkwyiw1srl0s"
-path="res://.godot/imported/corner_floor.png-3ba191011902488f5711a0aa85cc5a9e.ctex"
+path="res://.godot/imported/corner_floor.webp-4f169e0657e8e863aa27176076bffde9.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/corner_floor.png"
-dest_files=["res://.godot/imported/corner_floor.png-3ba191011902488f5711a0aa85cc5a9e.ctex"]
+source_file="res://stage/meshes/previews/corner_floor.webp"
+dest_files=["res://.godot/imported/corner_floor.webp-4f169e0657e8e863aa27176076bffde9.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/floor.png


BIN
3d/platformer/stage/meshes/previews/floor.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/floor.png.import → 3d/platformer/stage/meshes/previews/floor.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://ceowqwjqgr5hh"
-path="res://.godot/imported/floor.png-11d56f762516aee967ad58e43d515a3b.ctex"
+path="res://.godot/imported/floor.webp-b85a23af779738e25dcf19a98af0e9bf.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/floor.png"
-dest_files=["res://.godot/imported/floor.png-11d56f762516aee967ad58e43d515a3b.ctex"]
+source_file="res://stage/meshes/previews/floor.webp"
+dest_files=["res://.godot/imported/floor.webp-b85a23af779738e25dcf19a98af0e9bf.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/floor_corner.png


BIN
3d/platformer/stage/meshes/previews/floor_corner.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/floor_corner.png.import → 3d/platformer/stage/meshes/previews/floor_corner.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://bbq8ew5nu5euk"
-path="res://.godot/imported/floor_corner.png-7a6e00d34d08be9c35fc18bb965b3a27.ctex"
+path="res://.godot/imported/floor_corner.webp-52ec61e351f511540f9bc7e071e1c0ea.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/floor_corner.png"
-dest_files=["res://.godot/imported/floor_corner.png-7a6e00d34d08be9c35fc18bb965b3a27.ctex"]
+source_file="res://stage/meshes/previews/floor_corner.webp"
+dest_files=["res://.godot/imported/floor_corner.webp-52ec61e351f511540f9bc7e071e1c0ea.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/floor_edge.png


BIN
3d/platformer/stage/meshes/previews/floor_edge.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/floor_edge.png.import → 3d/platformer/stage/meshes/previews/floor_edge.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://bn8u7u037b45d"
-path="res://.godot/imported/floor_edge.png-ba7d7eb4bea47b68d023d46f34068ce1.ctex"
+path="res://.godot/imported/floor_edge.webp-2b1d311f588181594223ff2499e049c3.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/floor_edge.png"
-dest_files=["res://.godot/imported/floor_edge.png-ba7d7eb4bea47b68d023d46f34068ce1.ctex"]
+source_file="res://stage/meshes/previews/floor_edge.webp"
+dest_files=["res://.godot/imported/floor_edge.webp-2b1d311f588181594223ff2499e049c3.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/ramp.png


BIN
3d/platformer/stage/meshes/previews/ramp.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/ramp.png.import → 3d/platformer/stage/meshes/previews/ramp.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://co11nalhejjuy"
-path="res://.godot/imported/ramp.png-422b477052e622f3b9d472f76e3ae427.ctex"
+path="res://.godot/imported/ramp.webp-c6b29b1b5a12f02e6af194daf6eaf17c.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/ramp.png"
-dest_files=["res://.godot/imported/ramp.png-422b477052e622f3b9d472f76e3ae427.ctex"]
+source_file="res://stage/meshes/previews/ramp.webp"
+dest_files=["res://.godot/imported/ramp.webp-c6b29b1b5a12f02e6af194daf6eaf17c.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/tree_top.png


BIN
3d/platformer/stage/meshes/previews/tree_top.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/tree_top.png.import → 3d/platformer/stage/meshes/previews/tree_top.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://c81vs6shrgqy7"
-path="res://.godot/imported/tree_top.png-36d00a867a49842f716790c921fc893f.ctex"
+path="res://.godot/imported/tree_top.webp-a7f7890527f3bc4a073c376ff409d72f.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/tree_top.png"
-dest_files=["res://.godot/imported/tree_top.png-36d00a867a49842f716790c921fc893f.ctex"]
+source_file="res://stage/meshes/previews/tree_top.webp"
+dest_files=["res://.godot/imported/tree_top.webp-a7f7890527f3bc4a073c376ff409d72f.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/trunk.png


BIN
3d/platformer/stage/meshes/previews/trunk.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/trunk.png.import → 3d/platformer/stage/meshes/previews/trunk.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://ciqvgxs8iyuk3"
-path="res://.godot/imported/trunk.png-59c0288facdeba4f059e9fa884cd4f7f.ctex"
+path="res://.godot/imported/trunk.webp-92bcc2a7715bb8a3efda00c90b505c03.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/trunk.png"
-dest_files=["res://.godot/imported/trunk.png-59c0288facdeba4f059e9fa884cd4f7f.ctex"]
+source_file="res://stage/meshes/previews/trunk.webp"
+dest_files=["res://.godot/imported/trunk.webp-92bcc2a7715bb8a3efda00c90b505c03.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/trunk_deco.png


BIN
3d/platformer/stage/meshes/previews/trunk_deco.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/trunk_deco.png.import → 3d/platformer/stage/meshes/previews/trunk_deco.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://cmcov60r5vwcd"
-path="res://.godot/imported/trunk_deco.png-fa2ea5fc9d28f9109880d771f25fe42b.ctex"
+path="res://.godot/imported/trunk_deco.webp-46f5c0f9715c8cdf44667c1aed396bea.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/trunk_deco.png"
-dest_files=["res://.godot/imported/trunk_deco.png-fa2ea5fc9d28f9109880d771f25fe42b.ctex"]
+source_file="res://stage/meshes/previews/trunk_deco.webp"
+dest_files=["res://.godot/imported/trunk_deco.webp-46f5c0f9715c8cdf44667c1aed396bea.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/trunk_floor.png


BIN
3d/platformer/stage/meshes/previews/trunk_floor.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/trunk_floor.png.import → 3d/platformer/stage/meshes/previews/trunk_floor.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://7xrwpol80qv2"
-path="res://.godot/imported/trunk_floor.png-64a298b7b901b8bba3e4113d256eff85.ctex"
+path="res://.godot/imported/trunk_floor.webp-05bdbcaca4470d947e24ffebe03d1074.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/trunk_floor.png"
-dest_files=["res://.godot/imported/trunk_floor.png-64a298b7b901b8bba3e4113d256eff85.ctex"]
+source_file="res://stage/meshes/previews/trunk_floor.webp"
+dest_files=["res://.godot/imported/trunk_floor.webp-05bdbcaca4470d947e24ffebe03d1074.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/wall.png


BIN
3d/platformer/stage/meshes/previews/wall.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/wall.png.import → 3d/platformer/stage/meshes/previews/wall.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://b02dqx1o1s7c6"
-path="res://.godot/imported/wall.png-b41a70df849464e642dcebc822021522.ctex"
+path="res://.godot/imported/wall.webp-ec4abcc927508e3e016ab06abcc66c65.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/wall.png"
-dest_files=["res://.godot/imported/wall.png-b41a70df849464e642dcebc822021522.ctex"]
+source_file="res://stage/meshes/previews/wall.webp"
+dest_files=["res://.godot/imported/wall.webp-ec4abcc927508e3e016ab06abcc66c65.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/wall_floor.png


BIN
3d/platformer/stage/meshes/previews/wall_floor.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/wall_floor.png.import → 3d/platformer/stage/meshes/previews/wall_floor.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://dp8hjmj1g0g6j"
-path="res://.godot/imported/wall_floor.png-e01c2f64781bb864142c7613f73b4369.ctex"
+path="res://.godot/imported/wall_floor.webp-ae54ecb1aedc8c55691df7d5521534fe.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/wall_floor.png"
-dest_files=["res://.godot/imported/wall_floor.png-e01c2f64781bb864142c7613f73b4369.ctex"]
+source_file="res://stage/meshes/previews/wall_floor.webp"
+dest_files=["res://.godot/imported/wall_floor.webp-ae54ecb1aedc8c55691df7d5521534fe.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/meshes/previews/wall_var.png


BIN
3d/platformer/stage/meshes/previews/wall_var.webp


+ 4 - 4
3d/platformer/stage/meshes/previews/wall_var.png.import → 3d/platformer/stage/meshes/previews/wall_var.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://b3fnohn1axu6d"
-path="res://.godot/imported/wall_var.png-34ec1ed3fee45358a9c45a60591fc954.ctex"
+path="res://.godot/imported/wall_var.webp-b06245055c14de7214238d1177e7a8c3.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/meshes/previews/wall_var.png"
-dest_files=["res://.godot/imported/wall_var.png-34ec1ed3fee45358a9c45a60591fc954.ctex"]
+source_file="res://stage/meshes/previews/wall_var.webp"
+dest_files=["res://.godot/imported/wall_var.webp-b06245055c14de7214238d1177e7a8c3.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=false

BIN
3d/platformer/stage/panorama.png


BIN
3d/platformer/stage/panorama.webp


+ 4 - 4
3d/platformer/stage/panorama.png.import → 3d/platformer/stage/panorama.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://qdur4kpvvtdg"
-path="res://.godot/imported/panorama.png-831ab5eba634fd570693d2002d1da17a.ctex"
+path="res://.godot/imported/panorama.webp-c655559bb5045314b4c9859b18ccd417.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/panorama.png"
-dest_files=["res://.godot/imported/panorama.png-831ab5eba634fd570693d2002d1da17a.ctex"]
+source_file="res://stage/panorama.webp"
+dest_files=["res://.godot/imported/panorama.webp-c655559bb5045314b4c9859b18ccd417.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.85
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=true

+ 7 - 7
3d/platformer/stage/stage.tscn

@@ -28,7 +28,7 @@ directional_shadow_max_distance = 55.0
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.28208, 1, -1)
 intensity = 0.5
 max_distance = 60.0
-extents = Vector3(17.9758, 10, 26.2909)
+size = Vector3(35.9516, 20, 52.5818)
 origin_offset = Vector3(0, -1.5, 0)
 box_projection = true
 cull_mask = 1048573
@@ -36,7 +36,7 @@ cull_mask = 1048573
 [node name="Reflection2" type="ReflectionProbe" parent="."]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 0, 0)
 intensity = 0.5
-extents = Vector3(8, 2.5, 3)
+size = Vector3(16, 5, 6)
 origin_offset = Vector3(0, -0.22168, 0)
 box_projection = true
 cull_mask = 1048573
@@ -45,7 +45,7 @@ cull_mask = 1048573
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 0, 4)
 intensity = 0.5
 max_distance = 18.7
-extents = Vector3(3, 3, 6)
+size = Vector3(6, 6, 12)
 origin_offset = Vector3(0, -0.22168, 0)
 box_projection = true
 cull_mask = 1048573
@@ -54,7 +54,7 @@ cull_mask = 1048573
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.0391, 6.19519, 1.14534)
 intensity = 0.5
 max_distance = 18.7
-extents = Vector3(4, 3, 7)
+size = Vector3(8, 6, 14)
 origin_offset = Vector3(0, -0.22168, 0)
 box_projection = true
 cull_mask = 1048573
@@ -63,7 +63,7 @@ cull_mask = 1048573
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21, 1, 15)
 intensity = 0.5
 max_distance = 60.0
-extents = Vector3(12, 10, 8)
+size = Vector3(24, 20, 16)
 origin_offset = Vector3(-4.6, -1.4, 0)
 box_projection = true
 cull_mask = 1048573
@@ -72,7 +72,7 @@ cull_mask = 1048573
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 47.5486, 1, 8)
 intensity = 0.5
 max_distance = 60.0
-extents = Vector3(18.4972, 10, 22.393)
+size = Vector3(36.9944, 20, 44.786)
 origin_offset = Vector3(0, -6.5, 0)
 cull_mask = 1048573
 
@@ -80,7 +80,7 @@ cull_mask = 1048573
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.0962, 0.999998, -15.4268)
 intensity = 0.5
 max_distance = 60.0
-extents = Vector3(12, 10, 12)
+size = Vector3(24, 20, 24)
 origin_offset = Vector3(0, -6.5, 0)
 cull_mask = 1048573
 

+ 2 - 2
3d/platformer/stage/tile_material.tres

@@ -1,7 +1,7 @@
 [gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://7qqlq0kheobb"]
 
-[ext_resource type="Texture2D" uid="uid://btjl445bkvxba" path="res://stage/tiles_albedo.png" id="1_jnowm"]
-[ext_resource type="Texture2D" uid="uid://cdsrms3a0xhop" path="res://stage/tiles_rough.png" id="2_fh1ra"]
+[ext_resource type="Texture2D" uid="uid://btjl445bkvxba" path="res://stage/tiles_albedo.webp" id="1_jnowm"]
+[ext_resource type="Texture2D" uid="uid://cdsrms3a0xhop" path="res://stage/tiles_rough.webp" id="2_fh1ra"]
 
 [resource]
 albedo_texture = ExtResource("1_jnowm")

+ 0 - 294
3d/platformer/stage/tiles.glb.import

@@ -1,294 +0,0 @@
-[remap]
-
-importer="scene"
-importer_version=1
-type="PackedScene"
-uid="uid://ct01toivcbwm3"
-path="res://.godot/imported/tiles.glb-9386acdbbb0c0b1796a43961dfdf155d.scn"
-
-[deps]
-
-source_file="res://stage/tiles.glb"
-dest_files=["res://.godot/imported/tiles.glb-9386acdbbb0c0b1796a43961dfdf155d.scn"]
-
-[params]
-
-nodes/root_type="Node3D"
-nodes/root_name="Tiles"
-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
-skins/use_named_skins=true
-animation/import=false
-animation/fps=30
-import_script/path="res://stage/tiles_importer.gd"
-_subresources={
-"materials": {
-"tile_material": {
-"use_external/enabled": true,
-"use_external/path": "res://stage/tile_material.tres"
-}
-},
-"meshes": {
-"tiles_ceiling": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/ceiling.res"
-},
-"tiles_ceiling_corner": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/ceiling_corner.res"
-},
-"tiles_ceiling_wall": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/ceiling_wall.res"
-},
-"tiles_corner": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/corner.res"
-},
-"tiles_corner_fix": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/corner_fix.res"
-},
-"tiles_corner_fixr": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/corner_fixr.res"
-},
-"tiles_corner_floor": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/corner_floor.res"
-},
-"tiles_floor": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/floor.res"
-},
-"tiles_floor_corner": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/floor_corner.res"
-},
-"tiles_floor_edge": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/floor_edge.res"
-},
-"tiles_ramp": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/ramp.res"
-},
-"tiles_tree_top": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/tree_top.res"
-},
-"tiles_trunk": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/trunk.res"
-},
-"tiles_trunk_deco": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/trunk_deco.res"
-},
-"tiles_trunk_floor": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/trunk_floor.res"
-},
-"tiles_wall": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/wall.res"
-},
-"tiles_wall_floor": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/wall_floor.res"
-},
-"tiles_wall_var": {
-"generate/lightmap_uv": 0,
-"generate/lods": 0,
-"generate/shadow_meshes": 0,
-"lods/normal_merge_angle": 60.0,
-"lods/normal_split_angle": 25.0,
-"save_to_file/enabled": true,
-"save_to_file/make_streamable": "",
-"save_to_file/path": "res://stage/meshes/wall_var.res"
-}
-},
-"nodes": {
-"PATH:Ceiling": {
-"generate/physics": true,
-"physics/shape_type": 3
-},
-"PATH:CeilingCorner": {
-"generate/physics": true,
-"physics/shape_type": 3
-},
-"PATH:CeilingWall": {
-"generate/physics": true,
-"physics/shape_type": 3
-},
-"PATH:Corner": {
-"generate/physics": true,
-"physics/shape_type": 1
-},
-"PATH:CornerFix": {
-"generate/physics": true,
-"physics/shape_type": 1
-},
-"PATH:CornerFixr": {
-"generate/physics": true,
-"physics/shape_type": 1
-},
-"PATH:CornerFloor": {
-"generate/physics": true,
-"physics/shape_type": 2
-},
-"PATH:Floor": {
-"generate/physics": true,
-"physics/shape_type": 3,
-"primitive/position": Vector3(0, -2, 0)
-},
-"PATH:FloorCorner": {
-"generate/physics": true,
-"physics/shape_type": 1
-},
-"PATH:FloorEdge": {
-"generate/physics": true,
-"physics/shape_type": 1
-},
-"PATH:Ramp": {
-"generate/physics": true,
-"physics/shape_type": 2
-},
-"PATH:TreeTop": {
-"generate/physics": true,
-"physics/shape_type": 3
-},
-"PATH:Trunk": {
-"generate/physics": true,
-"physics/shape_type": 3,
-"primitive/size": Vector3(0.6, 2, 0.6)
-},
-"PATH:TrunkDeco": {
-"generate/physics": true,
-"physics/shape_type": 2
-},
-"PATH:TrunkFloor": {
-"generate/physics": true,
-"physics/shape_type": 2
-},
-"PATH:Wall": {
-"generate/physics": true,
-"physics/shape_type": 3
-},
-"PATH:WallFloor": {
-"generate/physics": true,
-"physics/shape_type": 3
-},
-"PATH:WallVar": {
-"generate/physics": true,
-"physics/shape_type": 3
-}
-}
-}

+ 54 - 36
3d/platformer/stage/tiles.tres

@@ -2,47 +2,47 @@
 
 [ext_resource type="ArrayMesh" uid="uid://bw6urk4wj804f" path="res://stage/meshes/corner_fixr.res" id="1_w63i8"]
 [ext_resource type="ArrayMesh" uid="uid://dhfu1kjgcy205" path="res://stage/meshes/corner_fix.res" id="2_brdag"]
-[ext_resource type="Texture2D" uid="uid://vb3ik3vup68g" path="res://stage/meshes/previews/corner_fixr.png" id="2_jv5mx"]
+[ext_resource type="Texture2D" uid="uid://vb3ik3vup68g" path="res://stage/meshes/previews/corner_fixr.webp" id="2_jv5mx"]
 [ext_resource type="Shape3D" uid="uid://cnie2sp75ai87" path="res://stage/collision/box.tres" id="3_4akc8"]
 [ext_resource type="ArrayMesh" uid="uid://b3gj0m80kbvao" path="res://stage/meshes/wall_var.res" id="3_xh2x8"]
-[ext_resource type="Texture2D" uid="uid://ckwv7e3lpmorb" path="res://stage/meshes/previews/corner_fix.png" id="4_dt8g2"]
+[ext_resource type="Texture2D" uid="uid://ckwv7e3lpmorb" path="res://stage/meshes/previews/corner_fix.webp" id="4_dt8g2"]
 [ext_resource type="ArrayMesh" uid="uid://lolb1wdms5x" path="res://stage/meshes/wall_floor.res" id="4_dufyg"]
-[ext_resource type="Texture2D" uid="uid://de4ium0qlom16" path="res://stage/meshes/previews/ceiling.png" id="5_k267x"]
+[ext_resource type="Texture2D" uid="uid://de4ium0qlom16" path="res://stage/meshes/previews/ceiling.webp" id="5_k267x"]
 [ext_resource type="ArrayMesh" uid="uid://bwbx464v32kcx" path="res://stage/meshes/corner_floor.res" id="5_p7gd7"]
-[ext_resource type="Texture2D" uid="uid://b3fnohn1axu6d" path="res://stage/meshes/previews/wall_var.png" id="6_g6lmp"]
+[ext_resource type="Texture2D" uid="uid://b3fnohn1axu6d" path="res://stage/meshes/previews/wall_var.webp" id="6_g6lmp"]
 [ext_resource type="ArrayMesh" uid="uid://dcwtx3jvs02lx" path="res://stage/meshes/floor_corner.res" id="6_omua3"]
 [ext_resource type="ArrayMesh" uid="uid://b2k7um4dg8yfv" path="res://stage/meshes/floor_edge.res" id="7_ek6i2"]
-[ext_resource type="Texture2D" uid="uid://dp8hjmj1g0g6j" path="res://stage/meshes/previews/wall_floor.png" id="8_e46gj"]
+[ext_resource type="Texture2D" uid="uid://dp8hjmj1g0g6j" path="res://stage/meshes/previews/wall_floor.webp" id="8_e46gj"]
 [ext_resource type="Shape3D" uid="uid://cu8jj2hhxojb5" path="res://stage/collision/trunk.tres" id="8_k4lgw"]
 [ext_resource type="ArrayMesh" uid="uid://ba7lhk44sk366" path="res://stage/meshes/floor.res" id="8_v1wcb"]
 [ext_resource type="ArrayMesh" uid="uid://bfs00vuvcjkew" path="res://stage/meshes/ramp.res" id="9_tefy7"]
-[ext_resource type="Texture2D" uid="uid://crkwyiw1srl0s" path="res://stage/meshes/previews/corner_floor.png" id="10_28nap"]
+[ext_resource type="Texture2D" uid="uid://crkwyiw1srl0s" path="res://stage/meshes/previews/corner_floor.webp" id="10_28nap"]
 [ext_resource type="ArrayMesh" uid="uid://bett1yahcwe25" path="res://stage/meshes/wall.res" id="10_o3clf"]
 [ext_resource type="ArrayMesh" uid="uid://u3txqw7biqh7" path="res://stage/meshes/ceiling_wall.res" id="11_8wdqo"]
-[ext_resource type="Texture2D" uid="uid://bbq8ew5nu5euk" path="res://stage/meshes/previews/floor_corner.png" id="12_igfni"]
+[ext_resource type="Texture2D" uid="uid://bbq8ew5nu5euk" path="res://stage/meshes/previews/floor_corner.webp" id="12_igfni"]
 [ext_resource type="ArrayMesh" uid="uid://dhkvpx5r0pkp6" path="res://stage/meshes/trunk_floor.res" id="12_vai08"]
 [ext_resource type="ArrayMesh" uid="uid://d12ihp7a24cc5" path="res://stage/meshes/trunk.res" id="13_jxbli"]
-[ext_resource type="Texture2D" uid="uid://bn8u7u037b45d" path="res://stage/meshes/previews/floor_edge.png" id="14_0bb8u"]
+[ext_resource type="Texture2D" uid="uid://bn8u7u037b45d" path="res://stage/meshes/previews/floor_edge.webp" id="14_0bb8u"]
 [ext_resource type="ArrayMesh" uid="uid://bbaw7x1jdgj1e" path="res://stage/meshes/trunk_deco.res" id="14_ifxle"]
 [ext_resource type="ArrayMesh" uid="uid://b3dsi1y878r7b" path="res://stage/meshes/tree_top.res" id="15_7vb86"]
 [ext_resource type="Shape3D" uid="uid://c768ebvne0t88" path="res://stage/collision/trunk_deco.res" id="15_dv48b"]
 [ext_resource type="ArrayMesh" uid="uid://b17rir1luuuf6" path="res://stage/meshes/ceiling_corner.res" id="16_lj8nd"]
-[ext_resource type="Texture2D" uid="uid://ceowqwjqgr5hh" path="res://stage/meshes/previews/floor.png" id="16_ukd2l"]
+[ext_resource type="Texture2D" uid="uid://ceowqwjqgr5hh" path="res://stage/meshes/previews/floor.webp" id="16_ukd2l"]
 [ext_resource type="ArrayMesh" uid="uid://cdek4uk8q3o7u" path="res://stage/meshes/ceiling.res" id="17_vmrq8"]
-[ext_resource type="Texture2D" uid="uid://co11nalhejjuy" path="res://stage/meshes/previews/ramp.png" id="18_18er5"]
-[ext_resource type="Texture2D" uid="uid://b02dqx1o1s7c6" path="res://stage/meshes/previews/wall.png" id="20_4y8pc"]
-[ext_resource type="Texture2D" uid="uid://chf3t80xvxnjs" path="res://stage/meshes/previews/ceiling_wall.png" id="22_7ci2i"]
+[ext_resource type="Texture2D" uid="uid://co11nalhejjuy" path="res://stage/meshes/previews/ramp.webp" id="18_18er5"]
+[ext_resource type="Texture2D" uid="uid://b02dqx1o1s7c6" path="res://stage/meshes/previews/wall.webp" id="20_4y8pc"]
+[ext_resource type="Texture2D" uid="uid://chf3t80xvxnjs" path="res://stage/meshes/previews/ceiling_wall.webp" id="22_7ci2i"]
 [ext_resource type="Shape3D" uid="uid://bpjsb42xca1l4" path="res://stage/collision/ramp.res" id="24_ccmmu"]
-[ext_resource type="Texture2D" uid="uid://7xrwpol80qv2" path="res://stage/meshes/previews/trunk_floor.png" id="24_sps6o"]
-[ext_resource type="Texture2D" uid="uid://ciqvgxs8iyuk3" path="res://stage/meshes/previews/trunk.png" id="26_f7hi4"]
+[ext_resource type="Texture2D" uid="uid://7xrwpol80qv2" path="res://stage/meshes/previews/trunk_floor.webp" id="24_sps6o"]
+[ext_resource type="Texture2D" uid="uid://ciqvgxs8iyuk3" path="res://stage/meshes/previews/trunk.webp" id="26_f7hi4"]
 [ext_resource type="Shape3D" uid="uid://d2gpjiqcam613" path="res://stage/collision/corner_fix.res" id="26_rbb14"]
-[ext_resource type="Texture2D" uid="uid://cmcov60r5vwcd" path="res://stage/meshes/previews/trunk_deco.png" id="28_48o5j"]
+[ext_resource type="Texture2D" uid="uid://cmcov60r5vwcd" path="res://stage/meshes/previews/trunk_deco.webp" id="28_48o5j"]
 [ext_resource type="Shape3D" uid="uid://durs5ucaxjbvf" path="res://stage/collision/corner_fixr.res" id="29_na2ry"]
-[ext_resource type="Texture2D" uid="uid://c81vs6shrgqy7" path="res://stage/meshes/previews/tree_top.png" id="30_pv10j"]
-[ext_resource type="Texture2D" uid="uid://d15fcw2varcjl" path="res://stage/meshes/previews/ceiling_corner.png" id="32_kkqx5"]
+[ext_resource type="Texture2D" uid="uid://c81vs6shrgqy7" path="res://stage/meshes/previews/tree_top.webp" id="30_pv10j"]
+[ext_resource type="Texture2D" uid="uid://d15fcw2varcjl" path="res://stage/meshes/previews/ceiling_corner.webp" id="32_kkqx5"]
 [ext_resource type="Shape3D" uid="uid://dvn0fpisvg8wd" path="res://stage/collision/floor_edge.res" id="34_8rf8t"]
 [ext_resource type="ArrayMesh" uid="uid://0fj5kjmlbu2h" path="res://stage/meshes/corner.res" id="34_xbgnj"]
-[ext_resource type="Texture2D" uid="uid://clum5gu8hk1ue" path="res://stage/meshes/previews/corner.png" id="35_mporh"]
+[ext_resource type="Texture2D" uid="uid://clum5gu8hk1ue" path="res://stage/meshes/previews/corner.webp" id="35_mporh"]
 [ext_resource type="Shape3D" uid="uid://bubbphyp5l01v" path="res://stage/collision/floor_corner.res" id="40_xcv5g"]
 [ext_resource type="Shape3D" uid="uid://dlkmokp44ntyu" path="res://stage/collision/corner.res" id="43_amq5o"]
 
@@ -51,107 +51,125 @@ item/0/name = "CeilingCorner"
 item/0/mesh = ExtResource("16_lj8nd")
 item/0/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/0/shapes = [ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/0/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/0/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/0/navigation_layers = 1
 item/0/preview = ExtResource("32_kkqx5")
 item/1/name = "Ceiling"
 item/1/mesh = ExtResource("17_vmrq8")
 item/1/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/1/shapes = [ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/1/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/1/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/1/navigation_layers = 1
 item/1/preview = ExtResource("5_k267x")
 item/2/name = "WallVar"
 item/2/mesh = ExtResource("3_xh2x8")
 item/2/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/2/shapes = [ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/2/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/2/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/2/navigation_layers = 1
 item/2/preview = ExtResource("6_g6lmp")
 item/3/name = "WallFloor"
 item/3/mesh = ExtResource("4_dufyg")
 item/3/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/3/shapes = [ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/3/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/3/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/3/navigation_layers = 1
 item/3/preview = ExtResource("8_e46gj")
 item/4/name = "CornerFloor"
 item/4/mesh = ExtResource("5_p7gd7")
 item/4/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/4/shapes = [ExtResource("43_amq5o"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0)]
-item/4/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/4/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/4/navigation_layers = 1
 item/4/preview = ExtResource("10_28nap")
 item/5/name = "FloorCorner"
 item/5/mesh = ExtResource("6_omua3")
 item/5/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/5/shapes = [ExtResource("40_xcv5g"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/5/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/5/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/5/navigation_layers = 1
 item/5/preview = ExtResource("12_igfni")
 item/6/name = "FloorEdge"
 item/6/mesh = ExtResource("7_ek6i2")
 item/6/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/6/shapes = [ExtResource("34_8rf8t"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/6/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/6/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/6/navigation_layers = 1
 item/6/preview = ExtResource("14_0bb8u")
 item/7/name = "Floor"
 item/7/mesh = ExtResource("8_v1wcb")
 item/7/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/7/shapes = [ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0)]
-item/7/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/7/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/7/navigation_layers = 1
 item/7/preview = ExtResource("16_ukd2l")
 item/8/name = "Wall"
 item/8/mesh = ExtResource("10_o3clf")
 item/8/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/8/shapes = [ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/8/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/8/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/8/navigation_layers = 1
 item/8/preview = ExtResource("20_4y8pc")
 item/9/name = "Corner"
 item/9/mesh = ExtResource("34_xbgnj")
 item/9/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/9/shapes = [ExtResource("43_amq5o"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/9/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/9/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/9/navigation_layers = 1
 item/9/preview = ExtResource("35_mporh")
 item/10/name = "TrunkFloor"
 item/10/mesh = ExtResource("12_vai08")
 item/10/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/10/shapes = [ExtResource("8_k4lgw"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0)]
-item/10/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/10/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/10/navigation_layers = 1
 item/10/preview = ExtResource("24_sps6o")
 item/11/name = "Trunk"
 item/11/mesh = ExtResource("13_jxbli")
 item/11/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/11/shapes = [ExtResource("8_k4lgw"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/11/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/11/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/11/navigation_layers = 1
 item/11/preview = ExtResource("26_f7hi4")
 item/12/name = "TrunkDeco"
 item/12/mesh = ExtResource("14_ifxle")
 item/12/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/12/shapes = [ExtResource("15_dv48b"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/12/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/12/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/12/navigation_layers = 1
 item/12/preview = ExtResource("28_48o5j")
 item/13/name = "TreeTop"
 item/13/mesh = ExtResource("15_7vb86")
 item/13/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/13/shapes = [ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/13/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/13/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/13/navigation_layers = 1
 item/13/preview = ExtResource("30_pv10j")
 item/14/name = "CeilingWall"
 item/14/mesh = ExtResource("11_8wdqo")
 item/14/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/14/shapes = [ExtResource("3_4akc8"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/14/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/14/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/14/navigation_layers = 1
 item/14/preview = ExtResource("22_7ci2i")
 item/15/name = "Ramp"
 item/15/mesh = ExtResource("9_tefy7")
 item/15/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/15/shapes = [ExtResource("24_ccmmu"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/15/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/15/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/15/navigation_layers = 1
 item/15/preview = ExtResource("18_18er5")
 item/16/name = "CornerFix"
 item/16/mesh = ExtResource("2_brdag")
 item/16/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/16/shapes = [ExtResource("26_rbb14"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/16/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/16/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/16/navigation_layers = 1
 item/16/preview = ExtResource("4_dt8g2")
 item/17/name = "CornerFixr"
 item/17/mesh = ExtResource("1_w63i8")
 item/17/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
 item/17/shapes = [ExtResource("29_na2ry"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)]
-item/17/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/17/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
+item/17/navigation_layers = 1
 item/17/preview = ExtResource("2_jv5mx")

BIN
3d/platformer/stage/tiles_albedo.png


BIN
3d/platformer/stage/tiles_albedo.webp


+ 4 - 4
3d/platformer/stage/tiles_albedo.png.import → 3d/platformer/stage/tiles_albedo.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://btjl445bkvxba"
-path="res://.godot/imported/tiles_albedo.png-3c9d3475da8b2bb8dffa1801335db0f4.ctex"
+path="res://.godot/imported/tiles_albedo.webp-e271e20c366fd5067a562330f69b0a07.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/tiles_albedo.png"
-dest_files=["res://.godot/imported/tiles_albedo.png-3c9d3475da8b2bb8dffa1801335db0f4.ctex"]
+source_file="res://stage/tiles_albedo.webp"
+dest_files=["res://.godot/imported/tiles_albedo.webp-e271e20c366fd5067a562330f69b0a07.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=true

BIN
3d/platformer/stage/tiles_rough.png


BIN
3d/platformer/stage/tiles_rough.webp


+ 4 - 4
3d/platformer/stage/tiles_rough.png.import → 3d/platformer/stage/tiles_rough.webp.import

@@ -3,22 +3,22 @@
 importer="texture"
 type="CompressedTexture2D"
 uid="uid://cdsrms3a0xhop"
-path="res://.godot/imported/tiles_rough.png-8a9d61a193a3c2bf56c3b30d1dfe6aba.ctex"
+path="res://.godot/imported/tiles_rough.webp-30ecea7165f8cf37654c5fb80d3a17f2.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://stage/tiles_rough.png"
-dest_files=["res://.godot/imported/tiles_rough.png-8a9d61a193a3c2bf56c3b30d1dfe6aba.ctex"]
+source_file="res://stage/tiles_rough.webp"
+dest_files=["res://.godot/imported/tiles_rough.webp-30ecea7165f8cf37654c5fb80d3a17f2.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
 compress/hdr_compression=1
-compress/bptc_ldr=0
 compress/normal_map=0
 compress/channel_pack=0
 mipmaps/generate=true