Bläddra i källkod

Update most demos for Godot 4.0.beta10 (#782)

Hugo Locurcio 2 år sedan
förälder
incheckning
1d5184e235
100 ändrade filer med 2109 tillägg och 1501 borttagningar
  1. 1 0
      2d/bullet_shower/bullet.png.import
  2. 1 1
      2d/bullet_shower/bullets.gd
  3. 1 0
      2d/bullet_shower/face_happy.png.import
  4. 1 0
      2d/bullet_shower/face_sad.png.import
  5. 1 0
      2d/bullet_shower/icon.png.import
  6. 1 1
      2d/bullet_shower/project.godot
  7. 5 5
      2d/bullet_shower/shower.tscn
  8. 14 6
      2d/dodge_the_creeps/HUD.tscn
  9. 1 1
      2d/dodge_the_creeps/Main.gd
  10. 12 8
      2d/dodge_the_creeps/Main.tscn
  11. 1 1
      2d/dodge_the_creeps/Mob.gd
  12. 4 1
      2d/dodge_the_creeps/art/House In a Forest Loop.ogg.import
  13. 1 1
      2d/dodge_the_creeps/art/gameover.wav.import
  14. 10 12
      2d/dodge_the_creeps/fonts/Xolonium-Regular.ttf.import
  15. 11 10
      2d/dodge_the_creeps/project.godot
  16. 52 28
      2d/finite_state_machine/Demo.tscn
  17. 4 9
      2d/finite_state_machine/debug/ControlsPanel.tscn
  18. 3 20
      2d/finite_state_machine/debug/Explanations.tscn
  19. 4 18
      2d/finite_state_machine/debug/StatesStackDiplayer.tscn
  20. 32 0
      2d/finite_state_machine/fonts/SourceCodePro-Black.ttf.import
  21. 32 0
      2d/finite_state_machine/fonts/SourceCodePro-Bold.ttf.import
  22. 14 15
      2d/finite_state_machine/icon.png.import
  23. 49 57
      2d/finite_state_machine/player/Player.tscn
  24. 14 15
      2d/finite_state_machine/player/body.png.import
  25. 5 5
      2d/finite_state_machine/player/bullet/Bullet.tscn
  26. 2 3
      2d/finite_state_machine/player/player_controller.gd
  27. 14 15
      2d/finite_state_machine/player/shadow.png.import
  28. 56 49
      2d/finite_state_machine/player/weapon/Sword.tscn
  29. 2 4
      2d/finite_state_machine/player/weapon/sword.gd
  30. 14 15
      2d/finite_state_machine/player/weapon/sword.png.import
  31. 2 3
      2d/finite_state_machine/player/weapon/weapon_pivot.gd
  32. 18 28
      2d/finite_state_machine/project.godot
  33. 3 4
      2d/finite_state_machine/state_machine/state_machine.gd
  34. 17 0
      2d/glow/README.md
  35. 21 0
      2d/glow/beach_cave.gd
  36. 51 0
      2d/glow/beach_cave.tscn
  37. BIN
      2d/glow/glow_map.webp
  38. 34 0
      2d/glow/glow_map.webp.import
  39. BIN
      2d/glow/icon.png
  40. 14 15
      2d/glow/icon.png.import
  41. 0 0
      2d/glow/ocean_beach.png
  42. 14 15
      2d/glow/ocean_beach.png.import
  43. 0 0
      2d/glow/ocean_cave.png
  44. 14 15
      2d/glow/ocean_cave.png.import
  45. 39 0
      2d/glow/project.godot
  46. 0 0
      2d/glow/screenshots/.gdignore
  47. 0 0
      2d/glow/screenshots/left.png
  48. 0 0
      2d/glow/screenshots/right.png
  49. 0 18
      2d/hdr/README.md
  50. 0 16
      2d/hdr/beach_cave.gd
  51. 0 56
      2d/hdr/beach_cave.tscn
  52. BIN
      2d/hdr/icon.png
  53. 0 40
      2d/hdr/project.godot
  54. 14 15
      2d/hexagonal_map/icon.png.import
  55. 3 8
      2d/hexagonal_map/map.tscn
  56. 20 23
      2d/hexagonal_map/project.godot
  57. 14 15
      2d/hexagonal_map/tiles/WWT-01.png.import
  58. 14 15
      2d/hexagonal_map/tiles/WWT-02.png.import
  59. 14 15
      2d/hexagonal_map/tiles/WWT-03.png.import
  60. 14 15
      2d/hexagonal_map/tiles/WWT-04.png.import
  61. 14 15
      2d/hexagonal_map/tiles/WWT-05.png.import
  62. 14 15
      2d/hexagonal_map/tiles/WWT-06.png.import
  63. 14 15
      2d/hexagonal_map/tiles/WWT-07.png.import
  64. 14 15
      2d/hexagonal_map/tiles/WWT-08.png.import
  65. 14 15
      2d/hexagonal_map/tiles/WWT-09.png.import
  66. 14 15
      2d/hexagonal_map/tiles/WWT-10.png.import
  67. 14 15
      2d/hexagonal_map/tiles/WWT-11.png.import
  68. 14 15
      2d/hexagonal_map/tiles/WWT-12.png.import
  69. 14 15
      2d/hexagonal_map/tiles/WWT-13.png.import
  70. 14 15
      2d/hexagonal_map/tiles/WWT-14.png.import
  71. 14 15
      2d/hexagonal_map/tiles/WWT-15.png.import
  72. 14 15
      2d/hexagonal_map/tiles/WWT-16.png.import
  73. 14 15
      2d/hexagonal_map/tiles/WWT-17.png.import
  74. 14 15
      2d/hexagonal_map/tiles/WWT-18.png.import
  75. 14 15
      2d/hexagonal_map/tiles/WWT-19.png.import
  76. 14 15
      2d/hexagonal_map/tiles/WWT-20.png.import
  77. 14 15
      2d/hexagonal_map/tiles/WWT-21.png.import
  78. 14 15
      2d/hexagonal_map/tiles/WWT-22.png.import
  79. 14 15
      2d/hexagonal_map/tiles/WWT-23.png.import
  80. 14 15
      2d/hexagonal_map/tiles/WWT-24.png.import
  81. 14 15
      2d/hexagonal_map/tiles/WWT-25.png.import
  82. 14 15
      2d/hexagonal_map/tiles/WWT-26.png.import
  83. 706 287
      2d/hexagonal_map/tileset.tres
  84. 8 5
      2d/hexagonal_map/troll.gd
  85. 14 15
      2d/hexagonal_map/troll.png.import
  86. 13 7
      2d/hexagonal_map/troll.tscn
  87. 1 0
      2d/instancing/bowling_ball.png.import
  88. 1 0
      2d/instancing/icon.png.import
  89. 3 2
      2d/instancing/project.godot
  90. 38 34
      2d/instancing/scene_instancing.tscn
  91. 11 20
      2d/isometric/dungeon.tscn
  92. 14 15
      2d/isometric/icon.png.import
  93. 14 15
      2d/isometric/isotiles.png.import
  94. 18 30
      2d/isometric/project.godot
  95. 242 99
      2d/isometric/tileset.tres
  96. 7 4
      2d/isometric/troll.gd
  97. 14 15
      2d/isometric/troll.png.import
  98. 13 7
      2d/isometric/troll.tscn
  99. 1 0
      2d/kinematic_character/icon.png.import
  100. 1 0
      2d/kinematic_character/level/circle.png.import

+ 1 - 0
2d/bullet_shower/bullet.png.import

@@ -29,5 +29,6 @@ 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

+ 1 - 1
2d/bullet_shower/bullets.gd

@@ -56,7 +56,7 @@ func _ready():
 
 func _process(_delta):
 	# Order the CanvasItem to update every frame.
-	update()
+	queue_redraw()
 
 
 func _physics_process(delta):

+ 1 - 0
2d/bullet_shower/face_happy.png.import

@@ -29,5 +29,6 @@ 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

+ 1 - 0
2d/bullet_shower/face_sad.png.import

@@ -29,5 +29,6 @@ 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

+ 1 - 0
2d/bullet_shower/icon.png.import

@@ -29,5 +29,6 @@ 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

+ 1 - 1
2d/bullet_shower/project.godot

@@ -16,8 +16,8 @@ _global_script_class_icons={}
 config/name="Bullet Shower"
 config/description="Demonstrates how to manage large amounts of objects efficiently using low-level Servers."
 run/main_scene="res://shower.tscn"
-config/icon="res://icon.png"
 config/features=PackedStringArray("4.0")
+config/icon="res://icon.png"
 
 [display]
 

+ 5 - 5
2d/bullet_shower/shower.tscn

@@ -7,7 +7,7 @@
 
 [sub_resource type="SpriteFrames" id="1"]
 animations = [{
-"frames": [ExtResource( "3" ), ExtResource( "4" )],
+"frames": [ExtResource("3"), ExtResource("4")],
 "loop": true,
 "name": &"default",
 "speed": 5.0
@@ -19,16 +19,16 @@ radius = 27.0
 [node name="Shower" type="Node2D"]
 
 [node name="Bullets" type="Node2D" parent="."]
-script = ExtResource( "2" )
+script = ExtResource("2")
 
 [node name="Player" type="Area2D" parent="."]
-script = ExtResource( "5" )
+script = ExtResource("5")
 
 [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Player"]
-frames = SubResource( "1" )
+frames = SubResource("1")
 
 [node name="CollisionShape2D" type="CollisionShape2D" parent="Player"]
-shape = SubResource( "2" )
+shape = SubResource("2")
 
 [connection signal="body_shape_entered" from="Player" to="Player" method="_on_body_shape_entered"]
 [connection signal="body_shape_exited" from="Player" to="Player" method="_on_body_shape_exited"]

+ 14 - 6
2d/dodge_the_creeps/HUD.tscn

@@ -1,34 +1,41 @@
 [gd_scene load_steps=4 format=3 uid="uid://ccqoreueuxdb7"]
 
 [ext_resource type="Script" path="res://HUD.gd" id="1"]
-[ext_resource type="Font" uid="uid://dyjc58f6sdms0" path="res://fonts/Xolonium-Regular.tres" id="2_3dmm8"]
+
+[sub_resource type="InputEventAction" id="InputEventAction_fopy7"]
+action = &"start_game"
 
 [sub_resource type="Shortcut" id="4"]
+events = [SubResource("InputEventAction_fopy7")]
 
 [node name="HUD" type="CanvasLayer"]
-script = ExtResource( "1" )
+script = ExtResource("1")
 
 [node name="ScoreLabel" type="Label" parent="."]
+anchors_preset = 10
 anchor_right = 1.0
 offset_bottom = 78.0
-theme_override_fonts/font = ExtResource( "2_3dmm8" )
+grow_horizontal = 2
 theme_override_font_sizes/font_size = 60
 text = "0"
 horizontal_alignment = 1
 
 [node name="MessageLabel" type="Label" parent="."]
+anchors_preset = 14
 anchor_top = 0.5
 anchor_right = 1.0
 anchor_bottom = 0.5
 offset_top = -79.5
 offset_bottom = 79.5
-theme_override_fonts/font = ExtResource( "2_3dmm8" )
+grow_horizontal = 2
+grow_vertical = 2
 theme_override_font_sizes/font_size = 60
 text = "Dodge the
 Creeps"
 horizontal_alignment = 1
 
 [node name="StartButton" type="Button" parent="."]
+anchors_preset = 7
 anchor_left = 0.5
 anchor_top = 1.0
 anchor_right = 0.5
@@ -37,9 +44,10 @@ offset_left = -90.0
 offset_top = -200.0
 offset_right = 90.0
 offset_bottom = -100.0
-theme_override_fonts/font = ExtResource( "2_3dmm8" )
+grow_horizontal = 2
+grow_vertical = 0
 theme_override_font_sizes/font_size = 60
-shortcut = SubResource( "4" )
+shortcut = SubResource("4")
 text = "Start"
 
 [node name="MessageTimer" type="Timer" parent="."]

+ 1 - 1
2d/dodge_the_creeps/Main.gd

@@ -31,7 +31,7 @@ func _on_MobTimer_timeout():
 
 	# Choose a random location on Path2D.
 	var mob_spawn_location = get_node(^"MobPath/MobSpawnLocation")
-	mob_spawn_location.offset = randi()
+	mob_spawn_location.progress = randi()
 
 	# Set the mob's direction perpendicular to the path direction.
 	var direction = mob_spawn_location.rotation + PI / 2

+ 12 - 8
2d/dodge_the_creeps/Main.tscn

@@ -11,17 +11,21 @@
 _data = {
 "points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 480, 720, 0, 0, 0, 0, 0, 720, 0, 0, 0, 0, 0, 0)
 }
+point_count = 5
 
 [node name="Main" type="Node"]
-script = ExtResource( "1" )
-mob_scene = ExtResource( "2" )
+script = ExtResource("1")
+mob_scene = ExtResource("2")
 
 [node name="ColorRect" type="ColorRect" parent="."]
+anchors_preset = 15
 anchor_right = 1.0
 anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
 color = Color(0.219608, 0.372549, 0.380392, 1)
 
-[node name="Player" parent="." instance=ExtResource( "3" )]
+[node name="Player" parent="." instance=ExtResource("3")]
 
 [node name="MobTimer" type="Timer" parent="."]
 wait_time = 0.5
@@ -32,21 +36,21 @@ wait_time = 0.5
 wait_time = 2.0
 one_shot = true
 
-[node name="StartPosition" type="Position2D" parent="."]
+[node name="StartPosition" type="Marker2D" parent="."]
 position = Vector2(240, 450)
 
 [node name="MobPath" type="Path2D" parent="."]
-curve = SubResource( "1" )
+curve = SubResource("1")
 
 [node name="MobSpawnLocation" type="PathFollow2D" parent="MobPath"]
 
-[node name="HUD" parent="." instance=ExtResource( "4" )]
+[node name="HUD" parent="." instance=ExtResource("4")]
 
 [node name="Music" type="AudioStreamPlayer" parent="."]
-stream = ExtResource( "5" )
+stream = ExtResource("5")
 
 [node name="DeathSound" type="AudioStreamPlayer" parent="."]
-stream = ExtResource( "6" )
+stream = ExtResource("6")
 
 [connection signal="hit" from="Player" to="." method="game_over"]
 [connection signal="timeout" from="MobTimer" to="." method="_on_MobTimer_timeout"]

+ 1 - 1
2d/dodge_the_creeps/Mob.gd

@@ -1,4 +1,4 @@
-extends RigidDynamicBody2D
+extends RigidBody2D
 
 func _ready():
 	$AnimatedSprite2D.playing = true

+ 4 - 1
2d/dodge_the_creeps/art/House In a Forest Loop.ogg.import

@@ -1,7 +1,7 @@
 [remap]
 
 importer="oggvorbisstr"
-type="AudioStreamOGGVorbis"
+type="AudioStreamOggVorbis"
 uid="uid://q2pf4fr8d0ks"
 path="res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7039931227e8d50.oggvorbisstr"
 
@@ -14,3 +14,6 @@ dest_files=["res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7
 
 loop=true
 loop_offset=0
+bpm=0
+beat_count=0
+bar_beats=4

+ 1 - 1
2d/dodge_the_creeps/art/gameover.wav.import

@@ -1,7 +1,7 @@
 [remap]
 
 importer="wav"
-type="AudioStreamSample"
+type="AudioStreamWAV"
 uid="uid://dw26fpygeag8o"
 path="res://.godot/imported/gameover.wav-98c95c744b35280048c2bd093cf8a356.sample"
 

+ 10 - 12
2d/dodge_the_creeps/fonts/Xolonium-Regular.ttf.import

@@ -1,7 +1,7 @@
 [remap]
 
 importer="font_data_dynamic"
-type="FontData"
+type="FontFile"
 uid="uid://cit6gwe5px1q8"
 path="res://.godot/imported/Xolonium-Regular.ttf-bc2981e3069cff4c34dd7c8e2bb73fba.fontdata"
 
@@ -12,7 +12,8 @@ dest_files=["res://.godot/imported/Xolonium-Regular.ttf-bc2981e3069cff4c34dd7c8e
 
 [params]
 
-antialiased=true
+Rendering=null
+antialiasing=1
 generate_mipmaps=false
 multichannel_signed_distance_field=false
 msdf_pixel_range=8
@@ -20,15 +21,12 @@ msdf_size=48
 force_autohinter=false
 hinting=1
 subpixel_positioning=1
-embolden=0.0
-transform=Transform2D(1, 0, 0, 1, 0, 0)
 oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
 compress=true
-opentype_feature_overrides={}
-preload/char_ranges=PackedStringArray()
-preload/glyph_ranges=PackedStringArray()
-preload/configurations=PackedStringArray()
-support_overrides/language_enabled=PackedStringArray()
-support_overrides/language_disabled=PackedStringArray()
-support_overrides/script_enabled=PackedStringArray()
-support_overrides/script_disabled=PackedStringArray()
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}

+ 11 - 10
2d/dodge_the_creeps/project.godot

@@ -18,8 +18,8 @@ This is a finished version of the game featured in the 'Your first 2D game'
 tutorial in the documentation. For more details, consider
 following the tutorial in the documentation."
 run/main_scene="res://Main.tscn"
-config/icon="res://icon.png"
 config/features=PackedStringArray("4.0")
+config/icon="res://icon.png"
 
 [debug]
 
@@ -37,39 +37,40 @@ window/stretch/mode="canvas_items"
 
 move_left={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"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":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)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
 ]
 }
 move_right={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"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":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)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
 ]
 }
 move_up={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"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":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)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
 ]
 }
 move_down={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"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":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)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
 ]
 }
 start_game={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777221,"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":4194309,"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":32,"unicode":0,"echo":false,"script":null)
 ]
 }
 

