initial commit
2
.gitattributes
vendored
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
||||||
2
.gitignore
vendored
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
3
assets/groups/canvas_layout.tres
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[gd_resource type="ButtonGroup" format=3 uid="uid://c71aawlem32fa"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
3
assets/groups/canvas_tool.tres
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[gd_resource type="ButtonGroup" format=3 uid="uid://b12lx5kudvat0"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
BIN
assets/textures/barsHorizontal.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/barsHorizontal.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b78r0uxu2q8bg"
|
||||||
|
path="res://.godot/imported/barsHorizontal.png-5c340be748705ed2c47adbccaeb48b54.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/barsHorizontal.png"
|
||||||
|
dest_files=["res://.godot/imported/barsHorizontal.png-5c340be748705ed2c47adbccaeb48b54.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/barsVertical.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/barsVertical.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b1gxogaykwk3t"
|
||||||
|
path="res://.godot/imported/barsVertical.png-e6268907791b8225ea57d687e014731e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/barsVertical.png"
|
||||||
|
dest_files=["res://.godot/imported/barsVertical.png-e6268907791b8225ea57d687e014731e.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/checkmark.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/checkmark.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c8ic3rtyawopm"
|
||||||
|
path="res://.godot/imported/checkmark.png-90bf058668dc6a15e6471f7d8f9eb18b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/checkmark.png"
|
||||||
|
dest_files=["res://.godot/imported/checkmark.png-90bf058668dc6a15e6471f7d8f9eb18b.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/checkmark_small.png
Executable file
|
After Width: | Height: | Size: 491 B |
34
assets/textures/checkmark_small.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://260h8iplfej8"
|
||||||
|
path="res://.godot/imported/checkmark_small.png-e303c4e9c735c1d9cb4e3b8872697277.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/checkmark_small.png"
|
||||||
|
dest_files=["res://.godot/imported/checkmark_small.png-e303c4e9c735c1d9cb4e3b8872697277.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/cross.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/cross.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c85xvc3cn6yc6"
|
||||||
|
path="res://.godot/imported/cross.png-5a9380f51b19c15420017904e8c26829.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/cross.png"
|
||||||
|
dest_files=["res://.godot/imported/cross.png-5a9380f51b19c15420017904e8c26829.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/exclamation.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/exclamation.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bl0hgtjs0hotr"
|
||||||
|
path="res://.godot/imported/exclamation.png-12d4abaa636464265fe9bf460e2c4bc3.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/exclamation.png"
|
||||||
|
dest_files=["res://.godot/imported/exclamation.png-12d4abaa636464265fe9bf460e2c4bc3.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/exit.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/exit.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ccrodmdktimve"
|
||||||
|
path="res://.godot/imported/exit.png-538106750e61a416cfc164cc99820b25.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/exit.png"
|
||||||
|
dest_files=["res://.godot/imported/exit.png-538106750e61a416cfc164cc99820b25.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/export.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/export.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://di8qjbvpdmqas"
|
||||||
|
path="res://.godot/imported/export.png-d26dd0677eb3163d90d47cc890d4cbba.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/export.png"
|
||||||
|
dest_files=["res://.godot/imported/export.png-d26dd0677eb3163d90d47cc890d4cbba.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/fastBackwards.png
Executable file
|
After Width: | Height: | Size: 645 B |
34
assets/textures/fastBackwards.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cvffd2h31otem"
|
||||||
|
path="res://.godot/imported/fastBackwards.png-23e3b875391285f6e1867ad4307c8e31.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/fastBackwards.png"
|
||||||
|
dest_files=["res://.godot/imported/fastBackwards.png-23e3b875391285f6e1867ad4307c8e31.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/fastForward.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/fastForward.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dbyfjjoavhi6i"
|
||||||
|
path="res://.godot/imported/fastForward.png-5dc9dc1dd0f314414d0e8358c405e79f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/fastForward.png"
|
||||||
|
dest_files=["res://.godot/imported/fastForward.png-5dc9dc1dd0f314414d0e8358c405e79f.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/flag.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/flag.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ce8y51h35uwyh"
|
||||||
|
path="res://.godot/imported/flag.png-a11215c87ad2cd374bd693e583dc8a29.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/flag.png"
|
||||||
|
dest_files=["res://.godot/imported/flag.png-a11215c87ad2cd374bd693e583dc8a29.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/gear.png
Executable file
|
After Width: | Height: | Size: 16 KiB |
34
assets/textures/gear.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ct17smegxolvj"
|
||||||
|
path="res://.godot/imported/gear.png-de6059477d50724e86e92d156e2938d5.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/gear.png"
|
||||||
|
dest_files=["res://.godot/imported/gear.png-de6059477d50724e86e92d156e2938d5.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/home.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/home.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cwh5jc64rwjbf"
|
||||||
|
path="res://.godot/imported/home.png-a5f71d75232f15cb2eb7b12c6208b855.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/home.png"
|
||||||
|
dest_files=["res://.godot/imported/home.png-a5f71d75232f15cb2eb7b12c6208b855.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/information.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/information.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ce1h6limtxn4p"
|
||||||
|
path="res://.godot/imported/information.png-6d94c3e6aae926c3672f4231983a22c2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/information.png"
|
||||||
|
dest_files=["res://.godot/imported/information.png-6d94c3e6aae926c3672f4231983a22c2.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/left-arrow.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/left-arrow.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bc748njoctfcw"
|
||||||
|
path="res://.godot/imported/left-arrow.png-ead4d2a5a61c451207c85467f72d7c3a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/left-arrow.png"
|
||||||
|
dest_files=["res://.godot/imported/left-arrow.png-ead4d2a5a61c451207c85467f72d7c3a.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/menuGrid.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/menuGrid.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cdb5sd2l8f4cb"
|
||||||
|
path="res://.godot/imported/menuGrid.png-c80acfb79859e5c9c820e4b4890401a2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/menuGrid.png"
|
||||||
|
dest_files=["res://.godot/imported/menuGrid.png-c80acfb79859e5c9c820e4b4890401a2.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/menuList.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/menuList.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c1ufmjxbn2se7"
|
||||||
|
path="res://.godot/imported/menuList.png-bfe6cb64af812aae2d6f991fb90c37aa.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/menuList.png"
|
||||||
|
dest_files=["res://.godot/imported/menuList.png-bfe6cb64af812aae2d6f991fb90c37aa.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/mouse.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/mouse.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://upmujujak83f"
|
||||||
|
path="res://.godot/imported/mouse.png-e878ec3ccbf6e4655c87ca17be1d3899.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/mouse.png"
|
||||||
|
dest_files=["res://.godot/imported/mouse.png-e878ec3ccbf6e4655c87ca17be1d3899.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/mouseLeft.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/mouseLeft.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c2ilump7jv8e5"
|
||||||
|
path="res://.godot/imported/mouseLeft.png-adc036aec33f65d95b1e1009ae03d380.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/mouseLeft.png"
|
||||||
|
dest_files=["res://.godot/imported/mouseLeft.png-adc036aec33f65d95b1e1009ae03d380.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/mouseMiddle.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/mouseMiddle.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bluchrj0o5qdj"
|
||||||
|
path="res://.godot/imported/mouseMiddle.png-9ff476f134f39cab1d53a35cbf0b7f3b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/mouseMiddle.png"
|
||||||
|
dest_files=["res://.godot/imported/mouseMiddle.png-9ff476f134f39cab1d53a35cbf0b7f3b.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/mouseRight.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/mouseRight.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://y4t2jqo662lv"
|
||||||
|
path="res://.godot/imported/mouseRight.png-af17b3b9e7c92630447e48aa1ab33dff.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/mouseRight.png"
|
||||||
|
dest_files=["res://.godot/imported/mouseRight.png-af17b3b9e7c92630447e48aa1ab33dff.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/musicOff.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/musicOff.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cbn0iyq1hfe5s"
|
||||||
|
path="res://.godot/imported/musicOff.png-2760868011e73a10a0bcdaaac7d5dae3.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/musicOff.png"
|
||||||
|
dest_files=["res://.godot/imported/musicOff.png-2760868011e73a10a0bcdaaac7d5dae3.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/musicOn.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/musicOn.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cvh26pfmyo74i"
|
||||||
|
path="res://.godot/imported/musicOn.png-9f76f04ee2ecfed774d9c9c352f6af4d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/musicOn.png"
|
||||||
|
dest_files=["res://.godot/imported/musicOn.png-9f76f04ee2ecfed774d9c9c352f6af4d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/pause.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/pause.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cjp6eonogfif2"
|
||||||
|
path="res://.godot/imported/pause.png-9f20969c0f0dce4c1e3e02e828b5bcda.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/pause.png"
|
||||||
|
dest_files=["res://.godot/imported/pause.png-9f20969c0f0dce4c1e3e02e828b5bcda.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/plus.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/plus.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://m2s5sd4pmrhu"
|
||||||
|
path="res://.godot/imported/plus.png-50ad455194f0ed193dc689e27c5354a1.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/plus.png"
|
||||||
|
dest_files=["res://.godot/imported/plus.png-50ad455194f0ed193dc689e27c5354a1.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/pointer.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/pointer.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ua5o5an18y6y"
|
||||||
|
path="res://.godot/imported/pointer.png-b39d88377d4499d9b793c1a6b2270802.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/pointer.png"
|
||||||
|
dest_files=["res://.godot/imported/pointer.png-b39d88377d4499d9b793c1a6b2270802.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/question.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/question.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://3c0k5xktslsn"
|
||||||
|
path="res://.godot/imported/question.png-e99ab9730bf445631148b3ac93df82e6.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/question.png"
|
||||||
|
dest_files=["res://.godot/imported/question.png-e99ab9730bf445631148b3ac93df82e6.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/return.png
Executable file
|
After Width: | Height: | Size: 957 B |
34
assets/textures/return.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://5etkfq1tgisf"
|
||||||
|
path="res://.godot/imported/return.png-fab8fbe9aa9cd616e59d2c43b0e9768d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/return.png"
|
||||||
|
dest_files=["res://.godot/imported/return.png-fab8fbe9aa9cd616e59d2c43b0e9768d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/right-arrow.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/right-arrow.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bxy1e87mujpi1"
|
||||||
|
path="res://.godot/imported/right-arrow.png-c326af30c34e91efe548cff6e7671be0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/right-arrow.png"
|
||||||
|
dest_files=["res://.godot/imported/right-arrow.png-c326af30c34e91efe548cff6e7671be0.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/signal3.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/signal3.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cnupc4sbjpqrc"
|
||||||
|
path="res://.godot/imported/signal3.png-9a581cde38ac66c1947039e63aa552e3.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/signal3.png"
|
||||||
|
dest_files=["res://.godot/imported/signal3.png-9a581cde38ac66c1947039e63aa552e3.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/thumb-1920-667142.jpg
Executable file
|
After Width: | Height: | Size: 119 KiB |
34
assets/textures/thumb-1920-667142.jpg.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://r28cvdr75lu4"
|
||||||
|
path="res://.godot/imported/thumb-1920-667142.jpg-7567282eb17461c643dd2a6de64ac930.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/thumb-1920-667142.jpg"
|
||||||
|
dest_files=["res://.godot/imported/thumb-1920-667142.jpg-7567282eb17461c643dd2a6de64ac930.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/trashcan.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/trashcan.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dl16dbu4bb5lh"
|
||||||
|
path="res://.godot/imported/trashcan.png-f716b4b8fb2b9290994c4237284a5ea2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/trashcan.png"
|
||||||
|
dest_files=["res://.godot/imported/trashcan.png-f716b4b8fb2b9290994c4237284a5ea2.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/trashcanOpen.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/trashcanOpen.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://x6rjmc3qqynr"
|
||||||
|
path="res://.godot/imported/trashcanOpen.png-95d1f5865eda44d1a9a66e73a8b13643.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/trashcanOpen.png"
|
||||||
|
dest_files=["res://.godot/imported/trashcanOpen.png-95d1f5865eda44d1a9a66e73a8b13643.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/warning.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/warning.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b1f87exx3bxff"
|
||||||
|
path="res://.godot/imported/warning.png-d02fee0a1849545d57b452515c90196a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/warning.png"
|
||||||
|
dest_files=["res://.godot/imported/warning.png-d02fee0a1849545d57b452515c90196a.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/wrench.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
34
assets/textures/wrench.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://f2b6en8hsyh4"
|
||||||
|
path="res://.godot/imported/wrench.png-0bf537c67e84e6157d5037b8d039d173.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/wrench.png"
|
||||||
|
dest_files=["res://.godot/imported/wrench.png-0bf537c67e84e6157d5037b8d039d173.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/zoom.png
Executable file
|
After Width: | Height: | Size: 16 KiB |
34
assets/textures/zoom.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cf2mtfsfsb6k1"
|
||||||
|
path="res://.godot/imported/zoom.png-960a6405624a1439b35bc8d2d6ac8a9c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/zoom.png"
|
||||||
|
dest_files=["res://.godot/imported/zoom.png-960a6405624a1439b35bc8d2d6ac8a9c.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/zoomDefault.png
Executable file
|
After Width: | Height: | Size: 16 KiB |
34
assets/textures/zoomDefault.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dws7buk4satvq"
|
||||||
|
path="res://.godot/imported/zoomDefault.png-5eb43a95094da731274d9b517789390e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/zoomDefault.png"
|
||||||
|
dest_files=["res://.godot/imported/zoomDefault.png-5eb43a95094da731274d9b517789390e.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/zoomIn.png
Executable file
|
After Width: | Height: | Size: 16 KiB |
34
assets/textures/zoomIn.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bna16xaqa674x"
|
||||||
|
path="res://.godot/imported/zoomIn.png-1b0b2ed8a89f0dc9324087aada6c42bc.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/zoomIn.png"
|
||||||
|
dest_files=["res://.godot/imported/zoomIn.png-1b0b2ed8a89f0dc9324087aada6c42bc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/textures/zoomOut.png
Executable file
|
After Width: | Height: | Size: 16 KiB |
34
assets/textures/zoomOut.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b10xrvmyos08q"
|
||||||
|
path="res://.godot/imported/zoomOut.png-63ff626c2195047ec6dd725be5e21e0a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/zoomOut.png"
|
||||||
|
dest_files=["res://.godot/imported/zoomOut.png-63ff626c2195047ec6dd725be5e21e0a.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
5
assets/themes/default.tres
Executable file
|
|
@ -0,0 +1,5 @@
|
||||||
|
[gd_resource type="Theme" format=3 uid="uid://bpy5ajiru3dns"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
Tree/constants/draw_guides = 0
|
||||||
|
Tree/constants/draw_relationship_lines = 1
|
||||||
1
icon.svg
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><g transform="translate(32 32)"><path d="m-16-32c-8.86 0-16 7.13-16 15.99v95.98c0 8.86 7.13 15.99 16 15.99h96c8.86 0 16-7.13 16-15.99v-95.98c0-8.85-7.14-15.99-16-15.99z" fill="#363d52"/><path d="m-16-32c-8.86 0-16 7.13-16 15.99v95.98c0 8.86 7.13 15.99 16 15.99h96c8.86 0 16-7.13 16-15.99v-95.98c0-8.85-7.14-15.99-16-15.99zm0 4h96c6.64 0 12 5.35 12 11.99v95.98c0 6.64-5.35 11.99-12 11.99h-96c-6.64 0-12-5.35-12-11.99v-95.98c0-6.64 5.36-11.99 12-11.99z" fill-opacity=".4"/></g><g stroke-width="9.92746" transform="matrix(.10073078 0 0 .10073078 12.425923 2.256365)"><path d="m0 0s-.325 1.994-.515 1.976l-36.182-3.491c-2.879-.278-5.115-2.574-5.317-5.459l-.994-14.247-27.992-1.997-1.904 12.912c-.424 2.872-2.932 5.037-5.835 5.037h-38.188c-2.902 0-5.41-2.165-5.834-5.037l-1.905-12.912-27.992 1.997-.994 14.247c-.202 2.886-2.438 5.182-5.317 5.46l-36.2 3.49c-.187.018-.324-1.978-.511-1.978l-.049-7.83 30.658-4.944 1.004-14.374c.203-2.91 2.551-5.263 5.463-5.472l38.551-2.75c.146-.01.29-.016.434-.016 2.897 0 5.401 2.166 5.825 5.038l1.959 13.286h28.005l1.959-13.286c.423-2.871 2.93-5.037 5.831-5.037.142 0 .284.005.423.015l38.556 2.75c2.911.209 5.26 2.562 5.463 5.472l1.003 14.374 30.645 4.966z" fill="#fff" transform="matrix(4.162611 0 0 -4.162611 919.24059 771.67186)"/><path d="m0 0v-47.514-6.035-5.492c.108-.001.216-.005.323-.015l36.196-3.49c1.896-.183 3.382-1.709 3.514-3.609l1.116-15.978 31.574-2.253 2.175 14.747c.282 1.912 1.922 3.329 3.856 3.329h38.188c1.933 0 3.573-1.417 3.855-3.329l2.175-14.747 31.575 2.253 1.115 15.978c.133 1.9 1.618 3.425 3.514 3.609l36.182 3.49c.107.01.214.014.322.015v4.711l.015.005v54.325c5.09692 6.4164715 9.92323 13.494208 13.621 19.449-5.651 9.62-12.575 18.217-19.976 26.182-6.864-3.455-13.531-7.369-19.828-11.534-3.151 3.132-6.7 5.694-10.186 8.372-3.425 2.751-7.285 4.768-10.946 7.118 1.09 8.117 1.629 16.108 1.846 24.448-9.446 4.754-19.519 7.906-29.708 10.17-4.068-6.837-7.788-14.241-11.028-21.479-3.842.642-7.702.88-11.567.926v.006c-.027 0-.052-.006-.075-.006-.024 0-.049.006-.073.006v-.006c-3.872-.046-7.729-.284-11.572-.926-3.238 7.238-6.956 14.642-11.03 21.479-10.184-2.264-20.258-5.416-29.703-10.17.216-8.34.755-16.331 1.848-24.448-3.668-2.35-7.523-4.367-10.949-7.118-3.481-2.678-7.036-5.24-10.188-8.372-6.297 4.165-12.962 8.079-19.828 11.534-7.401-7.965-14.321-16.562-19.974-26.182 4.4426579-6.973692 9.2079702-13.9828876 13.621-19.449z" fill="#478cbf" transform="matrix(4.162611 0 0 -4.162611 104.69892 525.90697)"/><path d="m0 0-1.121-16.063c-.135-1.936-1.675-3.477-3.611-3.616l-38.555-2.751c-.094-.007-.188-.01-.281-.01-1.916 0-3.569 1.406-3.852 3.33l-2.211 14.994h-31.459l-2.211-14.994c-.297-2.018-2.101-3.469-4.133-3.32l-38.555 2.751c-1.936.139-3.476 1.68-3.611 3.616l-1.121 16.063-32.547 3.138c.015-3.498.06-7.33.06-8.093 0-34.374 43.605-50.896 97.781-51.086h.066.067c54.176.19 97.766 16.712 97.766 51.086 0 .777.047 4.593.063 8.093z" fill="#478cbf" transform="matrix(4.162611 0 0 -4.162611 784.07144 817.24284)"/><path d="m0 0c0-12.052-9.765-21.815-21.813-21.815-12.042 0-21.81 9.763-21.81 21.815 0 12.044 9.768 21.802 21.81 21.802 12.048 0 21.813-9.758 21.813-21.802" fill="#fff" transform="matrix(4.162611 0 0 -4.162611 389.21484 625.67104)"/><path d="m0 0c0-7.994-6.479-14.473-14.479-14.473-7.996 0-14.479 6.479-14.479 14.473s6.483 14.479 14.479 14.479c8 0 14.479-6.485 14.479-14.479" fill="#414042" transform="matrix(4.162611 0 0 -4.162611 367.36686 631.05679)"/><path d="m0 0c-3.878 0-7.021 2.858-7.021 6.381v20.081c0 3.52 3.143 6.381 7.021 6.381s7.028-2.861 7.028-6.381v-20.081c0-3.523-3.15-6.381-7.028-6.381" fill="#fff" transform="matrix(4.162611 0 0 -4.162611 511.99336 724.73954)"/><path d="m0 0c0-12.052 9.765-21.815 21.815-21.815 12.041 0 21.808 9.763 21.808 21.815 0 12.044-9.767 21.802-21.808 21.802-12.05 0-21.815-9.758-21.815-21.802" fill="#fff" transform="matrix(4.162611 0 0 -4.162611 634.78706 625.67104)"/><path d="m0 0c0-7.994 6.477-14.473 14.471-14.473 8.002 0 14.479 6.479 14.479 14.473s-6.477 14.479-14.479 14.479c-7.994 0-14.471-6.485-14.471-14.479" fill="#414042" transform="matrix(4.162611 0 0 -4.162611 656.64056 631.05679)"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 4.1 KiB |
37
icon.svg.import
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://difri7b7mxc4q"
|
||||||
|
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://icon.svg"
|
||||||
|
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
36
project.godot
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
; 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="HtmlDesigner"
|
||||||
|
config/tags=PackedStringArray("app", "interface", "tool")
|
||||||
|
run/main_scene="res://src/main_ui.tscn"
|
||||||
|
config/features=PackedStringArray("4.3", "Forward Plus")
|
||||||
|
run/low_processor_mode=true
|
||||||
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
html="*res://src/html.tscn"
|
||||||
|
app="*res://src/app.tscn"
|
||||||
|
|
||||||
|
[display]
|
||||||
|
|
||||||
|
window/size/initial_position_type=3
|
||||||
|
window/subwindows/embed_subwindows=false
|
||||||
|
|
||||||
|
[dotnet]
|
||||||
|
|
||||||
|
project/assembly_name="HtmlDesigner"
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
renderer/rendering_method="gl_compatibility"
|
||||||
136
src/app.gd
Executable file
|
|
@ -0,0 +1,136 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
|
||||||
|
var drag_widget: Control = null
|
||||||
|
|
||||||
|
|
||||||
|
func _physics_process(_delta: float) -> void:
|
||||||
|
if drag_widget:
|
||||||
|
drag_widget.set_global_position(get_global_mouse_position())
|
||||||
|
|
||||||
|
func lmb_pressed(event: InputEventMouseButton) -> bool:
|
||||||
|
return event.button_index == MOUSE_BUTTON_LEFT and event.is_pressed()
|
||||||
|
|
||||||
|
func lmb_released(event: InputEventMouseButton) -> bool:
|
||||||
|
return event.button_index == MOUSE_BUTTON_LEFT and event.is_released()
|
||||||
|
|
||||||
|
func rmb_pressed(event: InputEventMouseButton) -> bool:
|
||||||
|
return event.button_index == MOUSE_BUTTON_RIGHT and event.is_pressed()
|
||||||
|
|
||||||
|
func rmb_released(event: InputEventMouseButton) -> bool:
|
||||||
|
return event.button_index == MOUSE_BUTTON_RIGHT and event.is_released()
|
||||||
|
|
||||||
|
func set_drag_widget(o: WidgetModel, duplicate: bool = true) -> void:
|
||||||
|
if !o:
|
||||||
|
print("nothing...")
|
||||||
|
return
|
||||||
|
drag_widget = o.duplicate() if duplicate else o
|
||||||
|
drag_widget.set_global_position(get_global_mouse_position())
|
||||||
|
# drag_widget.set_visible(true)
|
||||||
|
drag_widget.set_z_index(100)
|
||||||
|
|
||||||
|
add_child(drag_widget)
|
||||||
|
if drag_widget:
|
||||||
|
# print("show model: ", drag_widget.get_model())
|
||||||
|
drag_widget.show()
|
||||||
|
|
||||||
|
func reset_drag_object() -> void:
|
||||||
|
if drag_widget:
|
||||||
|
drag_widget.queue_free()
|
||||||
|
drag_widget = null
|
||||||
|
|
||||||
|
|
||||||
|
func swap_children(parent: Node, from_index: int, to_index: int) -> void:
|
||||||
|
var from = parent.get_child(from_index)
|
||||||
|
var to = parent.get_child(to_index)
|
||||||
|
parent.move_child(from, to_index)
|
||||||
|
parent.move_child(to, from_index)
|
||||||
|
|
||||||
|
|
||||||
|
func swap_child_nodes(parent: Node, from: Node, to: Node) -> void:
|
||||||
|
var from_index = from.get_index()
|
||||||
|
var to_index = to.get_index()
|
||||||
|
parent.move_child(from, to_index)
|
||||||
|
parent.move_child(to, from_index)
|
||||||
|
|
||||||
|
|
||||||
|
func clear_children(node: Node) -> void:
|
||||||
|
for i in node.get_children():
|
||||||
|
i.queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
func delay(seconds: float):
|
||||||
|
return await get_tree().create_timer(seconds).timeout
|
||||||
|
|
||||||
|
|
||||||
|
func make_multi_file_dialog(node: Node, title: String, on_files_selected: Callable, filters = []) -> FileDialog:
|
||||||
|
var file_dialog := FileDialog.new()
|
||||||
|
file_dialog.set_title("Attach files")
|
||||||
|
file_dialog.set_file_mode(FileDialog.FILE_MODE_OPEN_FILES)
|
||||||
|
file_dialog.set_initial_position(Window.WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN)
|
||||||
|
file_dialog.set_min_size(Vector2(640, 480))
|
||||||
|
file_dialog.set_filters(filters)
|
||||||
|
file_dialog.files_selected.connect(on_files_selected)
|
||||||
|
node.add_child(file_dialog)
|
||||||
|
file_dialog.show()
|
||||||
|
return file_dialog
|
||||||
|
|
||||||
|
|
||||||
|
func make_color_picker(node: Node, title: String, on_color_selected: Callable) -> ColorPicker:
|
||||||
|
var color_picker := ColorPicker.new()
|
||||||
|
color_picker.set_h_size_flags(Control.SIZE_EXPAND_FILL)
|
||||||
|
color_picker.color_changed.connect(on_color_selected)
|
||||||
|
var window := make_window(node, title, color_picker)
|
||||||
|
window.set_min_size(Vector2i(300, 560))
|
||||||
|
window.set_max_size(Vector2i(300, 560))
|
||||||
|
return color_picker
|
||||||
|
|
||||||
|
|
||||||
|
func make_file_dialog(node: Node, title: String, on_file_selected: Callable, filters = []) -> FileDialog:
|
||||||
|
var file_dialog := FileDialog.new()
|
||||||
|
file_dialog.set_title("Attach files")
|
||||||
|
file_dialog.set_access(FileDialog.ACCESS_FILESYSTEM)
|
||||||
|
file_dialog.set_file_mode(FileDialog.FILE_MODE_OPEN_FILE)
|
||||||
|
file_dialog.set_initial_position(Window.WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN)
|
||||||
|
file_dialog.set_min_size(Vector2(640, 480))
|
||||||
|
file_dialog.set_filters(filters)
|
||||||
|
file_dialog.file_selected.connect(on_file_selected)
|
||||||
|
node.add_child(file_dialog)
|
||||||
|
file_dialog.show()
|
||||||
|
return file_dialog
|
||||||
|
|
||||||
|
|
||||||
|
func make_window(node: Node, title: String, ui_scene: Control) -> Window:
|
||||||
|
var window = Window.new()
|
||||||
|
window.set_flag(Window.FLAG_POPUP, false)
|
||||||
|
# window.set_flag(Window.FLAG_BORDERLESS, true)
|
||||||
|
window.set_title(title)
|
||||||
|
window.set_exclusive(true)
|
||||||
|
window.set_min_size(Vector2i(640, 480))
|
||||||
|
window.set_initial_position(Window.WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN)
|
||||||
|
window.close_requested.connect(window.queue_free)
|
||||||
|
window.add_child(ui_scene)
|
||||||
|
node.add_child(window)
|
||||||
|
window.show()
|
||||||
|
return window
|
||||||
|
|
||||||
|
|
||||||
|
func toggle_popup_menu(popup_menu: PopupMenu) -> void:
|
||||||
|
popup_menu.set_visible(!popup_menu.is_visible())
|
||||||
|
if popup_menu.is_visible():
|
||||||
|
popup_menu.set_position(DisplayServer.mouse_get_position())
|
||||||
|
else:
|
||||||
|
popup_menu.set_position(Vector2i(-600, -480))
|
||||||
|
popup_menu.set_process(popup_menu.is_visible())
|
||||||
|
|
||||||
|
func array_to_string(arr: PackedStringArray, delim: String = ", ", trim_suffix: bool = true) -> String:
|
||||||
|
if arr.is_empty():
|
||||||
|
return ""
|
||||||
|
return delim.join(arr).trim_suffix(delim if trim_suffix else "")
|
||||||
|
|
||||||
|
func scroll_to_top(scroll_view: ScrollContainer) -> void:
|
||||||
|
scroll_view.set_v_scroll(0)
|
||||||
|
|
||||||
|
func scroll_to_bottom(scroll_view: ScrollContainer) -> void:
|
||||||
|
var max_value = scroll_view.get_v_scroll_bar().get_max()
|
||||||
|
scroll_view.set_deferred("scroll_vertical", max_value)
|
||||||
13
src/app.tscn
Executable file
|
|
@ -0,0 +1,13 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://byeo2r0t0rpld"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://src/app.gd" id="1_56vju"]
|
||||||
|
|
||||||
|
[node name="app" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 1
|
||||||
|
script = ExtResource("1_56vju")
|
||||||
217
src/canvas.gd
Executable file
|
|
@ -0,0 +1,217 @@
|
||||||
|
extends TextureRect
|
||||||
|
|
||||||
|
class_name Canvas
|
||||||
|
|
||||||
|
signal update_doctree(data)
|
||||||
|
signal update_document(document)
|
||||||
|
signal update_selected(selected)
|
||||||
|
|
||||||
|
@onready var button_select := %Select
|
||||||
|
@onready var button_move := %Move
|
||||||
|
@onready var label_selection := %Selection
|
||||||
|
@onready var label_tool := %SetTool
|
||||||
|
@onready var selection_bounds := %SelectionBounds
|
||||||
|
@onready var popup_menu := %PopupMenu
|
||||||
|
@onready var background := $"../Background"
|
||||||
|
@onready var layout := $Layout
|
||||||
|
@onready var no_layout := %NoLayout
|
||||||
|
@onready var v_layout := %VerticalLayout
|
||||||
|
@onready var h_layout := %HorizontalLayout
|
||||||
|
@onready var g_layout := %GridLayout
|
||||||
|
|
||||||
|
enum CanvasTool {
|
||||||
|
SELECT,
|
||||||
|
MOVE
|
||||||
|
}
|
||||||
|
|
||||||
|
var page_name := "index"
|
||||||
|
var contains_mouse := false
|
||||||
|
var current_tool := CanvasTool.SELECT
|
||||||
|
var selected: Array[WidgetModel] = []
|
||||||
|
var mouse_position := Vector2()
|
||||||
|
var bg_image_path := ""
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
mouse_entered.connect(func(): contains_mouse = true)
|
||||||
|
mouse_exited.connect(func(): contains_mouse = false)
|
||||||
|
button_select.pressed.connect(_set_tool.bind(CanvasTool.SELECT))
|
||||||
|
button_move.pressed.connect(_set_tool.bind(CanvasTool.MOVE))
|
||||||
|
popup_menu.id_pressed.connect(_handle_popup_menu)
|
||||||
|
|
||||||
|
no_layout.pressed.connect(func(): _set_layout(_init_container(Container.new())))
|
||||||
|
v_layout.pressed.connect(func(): _set_layout(_init_container(VBoxContainer.new())))
|
||||||
|
h_layout.pressed.connect(func(): _set_layout(_init_container(HBoxContainer.new())))
|
||||||
|
g_layout.pressed.connect(
|
||||||
|
func():
|
||||||
|
var c := GridContainer.new()
|
||||||
|
c.set_columns(2)
|
||||||
|
_set_layout(c)
|
||||||
|
_init_container(c)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func _init_container(c: Container) -> Container:
|
||||||
|
c.set_name("MainLayout")
|
||||||
|
c.set_size(background.get_size())
|
||||||
|
c.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||||
|
c.size_flags_vertical = Control.SIZE_EXPAND_FILL
|
||||||
|
return c
|
||||||
|
|
||||||
|
|
||||||
|
func _set_layout(container) -> void:
|
||||||
|
var temp = layout
|
||||||
|
layout.replace_by(container)
|
||||||
|
temp.queue_free()
|
||||||
|
layout = container
|
||||||
|
|
||||||
|
|
||||||
|
func _input(event: InputEvent) -> void:
|
||||||
|
if not contains_mouse:
|
||||||
|
return
|
||||||
|
|
||||||
|
# get the dragged object
|
||||||
|
if event is InputEventMouseButton:
|
||||||
|
if app.lmb_pressed(event):
|
||||||
|
if current_tool == CanvasTool.SELECT:
|
||||||
|
_start_selection()
|
||||||
|
if app.lmb_released(event):
|
||||||
|
if app.drag_widget:
|
||||||
|
print("dropped widget: ", app.drag_widget)
|
||||||
|
unselect_all()
|
||||||
|
var widget = app.drag_widget
|
||||||
|
var parent = widget.get_parent()
|
||||||
|
parent.remove_child(widget)
|
||||||
|
layout.add_child(widget)
|
||||||
|
if widget.has_signal("selected"):
|
||||||
|
widget.selected.connect(_set_selection.bind(widget))
|
||||||
|
if widget.has_signal("update_document"):
|
||||||
|
widget.update_document.connect(emit_signal.bind("update_document", generate_html()))
|
||||||
|
widget.set_global_position(get_global_mouse_position())
|
||||||
|
app.drag_widget = null
|
||||||
|
_set_selection(widget)
|
||||||
|
emit_signal("update_document", generate_html())
|
||||||
|
_end_selection()
|
||||||
|
if app.rmb_pressed(event):
|
||||||
|
# open context menu
|
||||||
|
if popup_menu:
|
||||||
|
app.toggle_popup_menu(popup_menu)
|
||||||
|
|
||||||
|
elif event is InputEventMouseMotion:
|
||||||
|
if current_tool == CanvasTool.SELECT:
|
||||||
|
_update_selection()
|
||||||
|
|
||||||
|
func unselect_all() -> void:
|
||||||
|
for i in get_children():
|
||||||
|
if i is WidgetUI:
|
||||||
|
i.is_selected = false
|
||||||
|
|
||||||
|
func generate_html() -> String:
|
||||||
|
var bg_color: Color = background.get_theme_stylebox("panel").get_bg_color()
|
||||||
|
var bg := html.background(bg_image_path, bg_color)
|
||||||
|
var document := html.html("", {"style": bg, "position": "relative"}) + "\n"
|
||||||
|
var attrs: Dictionary = {
|
||||||
|
"style": bg,
|
||||||
|
"position": "relative",
|
||||||
|
}
|
||||||
|
var contents = ""
|
||||||
|
for i in layout.get_children():
|
||||||
|
if i.has_method("generate_html"):
|
||||||
|
contents += i.generate_html() + "\n"
|
||||||
|
var s: Vector2 = background.get_size()
|
||||||
|
document += html.body(contents, {"width": s.x, "height": s.y})
|
||||||
|
return document
|
||||||
|
|
||||||
|
|
||||||
|
func generate_tree() -> Tree:
|
||||||
|
# build tree from canvas
|
||||||
|
var tree := Tree.new()
|
||||||
|
var children := get_children()
|
||||||
|
for child in children:
|
||||||
|
if child is HtmlDiv:
|
||||||
|
child.generate_tree()
|
||||||
|
return tree
|
||||||
|
|
||||||
|
|
||||||
|
func _set_tool(tool: CanvasTool) -> void:
|
||||||
|
current_tool = tool
|
||||||
|
match current_tool:
|
||||||
|
CanvasTool.SELECT: label_tool.set_text("Select")
|
||||||
|
CanvasTool.MOVE: label_tool.set_text("Move")
|
||||||
|
|
||||||
|
|
||||||
|
func _set_selection(widget: WidgetModel) -> void:
|
||||||
|
selected.clear()
|
||||||
|
selected.append(widget)
|
||||||
|
label_selection.set_text(widget.get_name())
|
||||||
|
emit_signal("update_doctree", {"parent": "index.html", "name": widget.get_name()})
|
||||||
|
emit_signal("update_selected", selected)
|
||||||
|
|
||||||
|
|
||||||
|
func _start_selection() -> void:
|
||||||
|
mouse_position = get_global_mouse_position()
|
||||||
|
var rect = Rect2(mouse_position, Vector2())
|
||||||
|
# draw_rect(rect, Color(1.0, 1.0, 0), false, 2.0)
|
||||||
|
# selection_bounds.set_visible(true)
|
||||||
|
# selection_bounds.set_global_position(mouse_position)
|
||||||
|
|
||||||
|
|
||||||
|
func _update_selection() -> void:
|
||||||
|
var delta = get_global_mouse_position() - mouse_position
|
||||||
|
var rect = Rect2(mouse_position, delta)
|
||||||
|
# draw_rect(rect, Color(1.0, 1.0, 0), false, 2.0)
|
||||||
|
# selection_bounds.set_size(delta)
|
||||||
|
|
||||||
|
|
||||||
|
func _highlight_selection() -> void:
|
||||||
|
pass
|
||||||
|
# for i in selected:
|
||||||
|
# i.
|
||||||
|
|
||||||
|
|
||||||
|
func _end_selection() -> Array:
|
||||||
|
# selection_bounds.set_visible(false)
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
func set_background_color(color: Color) -> void:
|
||||||
|
background.get_theme_stylebox("panel").set_bg_color(color)
|
||||||
|
emit_signal("update_document", generate_html())
|
||||||
|
|
||||||
|
|
||||||
|
func load_background(path: String) -> void:
|
||||||
|
# Check if file is shader or image
|
||||||
|
var bg = load(path)
|
||||||
|
|
||||||
|
print(typeof(bg))
|
||||||
|
# Load a background shader or static image
|
||||||
|
match typeof(bg):
|
||||||
|
TYPE_OBJECT:
|
||||||
|
print("setting image/texture background...")
|
||||||
|
# var mat = get_material()
|
||||||
|
# mat.albe
|
||||||
|
bg_image_path = path
|
||||||
|
var t := load(bg_image_path)
|
||||||
|
set_texture(t)
|
||||||
|
emit_signal("update_document", generate_html())
|
||||||
|
|
||||||
|
|
||||||
|
func update_selected_from_data(data: Dictionary) -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func clear_widgets() -> void:
|
||||||
|
for i in layout.get_children():
|
||||||
|
i.queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
func add_page() -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _handle_popup_menu(id: int) -> void:
|
||||||
|
match id:
|
||||||
|
0: app.make_file_dialog(self, "Select Background", load_background, ["*.png ; PNG Images","*.jpg; JPEG Images", "*.gdshader ; GD Shader"])
|
||||||
|
1: app.make_color_picker(self, "Select Background Color", set_background_color)
|
||||||
|
2: add_page()
|
||||||
|
3: clear_widgets()
|
||||||
|
# 3: reset_background()
|
||||||
219
src/canvas.tscn
Executable file
|
|
@ -0,0 +1,219 @@
|
||||||
|
[gd_scene load_steps=12 format=3 uid="uid://dg2dai5xiebkw"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://src/canvas.gd" id="1_s4wkp"]
|
||||||
|
[ext_resource type="ButtonGroup" uid="uid://b12lx5kudvat0" path="res://assets/groups/canvas_tool.tres" id="1_som1s"]
|
||||||
|
[ext_resource type="ButtonGroup" uid="uid://c71aawlem32fa" path="res://assets/groups/canvas_layout.tres" id="2_bven0"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ua5o5an18y6y" path="res://assets/textures/pointer.png" id="2_kl574"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c85xvc3cn6yc6" path="res://assets/textures/cross.png" id="3_e1hxl"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b78r0uxu2q8bg" path="res://assets/textures/barsHorizontal.png" id="4_2ddyv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b1gxogaykwk3t" path="res://assets/textures/barsVertical.png" id="5_fu4lw"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cdb5sd2l8f4cb" path="res://assets/textures/menuGrid.png" id="6_yohf3"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1k5jw"]
|
||||||
|
bg_color = Color(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="Shader" id="Shader_57orc"]
|
||||||
|
code = "// NOTE: Shader automatically converted from Godot Engine 4.1.1.stable.mono's CanvasItemMaterial.
|
||||||
|
|
||||||
|
shader_type canvas_item;
|
||||||
|
render_mode blend_mix;
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_q3mnx"]
|
||||||
|
shader = SubResource("Shader_57orc")
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer"]
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||||
|
custom_minimum_size = Vector2(400, 200)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
theme_override_constants/margin_left = 8
|
||||||
|
theme_override_constants/margin_top = 8
|
||||||
|
theme_override_constants/margin_right = 8
|
||||||
|
theme_override_constants/margin_bottom = 8
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="PanelContainer" type="PanelContainer" parent="MarginContainer/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/VBoxContainer/PanelContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 8
|
||||||
|
theme_override_constants/margin_top = 8
|
||||||
|
theme_override_constants/margin_right = 8
|
||||||
|
theme_override_constants/margin_bottom = 8
|
||||||
|
|
||||||
|
[node name="Tools" type="HBoxContainer" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Tools"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Select" type="TextureButton" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(32, 32)
|
||||||
|
layout_mode = 2
|
||||||
|
toggle_mode = true
|
||||||
|
button_pressed = true
|
||||||
|
button_group = ExtResource("1_som1s")
|
||||||
|
texture_normal = ExtResource("2_kl574")
|
||||||
|
ignore_texture_size = true
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
|
[node name="Move" type="Button" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
toggle_mode = true
|
||||||
|
button_group = ExtResource("1_som1s")
|
||||||
|
text = "Move"
|
||||||
|
|
||||||
|
[node name="VSeparator" type="VSeparator" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Main Layout"
|
||||||
|
|
||||||
|
[node name="NoLayout" type="TextureButton" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(32, 32)
|
||||||
|
layout_mode = 2
|
||||||
|
toggle_mode = true
|
||||||
|
button_group = ExtResource("2_bven0")
|
||||||
|
texture_normal = ExtResource("3_e1hxl")
|
||||||
|
ignore_texture_size = true
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
|
[node name="VerticalLayout" type="TextureButton" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(32, 32)
|
||||||
|
layout_mode = 2
|
||||||
|
toggle_mode = true
|
||||||
|
button_group = ExtResource("2_bven0")
|
||||||
|
texture_normal = ExtResource("4_2ddyv")
|
||||||
|
ignore_texture_size = true
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
|
[node name="HorizontalLayout" type="TextureButton" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(32, 32)
|
||||||
|
layout_mode = 2
|
||||||
|
toggle_mode = true
|
||||||
|
button_group = ExtResource("2_bven0")
|
||||||
|
texture_normal = ExtResource("5_fu4lw")
|
||||||
|
ignore_texture_size = true
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
|
[node name="GridLayout" type="TextureButton" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(32, 32)
|
||||||
|
layout_mode = 2
|
||||||
|
toggle_mode = true
|
||||||
|
button_group = ExtResource("2_bven0")
|
||||||
|
texture_normal = ExtResource("6_yohf3")
|
||||||
|
ignore_texture_size = true
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
|
[node name="Spacer" type="Control" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="SetTool" type="Label" parent="MarginContainer/VBoxContainer/PanelContainer/MarginContainer/Tools"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Select"
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Spacer" type="Control" parent="MarginContainer/VBoxContainer/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Selection" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Spacer2" type="Control" parent="MarginContainer/VBoxContainer/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
scroll_horizontal = 100
|
||||||
|
scroll_vertical = 100
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/VBoxContainer/ScrollContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
theme_override_constants/margin_left = 200
|
||||||
|
theme_override_constants/margin_top = 200
|
||||||
|
theme_override_constants/margin_right = 200
|
||||||
|
theme_override_constants/margin_bottom = 200
|
||||||
|
|
||||||
|
[node name="Background" type="Panel" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_styles/panel = SubResource("StyleBoxFlat_1k5jw")
|
||||||
|
|
||||||
|
[node name="Canvas" type="TextureRect" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
material = SubResource("ShaderMaterial_q3mnx")
|
||||||
|
custom_minimum_size = Vector2(1024, 960)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
script = ExtResource("1_s4wkp")
|
||||||
|
|
||||||
|
[node name="Layout" type="Container" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/Canvas"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Control" type="Control" parent="MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
|
[node name="SelectionBounds" type="ColorRect" parent="MarginContainer/Control"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
offset_right = 120.0
|
||||||
|
offset_bottom = 123.0
|
||||||
|
mouse_filter = 1
|
||||||
|
color = Color(1, 0.909804, 0.615686, 1)
|
||||||
|
|
||||||
|
[node name="PopupMenu" type="PopupMenu" parent="MarginContainer/Control"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
item_count = 5
|
||||||
|
item_0/text = "Set Background"
|
||||||
|
item_0/id = 0
|
||||||
|
item_1/text = "Set Background Color"
|
||||||
|
item_1/id = 1
|
||||||
|
item_2/text = ""
|
||||||
|
item_2/id = 1000
|
||||||
|
item_2/separator = true
|
||||||
|
item_3/text = "Add Page"
|
||||||
|
item_3/id = 2
|
||||||
|
item_4/text = "Clear Page"
|
||||||
|
item_4/id = 3
|
||||||
22
src/canvas_settings.tscn
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
[gd_scene format=3 uid="uid://b8hb0s6n4yu2t"]
|
||||||
|
|
||||||
|
[node name="canvas_settings" type="PanelContainer"]
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
horizontal_scroll_mode = 0
|
||||||
|
|
||||||
|
[node name="Interface" type="VBoxContainer" parent="MarginContainer/ScrollContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(200, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
55
src/code.gd
Executable file
|
|
@ -0,0 +1,55 @@
|
||||||
|
extends PanelContainer
|
||||||
|
|
||||||
|
signal update_code
|
||||||
|
|
||||||
|
@onready var save := %Save
|
||||||
|
@onready var load := %Load
|
||||||
|
@onready var reload := %Reload
|
||||||
|
@onready var editor := %Editor
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
save.pressed.connect(_save_file_dialog)
|
||||||
|
load.pressed.connect(_load_file_dialog)
|
||||||
|
reload.pressed.connect(emit_signal.bind("update_code"))
|
||||||
|
|
||||||
|
|
||||||
|
func _save_file_dialog() -> void:
|
||||||
|
var file_dialog := FileDialog.new()
|
||||||
|
file_dialog.set_file_mode(FileDialog.FILE_MODE_SAVE_FILE)
|
||||||
|
file_dialog.set_access(FileDialog.ACCESS_FILESYSTEM)
|
||||||
|
file_dialog.set_filters(PackedStringArray(["*.html ; HTML page"]))
|
||||||
|
file_dialog.set_min_size(Vector2(600, 480))
|
||||||
|
file_dialog.set_initial_position(Window.WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN)
|
||||||
|
file_dialog.file_selected.connect(
|
||||||
|
func(path: String):
|
||||||
|
var file = FileAccess.open(path, FileAccess.WRITE)
|
||||||
|
if file:
|
||||||
|
file.store_string(editor.get_text())
|
||||||
|
remove_child(file_dialog)
|
||||||
|
file_dialog.queue_free()
|
||||||
|
)
|
||||||
|
add_child(file_dialog)
|
||||||
|
file_dialog.popup()
|
||||||
|
|
||||||
|
|
||||||
|
func _load_file_dialog() -> void:
|
||||||
|
var file_dialog := FileDialog.new()
|
||||||
|
file_dialog.set_file_mode(FileDialog.FILE_MODE_OPEN_FILE)
|
||||||
|
file_dialog.set_access(FileDialog.ACCESS_FILESYSTEM)
|
||||||
|
file_dialog.set_filters(PackedStringArray(["*.html ; HTML page"]))
|
||||||
|
file_dialog.set_min_size(Vector2(600, 480))
|
||||||
|
file_dialog.set_initial_position(Window.WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN)
|
||||||
|
file_dialog.file_selected.connect(
|
||||||
|
func(path: String):
|
||||||
|
var file = FileAccess.open(path, FileAccess.READ)
|
||||||
|
editor.set_text(file.get_as_text() if file else "")
|
||||||
|
remove_child(file_dialog)
|
||||||
|
file_dialog.queue_free()
|
||||||
|
)
|
||||||
|
add_child(file_dialog)
|
||||||
|
file_dialog.popup()
|
||||||
|
|
||||||
|
|
||||||
|
func set_text(text: String) -> void:
|
||||||
|
editor.set_text(text)
|
||||||
80
src/code.tscn
Executable file
|
|
@ -0,0 +1,80 @@
|
||||||
|
[gd_scene load_steps=5 format=3 uid="uid://byt4c7isecxso"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://src/code.gd" id="1_kmlt3"]
|
||||||
|
|
||||||
|
[sub_resource type="InputEventKey" id="InputEventKey_26e8s"]
|
||||||
|
device = -1
|
||||||
|
ctrl_pressed = true
|
||||||
|
keycode = 83
|
||||||
|
unicode = 115
|
||||||
|
|
||||||
|
[sub_resource type="Shortcut" id="Shortcut_xrwox"]
|
||||||
|
events = [SubResource("InputEventKey_26e8s")]
|
||||||
|
|
||||||
|
[sub_resource type="CodeHighlighter" id="CodeHighlighter_tcpfj"]
|
||||||
|
number_color = Color(0.556863, 0.258824, 0.392157, 1)
|
||||||
|
symbol_color = Color(0, 0, 0.745098, 1)
|
||||||
|
function_color = Color(0.686275, 0, 0.368627, 1)
|
||||||
|
member_variable_color = Color(0.239216, 0.878431, 0.827451, 1)
|
||||||
|
keyword_colors = {
|
||||||
|
"button": Color(0, 0, 1, 1),
|
||||||
|
"height": Color(0.329284, 0.803401, 0.828125, 1),
|
||||||
|
"width": Color(0.329412, 0.803922, 0.827451, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Code" type="PanelContainer"]
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
script = ExtResource("1_kmlt3")
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 8
|
||||||
|
theme_override_constants/margin_top = 8
|
||||||
|
theme_override_constants/margin_right = 8
|
||||||
|
theme_override_constants/margin_bottom = 8
|
||||||
|
|
||||||
|
[node name="Controls" type="HBoxContainer" parent="MarginContainer/VBoxContainer/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 8
|
||||||
|
|
||||||
|
[node name="Save" type="Button" parent="MarginContainer/VBoxContainer/MarginContainer/Controls"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
shortcut = SubResource("Shortcut_xrwox")
|
||||||
|
text = "Save"
|
||||||
|
|
||||||
|
[node name="Load" type="Button" parent="MarginContainer/VBoxContainer/MarginContainer/Controls"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Load"
|
||||||
|
|
||||||
|
[node name="Spacer" type="Control" parent="MarginContainer/VBoxContainer/MarginContainer/Controls"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Reload" type="Button" parent="MarginContainer/VBoxContainer/MarginContainer/Controls"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Reload"
|
||||||
|
|
||||||
|
[node name="Editor" type="CodeEdit" parent="MarginContainer/VBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
highlight_all_occurrences = true
|
||||||
|
highlight_current_line = true
|
||||||
|
draw_tabs = true
|
||||||
|
syntax_highlighter = SubResource("CodeHighlighter_tcpfj")
|
||||||
|
gutters_draw_line_numbers = true
|
||||||
29
src/designer.tscn
Executable file
|
|
@ -0,0 +1,29 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://bec7c5seis81k"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dg2dai5xiebkw" path="res://src/canvas.tscn" id="1_jayv4"]
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_x6j4p"]
|
||||||
|
script/source = "extends PanelContainer
|
||||||
|
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
|
[node name="Designer" type="PanelContainer"]
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 1
|
||||||
|
script = SubResource("GDScript_x6j4p")
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 8
|
||||||
|
theme_override_constants/margin_top = 8
|
||||||
|
theme_override_constants/margin_right = 8
|
||||||
|
theme_override_constants/margin_bottom = 8
|
||||||
|
|
||||||
|
[node name="Canvas" parent="MarginContainer" instance=ExtResource("1_jayv4")]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
21
src/doctree.gd
Executable file
|
|
@ -0,0 +1,21 @@
|
||||||
|
extends PanelContainer
|
||||||
|
|
||||||
|
@onready var tree := %Tree
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
var root = tree.create_item()
|
||||||
|
root.set_text(0, "root")
|
||||||
|
var page1 = tree.create_item(root)
|
||||||
|
page1.set_text(0, "index.html")
|
||||||
|
|
||||||
|
|
||||||
|
func add_page(parent: String, widget_name: String) -> void:
|
||||||
|
# tokenize parent into path array
|
||||||
|
var path := _tokenize(parent)
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _tokenize(dots: String, delimiter: String = ",") -> Array[String]:
|
||||||
|
var path: Array[String] = []
|
||||||
|
return path
|
||||||
38
src/doctree.tscn
Executable file
|
|
@ -0,0 +1,38 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://cy5b2bxrwni8w"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://src/doctree.gd" id="1_ulm8l"]
|
||||||
|
|
||||||
|
[node name="DocumentTree" type="PanelContainer"]
|
||||||
|
custom_minimum_size = Vector2(0, 150)
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_ulm8l")
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 8
|
||||||
|
theme_override_constants/margin_top = 8
|
||||||
|
theme_override_constants/margin_right = 8
|
||||||
|
theme_override_constants/margin_bottom = 8
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Controls" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Button" type="Button" parent="MarginContainer/VBoxContainer/Controls"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "New"
|
||||||
|
|
||||||
|
[node name="Button2" type="Button" parent="MarginContainer/VBoxContainer/Controls"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Delete"
|
||||||
|
|
||||||
|
[node name="Tree" type="Tree" parent="MarginContainer/VBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
9
src/graph.tscn
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
[gd_scene format=3 uid="uid://cjyhxon67nd1a"]
|
||||||
|
|
||||||
|
[node name="Graph" type="GraphEdit"]
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
scroll_offset = Vector2(-126, 0)
|
||||||
128
src/html.gd
Normal file
|
|
@ -0,0 +1,128 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
@onready var selection
|
||||||
|
|
||||||
|
func doctype() -> String:
|
||||||
|
return "<!DOCTYPE html>"
|
||||||
|
|
||||||
|
func html(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("html", content, attrs)
|
||||||
|
|
||||||
|
func head(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("head", content, attrs)
|
||||||
|
|
||||||
|
func body(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("body", content, attrs)
|
||||||
|
|
||||||
|
func link(attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_attrs("link", attrs)
|
||||||
|
|
||||||
|
func heading(level: int, content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
level = clamp(level, 1, 6)
|
||||||
|
return _format_attrs("h" + str(level), attrs) + content + "</h" + str(level) + ">"
|
||||||
|
|
||||||
|
func h(level: int, content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return heading(level, content, attrs)
|
||||||
|
|
||||||
|
func paragraph(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("p", content, attrs)
|
||||||
|
|
||||||
|
func p(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return paragraph(content, attrs)
|
||||||
|
|
||||||
|
func header(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("header", content, attrs)
|
||||||
|
|
||||||
|
func footer(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("footer", content, attrs)
|
||||||
|
|
||||||
|
func div(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("div", content, attrs)
|
||||||
|
|
||||||
|
func ref(url: String, content: String = "") -> String:
|
||||||
|
return _format_tag("a", content, {"href": url})
|
||||||
|
|
||||||
|
func image(src: String, attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_attrs("img src=" + src, attrs)
|
||||||
|
|
||||||
|
func img(src: String, attrs: Dictionary = {}) -> String:
|
||||||
|
return image(src, attrs)
|
||||||
|
|
||||||
|
func input(content: String = "", attrs: Dictionary = {"type": "content"}) -> String:
|
||||||
|
attrs["value"] = "\"" + content + "\""
|
||||||
|
return _format_tag("input", "", attrs)
|
||||||
|
|
||||||
|
func italic(content: String = "") -> String:
|
||||||
|
return _format_tag("i", content, {})
|
||||||
|
|
||||||
|
func i(content: String = "") -> String:
|
||||||
|
return italic(content)
|
||||||
|
|
||||||
|
func bold(content: String = "") -> String:
|
||||||
|
return _format_tag("b", content, {})
|
||||||
|
|
||||||
|
func b(content: String = "") -> String:
|
||||||
|
return bold(content)
|
||||||
|
|
||||||
|
func line_break() -> String:
|
||||||
|
return "<br>"
|
||||||
|
|
||||||
|
func br() -> String:
|
||||||
|
return line_break()
|
||||||
|
|
||||||
|
func button(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("button", content, attrs)
|
||||||
|
|
||||||
|
func label(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("label", content, attrs)
|
||||||
|
|
||||||
|
func comment(content: String = "") -> String:
|
||||||
|
return "<!--" + content + "-->"
|
||||||
|
|
||||||
|
func iframe(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("iframe", content, attrs)
|
||||||
|
|
||||||
|
func nav(content: String = "", attrs: Dictionary = {}) -> String:
|
||||||
|
return _format_tag("nav", content, attrs)
|
||||||
|
|
||||||
|
func style(content: Dictionary = {}, attrs: Dictionary = {}) -> String:
|
||||||
|
var ss: String
|
||||||
|
for k in content:
|
||||||
|
ss += k + ": " + str(attrs[k]) + "; "
|
||||||
|
return _format_tag("style", "", attrs) + ss + "</style>"
|
||||||
|
|
||||||
|
func widget(w: WidgetUI) -> String:
|
||||||
|
return w.generate_html()
|
||||||
|
|
||||||
|
func background(url: String, color: Color) -> Dictionary:
|
||||||
|
var bg := {
|
||||||
|
"background-image": "url('" + url + "')",
|
||||||
|
"background-repeat": "no-repeat",
|
||||||
|
"background-attachment": "fixed",
|
||||||
|
"background-size": "cover",
|
||||||
|
"background-color": "#" + color.to_html()
|
||||||
|
}
|
||||||
|
return bg
|
||||||
|
|
||||||
|
func test_document() -> String:
|
||||||
|
return doctype() + html(body(h(1, "My first heading.") + p("My first paragraph.")))
|
||||||
|
|
||||||
|
func _format_style_attr(attrs: Dictionary = {}) -> String:
|
||||||
|
var s := "\""
|
||||||
|
for k in attrs:
|
||||||
|
s += k + ": " + str(attrs[k]) + "; "
|
||||||
|
return "style=" + s + "\""
|
||||||
|
|
||||||
|
func _format_attrs(tag_name: String, attrs: Dictionary) -> String:
|
||||||
|
var tag := "<" + tag_name
|
||||||
|
for k in attrs:
|
||||||
|
if k == "style":
|
||||||
|
tag += " " + _format_style_attr(attrs[k])
|
||||||
|
else:
|
||||||
|
var has_value = len(str(attrs[k]))
|
||||||
|
tag += " " + k + ("=" + str(attrs[k])) if has_value else ""
|
||||||
|
tag += ">"
|
||||||
|
return tag
|
||||||
|
|
||||||
|
func _format_tag(tag_name: String, content: String, attrs: Dictionary) -> String:
|
||||||
|
return _format_attrs(tag_name, attrs) + content + "</" + tag_name + ">"
|
||||||
6
src/html.tscn
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://bj0g3xmjs70xa"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://src/html.gd" id="1_0s8tj"]
|
||||||
|
|
||||||
|
[node name="html" type="Node"]
|
||||||
|
script = ExtResource("1_0s8tj")
|
||||||
18
src/inspector.gd
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
extends PanelContainer
|
||||||
|
|
||||||
|
@onready var interface := %Interface
|
||||||
|
|
||||||
|
signal update_widget(data)
|
||||||
|
|
||||||
|
|
||||||
|
func add_interface(new_interface: WidgetInspector) -> void:
|
||||||
|
print("new interface: ", new_interface)
|
||||||
|
if !new_interface:
|
||||||
|
return
|
||||||
|
new_interface.show()
|
||||||
|
interface.add_child(new_interface)
|
||||||
|
|
||||||
|
|
||||||
|
func clear_interface() -> void:
|
||||||
|
for i in interface.get_children():
|
||||||
|
i.queue_free()
|
||||||