From 480abf76687d619ec539daa82b057897ea6c31e6 Mon Sep 17 00:00:00 2001
From: Shea Frembling <78270092+sfrembling@users.noreply.github.com>
Date: Mon, 16 Feb 2026 16:33:45 -0600
Subject: [PATCH] Create Player Controller (#4)
* add player scene
* add some logic to control player velocity
* add debug scene and reset main scene
* add sun and env to debug scene; fix normalization of movement
* add kenney WIP assets for debug
* fix movement further and add jump
* add mouse camera control
* add sprinting
* add crouching
* use constants for height
* try to improve crouching by checking to see if there is a collision above before un-crouching
* update README about line width
* move test cube in front of playercontroller
---
.../kenney_prototype-textures/License.txt | 23 ++++++
.../kenney_prototype-textures/texture_01.svg | 12 +++
.../texture_01.svg.import | 44 ++++++++++
.../kenney_prototype-textures/texture_01.swf | Bin 0 -> 1408 bytes
.../kenney_prototype-textures/texture_02.svg | 10 +++
.../texture_02.svg.import | 44 ++++++++++
.../kenney_prototype-textures/texture_02.swf | Bin 0 -> 399 bytes
.../kenney_prototype-textures/texture_03.svg | 11 +++
.../texture_03.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_03.swf | Bin 0 -> 702 bytes
.../kenney_prototype-textures/texture_04.svg | 9 ++
.../texture_04.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_04.swf | Bin 0 -> 743 bytes
.../kenney_prototype-textures/texture_05.svg | 13 +++
.../texture_05.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_05.swf | Bin 0 -> 965 bytes
.../kenney_prototype-textures/texture_06.svg | 12 +++
.../texture_06.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_06.swf | Bin 0 -> 1001 bytes
.../kenney_prototype-textures/texture_07.svg | 9 ++
.../texture_07.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_07.swf | Bin 0 -> 966 bytes
.../kenney_prototype-textures/texture_08.svg | 9 ++
.../texture_08.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_08.swf | Bin 0 -> 382 bytes
.../kenney_prototype-textures/texture_09.svg | 7 ++
.../texture_09.svg.import | 44 ++++++++++
.../kenney_prototype-textures/texture_09.swf | Bin 0 -> 162 bytes
.../kenney_prototype-textures/texture_10.svg | 9 ++
.../texture_10.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_10.swf | Bin 0 -> 480 bytes
.../kenney_prototype-textures/texture_11.svg | 13 +++
.../texture_11.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_11.swf | Bin 0 -> 1996 bytes
.../kenney_prototype-textures/texture_12.svg | 13 +++
.../texture_12.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_12.swf | Bin 0 -> 1975 bytes
.../kenney_prototype-textures/texture_13.svg | 13 +++
.../texture_13.svg.import | 43 ++++++++++
.../kenney_prototype-textures/texture_13.swf | Bin 0 -> 1874 bytes
Player/player_controller.gd | 77 ++++++++++++++++++
Player/player_controller.gd.uid | 1 +
Player/player_controller.tscn | 24 ++++++
README.md | 21 +++++
Testing/debug_scene.tscn | 42 ++++++++++
project.godot | 48 +++++++++++
46 files changed, 938 insertions(+)
create mode 100644 Assets/External/kenney_prototype-textures/License.txt
create mode 100644 Assets/External/kenney_prototype-textures/texture_01.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_01.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_01.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_02.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_02.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_02.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_03.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_03.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_03.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_04.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_04.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_04.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_05.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_05.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_05.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_06.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_06.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_06.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_07.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_07.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_07.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_08.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_08.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_08.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_09.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_09.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_09.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_10.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_10.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_10.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_11.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_11.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_11.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_12.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_12.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_12.swf
create mode 100644 Assets/External/kenney_prototype-textures/texture_13.svg
create mode 100644 Assets/External/kenney_prototype-textures/texture_13.svg.import
create mode 100644 Assets/External/kenney_prototype-textures/texture_13.swf
create mode 100644 Player/player_controller.gd
create mode 100644 Player/player_controller.gd.uid
create mode 100644 Player/player_controller.tscn
create mode 100644 Testing/debug_scene.tscn
diff --git a/Assets/External/kenney_prototype-textures/License.txt b/Assets/External/kenney_prototype-textures/License.txt
new file mode 100644
index 0000000..bda3f93
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/License.txt
@@ -0,0 +1,23 @@
+
+
+ Prototype Textures 1.0
+
+ Created/distributed by Kenney (www.kenney.nl)
+ Creation date: 08-04-2020
+
+ ------------------------------
+
+ License: (Creative Commons Zero, CC0)
+ http://creativecommons.org/publicdomain/zero/1.0/
+
+ This content is free to use in personal, educational and commercial projects.
+ Support us by crediting Kenney or www.kenney.nl (this is not mandatory)
+
+ ------------------------------
+
+ Donate: http://support.kenney.nl
+ Request: http://request.kenney.nl
+ Patreon: http://patreon.com/kenney/
+
+ Follow on Twitter for updates:
+ http://twitter.com/KenneyNL
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_01.svg b/Assets/External/kenney_prototype-textures/texture_01.svg
new file mode 100644
index 0000000..fc16bc7
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_01.svg
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_01.svg.import b/Assets/External/kenney_prototype-textures/texture_01.svg.import
new file mode 100644
index 0000000..08d449b
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_01.svg.import
@@ -0,0 +1,44 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bopr4lxuspyh0"
+path.s3tc="res://.godot/imported/texture_01.svg-82f8acd72d5ac6a6b19e294058f5bd0f.s3tc.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_01.svg"
+dest_files=["res://.godot/imported/texture_01.svg-82f8acd72d5ac6a6b19e294058f5bd0f.s3tc.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_01.swf b/Assets/External/kenney_prototype-textures/texture_01.swf
new file mode 100644
index 0000000000000000000000000000000000000000..4e602774601e9f1b54851dbfbfd9f089e9c88ef8
GIT binary patch
literal 1408
zcmV-`1%LWOS5qFs1pokeoQ0HaG?Zx=$M5Hvc`!4wV#bDOwpcTEQlim%oen9cCT6@R
zi8EfNp;n7QXGO?X3hL^O}FhP&FN1j~+&W
zjR1fR{~d|}(8{Q^1|~*l%
z_gj;Ik+vBI*hB%_Kum*X05#ElDCXZz)DQ)PLjdzZZrsq^=e(a?h)=2SO=_WdTP1j>
zZ6iD0vXp2WQxgoP3!~6N
zkKzO9@eZQnrn-}_Snu~owqMXO5N$ZH63bGB!v52Grox#j=50$%yCgR#u{~!i2?|C1
zOW54vaAr6%;S~3y%IT1KneSXY93UlD7kls2Q-Sj-&jn`n-Er0DW=px8429y3auw_3
zdtu*D_I-KgOsv3Qp{zhApe6N(&PZ0sYawCS?x@Iw3If|)5E~1m0innqacO&gs%k)7
zh2x=ptWXPqrJ`$0)K|f?nQE26b5ECzcdf~eUD`6*0EhO7hS0z}9b?D4xk6;5?Ab2v
zlCampO~l4_r7%n3UlQZ$yOYu=I`UJ@JZ#}~`ys3IB}IfR%R8J1uOtg_*GCs`A*{CN
zS|0Ef7<1I_kNh_0{r<%M$_w)eir=mD*qIs;QwXWf?KfQWtytXQ^WIHwDf!j;3mmx07x06VIRFRXX
z{;GaY;`b*{LxTrnll7fEPbQNXE!&t$La
zd<58ZO`fQuDq~*D3f)f`bN~@i?29H-uuhMe(uIAKafYkJZtHTRN5j8Pbdp0nxJAQk
zs48j1vMq}fLF;7t&aY#S`cY?kV#)}7{E8$;nytkus)b5J)SW;sViDf7Yk
z11gVQ!q_Xsnw5wYQ4-t
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_02.svg.import b/Assets/External/kenney_prototype-textures/texture_02.svg.import
new file mode 100644
index 0000000..218b890
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_02.svg.import
@@ -0,0 +1,44 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dk7mp72p1gflw"
+path.s3tc="res://.godot/imported/texture_02.svg-f2a2187af9daaac79681ea580f30b44c.s3tc.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_02.svg"
+dest_files=["res://.godot/imported/texture_02.svg-f2a2187af9daaac79681ea580f30b44c.s3tc.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_02.swf b/Assets/External/kenney_prototype-textures/texture_02.swf
new file mode 100644
index 0000000000000000000000000000000000000000..070236f49484933a09815ed7537f8a6a998d7cc9
GIT binary patch
literal 399
zcmV;A0dW39S5qFZ0RRAaoJCPROG053eqQZWyA>LK5QY*olp#TAO?nlI76%I(8YQXg
zAdMjrdAU%75lyuOUd=%af(!nD%q0jU8Uo!aXeb=)!>}N3Z-q4+IOjR%JkR+Mp%L+8
z0|Ybu1_09VuHV^{q7iL@7@C}TcQ>O`!FNU5cia3aZTTtNLO)Lz4i
zA-o0SK8!ms9ztKi54DF;Yos(BJ-&pcsc2^}Df|g8xk&PYBs!-Mcim<6N1K;}@LHbc
zv}b(P>T_FK;rfldlFrz;WTBoDcBRY#^+g)=o;tBU(r78JhiK$F5WD?Vu`?Az8E{a3
z0bcjJ0@`3}$6ajGoKO`po&@^-lgEHglE+}TZPdV<{x~?0pu@_$;Z3yXpyQw|+s8H*
t5wAD1=(V6%^e(g&T$OHv7#PJc;zf4Iyij3c+d3U((;&zm@dXhljRD9xwom{7
literal 0
HcmV?d00001
diff --git a/Assets/External/kenney_prototype-textures/texture_03.svg b/Assets/External/kenney_prototype-textures/texture_03.svg
new file mode 100644
index 0000000..1a23062
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_03.svg
@@ -0,0 +1,11 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_03.svg.import b/Assets/External/kenney_prototype-textures/texture_03.svg.import
new file mode 100644
index 0000000..b93a356
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_03.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d3xbjquwhykth"
+path="res://.godot/imported/texture_03.svg-5fb870a9554efc5ac436065c2db7fc28.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_03.svg"
+dest_files=["res://.godot/imported/texture_03.svg-5fb870a9554efc5ac436065c2db7fc28.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_03.swf b/Assets/External/kenney_prototype-textures/texture_03.swf
new file mode 100644
index 0000000000000000000000000000000000000000..6c009248347e2589d34277c9da3ded3343e37a8c
GIT binary patch
literal 702
zcmV;v0zv&lS5qEW1ONbdoQ;%EOw(`_$KS8B8|flqC}2p2-0aK}Vn8p2SpT56t!5n1
zL^3dgg`gLc2AzkpWF{^WJs1uoT?!-&JPj9ik~j%oAR;E1bSyDkxR@^dF+p$hwOw`f
zqK77X>#v{h_kG`MWuRm*uQLR$pRNOdYgDCDdDrB{p9I49q7S0&7XU8Tu_uf_WcvXE
zot+me(9n3Gk|UKIM#%RF{1gb_)2-0ZOeIp_^YUZ<;$U$5ICi@<7~FtZQB&(njMVSC
zvH1ZcE&Qg?dP(A3`Bh~KKIfJMU!K*o?nxyDn@I
zi>1g(n(rf8db0#E|BhO}b}VVGE5R=yoy+A5t&FtbTIx~quoYewe9!c9)}2sZgB}`A
zDN}4YG%^(L>eI8C(Ky0pGtnd;E^6tIO?<$=liplAjxCz55!M^rV5CfLsb~7U)E{2%
znQk^*uPTfBR?cvZu;HX)xJFo4z;JEAW=0Ix2rCR6h^nPyB*0KVWSX{RBu#92%W`HP
zjER?5c4uX?8%u=V2L|jy4@El0xdXE^OOV719@$qd_(sk9mFc$HGlLf*&q4Itt>jnb
zm6x*;fnkl`29}N2cwb;SyFiEXis10>`vj~X
zv%>;`p~$`nBC!L~Fd3Byo@z|Up!Se%&!jXc+?naMk~i(B9UQ2xs!{BZJQAFpuQS~^
z-#@X7WY<>0aH+$qDcUZiez7I}cQDk1J!#aVzd@TLcF`I8@mH+qoVn|Ljrfyx^CcRFh9;aogMrUk163XSYOL7VI{1Bd9XP+9ou5>U
kb)UEFRoC6zPzSc{zp;D&I15kRZZ{qW0Y4bO0NUT_l*O-G4FCWD
literal 0
HcmV?d00001
diff --git a/Assets/External/kenney_prototype-textures/texture_04.svg b/Assets/External/kenney_prototype-textures/texture_04.svg
new file mode 100644
index 0000000..b8891ad
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_04.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_04.svg.import b/Assets/External/kenney_prototype-textures/texture_04.svg.import
new file mode 100644
index 0000000..a738c26
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_04.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://blpldt5wbxhhh"
+path="res://.godot/imported/texture_04.svg-feff0e50174c470cf858820b23281225.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_04.svg"
+dest_files=["res://.godot/imported/texture_04.svg-feff0e50174c470cf858820b23281225.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_04.swf b/Assets/External/kenney_prototype-textures/texture_04.swf
new file mode 100644
index 0000000000000000000000000000000000000000..1c1efe2abc792d54e1dc3e33c5db2234ec3d685c
GIT binary patch
literal 743
zcmV6S5qDw1ONbdoK;g_NE2}!|K6S3^p>Vvy*uZ4Y1Bi
zOI{*QCE|yNIP<`7jsV=<28}IbXclZ{HekF8H&u)R3cvVd`#X2L#!@
zo^0z87%Gt#=iyU)jk6`JO3e6DoQ309)Q7qQ3U7KCW*x-J#28`&gcO}btR^
zSCzfEsv3ihhecI22J3dHs#UP12~{-)OOED2(g`v-n*0?C8}vdL=3CzZL#Wx5SkUI-
z5~sN-kr+-4R?Sn1%5yCUd8%As6U20?A8GzH3i(14q7AwULFQZ6t-M}fK#abUD*4hd
z3`)2foo9G0w~`%V3Xvh5iVZMq1cD^K!PYFipv=wzKd8?n=jBFuf-{v<#1!N{&EWjSvRUE@XF|5JP~2^PPv6Az{U19s
z$mvixT=Fbg9n2gA?fQ%pSo$k+MxOz;kEOR)OK0*`!OZlBv>T0&F@K~PJtd6FjY`B}
z<;+j
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_05.svg.import b/Assets/External/kenney_prototype-textures/texture_05.svg.import
new file mode 100644
index 0000000..59d0ac0
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_05.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dkcn4kju6afrf"
+path="res://.godot/imported/texture_05.svg-9548d4c4f1a5d0685a74bda2190d148d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_05.svg"
+dest_files=["res://.godot/imported/texture_05.svg-9548d4c4f1a5d0685a74bda2190d148d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_05.swf b/Assets/External/kenney_prototype-textures/texture_05.swf
new file mode 100644
index 0000000000000000000000000000000000000000..19b7101c8c97024ba7d9255472b01b7e88739812
GIT binary patch
literal 965
zcmV;$13LUeS5qD;1pokeoNZKZXd7i1f8Ja!wHKTjxprEJE67|@f^)3)%cbqj?#~CM
zxp76RvU;8LkLC2s;ON%1UIP&p9PY!Itdi{3A(!rp$;$F+Wm()9bhh23%4Gqm$P~)O
z{u^;!JI^)-_Lco
z--rIJrtHX3QYUd__AW>oe?48-BzcKcCVCMbP9|ATiq;d3bI}Oo6Kap#DC%6*r(wpA
zuJ)af84)S!fXukFIpIZ;=|Ea+HV6H_N6L;n1xX_gw*Lgu-pN$Dj*{X;vN@W92mB4z
zb5_qM9HHnn(1X2^=tVjo>^m{k*r6xXfgubwuJ(i(KC8uMY8b!oQEc{3p?|_ujlmAL
z-=`#XGTA)VAa(LLn#XF3sx#3E{lR2WH3sVqM~kX4SfjtFx(Ifquc#V>rMs3nrNmQA
zfU^B1lcYr>Y22=xwAb`Oneg(|!nka@DUpy%K!MfhL1EvZciD7SB1A*!D%rEuFmBEH
z3l%8YGlOS^FM;z}R#F*x>iqbq)nM(U9;U%+@)(`-a%JdMC(|#%aeR|dF(9uo^FY%>
zW!mGk*J`jrd5W#j?wJGHhqJ>C1`G;I9B{}ANW;k}h^^X+31iqEV{~gKxo-A@D~C(T
zn{t$WUQmcFq1Ycf#a23>rUH1r|HjUt1&axXYg>6cLRyW~$?b~$HyGQfHEGO8F2bu7
zv2&HNpB_CLGH*;iuX7#(<&HYViOwyxBigN+z!$kjsBGc|6^K>
z43E_gYQA3u$GI2&jlK6wzwy0q#SKoX0_uS9--pGG=?C7*b0s#S0G=?j?Rn?Q*)z%sDdbOc|b4LEeIKQd>tsq=BfNL`jO7&|8PX*UoS9f19
zM6_oCc;h>t5r;#om!He_U=wK2wkA-r{iZ_PT7S%va3+pET6fRLO|bLLKX>n0f@))~
n3F7e1G%&`92%P=vxD8-a-Msu1zHm4k_+JMs{s;a8L~2g6&hzNi
literal 0
HcmV?d00001
diff --git a/Assets/External/kenney_prototype-textures/texture_06.svg b/Assets/External/kenney_prototype-textures/texture_06.svg
new file mode 100644
index 0000000..2d7fa36
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_06.svg
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_06.svg.import b/Assets/External/kenney_prototype-textures/texture_06.svg.import
new file mode 100644
index 0000000..d35e060
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_06.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://hmgnkqmwqfs4"
+path="res://.godot/imported/texture_06.svg-987cfc5574896e2e4d8f222c790e5b9f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_06.svg"
+dest_files=["res://.godot/imported/texture_06.svg-987cfc5574896e2e4d8f222c790e5b9f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_06.swf b/Assets/External/kenney_prototype-textures/texture_06.swf
new file mode 100644
index 0000000000000000000000000000000000000000..a44aae2b90b586eb8ad34fd8aa3ca308b1658d93
GIT binary patch
literal 1001
zcmV5nW9cp3pehM={9;Z
zHLg;jFx1H%^hZ_TX3QN6UENASq5=&GG}ur&ue(ULD`(Ymu~99Qp-BwN5Mgo_ZR!nN
z1gGtO8c-26=Q#C95aPnp`OZ0h-uHWt&QX9;!1|s-uy0!}0PLkq)4b+!;UR+18-s5T
zHthj0xn71$D0p)%`Qh;ZA!uoN(S&;Us)`<{=)Qy=O7Mq(0CO6lemgZa4PF-?@#hA5
zvZayN@&i3LVI-%kb$M0})2}Rk1F{~vlxciP_R;Bu_$l~tE+u%=oT1fx6rYBomKao8
zBZlaFE5--V`QgI~A3vZyz~Ua_aS{|F%KjDJ8IqalC0A&_xud<3v=mABP%EA
zRC_!Pw?dZ%?*~RvtC@;l1S2>!9Y4htgTsfTt$l`;7>#1sY+^9RhjRMN_Z~jrzcaIV
zy)<&ca*bj8dv3CFVlLHwW|tfeU2Z?Kow#0zUodXX5!V$mWf5itSg;EtDD6JxTeUhX3!-So
zsdzUF-mSatv2Eq{tl$OdLlFITE9nJg{^Qw6yTINVBgTPU6fs@&i4}C`k<3=;$17R_
z14BBW1&)hWcu#UZyTA^Wd7;X?_XptoI6GWmU{G2SK}2>yI!;DKf^#z_%%Fb3bo)&5
z1H!>``^(8&cGTTIQ0YyhxIgr+P~G{rY#Tn`e_|KWlC6ZprS5l4Gj<_|#fF)G2SZKT
zCyn)(0z6w4yI39j@yYHfYsJ#@xw6n!Y5mZ#UZL{LA55LB691GFtIwSNszUs|ChHR6
zyTui_6CtC+ZFEGqjsS%H9h8zRY!t@
z7(lKo69ydErgSUSnqwM%p~kbIQu{u+GLglTXa9sT@kyn&|F;dbt^^u#VII2MS%4j5
z!M_wfxdkKFOcA>ZF>k<_Cxc4~zxZG3qB%sw+^$1)2Zf{Tfpt
Xy_NWc_iJhx{HlV0U)#R{-jHcJ@+9ij
literal 0
HcmV?d00001
diff --git a/Assets/External/kenney_prototype-textures/texture_07.svg b/Assets/External/kenney_prototype-textures/texture_07.svg
new file mode 100644
index 0000000..2f76dcd
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_07.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_07.svg.import b/Assets/External/kenney_prototype-textures/texture_07.svg.import
new file mode 100644
index 0000000..dab4fa3
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_07.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dnp6ra12itu7o"
+path="res://.godot/imported/texture_07.svg-125894f3d4ab2ab69e87caa204d0ed86.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_07.svg"
+dest_files=["res://.godot/imported/texture_07.svg-125894f3d4ab2ab69e87caa204d0ed86.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_07.swf b/Assets/External/kenney_prototype-textures/texture_07.swf
new file mode 100644
index 0000000000000000000000000000000000000000..f106e2183d15af0267e5e88281dad3ce03f496e5
GIT binary patch
literal 966
zcmV;%13COdS5qDh1pokeoNbh0OdDk!#{YLm+j&3(p+N1@rHLQB8kCV@KkNWc2gPIy
zE9pM4B{qdgTS-|=)|_S3ZDTe5OMv6T@Wo+M
z8^9|^9#j<{Amso77R$>AP}fipiCvL+;v$~9;4h87^_*IIXl?5vFAOP
z8|+&FZ&nhuIhr4!Y?<$XmmGIe1}o1{$$P>atS1&ZV^WuotHZ)H?8IZksNI*hYeqwC
z3la4UA=XETu@S^JWOJ@s6?>MDBAFa`&6}cjd5@Qv|OBAWGm^&mCsj*mlOOd)LHt#7?W3iO80HR`$
z$Oz4?yLt}L)1R*$AjxnvDhK2)i0XY6usr8vZ8L{2JJtdC(M5Fqgmj@FRf
zjHG`R?P9cCom)WV?7ssI$|7G>2eFJ@b19{w-@rR1L5ZCOd%rT1+#u()6P)I-MQlMn
zq#4}5a2S>t<21;42#QZvKcGACeE+ST>E{$FTrT-ERawj|1kB2elNkLfIibt|$H(Z$
zD$$ujMKKe-lk$%2$5gM0fFJ{E7D)dec2LZ!>hgC_YB;k(uJ
z%swK&_>i2L-Jf}Hf93{>UJEi1ya~Yp2ujdZC%@>1y2i(#Zt?5F(3be@msVn}P%o;j
zm)M@ufAeEU7fdIdRF`lpjJ)R}=V#8VPYh8DCd*3yAKdrhPp+sp+&|(I#x_EKeAG5-
z0*uoWRz1hn_A0?
zLaQ(Ken}aurPnnlQ~u?ul8V=CfD0bW*G_7FOJ;eyRUa=nZ1>YwMl5f^c0hX#eWbTW
otygRRmlenLcWX|iJU=DwZ~m9{IJ~b`SK)6MaQHL#4+ecXC@I+G@&Et;
literal 0
HcmV?d00001
diff --git a/Assets/External/kenney_prototype-textures/texture_08.svg b/Assets/External/kenney_prototype-textures/texture_08.svg
new file mode 100644
index 0000000..cb098b8
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_08.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_08.svg.import b/Assets/External/kenney_prototype-textures/texture_08.svg.import
new file mode 100644
index 0000000..58d4d2a
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_08.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://domgof2sjx7qt"
+path="res://.godot/imported/texture_08.svg-da494b7849979c6cd92e284fbb95bb9d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_08.svg"
+dest_files=["res://.godot/imported/texture_08.svg-da494b7849979c6cd92e284fbb95bb9d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_08.swf b/Assets/External/kenney_prototype-textures/texture_08.swf
new file mode 100644
index 0000000000000000000000000000000000000000..d4ccf19a594a4a113b1ab9afe8023d014102bd84
GIT binary patch
literal 382
zcmV-^0fGKQS5qEG0ssJboNHiUYG43k2}TANK@J8624|-K|Nrk7t2N)gXjxv<3
zVBT~W1X8QR#`n1Qj+-~fzh0NHKMeg^icMgRZ+
literal 0
HcmV?d00001
diff --git a/Assets/External/kenney_prototype-textures/texture_09.svg b/Assets/External/kenney_prototype-textures/texture_09.svg
new file mode 100644
index 0000000..d21be51
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_09.svg
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_09.svg.import b/Assets/External/kenney_prototype-textures/texture_09.svg.import
new file mode 100644
index 0000000..85aa01b
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_09.svg.import
@@ -0,0 +1,44 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cqtfi6pafpjk8"
+path.s3tc="res://.godot/imported/texture_09.svg-64820833ebfe850b4ee61637e422d922.s3tc.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_09.svg"
+dest_files=["res://.godot/imported/texture_09.svg-64820833ebfe850b4ee61637e422d922.s3tc.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_09.swf b/Assets/External/kenney_prototype-textures/texture_09.swf
new file mode 100644
index 0000000000000000000000000000000000000000..f8bb7ec6b947d999ffea74668765024e82573fe5
GIT binary patch
literal 162
zcmV;T0A2q>S5qF$0001ZoNHiUYG43k2}TANK@J8624|-K|Nrk77=BFb#|h#>S@q83cqsEMWY!fbnAjvp#%J)3^qCpA2%=`bl{g}U}$4w
QV*)yX!2xI+07bSjHH*zV7ytkO
literal 0
HcmV?d00001
diff --git a/Assets/External/kenney_prototype-textures/texture_10.svg b/Assets/External/kenney_prototype-textures/texture_10.svg
new file mode 100644
index 0000000..5e998e8
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_10.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_10.svg.import b/Assets/External/kenney_prototype-textures/texture_10.svg.import
new file mode 100644
index 0000000..ed207e7
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_10.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dmtaveq2q3r1t"
+path="res://.godot/imported/texture_10.svg-1ff94ec81e89f67ee4e8d6bceb4e50eb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_10.svg"
+dest_files=["res://.godot/imported/texture_10.svg-1ff94ec81e89f67ee4e8d6bceb4e50eb.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_10.swf b/Assets/External/kenney_prototype-textures/texture_10.swf
new file mode 100644
index 0000000000000000000000000000000000000000..9ffd88a3ee6ecb20db48745d3eb43cf27d3a66c4
GIT binary patch
literal 480
zcmV<60U!QDS5qD#0ssJboNHiUYG43k2}TANK@J8624|-K|Nrk7M&H@
zVE7Wi_-X<3MF;j(4gB5=a@!c>IT*moj2Q&PIR7><&G%-NTlvja_)XOf4VF`yujVIT
zv^&1Gso$HG;Q&LR{bm>ssECmh**YHK-@?Cbb3}e`2>k#5s@?HLwe5%CMvJ~@VAClP
z>18n7JoBzTM#GB^o=;b*E*LIONjSJwa!W&r4ZDwn8;^A0Y!3##ypImN
zqQ);TzPQ2e;!v`Ot=8J6cVSv(mTiW_%MQMdhV#1aYni3YAj;XD50o5XftZq^DaDYS
zZoDgwdEo=FTMG0gHhc(nJ8`f%%Q%zaMFroCh8_vC#by(DvAPxL-4Yje?*r+VH=nqL
W?p6baHa0dEQ1Ceb0}ueHZo~vf@8B5#
literal 0
HcmV?d00001
diff --git a/Assets/External/kenney_prototype-textures/texture_11.svg b/Assets/External/kenney_prototype-textures/texture_11.svg
new file mode 100644
index 0000000..fea61c5
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_11.svg
@@ -0,0 +1,13 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_11.svg.import b/Assets/External/kenney_prototype-textures/texture_11.svg.import
new file mode 100644
index 0000000..f834978
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_11.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dxeiukkana1b6"
+path="res://.godot/imported/texture_11.svg-9901710de004ace53953773657830b39.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_11.svg"
+dest_files=["res://.godot/imported/texture_11.svg-9901710de004ace53953773657830b39.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_11.swf b/Assets/External/kenney_prototype-textures/texture_11.swf
new file mode 100644
index 0000000000000000000000000000000000000000..b2c46ed9371e183c066b636f1ad284cba6696cd7
GIT binary patch
literal 1996
zcmV;-2Q&CXS5qDW2><|ioPAacR1;SkzLST9!9r*TMBPMKDKeShXH)RaX_=$G00N{TqU|k0V!2MAG>iL%l0v0b`G7k8HQ9bfNkK9)x50&7F6agZUh(ZXUL;xFx9QS;S
zX9i%FioydCo8G+}koD|lv#=4^X_wz^azeIIA)eGM9$*9bBO9q$^sRM2TFPp_Rn|Y;0l8^Ue<%TrpEZ$bfw*x>+O0!MptTakTH7sdtvUK
zcCzkF^Ci}vxjZr;(YREz2j!8>Lqo8xp;Pc35n<}m71@VnzEv8H(6r1h^VJ^G2(`AHlSoU`eCyW!`IJX}!dWvgoMtEMp!XA;{DeGBD`2n^HurW`=5w$pVgH7>CB#7j4g
z68h&4vToFkqXevj%^jN7K1Awb>dOW1m;SiNn@84dZtl>TB!chg2;)0rTCw075n;fE4R*UhT2-tO7BMhZQZeVz8opiD
zrGn*R{9(h-32IzXI7hE9$S8wl*eb*3b2)hWZU!!9a`3?2u&~Yn*Hp&On)po*N(S(w
zBHP`&MI`h0Aj48k?2-WpUpN9pzyksgl-R1i>2$CjYs$cLP-Gn)GaF#om=@!Xa0PZU
zfL`B%<%k`1XCSR6%uee^<;)@siooWKX*5-qp)xq{)eIZ@M&va3*nx3y0gd0VquAbw
zl3uALN;3K=Cnt8OWz@gKFP_ew3MenP99Bg0v9i|445>NgsGH%VR5+s
z!Ud>@5eKayX1zPiPsWU9F9V}25=znG3@KNR5b%1cVBBulpXnY%5MqTfIQK#yD^K98
z1amq@4SfxWIIVbCW?leJhRG}rbPzJ7o}`gvh;`J-@M9`9l1TxKj3L(5uMRJJ;TQJ@
znqqX;BxdLX)-xX@z8bUB2igfAK-<2A`4v8R8FN_hOFp5`$4>(z#Zq%DjnK-RAk3Ut=ZWc_04a))&NMw&DKU~*f=iYIM0DNm&9kT`L
zNhs|Wu^x6f;}rEIIx~iJC8)VOxE^R+LnrrJ09IS$!<>cGOomr9cjTI@<3kfo&}`{B
zf0#-M91FTJ57yoTW4X|Xvh81Mak>JUF{($|h-qy%@rW2d?wvL&Pr*QLj@6q%N^BfAu50E^{{|
z`EOXqF@d-&(=D0e?6o@;qWr!&>BvgSni_DA;AK}G+iyE)vIX3ekZYID*PS@kv_op_
zFZ8gUV>Vh>SmK*&8X}U8B%Daj$~2tW**cHMB!8coeHRxt?)3R*Anm<8DmB06`cUxL
zyZY$zAitqz(p0<4C_J@-_wVvALO-v+!L$AJO+z`QYi3_Bw3Q3y0oNy2
zst=cB9_yS^*)}|S&HqpGqelk)e;d4iYx9AfZ9n+TJ+(EZRh65z<^5RJ)2RA67aNZS
zpAAtOJ->WtEn$`)HhY9be2ZKF*@7QCe+A5WZUfKXe*oXtI5Ic*K-0>VPte8S!>#F8
zYmMv2FW~)K$ysEggKw%_s_E)pC7ZrI!6UDh*~>ljMmZkIf6Q;$_4f8Gq-)jIY(5^j
zJ=-hd?Cn$!GQ;6*ir(duUVoRcZec#LR`!0D-n)He$6M3S_3C~rZCA-EK_
zkwxc`4ZW9AlvA_7n|F0r8?&RqJGR^zwOZC!t{HsGp172@`lDzx_s3vTcGGg&RAX%L
zn|Xa&*W#EV@F^p;<#Z
z)90DGPs&!+Kl(E=Pl>KxS?lAHNkz0gYH_#3nXZNIjB0LZPq+UoL#+{(3>>)GdGo%m
eC+8{_iz0s!{i7V@Pnp7jEd`|T-{ya=NDJRcvD)$g
literal 0
HcmV?d00001
diff --git a/Assets/External/kenney_prototype-textures/texture_12.svg b/Assets/External/kenney_prototype-textures/texture_12.svg
new file mode 100644
index 0000000..c0bba91
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_12.svg
@@ -0,0 +1,13 @@
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_12.svg.import b/Assets/External/kenney_prototype-textures/texture_12.svg.import
new file mode 100644
index 0000000..fe75da1
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_12.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://h7s3wkl867qd"
+path="res://.godot/imported/texture_12.svg-17063bd6c7a5a34ca93e640a1a266b82.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_12.svg"
+dest_files=["res://.godot/imported/texture_12.svg-17063bd6c7a5a34ca93e640a1a266b82.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_12.swf b/Assets/External/kenney_prototype-textures/texture_12.swf
new file mode 100644
index 0000000000000000000000000000000000000000..a4f9d18ee4424a50b103511ea5c49b5d6c37045f
GIT binary patch
literal 1975
zcmV;o2T1rsS5qF@2mk%Zny9#Wn5@
z(`8S<&e|Ej?T6f)bLO7&JpbSGf6iPPAj!be&jSJ5S5W}~QKZGi#U3|jI7C2vYT94Z
zeBJ|K5v`-z7i7yDiutnNcOnP~4c)W|Tp3mzna7b|CCCd2_!l1mOeRx?h=2qEWO(G_
zDtD5M4!oT~cqRx(LHJ(4V*|fuuH<`qr*HL$B$$tbm(>xoW#oxL@E;$D;iq
z13paJ0uou(C@D+(oSP}~zaS~gkaF39#*|`?vjaC?V@MVlQQBd#@07B71f|V><4Y*3
z$8AzEF5D5}(r=bFx3>+D3fEJmtW@n*c_E!DC0=O4lr8;?yP_!Fpt8bj5%{R&axWdv
zEbytTl6%$hEb8Wz9EWR}u4c_lmV(PDcbii6n$D|Hkfg)R8q-E0!2}jH-kOhz;w-{L
zDMj4OKtnSBpcUZFX$o$q)yNOy27Oz(unf
zw??B_;8DAr)+IR=vvxVh;A=#aFtXQW{F&{oa>A5#7-LKnrQv$D^sjzHPTjH`;h_wu
z0(G@$X8tJ0|25A*;#>sB(}Bw_Fs9Vp=zm1ZoGh1$t$AH&J_v&+sh7kM&OZYlcs+s2
z^arhRrsj;I-<8o{$t!H({Wh|Lgd|su&{sPAR^t1iMJR!out1BT!zv_LM6i+R^3Mf8
z-;m6Q36s0S^%r)IsiWEkl{#$oU3HX}>s5zZH2gY++^dB!tDCbb9j>umErP)`IN0lI
z77W6WY?1#(yevfu6EQ#wxH)hcnyGUUVH5{$W&wmg{)je<`5II2^xLG(uEK~27b8>3
zaur7Rx{NTTM7#!CU^7)Jexd7AR`ff=B!3aAF|YuwWk~Hkh~vo4DP{4GRISnB6X+qQ)teJv$=4txw*`2lU_(I_WNo+0X65FUrf_V4+%O0ijgN
zy($Rkw70V;_s8+Ftj}RVAPdeLEDkTTfKUiuL+Ty7p0}}pj&i3;n^R%JI?UNDl(YiT
z`4oc)2Gaimhmr+`I%pW0pvZ1>0ca~!iJAw*K}8ITbxqL4xUdoIb|u3LiveE
zcm!oe!7xi%4BeotJN%}PixGwPv`55j_6}0&P}n|K^8x9zwmw-0sSFylJZPBCA{H0~
zk7i@oxX^97!D9UovMmL2v@%g45e#|Q2&)*Ney}F?3^vl?GL*d$UH*rLjYg}-AHiTA
zet>0`ibZ){ARh~}D_rV!Ea+zduW?4A
z*38ro|E(mn_FWfW*=@ytKDiadD?2n?DDwzeR8*FB%fS&W=+Pe4xrDt(2_5610f%7i)Lc6zG
zaqVHhRJj6qK6<0?{;;5N#c8itPj&-p3~e}F)lfAjj=s5hp|&TE;Ka;Xq^&9GZqfBUTV*1kCwW(WIpk%yy_0AoVZM=4Qk4_W4r^`8Q?hP
z^bf{xTnN7U64*2T6gDx1CH9x#o#QxxGm{;MB@AN!Oxe)vT&q@c%pn>{Uw*#cKY*Kq?
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/External/kenney_prototype-textures/texture_13.svg.import b/Assets/External/kenney_prototype-textures/texture_13.svg.import
new file mode 100644
index 0000000..1edc8b0
--- /dev/null
+++ b/Assets/External/kenney_prototype-textures/texture_13.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://qlfu7fwg5f2o"
+path="res://.godot/imported/texture_13.svg-4706e0b28991c6beec73dc57cf230b24.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/External/kenney_prototype-textures/texture_13.svg"
+dest_files=["res://.godot/imported/texture_13.svg-4706e0b28991c6beec73dc57cf230b24.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Assets/External/kenney_prototype-textures/texture_13.swf b/Assets/External/kenney_prototype-textures/texture_13.swf
new file mode 100644
index 0000000000000000000000000000000000000000..69ddeb9afc37a8db526004a8296909b6aff721b0
GIT binary patch
literal 1874
zcmV-Y2d(%+S5qFa2mkAWU_KurO)JC=(}85ng2|
zx+}WNeQ?a4lwj&zUE=GkH0)~a)|o`y+hk1pubydz+^_H$qnOu3(?&_{F*UD(g1It|
zv1Ye<(z5H>uwBe^-1vQ(N}Nz0pw}PG)4(={YNWwzmN@qS1%uaE;-CYtv7Ql^EXv=K
ze#?p~13hCmce(fTmDIU4#&Gq{^&=2IZvyav2Lv7@8mhh3V`n^8YrqRoN&}hnGk{^w
zv>1DW&83xrWa1U9SZFu2L0U~1P3kA*R2T+DV6vX6)wP3T8n~9K$BniLISKx1$5>)6
zDZWdiSm{DbuhbG%Qu%IoZg$eDE
zhdOPHGOnW&%;6XnCz}9xvQ{`QGlzhBscg`WjzXqXi!>@J{9U3x`gFDmDI@@4&h78i^
zG=ZW~{U~E9y238zQg7V=5lfj!Yz272W8;?jrwOF%AjZeWWr1l*q(prrTGvFg|83_3
z_||d*wHvXfRrd24Gu@6n71ne|#i;9PD)v6M2b$c}!~PP0I7_P3(a71w^a-uqhs<@U
z8`DkDY`Mj&mJwWgNI&MmC_Vh_5Hupm$K=#yZuv5RdO;i&l#Wnf!a5_wqYyq{9pipN
z1g+&5_su{~L0^CC`mKaHDq)V8nctZ~VxzEFWH*q@uRtWQzO5M48F^aF$>k|W4KeU+
zC?8#(tzsXH>JH^Nc89)&zEx(xUY=0~SB_e)Q*t6>Am7w!ZP(kyJ
z@IIC|A?>^QNn6}>{CmVZ0&FxOd^F-p5z!@F#+>PUZ)|k+TsR1hF1EF=y3v9BZTd_E
z``k6lcab4QUxRGvKTk5Q-&y-V-_r#-VM4_4i{=?#edwcdCzf9Dud^XLxJ3hJ1`f=3
zZeeSDt82pU^?WeaR{FNc_*VBFdc&jM&zp5S-C{01$nsF;*?mp%@2|*he280iQ|B!;
z!_B$F`M>FY+wb#X-G3^(vgPue_7DEFbMxh_YUM?8tlFB#vJd$N7mnsB>a5a@EzMUy
zr3LM=nS$Zp?Ynda8(zPs_s9SdoKi6|N>wxGBpZdb@fB5|3TJ2=M7vpj5~(FSS(^j2
zq+3N-4)d#z)^BzCENG}h&us&;s*#(C$38>CI*{$dy_t$-MPThi-N1$Y@j&crSsUV)
zpXO24K$Ws9_|-LAoAT437yeuTy+E2HR3B?JMSJ(Abeswf8DW+mFDdZ6J4VJc4KOr!qwCNr*!rQuTwv#I@X7f2lZ+&93VHvQHF<;V
z?w0f0N?s$XNVc#c{sgmA;(xCsg_9j(&8q8YuxzuLlzUBAyH<7+yEw*k03300V!;^z
M68I void:
+ Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
+ head_collision_shape.set_deferred("disabled", true)
+
+func _process(delta: float) -> void:
+ if Input.is_action_just_pressed("pause"):
+ if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
+ Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
+ else:
+ Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
+
+func _physics_process(delta: float) -> void:
+ velocity.y += -gravity * delta
+
+ var input = Input.get_vector("strafe_left", "strafe_right",
+ "move_forward", "move_backward")
+
+ if Input.is_action_pressed("sprint") \
+ and current_movement != MovementMode.Crouching:
+ move_speed = SPRINT_MOVE_SPEED
+ current_movement = MovementMode.Sprinting
+ elif Input.is_action_pressed("crouch") \
+ and current_movement != MovementMode.Sprinting:
+ move_speed = CROUCH_MOVE_SPEED
+ current_movement = MovementMode.Crouching
+ else:
+ move_speed = BASE_MOVE_SPEED
+ current_movement = MovementMode.Walking
+
+ if current_movement == MovementMode.Crouching:
+ body_collision_shape.shape.height = CROUCH_HEIGHT
+ head_collision_shape.set_deferred("disabled", false)
+ elif not head_collider.has_overlapping_bodies():
+ body_collision_shape.shape.height = BASE_HEIGHT
+ head_collision_shape.set_deferred("disabled", true)
+
+ var movement_dir := transform.basis * Vector3(input.x, 0, input.y)
+ velocity.x = movement_dir.x * move_speed
+ velocity.z = movement_dir.z * move_speed
+
+ move_and_slide()
+ if is_on_floor() and Input.is_action_just_pressed("jump"):
+ velocity.y = JUMP_SPEED
+
+func _input(event: InputEvent) -> void:
+ if event is InputEventMouseMotion \
+ and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
+ rotate_y(-event.relative.x * MOUSE_SENSITIVITY)
+ fps_camera.rotate_x(-event.relative.y * MOUSE_SENSITIVITY)
+ fps_camera.rotation.x = clampf(fps_camera.rotation.x,
+ -deg_to_rad(70), deg_to_rad(70))
diff --git a/Player/player_controller.gd.uid b/Player/player_controller.gd.uid
new file mode 100644
index 0000000..831dafc
--- /dev/null
+++ b/Player/player_controller.gd.uid
@@ -0,0 +1 @@
+uid://bhplq3tsshgsb
diff --git a/Player/player_controller.tscn b/Player/player_controller.tscn
new file mode 100644
index 0000000..eb6faa9
--- /dev/null
+++ b/Player/player_controller.tscn
@@ -0,0 +1,24 @@
+[gd_scene format=3 uid="uid://diipi3w18rk4v"]
+
+[ext_resource type="Script" uid="uid://bhplq3tsshgsb" path="res://Player/player_controller.gd" id="1_biqn8"]
+
+[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_biqn8"]
+height = 1.0
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_biqn8"]
+
+[node name="PlayerController" type="CharacterBody3D" unique_id=1462541278]
+script = ExtResource("1_biqn8")
+
+[node name="BodyCollisionShape" type="CollisionShape3D" parent="." unique_id=1091416129]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
+shape = SubResource("CapsuleShape3D_biqn8")
+
+[node name="FPSCamera" type="Camera3D" parent="." unique_id=872643079]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.6, 0)
+
+[node name="HeadCollider" type="Area3D" parent="." unique_id=2069486354]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0033772, 0)
+
+[node name="HeadCollisionShape" type="CollisionShape3D" parent="HeadCollider" unique_id=64452340]
+shape = SubResource("BoxShape3D_biqn8")
diff --git a/README.md b/README.md
index 1bf1cdb..764a614 100644
--- a/README.md
+++ b/README.md
@@ -66,3 +66,24 @@ Bad:
```gdscript
const S: 300.0
```
+
+Keep single code line length up to 80 characters long. (Notice the first vertical line
+in the text editor.)
+
+This keeps code easier to read because it isn't stretching all the way across the screen.
+
+Good:
+
+```gdscript
+@onready var head_collision_shape: CollisionShape3D \
+ = $HeadCollider/HeadCollisionShape
+```
+
+Bad:
+
+```gdscript
+@onready var head_collision_shape: CollisionShape3D = $HeadCollider/HeadCollisionShape
+```
+
+Notice the `\` in the above "good" example. That tells Godot to continue the expression
+on the next line.
diff --git a/Testing/debug_scene.tscn b/Testing/debug_scene.tscn
new file mode 100644
index 0000000..d04013a
--- /dev/null
+++ b/Testing/debug_scene.tscn
@@ -0,0 +1,42 @@
+[gd_scene format=3 uid="uid://df5nweglm1ak2"]
+
+[ext_resource type="PackedScene" uid="uid://diipi3w18rk4v" path="res://Player/player_controller.tscn" id="1_2rmyx"]
+[ext_resource type="Texture2D" uid="uid://cqtfi6pafpjk8" path="res://Assets/External/kenney_prototype-textures/texture_09.svg" id="1_nrln2"]
+
+[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_2rmyx"]
+sky_horizon_color = Color(0.66224277, 0.6717428, 0.6867428, 1)
+ground_horizon_color = Color(0.66224277, 0.6717428, 0.6867428, 1)
+
+[sub_resource type="Sky" id="Sky_nrln2"]
+sky_material = SubResource("ProceduralSkyMaterial_2rmyx")
+
+[sub_resource type="Environment" id="Environment_10oj7"]
+background_mode = 2
+sky = SubResource("Sky_nrln2")
+tonemap_mode = 2
+glow_enabled = true
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_10oj7"]
+albedo_texture = ExtResource("1_nrln2")
+
+[node name="DebugScene" type="Node" unique_id=548551898]
+
+[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=82211647]
+environment = SubResource("Environment_10oj7")
+
+[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=605528475]
+transform = Transform3D(-0.8660254, -0.43301278, 0.25, 0, 0.49999997, 0.86602545, -0.50000006, 0.75, -0.43301266, 0, 0, 0)
+shadow_enabled = true
+
+[node name="CSGBox3D" type="CSGBox3D" parent="." unique_id=1927330093]
+transform = Transform3D(23.24995, 0, 0, 0, 0.12418556, 0, 0, 0, 12.13962, 0, 0, 2.206223)
+material_override = SubResource("StandardMaterial3D_10oj7")
+use_collision = true
+size = Vector3(1, 1, 2.2382813)
+
+[node name="PlayerController" parent="." unique_id=1462541278 instance=ExtResource("1_2rmyx")]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.06209278, 0)
+
+[node name="CSGBox3D2" type="CSGBox3D" parent="." unique_id=1350209690]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7963257, -2.6601963)
+use_collision = true
diff --git a/project.godot b/project.godot
index 4ae7294..75a565d 100644
--- a/project.godot
+++ b/project.godot
@@ -21,6 +21,54 @@ config/version="0.1.0"
config/features=PackedStringArray("4.6", "Forward Plus")
config/icon="res://icon.svg"
+[display]
+
+window/size/viewport_width=1920
+window/size/viewport_height=1080
+
+[input]
+
+move_forward={
+"deadzone": 0.2,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
+]
+}
+move_backward={
+"deadzone": 0.2,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
+]
+}
+strafe_left={
+"deadzone": 0.2,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
+]
+}
+strafe_right={
+"deadzone": 0.2,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
+]
+}
+jump={
+"deadzone": 0.2,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
+]
+}
+sprint={
+"deadzone": 0.2,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+]
+}
+crouch={
+"deadzone": 0.2,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+]
+}
+pause={
+"deadzone": 0.2,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+]
+}
+
[physics]
3d/physics_engine="Jolt Physics"