+ 52 - 28
2d/finite_state_machine/Demo.tscn

@@ -1,38 +1,61 @@
-[gd_scene load_steps=6 format=2]
+[gd_scene load_steps=8 format=3 uid="uid://dmn8nkpogiwsf"]
 
-[ext_resource path="res://player/Player.tscn" type="PackedScene" id=1]
-[ext_resource path="res://fonts/source_code_pro_explanations.tres" type="Font" id=2]
-[ext_resource path="res://debug/StatesStackDiplayer.tscn" type="PackedScene" id=3]
-[ext_resource path="res://debug/ControlsPanel.tscn" type="PackedScene" id=4]
-[ext_resource path="res://fonts/source_code_pro_explanations_bold.tres" type="Font" id=5]
+[ext_resource type="PackedScene" uid="uid://bpdyvy2681m3i" path="res://player/Player.tscn" id="1"]
+[ext_resource type="PackedScene" uid="uid://cvi13chv8g4hj" path="res://debug/StatesStackDiplayer.tscn" id="3"]
+[ext_resource type="PackedScene" uid="uid://bq6rrfy53rfvo" path="res://debug/ControlsPanel.tscn" id="4"]
+
+[sub_resource type="Animation" id="1"]
+
+[sub_resource type="Animation" id="2"]
+length = 0.6
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("BodyPivot/Body:modulate")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.4),
+"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1)]
+}
+
+[sub_resource type="Animation" id="3"]
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_qbwwp"]
+_data = {
+"idle": SubResource("1"),
+"stagger": SubResource("2"),
+"walk": SubResource("3")
+}
 
 [node name="Demo" type="Node"]
 
-[node name="Player" parent="." instance=ExtResource( 1 )]
+[node name="Player" parent="." instance=ExtResource("1")]
 position = Vector2(640, 400)
 
+[node name="StateMachine" parent="Player" index="0"]
+start_state = NodePath("Idle")
+
+[node name="AnimationPlayer" parent="Player" index="1"]
+libraries = {
+"": SubResource("AnimationLibrary_qbwwp")
+}
+
 [node name="Explanations" type="RichTextLabel" parent="."]
+anchors_preset = 15
 anchor_right = 1.0
 anchor_bottom = 1.0
 offset_left = 10.0
 offset_top = -370.0
 offset_right = -10.0
 offset_bottom = -730.0
-rect_clip_content = false
-mouse_filter = 2
+grow_horizontal = 2
+grow_vertical = 2
 size_flags_vertical = 4
-custom_fonts/bold_font = ExtResource( 5 )
-custom_fonts/normal_font = ExtResource( 2 )
+mouse_filter = 2
 bbcode_enabled = true
-bbcode_text = "This example shows how to apply the State programming pattern in GDScript, including Hierarchical States, and a pushdown automaton.
-
-States are common in games. You can use the pattern to:
-
-1. Separate each behavior and transitions between behaviors, thus make scripts shorter and easier to manage
-2. Respect the Single Responsibility Principle. Each State object represents [b]one[/b] action
-3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.
-
-You can read more about States in the excellent [url=http://gameprogrammingpatterns.com/state.html]Game Programming Patterns ebook[/url]."
 text = "This example shows how to apply the State programming pattern in GDScript, including Hierarchical States, and a pushdown automaton.
 
 States are common in games. You can use the pattern to:
@@ -42,19 +65,20 @@ States are common in games. You can use the pattern to:
 3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.
 
 You can read more about States in the excellent Game Programming Patterns ebook."
-__meta__ = {
-"_edit_lock_": true
-}
 
 [node name="Control" type="Control" parent="."]
+layout_mode = 3
+anchors_preset = 15
 anchor_right = 1.0
 anchor_bottom = 1.0
-__meta__ = {
-"_edit_use_anchors_": false
-}
+grow_horizontal = 2
+grow_vertical = 2
 
-[node name="StatesStackDiplayer" parent="Control" instance=ExtResource( 3 )]
+[node name="StatesStackDiplayer" parent="Control" instance=ExtResource("3")]
+layout_mode = 0
 
-[node name="ControlsPanel" parent="Control" instance=ExtResource( 4 )]
+[node name="ControlsPanel" parent="Control" instance=ExtResource("4")]
+layout_mode = 1
+grow_horizontal = 0
 
 [editable path="Player"]

+ 4 - 9
2d/finite_state_machine/debug/ControlsPanel.tscn

@@ -1,24 +1,20 @@
-[gd_scene load_steps=2 format=2]
-
-[ext_resource path="res://fonts/source_code_pro_explanations.tres" type="Font" id=1]
+[gd_scene format=3 uid="uid://bq6rrfy53rfvo"]
 
 [node name="ControlsPanel" type="Panel"]
+anchors_preset = 1
 anchor_left = 1.0
 anchor_right = 1.0
 offset_left = -220.0
 offset_bottom = 170.0
-__meta__ = {
-"_edit_use_anchors_": false
-}
 
 [node name="Keys" type="Label" parent="."]
+anchors_preset = 15
 anchor_right = 1.0
 anchor_bottom = 1.0
 offset_left = 10.0
 offset_top = 10.0
 offset_right = -10.0
 offset_bottom = -10.0
-custom_fonts/font = ExtResource( 1 )
 text = "Shoot:
 Attack:
 Stagger:
@@ -26,16 +22,15 @@ Jump:
 Sprint:"
 
 [node name="Keys2" type="Label" parent="."]
+anchors_preset = 15
 anchor_right = 1.0
 anchor_bottom = 1.0
 offset_left = 10.0
 offset_top = 10.0
 offset_right = -10.0
 offset_bottom = -10.0
-custom_fonts/font = ExtResource( 1 )
 text = "R
 F
 X
 Space
 Shift"
-align = 2

+ 3 - 20
2d/finite_state_machine/debug/Explanations.tscn

@@ -1,30 +1,16 @@
-[gd_scene load_steps=3 format=2]
-
-[ext_resource path="res://fonts/source_code_pro_explanations_bold.tres" type="Font" id=1]
-[ext_resource path="res://fonts/source_code_pro_explanations.tres" type="Font" id=2]
+[gd_scene format=3 uid="uid://bywptem1jb35a"]
 
 [node name="Explanations" type="RichTextLabel"]
+anchors_preset = 15
 anchor_right = 1.0
 anchor_bottom = 1.0
 offset_left = 10.0
 offset_top = -370.0
 offset_right = -10.0
 offset_bottom = -730.0
-rect_clip_content = false
-mouse_filter = 2
 size_flags_vertical = 4
-custom_fonts/bold_font = ExtResource( 1 )
-custom_fonts/normal_font = ExtResource( 2 )
+mouse_filter = 2
 bbcode_enabled = true
-bbcode_text = "This example shows how to apply the State programming pattern in GDscript, including Hierarchical States, and a pushdown automaton.
-
-States are common in games. You can use the pattern to:
-
-1. Separate each behavior and transitions between behaviors, thus make scripts shorter and easier to manage
-2. Respect the Single Responsibility Principle. Each State object represents [b]one[/b] action
-3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.
-
-You can read more about States in the excellent [url=http://gameprogrammingpatterns.com/state.html]Game Programming Patterns ebook[/url]."
 text = "This example shows how to apply the State programming pattern in GDscript, including Hierarchical States, and a pushdown automaton.
 
 States are common in games. You can use the pattern to:
@@ -34,6 +20,3 @@ States are common in games. You can use the pattern to:
 3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.
 
 You can read more about States in the excellent Game Programming Patterns ebook."
-__meta__ = {
-"_edit_lock_": true
-}

+ 4 - 18
2d/finite_state_machine/debug/StatesStackDiplayer.tscn

@@ -1,31 +1,20 @@
-[gd_scene load_steps=4 format=2]
+[gd_scene load_steps=2 format=3 uid="uid://cvi13chv8g4hj"]
 
-[ext_resource path="res://debug/states_stack_displayer.gd" type="Script" id=1]
-[ext_resource path="res://fonts/SourceCodePro-Bold.ttf" type="FontData" id=2]
-
-[sub_resource type="Font" id=1]
-size = 20
-use_filter = true
-font_data = ExtResource( 2 )
+[ext_resource type="Script" path="res://debug/states_stack_displayer.gd" id="1"]
 
 [node name="StatesStackDiplayer" type="Panel"]
 offset_right = 210.0
 offset_bottom = 170.0
-script = ExtResource( 1 )
-__meta__ = {
-"_edit_group_": true
-}
+script = ExtResource("1")
 
 [node name="Title" type="Label" parent="."]
+anchors_preset = 5
 anchor_left = 0.5
 anchor_right = 0.5
 offset_left = -105.0
 offset_right = 105.0
 offset_bottom = 40.0
-custom_fonts/font = SubResource( 1 )
 text = "Pushown"
-align = 1
-valign = 1
 uppercase = true
 
 [node name="States" type="Label" parent="."]
@@ -33,16 +22,13 @@ offset_left = 20.0
 offset_top = 50.0
 offset_right = 190.0
 offset_bottom = 170.0
-custom_fonts/font = SubResource( 1 )
 text = "Jump
 Test"
-align = 1
 
 [node name="Numbers" type="Label" parent="."]
 offset_left = 20.0
 offset_top = 50.0
 offset_right = 190.0
 offset_bottom = 170.0
-custom_fonts/font = SubResource( 1 )
 text = "1.
 2."

+ 32 - 0
2d/finite_state_machine/fonts/SourceCodePro-Black.ttf.import

@@ -0,0 +1,32 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://b7c5m4mw0jhww"
+path="res://.godot/imported/SourceCodePro-Black.ttf-5ac54eeedbdedbc63d01069716d9852f.fontdata"
+
+[deps]
+
+source_file="res://fonts/SourceCodePro-Black.ttf"
+dest_files=["res://.godot/imported/SourceCodePro-Black.ttf-5ac54eeedbdedbc63d01069716d9852f.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}

+ 32 - 0
2d/finite_state_machine/fonts/SourceCodePro-Bold.ttf.import

@@ -0,0 +1,32 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://b5bspum6ffekd"
+path="res://.godot/imported/SourceCodePro-Bold.ttf-bf03bd9c90603419d32725fc00754bf7.fontdata"
+
+[deps]
+
+source_file="res://fonts/SourceCodePro-Bold.ttf"
+dest_files=["res://.godot/imported/SourceCodePro-Bold.ttf-bf03bd9c90603419d32725fc00754bf7.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}

+ 14 - 15
2d/finite_state_machine/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://cmdjuhfejngkf"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 49 - 57
2d/finite_state_machine/player/Player.tscn

@@ -1,31 +1,30 @@
-[gd_scene load_steps=20 format=2]
-
-[ext_resource path="res://player/player_controller.gd" type="Script" id=1]
-[ext_resource path="res://player/player_state_machine.gd" type="Script" id=2]
-[ext_resource path="res://player/states/motion/on_ground/idle.gd" type="Script" id=3]
-[ext_resource path="res://player/states/motion/on_ground/move.gd" type="Script" id=4]
-[ext_resource path="res://player/states/motion/in_air/jump.gd" type="Script" id=5]
-[ext_resource path="res://player/states/combat/stagger.gd" type="Script" id=6]
-[ext_resource path="res://player/states/combat/attack.gd" type="Script" id=7]
-[ext_resource path="res://player/states/die.gd" type="Script" id=8]
-[ext_resource path="res://player/shadow.png" type="Texture2D" id=9]
-[ext_resource path="res://player/body.png" type="Texture2D" id=10]
-[ext_resource path="res://player/bullet/bullet_spawner.gd" type="Script" id=11]
-[ext_resource path="res://player/weapon/weapon_pivot.gd" type="Script" id=12]
-[ext_resource path="res://player/weapon/Sword.tscn" type="PackedScene" id=13]
-[ext_resource path="res://fonts/SourceCodePro-Bold.ttf" type="FontData" id=14]
-[ext_resource path="res://player/states/debug/state_name_displayer.gd" type="Script" id=15]
-
-[sub_resource type="Animation" id=1]
-
-[sub_resource type="Animation" id=2]
+[gd_scene load_steps=19 format=3 uid="uid://bpdyvy2681m3i"]
+
+[ext_resource type="Script" path="res://player/player_controller.gd" id="1"]
+[ext_resource type="Script" path="res://player/player_state_machine.gd" id="2"]
+[ext_resource type="Script" path="res://player/states/motion/on_ground/idle.gd" id="3"]
+[ext_resource type="Script" path="res://player/states/motion/on_ground/move.gd" id="4"]
+[ext_resource type="Script" path="res://player/states/motion/in_air/jump.gd" id="5"]
+[ext_resource type="Script" path="res://player/states/combat/stagger.gd" id="6"]
+[ext_resource type="Script" path="res://player/states/combat/attack.gd" id="7"]
+[ext_resource type="Script" path="res://player/states/die.gd" id="8"]
+[ext_resource type="Texture2D" uid="uid://eds33w28pilu" path="res://player/shadow.png" id="9"]
+[ext_resource type="Texture2D" uid="uid://ds53oxkqrcumd" path="res://player/body.png" id="10"]
+[ext_resource type="Script" path="res://player/bullet/bullet_spawner.gd" id="11"]
+[ext_resource type="Script" path="res://player/weapon/weapon_pivot.gd" id="12"]
+[ext_resource type="PackedScene" uid="uid://cdacdp11r3jua" path="res://player/weapon/Sword.tscn" id="13"]
+[ext_resource type="Script" path="res://player/states/debug/state_name_displayer.gd" id="15"]
+
+[sub_resource type="Animation" id="1"]
+
+[sub_resource type="Animation" id="2"]
 length = 0.6
 tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
 tracks/0/path = NodePath("BodyPivot/Body:modulate")
 tracks/0/interp = 1
 tracks/0/loop_wrap = true
-tracks/0/imported = false
-tracks/0/enabled = true
 tracks/0/keys = {
 "times": PackedFloat32Array(0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.4),
 "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
@@ -33,72 +32,71 @@ tracks/0/keys = {
 "values": [Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1)]
 }
 
-[sub_resource type="Animation" id=3]
+[sub_resource type="Animation" id="3"]
 
-[sub_resource type="Font" id=4]
-size = 20
-use_filter = true
-font_data = ExtResource( 14 )
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_vi1hn"]
+_data = {
+"idle": SubResource("1"),
+"stagger": SubResource("2"),
+"walk": SubResource("3")
+}
 
 [node name="Player" type="CharacterBody2D"]
-script = ExtResource( 1 )
-__meta__ = {
-"_edit_horizontal_guides_": []
-}
+script = ExtResource("1")
 
 [node name="StateMachine" type="Node" parent="."]
-script = ExtResource( 2 )
+script = ExtResource("2")
 
 [node name="Idle" type="Node" parent="StateMachine"]
-script = ExtResource( 3 )
+script = ExtResource("3")
 
 [node name="Move" type="Node" parent="StateMachine"]
-script = ExtResource( 4 )
+script = ExtResource("4")
 
 [node name="Jump" type="Node" parent="StateMachine"]
-script = ExtResource( 5 )
+script = ExtResource("5")
 
 [node name="Stagger" type="Node" parent="StateMachine"]
-script = ExtResource( 6 )
+script = ExtResource("6")
 
 [node name="Attack" type="Node" parent="StateMachine"]
-script = ExtResource( 7 )
+script = ExtResource("7")
 
 [node name="Die" type="Node" parent="StateMachine"]
-script = ExtResource( 8 )
+script = ExtResource("8")
 
 [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
-anims/idle = SubResource( 1 )
-anims/stagger = SubResource( 2 )
-anims/walk = SubResource( 3 )
+libraries = {
+"": SubResource("AnimationLibrary_vi1hn")
+}
 
 [node name="Shadow" type="Sprite2D" parent="."]
 self_modulate = Color(1, 1, 1, 0.361098)
 position = Vector2(0, -4)
-texture = ExtResource( 9 )
+texture = ExtResource("9")
 
-[node name="BodyPivot" type="Position2D" parent="."]
+[node name="BodyPivot" type="Marker2D" parent="."]
 
 [node name="Body" type="Sprite2D" parent="BodyPivot"]
 position = Vector2(0, -58)
-texture = ExtResource( 10 )
+texture = ExtResource("10")
 
 [node name="BulletSpawn" type="Node2D" parent="BodyPivot"]
 position = Vector2(0, -58)
-script = ExtResource( 11 )
+script = ExtResource("11")
 
 [node name="CooldownTimer" type="Timer" parent="BodyPivot/BulletSpawn"]
 wait_time = 0.2
 one_shot = true
 
-[node name="WeaponPivot" type="Position2D" parent="BodyPivot"]
+[node name="WeaponPivot" type="Marker2D" parent="BodyPivot"]
 position = Vector2(0, -58)
-script = ExtResource( 12 )
+script = ExtResource("12")
 
-[node name="Offset" type="Position2D" parent="BodyPivot/WeaponPivot"]
+[node name="Offset" type="Marker2D" parent="BodyPivot/WeaponPivot"]
 position = Vector2(110, 0)
 
-[node name="Sword" parent="BodyPivot/WeaponPivot/Offset" instance=ExtResource( 13 )]
+[node name="Sword" parent="BodyPivot/WeaponPivot/Offset" instance=ExtResource("13")]
 
 [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
 polygon = PackedVector2Array(-20, 0, -20, -20, 20, -20, 20, 0)
@@ -108,15 +106,9 @@ offset_left = -109.0
 offset_top = -172.0
 offset_right = 110.0
 offset_bottom = -138.0
-custom_fonts/font = SubResource( 4 )
 text = "Idle"
-align = 1
-valign = 1
 uppercase = true
-script = ExtResource( 15 )
-__meta__ = {
-"_edit_use_anchors_": false
-}
+script = ExtResource("15")
 
 [connection signal="state_changed" from="StateMachine" to="BodyPivot/WeaponPivot/Offset/Sword" method="_on_StateMachine_state_changed"]
 [connection signal="state_changed" from="StateMachine" to="StateNameDisplayer" method="_on_StateMachine_state_changed"]

+ 14 - 15
2d/finite_state_machine/player/body.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/body.png-313f6363670a5852a7b7126ab476d8b1.stex"
+type="CompressedTexture2D"
+uid="uid://ds53oxkqrcumd"
+path="res://.godot/imported/body.png-313f6363670a5852a7b7126ab476d8b1.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://player/body.png"
-dest_files=["res://.godot/imported/body.png-313f6363670a5852a7b7126ab476d8b1.stex"]
+dest_files=["res://.godot/imported/body.png-313f6363670a5852a7b7126ab476d8b1.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 5 - 5
2d/finite_state_machine/player/bullet/Bullet.tscn

@@ -1,14 +1,14 @@
-[gd_scene load_steps=3 format=2]
+[gd_scene load_steps=3 format=3 uid="uid://b6uru8lfx45ma"]
 
-[ext_resource path="res://player/bullet/bullet.gd" type="Script" id=1]
+[ext_resource type="Script" path="res://player/bullet/bullet.gd" id="1"]
 
-[sub_resource type="CircleShape2D" id=1]
+[sub_resource type="CircleShape2D" id="1"]
 radius = 12.0
 
 [node name="Bullet" type="CharacterBody2D"]
 collision_layer = 2
 collision_mask = 2
-script = ExtResource( 1 )
+script = ExtResource("1")
 
 [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
-shape = SubResource( 1 )
+shape = SubResource("1")

+ 2 - 3
2d/finite_state_machine/player/player_controller.gd

@@ -7,11 +7,11 @@ signal direction_changed(new_direction)
 
 var look_direction = Vector2.RIGHT:
 	set(value):
-		# TODO: Manually copy the code from this method.
+		look_direction = value
 		set_look_direction(value)
 
 func take_damage(attacker, amount, effect = null):
-	if is_a_parent_of(attacker):
+	if is_ancestor_of(attacker):
 		return
 	$States/Stagger.knockback_direction = (attacker.global_position - global_position).normalized()
 	$Health.take_damage(amount, effect)
@@ -24,5 +24,4 @@ func set_dead(value):
 
 
 func set_look_direction(value):
-	look_direction = value
 	emit_signal("direction_changed", value)

+ 14 - 15
2d/finite_state_machine/player/shadow.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/shadow.png-493c4635eca1ce8bdece629560617dc7.stex"
+type="CompressedTexture2D"
+uid="uid://eds33w28pilu"
+path="res://.godot/imported/shadow.png-493c4635eca1ce8bdece629560617dc7.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://player/shadow.png"
-dest_files=["res://.godot/imported/shadow.png-493c4635eca1ce8bdece629560617dc7.stex"]
+dest_files=["res://.godot/imported/shadow.png-493c4635eca1ce8bdece629560617dc7.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 56 - 49
2d/finite_state_machine/player/weapon/Sword.tscn

@@ -1,16 +1,16 @@
-[gd_scene load_steps=8 format=2]
+[gd_scene load_steps=9 format=3 uid="uid://cdacdp11r3jua"]
 
-[ext_resource path="res://player/weapon/sword.gd" type="Script" id=1]
-[ext_resource path="res://player/weapon/sword.png" type="Texture2D" id=2]
+[ext_resource type="Script" path="res://player/weapon/sword.gd" id="1"]
+[ext_resource type="Texture2D" uid="uid://7cfjw83v5m75" path="res://player/weapon/sword.png" id="2"]
 
-[sub_resource type="Animation" id=1]
+[sub_resource type="Animation" id="1"]
 resource_name = "SETUP"
 tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
 tracks/0/path = NodePath(".:rotation_degrees")
 tracks/0/interp = 1
 tracks/0/loop_wrap = true
-tracks/0/imported = false
-tracks/0/enabled = true
 tracks/0/keys = {
 "times": PackedFloat32Array(0),
 "transitions": PackedFloat32Array(1),
@@ -18,11 +18,11 @@ tracks/0/keys = {
 "values": [0.0]
 }
 tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
 tracks/1/path = NodePath(".:scale")
 tracks/1/interp = 1
 tracks/1/loop_wrap = true
-tracks/1/imported = false
-tracks/1/enabled = true
 tracks/1/keys = {
 "times": PackedFloat32Array(0),
 "transitions": PackedFloat32Array(1),
@@ -30,11 +30,11 @@ tracks/1/keys = {
 "values": [Vector2(1, 1)]
 }
 tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
 tracks/2/path = NodePath(".:visible")
 tracks/2/interp = 1
 tracks/2/loop_wrap = true
-tracks/2/imported = false
-tracks/2/enabled = true
 tracks/2/keys = {
 "times": PackedFloat32Array(0),
 "transitions": PackedFloat32Array(1),
@@ -42,11 +42,11 @@ tracks/2/keys = {
 "values": [true]
 }
 tracks/3/type = "value"
+tracks/3/imported = false
+tracks/3/enabled = true
 tracks/3/path = NodePath(".:monitoring")
 tracks/3/interp = 1
 tracks/3/loop_wrap = true
-tracks/3/imported = false
-tracks/3/enabled = true
 tracks/3/keys = {
 "times": PackedFloat32Array(0),
 "transitions": PackedFloat32Array(1),
@@ -54,11 +54,11 @@ tracks/3/keys = {
 "values": [true]
 }
 tracks/4/type = "value"
+tracks/4/imported = false
+tracks/4/enabled = true
 tracks/4/path = NodePath(".:monitorable")
 tracks/4/interp = 1
 tracks/4/loop_wrap = true
-tracks/4/imported = false
-tracks/4/enabled = true
 tracks/4/keys = {
 "times": PackedFloat32Array(0),
 "transitions": PackedFloat32Array(1),
@@ -66,16 +66,16 @@ tracks/4/keys = {
 "values": [false]
 }
 
-[sub_resource type="Animation" id=2]
+[sub_resource type="Animation" id="2"]
 resource_name = "attack_circular"
 length = 0.3
 step = 0.05
 tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
 tracks/0/path = NodePath(".:rotation_degrees")
 tracks/0/interp = 1
 tracks/0/loop_wrap = true
-tracks/0/imported = false
-tracks/0/enabled = true
 tracks/0/keys = {
 "times": PackedFloat32Array(0, 0.15, 0.2),
 "transitions": PackedFloat32Array(0.439427, 1, 1),
@@ -83,11 +83,11 @@ tracks/0/keys = {
 "values": [-100.0, 100.0, 90.0]
 }
 tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
 tracks/1/path = NodePath(".:scale")
 tracks/1/interp = 1
 tracks/1/loop_wrap = true
-tracks/1/imported = false
-tracks/1/enabled = true
 tracks/1/keys = {
 "times": PackedFloat32Array(0, 0.05, 0.15, 0.2),
 "transitions": PackedFloat32Array(1, 2.50795, 1, 1),
@@ -95,11 +95,11 @@ tracks/1/keys = {
 "values": [Vector2(1, 1), Vector2(1, 1.3), Vector2(1, 1), Vector2(1, 1)]
 }
 tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
 tracks/2/path = NodePath(".:visible")
 tracks/2/interp = 1
 tracks/2/loop_wrap = true
-tracks/2/imported = false
-tracks/2/enabled = true
 tracks/2/keys = {
 "times": PackedFloat32Array(0),
 "transitions": PackedFloat32Array(1),
@@ -107,15 +107,15 @@ tracks/2/keys = {
 "values": [true]
 }
 
-[sub_resource type="Animation" id=3]
+[sub_resource type="Animation" id="3"]
 length = 0.45
 step = 0.05
 tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
 tracks/0/path = NodePath(".:rotation_degrees")
 tracks/0/interp = 1
 tracks/0/loop_wrap = true
-tracks/0/imported = false
-tracks/0/enabled = true
 tracks/0/keys = {
 "times": PackedFloat32Array(0, 0.15, 0.2),
 "transitions": PackedFloat32Array(0.439427, 1, 1),
@@ -123,11 +123,11 @@ tracks/0/keys = {
 "values": [-80.0, 85.0, 75.0]
 }
 tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
 tracks/1/path = NodePath(".:scale")
 tracks/1/interp = 1
 tracks/1/loop_wrap = true
-tracks/1/imported = false
-tracks/1/enabled = true
 tracks/1/keys = {
 "times": PackedFloat32Array(0, 0.05, 0.15, 0.2),
 "transitions": PackedFloat32Array(1, 2.50795, 1, 1),
@@ -135,11 +135,11 @@ tracks/1/keys = {
 "values": [Vector2(1, 1), Vector2(1, 1.3), Vector2(1, 1), Vector2(1, 1)]
 }
 tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
 tracks/2/path = NodePath(".:visible")
 tracks/2/interp = 1
 tracks/2/loop_wrap = true
-tracks/2/imported = false
-tracks/2/enabled = true
 tracks/2/keys = {
 "times": PackedFloat32Array(0),
 "transitions": PackedFloat32Array(1),
@@ -147,33 +147,33 @@ tracks/2/keys = {
 "values": [true]
 }
 tracks/3/type = "method"
+tracks/3/imported = false
+tracks/3/enabled = true
 tracks/3/path = NodePath(".")
 tracks/3/interp = 1
 tracks/3/loop_wrap = true
-tracks/3/imported = false
-tracks/3/enabled = true
 tracks/3/keys = {
 "times": PackedFloat32Array(0.1, 0.25),
 "transitions": PackedFloat32Array(1, 1),
 "values": [{
 "args": [],
-"method": "set_attack_input_listening"
+"method": &"set_attack_input_listening"
 }, {
 "args": [],
-"method": "set_ready_for_next_attack"
+"method": &"set_ready_for_next_attack"
 }]
 }
 
-[sub_resource type="Animation" id=4]
+[sub_resource type="Animation" id="4"]
 resource_name = "attack_medium"
 length = 0.5
 step = 0.05
 tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
 tracks/0/path = NodePath(".:rotation_degrees")
 tracks/0/interp = 1
 tracks/0/loop_wrap = true
-tracks/0/imported = false
-tracks/0/enabled = true
 tracks/0/keys = {
 "times": PackedFloat32Array(0.05, 0.25, 0.35),
 "transitions": PackedFloat32Array(0.439427, 1, 1),
@@ -181,11 +181,11 @@ tracks/0/keys = {
 "values": [95.0, -95.0, -90.0]
 }
 tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
 tracks/1/path = NodePath(".:scale")
 tracks/1/interp = 1
 tracks/1/loop_wrap = true
-tracks/1/imported = false
-tracks/1/enabled = true
 tracks/1/keys = {
 "times": PackedFloat32Array(0, 0.1, 0.2, 0.25),
 "transitions": PackedFloat32Array(1, 2.50795, 1, 1),
@@ -193,11 +193,11 @@ tracks/1/keys = {
 "values": [Vector2(1, 1), Vector2(1, 1.3), Vector2(1, 1), Vector2(1, 1)]
 }
 tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
 tracks/2/path = NodePath(".:visible")
 tracks/2/interp = 1
 tracks/2/loop_wrap = true
-tracks/2/imported = false
-tracks/2/enabled = true
 tracks/2/keys = {
 "times": PackedFloat32Array(0),
 "transitions": PackedFloat32Array(1),
@@ -205,14 +205,14 @@ tracks/2/keys = {
 "values": [true]
 }
 
-[sub_resource type="Animation" id=5]
+[sub_resource type="Animation" id="5"]
 length = 0.01
 tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
 tracks/0/path = NodePath(".:visible")
 tracks/0/interp = 1
 tracks/0/loop_wrap = true
-tracks/0/imported = false
-tracks/0/enabled = true
 tracks/0/keys = {
 "times": PackedFloat32Array(0),
 "transitions": PackedFloat32Array(1),
@@ -220,23 +220,30 @@ tracks/0/keys = {
 "values": [false]
 }
 
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_6cp3i"]
+_data = {
+"SETUP": SubResource("1"),
+"attack_circular": SubResource("2"),
+"attack_fast": SubResource("3"),
+"attack_medium": SubResource("4"),
+"idle": SubResource("5")
+}
+
 [node name="Sword" type="Area2D"]
 collision_layer = 16
 collision_mask = 3
 input_pickable = false
 monitorable = false
-script = ExtResource( 1 )
+script = ExtResource("1")
 
 [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
-anims/SETUP = SubResource( 1 )
-anims/attack_circular = SubResource( 2 )
-anims/attack_fast = SubResource( 3 )
-anims/attack_medium = SubResource( 4 )
-anims/idle = SubResource( 5 )
+libraries = {
+"": SubResource("AnimationLibrary_6cp3i")
+}
 
 [node name="Sword" type="Sprite2D" parent="."]
 position = Vector2(4, 0)
-texture = ExtResource( 2 )
+texture = ExtResource("2")
 offset = Vector2(67, 0)
 
 [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]

+ 2 - 4
2d/finite_state_machine/player/weapon/sword.gd

@@ -31,10 +31,8 @@ var combo = [{
 var hit_objects = []
 
 func _ready():
-	# warning-ignore:return_value_discarded
-	$AnimationPlayer.connect(&"animation_finished", self._on_animation_finished)
-	# warning-ignore:return_value_discarded
-	self.connect(&"body_entered", self._on_body_entered)
+	$AnimationPlayer.animation_finished.connect(self._on_animation_finished)
+	body_entered.connect(self._on_body_entered)
 	_change_state(States.IDLE)
 
 

+ 14 - 15
2d/finite_state_machine/player/weapon/sword.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.stex"
+type="CompressedTexture2D"
+uid="uid://7cfjw83v5m75"
+path="res://.godot/imported/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://player/weapon/sword.png"
-dest_files=["res://.godot/imported/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.stex"]
+dest_files=["res://.godot/imported/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 2 - 3
2d/finite_state_machine/player/weapon/weapon_pivot.gd

@@ -1,10 +1,9 @@
-extends Position2D
+extends Marker2D
 
 var z_index_start = 0
 
 func _ready():
-	#warning-ignore:return_value_discarded
-	owner.connect(&"direction_changed", self._on_Parent_direction_changed)
+	owner.direction_changed.connect(self._on_Parent_direction_changed)
 	z_index_start = z_index
 
 

+ 18 - 28
2d/finite_state_machine/project.godot

@@ -6,7 +6,7 @@
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 
-config_version=4
+config_version=5
 
 [application]
 
@@ -15,87 +15,77 @@ config/description="This example shows how to apply the State machine programmin
 pattern in GDscript, including Hierarchical States, and a
 pushdown automaton."
 run/main_scene="res://Demo.tscn"
+config/features=PackedStringArray("4.0")
 config/icon="res://icon.png"
 
 [display]
 
-window/size/width=1280
-window/size/height=720
-window/dpi/allow_hidpi=true
-window/stretch/mode="2d"
+window/size/viewport_width=1280
+window/size/viewport_height=720
+window/stretch/mode="canvas_items"
 window/stretch/aspect="expand"
 
-[gdnative]
-
-singletons=[]
-
 [input]
 
 move_left={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"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,"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":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 move_up={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"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,"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":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 move_right={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"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,"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":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 move_down={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"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,"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":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 fire={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":82,"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":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
 run={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777237,"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":16777237,"physical_keycode":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)
 ]
 }
 jump={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_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,"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)
 ]
 }
 simulate_damage={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":88,"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":88,"physical_keycode":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)
 ]
 }
 attack={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":70,"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":70,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null)
 ]
 }
-
-[rendering]
-
-quality/driver/driver_name="GLES2"
-vram_compression/import_etc=true
-vram_compression/import_etc2=false

+ 3 - 4
2d/finite_state_machine/state_machine/state_machine.gd

@@ -17,14 +17,14 @@ var states_stack = []
 var current_state = null
 var _active = false:
 	set(value):
-		# TODO: Manually copy the code from this method.
+		_active = value
 		set_active(value)
 
 func _ready():
-	if not start_state:
+	if start_state.is_empty():
 		start_state = get_child(0).get_path()
 	for child in get_children():
-		var err = child.connect(&"finished", self._change_state)
+		var err = child.finished.connect(self._change_state)
 		if err:
 			printerr(err)
 	initialize(start_state)
@@ -38,7 +38,6 @@ func initialize(initial_state):
 
 
 func set_active(value):
-	_active = value
 	set_physics_process(value)
 	set_process_input(value)
 	if not _active:

+ 17 - 0
2d/glow/README.md

@@ -0,0 +1,17 @@
+# Glow for 2D
+
+This showcases how to use glow in a 2D game via the WorldEnvironment node.
+
+Slide the cave image left and right to observe the glow effect at work.
+
+Language: GDScript
+
+Renderer: Forward Plus
+
+Check out this demo on the asset library: https://godotengine.org/asset-library/asset/110
+
+## Screenshots
+
+![Screenshot](screenshots/left.png)
+
+![Screenshot](screenshots/right.png)

+ 21 - 0
2d/glow/beach_cave.gd

@@ -0,0 +1,21 @@
+extends Node2D
+
+const CAVE_LIMIT = 1000
+
+var glow_map = preload("res://glow_map.webp")
+
+@onready var cave = $Cave
+
+func _unhandled_input(event):
+	if event is InputEventMouseMotion and event.button_mask > 0:
+		cave.position.x = clampf(cave.position.x + event.relative.x, -CAVE_LIMIT, 0)
+
+	if event.is_action_pressed("toggle_glow_map"):
+		if $WorldEnvironment.environment.glow_map:
+			$WorldEnvironment.environment.glow_map = null
+			# Restore glow intensity to its default value
+			$WorldEnvironment.environment.glow_intensity = 0.8
+		else:
+			$WorldEnvironment.environment.glow_map = glow_map
+			# Increase glow intensity to compensate for the glow map darkening parts of the glow.
+			$WorldEnvironment.environment.glow_intensity = 1.6

+ 51 - 0
2d/glow/beach_cave.tscn

@@ -0,0 +1,51 @@
+[gd_scene load_steps=5 format=3 uid="uid://bhcia8aeoa4cm"]
+
+[ext_resource type="Script" path="res://beach_cave.gd" id="1"]
+[ext_resource type="Texture2D" uid="uid://drndflsw6mug" path="res://ocean_beach.png" id="2"]
+[ext_resource type="Texture2D" uid="uid://dyslwppgvocgd" path="res://ocean_cave.png" id="3"]
+
+[sub_resource type="Environment" id="1"]
+background_mode = 3
+ambient_light_sky_contribution = 0.0
+glow_enabled = true
+glow_levels/3 = 0.0
+glow_levels/4 = 1.0
+glow_levels/7 = 1.0
+glow_strength = 0.88
+glow_bloom = 0.08
+glow_blend_mode = 0
+
+[node name="BeachCave" type="Node2D"]
+script = ExtResource("1")
+
+[node name="Beach" type="Sprite2D" parent="."]
+modulate = Color(2, 2, 2, 1)
+self_modulate = Color(2, 2, 2, 1)
+texture = ExtResource("2")
+centered = false
+region_enabled = true
+region_rect = Rect2(0, 0, 3840, 720)
+
+[node name="Cave" type="Sprite2D" parent="."]
+self_modulate = Color(0.233166, 0.221219, 0.23582, 1)
+scale = Vector2(1.2, 1)
+texture = ExtResource("3")
+centered = false
+
+[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
+environment = SubResource("1")
+
+[node name="Camera2D" type="Camera2D" parent="."]
+offset = Vector2(540, 360)
+current = true
+
+[node name="Label" type="Label" parent="."]
+visible = false
+offset_left = 18.0
+offset_top = 18.0
+offset_right = 294.0
+offset_bottom = 70.0
+size_flags_horizontal = 2
+size_flags_vertical = 0
+text = "Drag left and right with the mouse
+G: Toggle glow map (lens dirt effect)"

BIN
2d/glow/glow_map.webp


+ 34 - 0
2d/glow/glow_map.webp.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bocux7q0xdifq"
+path="res://.godot/imported/glow_map.webp-13400453956ba4dd65042386a2d4cf65.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://glow_map.webp"
+dest_files=["res://.godot/imported/glow_map.webp-13400453956ba4dd65042386a2d4cf65.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=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
2d/glow/icon.png


+ 14 - 15
misc/opensimplexnoise/icon.png.import → 2d/glow/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://bsjtxyyenw6db"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 0 - 0
2d/hdr/ocean_beach.png → 2d/glow/ocean_beach.png


+ 14 - 15
2d/hdr/ocean_beach.png.import → 2d/glow/ocean_beach.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.stex"
+type="CompressedTexture2D"
+uid="uid://drndflsw6mug"
+path="res://.godot/imported/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://ocean_beach.png"
-dest_files=["res://.godot/imported/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.stex"]
+dest_files=["res://.godot/imported/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=2
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 0 - 0
2d/hdr/ocean_cave.png → 2d/glow/ocean_cave.png


+ 14 - 15
2d/hdr/ocean_cave.png.import → 2d/glow/ocean_cave.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.stex"
+type="CompressedTexture2D"
+uid="uid://dyslwppgvocgd"
+path="res://.godot/imported/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://ocean_cave.png"
-dest_files=["res://.godot/imported/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.stex"]
+dest_files=["res://.godot/imported/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 39 - 0
2d/glow/project.godot

@@ -0,0 +1,39 @@
+; Engine configuration file.
+; It's best edited using the editor UI and not directly,
+; since the parameters that go here are not all obvious.
+;
+; Format:
+;   [section] ; section goes between []
+;   param=value ; assign values to parameters
+
+config_version=5
+
+[application]
+
+config/name="Glow for 2D"
+config/description="This showcases how to use glow in a 2D game via the WorldEnvironment node.
+
+Slide the cave image left and right to observe the glow effect at work."
+run/main_scene="res://beach_cave.tscn"
+config/features=PackedStringArray("4.0")
+config/icon="res://icon.png"
+run/name=""
+
+[display]
+
+window/size/viewport_width=1080
+window/size/viewport_height=720
+window/stretch/mode="canvas_items"
+window/stretch/aspect="expand"
+
+[input]
+
+toggle_glow_map={
+"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":71,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
+]
+}
+
+[rendering]
+
+environment/defaults/default_clear_color=Color(0.0666667, 0.0588235, 0.0431373, 1)

+ 0 - 0
2d/hdr/screenshots/.gdignore → 2d/glow/screenshots/.gdignore


+ 0 - 0
2d/hdr/screenshots/left.png → 2d/glow/screenshots/left.png


+ 0 - 0
2d/hdr/screenshots/right.png → 2d/glow/screenshots/right.png


+ 0 - 18
2d/hdr/README.md

@@ -1,18 +0,0 @@
-# HDR for 2D
-
-Simple demo how to use High Dynamic Range (HDR) in a 2D game,
-via the WorldEnvironment node.
-
-Just slide the cave image left and right to observe the HDR effect at work.
-
-Language: GDScript
-
-Renderer: GLES 3 (HDR is not available in GLES 2)
-
-Check out this demo on the asset library: https://godotengine.org/asset-library/asset/110
-
-## Screenshots
-
-![Screenshot](screenshots/left.png)
-
-![Screenshot](screenshots/right.png)

+ 0 - 16
2d/hdr/beach_cave.gd

@@ -1,16 +0,0 @@
-extends Node2D
-
-const CAVE_LIMIT = 1000
-
-@onready var cave = $Cave
-
-func _unhandled_input(event):
-	if event is InputEventMouseMotion and event.button_mask > 0:
-		var rel_x = event.relative.x
-		var cavepos = cave.position
-		cavepos.x += rel_x
-		if cavepos.x < -CAVE_LIMIT:
-			cavepos.x = -CAVE_LIMIT
-		elif cavepos.x > 0:
-			cavepos.x = 0
-		cave.position = cavepos

+ 0 - 56
2d/hdr/beach_cave.tscn

@@ -1,56 +0,0 @@
-[gd_scene load_steps=5 format=2]
-
-[ext_resource path="res://beach_cave.gd" type="Script" id=1]
-[ext_resource path="res://ocean_beach.png" type="Texture2D" id=2]
-[ext_resource path="res://ocean_cave.png" type="Texture2D" id=3]
-
-[sub_resource type="Environment" id=1]
-background_mode = 4
-ambient_light_sky_contribution = 0.0
-auto_exposure_enabled = true
-auto_exposure_scale = 0.51
-auto_exposure_speed = 4.0
-ssao_blur = 1
-glow_enabled = true
-glow_levels/3 = false
-glow_levels/4 = true
-glow_levels/7 = true
-glow_strength = 0.88
-glow_blend_mode = 0
-glow_bicubic_upscale = true
-
-[node name="BeachCave" type="Node2D"]
-script = ExtResource( 1 )
-
-[node name="Beach" type="Sprite2D" parent="."]
-modulate = Color(2, 2, 2, 1)
-self_modulate = Color(2, 2, 2, 1)
-texture = ExtResource( 2 )
-centered = false
-region_enabled = true
-region_rect = Rect2(0, 0, 3840, 720)
-
-[node name="Cave" type="Sprite2D" parent="."]
-self_modulate = Color(0.233166, 0.221219, 0.23582, 1)
-scale = Vector2(1.2, 1)
-texture = ExtResource( 3 )
-centered = false
-
-[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
-environment = SubResource( 1 )
-
-[node name="Camera2D" type="Camera2D" parent="."]
-offset = Vector2(540, 360)
-current = true
-
-[node name="Label" type="Label" parent="."]
-offset_left = 10.0
-offset_top = 10.0
-offset_right = 135.0
-offset_bottom = 24.0
-size_flags_horizontal = 2
-size_flags_vertical = 0
-text = "Drag Left and Right"
-__meta__ = {
-"_edit_use_anchors_": false
-}

BIN
2d/hdr/icon.png


+ 0 - 40
2d/hdr/project.godot

@@ -1,40 +0,0 @@
-; Engine configuration file.
-; It's best edited using the editor UI and not directly,
-; since the parameters that go here are not all obvious.
-;
-; Format:
-;   [section] ; section goes between []
-;   param=value ; assign values to parameters
-
-config_version=4
-
-[application]
-
-config/name="HDR for 2D"
-config/description="Simple demo how to use High Dynamic Range (HDR) in a 2D game,
-via the WorldEnvironment node.
-
-Just slide the cave image left and right to observe the HDR effect at work."
-run/main_scene="res://beach_cave.tscn"
-config/icon="res://icon.png"
-run/name=""
-
-[display]
-
-window/size/width=1080
-window/size/height=720
-window/dpi/allow_hidpi=true
-window/stretch/mode="2d"
-window/stretch/aspect="expand"
-
-[gdnative]
-
-singletons=[]
-
-[rasterizer]
-
-blur_buffer_size=128
-
-[rendering]
-
-environment/default_clear_color=Color(0.05, 0.0453, 0.0265, 1)

+ 14 - 15
2d/hexagonal_map/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://ddqj5gbtw2cxw"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 3 - 8
2d/hexagonal_map/map.tscn


+ 20 - 23
2d/hexagonal_map/project.godot

@@ -6,63 +6,60 @@
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 
-config_version=4
+config_version=5
 
 [application]
 
 config/name="Hexagonal Game"
 config/description="Very simple demo showing a hexagonal TileMap and TileSet."
 run/main_scene="res://map.tscn"
+config/features=PackedStringArray("4.0")
 config/icon="res://icon.png"
 
 [display]
 
-window/dpi/allow_hidpi=true
-window/stretch/mode="2d"
+window/stretch/mode="canvas_items"
 window/stretch/aspect="expand"
 
-[gdnative]
-
-singletons=[]
-
 [input]
 
 move_down={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":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)
+"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"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":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)
 ]
 }
 move_left={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":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)
+"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"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":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)
 ]
 }
 move_right={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":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)
+"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"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":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)
 ]
 }
 move_up={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":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)
+"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"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":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)
 ]
 }
 
+[physics]
+
+common/physics_ticks_per_second=120
+
 [rendering]
 
-quality/driver/driver_name="GLES2"
-vram_compression/import_etc=true
-vram_compression/import_etc2=false
-environment/default_clear_color=Color(0.172549, 0.219608, 0.129412, 1)
+environment/defaults/default_clear_color=Color(0.106667, 0.2, 0.1, 1)

+ 14 - 15
2d/hexagonal_map/tiles/WWT-01.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-01.png-a74af26d994adfc547572b5b9c0c4034.stex"
+type="CompressedTexture2D"
+uid="uid://crqmfvmjk10qv"
+path="res://.godot/imported/WWT-01.png-a74af26d994adfc547572b5b9c0c4034.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-01.png"
-dest_files=["res://.godot/imported/WWT-01.png-a74af26d994adfc547572b5b9c0c4034.stex"]
+dest_files=["res://.godot/imported/WWT-01.png-a74af26d994adfc547572b5b9c0c4034.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-02.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-02.png-9a9ae8a623554db2531366e8a06b737a.stex"
+type="CompressedTexture2D"
+uid="uid://cedbg617ddc06"
+path="res://.godot/imported/WWT-02.png-9a9ae8a623554db2531366e8a06b737a.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-02.png"
-dest_files=["res://.godot/imported/WWT-02.png-9a9ae8a623554db2531366e8a06b737a.stex"]
+dest_files=["res://.godot/imported/WWT-02.png-9a9ae8a623554db2531366e8a06b737a.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-03.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-03.png-111a68b27c5234ed5719f8591af32a0c.stex"
+type="CompressedTexture2D"
+uid="uid://cmth7tlqu7i5b"
+path="res://.godot/imported/WWT-03.png-111a68b27c5234ed5719f8591af32a0c.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-03.png"
-dest_files=["res://.godot/imported/WWT-03.png-111a68b27c5234ed5719f8591af32a0c.stex"]
+dest_files=["res://.godot/imported/WWT-03.png-111a68b27c5234ed5719f8591af32a0c.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-04.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-04.png-f26081179f39965c61294d932b10ab21.stex"
+type="CompressedTexture2D"
+uid="uid://cnap3w3iv55k6"
+path="res://.godot/imported/WWT-04.png-f26081179f39965c61294d932b10ab21.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-04.png"
-dest_files=["res://.godot/imported/WWT-04.png-f26081179f39965c61294d932b10ab21.stex"]
+dest_files=["res://.godot/imported/WWT-04.png-f26081179f39965c61294d932b10ab21.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-05.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-05.png-744e3aac04e57d14153c9ab15d0f478b.stex"
+type="CompressedTexture2D"
+uid="uid://b2l65q8a3gdh4"
+path="res://.godot/imported/WWT-05.png-744e3aac04e57d14153c9ab15d0f478b.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-05.png"
-dest_files=["res://.godot/imported/WWT-05.png-744e3aac04e57d14153c9ab15d0f478b.stex"]
+dest_files=["res://.godot/imported/WWT-05.png-744e3aac04e57d14153c9ab15d0f478b.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-06.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-06.png-42fd05901daa928f55c39f581f1c698b.stex"
+type="CompressedTexture2D"
+uid="uid://dw1k6i44aj0x6"
+path="res://.godot/imported/WWT-06.png-42fd05901daa928f55c39f581f1c698b.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-06.png"
-dest_files=["res://.godot/imported/WWT-06.png-42fd05901daa928f55c39f581f1c698b.stex"]
+dest_files=["res://.godot/imported/WWT-06.png-42fd05901daa928f55c39f581f1c698b.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-07.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-07.png-8e87a5146f132f36aecf29c26d16ff69.stex"
+type="CompressedTexture2D"
+uid="uid://c5fggtsfk75xa"
+path="res://.godot/imported/WWT-07.png-8e87a5146f132f36aecf29c26d16ff69.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-07.png"
-dest_files=["res://.godot/imported/WWT-07.png-8e87a5146f132f36aecf29c26d16ff69.stex"]
+dest_files=["res://.godot/imported/WWT-07.png-8e87a5146f132f36aecf29c26d16ff69.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-08.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-08.png-9ab3b0ed6304c6b282e0c1c2866f4c65.stex"
+type="CompressedTexture2D"
+uid="uid://wqigqjsj3avp"
+path="res://.godot/imported/WWT-08.png-9ab3b0ed6304c6b282e0c1c2866f4c65.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-08.png"
-dest_files=["res://.godot/imported/WWT-08.png-9ab3b0ed6304c6b282e0c1c2866f4c65.stex"]
+dest_files=["res://.godot/imported/WWT-08.png-9ab3b0ed6304c6b282e0c1c2866f4c65.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-09.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-09.png-c899d1db7b10c4bc6e5c8ad44627c439.stex"
+type="CompressedTexture2D"
+uid="uid://c6hs85g3cl0sq"
+path="res://.godot/imported/WWT-09.png-c899d1db7b10c4bc6e5c8ad44627c439.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-09.png"
-dest_files=["res://.godot/imported/WWT-09.png-c899d1db7b10c4bc6e5c8ad44627c439.stex"]
+dest_files=["res://.godot/imported/WWT-09.png-c899d1db7b10c4bc6e5c8ad44627c439.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-10.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-10.png-c7e17e1ca741da0752bae015501fa73f.stex"
+type="CompressedTexture2D"
+uid="uid://bpo0pq1q0f27b"
+path="res://.godot/imported/WWT-10.png-c7e17e1ca741da0752bae015501fa73f.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-10.png"
-dest_files=["res://.godot/imported/WWT-10.png-c7e17e1ca741da0752bae015501fa73f.stex"]
+dest_files=["res://.godot/imported/WWT-10.png-c7e17e1ca741da0752bae015501fa73f.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-11.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-11.png-109af6474e89a87a4598cb99f608a4f7.stex"
+type="CompressedTexture2D"
+uid="uid://cbuym3gkbc32a"
+path="res://.godot/imported/WWT-11.png-109af6474e89a87a4598cb99f608a4f7.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-11.png"
-dest_files=["res://.godot/imported/WWT-11.png-109af6474e89a87a4598cb99f608a4f7.stex"]
+dest_files=["res://.godot/imported/WWT-11.png-109af6474e89a87a4598cb99f608a4f7.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-12.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-12.png-dfbf3da77ce636a3e88f9e62405a950b.stex"
+type="CompressedTexture2D"
+uid="uid://dyhvpxrxlip5v"
+path="res://.godot/imported/WWT-12.png-dfbf3da77ce636a3e88f9e62405a950b.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-12.png"
-dest_files=["res://.godot/imported/WWT-12.png-dfbf3da77ce636a3e88f9e62405a950b.stex"]
+dest_files=["res://.godot/imported/WWT-12.png-dfbf3da77ce636a3e88f9e62405a950b.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-13.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-13.png-cef8d6fe42386e917ad3aa9b9c54f031.stex"
+type="CompressedTexture2D"
+uid="uid://cf37ho773vwp2"
+path="res://.godot/imported/WWT-13.png-cef8d6fe42386e917ad3aa9b9c54f031.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-13.png"
-dest_files=["res://.godot/imported/WWT-13.png-cef8d6fe42386e917ad3aa9b9c54f031.stex"]
+dest_files=["res://.godot/imported/WWT-13.png-cef8d6fe42386e917ad3aa9b9c54f031.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-14.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-14.png-b9075987807eba6a461b896e310a1b8a.stex"
+type="CompressedTexture2D"
+uid="uid://bxai3ekb6emcv"
+path="res://.godot/imported/WWT-14.png-b9075987807eba6a461b896e310a1b8a.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-14.png"
-dest_files=["res://.godot/imported/WWT-14.png-b9075987807eba6a461b896e310a1b8a.stex"]
+dest_files=["res://.godot/imported/WWT-14.png-b9075987807eba6a461b896e310a1b8a.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-15.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-15.png-00500699e949fc7109f5946f459a9877.stex"
+type="CompressedTexture2D"
+uid="uid://cqd2c2wh20qie"
+path="res://.godot/imported/WWT-15.png-00500699e949fc7109f5946f459a9877.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-15.png"
-dest_files=["res://.godot/imported/WWT-15.png-00500699e949fc7109f5946f459a9877.stex"]
+dest_files=["res://.godot/imported/WWT-15.png-00500699e949fc7109f5946f459a9877.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-16.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-16.png-fbcd640a627612e528382718aecef7c7.stex"
+type="CompressedTexture2D"
+uid="uid://1hkvgty64oul"
+path="res://.godot/imported/WWT-16.png-fbcd640a627612e528382718aecef7c7.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-16.png"
-dest_files=["res://.godot/imported/WWT-16.png-fbcd640a627612e528382718aecef7c7.stex"]
+dest_files=["res://.godot/imported/WWT-16.png-fbcd640a627612e528382718aecef7c7.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-17.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-17.png-eb18073021ced526bfb8971a84830c46.stex"
+type="CompressedTexture2D"
+uid="uid://1iq2swd8y0kw"
+path="res://.godot/imported/WWT-17.png-eb18073021ced526bfb8971a84830c46.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-17.png"
-dest_files=["res://.godot/imported/WWT-17.png-eb18073021ced526bfb8971a84830c46.stex"]
+dest_files=["res://.godot/imported/WWT-17.png-eb18073021ced526bfb8971a84830c46.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-18.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-18.png-82273bf41643f8f544a05cdc2226c3b8.stex"
+type="CompressedTexture2D"
+uid="uid://cyoanntk2j1r5"
+path="res://.godot/imported/WWT-18.png-82273bf41643f8f544a05cdc2226c3b8.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-18.png"
-dest_files=["res://.godot/imported/WWT-18.png-82273bf41643f8f544a05cdc2226c3b8.stex"]
+dest_files=["res://.godot/imported/WWT-18.png-82273bf41643f8f544a05cdc2226c3b8.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-19.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-19.png-5894de00e931e36aaec31583c3ddce5c.stex"
+type="CompressedTexture2D"
+uid="uid://ceg6p4pycxma4"
+path="res://.godot/imported/WWT-19.png-5894de00e931e36aaec31583c3ddce5c.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-19.png"
-dest_files=["res://.godot/imported/WWT-19.png-5894de00e931e36aaec31583c3ddce5c.stex"]
+dest_files=["res://.godot/imported/WWT-19.png-5894de00e931e36aaec31583c3ddce5c.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-20.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-20.png-88080834968c597a14e2fa47d72452ca.stex"
+type="CompressedTexture2D"
+uid="uid://chb3m0ywas0um"
+path="res://.godot/imported/WWT-20.png-88080834968c597a14e2fa47d72452ca.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-20.png"
-dest_files=["res://.godot/imported/WWT-20.png-88080834968c597a14e2fa47d72452ca.stex"]
+dest_files=["res://.godot/imported/WWT-20.png-88080834968c597a14e2fa47d72452ca.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-21.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-21.png-390238468871139dc33ef039ad919c91.stex"
+type="CompressedTexture2D"
+uid="uid://c5uttqfeps4db"
+path="res://.godot/imported/WWT-21.png-390238468871139dc33ef039ad919c91.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-21.png"
-dest_files=["res://.godot/imported/WWT-21.png-390238468871139dc33ef039ad919c91.stex"]
+dest_files=["res://.godot/imported/WWT-21.png-390238468871139dc33ef039ad919c91.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-22.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-22.png-61b6f2ffc488560cd737af0df3a2aff4.stex"
+type="CompressedTexture2D"
+uid="uid://desylm4omaicl"
+path="res://.godot/imported/WWT-22.png-61b6f2ffc488560cd737af0df3a2aff4.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-22.png"
-dest_files=["res://.godot/imported/WWT-22.png-61b6f2ffc488560cd737af0df3a2aff4.stex"]
+dest_files=["res://.godot/imported/WWT-22.png-61b6f2ffc488560cd737af0df3a2aff4.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-23.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-23.png-67ddb05725964560ee768025fb1ace6c.stex"
+type="CompressedTexture2D"
+uid="uid://c1124u4mauyoa"
+path="res://.godot/imported/WWT-23.png-67ddb05725964560ee768025fb1ace6c.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-23.png"
-dest_files=["res://.godot/imported/WWT-23.png-67ddb05725964560ee768025fb1ace6c.stex"]
+dest_files=["res://.godot/imported/WWT-23.png-67ddb05725964560ee768025fb1ace6c.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-24.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-24.png-f708ede817cd745747bd03a5050d20d7.stex"
+type="CompressedTexture2D"
+uid="uid://bi8qsd7i1aahf"
+path="res://.godot/imported/WWT-24.png-f708ede817cd745747bd03a5050d20d7.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-24.png"
-dest_files=["res://.godot/imported/WWT-24.png-f708ede817cd745747bd03a5050d20d7.stex"]
+dest_files=["res://.godot/imported/WWT-24.png-f708ede817cd745747bd03a5050d20d7.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-25.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-25.png-8d42552ab8c27a7d4782e3da8de397f1.stex"
+type="CompressedTexture2D"
+uid="uid://c0ujnkfiof2c7"
+path="res://.godot/imported/WWT-25.png-8d42552ab8c27a7d4782e3da8de397f1.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-25.png"
-dest_files=["res://.godot/imported/WWT-25.png-8d42552ab8c27a7d4782e3da8de397f1.stex"]
+dest_files=["res://.godot/imported/WWT-25.png-8d42552ab8c27a7d4782e3da8de397f1.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/hexagonal_map/tiles/WWT-26.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/WWT-26.png-317f2102fb6abd09801389544f53c0e1.stex"
+type="CompressedTexture2D"
+uid="uid://nqj5fdvt56ad"
+path="res://.godot/imported/WWT-26.png-317f2102fb6abd09801389544f53c0e1.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://tiles/WWT-26.png"
-dest_files=["res://.godot/imported/WWT-26.png-317f2102fb6abd09801389544f53c0e1.stex"]
+dest_files=["res://.godot/imported/WWT-26.png-317f2102fb6abd09801389544f53c0e1.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 706 - 287
2d/hexagonal_map/tileset.tres

@@ -1,290 +1,709 @@
-[gd_resource type="TileSet" load_steps=27 format=2]
+[gd_resource type="TileSet" load_steps=53 format=3 uid="uid://cdqwqnhu3t3wq"]
 
-[ext_resource path="res://tiles/WWT-01.png" type="Texture2D" id=1]
-[ext_resource path="res://tiles/WWT-02.png" type="Texture2D" id=2]
-[ext_resource path="res://tiles/WWT-11.png" type="Texture2D" id=3]
-[ext_resource path="res://tiles/WWT-12.png" type="Texture2D" id=4]
-[ext_resource path="res://tiles/WWT-13.png" type="Texture2D" id=5]
-[ext_resource path="res://tiles/WWT-14.png" type="Texture2D" id=6]
-[ext_resource path="res://tiles/WWT-15.png" type="Texture2D" id=7]
-[ext_resource path="res://tiles/WWT-16.png" type="Texture2D" id=8]
-[ext_resource path="res://tiles/WWT-17.png" type="Texture2D" id=9]
-[ext_resource path="res://tiles/WWT-18.png" type="Texture2D" id=10]
-[ext_resource path="res://tiles/WWT-19.png" type="Texture2D" id=11]
-[ext_resource path="res://tiles/WWT-20.png" type="Texture2D" id=12]
-[ext_resource path="res://tiles/WWT-03.png" type="Texture2D" id=13]
-[ext_resource path="res://tiles/WWT-21.png" type="Texture2D" id=14]
-[ext_resource path="res://tiles/WWT-22.png" type="Texture2D" id=15]
-[ext_resource path="res://tiles/WWT-23.png" type="Texture2D" id=16]
-[ext_resource path="res://tiles/WWT-24.png" type="Texture2D" id=17]
-[ext_resource path="res://tiles/WWT-25.png" type="Texture2D" id=18]
-[ext_resource path="res://tiles/WWT-26.png" type="Texture2D" id=19]
-[ext_resource path="res://tiles/WWT-04.png" type="Texture2D" id=20]
-[ext_resource path="res://tiles/WWT-05.png" type="Texture2D" id=21]
-[ext_resource path="res://tiles/WWT-06.png" type="Texture2D" id=22]
-[ext_resource path="res://tiles/WWT-07.png" type="Texture2D" id=23]
-[ext_resource path="res://tiles/WWT-08.png" type="Texture2D" id=24]
-[ext_resource path="res://tiles/WWT-09.png" type="Texture2D" id=25]
-[ext_resource path="res://tiles/WWT-10.png" type="Texture2D" id=26]
+[ext_resource type="Texture2D" uid="uid://crqmfvmjk10qv" path="res://tiles/WWT-01.png" id="1"]
+[ext_resource type="Texture2D" uid="uid://cedbg617ddc06" path="res://tiles/WWT-02.png" id="2"]
+[ext_resource type="Texture2D" uid="uid://cbuym3gkbc32a" path="res://tiles/WWT-11.png" id="3"]
+[ext_resource type="Texture2D" uid="uid://dyhvpxrxlip5v" path="res://tiles/WWT-12.png" id="4"]
+[ext_resource type="Texture2D" uid="uid://cf37ho773vwp2" path="res://tiles/WWT-13.png" id="5"]
+[ext_resource type="Texture2D" uid="uid://bxai3ekb6emcv" path="res://tiles/WWT-14.png" id="6"]
+[ext_resource type="Texture2D" uid="uid://cqd2c2wh20qie" path="res://tiles/WWT-15.png" id="7"]
+[ext_resource type="Texture2D" uid="uid://1hkvgty64oul" path="res://tiles/WWT-16.png" id="8"]
+[ext_resource type="Texture2D" uid="uid://1iq2swd8y0kw" path="res://tiles/WWT-17.png" id="9"]
+[ext_resource type="Texture2D" uid="uid://cyoanntk2j1r5" path="res://tiles/WWT-18.png" id="10"]
+[ext_resource type="Texture2D" uid="uid://ceg6p4pycxma4" path="res://tiles/WWT-19.png" id="11"]
+[ext_resource type="Texture2D" uid="uid://chb3m0ywas0um" path="res://tiles/WWT-20.png" id="12"]
+[ext_resource type="Texture2D" uid="uid://cmth7tlqu7i5b" path="res://tiles/WWT-03.png" id="13"]
+[ext_resource type="Texture2D" uid="uid://c5uttqfeps4db" path="res://tiles/WWT-21.png" id="14"]
+[ext_resource type="Texture2D" uid="uid://desylm4omaicl" path="res://tiles/WWT-22.png" id="15"]
+[ext_resource type="Texture2D" uid="uid://c1124u4mauyoa" path="res://tiles/WWT-23.png" id="16"]
+[ext_resource type="Texture2D" uid="uid://bi8qsd7i1aahf" path="res://tiles/WWT-24.png" id="17"]
+[ext_resource type="Texture2D" uid="uid://c0ujnkfiof2c7" path="res://tiles/WWT-25.png" id="18"]
+[ext_resource type="Texture2D" uid="uid://nqj5fdvt56ad" path="res://tiles/WWT-26.png" id="19"]
+[ext_resource type="Texture2D" uid="uid://cnap3w3iv55k6" path="res://tiles/WWT-04.png" id="20"]
+[ext_resource type="Texture2D" uid="uid://b2l65q8a3gdh4" path="res://tiles/WWT-05.png" id="21"]
+[ext_resource type="Texture2D" uid="uid://dw1k6i44aj0x6" path="res://tiles/WWT-06.png" id="22"]
+[ext_resource type="Texture2D" uid="uid://c5fggtsfk75xa" path="res://tiles/WWT-07.png" id="23"]
+[ext_resource type="Texture2D" uid="uid://wqigqjsj3avp" path="res://tiles/WWT-08.png" id="24"]
+[ext_resource type="Texture2D" uid="uid://c6hs85g3cl0sq" path="res://tiles/WWT-09.png" id="25"]
+[ext_resource type="Texture2D" uid="uid://bpo0pq1q0f27b" path="res://tiles/WWT-10.png" id="26"]
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_oh287"]
+texture = ExtResource("1")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_bmxdu"]
+texture = ExtResource("2")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_u8sk8"]
+texture = ExtResource("3")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_dtlkn"]
+texture = ExtResource("4")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_k6l3k"]
+texture = ExtResource("5")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_yird3"]
+texture = ExtResource("6")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_2rlgx"]
+texture = ExtResource("7")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_4vyst"]
+texture = ExtResource("8")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_hte4l"]
+texture = ExtResource("9")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_1o5vu"]
+texture = ExtResource("10")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_qxvr3"]
+texture = ExtResource("11")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_w48kd"]
+texture = ExtResource("12")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_c2r56"]
+texture = ExtResource("13")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ppq3m"]
+texture = ExtResource("14")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_2nvyk"]
+texture = ExtResource("15")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rfmnc"]
+texture = ExtResource("16")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_25mrk"]
+texture = ExtResource("17")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3l4iw"]
+texture = ExtResource("18")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_jm5h0"]
+texture = ExtResource("19")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_88jh5"]
+texture = ExtResource("20")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_hfv7b"]
+texture = ExtResource("21")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_xix30"]
+texture = ExtResource("22")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_svdm5"]
+texture = ExtResource("23")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_xg1yk"]
+texture = ExtResource("24")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rjq70"]
+texture = ExtResource("25")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_fpx8o"]
+texture = ExtResource("26")
+texture_region_size = Vector2i(128, 128)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
 
 [resource]
-0/name = "Tile1"
-0/texture = ExtResource( 1 )
-0/tex_offset = Vector2( 0, 0 )
-0/modulate = Color( 1, 1, 1, 1 )
-0/region = Rect2( 0, 0, 128, 128 )
-0/tile_mode = 0
-0/occluder_offset = Vector2( 0, 0 )
-0/navigation_offset = Vector2( 0, 0 )
-0/shapes = [  ]
-0/z_index = 0
-1/name = "Tile2"
-1/texture = ExtResource( 2 )
-1/tex_offset = Vector2( 0, 0 )
-1/modulate = Color( 1, 1, 1, 1 )
-1/region = Rect2( 0, 0, 128, 128 )
-1/tile_mode = 0
-1/occluder_offset = Vector2( 0, 0 )
-1/navigation_offset = Vector2( 0, 0 )
-1/shapes = [  ]
-1/z_index = 0
-2/name = "Tile3"
-2/texture = ExtResource( 13 )
-2/tex_offset = Vector2( 0, 0 )
-2/modulate = Color( 1, 1, 1, 1 )
-2/region = Rect2( 0, 0, 128, 128 )
-2/tile_mode = 0
-2/occluder_offset = Vector2( 0, 0 )
-2/navigation_offset = Vector2( 0, 0 )
-2/shapes = [  ]
-2/z_index = 0
-3/name = "Tile4"
-3/texture = ExtResource( 20 )
-3/tex_offset = Vector2( 0, 0 )
-3/modulate = Color( 1, 1, 1, 1 )
-3/region = Rect2( 0, 0, 128, 128 )
-3/tile_mode = 0
-3/occluder_offset = Vector2( 0, 0 )
-3/navigation_offset = Vector2( 0, 0 )
-3/shapes = [  ]
-3/z_index = 0
-4/name = "Tile5"
-4/texture = ExtResource( 21 )
-4/tex_offset = Vector2( 0, 0 )
-4/modulate = Color( 1, 1, 1, 1 )
-4/region = Rect2( 0, 0, 128, 128 )
-4/tile_mode = 0
-4/occluder_offset = Vector2( 0, 0 )
-4/navigation_offset = Vector2( 0, 0 )
-4/shapes = [  ]
-4/z_index = 0
-5/name = "Tile6"
-5/texture = ExtResource( 22 )
-5/tex_offset = Vector2( 0, 0 )
-5/modulate = Color( 1, 1, 1, 1 )
-5/region = Rect2( 0, 0, 128, 128 )
-5/tile_mode = 0
-5/occluder_offset = Vector2( 0, 0 )
-5/navigation_offset = Vector2( 0, 0 )
-5/shapes = [  ]
-5/z_index = 0
-6/name = "Tile7"
-6/texture = ExtResource( 23 )
-6/tex_offset = Vector2( 0, 0 )
-6/modulate = Color( 1, 1, 1, 1 )
-6/region = Rect2( 0, 0, 128, 128 )
-6/tile_mode = 0
-6/occluder_offset = Vector2( 0, 0 )
-6/navigation_offset = Vector2( 0, 0 )
-6/shapes = [  ]
-6/z_index = 0
-7/name = "Tile8"
-7/texture = ExtResource( 24 )
-7/tex_offset = Vector2( 0, 0 )
-7/modulate = Color( 1, 1, 1, 1 )
-7/region = Rect2( 0, 0, 128, 128 )
-7/tile_mode = 0
-7/occluder_offset = Vector2( 0, 0 )
-7/navigation_offset = Vector2( 0, 0 )
-7/shapes = [  ]
-7/z_index = 0
-8/name = "Tile9"
-8/texture = ExtResource( 25 )
-8/tex_offset = Vector2( 0, 0 )
-8/modulate = Color( 1, 1, 1, 1 )
-8/region = Rect2( 0, 0, 128, 128 )
-8/tile_mode = 0
-8/occluder_offset = Vector2( 0, 0 )
-8/navigation_offset = Vector2( 0, 0 )
-8/shapes = [  ]
-8/z_index = 0
-9/name = "Tile10"
-9/texture = ExtResource( 26 )
-9/tex_offset = Vector2( 0, 0 )
-9/modulate = Color( 1, 1, 1, 1 )
-9/region = Rect2( 0, 0, 128, 128 )
-9/tile_mode = 0
-9/occluder_offset = Vector2( 0, 0 )
-9/navigation_offset = Vector2( 0, 0 )
-9/shapes = [  ]
-9/z_index = 0
-10/name = "Tile11"
-10/texture = ExtResource( 3 )
-10/tex_offset = Vector2( 0, 0 )
-10/modulate = Color( 1, 1, 1, 1 )
-10/region = Rect2( 0, 0, 128, 128 )
-10/tile_mode = 0
-10/occluder_offset = Vector2( 0, 0 )
-10/navigation_offset = Vector2( 0, 0 )
-10/shapes = [  ]
-10/z_index = 0
-11/name = "Tile12"
-11/texture = ExtResource( 4 )
-11/tex_offset = Vector2( 0, 0 )
-11/modulate = Color( 1, 1, 1, 1 )
-11/region = Rect2( 0, 0, 128, 128 )
-11/tile_mode = 0
-11/occluder_offset = Vector2( 0, 0 )
-11/navigation_offset = Vector2( 0, 0 )
-11/shapes = [  ]
-11/z_index = 0
-12/name = "Tile13"
-12/texture = ExtResource( 5 )
-12/tex_offset = Vector2( 0, 0 )
-12/modulate = Color( 1, 1, 1, 1 )
-12/region = Rect2( 0, 0, 128, 128 )
-12/tile_mode = 0
-12/occluder_offset = Vector2( 0, 0 )
-12/navigation_offset = Vector2( 0, 0 )
-12/shapes = [  ]
-12/z_index = 0
-13/name = "Tile14"
-13/texture = ExtResource( 6 )
-13/tex_offset = Vector2( 0, 0 )
-13/modulate = Color( 1, 1, 1, 1 )
-13/region = Rect2( 0, 0, 128, 128 )
-13/tile_mode = 0
-13/occluder_offset = Vector2( 0, 0 )
-13/navigation_offset = Vector2( 0, 0 )
-13/shapes = [  ]
-13/z_index = 0
-14/name = "Tile15"
-14/texture = ExtResource( 7 )
-14/tex_offset = Vector2( 0, 0 )
-14/modulate = Color( 1, 1, 1, 1 )
-14/region = Rect2( 0, 0, 128, 128 )
-14/tile_mode = 0
-14/occluder_offset = Vector2( 0, 0 )
-14/navigation_offset = Vector2( 0, 0 )
-14/shapes = [  ]
-14/z_index = 0
-15/name = "Tile16"
-15/texture = ExtResource( 8 )
-15/tex_offset = Vector2( 0, 0 )
-15/modulate = Color( 1, 1, 1, 1 )
-15/region = Rect2( 0, 0, 128, 128 )
-15/tile_mode = 0
-15/occluder_offset = Vector2( 0, 0 )
-15/navigation_offset = Vector2( 0, 0 )
-15/shapes = [  ]
-15/z_index = 0
-16/name = "Tile17"
-16/texture = ExtResource( 9 )
-16/tex_offset = Vector2( 0, 0 )
-16/modulate = Color( 1, 1, 1, 1 )
-16/region = Rect2( 0, 0, 128, 128 )
-16/tile_mode = 0
-16/occluder_offset = Vector2( 0, 0 )
-16/navigation_offset = Vector2( 0, 0 )
-16/shapes = [  ]
-16/z_index = 0
-17/name = "Tile18"
-17/texture = ExtResource( 10 )
-17/tex_offset = Vector2( 0, 0 )
-17/modulate = Color( 1, 1, 1, 1 )
-17/region = Rect2( 0, 0, 128, 128 )
-17/tile_mode = 0
-17/occluder_offset = Vector2( 0, 0 )
-17/navigation_offset = Vector2( 0, 0 )
-17/shapes = [  ]
-17/z_index = 0
-18/name = "Tile19"
-18/texture = ExtResource( 11 )
-18/tex_offset = Vector2( 0, 0 )
-18/modulate = Color( 1, 1, 1, 1 )
-18/region = Rect2( 0, 0, 128, 128 )
-18/tile_mode = 0
-18/occluder_offset = Vector2( 0, 0 )
-18/navigation_offset = Vector2( 0, 0 )
-18/shapes = [  ]
-18/z_index = 0
-19/name = "Tile20"
-19/texture = ExtResource( 12 )
-19/tex_offset = Vector2( 0, 0 )
-19/modulate = Color( 1, 1, 1, 1 )
-19/region = Rect2( 0, 0, 128, 128 )
-19/tile_mode = 0
-19/occluder_offset = Vector2( 0, 0 )
-19/navigation_offset = Vector2( 0, 0 )
-19/shapes = [  ]
-19/z_index = 0
-20/name = "Tile21"
-20/texture = ExtResource( 14 )
-20/tex_offset = Vector2( 0, 0 )
-20/modulate = Color( 1, 1, 1, 1 )
-20/region = Rect2( 0, 0, 128, 128 )
-20/tile_mode = 0
-20/occluder_offset = Vector2( 0, 0 )
-20/navigation_offset = Vector2( 0, 0 )
-20/shapes = [  ]
-20/z_index = 0
-21/name = "Tile22"
-21/texture = ExtResource( 15 )
-21/tex_offset = Vector2( 0, 0 )
-21/modulate = Color( 1, 1, 1, 1 )
-21/region = Rect2( 0, 0, 128, 128 )
-21/tile_mode = 0
-21/occluder_offset = Vector2( 0, 0 )
-21/navigation_offset = Vector2( 0, 0 )
-21/shapes = [  ]
-21/z_index = 0
-22/name = "Tile23"
-22/texture = ExtResource( 16 )
-22/tex_offset = Vector2( 0, 0 )
-22/modulate = Color( 1, 1, 1, 1 )
-22/region = Rect2( 0, 0, 128, 128 )
-22/tile_mode = 0
-22/occluder_offset = Vector2( 0, 0 )
-22/navigation_offset = Vector2( 0, 0 )
-22/shapes = [  ]
-22/z_index = 0
-23/name = "Tile24"
-23/texture = ExtResource( 17 )
-23/tex_offset = Vector2( 0, 0 )
-23/modulate = Color( 1, 1, 1, 1 )
-23/region = Rect2( 0, 0, 128, 128 )
-23/tile_mode = 0
-23/occluder_offset = Vector2( 0, 0 )
-23/navigation_offset = Vector2( 0, 0 )
-23/shapes = [  ]
-23/z_index = 0
-24/name = "Tile25"
-24/texture = ExtResource( 18 )
-24/tex_offset = Vector2( 0, 0 )
-24/modulate = Color( 1, 1, 1, 1 )
-24/region = Rect2( 0, 0, 128, 128 )
-24/tile_mode = 0
-24/occluder_offset = Vector2( 0, 0 )
-24/navigation_offset = Vector2( 0, 0 )
-24/shapes = [  ]
-24/z_index = 0
-25/name = "Tile26"
-25/texture = ExtResource( 19 )
-25/tex_offset = Vector2( 0, 0 )
-25/modulate = Color( 1, 1, 1, 1 )
-25/region = Rect2( 0, 0, 128, 128 )
-25/tile_mode = 0
-25/occluder_offset = Vector2( 0, 0 )
-25/navigation_offset = Vector2( 0, 0 )
-25/shapes = [  ]
-25/z_index = 0
+tile_shape = 3
+tile_offset_axis = 1
+tile_size = Vector2i(110, 94)
+sources/0 = SubResource("TileSetAtlasSource_oh287")
+sources/1 = SubResource("TileSetAtlasSource_bmxdu")
+sources/2 = SubResource("TileSetAtlasSource_c2r56")
+sources/3 = SubResource("TileSetAtlasSource_88jh5")
+sources/4 = SubResource("TileSetAtlasSource_hfv7b")
+sources/5 = SubResource("TileSetAtlasSource_xix30")
+sources/6 = SubResource("TileSetAtlasSource_svdm5")
+sources/7 = SubResource("TileSetAtlasSource_xg1yk")
+sources/8 = SubResource("TileSetAtlasSource_rjq70")
+sources/9 = SubResource("TileSetAtlasSource_fpx8o")
+sources/10 = SubResource("TileSetAtlasSource_u8sk8")
+sources/11 = SubResource("TileSetAtlasSource_dtlkn")
+sources/12 = SubResource("TileSetAtlasSource_k6l3k")
+sources/13 = SubResource("TileSetAtlasSource_yird3")
+sources/14 = SubResource("TileSetAtlasSource_2rlgx")
+sources/15 = SubResource("TileSetAtlasSource_4vyst")
+sources/16 = SubResource("TileSetAtlasSource_hte4l")
+sources/17 = SubResource("TileSetAtlasSource_1o5vu")
+sources/18 = SubResource("TileSetAtlasSource_qxvr3")
+sources/19 = SubResource("TileSetAtlasSource_w48kd")
+sources/20 = SubResource("TileSetAtlasSource_ppq3m")
+sources/21 = SubResource("TileSetAtlasSource_2nvyk")
+sources/22 = SubResource("TileSetAtlasSource_rfmnc")
+sources/23 = SubResource("TileSetAtlasSource_25mrk")
+sources/24 = SubResource("TileSetAtlasSource_3l4iw")
+sources/25 = SubResource("TileSetAtlasSource_jm5h0")

+ 8 - 5
2d/hexagonal_map/troll.gd

@@ -1,13 +1,16 @@
 extends CharacterBody2D
 
-const MOTION_SPEED = 160 # Pixels/second.
-const TAN30DEG = tan(deg2rad(30))
+const MOTION_SPEED = 30
+const FRICTION_FACTOR = 0.89
+const TAN30DEG = tan(deg_to_rad(30))
 
 func _physics_process(_delta):
 	var motion = Vector2()
 	motion.x = Input.get_axis(&"move_left", &"move_right")
 	motion.y = Input.get_axis(&"move_up", &"move_down")
+	# Make diagonal movement fit for hexagonal tiles.
 	motion.y *= TAN30DEG
-	motion = motion.normalized() * MOTION_SPEED
-	#warning-ignore:return_value_discarded
-	move_and_slide(motion)
+	velocity += motion.normalized() * MOTION_SPEED
+	# Apply friction.
+	velocity *= FRICTION_FACTOR
+	move_and_slide()

+ 14 - 15
2d/hexagonal_map/troll.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex"
+type="CompressedTexture2D"
+uid="uid://c125b0x0g8lwk"
+path="res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://troll.png"
-dest_files=["res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex"]
+dest_files=["res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 13 - 7
2d/hexagonal_map/troll.tscn

@@ -1,20 +1,26 @@
-[gd_scene load_steps=4 format=2]
+[gd_scene load_steps=4 format=3 uid="uid://bryfdf2r0lvau"]
 
-[ext_resource path="res://troll.gd" type="Script" id=1]
-[ext_resource path="res://troll.png" type="Texture2D" id=2]
+[ext_resource type="Script" path="res://troll.gd" id="1"]
+[ext_resource type="Texture2D" uid="uid://c125b0x0g8lwk" path="res://troll.png" id="2"]
 
-[sub_resource type="CircleShape2D" id=1]
+[sub_resource type="CircleShape2D" id="1"]
 radius = 16.0
 
 [node name="Troll" type="CharacterBody2D"]
-script = ExtResource( 1 )
+script = ExtResource("1")
 
 [node name="Sprite2D" type="Sprite2D" parent="."]
-texture = ExtResource( 2 )
+texture = ExtResource("2")
+
+[node name="Shadow" type="Sprite2D" parent="."]
+modulate = Color(0, 0, 0, 0.501961)
+show_behind_parent = true
+position = Vector2(3, 3)
+texture = ExtResource("2")
 
 [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
 position = Vector2(3.24216, 19.453)
-shape = SubResource( 1 )
+shape = SubResource("1")
 
 [node name="Camera2D" type="Camera2D" parent="."]
 current = true

+ 1 - 0
2d/instancing/bowling_ball.png.import

@@ -29,5 +29,6 @@ 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

+ 1 - 0
2d/instancing/icon.png.import

@@ -29,5 +29,6 @@ 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

+ 3 - 2
2d/instancing/project.godot

@@ -14,12 +14,11 @@ config/name="Scene Instancing Demo"
 config/description="A demo showing how to use scene instancing to
 make many duplicates of the same object."
 run/main_scene="res://scene_instancing.tscn"
-config/icon="res://icon.png"
 config/features=PackedStringArray("4.0")
+config/icon="res://icon.png"
 
 [display]
 
-window/size/viewport_width=800
 window/stretch/mode="canvas_items"
 window/stretch/aspect="expand"
 
@@ -29,4 +28,6 @@ window/stretch/aspect="expand"
 
 [rendering]
 
+environment/defaults/default_clear_color=Color(0.239216, 0.0823529, 0.156863, 1)
+anti_aliasing/quality/msaa_2d=2
 vulkan/rendering/back_end=1

+ 38 - 34
2d/instancing/scene_instancing.tscn

@@ -36,15 +36,19 @@ bounce = 0.4
 [node name="SceneInstancing" type="Node2D"]
 
 [node name="InfoLabel" type="Label" parent="."]
-offset_right = 354.0
-offset_bottom = 26.0
+offset_left = 16.0
+offset_top = 16.0
+offset_right = 370.0
+offset_bottom = 42.0
 text = "Click the mouse to spawn a new Ball instance."
 horizontal_alignment = 1
+metadata/_edit_use_anchors_ = true
 
 [node name="BallFactory" type="Node2D" parent="."]
-script = ExtResource( "1" )
+script = ExtResource("1")
 
 [node name="Static" type="StaticBody2D" parent="."]
+position = Vector2(184, 32)
 
 [node name="Collision" type="CollisionPolygon2D" parent="Static"]
 polygon = PackedVector2Array(8.68994, 22.1976, 50.4445, 556.656, 292.621, 501.54, 335.36, 550.855, 510.039, 563.135, 542.137, 526.368, 567.463, 515.822, 612.463, 506.822, 667.291, 495.079, 747.553, 553.575, 793.806, 6.70509, 802.465, 601.097, 4.43558, 596.186)
@@ -53,46 +57,46 @@ polygon = PackedVector2Array(8.68994, 22.1976, 50.4445, 556.656, 292.621, 501.54
 color = Color(1, 0.266667, 0.419608, 1)
 polygon = PackedVector2Array(8.68994, 22.1976, 50.4445, 556.656, 292.621, 501.54, 335.36, 550.855, 510.039, 563.135, 542.137, 526.368, 567.463, 515.822, 612.463, 506.822, 667.291, 495.079, 747.553, 553.575, 793.806, 6.70509, 802.465, 601.097, 4.43558, 596.186)
 
-[node name="Ball1" parent="." instance=ExtResource( "2" )]
-position = Vector2(223.823, 161.773)
-physics_material_override = SubResource( "1" )
+[node name="Ball1" parent="." instance=ExtResource("2")]
+position = Vector2(407.823, 193.773)
+physics_material_override = SubResource("1")
 
-[node name="Ball2" parent="." instance=ExtResource( "2" )]
-position = Vector2(388.078, 213.215)
-physics_material_override = SubResource( "2" )
+[node name="Ball2" parent="." instance=ExtResource("2")]
+position = Vector2(572.078, 245.215)
+physics_material_override = SubResource("2")
 
-[node name="Ball3" parent="." instance=ExtResource( "2" )]
-position = Vector2(439.52, 104.013)
-physics_material_override = SubResource( "3" )
+[node name="Ball3" parent="." instance=ExtResource("2")]
+position = Vector2(623.52, 136.013)
+physics_material_override = SubResource("3")
 
-[node name="Ball4" parent="." instance=ExtResource( "2" )]
-position = Vector2(235.555, 336.858)
-physics_material_override = SubResource( "4" )
+[node name="Ball4" parent="." instance=ExtResource("2")]
+position = Vector2(419.555, 368.858)
+physics_material_override = SubResource("4")
 
-[node name="Ball5" parent="." instance=ExtResource( "2" )]
-position = Vector2(509.555, 362.858)
-physics_material_override = SubResource( "5" )
+[node name="Ball5" parent="." instance=ExtResource("2")]
+position = Vector2(693.555, 394.858)
+physics_material_override = SubResource("5")
 
-[node name="Ball6" parent="." instance=ExtResource( "2" )]
-position = Vector2(635.555, 147.858)
-physics_material_override = SubResource( "6" )
+[node name="Ball6" parent="." instance=ExtResource("2")]
+position = Vector2(819.555, 179.858)
+physics_material_override = SubResource("6")
 
-[node name="Ball7" parent="." instance=ExtResource( "2" )]
-position = Vector2(631.872, 325.88)
-physics_material_override = SubResource( "7" )
+[node name="Ball7" parent="." instance=ExtResource("2")]
+position = Vector2(815.872, 357.88)
+physics_material_override = SubResource("7")
 
-[node name="Ball8" parent="." instance=ExtResource( "2" )]
-position = Vector2(529.97, 205.561)
-physics_material_override = SubResource( "8" )
+[node name="Ball8" parent="." instance=ExtResource("2")]
+position = Vector2(713.97, 237.561)
+physics_material_override = SubResource("8")
 
-[node name="Ball9" parent="." instance=ExtResource( "2" )]
-position = Vector2(101.489, 167.502)
-physics_material_override = SubResource( "9" )
+[node name="Ball9" parent="." instance=ExtResource("2")]
+position = Vector2(285.489, 199.502)
+physics_material_override = SubResource("9")
 
-[node name="Ball10" parent="." instance=ExtResource( "2" )]
-position = Vector2(143.756, 295.139)
-physics_material_override = SubResource( "10" )
+[node name="Ball10" parent="." instance=ExtResource("2")]
+position = Vector2(327.756, 327.139)
+physics_material_override = SubResource("10")
 
 [node name="Camera2D" type="Camera2D" parent="."]
-offset = Vector2(400, 300)
+offset = Vector2(576, 324)
 current = true

+ 11 - 20
2d/isometric/dungeon.tscn

@@ -1,28 +1,19 @@
-[gd_scene load_steps=3 format=2]
+[gd_scene load_steps=3 format=3 uid="uid://d2n73c4vcs6yd"]
 
-[ext_resource path="res://tileset.tres" type="TileSet" id=1]
-[ext_resource path="res://troll.tscn" type="PackedScene" id=2]
+[ext_resource type="TileSet" uid="uid://r7h8te85l3bx" path="res://tileset.tres" id="1"]
+[ext_resource type="PackedScene" uid="uid://cvs6nhy4ydg0u" path="res://troll.tscn" id="2"]
 
 [node name="Dungeon" type="Node2D"]
 
 [node name="Floor" type="TileMap" parent="."]
-mode = 1
-tile_set = ExtResource( 1 )
-cell_size = Vector2(128, 64)
-cell_tile_origin = 1
-centered_textures = true
-format = 1
-tile_data = PackedInt32Array(-917493, 0, 0, -917492, 0, 0, -917491, 0, 0, -917490, 0, 0, -851957, 0, 0, -851956, 0, 0, -851955, 0, 0, -851954, 0, 0, -786421, 0, 0, -786420, 1, 0, -786419, 0, -1200553578, -786418, 0, 0, -720885, 0, 0, -720884, 0, 0, -720883, 0, -1200553578, -720882, 0, 0, -655349, 0, 0, -655348, 1, 0, -655347, 0, -1200553578, -655346, 0, 0, -589813, 0, 0, -589812, 1, 0, -589811, 0, -1200553578, -589810, 0, 0, -524277, 0, 0, -524276, 0, 0, -524275, 1, -1200553578, -524274, 0, 0, -458747, 0, 0, -458746, 0, 0, -458745, 0, 0, -458744, 0, 0, -458743, 0, 0, -458742, 0, 0, -458741, 0, 0, -458740, 0, 0, -458739, 0, -1200553578, -458738, 0, 0, -393211, 0, 0, -393210, 0, 0, -393209, 0, 0, -393208, 0, 0, -393207, 0, 0, -393206, 0, 0, -393205, 0, 0, -393204, 0, 0, -393203, 0, -1200553578, -393202, 0, 0, -327675, 0, 0, -327674, 0, 0, -327673, 0, -1200553578, -327672, 1, -1200553578, -327671, 1, -1200553578, -327670, 1, 0, -327669, 1, 0, -327668, 1, 0, -327667, 0, -1200553578, -327666, 0, 0, -262139, 0, 0, -262138, 0, 0, -262137, 0, -1200553578, -262136, 0, -1200553578, -262135, 0, -1200553578, -262134, 0, -1200553578, -262133, 0, -1200553578, -262132, 0, -1200553578, -262131, 0, -1200553578, -262130, 0, 0, -196603, 0, 0, -196602, 0, 0, -196601, 0, -1200553578, -196600, 0, -1200553578, -196599, 0, 0, -196598, 0, 0, -196597, 0, 0, -196596, 0, 0, -196595, 0, 0, -196594, 0, 0, -131067, 0, 0, -131066, 0, 0, -131065, 0, -1200553578, -131064, 0, -1200553578, -131063, 0, 0, -65531, 0, 0, -65530, 0, 0, -65529, 0, -1200553578, -65528, 0, -1200553578, -65527, 0, 0, 5, 0, 0, 6, 0, 0, 7, 1, -1200553578, 8, 0, -1200553578, 9, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, -1200553578, 65544, 0, -1200553578, 65545, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, -1200553578, 131080, 0, -1200553578, 131081, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0)
+tile_set = ExtResource("1")
+format = 2
+layer_0/tile_data = PackedInt32Array(-917493, 0, 0, -917492, 0, 0, -917491, 0, 0, -917490, 0, 0, -851957, 0, 0, -851956, 0, 0, -851955, 0, 0, -851954, 0, 0, -786421, 0, 0, -786420, 1, 0, -786419, 0, 0, -786418, 0, 0, -720885, 0, 0, -720884, 0, 0, -720883, 0, 0, -720882, 0, 0, -655349, 0, 0, -655348, 1, 0, -655347, 0, 0, -655346, 0, 0, -589813, 0, 0, -589812, 1, 0, -589811, 0, 0, -589810, 0, 0, -524277, 0, 0, -524276, 0, 0, -524275, 1, 0, -524274, 0, 0, -458747, 0, 0, -458746, 0, 0, -458745, 0, 0, -458744, 0, 0, -458743, 0, 0, -458742, 0, 0, -458741, 0, 0, -458740, 0, 0, -458739, 0, 0, -458738, 0, 0, -393211, 0, 0, -393210, 0, 0, -393209, 0, 0, -393208, 0, 0, -393207, 0, 0, -393206, 0, 0, -393205, 0, 0, -393204, 0, 0, -393203, 0, 0, -393202, 0, 0, -327675, 0, 0, -327674, 0, 0, -327673, 0, 0, -327672, 1, 0, -327671, 1, 0, -327670, 1, 0, -327669, 1, 0, -327668, 1, 0, -327667, 0, 0, -327666, 0, 0, -262139, 0, 0, -262138, 0, 0, -262137, 0, 0, -262136, 0, 0, -262135, 0, 0, -262134, 0, 0, -262133, 0, 0, -262132, 0, 0, -262131, 0, 0, -262130, 0, 0, -196603, 0, 0, -196602, 0, 0, -196601, 0, 0, -196600, 0, 0, -196599, 0, 0, -196598, 0, 0, -196597, 0, 0, -196596, 0, 0, -196595, 0, 0, -196594, 0, 0, -131067, 0, 0, -131066, 0, 0, -131065, 0, 0, -131064, 0, 0, -131063, 0, 0, -65531, 0, 0, -65530, 0, 0, -65529, 0, 0, -65528, 0, 0, -65527, 0, 0, 5, 0, 0, 6, 0, 0, 7, 1, 0, 8, 0, 0, 9, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 1, 0)
 
 [node name="Walls" type="TileMap" parent="."]
-mode = 1
-tile_set = ExtResource( 1 )
-cell_size = Vector2(128, 64)
-cell_tile_origin = 1
-cell_y_sort = true
-centered_textures = true
-format = 1
-tile_data = PackedInt32Array(-917493, 2, -1200553578, -917492, 2, -1200553578, -917491, 2, -1200553578, -917490, 2, -1200553578, -917489, 2, -1200553578, -851957, 2, -1200553578, -851956, 3, -1200553578, -851954, 3, -1200553578, -851953, 2, -1200553578, -786421, 2, -1200553578, -786420, 3, -1200553578, -786418, 3, -1200553578, -786417, 2, -1200553578, -720885, 2, -1200553578, -720881, 2, -1200553578, -655349, 2, -1200553578, -655348, 2, -1200553578, -655346, 3, -1200553578, -655345, 2, -1200553578, -589813, 2, -1200553578, -589809, 2, -1200553578, -524277, 2, -1200553578, -524273, 2, -1200553578, -458747, 2, -1200553578, -458746, 2, -1200553578, -458745, 2, -1200553578, -458744, 536870916, -1200553578, -458743, 536870916, -1200553578, -458742, 2, 0, -458741, 2, 0, -458740, 2, 0, -458738, 2, 0, -458737, 2, -1200553578, -393211, 2, -1200553578, -393209, 3, -1200553578, -393201, 2, -1200553578, -327675, 4, -1200553578, -327665, 2, -1200553578, -262139, 4, -1200553578, -262129, 2, -1200553578, -196603, 2, 0, -196601, 3, 0, -196593, 2, -1200553578, -131067, 2, 0, -131062, 2, -1200553578, -131061, 2, -1200553578, -131060, 2, -1200553578, -131059, 2, -1200553578, -131058, 2, -1200553578, -131057, 2, -1200553578, -65531, 2, 0, -65530, 2, 0, -65527, 2, -1200553578, -65526, 2, -1200553578, 5, 2, -1200553578, 10, 2, 0, 65541, 2, -1200553578, 65546, 2, 0, 131077, 2, -1200553578, 131081, 3, 0, 131082, 2, 0, 196613, 2, -1200553578, 196618, 2, 0, 262149, 2, -1200553578, 262150, 2, -1200553578, 262151, 2, -1200553578, 262152, 2, 0, 262153, 2, 0, 262154, 2, 0)
+tile_set = ExtResource("1")
+format = 2
+layer_0/tile_data = PackedInt32Array(-917493, 2, 0, -917492, 2, 0, -917491, 2, 0, -917490, 2, 0, -917489, 2, 0, -851957, 2, 0, -851956, 3, 0, -851954, 3, 0, -851953, 2, 0, -786421, 2, 0, -786420, 3, 0, -786418, 3, 0, -786417, 2, 0, -720885, 2, 0, -720881, 2, 0, -655349, 2, 0, -655348, 2, 0, -655346, 3, 0, -655345, 2, 0, -589813, 2, 0, -589809, 2, 0, -524277, 2, 0, -524273, 2, 0, -458747, 2, 0, -458746, 2, 0, -458745, 2, 0, -458744, 4, 65536, -458743, 4, 65536, -458742, 2, 0, -458741, 2, 0, -458740, 2, 0, -458738, 2, 0, -458737, 2, 0, -393211, 2, 0, -393209, 3, 0, -393201, 2, 0, -327675, 4, 0, -327665, 2, 0, -262139, 4, 0, -262129, 2, 0, -196603, 2, 0, -196601, 3, 0, -196593, 2, 0, -131067, 2, 0, -131062, 2, 0, -131061, 2, 0, -131060, 2, 0, -131059, 2, 0, -131058, 2, 0, -131057, 2, 0, -65531, 2, 0, -65530, 2, 0, -65527, 2, 0, -65526, 2, 0, 5, 2, 0, 10, 2, 0, 65541, 2, 0, 65546, 2, 0, 131077, 2, 0, 131082, 2, 0, 196613, 2, 0, 196618, 2, 0, 262149, 2, 0, 262150, 2, 0, 262151, 2, 0, 262152, 2, 0, 262153, 2, 0, 262154, 2, 0, 131081, 3, 0)
 
-[node name="Troll" parent="Walls" instance=ExtResource( 2 )]
-position = Vector2(368.142, 347.007)
+[node name="Troll" parent="Walls" instance=ExtResource("2")]
+position = Vector2(448.142, 339.007)

+ 14 - 15
2d/isometric/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://cyuecw0rd5i3y"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 14 - 15
2d/isometric/isotiles.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex"
+type="CompressedTexture2D"
+uid="uid://kqinbs473dse"
+path="res://.godot/imported/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://isotiles.png"
-dest_files=["res://.godot/imported/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex"]
+dest_files=["res://.godot/imported/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 18 - 30
2d/isometric/project.godot

@@ -6,7 +6,7 @@
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 
-config_version=4
+config_version=5
 
 [application]
 
@@ -16,65 +16,53 @@ config/description="This demo shows a traditional isometric view with depth sort
 A character can move around the level and will also slide around objects,
 as well as be occluded when standing in front or behind them."
 run/main_scene="res://dungeon.tscn"
+config/features=PackedStringArray("4.0")
 config/icon="res://icon.png"
 
 [display]
 
-window/dpi/allow_hidpi=true
-window/stretch/mode="2d"
+window/stretch/mode="canvas_items"
 window/stretch/aspect="expand"
 
-[gdnative]
-
-singletons=[]
-
-[image_loader]
-
-filter=false
-gen_mipmaps=false
-
 [input]
 
 move_down={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":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)
+"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"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":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)
 ]
 }
 move_left={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":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)
+"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"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":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)
 ]
 }
 move_right={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":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)
+"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"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":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)
 ]
 }
 move_up={
 "deadzone": 0.5,
-"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":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)
+"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"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":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)
 ]
 }
 
-[rasterizer]
+[physics]
 
-use_pixel_snap=true
+common/physics_ticks_per_second=120
 
 [rendering]
 
-quality/driver/driver_name="GLES2"
-vram_compression/import_etc=true
-vram_compression/import_etc2=false
-environment/default_clear_color=Color(0.0784314, 0.105882, 0.145098, 1)
+environment/defaults/default_clear_color=Color(0.03, 0.082, 0.15, 1)

+ 242 - 99
2d/isometric/tileset.tres

@@ -1,105 +1,248 @@
-[gd_resource type="TileSet" load_steps=5 format=2]
+[gd_resource type="TileSet" load_steps=7 format=3 uid="uid://r7h8te85l3bx"]
 
-[ext_resource path="res://isotiles.png" type="Texture2D" id=1]
+[ext_resource type="Texture2D" uid="uid://kqinbs473dse" path="res://isotiles.png" id="1"]
 
-[sub_resource type="ConvexPolygonShape2D" id=1]
-points = PackedVector2Array( 0, -32, 64, 0, 0, 32, -64, 0 )
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ha7ln"]
+texture = ExtResource("1")
+margins = Vector2i(28, 75)
+texture_region_size = Vector2i(135, 105)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/0/physics_layer_0/angular_velocity = 0.0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/1/physics_layer_0/angular_velocity = 0.0
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/2/physics_layer_0/angular_velocity = 0.0
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/3/physics_layer_0/angular_velocity = 0.0
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/4/physics_layer_0/angular_velocity = 0.0
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/5/physics_layer_0/angular_velocity = 0.0
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/6/physics_layer_0/angular_velocity = 0.0
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/7/physics_layer_0/angular_velocity = 0.0
 
-[sub_resource type="ConvexPolygonShape2D" id=2]
-points = PackedVector2Array( -24, -12, -10, -22, 10, -22, 24, -12, 24, 2, 10, 12, -10, 12, -24, 2 )
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_asp48"]
+texture = ExtResource("1")
+margins = Vector2i(221, 75)
+texture_region_size = Vector2i(135, 105)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/0/physics_layer_0/angular_velocity = 0.0
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/1/physics_layer_0/angular_velocity = 0.0
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/2/physics_layer_0/angular_velocity = 0.0
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/3/physics_layer_0/angular_velocity = 0.0
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/4/physics_layer_0/angular_velocity = 0.0
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/5/physics_layer_0/angular_velocity = 0.0
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/6/physics_layer_0/angular_velocity = 0.0
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/7/physics_layer_0/angular_velocity = 0.0
 
-[sub_resource type="ConvexPolygonShape2D" id=3]
-points = PackedVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_70d1t"]
+texture = ExtResource("1")
+margins = Vector2i(28, 220)
+texture_region_size = Vector2i(140, 140)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/0/physics_layer_0/angular_velocity = 0.0
+0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-1.5, -2.5, -65, 32, -3, 64.5, 62, 31)
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/1/physics_layer_0/angular_velocity = 0.0
+0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70)
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/2/physics_layer_0/angular_velocity = 0.0
+0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70)
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/3/physics_layer_0/angular_velocity = 0.0
+0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70)
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/4/physics_layer_0/angular_velocity = 0.0
+0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70)
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/5/physics_layer_0/angular_velocity = 0.0
+0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70)
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/6/physics_layer_0/angular_velocity = 0.0
+0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70)
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/7/physics_layer_0/angular_velocity = 0.0
+0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70)
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_4o6e1"]
+texture = ExtResource("1")
+margins = Vector2i(259, 241)
+texture_region_size = Vector2i(55, 95)
+0:0/next_alternative_id = 9
+0:0/0 = 0
+0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/0/physics_layer_0/angular_velocity = 0.0
+0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 8.5, -13, 12.5, -22, 25.5, -18, 38.5, 2.5, 44, 23, 40, 27, 26, 19, 13)
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/1/physics_layer_0/angular_velocity = 0.0
+0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5)
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/2/physics_layer_0/angular_velocity = 0.0
+0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5)
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/3/physics_layer_0/angular_velocity = 0.0
+0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5)
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/4/physics_layer_0/angular_velocity = 0.0
+0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5)
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/5/physics_layer_0/angular_velocity = 0.0
+0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5)
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/6/physics_layer_0/angular_velocity = 0.0
+0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5)
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/7/physics_layer_0/angular_velocity = 0.0
+0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5)
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3pxuh"]
+texture = ExtResource("1")
+margins = Vector2i(54, 426)
+texture_region_size = Vector2i(85, 110)
+0:0/next_alternative_id = 8
+0:0/0 = 0
+0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/0/physics_layer_0/angular_velocity = 0.0
+0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(24.8, -19.6, -39.5, 12, -21.5, 21, 43, -10.5)
+0:0/1 = 1
+0:0/1/flip_h = true
+0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/1/physics_layer_0/angular_velocity = 0.0
+0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-21, -21.5, -42, -11, 25.5, 19.5, 39, 12.5)
+0:0/2 = 2
+0:0/2/flip_v = true
+0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/2/physics_layer_0/angular_velocity = 0.0
+0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79)
+0:0/3 = 3
+0:0/3/flip_h = true
+0:0/3/flip_v = true
+0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/3/physics_layer_0/angular_velocity = 0.0
+0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79)
+0:0/4 = 4
+0:0/4/transpose = true
+0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/4/physics_layer_0/angular_velocity = 0.0
+0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79)
+0:0/5 = 5
+0:0/5/flip_h = true
+0:0/5/transpose = true
+0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/5/physics_layer_0/angular_velocity = 0.0
+0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79)
+0:0/6 = 6
+0:0/6/flip_v = true
+0:0/6/transpose = true
+0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/6/physics_layer_0/angular_velocity = 0.0
+0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79)
+0:0/7 = 7
+0:0/7/flip_h = true
+0:0/7/flip_v = true
+0:0/7/transpose = true
+0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/7/physics_layer_0/angular_velocity = 0.0
+0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79)
 
 [resource]
-0/name = "Base"
-0/texture = ExtResource( 1 )
-0/tex_offset = Vector2( 0, 0 )
-0/modulate = Color( 1, 1, 1, 1 )
-0/region = Rect2( 28, 75, 135, 105 )
-0/tile_mode = 0
-0/occluder_offset = Vector2( 67.5, 52.5 )
-0/navigation_offset = Vector2( 67.5, 52.5 )
-0/shape_offset = Vector2( 0, 0 )
-0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
-0/shape_one_way = false
-0/shape_one_way_margin = 0.0
-0/shapes = [  ]
-0/z_index = 0
-1/name = "Base2"
-1/texture = ExtResource( 1 )
-1/tex_offset = Vector2( 0, 0 )
-1/modulate = Color( 1, 1, 1, 1 )
-1/region = Rect2( 221, 75, 135, 105 )
-1/tile_mode = 0
-1/occluder_offset = Vector2( 67.5, 52.5 )
-1/navigation_offset = Vector2( 67.5, 52.5 )
-1/shape_offset = Vector2( 0, 0 )
-1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
-1/shape_one_way = false
-1/shape_one_way_margin = 0.0
-1/shapes = [  ]
-1/z_index = 0
-2/name = "Wall"
-2/texture = ExtResource( 1 )
-2/tex_offset = Vector2( 0, -32 )
-2/modulate = Color( 1, 1, 1, 1 )
-2/region = Rect2( 28, 220, 140, 140 )
-2/tile_mode = 0
-2/occluder_offset = Vector2( 70, 70 )
-2/navigation_offset = Vector2( 70, 70 )
-2/shape_offset = Vector2( 70, 70 )
-2/shape_transform = Transform2D( 1, 0, 0, 1, 70, 70 )
-2/shape = SubResource( 1 )
-2/shape_one_way = false
-2/shape_one_way_margin = 1.0
-2/shapes = [ {
-"autotile_coord": Vector2( 0, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 1 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 70, 70 )
-} ]
-2/z_index = 0
-3/name = "Column"
-3/texture = ExtResource( 1 )
-3/tex_offset = Vector2( 0, -32 )
-3/modulate = Color( 1, 1, 1, 1 )
-3/region = Rect2( 259, 241, 55, 95 )
-3/tile_mode = 0
-3/occluder_offset = Vector2( 27.5, 47.5 )
-3/navigation_offset = Vector2( 27.5, 47.5 )
-3/shape_offset = Vector2( 29.5, 47.5 )
-3/shape_transform = Transform2D( 1, 0, 0, 1, 29.5, 47.5 )
-3/shape = SubResource( 2 )
-3/shape_one_way = false
-3/shape_one_way_margin = 1.0
-3/shapes = [ {
-"autotile_coord": Vector2( 0, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 2 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 29.5, 47.5 )
-} ]
-3/z_index = 0
-4/name = "Door1"
-4/texture = ExtResource( 1 )
-4/tex_offset = Vector2( 0, -25 )
-4/modulate = Color( 1, 1, 1, 1 )
-4/region = Rect2( 54, 426, 85, 110 )
-4/tile_mode = 0
-4/occluder_offset = Vector2( 42.5, 55 )
-4/navigation_offset = Vector2( 42.5, 55 )
-4/shape_offset = Vector2( 42.5, 55 )
-4/shape_transform = Transform2D( 1, 0, 0, 1, 42.5, 55 )
-4/shape = SubResource( 3 )
-4/shape_one_way = false
-4/shape_one_way_margin = 1.0
-4/shapes = [ {
-"autotile_coord": Vector2( 0, 0 ),
-"one_way": false,
-"one_way_margin": 1.0,
-"shape": SubResource( 3 ),
-"shape_transform": Transform2D( 1, 0, 0, 1, 42.5, 55 )
-} ]
-4/z_index = 0
+tile_shape = 1
+tile_layout = 5
+tile_size = Vector2i(128, 64)
+physics_layer_0/collision_layer = 1
+sources/0 = SubResource("TileSetAtlasSource_ha7ln")
+sources/1 = SubResource("TileSetAtlasSource_asp48")
+sources/2 = SubResource("TileSetAtlasSource_70d1t")
+sources/3 = SubResource("TileSetAtlasSource_4o6e1")
+sources/4 = SubResource("TileSetAtlasSource_3pxuh")

+ 7 - 4
2d/isometric/troll.gd

@@ -1,12 +1,15 @@
 extends CharacterBody2D
 
-const MOTION_SPEED = 160 # Pixels/second.
+const MOTION_SPEED = 30 # Pixels/second.
+const FRICTION_FACTOR = 0.89
 
 func _physics_process(_delta):
 	var motion = Vector2()
 	motion.x = Input.get_axis(&"move_left", &"move_right")
 	motion.y = Input.get_axis(&"move_up", &"move_down")
+	# Make diagonal movement fit isometric tiles.
 	motion.y /= 2
-	motion = motion.normalized() * MOTION_SPEED
-	#warning-ignore:return_value_discarded
-	move_and_slide(motion)
+	velocity += motion.normalized() * MOTION_SPEED
+	# Apply friction.
+	velocity *= FRICTION_FACTOR
+	move_and_slide()

+ 14 - 15
2d/isometric/troll.png.import

@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex"
+type="CompressedTexture2D"
+uid="uid://b8fv8swublbqq"
+path="res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://troll.png"
-dest_files=["res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex"]
+dest_files=["res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.ctex"]
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 13 - 7
2d/isometric/troll.tscn

@@ -1,20 +1,26 @@
-[gd_scene load_steps=4 format=2]
+[gd_scene load_steps=4 format=3 uid="uid://cvs6nhy4ydg0u"]
 
-[ext_resource path="res://troll.gd" type="Script" id=1]
-[ext_resource path="res://troll.png" type="Texture2D" id=2]
+[ext_resource type="Script" path="res://troll.gd" id="1"]
+[ext_resource type="Texture2D" uid="uid://b8fv8swublbqq" path="res://troll.png" id="2"]
 
-[sub_resource type="CircleShape2D" id=1]
+[sub_resource type="CircleShape2D" id="1"]
 radius = 16.0
 
 [node name="Troll" type="CharacterBody2D"]
-script = ExtResource( 1 )
+script = ExtResource("1")
 
 [node name="Sprite2D" type="Sprite2D" parent="."]
 position = Vector2(-4, -28)
-texture = ExtResource( 2 )
+texture = ExtResource("2")
+
+[node name="Shadow" type="Sprite2D" parent="."]
+modulate = Color(0, 0, 0, 0.501961)
+show_behind_parent = true
+position = Vector2(-1, -25)
+texture = ExtResource("2")
 
 [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
-shape = SubResource( 1 )
+shape = SubResource("1")
 
 [node name="Camera2D" type="Camera2D" parent="."]
 current = true

+ 1 - 0
2d/kinematic_character/icon.png.import

@@ -29,5 +29,6 @@ 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

+ 1 - 0
2d/kinematic_character/level/circle.png.import

@@ -29,5 +29,6 @@ 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

Vissa filer visades inte eftersom för många filer har ändrats