├── .gitattributes ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── Fonts ├── FiraCode-Medium.ttf ├── FiraCode-Medium.ttf.import ├── FiraCode-Regular.ttf ├── FiraCode-Regular.ttf.import ├── FiraCode-VariableFont_wght.ttf ├── FiraCode-VariableFont_wght.ttf.import ├── NotoColorEmoji-Regular.ttf └── NotoColorEmoji-Regular.ttf.import ├── Icons ├── Comments │ ├── apple.png │ ├── apple.png.import │ ├── bytebrawler.png │ ├── bytebrawler.png.import │ ├── creeperita104.png │ ├── creeperita104.png.import │ ├── dmytro_nedylski.png │ ├── dmytro_nedylski.png.import │ ├── itzinnovator.png │ ├── itzinnovator.png.import │ ├── linter.png │ ├── linter.png.import │ ├── linuxiscool315.png │ ├── linuxiscool315.png.import │ ├── nearprotocol.png │ ├── nearprotocol.png.import │ ├── panos05.png.import │ ├── pinkgold123.png │ ├── pinkgold123.png.import │ ├── powersaj.png │ ├── powersaj.png.import │ ├── proplayer.py.png │ ├── proplayer.py.png.import │ ├── quincetart10.png │ ├── quincetart10.png.import │ ├── rachniotov.png │ ├── rachniotov.png.import │ ├── segfault.png │ ├── segfault.png.import │ ├── stef_dp.png │ ├── stef_dp.png.import │ ├── syntaxslayer.png │ ├── syntaxslayer.png.import │ ├── tavidev.png │ ├── tavidev.png.import │ ├── worker_621.png │ ├── worker_621.png.import │ ├── xx420_weedman_xx.png │ ├── xx420_weedman_xx.png.import │ ├── ysb__.png │ ├── ysb__.png.import │ ├── zerotwo._02.png │ └── zerotwo._02.png.import ├── function.png ├── function.png.import ├── griddycode.png ├── griddycode.png.import ├── preview.mp4 ├── variable.png └── variable.png.import ├── LICENSE ├── Lua ├── Plugins │ ├── bf.lua │ ├── bs.lua │ ├── bsx.lua │ ├── c.lua │ ├── cpp.lua │ ├── cs.lua │ ├── css.lua │ ├── go.lua │ ├── html.lua │ ├── java.lua │ ├── js.lua │ ├── json.lua │ ├── lua.lua │ ├── py.lua │ └── yap.lua └── Themes │ ├── Catppuccin Frappe.lua │ ├── Catppuccin Latte.lua │ ├── Catppuccin Macchiato.lua │ ├── Catppuccin Mocha.lua │ ├── GitHub Dark.lua │ ├── GitHub Light.lua │ ├── Kanagawa Lotus.lua │ ├── Kanagawa Wave.lua │ ├── Monokai.lua │ ├── Nord.lua │ ├── One Dark Pro Darker.lua │ ├── Rose Pine Dawn.lua │ ├── Rose Pine Moon.lua │ ├── Rose Pine.lua │ ├── Tokyo Night Light.lua │ ├── Tokyo Night Storm.lua │ ├── Tokyo Night.lua │ └── violet.lua ├── Music ├── ES_Social Feedia - Heyson.wav └── ES_Social Feedia - Heyson.wav.import ├── README.md ├── Scenes ├── 2024-02-25 10-36-37 (online-video-cutter.com).mp4 ├── comment.tscn ├── comment_list.tscn ├── comments.tscn ├── editor.tscn ├── file_dialog.tscn ├── notice.tscn ├── setting.tscn ├── settings_list.tscn ├── theme_chooser.tscn └── update.tscn ├── Scripts ├── camera.gd ├── comment.gd ├── comments.gd ├── comments_data.gd ├── comments_overlay.gd ├── file_dialog.gd ├── file_manager.gd ├── fs.gd ├── hyperlink.gd ├── icons.gd ├── lua_singleton.gd ├── music.gd ├── notice.gd ├── settings.gd ├── settings_list.gd ├── theme_chooser.gd └── update.gd ├── Shaders ├── border_radius.gdshader ├── circle_mask.gdshader ├── greenscreen.gdshader ├── sunlight.gdshader └── vhs_and_crt.gdshader ├── Themes └── file_dialog.tres ├── Tools ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── Videos └── jumping_cat.ogv ├── addons ├── discord-sdk-gd │ ├── Debug.svg │ ├── Debug.svg.import │ ├── Logo_V2_No_Bg.png │ ├── Logo_V2_No_Bg.png.import │ ├── READ_ME_PLEASE.txt │ ├── bin │ │ ├── discord-rpc-gd.gdextension │ │ ├── linux │ │ │ ├── libdiscord_game_sdk.so │ │ │ ├── libdiscord_game_sdk_binding.so │ │ │ └── libdiscord_game_sdk_binding_debug.so │ │ ├── macos │ │ │ ├── libdiscord_game_sdk.dylib │ │ │ ├── libdiscord_game_sdk_binding.dylib │ │ │ └── libdiscord_game_sdk_binding_debug.dylib │ │ └── windows │ │ │ ├── discord_game_sdk.dll │ │ │ ├── discord_game_sdk_binding.dll │ │ │ ├── discord_game_sdk_binding_debug.dll │ │ │ └── discord_game_sdk_x86.dll │ ├── example.gd │ ├── logo.png │ ├── logo.png.import │ ├── nodes │ │ ├── Debug.tscn │ │ ├── assets │ │ │ ├── Checked.svg │ │ │ ├── Checked.svg.import │ │ │ ├── Unchecked.svg │ │ │ ├── Unchecked.svg.import │ │ │ ├── circle.svg │ │ │ └── circle.svg.import │ │ ├── debug.gd │ │ └── discord_autoload.gd │ ├── plugin.cfg │ ├── plugin.gd │ └── restart_window.tscn └── luaAPI │ ├── LICENSE │ ├── README.md │ ├── bin │ ├── .gdignore │ ├── libluaapi.ios.template_debug.arm64.dylib │ ├── libluaapi.ios.template_debug.universal.simulator.dylib │ ├── libluaapi.ios.template_release.arm64.dylib │ ├── libluaapi.ios.template_release.universal.simulator.dylib │ ├── libluaapi.linux.template_debug.x86_32.so │ ├── libluaapi.linux.template_debug.x86_64.so │ ├── libluaapi.linux.template_release.x86_32.so │ ├── libluaapi.linux.template_release.x86_64.so │ ├── libluaapi.macos.template_debug.universal.dylib │ ├── libluaapi.macos.template_release.universal.dylib │ ├── libluaapi.windows.template_debug.x86_32.dll │ ├── libluaapi.windows.template_debug.x86_64.dll │ ├── libluaapi.windows.template_release.x86_32.dll │ └── libluaapi.windows.template_release.x86_64.dll │ └── luaAPI.gdextension ├── default_bus_layout.tres ├── definitions.lua ├── editor.tscn ├── export_presets.cfg ├── project.godot └── theme.tres /.gitattributes: -------------------------------------------------------------------------------- 1 | # Normalize EOL for all files that Git considers text files. 2 | * text=auto eol=lf 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. Linux Mint] 28 | - Version [e.g. v1.0.3] (tip: open the settings in GriddyCode to check) 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Godot 4+ specific ignores 2 | .godot/ 3 | Tools/target 4 | Builds/* 5 | -------------------------------------------------------------------------------- /Fonts/FiraCode-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Fonts/FiraCode-Medium.ttf -------------------------------------------------------------------------------- /Fonts/FiraCode-Medium.ttf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://bykij2y3r8fia" 6 | path="res://.godot/imported/FiraCode-Medium.ttf-7b7e38083297cefe8adfa266382153bd.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Fonts/FiraCode-Medium.ttf" 11 | dest_files=["res://.godot/imported/FiraCode-Medium.ttf-7b7e38083297cefe8adfa266382153bd.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | multichannel_signed_distance_field=false 19 | msdf_pixel_range=8 20 | msdf_size=48 21 | allow_system_fallback=true 22 | force_autohinter=false 23 | hinting=1 24 | subpixel_positioning=1 25 | oversampling=0.0 26 | Fallbacks=null 27 | fallbacks=[] 28 | Compress=null 29 | compress=false 30 | preload=[] 31 | language_support={} 32 | script_support={} 33 | opentype_features={} 34 | -------------------------------------------------------------------------------- /Fonts/FiraCode-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Fonts/FiraCode-Regular.ttf -------------------------------------------------------------------------------- /Fonts/FiraCode-Regular.ttf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://d1v66naqhhggj" 6 | path="res://.godot/imported/FiraCode-Regular.ttf-004dbb665d4c8f806183734c4715d2f1.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Fonts/FiraCode-Regular.ttf" 11 | dest_files=["res://.godot/imported/FiraCode-Regular.ttf-004dbb665d4c8f806183734c4715d2f1.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=2 17 | generate_mipmaps=false 18 | multichannel_signed_distance_field=true 19 | msdf_pixel_range=8 20 | msdf_size=48 21 | allow_system_fallback=true 22 | force_autohinter=false 23 | hinting=1 24 | subpixel_positioning=1 25 | oversampling=0.0 26 | Fallbacks=null 27 | fallbacks=[Resource("res://Fonts/NotoColorEmoji-Regular.ttf")] 28 | Compress=null 29 | compress=false 30 | preload=[{ 31 | "chars": [], 32 | "glyphs": [], 33 | "name": "New Configuration", 34 | "size": Vector2i(16, 0), 35 | "variation_embolden": 0.0 36 | }] 37 | language_support={} 38 | script_support={} 39 | opentype_features={} 40 | -------------------------------------------------------------------------------- /Fonts/FiraCode-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Fonts/FiraCode-VariableFont_wght.ttf -------------------------------------------------------------------------------- /Fonts/FiraCode-VariableFont_wght.ttf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://drrhlpxmc4pq4" 6 | path="res://.godot/imported/FiraCode-VariableFont_wght.ttf-32a415941a28a3858dd5e32ca940024c.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Fonts/FiraCode-VariableFont_wght.ttf" 11 | dest_files=["res://.godot/imported/FiraCode-VariableFont_wght.ttf-32a415941a28a3858dd5e32ca940024c.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | multichannel_signed_distance_field=false 19 | msdf_pixel_range=8 20 | msdf_size=48 21 | allow_system_fallback=true 22 | force_autohinter=false 23 | hinting=1 24 | subpixel_positioning=1 25 | oversampling=0.0 26 | Fallbacks=null 27 | fallbacks=[] 28 | Compress=null 29 | compress=false 30 | preload=[] 31 | language_support={} 32 | script_support={} 33 | opentype_features={} 34 | -------------------------------------------------------------------------------- /Fonts/NotoColorEmoji-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Fonts/NotoColorEmoji-Regular.ttf -------------------------------------------------------------------------------- /Fonts/NotoColorEmoji-Regular.ttf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="font_data_dynamic" 4 | type="FontFile" 5 | uid="uid://d0ixq44da3bl7" 6 | path="res://.godot/imported/NotoColorEmoji-Regular.ttf-a099954f7d3437b1eb8d5e55b0ffcceb.fontdata" 7 | 8 | [deps] 9 | 10 | source_file="res://Fonts/NotoColorEmoji-Regular.ttf" 11 | dest_files=["res://.godot/imported/NotoColorEmoji-Regular.ttf-a099954f7d3437b1eb8d5e55b0ffcceb.fontdata"] 12 | 13 | [params] 14 | 15 | Rendering=null 16 | antialiasing=1 17 | generate_mipmaps=false 18 | multichannel_signed_distance_field=false 19 | msdf_pixel_range=100 20 | msdf_size=118 21 | allow_system_fallback=true 22 | force_autohinter=false 23 | hinting=1 24 | subpixel_positioning=1 25 | oversampling=0.0 26 | Fallbacks=null 27 | fallbacks=[null] 28 | Compress=null 29 | compress=true 30 | preload=[{ 31 | "chars": [], 32 | "glyphs": [], 33 | "name": "New Configuration", 34 | "size": Vector2i(16, 0), 35 | "variation_embolden": 0.0 36 | }] 37 | language_support={} 38 | script_support={} 39 | opentype_features={} 40 | -------------------------------------------------------------------------------- /Icons/Comments/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/apple.png -------------------------------------------------------------------------------- /Icons/Comments/apple.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://w0bvheiei368" 6 | path="res://.godot/imported/apple.png-7a2ec8785ded8687cc8375f407a66e4b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/apple.png" 14 | dest_files=["res://.godot/imported/apple.png-7a2ec8785ded8687cc8375f407a66e4b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/bytebrawler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/bytebrawler.png -------------------------------------------------------------------------------- /Icons/Comments/bytebrawler.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cpx2mia08uqie" 6 | path="res://.godot/imported/bytebrawler.png-0d2cdd48a835e2f0eafd3d5d2287b496.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/bytebrawler.png" 14 | dest_files=["res://.godot/imported/bytebrawler.png-0d2cdd48a835e2f0eafd3d5d2287b496.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/creeperita104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/creeperita104.png -------------------------------------------------------------------------------- /Icons/Comments/creeperita104.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c7yblcgmtct4e" 6 | path="res://.godot/imported/creeperita104.png-09553bbceb5e7db4ea01cf25b2f6fdde.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/creeperita104.png" 14 | dest_files=["res://.godot/imported/creeperita104.png-09553bbceb5e7db4ea01cf25b2f6fdde.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/dmytro_nedylski.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/dmytro_nedylski.png -------------------------------------------------------------------------------- /Icons/Comments/dmytro_nedylski.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://du8lcuk52i5g1" 6 | path="res://.godot/imported/dmytro_nedylski.png-b98db3a273adedf820dedffa5f71fe8b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/dmytro_nedylski.png" 14 | dest_files=["res://.godot/imported/dmytro_nedylski.png-b98db3a273adedf820dedffa5f71fe8b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/itzinnovator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/itzinnovator.png -------------------------------------------------------------------------------- /Icons/Comments/itzinnovator.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d3n6c7fkh2vyq" 6 | path="res://.godot/imported/itzinnovator.png-3af0bfb2420ed4ec5c07d844b63fb04f.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/itzinnovator.png" 14 | dest_files=["res://.godot/imported/itzinnovator.png-3af0bfb2420ed4ec5c07d844b63fb04f.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/linter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/linter.png -------------------------------------------------------------------------------- /Icons/Comments/linter.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c7yhjv22u21g5" 6 | path="res://.godot/imported/linter.png-a2ca70500861d45f6798864b0e37620d.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/linter.png" 14 | dest_files=["res://.godot/imported/linter.png-a2ca70500861d45f6798864b0e37620d.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/linuxiscool315.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/linuxiscool315.png -------------------------------------------------------------------------------- /Icons/Comments/linuxiscool315.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dyn2fe3kshjhc" 6 | path="res://.godot/imported/linuxiscool315.png-e367a0727f499390aeac0a41d85a9044.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/linuxiscool315.png" 14 | dest_files=["res://.godot/imported/linuxiscool315.png-e367a0727f499390aeac0a41d85a9044.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/nearprotocol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/nearprotocol.png -------------------------------------------------------------------------------- /Icons/Comments/nearprotocol.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cmgt5i8ablx58" 6 | path="res://.godot/imported/nearprotocol.png-6a3ad994016f3f7224ebae7fadbc0b3c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/nearprotocol.png" 14 | dest_files=["res://.godot/imported/nearprotocol.png-6a3ad994016f3f7224ebae7fadbc0b3c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/panos05.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bmqupciej78ab" 6 | path="res://.godot/imported/panos05.png-c998b286cd380e0de01a27451ff62ec1.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/panos05.png" 14 | dest_files=["res://.godot/imported/panos05.png-c998b286cd380e0de01a27451ff62ec1.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/pinkgold123.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/pinkgold123.png -------------------------------------------------------------------------------- /Icons/Comments/pinkgold123.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://desdyu0s518lq" 6 | path="res://.godot/imported/pinkgold123.png-0d965aea776afd9d4284484bbe595e13.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/pinkgold123.png" 14 | dest_files=["res://.godot/imported/pinkgold123.png-0d965aea776afd9d4284484bbe595e13.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/powersaj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/powersaj.png -------------------------------------------------------------------------------- /Icons/Comments/powersaj.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dqu44m71kj5y8" 6 | path="res://.godot/imported/powersaj.png-50906ae332d2fe0dfa5c3518fac7a80a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/powersaj.png" 14 | dest_files=["res://.godot/imported/powersaj.png-50906ae332d2fe0dfa5c3518fac7a80a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/proplayer.py.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/proplayer.py.png -------------------------------------------------------------------------------- /Icons/Comments/proplayer.py.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d0n0407a4w7sa" 6 | path="res://.godot/imported/proplayer.py.png-1134b7bdc20fbc4d9398ebf2ecffbecc.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/proplayer.py.png" 14 | dest_files=["res://.godot/imported/proplayer.py.png-1134b7bdc20fbc4d9398ebf2ecffbecc.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/quincetart10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/quincetart10.png -------------------------------------------------------------------------------- /Icons/Comments/quincetart10.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dqsmye2lux7vl" 6 | path="res://.godot/imported/quincetart10.png-2c1ecb77f6a557bb53a7be5035d733c5.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/quincetart10.png" 14 | dest_files=["res://.godot/imported/quincetart10.png-2c1ecb77f6a557bb53a7be5035d733c5.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/rachniotov.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/rachniotov.png -------------------------------------------------------------------------------- /Icons/Comments/rachniotov.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://csyoc2boadee1" 6 | path="res://.godot/imported/rachniotov.png-4ece2021be8a2d98d9b0280bd76c0568.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/rachniotov.png" 14 | dest_files=["res://.godot/imported/rachniotov.png-4ece2021be8a2d98d9b0280bd76c0568.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/segfault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/segfault.png -------------------------------------------------------------------------------- /Icons/Comments/segfault.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bvcmlpmtwdypg" 6 | path="res://.godot/imported/segfault.png-cfac60b2a6db4f158578b1ebf8438c32.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/segfault.png" 14 | dest_files=["res://.godot/imported/segfault.png-cfac60b2a6db4f158578b1ebf8438c32.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/stef_dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/stef_dp.png -------------------------------------------------------------------------------- /Icons/Comments/stef_dp.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://qwjgggn5qlks" 6 | path="res://.godot/imported/stef_dp.png-039c5013004fdc23149a64a8eae5cdb4.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/stef_dp.png" 14 | dest_files=["res://.godot/imported/stef_dp.png-039c5013004fdc23149a64a8eae5cdb4.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/syntaxslayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/syntaxslayer.png -------------------------------------------------------------------------------- /Icons/Comments/syntaxslayer.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ck5l05gwdla2d" 6 | path="res://.godot/imported/syntaxslayer.png-ec3a4104b9d490c6cdbeb99e876275ef.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/syntaxslayer.png" 14 | dest_files=["res://.godot/imported/syntaxslayer.png-ec3a4104b9d490c6cdbeb99e876275ef.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/tavidev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/tavidev.png -------------------------------------------------------------------------------- /Icons/Comments/tavidev.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://5gwo3gm60502" 6 | path="res://.godot/imported/tavidev.png-51827e0b4de7976fe60d271e9677cf35.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/tavidev.png" 14 | dest_files=["res://.godot/imported/tavidev.png-51827e0b4de7976fe60d271e9677cf35.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/worker_621.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/worker_621.png -------------------------------------------------------------------------------- /Icons/Comments/worker_621.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bnvedplcsreit" 6 | path="res://.godot/imported/worker_621.png-d1351d574870a583e7a736b1635d87c0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/worker_621.png" 14 | dest_files=["res://.godot/imported/worker_621.png-d1351d574870a583e7a736b1635d87c0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/xx420_weedman_xx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/xx420_weedman_xx.png -------------------------------------------------------------------------------- /Icons/Comments/xx420_weedman_xx.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b6pqoormvhj4e" 6 | path="res://.godot/imported/xx420_weedman_xx.png-8629c640bc7c7e62ce8bb6dc813bd01d.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/xx420_weedman_xx.png" 14 | dest_files=["res://.godot/imported/xx420_weedman_xx.png-8629c640bc7c7e62ce8bb6dc813bd01d.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/ysb__.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/ysb__.png -------------------------------------------------------------------------------- /Icons/Comments/ysb__.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://chboer658enve" 6 | path="res://.godot/imported/ysb__.png-57556a166abe89cca452077b8ad14b49.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/ysb__.png" 14 | dest_files=["res://.godot/imported/ysb__.png-57556a166abe89cca452077b8ad14b49.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/Comments/zerotwo._02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/Comments/zerotwo._02.png -------------------------------------------------------------------------------- /Icons/Comments/zerotwo._02.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://byqxh5d2grrx3" 6 | path="res://.godot/imported/zerotwo._02.png-ad466f2ba6e376109382ede2aba735bd.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/Comments/zerotwo._02.png" 14 | dest_files=["res://.godot/imported/zerotwo._02.png-ad466f2ba6e376109382ede2aba735bd.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/function.png -------------------------------------------------------------------------------- /Icons/function.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://w000h1xektit" 6 | path="res://.godot/imported/function.png-03608db02e618d850490aa62dab56adb.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/function.png" 14 | dest_files=["res://.godot/imported/function.png-03608db02e618d850490aa62dab56adb.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=3 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/griddycode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/griddycode.png -------------------------------------------------------------------------------- /Icons/griddycode.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bj7661rkyqpya" 6 | path="res://.godot/imported/griddycode.png-37c05dd3fa7a8b3289e4f051bd19c340.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/griddycode.png" 14 | dest_files=["res://.godot/imported/griddycode.png-37c05dd3fa7a8b3289e4f051bd19c340.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Icons/preview.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/preview.mp4 -------------------------------------------------------------------------------- /Icons/variable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Icons/variable.png -------------------------------------------------------------------------------- /Icons/variable.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bn471gyoiirt2" 6 | path="res://.godot/imported/variable.png-aa081856b2e7ced96b55bc5819ce8b94.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://Icons/variable.png" 14 | dest_files=["res://.godot/imported/variable.png-aa081856b2e7ced96b55bc5819ce8b94.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=3 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /Lua/Plugins/bf.lua: -------------------------------------------------------------------------------- 1 | highlight(">", "reserved") 2 | highlight("<", "reserved") 3 | highlight("+", "reserved") 4 | highlight("-", "reserved") 5 | highlight(".", "function") 6 | highlight(",", "function") 7 | highlight("[", "symbol") 8 | highlight("]", "symbol") 9 | 10 | add_comment("I love brainfuck 🥵") 11 | add_comment("LETS MAKE OUR BRAIN HURT 🤯🤯🤯") 12 | add_comment("Brainfuck is the best programming language 🧠🔥") 13 | add_comment("++++++++++[>+++++++>++++++++++>+++>+<<<<-]\n>++.>+.+++++++..+++.>++.<<+++++++++++++++.\n>.+++.------.--------.>+.>.") 14 | 15 | --- Note: How tf can I set all other characters as comment 16 | -------------------------------------------------------------------------------- /Lua/Plugins/bs.lua: -------------------------------------------------------------------------------- 1 | highlight("let", "reserved") 2 | highlight("const", "reserved") 3 | 4 | highlight("while", "reserved") 5 | highlight("for", "reserved") 6 | 7 | highlight("if", "reserved") 8 | highlight("else", "reserved") 9 | highlight("try", "reserved") 10 | highlight("catch", "reserved") 11 | 12 | highlight("fn", "reserved") 13 | 14 | highlight("false", "binary") 15 | highlight("true", "binary") 16 | highlight("null", "binary") 17 | 18 | highlight("+", "operator") 19 | highlight("-", "operator") 20 | highlight("/", "operator") 21 | highlight("*", "operator") 22 | highlight("+=", "operator") 23 | highlight("-=", "operator") 24 | highlight("/=", "operator") 25 | highlight("*=", "operator") 26 | highlight("<", "operator") 27 | highlight(">", "operator") 28 | highlight("==", "operator") 29 | highlight("!=", "operator") 30 | 31 | highlight("{", "binary") 32 | highlight("}", "binary") 33 | 34 | highlight_region("\"", "\"", "string") 35 | highlight_region("//", "", "comments", true) 36 | highlight_region("/*", "*/", "comments") 37 | 38 | add_comment("💀 use Bussin X lil bro") 39 | add_comment("who tf told you to add another \"else if\"") 40 | add_comment("no you can't place a semicolon there") 41 | add_comment("blud is using a typescript esolang 🗣️💯🔥") 42 | 43 | function detect_variables(content) 44 | -- default variables that bs includes 45 | local variable_names = { 46 | "error", 47 | "math", 48 | "fs", 49 | "objects", 50 | "regex", 51 | "args", 52 | "error" 53 | } 54 | local lines = content:gmatch("[^\r\n]+") 55 | 56 | for line in lines do 57 | if trim(line):find("^let ") or trim(line):find("^const ") then 58 | local parts = splitstr(line, "=") 59 | if #parts > 0 then 60 | local variable_name = trim(splitstr(trim(parts[1]), " ")[2]) 61 | table.insert(variable_names, variable_name) 62 | end 63 | end 64 | end 65 | 66 | return variable_names 67 | end 68 | 69 | function detect_functions(content) 70 | -- default functions that bs includes 71 | local functionNames = { 72 | "println", 73 | "exec", 74 | "charat", 75 | "input", 76 | "strcon", 77 | "format", 78 | "time", 79 | "setTimeout", 80 | "setInterval", 81 | "exit", 82 | "fetch", 83 | "len", 84 | "import", 85 | "splitstr", 86 | "trim", 87 | "time" 88 | } 89 | local lines = content:gmatch("[^\r\n]+") 90 | 91 | for line in lines do 92 | if (trim(line):find("^fn ")) and trim(line):find("%(") then 93 | local functionName = string.match(trim(line):gsub("{", ""), "fn%s+(.-)%s*%(") 94 | table.insert(functionNames, functionName) 95 | end 96 | end 97 | 98 | return functionNames 99 | end -------------------------------------------------------------------------------- /Lua/Plugins/bsx.lua: -------------------------------------------------------------------------------- 1 | highlight("lit", "reserved") 2 | highlight("mf", "reserved") 3 | 4 | highlight("while", "reserved") 5 | highlight("yall", "reserved") 6 | 7 | highlight("sus", "reserved") 8 | highlight("impostor", "reserved") 9 | highlight("fuck_around", "reserved") 10 | highlight("find_out", "reserved") 11 | 12 | highlight("bruh", "reserved") 13 | 14 | highlight("cap", "binary") 15 | highlight("nocap", "binary") 16 | highlight("fake", "binary") 17 | 18 | highlight("plus", "operator") 19 | highlight("minus", "operator") 20 | highlight("divided by", "operator") 21 | highlight("times", "operator") 22 | highlight("beplus", "operator") 23 | highlight("beminus", "operator") 24 | highlight("bedivided", "operator") 25 | highlight("betimes", "operator") 26 | highlight("smol", "operator") 27 | highlight("thicc", "operator") 28 | highlight("fr", "operator") 29 | highlight("nah", "operator") 30 | 31 | highlight("{", "binary") 32 | highlight("}", "binary") 33 | 34 | highlight_region("\"", "\"", "string") 35 | highlight_region("//", "", "comments", true) 36 | highlight_region("/*", "*/", "comments") 37 | 38 | add_comment("yo code aint sigma bro 🗣️🔥") 39 | add_comment("quit the bussin syntax") 40 | add_comment("yappacino(bruh perform() { waffle(\"what the fuck am i reading\") }, 1)") 41 | add_comment("use a language with comments you fool") 42 | add_comment("nerd.random() 🤓") 43 | add_comment("blud is using a typescript esolang 🗣️💯🔥") 44 | 45 | -- fix default colorings. 46 | highlight("be", "operator") 47 | highlight("rn", "operator") 48 | highlight("carenot", "operator") 49 | highlight("btw", "operator") 50 | 51 | function detect_variables(content) 52 | -- default variables that bsx includes 53 | local variable_names = { 54 | "error", 55 | "nerd", 56 | "fs", 57 | "objects", 58 | "regex", 59 | "args", 60 | "error" 61 | } 62 | local lines = content:gmatch("[^\r\n]+") 63 | 64 | for line in lines do 65 | if trim(line):find("^lit ") or trim(line):find("^mf ") then 66 | local parts = splitstr(line, "be") 67 | if #parts > 0 then 68 | local variable_name = trim(splitstr(trim(parts[1]), " ")[2]) 69 | table.insert(variable_names, variable_name) 70 | end 71 | end 72 | end 73 | 74 | return variable_names 75 | end 76 | 77 | function detect_functions(content) 78 | -- default functions that bsx includes 79 | local functionNames = { 80 | "waffle", 81 | "clapback", 82 | "yap", 83 | "bye", 84 | "hollup", 85 | "yappacino", 86 | "charat", 87 | "strcon", 88 | "format", 89 | "fetch", 90 | "len", 91 | "import", 92 | "splitstr", 93 | "trim", 94 | "time" 95 | } 96 | local lines = content:gmatch("[^\r\n]+") 97 | 98 | for line in lines do 99 | if (trim(line):find("^bruh ")) and trim(line):find("%(") then 100 | local functionName = string.match(trim(line):gsub("{", ""), "bruh%s+(.-)%s*%(") 101 | table.insert(functionNames, functionName) 102 | end 103 | end 104 | 105 | return functionNames 106 | end -------------------------------------------------------------------------------- /Lua/Plugins/c.lua: -------------------------------------------------------------------------------- 1 | -- Highlight Keywords 2 | highlight("auto", "reserved") 3 | highlight("break", "reserved") 4 | highlight("case", "reserved") 5 | highlight("char", "reserved") 6 | highlight("const", "reserved") 7 | highlight("continue", "reserved") 8 | highlight("default", "reserved") 9 | highlight("do", "reserved") 10 | highlight("double", "reserved") 11 | highlight("else", "reserved") 12 | highlight("enum", "reserved") 13 | highlight("extern", "reserved") 14 | highlight("float", "reserved") 15 | highlight("for", "reserved") 16 | highlight("goto", "reserved") 17 | highlight("if", "reserved") 18 | highlight("inline", "reserved") 19 | highlight("int", "reserved") 20 | highlight("long", "reserved") 21 | highlight("register", "reserved") 22 | highlight("restrict", "reserved") 23 | highlight("return", "reserved") 24 | highlight("short", "reserved") 25 | highlight("signed", "reserved") 26 | highlight("sizeof", "reserved") 27 | highlight("static", "reserved") 28 | highlight("struct", "reserved") 29 | highlight("switch", "reserved") 30 | highlight("typedef", "reserved") 31 | highlight("union", "reserved") 32 | highlight("unsigned", "reserved") 33 | highlight("void", "reserved") 34 | highlight("volatile", "reserved") 35 | highlight("while", "reserved") 36 | highlight("_Alignas", "reserved") 37 | highlight("_Alignof", "reserved") 38 | highlight("_Atomic", "reserved") 39 | highlight("_Bool", "reserved") 40 | highlight("_Complex", "reserved") 41 | highlight("_Generic", "reserved") 42 | highlight("_Imaginary", "reserved") 43 | highlight("_Noreturn", "reserved") 44 | highlight("_Static_assert", "reserved") 45 | highlight("_Thread_local", "reserved") 46 | 47 | -- Arithmetic Operators 48 | highlight("+", "operator") 49 | highlight("-", "operator") 50 | highlight("*", "operator") 51 | highlight("/", "operator") 52 | highlight("%", "operator") 53 | highlight("++", "operator") 54 | highlight("--", "operator") 55 | 56 | -- Assignment Operators 57 | highlight("=", "operator") 58 | highlight("+=", "operator") 59 | highlight("-=", "operator") 60 | highlight("*=", "operator") 61 | highlight("/=", "operator") 62 | highlight("%=", "operator") 63 | highlight("&=", "operator") 64 | highlight("^=", "operator") 65 | highlight("|=", "operator") 66 | highlight("<<=", "operator") 67 | highlight(">>=", "operator") 68 | 69 | -- Comparison Operators 70 | highlight("==", "operator") 71 | highlight("!=", "operator") 72 | highlight(">", "operator") 73 | highlight("<", "operator") 74 | highlight(">=", "operator") 75 | highlight("<=", "operator") 76 | 77 | -- Logical Operators 78 | highlight("&&", "operator") 79 | highlight("||", "operator") 80 | highlight("!", "operator") 81 | 82 | -- Bitwise Operators 83 | highlight("&", "operator") 84 | highlight("|", "operator") 85 | highlight("^", "operator") 86 | highlight("~", "operator") 87 | highlight("<<", "operator") 88 | highlight(">>", "operator") 89 | 90 | -- Special Characters 91 | highlight("{", "binary") 92 | highlight("}", "binary") 93 | highlight("[", "binary") 94 | highlight("]", "binary") 95 | highlight("(", "binary") 96 | highlight(")", "binary") 97 | highlight(";", "binary") 98 | highlight(",", "binary") 99 | 100 | -- Strings 101 | highlight_region("\"", "\"", "string") 102 | highlight_region("'", "'", "string") 103 | 104 | -- Comments 105 | highlight_region("//", "", "comments", true) 106 | highlight_region("/*", "*/", "comments", false) 107 | 108 | -- Autocomplete 109 | 110 | function detect_functions(content) 111 | local functionNames = {} 112 | 113 | for line in content:gmatch("[^\r\n]+") do 114 | -- Match function declarations 115 | local functionName = line:match("%s*([%w_]+)%s*%([^%)]*%)%s*%{?") 116 | if functionName then 117 | table.insert(functionNames, functionName) 118 | end 119 | end 120 | 121 | return functionNames 122 | end 123 | 124 | function detect_variables(content) 125 | local variable_names = {} 126 | local lines = content:gmatch("[^\r\n]+") 127 | 128 | for line in lines do 129 | -- Match variable declarations 130 | local variable = line:match("%s*([%w_]+)%s+[%w_]+%s*[=;%(%),]") 131 | 132 | if variable then 133 | table.insert(variable_names, variable) 134 | end 135 | end 136 | 137 | return variable_names 138 | end 139 | -------------------------------------------------------------------------------- /Lua/Plugins/cpp.lua: -------------------------------------------------------------------------------- 1 | --- Highlight Keywords 2 | highlight("alignas", "reserved") 3 | highlight("alignof", "reserved") 4 | highlight("and", "reserved") 5 | highlight("and_eq", "reserved") 6 | highlight("asm", "reserved") 7 | highlight("atomic_cancel", "reserved") 8 | highlight("atomic_commit", "reserved") 9 | highlight("atomic_noexcept", "reserved") 10 | highlight("auto", "reserved") 11 | highlight("bitand", "reserved") 12 | highlight("bitor", "reserved") 13 | highlight("bool", "reserved") 14 | highlight("break", "reserved") 15 | highlight("case", "reserved") 16 | highlight("catch", "reserved") 17 | highlight("char", "reserved") 18 | highlight("char8_t", "reserved") 19 | highlight("char16_t", "reserved") 20 | highlight("char32_t", "reserved") 21 | highlight("class", "reserved") 22 | highlight("compl", "reserved") 23 | highlight("concept", "reserved") 24 | highlight("const", "reserved") 25 | highlight("consteval", "reserved") 26 | highlight("constexpr", "reserved") 27 | highlight("constinit", "reserved") 28 | highlight("const_cast", "reserved") 29 | highlight("continue", "reserved") 30 | highlight("co_await", "reserved") 31 | highlight("co_return", "reserved") 32 | highlight("co_yield", "reserved") 33 | highlight("decltype", "reserved") 34 | highlight("default", "reserved") 35 | highlight("delete", "reserved") 36 | highlight("do", "reserved") 37 | highlight("double", "reserved") 38 | highlight("dynamic_cast", "reserved") 39 | highlight("else", "reserved") 40 | highlight("enum", "reserved") 41 | highlight("explicit", "reserved") 42 | highlight("export", "reserved") 43 | highlight("extern", "reserved") 44 | highlight("false", "reserved") 45 | highlight("float", "reserved") 46 | highlight("for", "reserved") 47 | highlight("friend", "reserved") 48 | highlight("goto", "reserved") 49 | highlight("if", "reserved") 50 | highlight("import", "reserved") 51 | highlight("inline", "reserved") 52 | highlight("int", "reserved") 53 | highlight("long", "reserved") 54 | highlight("module", "reserved") 55 | highlight("mutable", "reserved") 56 | highlight("namespace", "reserved") 57 | highlight("new", "reserved") 58 | highlight("noexcept", "reserved") 59 | highlight("not", "reserved") 60 | highlight("not_eq", "reserved") 61 | highlight("nullptr", "reserved") 62 | highlight("operator", "reserved") 63 | highlight("or", "reserved") 64 | highlight("or_eq", "reserved") 65 | highlight("private", "reserved") 66 | highlight("protected", "reserved") 67 | highlight("public", "reserved") 68 | highlight("reflexpr", "reserved") 69 | highlight("register", "reserved") 70 | highlight("reinterpret_cast", "reserved") 71 | highlight("requires", "reserved") 72 | highlight("return", "reserved") 73 | highlight("short", "reserved") 74 | highlight("signed", "reserved") 75 | highlight("sizeof", "reserved") 76 | highlight("static", "reserved") 77 | highlight("static_assert", "reserved") 78 | highlight("static_cast", "reserved") 79 | highlight("struct", "reserved") 80 | highlight("switch", "reserved") 81 | highlight("synchronized", "reserved") 82 | highlight("template", "reserved") 83 | highlight("this", "reserved") 84 | highlight("thread_local", "reserved") 85 | highlight("throw", "reserved") 86 | highlight("true", "reserved") 87 | highlight("try", "reserved") 88 | highlight("typedef", "reserved") 89 | highlight("typeid", "reserved") 90 | highlight("typename", "reserved") 91 | highlight("union", "reserved") 92 | highlight("unsigned", "reserved") 93 | highlight("using", "reserved") 94 | highlight("virtual", "reserved") 95 | highlight("void", "reserved") 96 | highlight("volatile", "reserved") 97 | highlight("wchar_t", "reserved") 98 | highlight("while", "reserved") 99 | highlight("xor", "reserved") 100 | highlight("xor_eq", "reserved") 101 | 102 | --- Arithmetic Operators 103 | highlight("+", "operator") 104 | highlight("-", "operator") 105 | highlight("*", "operator") 106 | highlight("/", "operator") 107 | highlight("%", "operator") 108 | highlight("**", "operator") 109 | highlight("++", "operator") 110 | highlight("--", "operator") 111 | 112 | --- Assignment Operators 113 | highlight("=", "operator") 114 | highlight("+=", "operator") 115 | highlight("-=", "operator") 116 | highlight("*=", "operator") 117 | highlight("/=", "operator") 118 | highlight("%=", "operator") 119 | 120 | --- Comparison Operators 121 | highlight("==", "operator") 122 | highlight("!=", "operator") 123 | highlight(">", "operator") 124 | highlight("<", "operator") 125 | highlight(">=", "operator") 126 | highlight("<=", "operator") 127 | 128 | --- Logical Operators 129 | highlight("&&", "operator") 130 | highlight("||", "operator") 131 | highlight("!", "operator") 132 | 133 | --- Bitwise Operators 134 | highlight("&", "operator") 135 | highlight("|", "operator") 136 | highlight("^", "operator") 137 | highlight("~", "operator") 138 | highlight("<<", "operator") 139 | highlight(">>", "operator") 140 | 141 | --- Special Characters 142 | highlight("{", "binary") 143 | highlight("}", "binary") 144 | highlight("[", "binary") 145 | highlight("]", "binary") 146 | highlight("(", "binary") 147 | highlight(")", "binary") 148 | highlight(";", "binary") 149 | highlight(",", "binary") 150 | 151 | --- Strings 152 | highlight_region("\"", "\"", "string") 153 | highlight_region("'", "'", "string") 154 | 155 | --- Comments 156 | add_comment("//", "", "comments", true) 157 | add_comment("/*", "*/", "comments", false) 158 | 159 | --- Autocomplete 160 | 161 | function detect_functions(content) 162 | local functionNames = {} 163 | 164 | for line in content:gmatch("[^\r\n]+") do 165 | -- Match function declarations 166 | local functionName = line:match("%s*([%w_:]+)%s+[%w_:]+%s*%([^%)]*%)%s*%{?") 167 | if functionName then 168 | table.insert(functionNames, functionName) 169 | end 170 | end 171 | 172 | return functionNames 173 | end 174 | 175 | function detect_variables(content) 176 | local variable_names = {} 177 | local lines = content:gmatch("[^\r\n]+") 178 | 179 | for line in lines do 180 | -- Match variable declarations 181 | local variable = line:match("%s*([%w_:]+)%s+[%w_:]+%s*[=;%(%),]") 182 | if variable then 183 | table.insert(variable_names, variable) 184 | end 185 | end 186 | 187 | return variable_names 188 | end 189 | -------------------------------------------------------------------------------- /Lua/Plugins/cs.lua: -------------------------------------------------------------------------------- 1 | --#region keywords 2 | highlight("when", "reserved") 3 | highlight("nameof", "reserved") 4 | highlight("unsafe", "reserved") 5 | highlight("stackalloc", "reserved") 6 | highlight("sizeof", "reserved") 7 | highlight("fixed", "reserved") 8 | highlight("await", "reserved") 9 | highlight("async", "reserved") 10 | highlight("null", "reserved") 11 | highlight("enum", "reserved") 12 | highlight("interface", "reserved") 13 | highlight("explicit", "reserved") 14 | highlight("implicit", "reserved") 15 | highlight("false", "reserved") 16 | highlight("true", "reserved") 17 | highlight("operator", "reserved") 18 | highlight("remove", "reserved") 19 | highlight("add", "reserved") 20 | highlight("set", "reserved") 21 | highlight("get", "reserved") 22 | highlight("params", "reserved") 23 | highlight("override", "reserved") 24 | highlight("virtual", "reserved") 25 | highlight("volatile", "reserved") 26 | highlight("readonly", "reserved") 27 | highlight("struct", "reserved") 28 | highlight("static", "reserved") 29 | highlight("sealed", "reserved") 30 | highlight("abstract", "reserved") 31 | highlight("private", "reserved") 32 | highlight("internal", "reserved") 33 | highlight("protected", "reserved") 34 | highlight("public", "reserved") 35 | highlight("param", "reserved") 36 | highlight("method", "reserved") 37 | highlight("event", "reserved") 38 | highlight("field", "reserved") 39 | highlight("class", "reserved") 40 | highlight("partial", "reserved") 41 | highlight("namespace", "reserved") 42 | highlight("by", "reserved") 43 | highlight("group", "reserved") 44 | highlight("select", "reserved") 45 | highlight("descending", "reserved") 46 | highlight("ascending", "reserved") 47 | highlight("orderby", "reserved") 48 | highlight("into", "reserved") 49 | highlight("equals", "reserved") 50 | highlight("on", "reserved") 51 | highlight("join", "reserved") 52 | highlight("where", "reserved") 53 | highlight("let", "reserved") 54 | highlight("from", "reserved") 55 | highlight("yield", "reserved") 56 | highlight("lock", "reserved") 57 | highlight("finally", "reserved") 58 | highlight("catch", "reserved") 59 | highlight("try", "reserved") 60 | highlight("throw", "reserved") 61 | highlight("return", "reserved") 62 | highlight("goto", "reserved") 63 | highlight("continue", "reserved") 64 | highlight("break", "reserved") 65 | highlight("in", "reserved") 66 | highlight("foreach", "reserved") 67 | highlight("for", "reserved") 68 | highlight("do", "reserved") 69 | highlight("while", "reserved") 70 | highlight("case", "reserved") 71 | highlight("switch", "reserved") 72 | highlight("else", "reserved") 73 | highlight("if", "reserved") 74 | highlight("const", "reserved") 75 | highlight("var", "reserved") 76 | highlight("delegate", "reserved") 77 | highlight("default", "reserved") 78 | highlight("unchecked", "reserved") 79 | highlight("checked", "reserved") 80 | highlight("void", "reserved") 81 | highlight("typeof", "reserved") 82 | highlight("new", "reserved") 83 | highlight("base", "reserved") 84 | highlight("this", "reserved") 85 | highlight("out", "reserved") 86 | highlight("ref", "reserved") 87 | highlight("as", "reserved") 88 | highlight("is", "reserved") 89 | highlight("assembly", "reserved") 90 | highlight("string", "reserved") 91 | highlight("dynamic", "reserved") 92 | highlight("object", "reserved") 93 | highlight("double", "reserved") 94 | highlight("float", "reserved") 95 | highlight("char", "reserved") 96 | highlight("ulong", "reserved") 97 | highlight("long", "reserved") 98 | highlight("uint", "reserved") 99 | highlight("int", "reserved") 100 | highlight("ushort", "reserved") 101 | highlight("short", "reserved") 102 | highlight("byte", "reserved") 103 | highlight("sbyte", "reserved") 104 | highlight("decimal", "reserved") 105 | highlight("bool", "reserved") 106 | highlight("using", "reserved") 107 | highlight("alias", "reserved") 108 | highlight("extern", "reserved") 109 | --#endregion 110 | 111 | --#region comments 112 | highlight_region("/*", "*/", "comments", false) 113 | highlight_region("//", "", "comments", true) 114 | --#endregion 115 | 116 | --#region IDE comments (for CTRL+L) 117 | add_comment("C# Andy detected!") 118 | add_comment("Holy this C# looks like Java") 119 | add_comment("Make your C# roleplay Java, turn that i-- to i++") 120 | add_comment( 121 | "I thought I'd never see a Microsoft product be open source or source available." 122 | .. " If only Windows was the same way." 123 | ) 124 | add_comment("Avid Windows user") 125 | add_comment( 126 | "Let's lock you into the Microsoft walled garden even more! " .. "Install Windows and use WPF, UWP, and WinForms." 127 | ) 128 | add_comment("Probably using Windows making garbage WinForms or UWP tutorials.") 129 | add_comment("Get locked into the walled garden of Windows with UWP, WinForms, or WPF!") 130 | add_comment( 131 | "UWP? Deprecated. WinForms? Deprecated. WPF? Not deprecated (some people think it's dead). " 132 | .. "Microsoft deprecates everything they start except WPF." 133 | ) 134 | add_comment("C#? More like C-hashtag-please-stop-coding!") -- AI generated 135 | add_comment("!!! JAVA CLONE !!!") 136 | add_comment("rewrite in Rust") 137 | add_comment("NoGet") 138 | add_comment( 139 | "I swear if you're writing a WPF, UWP, " 140 | .. "or WinForms app then stop " 141 | .. "and think about why you're making the microsoft walled garden bigger." 142 | ) 143 | --#endregion 144 | 145 | ---@param s string 146 | ---@return string 147 | local function trim(s) 148 | return s:gsub("%s+", "") 149 | end 150 | 151 | if _VERSION ~= "Luau" then 152 | -- Written by Bing Chat, I am using Lua 5.4 against my will... 153 | string.split = function(input, sep) 154 | if sep == nil then 155 | sep = "," -- Default separator is whitespace 156 | end 157 | local t = {} 158 | for str in string.gmatch(input, "([^" .. sep .. "]+)") do 159 | table.insert(t, str) 160 | end 161 | return t 162 | end 163 | end 164 | 165 | ---Detects variables for auto complete 166 | ---@param content string 167 | ---@return string[] 168 | function detect_variables(content) 169 | local variables = {} 170 | -- example match: int x = 171 | -- (or: int x;) 172 | -- the reason why there's a 2nd word match 173 | -- is because we only want declarations of variables, 174 | -- we want to match `int x =`, 175 | -- not `x =`, because `x =` is only re-assigning `x`. 176 | local re = "[a-zA-ZA-z0-9]+%s+@?[a-zA-ZA-z0-9]+%s*[=;]" 177 | ---@param match string 178 | for match in content:gmatch(re) do 179 | print(match) 180 | local name = match:split(" ")[2] 181 | if name:sub(-1) == ";" then 182 | name = name:sub(1, -2) 183 | end 184 | table.insert(variables, name) 185 | end 186 | 187 | return variables 188 | end 189 | 190 | ---Detects functions for auto complete 191 | ---@param content string 192 | ---@return string[] 193 | function detect_functions(content) 194 | -- example match: typeHere something( 195 | local re = "[a-zA-ZA-z0-9]+%s+[a-zA-ZA-z0-9]+%s*%(" 196 | local functions = {} 197 | ---@param match string 198 | for match in content:gmatch(re) do 199 | print("match=", '"' .. match .. '"') 200 | local a = trim(match:split(" ")[2]) 201 | print("a=", '"' .. a .. '"') 202 | local name = a:split("(")[1] 203 | print("name=", '"' .. name .. '"') 204 | table.insert(functions, name) 205 | end 206 | return functions 207 | end 208 | -------------------------------------------------------------------------------- /Lua/Plugins/go.lua: -------------------------------------------------------------------------------- 1 | highlight("var", "reserved") 2 | highlight("const", "reserved") 3 | highlight("for", "reserved") 4 | highlight("if", "reserved") 5 | highlight("else", "reserved") 6 | highlight("func", "reserved") 7 | highlight("range", "reserved") 8 | highlight("break", "reserved") 9 | highlight("default", "reserved") 10 | highlight("interface", "reserved") 11 | highlight("select", "reserved") 12 | highlight("case", "reserved") 13 | highlight("defer", "reserved") 14 | highlight("go", "reserved") 15 | highlight("map", "reserved") 16 | highlight("struct", "reserved") 17 | highlight("chan", "reserved") 18 | highlight("goto", "reserved") 19 | highlight("package", "reserved") 20 | highlight("switch", "reserved") 21 | highlight("fallthrough", "reserved") 22 | highlight("type", "reserved") 23 | highlight("continue", "reserved") 24 | highlight("import", "reserved") 25 | highlight("return", "reserved") 26 | 27 | highlight("byte", "reserved") 28 | highlight("rune", "reserved") 29 | highlight("string", "reserved") 30 | highlight("error", "reserved") 31 | highlight("bool", "reserved") 32 | highlight("int", "reserved") 33 | highlight("int8", "reserved") 34 | highlight("int16", "reserved") 35 | highlight("int32", "reserved") 36 | highlight("int64", "reserved") 37 | 38 | highlight("uint", "reserved") 39 | highlight("uint8", "reserved") 40 | highlight("uint16", "reserved") 41 | highlight("uint32", "reserved") 42 | highlight("uint64", "reserved") 43 | 44 | highlight("uintptr", "reserved") 45 | 46 | highlight("float32", "reserved") 47 | highlight("float64", "reserved") 48 | 49 | highlight("complex64", "reserved") 50 | highlight("complex128", "reserved") 51 | 52 | highlight("false", "binary") 53 | highlight("true", "binary") 54 | highlight("nil", "binary") 55 | 56 | highlight("+", "operator") 57 | highlight("-", "operator") 58 | highlight("/", "operator") 59 | highlight("*", "operator") 60 | highlight("+=", "operator") 61 | highlight("-=", "operator") 62 | highlight("/=", "operator") 63 | highlight("*=", "operator") 64 | highlight("<", "operator") 65 | highlight(">", "operator") 66 | highlight("<=", "operator") 67 | highlight(">=", "operator") 68 | highlight("%", "operator") 69 | highlight("==", "operator") 70 | highlight("!=", "operator") 71 | 72 | highlight_region('"', '"', "string", true) 73 | highlight_region("'", "'", "reserved", true) 74 | highlight_region('`', '`', "string") 75 | highlight_region('/*', '*/', "comments") 76 | highlight_region('//', '', "comments", true) 77 | 78 | add_comment("if err != nil gang") 79 | add_comment("right shift in 2022 KEKW") 80 | add_comment("go for it! I hear it's a great language to pick up") 81 | add_comment("just write it in rust at this point") 82 | add_comment("imagine doing if err != nil every other line") 83 | add_comment("Interfaces in Go? More like vague approximations of functionality") 84 | add_comment("have you ever heard of proper threads?") 85 | add_comment("about time we get actual generics") 86 | add_comment("error handling? who needs that just code and hope for the best") 87 | add_comment("first try first try") 88 | add_comment("GOTTEM") 89 | add_comment("that's just a skill issue at this point") 90 | add_comment("ain't no way 💀") 91 | add_comment("how do you do a while loop in go?") 92 | 93 | ---@param tbl table 94 | ---@param element any 95 | ---@return boolean 96 | function table.has(tbl, element) 97 | for _, elem in ipairs(tbl) do 98 | if elem == element then 99 | return true 100 | end 101 | end 102 | return false 103 | end 104 | 105 | function detect_functions(content) 106 | local function_names = { 107 | "min", "max", "println", 108 | "print", "make", "new", 109 | "clear", "append", "copy", 110 | "close", "complex", "real", 111 | "imag", "delete", "len", 112 | "cap", "panic", "recover", 113 | } 114 | 115 | local patterns = { 116 | "^func%s+([%a%d_]+)%s*%(", 117 | "^func%s*%(.+%)%s*([%a%d_]+)%s*%(" 118 | } 119 | 120 | for line in content:gmatch("[^\r\n]+") do 121 | for _, pattern in ipairs(patterns) do 122 | local match = trim(line):match(pattern) 123 | if match ~= nil then 124 | table.insert(function_names, match) 125 | goto continue 126 | end 127 | end 128 | ::continue:: 129 | end 130 | 131 | return function_names 132 | end 133 | 134 | function detect_variables(content) 135 | local variable_names = {} 136 | 137 | -- TODO: match variable and constant groups 138 | local patterns = { 139 | "^var%s+([%a%d_]+)%s*=", 140 | "^const%s+([%a%d_]+)%s*=", 141 | "^([%a%d_]+)%s*:=", 142 | } 143 | 144 | local function_patterns = { 145 | "^func%s+[%a%d_]+%s*%((.*)%)", 146 | "^func%s*%(.+%)%s*[%a%d_]+%s*%((.*)%)", 147 | } 148 | 149 | for line in content:gmatch("[^\r\n]+") do 150 | for _, pattern in ipairs(patterns) do 151 | local match = trim(line):match(pattern) 152 | if match ~= nil then 153 | table.insert(variable_names, match) 154 | goto continue 155 | end 156 | end 157 | for _, func_pat in ipairs(function_patterns) do 158 | local args = line:match(func_pat) 159 | if args ~= nil then 160 | for arg in args:gmatch("%s*([^,]+)%s*,?") do 161 | local arg_name = arg:match("%s*(%w+)%s*") 162 | table.insert(variable_names, arg_name) 163 | end 164 | goto continue 165 | end 166 | end 167 | ::continue:: 168 | end 169 | 170 | return variable_names 171 | end 172 | -------------------------------------------------------------------------------- /Lua/Plugins/html.lua: -------------------------------------------------------------------------------- 1 | --- Keywords Tags 2 | highlight("!DOCTYPE", "reserved") 3 | highlight("a", "reserved") 4 | highlight("abbr", "reserved") 5 | highlight("acronym", "reserved") 6 | highlight("address", "reserved") 7 | highlight("applet", "reserved") 8 | highlight("area", "reserved") 9 | highlight("article", "reserved") 10 | highlight("aside", "reserved") 11 | highlight("audio", "reserved") 12 | highlight("b", "reserved") 13 | highlight("base", "reserved") 14 | highlight("basefont", "reserved") 15 | highlight("bdi", "reserved") 16 | highlight("bdo", "reserved") 17 | highlight("big", "reserved") 18 | highlight("blockquote", "reserved") 19 | highlight("body", "reserved") 20 | highlight("br", "reserved") 21 | highlight("button", "reserved") 22 | highlight("canvas", "reserved") 23 | highlight("caption", "reserved") 24 | highlight("c", "reserved") 25 | highlight("center", "reserved") 26 | highlight("cite", "reserved") 27 | highlight("code", "reserved") 28 | highlight("col", "reserved") 29 | highlight("colgroup", "reserved") 30 | highlight("data", "reserved") 31 | highlight("datalist", "reserved") 32 | highlight("dd", "reserved") 33 | highlight("del", "reserved") 34 | highlight("details", "reserved") 35 | highlight("dfn", "reserved") 36 | highlight("dialog", "reserved") 37 | highlight("dir", "reserved") 38 | highlight("div", "reserved") 39 | highlight("dl", "reserved") 40 | highlight("dt", "reserved") 41 | highlight("em", "reserved") 42 | highlight("embed", "reserved") 43 | highlight("fieldset", "reserved") 44 | highlight("figcaption", "reserved") 45 | highlight("figure", "reserved") 46 | highlight("font", "reserved") 47 | highlight("footer", "reserved") 48 | highlight("form", "reserved") 49 | highlight("frame", "reserved") 50 | highlight("frameset", "reserved") 51 | highlight("h1", "reserved") 52 | highlight("h2", "reserved") 53 | highlight("h3", "reserved") 54 | highlight("h4", "reserved") 55 | highlight("h5", "reserved") 56 | highlight("h6", "reserved") 57 | highlight("head", "reserved") 58 | highlight("header", "reserved") 59 | highlight("hgroup", "reserved") 60 | highlight("hr", "reserved") 61 | highlight("html", "reserved") 62 | highlight("i", "reserved") 63 | highlight("iframe", "reserved") 64 | highlight("img", "reserved") 65 | highlight("input", "reserved") 66 | highlight("ins", "reserved") 67 | highlight("kbd", "reserved") 68 | highlight("label", "reserved") 69 | highlight("legend", "reserved") 70 | highlight("li", "reserved") 71 | highlight("link", "reserved") 72 | highlight("main", "reserved") 73 | highlight("map", "reserved") 74 | highlight("mark", "reserved") 75 | highlight("menu", "reserved") 76 | highlight("meta", "reserved") 77 | highlight("meter", "reserved") 78 | highlight("nav", "reserved") 79 | highlight("noframes", "reserved") 80 | highlight("noscript", "reserved") 81 | highlight("object", "reserved") 82 | highlight("ol", "reserved") 83 | highlight("optgroup", "reserved") 84 | highlight("option", "reserved") 85 | highlight("output", "reserved") 86 | highlight("p", "reserved") 87 | highlight("param", "reserved") 88 | highlight("picture", "reserved") 89 | highlight("pre", "reserved") 90 | highlight("progress", "reserved") 91 | highlight("q", "reserved") 92 | highlight("rp", "reserved") 93 | highlight("rt", "reserved") 94 | highlight("ruby", "reserved") 95 | highlight("s", "reserved") 96 | highlight("samp", "reserved") 97 | highlight("script", "reserved") 98 | highlight("search", "reserved") 99 | highlight("section", "reserved") 100 | highlight("select", "reserved") 101 | highlight("small", "reserved") 102 | highlight("source", "reserved") 103 | highlight("span", "reserved") 104 | highlight("strike", "reserved") 105 | highlight("strong", "reserved") 106 | highlight("sub", "reserved") 107 | highlight("summary", "reserved") 108 | highlight("sup", "reserved") 109 | highlight("svg", "reserved") 110 | highlight("table", "reserved") 111 | highlight("tbody", "reserved") 112 | highlight("td", "reserved") 113 | highlight("template", "reserved") 114 | highlight("textarea", "reserved") 115 | highlight("tfoot", "reserved") 116 | highlight("th", "reserved") 117 | highlight("thead", "reserved") 118 | highlight("time", "reserved") 119 | highlight("title", "reserved") 120 | highlight("tr", "reserved") 121 | highlight("track", "reserved") 122 | highlight("tt", "reserved") 123 | highlight("u", "reserved") 124 | highlight("ul", "reserved") 125 | highlight("var", "reserved") 126 | highlight("video", "reserved") 127 | highlight("wbr", "function") 128 | 129 | --- Special Char 130 | highlight("/", "reserved") 131 | highlight("<", "binary") 132 | highlight(">", "binary") 133 | 134 | --- User Comments 135 | highlight_region("", "comments", false) 136 | 137 | --- Comments 138 | -- Made by @assasin-1234 139 | add_comment("HTML more like hyper text MID language LMFAO") 140 | add_comment("please for the love of god use reactjs instead") 141 | add_comment("they speak HTML in mexico. HOT TAMALES for MY LADIES 🥁💃🪕🕺🥁💃🪕🫔🫔🫔") 142 | 143 | function detect_variables(content) 144 | local variable_names = {} 145 | local lines = content:gmatch("[^\r\n]+") 146 | 147 | for line in lines do 148 | local tag = line:match("<(.-)[%(>]") 149 | if tag then 150 | tag_done = "" 151 | table.insert(variable_names, tag_done) 152 | end 153 | end 154 | 155 | return variable_names 156 | end 157 | -- HTML doesn't have functions 158 | -------------------------------------------------------------------------------- /Lua/Plugins/java.lua: -------------------------------------------------------------------------------- 1 | highlight("package", "reserved") 2 | highlight("import", "reserved") 3 | 4 | highlight("public", "reserved") 5 | highlight("private", "reserved") 6 | highlight("protected", "reserved") 7 | 8 | highlight("class", "reserved") 9 | highlight("enum", "reserved") 10 | highlight("record", "reserved") 11 | highlight("interface", "reserved") 12 | 13 | highlight("extends", "reserved") 14 | highlight("implements", "reserved") 15 | highlight("module", "reserved") 16 | 17 | highlight("super", "reserved") 18 | highlight("this", "reserved") 19 | 20 | highlight("void", "reserved") 21 | highlight("boolean", "reserved") 22 | highlight("int", "reserved") 23 | highlight("double", "reserved") 24 | highlight("long", "reserved") 25 | highlight("float", "reserved") 26 | highlight("char", "reserved") 27 | highlight("byte", "reserved") 28 | highlight("short", "reserved") 29 | 30 | -- which mf actually uses these 31 | highlight("const", "reserved") 32 | highlight("goto", "reserved") 33 | highlight("strictfp", "reserved") 34 | 35 | highlight("instanceof", "reserved") 36 | highlight("native", "reserved") 37 | highlight("new", "reserved") 38 | 39 | highlight("return", "reserved") 40 | 41 | highlight("final", "reserved") 42 | highlight("static", "reserved") 43 | highlight("transient", "reserved") 44 | highlight("volatile", "reserved") 45 | 46 | highlight_region("\"", "\"", "string", true) 47 | highlight_region("//", "", "comments", true) 48 | highlight_region("/*", "*/", "comments") 49 | 50 | highlight_region("@", "", "annotation", true) 51 | 52 | highlight("if", "reserved") 53 | highlight("else", "reserved") 54 | 55 | highlight("do", "reserved") 56 | highlight("while", "reserved") 57 | highlight("for", "reserved") 58 | highlight("continue", "reserved") 59 | highlight("default", "reserved") 60 | highlight("break", "reserved") 61 | 62 | highlight("switch", "reserved") 63 | highlight("case", "reserved") 64 | 65 | highlight("try", "reserved") 66 | highlight("catch", "reserved") 67 | highlight("finally", "reserved") 68 | highlight("throw", "reserved") 69 | highlight("throws", "reserved") 70 | 71 | highlight("false", "binary") 72 | highlight("true", "binary") 73 | highlight("null", "binary") 74 | 75 | highlight("synchronized", "reserved") 76 | 77 | highlight("assert", "reserved") 78 | 79 | highlight("exports", "reserved") 80 | highlight("module", "reserved") 81 | highlight("non-sealed", "reserved") 82 | highlight("open", "reserved") 83 | highlight("opens", "reserved") 84 | highlight("permits", "reserved") 85 | highlight("provides", "reserved") 86 | highlight("requires", "reserved") 87 | highlight("sealed", "reserved") 88 | highlight("to", "reserved") 89 | highlight("transitive", "reserved") 90 | highlight("uses", "reserved") 91 | highlight("var", "reserved") 92 | highlight("when", "reserved") 93 | highlight("with", "reserved") 94 | highlight("yield", "reserved") 95 | 96 | add_comment("boiler plate alert!!!") 97 | add_comment("public static volatile transient transitive synchronized class type language 🗣️🔥") 98 | add_comment("another semicolon please") 99 | add_comment("use a lambda you dumbass") 100 | 101 | function detect_functions(content) 102 | local functionNames = {} 103 | 104 | for line in content:gmatch("[^\r\n]+") do 105 | local pattern = "[%a_][%a%d_<>]*%s+([%a_][%a%d_]*)%s*%(" 106 | local functionName = line:match(pattern) 107 | if functionName then 108 | table.insert(functionNames, functionName); 109 | end 110 | end 111 | 112 | return functionNames 113 | end 114 | 115 | function detect_variables(content) 116 | local variable_names = { 117 | "this", 118 | "super", 119 | "System", 120 | "Object", 121 | "Math", 122 | "Thread", 123 | "Runtime" 124 | } 125 | for line in content:gmatch("[^\r\n]+") do 126 | local pattern = "%f[%a_][%a_][%a%d_<>]*%s+([%a_][%a%d_<>]*)%s*=%s*[^;]+;" 127 | local match = line:match(pattern) 128 | if match then 129 | table.insert(variable_names, match) 130 | end 131 | end 132 | return variable_names 133 | end 134 | -------------------------------------------------------------------------------- /Lua/Plugins/js.lua: -------------------------------------------------------------------------------- 1 | highlight("var", "reserved") 2 | highlight("const", "reserved") 3 | highlight("new", "reserved") 4 | highlight("let", "reserved") 5 | 6 | highlight("while", "reserved") 7 | highlight("for", "reserved") 8 | 9 | highlight("if", "reserved") 10 | highlight("else", "reserved") 11 | highlight("try", "reserved") 12 | highlight("catch", "reserved") 13 | 14 | highlight("extends", "reserved") 15 | highlight("typeof", "reserved") 16 | highlight("void", "reserved") 17 | 18 | highlight("in", "reserved") 19 | highlight("of", "reserved") 20 | highlight("with", "reserved") 21 | 22 | highlight("import", "reserved") 23 | highlight("finally", "reserved") 24 | highlight("delete", "reserved") 25 | 26 | highlight("class", "reserved") 27 | highlight("function", "reserved") 28 | highlight("return", "reserved") 29 | highlight("export", "reserved") 30 | highlight("async", "reserved") 31 | highlight("await", "reserved") 32 | highlight("throw", "reserved") 33 | highlight("continue", "reserved") 34 | highlight("break", "reserved") 35 | highlight("yield", "reserved") 36 | highlight("constructor", "reserved") 37 | 38 | highlight("instanceof", "reserved") 39 | highlight("typeof", "reserved") 40 | highlight("switch", "reserved") 41 | highlight("case", "reserved") 42 | highlight("default", "reserved") 43 | highlight("do", "reserved") 44 | 45 | highlight("false", "binary") 46 | highlight("true", "binary") 47 | highlight("null", "binary") 48 | highlight("undefined", "binary") 49 | 50 | highlight("+", "operator") 51 | highlight("-", "operator") 52 | highlight("/", "operator") 53 | highlight("*", "operator") 54 | highlight("+=", "operator") 55 | highlight("-=", "operator") 56 | highlight("/=", "operator") 57 | highlight("*=", "operator") 58 | highlight("<", "operator") 59 | highlight(">", "operator") 60 | highlight("<=", "operator") 61 | highlight(">=", "operator") 62 | highlight("%", "operator") 63 | highlight("==", "operator") 64 | highlight("===", "operator") 65 | highlight("!=", "operator") 66 | highlight("!==", "operator") 67 | 68 | highlight("{", "binary") 69 | highlight("}", "binary") 70 | highlight("[", "binary") 71 | highlight("]", "binary") 72 | 73 | highlight("this", "variable") 74 | 75 | highlight_region("\"", "\"", "string", true) 76 | highlight_region("'", "'", "string", true) 77 | highlight_region("`", "`", "string") 78 | highlight_region("/*", "*/", "comments") 79 | highlight_region("//", "", "comments", true) 80 | 81 | --- comments 82 | add_comment("JavaScript mentioned 🗣️🗣️🗣️ 3 + \"3\" = 33 🔥🔥🔥") 83 | add_comment("(await (await fetch())).catch(() => {}) 🗣️🗣️🗣️🗣️🗣️🗣️🗣️🗣️🗣️🗣️‼️‼️💥💥💥🤯") 84 | add_comment("When I thought it couldn’t get any worse he added another require() 💀💀💀") 85 | add_comment("WHAT THE FUCK STOP") 86 | add_comment("this shi 100% breaking") 87 | add_comment("do NOT drink battery acid") 88 | add_comment("Waiter, waiter! One more for loop please!") 89 | add_comment("RAHHHH JAVASCRIPT +!~-x !+((a,b)=>!!a?!a:!b) 🗣️🗣️🔥🔥🔥🔥🔥🔥🔥") 90 | add_comment("a ? b ? a : b ? c : d : b ass script") 91 | add_comment("try {} catch(e) { throw new Error(e) }") 92 | add_comment("mf the typa guy to trigger \"require is not defined\"") 93 | add_comment("im scared") 94 | add_comment("more?.optional?.chaining?.please // LGTM") 95 | add_comment("tip: remove runtime errors by removing null: rm -rf /dev/null") 96 | add_comment("JAVASCRIPTTTTTTTTTTTT LETS FUCKING GOOOO ==== X ?? Y ? GOOOO : X 🗣️🗣️🗣️") 97 | add_comment("wrap it in do {} while(false) 👍👍👍") 98 | add_comment("\"undefined\" is not defined.") 99 | add_comment("make your JS roleplay Java, change that i++ to i--") 100 | add_comment("tip: decrease your chance at errors: Number.MAX_SAFE_INTEGER += Number.MAX_SAFE_INTEGER") 101 | 102 | --- autocomplete 103 | 104 | function detect_functions(content) 105 | local functionNames = { 106 | "require" 107 | } 108 | 109 | local lines = {} 110 | for line in content:gmatch("[^\r\n]+") do 111 | table.insert(lines, line) 112 | end 113 | 114 | for _, line in ipairs(lines) do 115 | if trim(line):find("^function ") or trim(line):find("^async function ") and string.find(line, "%(") then 116 | local functionName = 117 | string.match(trim(line):gsub("{", ""), "function%s+(.-)%s*%(") or 118 | string.match(trim(line):gsub("{", ""), "async%s+(.-)%s*%(") 119 | table.insert(functionNames, functionName) 120 | end 121 | end 122 | 123 | return functionNames 124 | end 125 | 126 | function detect_variables(content) 127 | local variable_names = { 128 | "global", 129 | "process", 130 | "console", 131 | "Buffer", 132 | "__dirname", 133 | "__filename", 134 | "module", 135 | "exports" 136 | } 137 | 138 | local lines = content:gmatch("[^\r\n]+") 139 | for line in lines do 140 | if trim(line):find("^let ") or trim(line):find("^var ") or trim(line):find("^const ") then 141 | local parts = splitstr(line, "=") 142 | if #parts > 0 then 143 | local variable_name = trim(splitstr(trim(parts[1]), " ")[2]) 144 | table.insert(variable_names, variable_name) 145 | end 146 | end 147 | end 148 | 149 | return variable_names 150 | end 151 | -------------------------------------------------------------------------------- /Lua/Plugins/json.lua: -------------------------------------------------------------------------------- 1 | highlight("false", "binary") 2 | highlight("true", "binary") 3 | 4 | highlight_region('"', '"', "string", true) 5 | 6 | add_comment("object notation 💯🔥") 7 | add_comment("lower that scope") 8 | add_comment("🗣️🗣️🗣️ { \"i'm\": \"suiciding\" }") 9 | 10 | -- json doesn't have variables or functions 11 | -- but json does have true and false 12 | -------------------------------------------------------------------------------- /Lua/Plugins/lua.lua: -------------------------------------------------------------------------------- 1 | local BINARY = "binary"; 2 | local RESERVED = "reserved"; 3 | local OPERATOR = "operator"; 4 | local VARIABLE = "variable"; 5 | 6 | local hl = highlight; 7 | local hlreg = highlight_region; 8 | 9 | hl("false",BINARY); 10 | hl("true",BINARY); 11 | hl("nil",RESERVED); 12 | 13 | hl("+",OPERATOR); 14 | hl("-",OPERATOR); 15 | hl("*",OPERATOR); 16 | hl("/",OPERATOR); 17 | hl("^",OPERATOR); 18 | hl("<",OPERATOR); 19 | hl(">",OPERATOR); 20 | hl("<=",OPERATOR); 21 | hl(">=",OPERATOR); 22 | hl("==",OPERATOR); 23 | hl("~=",OPERATOR); 24 | 25 | hl("if",RESERVED); 26 | hl("else",RESERVED); 27 | hl("elseif",RESERVED); 28 | hl("and",RESERVED); 29 | hl("repeat",RESERVED); 30 | hl("for",RESERVED); 31 | hl("in",RESERVED); 32 | hl("until",RESERVED); 33 | hl("or",RESERVED); 34 | hl("not",RESERVED); 35 | hl("then",RESERVED); 36 | hl("while",RESERVED); 37 | hl("do",RESERVED); 38 | hl("end",RESERVED); 39 | hl("local",RESERVED); 40 | hl("function",RESERVED); 41 | hl(";",OPERATOR); 42 | hl("#",OPERATOR); 43 | hl("_",OPERATOR); 44 | hl("_G",OPERATOR); 45 | hl("..",OPERATOR); 46 | 47 | hl("break",RESERVED); 48 | hl("return", RESERVED); 49 | hl("pairs",BINARY); 50 | hl("ipairs",BINARY); 51 | 52 | hl("{",RESERVED); 53 | hl("}",RESERVED); 54 | hl("[",RESERVED); 55 | hl("]",RESERVED); 56 | 57 | hlreg("'","'","string",false); 58 | hlreg("\"","\"","string",false); 59 | hlreg("[[","]]","string",false); 60 | 61 | hlreg("--","","comments",true); 62 | hlreg("--[[","]]","comments",false); 63 | 64 | -- 💀🔥🗣️👍 65 | add_comment("lego game language"); 66 | add_comment("Waiter, waiter! Another \"local\" please!"); 67 | add_comment("oh god. just WHAT have you done 💀💀"); 68 | add_comment("local wait = task.wait;\n\nwait why is there roblx lua in my comment"); 69 | add_comment("did bro just type \"null\""); 70 | add_comment("this monkey ain't typing no shakespeare tonight 💀💀"); 71 | add_comment("bros FUCKING cooking 🗣️🗣️🔥🔥"); 72 | add_comment("bro over cooked the rice 💀💀"); 73 | add_comment("im calling your dad rn"); 74 | add_comment("[] is a list, right?\n[] is a list, right?!"); 75 | add_comment("obama approved code 👍"); 76 | add_comment("free tip:\nlithium is very tasty, try it"); 77 | add_comment("wdym OOP in Lua\n\noh FUCK its OOP in Lua"); 78 | add_comment("lua for the FUCKING WIN FRFR 🔥🔥"); 79 | add_comment("TO THE LUA\nnot a crypto scam i swear"); 80 | add_comment("gotta get them free robux amirite"); 81 | add_comment("please stop writing loops its driving me insane"); 82 | add_comment("highlight(\"ipairs\",\"binary\");"); 83 | add_comment("why are we all using semi-colons to end our lines when less than 1% of lua users do that"); 84 | add_comment("anyone else locked up in a basement being held at gun-point?"); 85 | 86 | -- my hands hurt.. 87 | -- (no, ctrl+c ctrl+v wasn't used) 88 | -- !! huge thanks to tutorialspoint.com !! 89 | -- yall the real mvps fr fr 90 | local libraries = { 91 | ["math"] = { 92 | "abs", "acos", "asin", "atan", 93 | "atan2", "ceil", "cos", "cosh", 94 | "deg", "exp", "floor", "fmod", 95 | "frexp", "huge", "ldexp", "log", 96 | "log10", "max", "min", "modf", 97 | "pi", "pow", "rad", "random", 98 | "randomseed", "sin", "sinh", "sqrt", 99 | "tan", "tanh" 100 | }, 101 | ["table"] = { 102 | "concat", "insert", "maxn", "remove", 103 | "sort" 104 | }, 105 | ["string"] = { 106 | "upper", "lower", "gsub", "find", 107 | "reverse", "format", "char", "len", 108 | "rep", "byte" 109 | }, 110 | ["debug"] = { 111 | "getfenv", "gethook", "getinfo", "getlocal", 112 | "getmetatable", "getregistry", "getupvalue", "setfenv", 113 | "sethook", "setlocal", "setmetatable", "setupvalue", 114 | "traceback" 115 | }, 116 | ["coroutine"] = { 117 | "create", "resume", "yield", "status", 118 | "wrap", "running" 119 | }, 120 | ["io"] = { 121 | "open", "input", "close", "read", 122 | "write", "output", "tmpfile", "lines", 123 | "flush", "type" 124 | }, 125 | ["os"] = { 126 | "clock", "date", "difftime", "execute", 127 | "exit", "getenv", "remove", "rename", 128 | "setlocale", "time", "tmpname" 129 | } 130 | }; 131 | local librariesFunctions = {}; 132 | for Library, Methods in pairs(libraries) do 133 | for _, Method in ipairs(Methods) do 134 | table.insert(librariesFunctions,Library.."."..Method); 135 | end; 136 | end; 137 | function detect_functions(content) 138 | local functionNames = { 139 | "print", "getfenv", "loadfile", "assert", 140 | "error", "ipairs", "require", "loadlib", 141 | "xpcall", "tostring", "rawset", "pairs", 142 | "loadstring", "pcall", "type", "dofile", 143 | "wait", "getmetatable", "load", "next", 144 | "rawget", "rawset", "select", "tostring", 145 | "tonumber", "unpack", "rawequal", "collectgarbage", 146 | 147 | -- (if ur gonna plugin dev, un-comment) 148 | -- "trim", "splitstr" 149 | -- courtesy of bussin industries 🔥🔥 150 | }; 151 | for _, libraryFunction in ipairs(librariesFunctions) do 152 | table.insert(functionNames,libraryFunction); 153 | end; 154 | 155 | local lines = {}; 156 | for line in content:gmatch("[^\r\n]+") do 157 | table.insert(lines, line); 158 | end; 159 | for _, line in ipairs(lines) do 160 | if trim(line):find("^function ") or trim(line):find("^local function ") and string.find(line, "%(") then 161 | local functionName = 162 | string.match(trim(line):gsub("then",""), "function%s+(.-)%s*%(") or 163 | string.match(trim(line):gsub("then",""), "local%s+(.-)%s*%(") 164 | table.insert(functionNames, functionName); 165 | end; 166 | end; 167 | 168 | return functionNames; 169 | end; 170 | 171 | local Variables = { 172 | "_", "_G", "_VERSION" 173 | }; 174 | for Library, _ in pairs(libraries) do 175 | table.insert(Variables,Library); 176 | end; 177 | for _, variable in ipairs(Variables) do 178 | hl(variable,VARIABLE); 179 | end; 180 | function detect_variables(content) 181 | local variable_names = { 182 | "return", "in", "boolean", "number", 183 | "if", "then", "do", "while", 184 | "for", "repeat", "until", "break", 185 | "or", "and", "not", "else", "elseif", 186 | "in", "false", "true", "nil", 187 | "userdata", "thread", "end", 188 | "local", "function" 189 | }; 190 | for _, variable in ipairs(Variables) do 191 | table.insert(variable_names,variable); 192 | end; 193 | 194 | local lines = content:gmatch("[^\r\n]+"); 195 | for line in lines do 196 | if trim(line):find("=") and not trim(line):find("==") then 197 | line = line:gsub("local",""); 198 | local parts = splitstr(line, "="); 199 | if #parts > 0 then 200 | if trim(parts[1]):find(",") then 201 | for _, variable in ipairs(splitstr(parts[1],",")) do 202 | table.insert(variable_names, trim(variable)); 203 | end; 204 | else 205 | local variable_name = trim(parts[1]); 206 | table.insert(variable_names, variable_name); 207 | end; 208 | end; 209 | end; 210 | end; 211 | 212 | return variable_names; 213 | end; 214 | -------------------------------------------------------------------------------- /Lua/Plugins/py.lua: -------------------------------------------------------------------------------- 1 | --- Highligth Keywords 2 | highlight("import", "reserved") 3 | highlight("from", "reserved") 4 | highlight("while", "reserved") 5 | highlight("if", "reserved") 6 | highlight("else", "reserved") 7 | highlight("elif", "reserved") 8 | 9 | highlight("False", "binary") 10 | highlight("True", "binary") 11 | highlight("None", "binary") 12 | 13 | --- Arithmetic Operators 14 | highlight("+", "operator") 15 | highlight("-", "operator") 16 | highlight("*", "operator") 17 | highlight("/", "operator") 18 | highlight("%", "operator") 19 | highlight("**", "operator") 20 | highlight("//", "operator") 21 | 22 | --- Assignment Operators 23 | highlight("=", "operator") 24 | highlight("+=", "operator") 25 | highlight("!=", "operator") 26 | highlight("*=", "operator") 27 | highlight("/=", "operator") 28 | highlight("%=", "operator") 29 | highlight("//=", "operator") 30 | highlight("**=", "operator") 31 | highlight("&=", "operator") 32 | highlight("|=", "operator") 33 | highlight("^=", "operator") 34 | highlight(">>=", "operator") 35 | highlight("<<=", "operator") 36 | 37 | --- Comparison Operators 38 | highlight("==", "operator") 39 | highlight("!=", "operator") 40 | highlight(">", "operator") 41 | highlight("<", "operator") 42 | highlight(">=", "operator") 43 | highlight("<=", "operator") 44 | 45 | --- Logical Operators 46 | highlight("and", "reserved") 47 | highlight("or", "reserved") 48 | highlight("not", "reserved") 49 | 50 | --- Membership Operators 51 | highlight("in", "reserved") 52 | 53 | --- Special Characters 54 | highlight("{", "binary") 55 | highlight("}", "binary") 56 | highlight("[", "binary") 57 | highlight("]", "binary") 58 | 59 | --- Strings 60 | highlight_region("'", "'", "string") 61 | highlight_region('"', '"', "string") 62 | highlight_region('"""', '"""', "string") 63 | 64 | --- User Comments 65 | highlight_region("#", "", "comments", true) 66 | 67 | --- Comments 68 | add_comment("WHAT THE FUCK STOP") 69 | add_comment("this shi 100% breaking") 70 | add_comment("Tip: remove all spaces and tabs") 71 | add_comment("You have to avoid Python to make your script fast") 72 | add_comment("🚨🚨🚨 🐌🐌🐌 🚨🚨🚨") 73 | add_comment("Do NOT run Python on your computer. I did and ALMOST died") 74 | add_comment("Python is deprecated, uninstall python and use anything else instead.") 75 | add_comment("Stop using black, its name is racist!") 76 | add_comment( 77 | "For more annoyance, please use PyLint and enable C0114, " 78 | .. "C0115, and C0116. You'll hate me for it.") 79 | add_comment("Waiter, waiter, more useless docstrings for this self-explanatory code!") 80 | add_comment( 81 | "You have to document every variable, function, " 82 | .. "module, and class in Python because self-explanatory code is not enough") 83 | 84 | --- Autocomplete 85 | 86 | function detect_functions(content) 87 | local functionNames = {} 88 | 89 | for line in content:gmatch("[^\r\n]+") do 90 | -- Match the "def" keyword for regular functions 91 | local functionName = line:match("def%s+([%w_]+)%s*%(") 92 | if functionName then 93 | table.insert(functionNames, functionName) 94 | end 95 | 96 | -- Match the "async def" pattern for asynchronous functions 97 | local asyncFunctionName = line:match("async%s+def%s+([%w_]+)%s*%(") 98 | if asyncFunctionName then 99 | table.insert(functionNames, asyncFunctionName) 100 | end 101 | end 102 | 103 | return functionNames 104 | end 105 | 106 | 107 | 108 | function detect_variables(content) 109 | local variable_names = {"self", "__name__", "__annotations__", "__build_class__", "__builtins__", "__cached__", "__dict__", "__doc__", "__file__", "__import__", "__loader__", "__name__", "__package__", "__path__", "__spec__"} 110 | local lines = content:gmatch("[^\r\n]+") 111 | 112 | for line in lines do 113 | -- Check for Python variable assignment syntax 114 | local assignment = line:match("(%w+)%s*=%s*.+") 115 | if assignment then 116 | local variable_name = assignment:match("(%w+)") 117 | table.insert(variable_names, variable_name) 118 | end 119 | end 120 | 121 | return variable_names 122 | end 123 | 124 | 125 | -------------------------------------------------------------------------------- /Lua/Plugins/yap.lua: -------------------------------------------------------------------------------- 1 | highlight("connotate", "reserved") 2 | highlight("derives", "reserved") 3 | highlight("variable", "reserved") 4 | highlight("synchronised", "reserved") 5 | highlight("unsynchronised", "reserved") 6 | highlight("constant", "reserved") 7 | highlight("mutable", "reserved") 8 | highlight("volatile", "reserved") 9 | highlight("stable", "reserved") 10 | highlight("independent", "reserved") 11 | highlight("dependent", "reserved") 12 | highlight("invariable", "reserved") 13 | highlight("void", "reserved") 14 | highlight("ratify", "reserved") 15 | highlight("subroutine", "reserved") 16 | highlight("?", "reserved") 17 | highlight("transient", "reserved") 18 | highlight("classification", "reserved") 19 | highlight("extemporize", "reserved") 20 | highlight("aforementioned", "variable") 21 | highlight("epitomise", "reserved") 22 | highlight("stipulate", "reserved") 23 | highlight("otherwise", "reserved") 24 | highlight("compeer", "reserved") 25 | highlight("towards", "reserved") 26 | highlight("within", "reserved") 27 | highlight("nonfulfillment", "reserved") 28 | 29 | highlight("neither", "binary") 30 | highlight("both", "binary") 31 | highlight("maybe", "binary") 32 | highlight("trueish", "binary") 33 | highlight("falseish", "binary") 34 | highlight("depends", "binary") 35 | highlight("complicated", "binary") 36 | -- 37 | highlight("var", "reserved") 38 | highlight("let", "reserved") 39 | highlight("const", "reserved") 40 | highlight("new", "reserved") 41 | 42 | highlight("while", "reserved") 43 | highlight("for", "reserved") 44 | 45 | highlight("if", "reserved") 46 | highlight("else", "reserved") 47 | highlight("try", "reserved") 48 | highlight("catch", "reserved") 49 | 50 | highlight("extends", "reserved") 51 | highlight("typeof", "reserved") 52 | highlight("void", "reserved") 53 | 54 | highlight("in", "reserved") 55 | highlight("of", "reserved") 56 | highlight("with", "reserved") 57 | 58 | highlight("import", "reserved") 59 | highlight("finally", "reserved") 60 | highlight("delete", "reserved") 61 | 62 | highlight("class", "reserved") 63 | highlight("function", "reserved") 64 | highlight("return", "reserved") 65 | highlight("export", "reserved") 66 | highlight("async", "reserved") 67 | highlight("await", "reserved") 68 | highlight("throw", "reserved") 69 | highlight("continue", "reserved") 70 | highlight("break", "reserved") 71 | highlight("yield", "reserved") 72 | 73 | highlight("instanceof", "reserved") 74 | highlight("typeof", "reserved") 75 | highlight("switch", "reserved") 76 | highlight("case", "reserved") 77 | highlight("default", "reserved") 78 | highlight("do", "reserved") 79 | 80 | highlight("false", "binary") 81 | highlight("true", "binary") 82 | highlight("null", "binary") 83 | highlight("undefined", "binary") 84 | 85 | highlight("+", "operator") 86 | highlight("-", "operator") 87 | highlight("/", "operator") 88 | highlight("*", "operator") 89 | highlight("+=", "operator") 90 | highlight("-=", "operator") 91 | highlight("/=", "operator") 92 | highlight("*=", "operator") 93 | highlight("<", "operator") 94 | highlight(">", "operator") 95 | highlight("<=", "operator") 96 | highlight(">=", "operator") 97 | highlight("%", "operator") 98 | highlight("==", "operator") 99 | highlight("===", "operator") 100 | highlight("!=", "operator") 101 | highlight("!==", "operator") 102 | 103 | highlight("{", "binary") 104 | highlight("}", "binary") 105 | highlight("[", "binary") 106 | highlight("]", "binary") 107 | 108 | highlight("this", "variable") 109 | 110 | highlight_region("\"", "\"", "string", true) 111 | highlight_region("'", "'", "string", true) 112 | highlight_region("`", "`", "string") 113 | highlight_region("/*", "*/", "comments") 114 | highlight_region("//", "", "comments", true) 115 | 116 | --- comments 117 | add_comment("yap yap yap yap yap") 118 | add_comment("its the funny language 🗣️🗣️🗣️🗣️🗣️🗣️🗣️🗣️🗣️🗣️‼️‼️💥💥💥🤯") 119 | add_comment("typescript better 💀💀💀") 120 | add_comment("lil bro ain't onto something") 121 | 122 | --- autocomplete 123 | 124 | function detect_functions(content) 125 | local functionNames = {} 126 | 127 | local lines = {} 128 | for line in content:gmatch("[^\r\n]+") do 129 | table.insert(lines, line) 130 | end 131 | 132 | for _, line in ipairs(lines) do 133 | local trimmedLine = trim(line) 134 | 135 | -- Look for function, async function, subroutine, or ? (class) function definitions 136 | if trimmedLine:find("function ") or 137 | trimmedLine:find("async ") or 138 | trimmedLine:find("subroutine ") or 139 | trimmedLine:find("%w%s?") then 140 | local functionName = 141 | string.match(trimmedLine:gsub("{", ""), "%w+%s+%?") or 142 | string.match(trimmedLine:gsub("{", ""), "%.?function%s+(.-)%s*%(") or 143 | string.match(trimmedLine:gsub("{", ""), "%.?subroutine%s+(.-)%s*%(") or 144 | string.match(trimmedLine:gsub("{", ""), "%.?async%s+(.-)%s*%(") 145 | 146 | if functionName:find("?") then 147 | functionName = functionName.gsub(functionName, "?", "") 148 | functionName = trim(functionName) 149 | end 150 | 151 | table.insert(functionNames, functionName) 152 | end 153 | end 154 | 155 | return functionNames 156 | end 157 | 158 | function detect_variables(content) 159 | local variable_names = { 160 | "global", 161 | "process", 162 | "console", 163 | "Buffer", 164 | "__dirname", 165 | "__filename", 166 | "module", 167 | "exports", 168 | "connotate", 169 | "derives", 170 | "variable", 171 | "synchronised", 172 | "unsynchronised", 173 | "constant", 174 | "mutable", 175 | "volatile", 176 | "stable", 177 | "independent", 178 | "dependent", 179 | "invariable", 180 | "void", 181 | "ratify", 182 | "subroutine", 183 | "?", 184 | "transient", 185 | "classification", 186 | "extemporize", 187 | "aforementioned", 188 | "epitomise", 189 | "stipulate", 190 | "otherwise", 191 | "compeer", 192 | "towards", 193 | "within", 194 | "nonfulfillment" 195 | } 196 | 197 | local lines = content:gmatch("[^\r\n]+") 198 | 199 | for line in lines do 200 | local is_yap = trim(line):find("variable ") 201 | if is_yap or trim(line):find("let ") or trim(line):find("var ") or trim(line):find("const ") then 202 | local parts = splitstr(line, "=") 203 | if #parts > 0 then 204 | local variable_name = trim(splitstr(trim(parts[1]), " ")[2]) 205 | 206 | if is_yap then 207 | variable_name = splitstr(trim(parts[1]), " ")[4] 208 | variable_name = variable_name:gsub("[^a-zA-Z]", "") 209 | end 210 | table.insert(variable_names, variable_name) 211 | end 212 | end 213 | end 214 | 215 | return variable_names 216 | end 217 | -------------------------------------------------------------------------------- /Lua/Themes/Catppuccin Frappe.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "ca9ee6") --- Mauve 2 | set_keywords("string", "a6d189") --- Green 3 | set_keywords("binary", "ef9f76") --- Peach 4 | set_keywords("symbol", "ea999c") --- Maroon 5 | set_keywords("variable", "e5c890") --- Yellow 6 | set_keywords("operator", "81c8be") --- Teal 7 | set_keywords("comments", "949cbb") --- Overlay 2 8 | set_keywords("error", "e78284") --- Red 9 | set_keywords("function", "8caaee") --- Blue 10 | set_keywords("member", "85c1dc") --- Sapphire 11 | 12 | 13 | set_gui("background_color", "303446") --- Base 14 | set_gui("current_line_color", "626880") --- Surface 2 15 | set_gui("selection_color", "737994") --- Overlay 0 16 | set_gui("font_color", "c6d0f5") --- Text 17 | set_gui("word_highlighted_color", "838ba7") --- Overlay 1 18 | set_gui("completion_background_color", "51576d") --- Surface 1 19 | set_gui("completion_selected_color", "414559") --- Surface 0 20 | set_gui("caret_color", "eebebe") --- Flamingo 21 | -------------------------------------------------------------------------------- /Lua/Themes/Catppuccin Latte.lua: -------------------------------------------------------------------------------- 1 | disable_glow() 2 | 3 | set_keywords("reserved", "8839ef") --- Mauve 4 | set_keywords("string", "40a02b") --- Green 5 | set_keywords("binary", "fe640b") --- Peach 6 | set_keywords("symbol", "e64553") --- Maroon 7 | set_keywords("variable", "df8e1d") --- Yellow 8 | set_keywords("operator", "179299") --- Teal 9 | set_keywords("comments", "7c7f93") --- Overlay 2 10 | set_keywords("error", "d20f39") --- Red 11 | set_keywords("function", "1e66f5") --- Blue 12 | set_keywords("member", "209fb5") --- Sapphire 13 | 14 | 15 | set_gui("background_color", "eff1f5") --- Base 16 | set_gui("current_line_color", "acb0be") --- Surface 2 17 | set_gui("selection_color", "9ca0b0") --- Overlay 0 18 | set_gui("font_color", "4c4f69") --- Text 19 | set_gui("word_highlighted_color", "8c8fa1") --- Overlay 1 20 | set_gui("completion_background_color", "bcc0cc") --- Surface 1 21 | set_gui("completion_selected_color", "ccd0da") --- Surface 0 22 | set_gui("caret_color", "dd7878") --- Flamingo 23 | -------------------------------------------------------------------------------- /Lua/Themes/Catppuccin Macchiato.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "c6a0f6") --- Mauve 2 | set_keywords("string", "a6da95") --- Green 3 | set_keywords("binary", "f5a97f") --- Peach 4 | set_keywords("symbol", "ee99a0") --- Maroon 5 | set_keywords("variable", "eed49f") --- Yellow 6 | set_keywords("operator", "8bd5ca") --- Teal 7 | set_keywords("comments", "939ab7") --- Overlay 2 8 | set_keywords("error", "ed8796") --- Red 9 | set_keywords("function", "8aadf4") --- Blue 10 | set_keywords("member", "7dc4e4") --- Sapphire 11 | 12 | 13 | set_gui("background_color", "24273a") --- Base 14 | set_gui("current_line_color", "5b6078") --- Surface 2 15 | set_gui("selection_color", "6e738d") --- Overlay 0 16 | set_gui("font_color", "cad3f5") --- Text 17 | set_gui("word_highlighted_color", "8087a2") --- Overlay 1 18 | set_gui("completion_background_color", "494d64") --- Surface 1 19 | set_gui("completion_selected_color", "363a4f") --- Surface 0 20 | set_gui("caret_color", "f0c6c6") --- Flamingo 21 | -------------------------------------------------------------------------------- /Lua/Themes/Catppuccin Mocha.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "cba6f7") --- Mauve 2 | set_keywords("string", "a6e3a1") --- Green 3 | set_keywords("binary", "fab387") --- Peach 4 | set_keywords("symbol", "eba0ac") --- Maroon 5 | set_keywords("variable", "f9e2af") --- Yellow 6 | set_keywords("operator", "94e2d5") --- Teal 7 | set_keywords("comments", "9399b2") --- Overlay 2 8 | set_keywords("error", "f38ba8") --- Red 9 | set_keywords("function", "89b4fa") --- Blue 10 | set_keywords("member", "74c7ec") --- Sapphire 11 | 12 | 13 | set_gui("background_color", "1e1e2e") --- Base 14 | set_gui("current_line_color", "585b70") --- Surface 2 15 | set_gui("selection_color", "6c7086") --- Overlay 0 16 | set_gui("font_color", "cdd6f4") --- Text 17 | set_gui("word_highlighted_color", "7f849c") --- Overlay 1 18 | set_gui("completion_background_color", "45475a") --- Surface 1 19 | set_gui("completion_selected_color", "313244") --- Surface 0 20 | set_gui("caret_color", "f2cdcd") --- Flamingo 21 | -------------------------------------------------------------------------------- /Lua/Themes/GitHub Dark.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "e05f49") 2 | set_keywords("string", "6197da") 3 | set_keywords("binary", "79c0ff") 4 | set_keywords("symbol", "ffa198") 5 | set_keywords("variable", "ffa34d") 6 | set_keywords("operator", "79c0ff") 7 | set_keywords("comments", "8b949e") 8 | set_keywords("error", "d31820") 9 | set_keywords("function", "d2a8ff") 10 | set_keywords("member", "79c0ff") 11 | 12 | 13 | set_gui("background_color", "0d1117") 14 | set_gui("current_line_color", "0d1117") --- github's themes don't highlight current line 15 | set_gui("selection_color", "1e4273") 16 | set_gui("font_color", "eef4fa") 17 | set_gui("word_highlighted_color", "234879") 18 | set_gui("completion_background_color", "161b22") 19 | set_gui("completion_selected_color", "393f48") 20 | set_gui("caret_color", "e6edf3") 21 | -------------------------------------------------------------------------------- /Lua/Themes/GitHub Light.lua: -------------------------------------------------------------------------------- 1 | disable_glow() 2 | 3 | set_keywords("reserved", "cf222e") 4 | set_keywords("string", "0a3069") 5 | set_keywords("binary", "0550ae") 6 | set_keywords("symbol", "0969da") 7 | set_keywords("variable", "0550ae") 8 | set_keywords("operator", "cf222e") 9 | set_keywords("comments", "6e7781") 10 | set_keywords("error", "b01011") 11 | set_keywords("function", "8a5ce0") 12 | set_keywords("member", "262328") 13 | 14 | 15 | set_gui("background_color", "ffffff") 16 | set_gui("current_line_color", "ffffff") --- github's themes don't highlight current line 17 | set_gui("selection_color", "add6ff") 18 | set_gui("font_color", "262328") 19 | set_gui("word_highlighted_color", "add6ff") 20 | set_gui("completion_background_color", "eff1f3") 21 | set_gui("completion_selected_color", "dcddde") 22 | set_gui("caret_color", "0969da") 23 | -------------------------------------------------------------------------------- /Lua/Themes/Kanagawa Lotus.lua: -------------------------------------------------------------------------------- 1 | disable_glow() 2 | 3 | set_keywords("reserved", "624c83") 4 | set_keywords("string", "6f894e") 5 | set_keywords("binary", "ffa066") 6 | set_keywords("symbol", "4e8ca2") 7 | set_keywords("variable", "545464") --- XXX: same as foreground 8 | set_keywords("operator", "836f4a") 9 | set_keywords("comments", "8a8980") 10 | set_keywords("error", "e82424") 11 | set_keywords("function", "4d699b") 12 | set_keywords("member", "77713f") 13 | 14 | set_gui("background_color", "f2ecbc") 15 | set_gui("current_line_color", "dcd5ac") 16 | set_gui("selection_color", "c9cbd1") 17 | set_gui("word_highlighted_color", "c9cbd1") 18 | set_gui("font_color", "545464") 19 | set_gui("completion_background_color", "c7d7e0") 20 | set_gui("completion_selected_color", "9fb5c9") 21 | set_gui("caret_color", "545464") 22 | -------------------------------------------------------------------------------- /Lua/Themes/Kanagawa Wave.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "957fb8") 2 | set_keywords("string", "98bb6c") 3 | set_keywords("binary", "ffa066") 4 | set_keywords("symbol", "9cabca") 5 | set_keywords("variable", "dcd7ba") 6 | set_keywords("operator", "c0a36e") 7 | set_keywords("comments", "727169") 8 | set_keywords("error", "e82424") 9 | set_keywords("function", "7e9cd8") 10 | set_keywords("member", "ffa066") 11 | 12 | set_gui("background_color", "1f1f28") 13 | set_gui("current_line_color", "363646") 14 | set_gui("selection_color", "223249") 15 | set_gui("font_color", "dcd7ba") 16 | set_gui("word_highlighted_color", "2d4f67") 17 | set_gui("completion_background_color", "16161d") 18 | set_gui("completion_selected_color", "2d4f67") 19 | set_gui("caret_color", "dcd7ba") 20 | -------------------------------------------------------------------------------- /Lua/Themes/Monokai.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "db2672") 2 | set_keywords("string", "e6db74") 3 | set_keywords("binary", "ff3889") 4 | set_keywords("symbol", "f1a21f") 5 | set_keywords("variable", "ae81ff") 6 | set_keywords("operator", "f92668") 7 | set_keywords("comments", "88846f") 8 | set_keywords("error", "b01011") 9 | set_keywords("function", "66d9ef") 10 | set_keywords("member", "ff3889") 11 | 12 | set_gui("background_color", "272822") 13 | set_gui("current_line_color", "3e3d32") 14 | set_gui("selection_color", "575a5a") 15 | set_gui("font_color", "abccc1") 16 | set_gui("word_highlighted_color", "444354") 17 | set_gui("completion_background_color", "3e3d32") 18 | set_gui("completion_selected_color", "515046") 19 | set_gui("caret_color", "f8f8f0") 20 | 21 | -------------------------------------------------------------------------------- /Lua/Themes/Nord.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "81A1C1") --- nord9 2 | set_keywords("string", "A3BE8C") --- nord14 3 | set_keywords("binary", "B48EAD") --- nord15 4 | set_keywords("symbol", "81A1C1") --- nord9 5 | set_keywords("variable", "D8DEE9") --- nord4 6 | set_keywords("operator", "81A1C1") --- nord9 7 | set_keywords("comments", "4C566A") --- nord3 8 | set_keywords("error", "BF616A") --- nord11 9 | set_keywords("function", "88C0D0") --- nord8 10 | set_keywords("member", "88C0D0") --- nord8 11 | 12 | 13 | set_gui("background_color", "2E3440") --- nord0 14 | set_gui("current_line_color", "313a45") --- 15 | set_gui("selection_color", "373e4e") --- 16 | set_gui("font_color", "ECEFF4") --- nord6 17 | set_gui("word_highlighted_color", "E5E9F0") --- nord5 18 | set_gui("completion_background_color", "434C5E") --- nord2 19 | set_gui("completion_selected_color", "3B4252") --- nord1 20 | set_gui("caret_color", "EBCB8B") --- nord13 21 | 22 | --- Note: nord7, nord10, and nord12 are not used in the Nord theme 23 | --- Note: There are two colours not in the official Nord palette 24 | --- Note: There are some colours are used more than once 25 | -------------------------------------------------------------------------------- /Lua/Themes/One Dark Pro Darker.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "c678dd") 2 | set_keywords("string", "98c379") 3 | set_keywords("binary", "d19a66") 4 | set_keywords("symbol", "839fb6") 5 | set_keywords("variable", "d19a66") 6 | set_keywords("operator", "56b6c2") 7 | set_keywords("comments", "7f848e") 8 | set_keywords("error", "d31820") 9 | set_keywords("function", "61afef") 10 | set_keywords("member", "e06c75") 11 | 12 | 13 | set_gui("background_color", "23272e") 14 | set_gui("current_line_color", "2c313c") 15 | set_gui("selection_color", "3d4556") 16 | set_gui("font_color", "e06c75") 17 | set_gui("word_highlighted_color", "3d4556") 18 | set_gui("completion_background_color", "1e2227") 19 | set_gui("completion_selected_color", "2c313a") 20 | set_gui("caret_color", "528bff") 21 | -------------------------------------------------------------------------------- /Lua/Themes/Rose Pine Dawn.lua: -------------------------------------------------------------------------------- 1 | disable_glow() 2 | 3 | set_keywords("reserved", "b4637a") --- love 4 | set_keywords("string", "ea9d34") --- gold 5 | set_keywords("binary", "d7827e") --- rose 6 | set_keywords("symbol", "797593") --- subtle 7 | set_keywords("variable", "575279") --- text 8 | set_keywords("operator", "797593") --- subtle 9 | set_keywords("comments", "9893a5") --- muted 10 | set_keywords("error", "b4637a") --- love 11 | set_keywords("function", "d7827e") --- rose 12 | set_keywords("member", "56949f") --- foam 13 | 14 | 15 | set_gui("background_color", "faf4ed") --- base 16 | set_gui("current_line_color", "f4ede8") --- highlight low 17 | set_gui("selection_color", "f2e9e1") --- overlay 18 | set_gui("font_color", "575279") --- text 19 | set_gui("word_highlighted_color", "575279") --- text 20 | set_gui("completion_background_color", "fffaf3") --- surface 21 | set_gui("completion_selected_color", "dfdad9") --- highlight med 22 | set_gui("caret_color", "cecacd") --- highlight high 23 | -------------------------------------------------------------------------------- /Lua/Themes/Rose Pine Moon.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "eb6f92") --- love 2 | set_keywords("string", "f6c177") --- gold 3 | set_keywords("binary", "ea9a97") --- rose 4 | set_keywords("symbol", "908caa") --- subtle 5 | set_keywords("variable", "e0def4") --- text 6 | set_keywords("operator", "908caa") --- subtle 7 | set_keywords("comments", "6e6a86") --- muted 8 | set_keywords("error", "eb6f92") --- love 9 | set_keywords("function", "ea9a97") --- rose 10 | set_keywords("member", "9ccfd8") --- foam 11 | 12 | 13 | set_gui("background_color", "232136") --- base 14 | set_gui("current_line_color", "2a283e") --- highlight low 15 | set_gui("selection_color", "393552") --- overlay 16 | set_gui("font_color", "e0def4") --- text 17 | set_gui("word_highlighted_color", "e0def4") --- text 18 | set_gui("completion_background_color", "2a273f") --- surface 19 | set_gui("completion_selected_color", "44415a") --- highlight med 20 | set_gui("caret_color", "56526e") --- highlight high 21 | -------------------------------------------------------------------------------- /Lua/Themes/Rose Pine.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "eb6f92") --- love 2 | set_keywords("string", "f6c177") --- gold 3 | set_keywords("binary", "ebbcba") --- rose 4 | set_keywords("symbol", "908caa") --- subtle 5 | set_keywords("variable", "e0def4") --- text 6 | set_keywords("operator", "908caa") --- subtle 7 | set_keywords("comments", "6e6a86") --- muted 8 | set_keywords("error", "eb6f92") --- love 9 | set_keywords("function", "ebbcba") --- rose 10 | set_keywords("member", "9ccfd8") --- foam 11 | 12 | 13 | set_gui("background_color", "191724") --- base 14 | set_gui("current_line_color", "21202e") --- highlight low 15 | set_gui("selection_color", "26233a") --- overlay 16 | set_gui("font_color", "e0def4") --- text 17 | set_gui("word_highlighted_color", "e0def4") --- text 18 | set_gui("completion_background_color", "1f1d2e") --- surface 19 | set_gui("completion_selected_color", "403d52") --- highlight med 20 | set_gui("caret_color", "524f67") --- highlight high 21 | -------------------------------------------------------------------------------- /Lua/Themes/Tokyo Night Light.lua: -------------------------------------------------------------------------------- 1 | disable_glow() 2 | 3 | set_keywords("reserved", "5a4a78") 4 | set_keywords("string", "485e30") 5 | set_keywords("binary", "965027") 6 | set_keywords("symbol", "9699a3") 7 | set_keywords("variable", "343b58") 8 | set_keywords("operator", "5a4a78") 9 | set_keywords("comments", "9699a3") 10 | set_keywords("error", "8c4351") 11 | set_keywords("function", "34548a") 12 | set_keywords("member", "166775") 13 | 14 | 15 | set_gui("background_color", "d5d6db") 16 | set_gui("current_line_color", "838696") 17 | set_gui("selection_color", "838696") 18 | set_gui("font_color", "565a6e") 19 | set_gui("word_highlighted_color", "0f0f14") 20 | set_gui("completion_background_color", "0f0f14") 21 | set_gui("completion_selected_color", "24283b") 22 | set_gui("caret_color", "9aa5ce") 23 | -------------------------------------------------------------------------------- /Lua/Themes/Tokyo Night Storm.lua: -------------------------------------------------------------------------------- 1 | disable_glow() 2 | 3 | set_keywords("reserved", "bb9af7") 4 | set_keywords("string", "9ece6a") 5 | set_keywords("binary", "ff9e64") 6 | set_keywords("symbol", "565f89") 7 | set_keywords("variable", "c0caf5") 8 | set_keywords("operator", "bb9af7") 9 | set_keywords("comments", "565f89") 10 | set_keywords("error", "f7768e") 11 | set_keywords("function", "7aa2f7") 12 | set_keywords("member", "2ac3de") 13 | 14 | 15 | set_gui("background_color", "24283b") 16 | set_gui("current_line_color", "414868") 17 | set_gui("selection_color", "414868") 18 | set_gui("font_color", "9aa5ce") 19 | set_gui("word_highlighted_color", "414868") 20 | set_gui("completion_background_color", "24283b") 21 | set_gui("completion_selected_color", "414868") 22 | set_gui("caret_color", "9aa5ce") 23 | -------------------------------------------------------------------------------- /Lua/Themes/Tokyo Night.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "bb9af7") 2 | set_keywords("string", "9ece6a") 3 | set_keywords("binary", "ff9e64") 4 | set_keywords("symbol", "565f89") 5 | set_keywords("variable", "c0caf5") 6 | set_keywords("operator", "bb9af7") 7 | set_keywords("comments", "565f89") 8 | set_keywords("error", "f7768e") 9 | set_keywords("function", "7aa2f7") 10 | set_keywords("member", "2ac3de") 11 | 12 | 13 | set_gui("background_color", "1a1b26") 14 | set_gui("current_line_color", "24283b") 15 | set_gui("selection_color", "24283b") 16 | set_gui("font_color", "9aa5ce") 17 | set_gui("word_highlighted_color", "414868") 18 | set_gui("completion_background_color", "414868") 19 | set_gui("completion_selected_color", "24283b") 20 | set_gui("caret_color", "9aa5ce") -------------------------------------------------------------------------------- /Lua/Themes/violet.lua: -------------------------------------------------------------------------------- 1 | set_keywords("reserved", "ff1654") 2 | set_keywords("string", "F3A1C6") 3 | set_keywords("binary", "1ad1cd") 4 | set_keywords("symbol", "A8B910") 5 | set_keywords("variable", "627ba0") 6 | set_keywords("operator", "31d843") 7 | set_keywords("comments", "7f848e") 8 | set_keywords("error", "F28371") 9 | set_keywords("function", "bbadff") 10 | set_keywords("member", "e06c75") 11 | 12 | set_gui("background_color", "29212E") 13 | set_gui("current_line_color", "312737") 14 | set_gui("selection_color", "583766") 15 | set_gui("font_color", "ffffff") 16 | set_gui("word_highlighted_color", "4A384F") 17 | set_gui("completion_background_color", "4A384F") 18 | set_gui("completion_selected_color", "4A384F") 19 | set_gui("caret_color", "528bff") 20 | -------------------------------------------------------------------------------- /Music/ES_Social Feedia - Heyson.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Music/ES_Social Feedia - Heyson.wav -------------------------------------------------------------------------------- /Music/ES_Social Feedia - Heyson.wav.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="wav" 4 | type="AudioStreamWAV" 5 | uid="uid://bw4elmrq7utxl" 6 | path="res://.godot/imported/ES_Social Feedia - Heyson.wav-96c1183fb728103d97a93214b6a539dc.sample" 7 | 8 | [deps] 9 | 10 | source_file="res://Music/ES_Social Feedia - Heyson.wav" 11 | dest_files=["res://.godot/imported/ES_Social Feedia - Heyson.wav-96c1183fb728103d97a93214b6a539dc.sample"] 12 | 13 | [params] 14 | 15 | force/8_bit=false 16 | force/mono=false 17 | force/max_rate=false 18 | force/max_rate_hz=44100 19 | edit/trim=false 20 | edit/normalize=false 21 | edit/loop_mode=0 22 | edit/loop_begin=0 23 | edit/loop_end=-1 24 | compress/mode=0 25 | -------------------------------------------------------------------------------- /Scenes/2024-02-25 10-36-37 (online-video-cutter.com).mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Scenes/2024-02-25 10-36-37 (online-video-cutter.com).mp4 -------------------------------------------------------------------------------- /Scenes/comment.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=3 uid="uid://bp8qdakc47pva"] 2 | 3 | [ext_resource type="Shader" path="res://Shaders/circle_mask.gdshader" id="1_1jr08"] 4 | [ext_resource type="Script" path="res://Scripts/comment.gd" id="1_b8ga8"] 5 | [ext_resource type="Texture2D" uid="uid://dqsmye2lux7vl" path="res://Icons/Comments/quincetart10.png" id="3_gt38f"] 6 | [ext_resource type="Theme" uid="uid://daiset8sjhqyc" path="res://theme.tres" id="4_2bdw7"] 7 | 8 | [sub_resource type="ShaderMaterial" id="ShaderMaterial_gok1n"] 9 | shader = ExtResource("1_1jr08") 10 | shader_parameter/circle_size = 0.489 11 | shader_parameter/ratio_width = 1.0 12 | shader_parameter/ratio_height = 1.0 13 | 14 | [node name="Control" type="Control"] 15 | custom_minimum_size = Vector2(638, 288.848) 16 | layout_mode = 3 17 | anchors_preset = 0 18 | offset_right = 638.0 19 | offset_bottom = 335.465 20 | script = ExtResource("1_b8ga8") 21 | 22 | [node name="Sprite2D" type="Sprite2D" parent="."] 23 | material = SubResource("ShaderMaterial_gok1n") 24 | position = Vector2(110.125, 101.125) 25 | scale = Vector2(1.20117, 1.20117) 26 | texture = ExtResource("3_gt38f") 27 | 28 | [node name="Name" type="RichTextLabel" parent="."] 29 | layout_mode = 2 30 | offset_left = 212.245 31 | offset_top = 18.295 32 | offset_right = 1112.24 33 | offset_bottom = 918.295 34 | theme = ExtResource("4_2bdw7") 35 | theme_override_font_sizes/normal_font_size = 41 36 | bbcode_enabled = true 37 | text = "kgpoakgp3 3d" 38 | 39 | [node name="Comment" type="RichTextLabel" parent="."] 40 | layout_mode = 2 41 | offset_left = 215.0 42 | offset_top = 85.0 43 | offset_right = 5682.0 44 | offset_bottom = 7405.0 45 | scale = Vector2(0.075, 0.075) 46 | theme = ExtResource("4_2bdw7") 47 | theme_override_font_sizes/normal_font_size = 300 48 | bbcode_enabled = true 49 | text = "This is a placeholder. If you are seeing this: 50 | 1. Your extension does not provide comments. 51 | 2. GriddyCode failed to properly load. 🔥" 52 | -------------------------------------------------------------------------------- /Scenes/comment_list.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://2nmb0cwntgpq"] 2 | 3 | [ext_resource type="Script" path="res://Scripts/comments.gd" id="1_ng0lx"] 4 | [ext_resource type="PackedScene" uid="uid://bp8qdakc47pva" path="res://Scenes/comment.tscn" id="1_udget"] 5 | 6 | [node name="VBoxContainer" type="VBoxContainer"] 7 | custom_minimum_size = Vector2(540.41, 500) 8 | offset_right = 638.0 9 | offset_bottom = 872.0 10 | scale = Vector2(0.6, 0.6) 11 | size_flags_horizontal = 3 12 | size_flags_vertical = 3 13 | script = ExtResource("1_ng0lx") 14 | 15 | [node name="Control" parent="." instance=ExtResource("1_udget")] 16 | layout_mode = 2 17 | 18 | [node name="Control2" parent="." instance=ExtResource("1_udget")] 19 | layout_mode = 2 20 | 21 | [node name="Control3" parent="." instance=ExtResource("1_udget")] 22 | layout_mode = 2 23 | -------------------------------------------------------------------------------- /Scenes/comments.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=3 uid="uid://bjnhor4pywtgc"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://2nmb0cwntgpq" path="res://Scenes/comment_list.tscn" id="1_5m2ww"] 4 | [ext_resource type="Script" path="res://Scripts/comments_overlay.gd" id="1_8hvfh"] 5 | [ext_resource type="Shader" path="res://Shaders/border_radius.gdshader" id="2_yj5ls"] 6 | 7 | [sub_resource type="ShaderMaterial" id="ShaderMaterial_onjnb"] 8 | shader = ExtResource("2_yj5ls") 9 | shader_parameter/radius = 1.0 10 | shader_parameter/animate = false 11 | shader_parameter/square_scale = 0.1 12 | 13 | [node name="comments" type="Control"] 14 | layout_mode = 3 15 | anchors_preset = 15 16 | anchor_right = 1.0 17 | anchor_bottom = 1.0 18 | grow_horizontal = 2 19 | grow_vertical = 2 20 | script = ExtResource("1_8hvfh") 21 | 22 | [node name="ColorRect" type="ColorRect" parent="."] 23 | material = SubResource("ShaderMaterial_onjnb") 24 | layout_mode = 0 25 | offset_right = 429.0 26 | offset_bottom = 534.0 27 | color = Color(0, 0, 0, 1) 28 | 29 | [node name="VBoxContainer" parent="." instance=ExtResource("1_5m2ww")] 30 | layout_mode = 0 31 | -------------------------------------------------------------------------------- /Scenes/file_dialog.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://ccqsbvh4swj5p"] 2 | 3 | [ext_resource type="Theme" uid="uid://daiset8sjhqyc" path="res://theme.tres" id="1_w7vsw"] 4 | 5 | [node name="Control" type="Control"] 6 | layout_mode = 3 7 | anchors_preset = 0 8 | offset_right = 40.0 9 | offset_bottom = 40.0 10 | theme = ExtResource("1_w7vsw") 11 | 12 | [node name="DirList" type="RichTextLabel" parent="."] 13 | unique_name_in_owner = true 14 | layout_mode = 1 15 | anchors_preset = 7 16 | anchor_left = 0.5 17 | anchor_top = 1.0 18 | anchor_right = 0.5 19 | anchor_bottom = 1.0 20 | offset_left = -10.0 21 | offset_top = -27.0 22 | offset_right = 452.0 23 | offset_bottom = 603.0 24 | grow_horizontal = 2 25 | grow_vertical = 0 26 | theme = ExtResource("1_w7vsw") 27 | bbcode_enabled = true 28 | autowrap_mode = 0 29 | -------------------------------------------------------------------------------- /Scenes/notice.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://c8njeludg1ajk"] 2 | 3 | [ext_resource type="Script" path="res://Scripts/notice.gd" id="1_dlyuf"] 4 | [ext_resource type="Shader" path="res://Shaders/border_radius.gdshader" id="1_m2ntv"] 5 | 6 | [sub_resource type="ShaderMaterial" id="ShaderMaterial_in2wo"] 7 | shader = ExtResource("1_m2ntv") 8 | shader_parameter/radius = 1.0 9 | shader_parameter/animate = false 10 | shader_parameter/square_scale = 0.07 11 | 12 | [node name="Notice" type="Control"] 13 | layout_mode = 3 14 | anchors_preset = 15 15 | anchor_right = 1.0 16 | anchor_bottom = 1.0 17 | grow_horizontal = 2 18 | grow_vertical = 2 19 | script = ExtResource("1_dlyuf") 20 | 21 | [node name="ColorRect" type="ColorRect" parent="."] 22 | material = SubResource("ShaderMaterial_in2wo") 23 | layout_mode = 0 24 | offset_right = 487.0 25 | offset_bottom = 88.0 26 | color = Color(0.101961, 0.101961, 0.101961, 1) 27 | 28 | [node name="RichTextLabel" type="RichTextLabel" parent="."] 29 | layout_mode = 0 30 | offset_left = 9.0 31 | offset_top = 10.0 32 | offset_right = 491.0 33 | offset_bottom = 124.0 34 | bbcode_enabled = true 35 | text = "[color=yellow]WARNING[/color]: This file isn’t supported. Highlighting, autocomplete and comments won’t work properly." 36 | -------------------------------------------------------------------------------- /Scenes/setting.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://cshkyynl6dffr"] 2 | 3 | [ext_resource type="Theme" uid="uid://daiset8sjhqyc" path="res://theme.tres" id="1_g3chd"] 4 | 5 | [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wffyp"] 6 | 7 | [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8dktu"] 8 | 9 | [node name="HBoxContainer" type="HBoxContainer"] 10 | offset_right = 40.0 11 | offset_bottom = 40.0 12 | 13 | [node name="Control" type="Control" parent="."] 14 | layout_mode = 2 15 | 16 | [node name="RichTextLabel" type="RichTextLabel" parent="Control"] 17 | layout_mode = 2 18 | offset_top = 3.0 19 | offset_right = 1315.0 20 | offset_bottom = 131.0 21 | scale = Vector2(0.235, 0.235) 22 | theme = ExtResource("1_g3chd") 23 | theme_override_font_sizes/normal_font_size = 66 24 | bbcode_enabled = true 25 | text = "Scroll Speed" 26 | 27 | [node name="Control2" type="Control" parent="."] 28 | layout_mode = 2 29 | 30 | [node name="HSlider" type="HSlider" parent="Control2"] 31 | layout_mode = 0 32 | offset_left = 366.0 33 | offset_right = 442.0 34 | offset_bottom = 27.0 35 | step = 0.1 36 | 37 | [node name="CheckButton" type="CheckButton" parent="Control2"] 38 | layout_mode = 0 39 | offset_left = 359.0 40 | offset_top = 1.0 41 | offset_right = 403.0 42 | offset_bottom = 25.0 43 | theme_override_styles/focus = SubResource("StyleBoxEmpty_wffyp") 44 | button_pressed = true 45 | 46 | [node name="Control3" type="Control" parent="."] 47 | layout_mode = 2 48 | 49 | [node name="VSeparator" type="VSeparator" parent="Control3"] 50 | layout_mode = 2 51 | offset_left = 313.0 52 | offset_top = 3.0 53 | offset_right = 322.0 54 | offset_bottom = 23.0 55 | 56 | [node name="Control4" type="Control" parent="."] 57 | layout_mode = 2 58 | 59 | [node name="Value" type="RichTextLabel" parent="Control4"] 60 | layout_mode = 2 61 | offset_left = 449.0 62 | offset_top = 3.0 63 | offset_right = 1764.0 64 | offset_bottom = 131.0 65 | scale = Vector2(0.235, 0.235) 66 | theme = ExtResource("1_g3chd") 67 | theme_override_font_sizes/normal_font_size = 66 68 | bbcode_enabled = true 69 | 70 | [node name="Control5" type="Control" parent="."] 71 | layout_mode = 2 72 | 73 | [node name="OptionButton" type="OptionButton" parent="Control5"] 74 | layout_mode = 2 75 | offset_left = 351.0 76 | offset_right = 383.0 77 | offset_bottom = 23.715 78 | theme_override_styles/focus = SubResource("StyleBoxEmpty_8dktu") 79 | -------------------------------------------------------------------------------- /Scenes/settings_list.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://dk43uvvc3j228"] 2 | 3 | [ext_resource type="Script" path="res://Scripts/settings_list.gd" id="1_kx2vs"] 4 | 5 | [node name="VBoxContainer" type="VBoxContainer"] 6 | offset_right = 162.68 7 | offset_bottom = 42.665 8 | theme_override_constants/separation = 30 9 | script = ExtResource("1_kx2vs") 10 | -------------------------------------------------------------------------------- /Scenes/theme_chooser.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://c2gyvklbna1ss"] 2 | 3 | [ext_resource type="Theme" uid="uid://daiset8sjhqyc" path="res://theme.tres" id="1_v6oin"] 4 | 5 | [node name="OptionButton" type="OptionButton"] 6 | offset_right = 477.0 7 | offset_bottom = 47.0 8 | theme = ExtResource("1_v6oin") 9 | -------------------------------------------------------------------------------- /Scenes/update.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://bkx02j85qa1rm"] 2 | 3 | [ext_resource type="Script" path="res://Scripts/update.gd" id="1_ug1sp"] 4 | [ext_resource type="Theme" uid="uid://daiset8sjhqyc" path="res://theme.tres" id="2_qh5es"] 5 | [ext_resource type="Script" path="res://Scripts/hyperlink.gd" id="2_w1buf"] 6 | 7 | [node name="Control" type="Control"] 8 | layout_mode = 3 9 | anchors_preset = 15 10 | anchor_right = 1.0 11 | anchor_bottom = 1.0 12 | grow_horizontal = 2 13 | grow_vertical = 2 14 | script = ExtResource("1_ug1sp") 15 | 16 | [node name="RichTextLabel" type="RichTextLabel" parent="."] 17 | layout_mode = 0 18 | offset_top = 23.0 19 | offset_right = 256.0 20 | offset_bottom = 63.0 21 | theme = ExtResource("2_qh5es") 22 | text = "Current version: v1.0.3" 23 | 24 | [node name="Button" type="Button" parent="."] 25 | layout_mode = 0 26 | offset_top = 56.0 27 | offset_right = 257.0 28 | offset_bottom = 108.0 29 | theme = ExtResource("2_qh5es") 30 | text = "💾 Check updates" 31 | 32 | [node name="HSeparator" type="HSeparator" parent="."] 33 | layout_mode = 0 34 | offset_top = 7.0 35 | offset_right = 271.0 36 | offset_bottom = 11.0 37 | 38 | [node name="RichTextLabel2" type="RichTextLabel" parent="."] 39 | visible = false 40 | layout_mode = 0 41 | offset_left = 294.0 42 | offset_top = 58.0 43 | offset_right = 765.0 44 | offset_bottom = 98.0 45 | theme = ExtResource("2_qh5es") 46 | bbcode_enabled = true 47 | text = "Nothing new..." 48 | scroll_active = false 49 | script = ExtResource("2_w1buf") 50 | 51 | [node name="HTTPRequest" type="HTTPRequest" parent="."] 52 | use_threads = true 53 | 54 | [connection signal="pressed" from="Button" to="." method="_on_button_pressed"] 55 | -------------------------------------------------------------------------------- /Scripts/camera.gd: -------------------------------------------------------------------------------- 1 | # Info: 2 | # "Caret" refers to the "cursor" of where text is being inserted/deleted in the CodeEdit node. 3 | # "11" refers to the number of characters able to fit on the screen without zooming out. 4 | class_name Camera 5 | extends Camera2D 6 | 7 | @export var transition_speed: float = 1.0 8 | @onready var code = %Code 9 | 10 | var max_zoom = Vector2(10.0, 10.0); 11 | var min_zoom = Vector2(1.0, 1.0); 12 | 13 | # Ignore mouse movement? \/ 14 | var busy = false; 15 | var boundaries_exceeded = null; 16 | 17 | var shake_strength: float = 15.0; 18 | 19 | var d := 0.0; 20 | var radius := 4.0 21 | var speed := 2.0 22 | 23 | func _ready() -> void: 24 | limit_right = code.size.x 25 | 26 | 27 | func get_font_metrics() -> Vector2: 28 | var font: Font = code.get_theme_default_font() 29 | var font_size: int = code.get_theme_font_size("font", "CodeEdit") 30 | # NOTE: imo this is a good approximation of the average character size for a non 31 | # monospaced font. 32 | return font.get_char_size(0x30, font_size) 33 | 34 | 35 | const SCALE = 7.0; 36 | 37 | 38 | func _process(delta: float) -> void: 39 | d += delta; 40 | 41 | offset = Vector2( 42 | sin(d * speed) * radius, 43 | cos(d * speed) * radius 44 | ); 45 | 46 | if busy: return; 47 | 48 | var tween = create_tween(); 49 | 50 | var longest_line: String = code.get_longest_line(); 51 | var chars: int = longest_line.length(); 52 | 53 | var target_zoom = ((chars+1)) / SCALE; 54 | 55 | target_zoom = max_zoom.x - target_zoom; 56 | 57 | var final_zoom = clamp(Vector2(target_zoom, target_zoom), min_zoom, max_zoom); 58 | var char_size: Vector2 = get_font_metrics(); 59 | var gp = code.get_caret_draw_pos(); 60 | 61 | gp.x -= 2*char_size.x; 62 | 63 | tween.parallel().tween_property(self, "zoom", final_zoom, 1.0); 64 | tween.parallel().tween_property(self, "global_position", gp, 1.0); 65 | 66 | func focus_on(pos: Vector2, _zoom: Vector2) -> void: 67 | busy = true; 68 | var tween = create_tween() 69 | 70 | tween.parallel().tween_property(self, "global_position", pos, transition_speed) 71 | tween.parallel().tween_property(self, "zoom", _zoom, transition_speed) 72 | 73 | func focus_die() -> void: 74 | busy = false 75 | var tween = create_tween() 76 | 77 | tween.parallel().tween_property(self, "global_position", code.get_caret_draw_pos(), transition_speed) 78 | 79 | func focus_temp(intensity: float) -> void: 80 | if busy: return 81 | 82 | var tween = create_tween() 83 | 84 | tween.parallel().tween_property(self, "zoom", zoom + Vector2(intensity, intensity), 0.5) 85 | 86 | func shake_camera(_shake_strength): 87 | return Vector2(randf_range(-_shake_strength, _shake_strength), randf_range(-_shake_strength, _shake_strength)) 88 | 89 | func to_zoom(num: float) -> Vector2: 90 | if num > 40: 91 | num += 120; 92 | 93 | num /= 100 # 44 -> 0.44 94 | 95 | num = 4 - num; 96 | 97 | return Vector2(num, num) 98 | -------------------------------------------------------------------------------- /Scripts/comment.gd: -------------------------------------------------------------------------------- 1 | class_name Comment 2 | 3 | extends Control 4 | 5 | @onready var _name: RichTextLabel = $Name 6 | @onready var comment: RichTextLabel = $Comment 7 | @onready var sprite: Sprite2D = $Sprite2D 8 | 9 | func _ready(): 10 | _name.clear() 11 | comment.clear() 12 | 13 | func setup(__name: String, __comment: String) -> void: 14 | var num = randi_range(800, 34000); 15 | var duration = randi_range(1, 14); 16 | 17 | _name.add_text(__name); 18 | _name.push_color(LuaSingleton.keywords.comments) 19 | _name.add_text(" " + str(duration) + "d") 20 | _name.pop() 21 | 22 | comment.add_text(__comment) 23 | comment.add_text("\n\n") 24 | comment.push_color(LuaSingleton.keywords.comments) 25 | comment.add_text(str(num) + " likes") 26 | comment.pop() 27 | 28 | var path = "res://Icons/Comments/" + __name + ".png"; 29 | 30 | sprite.texture = load(path) 31 | -------------------------------------------------------------------------------- /Scripts/comments.gd: -------------------------------------------------------------------------------- 1 | class_name Comments 2 | 3 | extends VBoxContainer 4 | 5 | const COMMENT = preload("res://Scenes/comment.tscn") 6 | 7 | func _ready(): 8 | await LuaSingleton.done_parsing 9 | 10 | setup() 11 | 12 | func setup(): 13 | var names = CommentsData.NAMES.duplicate(); 14 | 15 | for child in get_children(): 16 | child.queue_free() 17 | 18 | for comment in get_random_comments(): 19 | var _name = names.pick_random(); 20 | 21 | names.remove_at(names.find(_name)) 22 | 23 | var node: Comment = COMMENT.instantiate(); 24 | 25 | add_child(node) 26 | 27 | node.setup(_name, comment) 28 | func get_random_comments() -> Array: 29 | LuaSingleton.comments.shuffle() 30 | 31 | return LuaSingleton.comments.slice(0, 3) 32 | -------------------------------------------------------------------------------- /Scripts/comments_data.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | var NAMES = [ 4 | "dmytro_nedylski", 5 | "pinkgold123", 6 | "worker_621", 7 | "itzinnovator", 8 | "nearprotocol", 9 | "powersaj", 10 | "zerotwo._02", 11 | "rachniotov", 12 | "quincetart10", 13 | "apple", 14 | "linuxiscool315", 15 | "bytebrawler", 16 | "syntaxslayer", 17 | "linter", 18 | "creeperita104", 19 | "tavidev", 20 | "stef_dp", 21 | "ysb__", 22 | "xx420_weedman_xx", 23 | "segfault", 24 | "proplayer.py" 25 | ] 26 | -------------------------------------------------------------------------------- /Scripts/comments_overlay.gd: -------------------------------------------------------------------------------- 1 | class_name CommentsOverlay 2 | 3 | extends Control 4 | 5 | @onready var color_rect: ColorRect = $ColorRect 6 | @onready var container: Comments = $VBoxContainer 7 | 8 | func _ready(): 9 | color_rect.color = LuaSingleton.gui.current_line_color 10 | -------------------------------------------------------------------------------- /Scripts/file_dialog.gd: -------------------------------------------------------------------------------- 1 | class_name FileDialogType 2 | 3 | extends RichTextLabel 4 | 5 | @onready var editor: FileManager = $".." 6 | @onready var code = %Code 7 | 8 | var selected_index: int = 0 9 | var dir: DirAccess 10 | var dirs: Array[String] 11 | var bbcode_dirs: Array[String] 12 | var shortened_dirs: Array[String] 13 | var files: Array[String] 14 | 15 | var query: String = "" 16 | var search_limit: int = 1000 17 | var current_dirs_count: int = 0 18 | var handled: bool 19 | var erased: bool 20 | var max_coincidence: Array = [] 21 | var coincidence: Array = [] 22 | 23 | var zoom: Vector2; 24 | 25 | var active: bool = false; 26 | signal ui_close 27 | 28 | func change_dir(path) -> void: 29 | query = "" 30 | if !dir: dir = DirAccess.open(path) 31 | #dir.include_hidden = true 32 | # WARNING: this will heavily affect performance if de-commented 33 | 34 | dirs = [".."]; 35 | dirs.append_array(dir.get_directories()) 36 | dirs.append_array(dir.get_files()) 37 | 38 | shortened_dirs = [] 39 | for dir_ in dirs: 40 | if len(dir_) > 30: 41 | dir_ = dir_.left(30) + "..." + dir_.right(3) 42 | shortened_dirs.append(dir_) 43 | 44 | bbcode_dirs = [] 45 | bbcode_dirs.append_array(dirs) 46 | 47 | current_dirs_count = len(dirs) 48 | 49 | files.append_array(dir.get_files()) 50 | 51 | zoom = %Cam.to_zoom(code.get_longest_line(dirs).length()) 52 | 53 | if active: 54 | %Cam.focus_on(gp(), zoom) 55 | 56 | func setup() -> void: 57 | active = false 58 | change_dir(editor.current_dir) 59 | 60 | update_ui() 61 | 62 | func _input(event: InputEvent) -> void: 63 | if !active: return 64 | if !(event is InputEventKey): return 65 | 66 | var key_event = event as InputEventKey 67 | bbcode_dirs = [] 68 | bbcode_dirs.append_array(dirs) 69 | 70 | if !(key_event.is_pressed()): return; 71 | 72 | handled = true 73 | if key_event.keycode == KEY_UP: 74 | selected_index = max(0, selected_index - 1) 75 | elif key_event.keycode == KEY_DOWN: 76 | selected_index = min(len(dirs) - 1, selected_index + 1) 77 | elif key_event.keycode == KEY_ENTER: 78 | handle_enter_key() 79 | else: 80 | handled = false 81 | 82 | erased = false 83 | if current_dirs_count <= search_limit and !handled: 84 | if key_event.keycode == KEY_BACKSPACE: 85 | erased = true 86 | if len(query) > 0: 87 | query = query.substr(0, len(query) - 1) 88 | elif key_event.as_text() == 'Ctrl+Backspace': 89 | erased = true 90 | query = "" 91 | if len(key_event.as_text()) == 1: 92 | query += key_event.as_text().to_lower() 93 | elif key_event.keycode == KEY_PERIOD: 94 | query += "." 95 | 96 | max_coincidence = [] 97 | 98 | if len(query) > 0: 99 | for i in range(1, len(dirs)): 100 | coincidence = fuzzy_search(shortened_dirs[i].to_lower(), query) 101 | bbcode_dirs[i] = make_bold(shortened_dirs[i], coincidence) 102 | if is_closer(max_coincidence, coincidence): 103 | max_coincidence = coincidence 104 | if not handled: selected_index = i 105 | 106 | update_ui() 107 | 108 | func update_ui() -> void: 109 | clear() 110 | show_items() 111 | 112 | func show_items() -> void: 113 | for i in range(len(bbcode_dirs)): 114 | show_item(i) 115 | 116 | func show_item(index: int) -> void: 117 | var item = dirs[index] 118 | var bbcode_item = bbcode_dirs[index] 119 | if is_selected(item): 120 | push_bgcolor(LuaSingleton.gui.selection_color) 121 | else: 122 | push_bgcolor(Color(0, 0, 0, 0)) # Reset background color if not selected 123 | 124 | var is_dir = dir.get_directories().find(item) != -1 125 | 126 | if item == "..": 127 | push_color(LuaSingleton.gui.font_color) 128 | add_text("󰕌") 129 | elif is_dir: 130 | push_color(LuaSingleton.gui.completion_selected_color) 131 | add_text("") 132 | else: 133 | var extension = item.split(".")[-1] 134 | var data = Icons.get_icon_data(extension) 135 | 136 | push_color(Color.from_string(data.color, data.color)) 137 | add_text(data.icon) 138 | 139 | pop() 140 | 141 | var filename = bbcode_item.split(".")[0] 142 | 143 | if is_dir: filename = bbcode_item 144 | 145 | 146 | if bbcode_item == "..": 147 | append_text(" %s\n" % [ bbcode_item ]) 148 | elif is_dir or !item.contains("."): 149 | append_text(" %s\n" % [ filename ]) 150 | else: 151 | append_text(" %s.%s\n" % [ filename, bbcode_item.split(".")[1] ]) 152 | 153 | if active: %Cam.focus_on(Vector2(gp().x, global_position.y + (selected_index * 23)), zoom) 154 | 155 | # i gave up at that point, sorry for what you're about to witness 156 | func is_selected(item: String) -> bool: 157 | var dir_item = dirs.find(item); 158 | 159 | var is_dir_item = dir_item != -1; 160 | var is_dir_current = dir_item == selected_index; 161 | 162 | return (is_dir_item and is_dir_current) 163 | 164 | func handle_enter_key() -> void: 165 | if selected_index > len(dirs): return 166 | # ^^ this happens when the cursor was at, i.e., pos. 6, but arr is only has 4 entries 167 | 168 | var item = dirs[selected_index]; 169 | 170 | var is_file = files.find(item) != -1; 171 | 172 | if is_file: 173 | editor.current_dir = dir.get_current_dir(); 174 | editor.open_file(editor.current_dir + "/" + item) 175 | 176 | LuaSingleton.setup_extension(item.split(".")[-1]) 177 | 178 | code.setup_highlighter() 179 | get_tree().create_timer(.1).timeout.connect(func(): 180 | code.grab_focus() 181 | ) 182 | 183 | ui_close.emit() 184 | else: 185 | selected_index = 0; 186 | dir.change_dir(item) 187 | change_dir(item) 188 | update_ui() 189 | 190 | func make_bold(string: String, indexes: Array) -> String: 191 | var new_string: String = "" 192 | 193 | for i in range(len(string)): 194 | if i in indexes: new_string += "[i][color=yellow]" + string[i] + "[/color][/i]" 195 | else: new_string += string[i] 196 | 197 | return new_string 198 | 199 | func fuzzy_search(string: String, substring: String) -> Array: 200 | var indexes: Array = [] 201 | var pos: int = 0 202 | var last_index: int = 0 203 | 204 | for i in range(string.length()): 205 | if string[i] == substring[pos]: 206 | indexes.append(i) 207 | pos += 1 208 | if pos == substring.length(): 209 | break 210 | else: 211 | if last_index < i - 1: 212 | i = last_index 213 | pos = 0 214 | indexes = [] 215 | 216 | last_index = i 217 | 218 | return indexes 219 | 220 | # Compares 2 fuzzy Arrays and returns if 'new' Array is closer to query than 'old' 221 | func is_closer(old: Array, new: Array) -> bool: 222 | if len(old) == 0: return true 223 | if len(new) == 0: return false 224 | 225 | if old == new: return false 226 | 227 | for i in range(len(old)): 228 | if old[i] > new[i]: return true 229 | elif old[i] < new[i]: return false 230 | 231 | return false 232 | 233 | # global_position is slightly off, so we customize it a little. 234 | func gp() -> Vector2: 235 | var vec = global_position; 236 | 237 | vec.x += 100; 238 | 239 | return vec; 240 | -------------------------------------------------------------------------------- /Scripts/file_manager.gd: -------------------------------------------------------------------------------- 1 | class_name FileManager 2 | extends Node2D 3 | 4 | @onready var Code: CodeEdit = %Code; 5 | @onready var file_dialog = %FileDialog 6 | @onready var canvas_layer: CanvasLayer = $CanvasLayer 7 | const NOTICE = preload("res://Scenes/notice.tscn") 8 | 9 | var current_file: String; 10 | var current_dir: String = "/"; 11 | 12 | var time_start = 0 13 | var time_now = 0 14 | 15 | func _ready(): 16 | print(OS.get_cmdline_args()) 17 | if LuaSingleton.discord_sdk: 18 | DiscordSDK.app_id = 1220393467738591242 # Application ID 19 | 20 | DiscordSDK.large_image = "griddycode" # Image key from "Art Assets" 21 | DiscordSDK.large_image_text = "https://github.com/face-hh/griddycode" 22 | DiscordSDK.start_timestamp = int(Time.get_unix_time_from_system()) 23 | var running_on_gaming_os = OS.get_name() == "Windows" 24 | if running_on_gaming_os: 25 | current_dir = "C:/" 26 | 27 | var args = OS.get_cmdline_args() 28 | var is_debug = OS.is_debug_build() 29 | var path = [] 30 | 31 | # in order to be compatible with the gayming OS... 32 | var pwd_cmd = "pwd" 33 | # I didn't know that godot doesn't execute 34 | # commands within batch on Windows... 35 | var exec_args = [] 36 | 37 | if running_on_gaming_os: 38 | # running "cd" (in batch) without any args will only print the path 39 | pwd_cmd = "cmd.exe" 40 | exec_args.append("/C") 41 | exec_args.append("cd") 42 | 43 | OS.execute(pwd_cmd, exec_args, path) 44 | 45 | if running_on_gaming_os: 46 | # EWW GROSS 47 | # why are we still using CRLF? 48 | path[0] = path[0].replace("\r", "") 49 | path = path[0].replace("\n", "") 50 | 51 | if args.size() > 0: 52 | if args[0] != ".": 53 | current_file = path + "/" + args[0] 54 | current_dir = path 55 | 56 | var is_cli = args.size() > 0 57 | print("INFO: Running inside CLI mode: ", is_cli) 58 | 59 | inject_lua() 60 | check_for_reserved() 61 | 62 | load_game(is_cli) 63 | open_file(current_file) 64 | 65 | LuaSingleton.themes = list_themes() 66 | 67 | LuaSingleton.setup_extension(current_file.split(".")[-1]) 68 | LuaSingleton.setup_theme(LuaSingleton.theme) 69 | 70 | file_dialog.setup() 71 | 72 | if !current_file: 73 | LuaSingleton.setup_discord_sdk("Idle", "") 74 | Code.toggle(%FileDialog) 75 | warn("Welcome to [color=#c9daf8]Bussin[/color] [color=#85c6ff]GriddyCode[/color]! Please select a file, then press CTRL + I to get started! :D") 76 | 77 | func check_for_reserved() -> void: 78 | var folders = ["langs", "themes"] 79 | 80 | for folder in folders: 81 | if !DirAccess.dir_exists_absolute(folder): 82 | DirAccess.make_dir_recursive_absolute("user://" + folder) 83 | 84 | func _on_file_dialog_file_selected(path: String) -> void: 85 | open_file(path) 86 | 87 | func inject_lua() -> void: 88 | DirAccess.make_dir_absolute("user://themes") 89 | DirAccess.make_dir_absolute("user://langs") 90 | 91 | var themes = DirAccess.open("res://Lua/Themes").get_files() 92 | var plugins = DirAccess.open("res://Lua/Plugins").get_files() 93 | 94 | for theme in themes: 95 | copy_if_not_exist("themes", "Themes", theme) 96 | for plugin in plugins: 97 | copy_if_not_exist("langs", "Plugins", plugin) 98 | 99 | func copy_from_res(from: String, to: String) -> void: 100 | var file_from = FileAccess.open(from, FileAccess.READ) 101 | var file_to = FileAccess.open(to, FileAccess.WRITE) 102 | file_to.store_buffer(file_from.get_buffer(file_from.get_length())) 103 | file_to = null 104 | file_from = null 105 | 106 | func copy_if_not_exist(user_path: String, res_path: String, file: String) -> void: 107 | if !file.contains("lua"): return 108 | 109 | var path = "user://" + user_path + "/" + file; 110 | var current_path = "res://Lua/" + res_path + "/" + file; 111 | 112 | DirAccess.remove_absolute(path) 113 | copy_from_res(current_path, path) 114 | 115 | func warn(notice: String) -> void: 116 | var node = NOTICE.instantiate() 117 | 118 | canvas_layer.add_child(node) 119 | 120 | node.set_notice(notice) 121 | 122 | get_tree().create_timer(5).timeout.connect(func(): 123 | node.queue_free() 124 | ) 125 | 126 | func open_file(path: String) -> void: 127 | LuaSingleton.setup_discord_sdk("Editing " + path.split("/")[-1], "In " + current_dir.split("/")[-1]) 128 | 129 | var src = Fs._load(path) 130 | 131 | Code.text = src 132 | 133 | current_file = path; 134 | 135 | func list_themes() -> Array: 136 | var themes_folder = DirAccess.open("user://themes"); 137 | 138 | var curated = []; 139 | 140 | for theme_file in themes_folder.get_files(): 141 | curated.append(theme_file.replace(".lua", "")) 142 | 143 | return curated; 144 | 145 | func get_property_value(settings: Array) -> Array: 146 | var out := [] 147 | for setting in settings: 148 | out.append({ "property": setting.property, "value": setting.value }) 149 | return out 150 | 151 | func _notification(what): 152 | if what == NOTIFICATION_WM_CLOSE_REQUEST: 153 | var save_dict = { 154 | "current_file": current_file, 155 | "current_dir": current_dir, 156 | "settings": get_property_value(LuaSingleton.settings), 157 | "theme": LuaSingleton.theme 158 | } 159 | 160 | save_data(save_dict) 161 | Fs.save(current_file, Code.text) 162 | 163 | get_tree().quit() 164 | if what == MainLoop.NOTIFICATION_APPLICATION_FOCUS_OUT: 165 | Fs.save(current_file, Code.text) 166 | # ^^ you usually defocus when you want to run the code, so saving is needed 167 | 168 | func save_data(dict: Dictionary): 169 | var save_game = FileAccess.open("user://data.save", FileAccess.WRITE) 170 | 171 | var json_string = JSON.stringify(dict) 172 | 173 | save_game.store_line(json_string) 174 | 175 | func load_game(cli: bool = false): 176 | if not FileAccess.file_exists("user://data.save"): 177 | return # Error! We don't have a save to load. 178 | 179 | var save_game = FileAccess.open("user://data.save", FileAccess.READ) 180 | while save_game.get_position() < save_game.get_length(): 181 | var json_string = save_game.get_line() 182 | 183 | var json = JSON.new() 184 | 185 | var parse_result = json.parse(json_string) 186 | if not parse_result == OK: 187 | print("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line()) 188 | continue 189 | 190 | var node_data = json.get_data() 191 | 192 | if !cli: 193 | current_dir = node_data["current_dir"] 194 | current_file = node_data["current_file"] 195 | 196 | LuaSingleton.theme = node_data["theme"] 197 | 198 | var settings = node_data["settings"] 199 | 200 | for dic: Dictionary in settings: 201 | LuaSingleton.handle_internal_setting_change(dic.property, dic.value) 202 | 203 | var index = LuaSingleton.get_setting(dic.property)[1] 204 | 205 | if index == -1: 206 | print("WARNING: Omitted setting \"%s\" due to finding operation failing." % dic.property) 207 | return 208 | 209 | LuaSingleton.settings[index].value = dic.value 210 | 211 | LuaSingleton.on_settings_change.emit() 212 | 213 | 214 | func _on_auto_save_timer_timeout(): 215 | if !current_file: return 216 | if !Code.file_modified: return 217 | 218 | Fs.save(current_file, Code.text) 219 | Code.file_modified = false; 220 | 221 | func preview_theme(index: int) -> void: 222 | var theme_picker: OptionButton = %ThemeChooser 223 | var theme = theme_picker.get_item_text(index) 224 | 225 | LuaSingleton.setup_theme(theme) 226 | LuaSingleton.on_settings_change.emit() 227 | 228 | func _on_theme_chooser_item_focused(index): 229 | preview_theme(index) 230 | 231 | 232 | func _on_theme_chooser_item_selected(index): 233 | preview_theme(index) 234 | LuaSingleton.theme = %ThemeChooser.get_item_text(index) 235 | -------------------------------------------------------------------------------- /Scripts/fs.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | func save(path: String, content: String) -> void: 4 | var file = FileAccess.open(path, FileAccess.WRITE) 5 | if !file: return 6 | file.store_string(content) 7 | 8 | func _load(path: String) -> String: 9 | var file = FileAccess.get_file_as_string(path) 10 | return file 11 | -------------------------------------------------------------------------------- /Scripts/hyperlink.gd: -------------------------------------------------------------------------------- 1 | extends RichTextLabel 2 | 3 | 4 | func _ready(): 5 | meta_clicked.connect(func(meta) -> void: OS.shell_open(meta)); 6 | -------------------------------------------------------------------------------- /Scripts/icons.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | const ICONS = [ 4 | { 5 | "extensions": ["rs"], 6 | "icon": "", 7 | "color": "#f74c00" 8 | }, 9 | { 10 | "extensions": ["py"], 11 | "icon": "", 12 | "color": "#f74c00" 13 | }, 14 | { 15 | "extensions": ["js"], 16 | "icon": "", 17 | "color": "#f7df1e" 18 | }, 19 | { 20 | "extensions": ["html"], 21 | "icon": "", 22 | "color": "#e34c26" 23 | }, 24 | { 25 | "extensions": ["css"], 26 | "icon": "", 27 | "color": "#2965f1" 28 | }, 29 | { 30 | "extensions": ["go"], 31 | "icon": "", 32 | "color": "#00aeda" 33 | }, 34 | { 35 | "extensions": ["java"], 36 | "icon": "", 37 | "color": "#f89820" 38 | }, 39 | { 40 | "extensions": ["c"], 41 | "icon": "", 42 | "color": "#659bd3" 43 | }, 44 | { 45 | "extensions": ["cpp"], 46 | "icon": "", 47 | "color": "#659bd3" 48 | }, 49 | { 50 | "extensions": ["rb"], 51 | "icon": "", 52 | "color": "#cc341f" 53 | }, 54 | { 55 | "extensions": ["php"], 56 | "icon": "", 57 | "color": "#787cb4" 58 | }, 59 | { 60 | "extensions": ["swift"], 61 | "icon": "", 62 | "color": "#f05035" 63 | }, 64 | { 65 | "extensions": ["dart"], 66 | "icon": "", 67 | "color": "#2cb7f6" 68 | }, 69 | { 70 | "extensions": ["scala"], 71 | "icon": "", 72 | "color": "#df311e" 73 | }, 74 | { 75 | "extensions": ["lua"], 76 | "icon": "", 77 | "color": "#000081" 78 | }, 79 | { 80 | "extensions": ["ts", "tsx"], 81 | "icon": "", 82 | "color": "#2d79c7" 83 | }, 84 | { 85 | "extensions": ["bash", "sh", "zsh", "fish"], 86 | "icon": "", 87 | "color": "#3e474a" 88 | }, 89 | { 90 | "extensions": ["cs"], 91 | "icon": "", 92 | "color": "#a27add" 93 | }, 94 | { 95 | "extensions": ["hs"], 96 | "icon": "", 97 | "color": "#5e4f87" 98 | }, 99 | { 100 | "extensions": ["clj"], 101 | "icon": "", 102 | "color": "#92dd45" 103 | }, 104 | { 105 | "extensions": ["ex"], 106 | "icon": "", 107 | "color": "#553366" 108 | }, 109 | { 110 | "extensions": ["erl"], 111 | "icon": "", 112 | "color": "#a90533" 113 | }, 114 | { 115 | "extensions": ["coffee"], 116 | "icon": "", 117 | "color": "#29334c" 118 | }, 119 | { 120 | "extensions": ["jsx", "react"], 121 | "icon": "", 122 | "color": "#087ea4" 123 | }, 124 | { 125 | "extensions": ["vue"], 126 | "icon": "", 127 | "color": "#3fb984" 128 | }, 129 | { 130 | "extensions": ["ng"], 131 | "icon": "", 132 | "color": "#de002d" 133 | }, 134 | { 135 | "extensions": ["svelte"], 136 | "icon": "", 137 | "color": "#ff3e00" 138 | }, 139 | { 140 | "extensions": ["docker"], 141 | "icon": "", 142 | "color": "#1d63ed" 143 | }, 144 | { 145 | "extensions": ["tf"], 146 | "icon": "", 147 | "color": "#31a8ff" 148 | }, 149 | { 150 | "extensions": ["json"], 151 | "icon": "", 152 | "color": "#f7df1e" 153 | }, 154 | { 155 | "extensions": ["xml"], 156 | "icon": "󰗀", 157 | "color": "#f29c1f" 158 | }, 159 | { 160 | "extensions": ["md"], 161 | "icon": "", 162 | "color": "#435761" 163 | }, 164 | { 165 | "extensions": ["ini", "cfg", "toml", "bat", "cmd", "vbs", "vba", "reg", "yml", "yaml", "log"], 166 | "icon": "", 167 | "color": "#575757" 168 | }, 169 | { 170 | "extensions": ["sql", "sqlite", "mysql", "psql", "mongo", "redis", "cassandra", "hbase", "oracle", "db2", "sybase", "informix", "teradata", "netezza", "greenplum", "vertica", "redshift", "snowflake", "bigquery"], 171 | "icon": "", 172 | "color": "#d47131" 173 | }, 174 | { 175 | "extensions": ["lock"], 176 | "icon": "", 177 | "color": "#575757" 178 | } 179 | ] 180 | 181 | func get_icon_data(extension: String) -> Dictionary: 182 | for icon in ICONS: 183 | if extension in icon["extensions"]: 184 | return icon 185 | return { "extensions": ["*"], "icon": "󰈔", "color": "#ffffff" } 186 | -------------------------------------------------------------------------------- /Scripts/music.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | const ES_SOCIAL_FEEDIA___HEYSON = preload("res://Music/ES_Social Feedia - Heyson.wav") 4 | 5 | @onready var audio_stream_player: AudioStreamPlayer = $/root/Editor/AudioStreamPlayer 6 | @onready var timer: Timer = $/root/Editor/AudioTimer 7 | @onready var audio_spectrum_analyzer_instance: AudioEffectSpectrumAnalyzerInstance = AudioServer.get_bus_effect_instance(0, 0) 8 | 9 | @onready var cam: Camera = $/root/Editor/Misc/Cam 10 | 11 | var music_move_intensity: float = 1; 12 | 13 | var enabled: bool = false; 14 | 15 | var SONGS = [ES_SOCIAL_FEEDIA___HEYSON]; 16 | 17 | func _ready(): 18 | play_random_song() 19 | 20 | audio_stream_player.finished.connect(play_random_song) 21 | 22 | timer.timeout.connect(play_effects) 23 | 24 | func play_random_song() -> void: 25 | if !enabled: return 26 | timer.stop() 27 | 28 | var song = SONGS.pick_random() 29 | 30 | audio_stream_player.stream = song 31 | audio_stream_player.play() 32 | timer.start() 33 | 34 | func find_volume(): 35 | var volume = audio_spectrum_analyzer_instance.get_magnitude_for_frequency_range(0.0, 20000, AudioEffectSpectrumAnalyzerInstance.MAGNITUDE_MAX).length() 36 | return volume 37 | 38 | func play_effects() -> void: 39 | if !enabled: return timer.stop() 40 | var res = find_volume() 41 | 42 | cam.focus_temp(res * music_move_intensity * 10) 43 | 44 | func set_volume(value: float) -> void: 45 | var clampedVolume = clamp(value, 0, 100) 46 | var decibels = lerp(-100, -30, 1 - (1 - clampedVolume / 100.0) ** 2) 47 | 48 | audio_stream_player.volume_db = decibels 49 | 50 | func set_enabled(value: bool) -> void: 51 | enabled = value; 52 | 53 | if !value: 54 | audio_stream_player.stop() 55 | else: 56 | play_random_song() 57 | -------------------------------------------------------------------------------- /Scripts/notice.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | @onready var rich_text_label: RichTextLabel = $RichTextLabel 3 | 4 | func set_notice(notice: String) -> void: 5 | rich_text_label.text = notice 6 | -------------------------------------------------------------------------------- /Scripts/settings_list.gd: -------------------------------------------------------------------------------- 1 | extends VBoxContainer 2 | 3 | const SETTING = preload("res://Scenes/setting.tscn") 4 | const UPDATE = preload("res://Scenes/update.tscn") 5 | 6 | # Called when the node enters the scene tree for the first time. 7 | func _ready(): 8 | await LuaSingleton.on_theme_load; 9 | 10 | setup_settings() 11 | 12 | LuaSingleton.on_settings_change.connect(setup_settings); 13 | 14 | func setup_settings() -> void: 15 | for child in get_children(): 16 | child.queue_free() 17 | 18 | for setting in LuaSingleton.settings: 19 | var unit = setting.unit if setting.has("unit") else ""; 20 | var _min = setting.min if setting.has("min") else 0; 21 | var _max = setting.max if setting.has("max") else 0; 22 | var precision = setting.precision if setting.has("precision") else false; 23 | 24 | create_setting(setting.display, setting.icon, setting.value, setting.options, setting.property, unit, _min, _max, precision) 25 | 26 | var child = UPDATE.instantiate() 27 | 28 | add_child(child) 29 | 30 | func create_setting(text: String, icon: String, value: Variant, options: Array, property: String, unit: String, _min: float, _max: float, precision: bool) -> void: 31 | var node = SETTING.instantiate() 32 | 33 | add_child(node) 34 | 35 | var label: RichTextLabel = node.get_node("Control/RichTextLabel"); 36 | 37 | var slider: HSlider = node.get_node("Control2/HSlider") 38 | var checkbutton: CheckButton = node.get_node("Control2/CheckButton"); 39 | var value_label: RichTextLabel = node.get_node("Control4/Value"); 40 | var dropdown: OptionButton = node.get_node("Control5/OptionButton"); 41 | 42 | label.add_theme_color_override("default_color", LuaSingleton.gui.font_color); 43 | value_label.add_theme_color_override("default_color", LuaSingleton.gui.font_color); 44 | 45 | label.clear() 46 | 47 | label.push_color(LuaSingleton.keywords.values().pick_random()) 48 | label.add_text(icon) 49 | label.pop() 50 | 51 | label.add_text(" %s" % text) 52 | 53 | if !precision: 54 | slider.step = 1 55 | 56 | slider.max_value = _max 57 | slider.min_value = _min 58 | 59 | checkbutton.hide() 60 | slider.hide() 61 | dropdown.hide() 62 | value_label.hide() 63 | 64 | if typeof(value) == Variant.Type.TYPE_BOOL: 65 | checkbutton.show() 66 | 67 | checkbutton.button_pressed = value; 68 | elif options.size() != 0: 69 | dropdown.show() 70 | 71 | for option in options: 72 | dropdown.add_item(option.display) 73 | 74 | dropdown.selected = value; 75 | else: 76 | value_label.show() 77 | 78 | set_label(value_label, unit, value) 79 | 80 | slider.show() 81 | slider.value = value 82 | 83 | slider.value_changed.connect(_slider_value_change.bind(property, value_label, unit)) 84 | checkbutton.toggled.connect(_check_button_change.bind(property)) 85 | dropdown.item_selected.connect(_dropdown_change.bind(property)) 86 | 87 | func set_label(value_label: RichTextLabel, unit: String, value: float) -> void: 88 | value_label.clear() 89 | 90 | value_label.add_text(str(value) + " ") 91 | 92 | value_label.push_color(LuaSingleton.gui.selection_color) 93 | value_label.add_text(unit) 94 | value_label.pop() 95 | 96 | func _slider_value_change(value: float, property: String, value_label: RichTextLabel, unit: String) -> void: 97 | LuaSingleton.change_setting(property, value) 98 | 99 | set_label(value_label, unit, value) 100 | 101 | func _check_button_change(toggled_on: bool, property: String) -> void: 102 | LuaSingleton.change_setting(property, toggled_on) 103 | 104 | func _dropdown_change(index: int, property: String): 105 | LuaSingleton.change_setting(property, index) 106 | -------------------------------------------------------------------------------- /Scripts/theme_chooser.gd: -------------------------------------------------------------------------------- 1 | extends OptionButton 2 | 3 | @onready var editor: FileManager = $"../.." 4 | @onready var code = %Code 5 | 6 | var zoom: Vector2; 7 | 8 | func _ready(): 9 | await LuaSingleton.on_theme_load; 10 | 11 | for _theme in LuaSingleton.themes: 12 | add_item(_theme) 13 | 14 | selected = LuaSingleton.themes.find(LuaSingleton.theme) 15 | 16 | zoom = Vector2(1,1) 17 | -------------------------------------------------------------------------------- /Scripts/update.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | @onready var info: RichTextLabel = $RichTextLabel2 4 | @onready var current_version: RichTextLabel = $RichTextLabel 5 | 6 | var is_requesting = false; 7 | 8 | func _ready(): 9 | current_version.text = "Current version: " + LuaSingleton.version 10 | $HTTPRequest.request_completed.connect(_on_request_completed) 11 | 12 | func _on_button_pressed(): 13 | if is_requesting: return 14 | 15 | $HTTPRequest.request("https://api.github.com/repos/face-hh/griddycode/releases/latest") 16 | is_requesting = true 17 | 18 | info.show() 19 | 20 | info.text = "Loading..." 21 | 22 | func _on_request_completed(_result, _response_code, _headers, body): 23 | info.clear() 24 | 25 | var json = JSON.parse_string(body.get_string_from_utf8()) 26 | if !is_higher_version(json["name"]): 27 | info.text = "Nothing new, you're up to date! 🦗" 28 | else: 29 | info.text = "Great, [color=green]%s[/color] is available! Head over to [url=https://github.com/face-hh/griddycode/releases]our GitHub repository[/url] to download it! 🎉" % json["name"] 30 | 31 | info.show() 32 | 33 | is_requesting = false 34 | 35 | get_tree().create_timer(10).timeout.connect(info.hide) 36 | 37 | func is_higher_version(new_version: String) -> bool: 38 | var current_components = LuaSingleton.version.replace("v", "").split(".") 39 | var new_components = new_version.replace("v", "").split(".") 40 | 41 | for i in range(3): 42 | var current_num = current_components[i] 43 | var new_num = new_components[i] 44 | 45 | if new_num > current_num: 46 | return true 47 | elif new_num < current_num: 48 | return false 49 | 50 | return false # Same version if we reach here 51 | -------------------------------------------------------------------------------- /Shaders/border_radius.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform float radius: hint_range(0., 1.) = 1; 4 | uniform bool animate = false; 5 | uniform float square_scale: hint_range(0., 1.) = 0.1; 6 | 7 | void fragment() { 8 | float sc = square_scale + square_scale/2.; 9 | float r = square_scale + (1. - radius) * (square_scale/2.); 10 | 11 | float scax = 1. - square_scale; 12 | 13 | float dx; 14 | float dy; 15 | float d; 16 | float a; 17 | 18 | if (UV.x < square_scale && UV.y > scax) { 19 | dx = square_scale - UV.x; 20 | dy = scax - UV.y; 21 | d = sqrt(pow(dx, 2.) + pow(dy, 2.)); 22 | a = asin(d); 23 | 24 | if (a > r) { 25 | if (!animate) { 26 | COLOR.a = 0.; 27 | } else if (a > sc * sin(3.14 * fract(TIME))) { 28 | COLOR.a = 0.; 29 | } 30 | } 31 | } 32 | 33 | if (UV.x < square_scale && UV.y < square_scale) { 34 | dx = square_scale - UV.x; 35 | dy = square_scale - UV.y; 36 | d = sqrt(pow(dx, 2.) + pow(dy, 2.)); 37 | a = asin(d); 38 | 39 | if (a > r) { 40 | if (!animate) { 41 | COLOR.a = 0.; 42 | } else if (a > sc * sin(3.14 * fract(TIME))) { 43 | COLOR.a = 0.; 44 | } 45 | } 46 | } 47 | 48 | if (UV.x > scax && UV.y < square_scale) { 49 | dx = scax - UV.x; 50 | dy = square_scale - UV.y; 51 | d = sqrt(pow(dx, 2.) + pow(dy, 2.)); 52 | a = asin(d); 53 | 54 | if (a > r) { 55 | if (!animate) { 56 | COLOR.a = 0.; 57 | } else if (a > sc * sin(3.14 * fract(TIME))) { 58 | COLOR.a = 0.; 59 | } 60 | } 61 | } 62 | 63 | if (UV.x > scax && UV.y > scax) { 64 | dx = scax - UV.x; 65 | dy = scax - UV.y; 66 | d = sqrt(pow(dx, 2.) + pow(dy, 2.)); 67 | a = asin(d); 68 | 69 | if (a > r) { 70 | if (!animate) { 71 | COLOR.a = 0.; 72 | } else if (a > sc * sin(3.14 * fract(TIME))) { 73 | COLOR.a = 0.; 74 | } 75 | } 76 | } 77 | } -------------------------------------------------------------------------------- /Shaders/circle_mask.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform float circle_size : hint_range(0.0, 1.0) = 0.4; 4 | uniform float ratio_width = 1.0; 5 | uniform float ratio_height = 1.0; 6 | 7 | void fragment() { 8 | float ratio = ratio_width / ratio_height; 9 | float dist = distance(vec2(0.5, 0.5), vec2(mix(0.5, UV.x, ratio), UV.y)); 10 | vec4 orig_color = texture(TEXTURE, UV); 11 | COLOR.rgb = orig_color.rgb; 12 | COLOR.a = (1.0 - step(circle_size, dist)) * orig_color.a; 13 | } -------------------------------------------------------------------------------- /Shaders/greenscreen.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform vec4 key_color : source_color = vec4(0,1,0,1); 4 | uniform float similarity : hint_range(0.0,1.0) = 0.4; 5 | uniform float smoothness : hint_range(0.00,1.0) = 0.08; 6 | uniform float spill : hint_range(0.0,1.0) = 0.1; 7 | 8 | // From https://github.com/libretro/glsl-shaders/blob/master/nnedi3/shaders/rgb-to-yuv.glsl 9 | vec2 RGBtoUV(vec3 rgb) { 10 | return vec2( 11 | rgb.r * -0.169 + rgb.g * -0.331 + rgb.b * 0.5 + 0.5, 12 | rgb.r * 0.5 + rgb.g * -0.419 + rgb.b * -0.081 + 0.5 13 | ); 14 | } 15 | 16 | vec4 ProcessChromaKey(sampler2D tex,vec2 texCoord) { 17 | vec4 rgba = texture(tex, texCoord); 18 | float chromaDist = distance(RGBtoUV(texture(tex, texCoord).rgb), RGBtoUV(key_color.rgb)); 19 | 20 | float baseMask = chromaDist - similarity; 21 | float fullMask = pow(clamp(baseMask / smoothness, 0., 1.), 1.5); 22 | rgba.a = fullMask; 23 | 24 | float spillVal = pow(clamp(baseMask / spill, 0., 1.), 1.5); 25 | float desat = clamp(rgba.r * 0.2126 + rgba.g * 0.7152 + rgba.b * 0.0722, 0., 1.); 26 | rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal); 27 | 28 | return rgba; 29 | } 30 | 31 | void fragment() { 32 | COLOR = ProcessChromaKey(TEXTURE, UV); 33 | } -------------------------------------------------------------------------------- /Shaders/sunlight.gdshader: -------------------------------------------------------------------------------- 1 | /* 2 | Shader from Godot Shaders - the free shader library. 3 | godotshaders.com/shader/god-rays 4 | 5 | Feel free to use, improve and change this shader according to your needs 6 | and consider sharing the modified result on godotshaders.com. 7 | */ 8 | 9 | shader_type canvas_item; 10 | 11 | uniform float angle = -0.125; 12 | uniform float position = 0.06; 13 | uniform float spread : hint_range(0.0, 1.0) = 0.565; 14 | uniform float cutoff : hint_range(-1.0, 1.0) = 0.15; 15 | uniform float falloff : hint_range(0.0, 1.0) = 0.12; 16 | uniform float edge_fade : hint_range(0.0, 1.0) = 0.185; 17 | 18 | uniform float speed = 1.055; 19 | uniform float ray1_density = 8.0; 20 | uniform float ray2_density = 30.0; 21 | uniform float ray2_intensity : hint_range(0.0, 1.0) = 0.17; 22 | 23 | uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap; 24 | 25 | uniform vec4 color : source_color = vec4(1.0, 0.9, 0.65, 0.3); 26 | 27 | uniform bool hdr = true; 28 | uniform float seed = 5.0; 29 | 30 | // Random and noise functions from Book of Shader's chapter on Noise. 31 | float random(vec2 _uv) { 32 | return fract(sin(dot(_uv.xy, 33 | vec2(12.9898, 78.233))) * 34 | 43758.5453123); 35 | } 36 | 37 | float noise (in vec2 uv) { 38 | vec2 i = floor(uv); 39 | vec2 f = fract(uv); 40 | 41 | // Four corners in 2D of a tile 42 | float a = random(i); 43 | float b = random(i + vec2(1.0, 0.0)); 44 | float c = random(i + vec2(0.0, 1.0)); 45 | float d = random(i + vec2(1.0, 1.0)); 46 | 47 | 48 | // Smooth Interpolation 49 | 50 | // Cubic Hermine Curve. Same as SmoothStep() 51 | vec2 u = f * f * (3.0-2.0 * f); 52 | 53 | // Mix 4 coorners percentages 54 | return mix(a, b, u.x) + 55 | (c - a)* u.y * (1.0 - u.x) + 56 | (d - b) * u.x * u.y; 57 | } 58 | 59 | mat2 rotate(float _angle){ 60 | return mat2(vec2(cos(_angle), -sin(_angle)), 61 | vec2(sin(_angle), cos(_angle))); 62 | } 63 | 64 | vec4 screen(vec4 base, vec4 blend){ 65 | return 1.0 - (1.0 - base) * (1.0 - blend); 66 | } 67 | 68 | void fragment() 69 | { 70 | 71 | // Rotate, skew and move the UVs 72 | vec2 transformed_uv = ( rotate(angle) * (UV - position) ) / ( (UV.y + spread) - (UV.y * spread) ); 73 | 74 | // Animate the ray according the the new transformed UVs 75 | vec2 ray1 = vec2(transformed_uv.x * ray1_density + sin(TIME * 0.1 * speed) * (ray1_density * 0.2) + seed, 1.0); 76 | vec2 ray2 = vec2(transformed_uv.x * ray2_density + sin(TIME * 0.2 * speed) * (ray1_density * 0.2) + seed, 1.0); 77 | 78 | // Cut off the ray's edges 79 | float cut = step(cutoff, transformed_uv.x) * step(cutoff, 1.0 - transformed_uv.x); 80 | ray1 *= cut; 81 | ray2 *= cut; 82 | 83 | // Apply the noise pattern (i.e. create the rays) 84 | float rays; 85 | 86 | if (hdr){ 87 | // This is not really HDR, but check this to not clamp the two merged rays making 88 | // their values go over 1.0. Can make for some nice effect 89 | rays = noise(ray1) + (noise(ray2) * ray2_intensity); 90 | } 91 | else{ 92 | rays = clamp(noise(ray1) + (noise(ray2) * ray2_intensity), 0., 1.); 93 | } 94 | 95 | // Fade out edges 96 | rays *= smoothstep(0.0, falloff, (1.0 - UV.y)); // Bottom 97 | rays *= smoothstep(0.0 + cutoff, edge_fade + cutoff, transformed_uv.x); // Left 98 | rays *= smoothstep(0.0 + cutoff, edge_fade + cutoff, 1.0 - transformed_uv.x); // Right 99 | 100 | // Color to the rays 101 | vec3 shine = vec3(rays) * color.rgb; 102 | 103 | // Try different blending modes for a nicer effect. "Screen" is included in the code, 104 | // but take a look at https://godotshaders.com/snippet/blending-modes/ for more. 105 | // With "Screen" blend mode: 106 | shine = screen(texture(SCREEN_TEXTURE, SCREEN_UV), vec4(color)).rgb; 107 | 108 | COLOR = vec4(shine, rays * color.a); 109 | } -------------------------------------------------------------------------------- /Tools/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "Rust" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | rodio = "0.17.3" 10 | -------------------------------------------------------------------------------- /Tools/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::path::Path; 2 | use rodio::{Decoder}; 3 | use rodio::Source; 4 | 5 | fn analyze_volume(path: &str) -> Option> { 6 | // Load the MP3 file 7 | let file = std::fs::File::open(Path::new(path)).ok().unwrap(); 8 | let mut decoder = Decoder::new(std::io::BufReader::new(file)).ok().unwrap(); 9 | 10 | let mut volume_data = Vec::new(); 11 | 12 | let duration = decoder.total_duration().unwrap().as_secs_f64(); 13 | 14 | let samples_per_second = (decoder.channels() as u64 * decoder.sample_rate() as u64) as f64; 15 | 16 | let samples_per_interval = samples_per_second as f64 * 0.5; // iterate over 0.5 second intervals 17 | 18 | let samples = (duration * 2.0).ceil() as i64; // count in 0.5 second intervals 19 | 20 | for i in 0..samples { 21 | let mut sum = 0.0; 22 | let mut count = 0; 23 | 24 | for _ in 0..(samples_per_interval as i64) { 25 | if let Some(sample) = decoder.next() { 26 | let value = sample as i64; 27 | sum += value.abs() as f64; 28 | count += 1; 29 | } else { 30 | break; 31 | } 32 | } 33 | 34 | if count > 0 { 35 | let volume = sum / count as f64; 36 | 37 | volume_data.push(( 38 | (i as f64) / 2.0, // convert back to seconds 39 | volume as f32, 40 | )); 41 | } else { 42 | break; 43 | } 44 | } 45 | 46 | // normalize to 0-1 47 | let mut max = 0.0; 48 | for (_, vol) in volume_data.iter() { 49 | if max == 0.0 { max = *vol }; 50 | 51 | if vol > &max { max = *vol }; 52 | } 53 | 54 | for (_, vol) in volume_data.iter_mut() { 55 | *vol /= max 56 | } 57 | 58 | Some(volume_data) 59 | } 60 | 61 | fn main() { 62 | let args: Vec = std::env::args().collect(); 63 | if args.len() > 1 { 64 | let path = &args[1]; 65 | println!("["); 66 | for item in analyze_volume(path).unwrap().iter() { 67 | print!("{{ \"timestamp\": {:?}, \"volume\": {:?} }},", item.0, item.1) 68 | } 69 | println!("]"); 70 | } else { 71 | println!("Please provide a path as an argument."); 72 | } 73 | } 74 | 75 | // WARNING: This only supports "wav" files. MP3s will panic on unwrap. -------------------------------------------------------------------------------- /Videos/jumping_cat.ogv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/Videos/jumping_cat.ogv -------------------------------------------------------------------------------- /addons/discord-sdk-gd/Debug.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/Debug.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ufh1hha1ehui" 6 | path="res://.godot/imported/Debug.svg-97b25f5d09dbf04212867cd1a46cf368.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/discord-sdk-gd/Debug.svg" 14 | dest_files=["res://.godot/imported/Debug.svg-97b25f5d09dbf04212867cd1a46cf368.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/Logo_V2_No_Bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/Logo_V2_No_Bg.png -------------------------------------------------------------------------------- /addons/discord-sdk-gd/Logo_V2_No_Bg.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://csl0e2px0cwc1" 6 | path="res://.godot/imported/Logo_V2_No_Bg.png-9c8178062d6891c8370df63a912bd8e2.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/discord-sdk-gd/Logo_V2_No_Bg.png" 14 | dest_files=["res://.godot/imported/Logo_V2_No_Bg.png-9c8178062d6891c8370df63a912bd8e2.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/READ_ME_PLEASE.txt: -------------------------------------------------------------------------------- 1 | MINIMUM GODOT VERSION: 4.2 2 | 3 | PLEASE ACTIVATE THE PLUGIN UNDER Project -> Project Settings... -> Plugins -> DiscordSDK -> Status 4 | IGNORE THE RED ERRORS ON THE FIRST 2 RESTARTS 5 | READ THE TUTORIAL LINKED IN THE WINDOW THAT WILL OPEN ON PLUGIN ENABLE 6 | 7 | If nothing works, enable the plugin and delete /addons/discord-sdk-gd/bin/.gdignore 8 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/discord-rpc-gd.gdextension: -------------------------------------------------------------------------------- 1 | [configuration] 2 | 3 | entry_symbol = "discordsdkgd_library_init" 4 | compatibility_minimum = 4.1 5 | 6 | [libraries] 7 | 8 | macos.debug = "macos/libdiscord_game_sdk_binding_debug.dylib" 9 | macos.release = "macos/libdiscord_game_sdk_binding.dylib" 10 | windows.debug.x86_64 = "windows/discord_game_sdk_binding_debug.dll" 11 | windows.release.x86_64 = "windows/discord_game_sdk_binding.dll" 12 | linux.debug.x86_64 = "linux/libdiscord_game_sdk_binding_debug.so" 13 | linux.release.x86_64 = "linux/libdiscord_game_sdk_binding.so" 14 | linux.debug.arm64 = "linux/libdiscord_game_sdk_binding_debug.so" 15 | linux.release.arm64 = "linux/libdiscord_game_sdk_binding.so" 16 | linux.debug.rv64 = "linux/libdiscord_game_sdk_binding_debug.so" 17 | linux.release.rv64 = "linux/libdiscord_game_sdk_binding.so" 18 | 19 | [dependencies] 20 | 21 | macos = { "macos/libdiscord_game_sdk.dylib": "" } 22 | windows.debug.x86_64 = { "windows/discord_game_sdk.dll": "" } 23 | windows.release.x86_64 = { "windows/discord_game_sdk.dll": "" } 24 | linux.debug.x86_64 = { "linux/libdiscord_game_sdk.so": "" } 25 | linux.release.x86_64 = { "linux/libdiscord_game_sdk.so": "" } 26 | linux.debug.arm64 = { "linux/libdiscord_game_sdk.so": "" } 27 | linux.release.arm64 = { "linux/libdiscord_game_sdk.so": "" } 28 | linux.debug.rv64 = { "linux/libdiscord_game_sdk.so": "" } 29 | linux.release.rv64 = { "linux/libdiscord_game_sdk.so": "" } 30 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/linux/libdiscord_game_sdk.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/linux/libdiscord_game_sdk.so -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/linux/libdiscord_game_sdk_binding.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/linux/libdiscord_game_sdk_binding.so -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/linux/libdiscord_game_sdk_binding_debug.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/linux/libdiscord_game_sdk_binding_debug.so -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk.dylib -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk_binding.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk_binding.dylib -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk_binding_debug.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk_binding_debug.dylib -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/windows/discord_game_sdk.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/windows/discord_game_sdk.dll -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll -------------------------------------------------------------------------------- /addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll -------------------------------------------------------------------------------- /addons/discord-sdk-gd/example.gd: -------------------------------------------------------------------------------- 1 | class_name DiscordSDKTutorial 2 | extends Node 3 | 4 | ## 1. Put the addons/ folder in your Godot project[br] 5 | ## 2. Enable the addon in your Project Settings under "Plugins" and "DiscordSDK". [br](if it doesn't show up restart your project and try again)[br] 6 | ## 3. Restart your project[br] 7 | ## 4. Create an Application under https://discord.com/developers/applications and get the Application ID br] 8 | ## 5. (optional) Set images under "Rich Presence" and "Art Assets" and remember the keys[br] 9 | ## 10 | ## This is your [code]_ready()[/code] function wich could be anywhere 11 | ## [codeblock] 12 | ## func _ready(): 13 | ## # Application ID 14 | ## DiscordSDK.app_id = 1099618430065324082 15 | ## # this is boolean if everything worked 16 | ## print("Discord working: " + str(DiscordSDK.get_is_discord_working())) 17 | ## # Set the first custom text row of the activity here 18 | ## DiscordSDK.details = "A demo activity by vaporvee#1231" 19 | ## # Set the second custom text row of the activity here 20 | ## DiscordSDK.state = "Checkpoint 23/23" 21 | ## # Image key for small image from "Art Assets" from the Discord Developer website 22 | ## DiscordSDK.large_image = "game" 23 | ## # Tooltip text for the large image 24 | ## DiscordSDK.large_image_text = "Try it now!" 25 | ## # Image key for large image from "Art Assets" from the Discord Developer website 26 | ## DiscordSDK.small_image = "boss" 27 | ## # Tooltip text for the small image 28 | ## DiscordSDK.small_image_text = "Fighting the end boss! D:" 29 | ## # "02:41 elapsed" timestamp for the activity 30 | ## DiscordSDK.start_timestamp = int(Time.get_unix_time_from_system()) 31 | ## # "59:59 remaining" timestamp for the activity 32 | ## DiscordSDK.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 33 | ## # Always refresh after changing the values! 34 | ## DiscordSDK.refresh() 35 | ## [/codeblock] 36 | ## 37 | ## @tutorial(More information here): https://github.com/vaporvee/discord-sdk-godot/wiki/Quick-start 38 | ## @tutorial(Make your Application ID and else here): https://discord.com/developers/applications 39 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/discord-sdk-gd/logo.png -------------------------------------------------------------------------------- /addons/discord-sdk-gd/logo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://csl0e2px0cwc1" 6 | path="res://.godot/imported/logo.png-b59b4861dc0c64616d78af30082b08b5.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/discord-sdk-gd/logo.png" 14 | dest_files=["res://.godot/imported/logo.png-b59b4861dc0c64616d78af30082b08b5.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/nodes/assets/Checked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/nodes/assets/Checked.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dnfq6kug4x6o2" 6 | path="res://.godot/imported/Checked.svg-152467b95b56fa0b9944b5cc25700916.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/discord-sdk-gd/nodes/assets/Checked.svg" 14 | dest_files=["res://.godot/imported/Checked.svg-152467b95b56fa0b9944b5cc25700916.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/nodes/assets/Unchecked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/nodes/assets/Unchecked.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://compmm3kviqqe" 6 | path="res://.godot/imported/Unchecked.svg-91cff67e13e7a1508fbc6a949f5f5f52.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/discord-sdk-gd/nodes/assets/Unchecked.svg" 14 | dest_files=["res://.godot/imported/Unchecked.svg-91cff67e13e7a1508fbc6a949f5f5f52.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/nodes/assets/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/nodes/assets/circle.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dtc6ckladq0td" 6 | path="res://.godot/imported/circle.svg-ca71b895eb1c5e7e6f2f2afe081d28dd.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/discord-sdk-gd/nodes/assets/circle.svg" 14 | dest_files=["res://.godot/imported/circle.svg-ca71b895eb1c5e7e6f2f2afe081d28dd.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/nodes/debug.gd: -------------------------------------------------------------------------------- 1 | ## This is a Debug Node wich will show some usefull info and buttons/input 2 | ## 3 | ## The DiscordSDK Debug Node will show info about the current values of its variables and some buttons to change them. 4 | ## 5 | ## @tutorial: https://github.com/vaporvee/discord-sdk-godot/wiki 6 | @tool 7 | extends Node 8 | 9 | func _ready() -> void: 10 | const DebugNodeGroup: PackedScene = preload("res://addons/discord-sdk-gd/nodes/Debug.tscn") 11 | add_child(DebugNodeGroup.instantiate()) 12 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/nodes/discord_autoload.gd: -------------------------------------------------------------------------------- 1 | ## This is a GDscript Node wich gets automatically added as Autoload while installing the addon. 2 | ## 3 | ## It can run in the background to comunicate with Discord. 4 | ## You don't need to use it. If you remove it make sure to run [code]DiscordSDK.run_callbacks()[/code] in a [code]_process[/code] function. 5 | ## 6 | ## @tutorial: https://github.com/vaporvee/discord-sdk-godot/wiki 7 | extends Node 8 | 9 | func _ready() -> void: 10 | pass 11 | 12 | func _process(_delta) -> void: 13 | DiscordSDK.run_callbacks() 14 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/plugin.cfg: -------------------------------------------------------------------------------- 1 | [plugin] 2 | 3 | name="DiscordSDK" 4 | description="Discord Game SDK support for GDScript in Godot" 5 | author="vaporvee" 6 | version="1.2.0" 7 | script="plugin.gd" 8 | -------------------------------------------------------------------------------- /addons/discord-sdk-gd/plugin.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends EditorPlugin 3 | 4 | const DiscordSDKDebug = preload("res://addons/discord-sdk-gd/nodes/debug.gd") 5 | const DiscordSDKDebug_icon = preload("res://addons/discord-sdk-gd/Debug.svg") 6 | var loaded_DiscordSDKDebug = DiscordSDKDebug.new() 7 | var restart_window: ConfirmationDialog = preload("res://addons/discord-sdk-gd/restart_window.tscn").instantiate() 8 | var plugin_cfg: ConfigFile = ConfigFile.new() 9 | const plugin_data_filename = "/plugin_data.cfg" 10 | 11 | func _enter_tree() -> void: 12 | add_custom_type("DiscordSDKDebug","Node",DiscordSDKDebug,DiscordSDKDebug_icon) 13 | get_editor_interface().get_editor_settings().settings_changed.connect(_on_editor_settings_changed) 14 | 15 | func _ready() -> void: 16 | await get_tree().create_timer(0.5).timeout 17 | plugin_cfg.load(get_editor_interface().get_editor_paths().get_data_dir() + plugin_data_filename) 18 | if !get_editor_interface().get_editor_settings().has_setting("DiscordSDK/EditorPresence/enabled"): 19 | get_editor_interface().get_editor_settings().set_setting("DiscordSDK/EditorPresence/enabled",plugin_cfg.get_value("Discord","editor_presence",false)) 20 | 21 | func _exit_tree(): 22 | if get_editor_interface().get_editor_settings().has_setting("DiscordSDK/EditorPresence/enabled"): 23 | get_editor_interface().get_editor_settings().erase("DiscordSDK/EditorPresence/enabled") 24 | 25 | func _enable_plugin() -> void: 26 | if FileAccess.file_exists(ProjectSettings.globalize_path("res://") + "addons/discord-sdk-gd/bin/.gdignore"): 27 | DirAccess.remove_absolute(ProjectSettings.globalize_path("res://") + "addons/discord-sdk-gd/bin/.gdignore") 28 | add_autoload_singleton("DiscordSDKLoader","res://addons/discord-sdk-gd/nodes/discord_autoload.gd") 29 | restart_window.connect("confirmed", save_no_restart) 30 | restart_window.connect("canceled", save_and_restart) 31 | get_editor_interface().popup_dialog_centered(restart_window) 32 | print("IGNORE RED ERROR MESSAGES BEFORE THE SECOND RESTART!") 33 | 34 | func _disable_plugin() -> void: 35 | remove_autoload_singleton("DiscordSDKLoader") 36 | FileAccess.open("res://addons/discord-sdk-gd/bin/.gdignore",FileAccess.WRITE) 37 | remove_custom_type("DiscordSDKDebug") 38 | get_editor_interface().get_editor_settings().erase("DiscordSDK/EditorPresence/enabled") 39 | push_warning("Please restart the editor to fully disable the DiscordSDK plugin") 40 | 41 | func save_and_restart() -> void: 42 | get_editor_interface().restart_editor(true) 43 | 44 | func save_no_restart() -> void: 45 | get_editor_interface().restart_editor(false) 46 | 47 | var editor_presence: Node 48 | func _on_editor_settings_changed() -> void: 49 | plugin_cfg.set_value("Discord","editor_presence",get_editor_interface().get_editor_settings().get_setting("DiscordSDK/EditorPresence/enabled")) 50 | plugin_cfg.save(get_editor_interface().get_editor_paths().get_data_dir() + plugin_data_filename) 51 | if ClassDB.class_exists("EditorPresence") && editor_presence == null: 52 | editor_presence = ClassDB.instantiate("EditorPresence") 53 | if get_editor_interface().get_editor_settings().has_setting("DiscordSDK/EditorPresence/enabled") && get_editor_interface().get_editor_settings().get_setting("DiscordSDK/EditorPresence/enabled"): 54 | add_child(editor_presence) 55 | else: 56 | editor_presence.queue_free() 57 | -------------------------------------------------------------------------------- /addons/luaAPI/LICENSE: -------------------------------------------------------------------------------- 1 | =============================================================================== 2 | LuaAPI -- lua API bindings for the godot engine. 3 | 4 | Copyright (c) 2021-present Trey Moller 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | [ MIT license: https://www.opensource.org/licenses/mit-license.php ] 25 | 26 | =============================================================================== 27 | [ LuaAPI includes code from Godot 4.0, which has this license statement: ] 28 | 29 | Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). 30 | Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. 31 | 32 | Permission is hereby granted, free of charge, to any person obtaining a copy 33 | of this software and associated documentation files (the "Software"), to deal 34 | in the Software without restriction, including without limitation the rights 35 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 36 | copies of the Software, and to permit persons to whom the Software is 37 | furnished to do so, subject to the following conditions: 38 | 39 | The above copyright notice and this permission notice shall be included in all 40 | copies or substantial portions of the Software. 41 | 42 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 43 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 44 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 45 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 46 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 47 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 48 | SOFTWARE. 49 | 50 | =============================================================================== 51 | [ LuaAPI includes code from godot-cpp, which has this license statement: ] 52 | 53 | Copyright (c) 2017-present Godot Engine contributors. 54 | 55 | Permission is hereby granted, free of charge, to any person obtaining a copy 56 | of this software and associated documentation files (the "Software"), to deal 57 | in the Software without restriction, including without limitation the rights 58 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 59 | copies of the Software, and to permit persons to whom the Software is 60 | furnished to do so, subject to the following conditions: 61 | 62 | The above copyright notice and this permission notice shall be included in all 63 | copies or substantial portions of the Software. 64 | 65 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 66 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 67 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 68 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 69 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 70 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 71 | SOFTWARE. 72 | 73 | =============================================================================== 74 | [ LuaAPI includes code from Lua 5.1/5.2/5.4, which has this license statement: ] 75 | 76 | Copyright (C) 1994-2012 Lua.org, PUC-Rio. 77 | 78 | Permission is hereby granted, free of charge, to any person obtaining a copy 79 | of this software and associated documentation files (the "Software"), to deal 80 | in the Software without restriction, including without limitation the rights 81 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 82 | copies of the Software, and to permit persons to whom the Software is 83 | furnished to do so, subject to the following conditions: 84 | 85 | The above copyright notice and this permission notice shall be included in 86 | all copies or substantial portions of the Software. 87 | 88 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 89 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 90 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 91 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 92 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 93 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 94 | THE SOFTWARE. 95 | 96 | =============================================================================== 97 | [ LuaAPI includes code from LuaJIT v2.1, which has this license statement: ] 98 | 99 | Copyright (C) 2005-2022 Mike Pall. All rights reserved. 100 | 101 | Permission is hereby granted, free of charge, to any person obtaining a copy 102 | of this software and associated documentation files (the "Software"), to deal 103 | in the Software without restriction, including without limitation the rights 104 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 105 | copies of the Software, and to permit persons to whom the Software is 106 | furnished to do so, subject to the following conditions: 107 | 108 | The above copyright notice and this permission notice shall be included in 109 | all copies or substantial portions of the Software. 110 | 111 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 112 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 113 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 114 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 115 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 116 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 117 | THE SOFTWARE. 118 | 119 | =============================================================================== 120 | [ LuaJIT includes code from dlmalloc, which has this license statement: ] 121 | 122 | This is a version (aka dlmalloc) of malloc/free/realloc written by 123 | Doug Lea and released to the public domain, as explained at 124 | https://creativecommons.org/licenses/publicdomain 125 | 126 | =============================================================================== 127 | -------------------------------------------------------------------------------- /addons/luaAPI/bin/.gdignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/.gdignore -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.ios.template_debug.arm64.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.ios.template_debug.arm64.dylib -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.ios.template_debug.universal.simulator.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.ios.template_debug.universal.simulator.dylib -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.ios.template_release.arm64.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.ios.template_release.arm64.dylib -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.ios.template_release.universal.simulator.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.ios.template_release.universal.simulator.dylib -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.linux.template_debug.x86_32.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.linux.template_debug.x86_32.so -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.linux.template_debug.x86_64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.linux.template_debug.x86_64.so -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.linux.template_release.x86_32.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.linux.template_release.x86_32.so -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.linux.template_release.x86_64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.linux.template_release.x86_64.so -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.macos.template_debug.universal.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.macos.template_debug.universal.dylib -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.macos.template_release.universal.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.macos.template_release.universal.dylib -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.windows.template_debug.x86_32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.windows.template_debug.x86_32.dll -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.windows.template_debug.x86_64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.windows.template_debug.x86_64.dll -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.windows.template_release.x86_32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.windows.template_release.x86_32.dll -------------------------------------------------------------------------------- /addons/luaAPI/bin/libluaapi.windows.template_release.x86_64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/face-hh/griddycode/a72c7bceeb3ed77e59bc964851f7f4d8c25c2a57/addons/luaAPI/bin/libluaapi.windows.template_release.x86_64.dll -------------------------------------------------------------------------------- /addons/luaAPI/luaAPI.gdextension: -------------------------------------------------------------------------------- 1 | [configuration] 2 | entry_symbol = "luaAPI_library_init" 3 | compatibility_minimum = 4.2 4 | 5 | [libraries] 6 | linux.x86_64.debug = "bin/libluaapi.linux.template_debug.x86_64.so" 7 | linux.x86_64.release = "bin/libluaapi.linux.template_release.x86_64.so" 8 | linux.x86_32.debug = "bin/libluaapi.linux.template_debug.x86_32.so" 9 | linux.x86_32.release = "bin/libluaapi.linux.template_release.x86_32.so" 10 | 11 | windows.x86_64.debug = "bin/libluaapi.windows.template_debug.x86_64.dll" 12 | windows.x86_64.release = "bin/libluaapi.windows.template_release.x86_64.dll" 13 | windows.x86_32.debug = "bin/libluaapi.windows.template_debug.x86_32.dll" 14 | windows.x86_32.release = "bin/libluaapi.windows.template_release.x86_32.dll" 15 | 16 | android.debug.x86_64 = "bin/libluaapi.android.template_debug.x86_64.so" 17 | android.release.x86_64 = "bin/libluaapi.android.template_release.x86_64.so" 18 | android.debug.arm64 = "bin/libluaapi.android.template_debug.arm64.so" 19 | android.release.arm64 = "bin/libluaapi.android.template_release.arm64.so" 20 | 21 | macos.debug = "bin/libluaapi.macos.template_debug.universal.dylib" 22 | macos.release = "bin/libluaapi.macos.template_release.universal.dylib" 23 | 24 | ios.debug.arm64 = "bin/libluaapi.ios.template_debug.arm64.dylib" 25 | ios.release.arm64 = "bin/libluaapi.ios.template_release.arm64.dylib" 26 | ios.debug.simulator = "bin/libluaapi.ios.template_debug.universal.simulator.dylib" 27 | ios.release.simulator = "bin/libluaapi.ios.template_release.universal.simulator.dylib" 28 | -------------------------------------------------------------------------------- /default_bus_layout.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="AudioBusLayout" load_steps=2 format=3 uid="uid://cdl484vy4r4q5"] 2 | 3 | [sub_resource type="AudioEffectSpectrumAnalyzer" id="AudioEffectSpectrumAnalyzer_5ciwe"] 4 | resource_name = "SpectrumAnalyzer" 5 | fft_size = 1 6 | 7 | [resource] 8 | bus/0/effect/0/effect = SubResource("AudioEffectSpectrumAnalyzer_5ciwe") 9 | bus/0/effect/0/enabled = true 10 | -------------------------------------------------------------------------------- /definitions.lua: -------------------------------------------------------------------------------- 1 | ---@meta 2 | 3 | ---Tells GriddyCode to highlight a certain keyword with a preset of colors. 4 | ---@param keyword string 5 | ---@param color string 6 | function highlight(keyword, color) end 7 | 8 | ---@Tells GriddyCode to highlight a region with a preset of colors. 9 | ---@param start string 10 | ---@param _end string 11 | ---@param color string 12 | ---@param line_only? boolean 13 | function highlight_region(start, _end, color, line_only) end 14 | 15 | ---Adds a comment to be randomly chosen in the `CTRL` + `L` menu. 16 | ---@param comment string 17 | function add_comment(comment) end 18 | 19 | ---Called by GriddyCode upon input. Results are showed in the autocomplete feature. 20 | ---@param content string 21 | ---@param line integer 22 | ---@param column integer 23 | function detect_functions(content, line, column) end 24 | 25 | ---Called by GriddyCode upon input. Results are showed in the autocomplete feature. 26 | ---@param content any 27 | ---@param line any 28 | ---@param column any 29 | function detect_variables(content, line, column) end 30 | 31 | ---Set the color of syntax highlighting. 32 | ---@param property string 33 | ---@param new_color string 34 | function set_keywords(property, new_color) end 35 | 36 | ---This method is dedicated to the overall GUI aspect of GriddyCode. 37 | ---@param property string 38 | ---@param new_color string 39 | function set_gui(property, new_color) end 40 | 41 | ---@param input string 42 | ---@param separator string 43 | ---@return table 44 | function splitstr(input, separator) end 45 | 46 | ---@param input string 47 | ---@return string 48 | function trim(input) end 49 | -------------------------------------------------------------------------------- /export_presets.cfg: -------------------------------------------------------------------------------- 1 | [preset.0] 2 | 3 | name="Windows Desktop" 4 | platform="Windows Desktop" 5 | runnable=true 6 | dedicated_server=false 7 | custom_features="" 8 | export_filter="all_resources" 9 | include_filter="*.lua" 10 | exclude_filter="" 11 | export_path="Builds/Windows/Bussin GriddyCode.exe" 12 | encryption_include_filters="" 13 | encryption_exclude_filters="" 14 | encrypt_pck=false 15 | encrypt_directory=false 16 | 17 | [preset.0.options] 18 | 19 | custom_template/debug="" 20 | custom_template/release="" 21 | debug/export_console_wrapper=0 22 | binary_format/embed_pck=true 23 | texture_format/bptc=true 24 | texture_format/s3tc=true 25 | texture_format/etc=false 26 | texture_format/etc2=false 27 | binary_format/architecture="x86_64" 28 | codesign/enable=false 29 | codesign/timestamp=true 30 | codesign/timestamp_server_url="" 31 | codesign/digest_algorithm=1 32 | codesign/description="" 33 | codesign/custom_options=PackedStringArray() 34 | application/modify_resources=true 35 | application/icon="res://Icons/griddycode.png" 36 | application/console_wrapper_icon="" 37 | application/icon_interpolation=4 38 | application/file_version="" 39 | application/product_version="" 40 | application/company_name="Bussin Industries" 41 | application/product_name="GriddyCode" 42 | application/file_description="A code editor developed by Bussin Industries." 43 | application/copyright="Bussin Industries" 44 | application/trademarks="Bussin Industriess" 45 | application/export_angle=0 46 | ssh_remote_deploy/enabled=false 47 | ssh_remote_deploy/host="user@host_ip" 48 | ssh_remote_deploy/port="22" 49 | ssh_remote_deploy/extra_args_ssh="" 50 | ssh_remote_deploy/extra_args_scp="" 51 | ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' 52 | $action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' 53 | $trigger = New-ScheduledTaskTrigger -Once -At 00:00 54 | $settings = New-ScheduledTaskSettingsSet 55 | $task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings 56 | Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true 57 | Start-ScheduledTask -TaskName godot_remote_debug 58 | while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } 59 | Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" 60 | ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue 61 | Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue 62 | Remove-Item -Recurse -Force '{temp_dir}'" 63 | texture_format/s3tc_bptc=true 64 | texture_format/etc2_astc=false 65 | application/export_d3d12=0 66 | application/d3d12_agility_sdk_multiarch=true 67 | 68 | [preset.1] 69 | 70 | name="Linux/X11" 71 | platform="Linux/X11" 72 | runnable=true 73 | dedicated_server=false 74 | custom_features="" 75 | export_filter="all_resources" 76 | include_filter="*.lua" 77 | exclude_filter="" 78 | export_path="Builds/Linux/Bussin GriddyCode.x86_64" 79 | encryption_include_filters="" 80 | encryption_exclude_filters="" 81 | encrypt_pck=false 82 | encrypt_directory=false 83 | 84 | [preset.1.options] 85 | 86 | custom_template/debug="" 87 | custom_template/release="" 88 | debug/export_console_wrapper=1 89 | binary_format/embed_pck=true 90 | texture_format/bptc=true 91 | texture_format/s3tc=true 92 | texture_format/etc=false 93 | texture_format/etc2=false 94 | binary_format/architecture="x86_64" 95 | ssh_remote_deploy/enabled=false 96 | ssh_remote_deploy/host="user@host_ip" 97 | ssh_remote_deploy/port="22" 98 | ssh_remote_deploy/extra_args_ssh="" 99 | ssh_remote_deploy/extra_args_scp="" 100 | ssh_remote_deploy/run_script="#!/usr/bin/env bash 101 | export DISPLAY=:0 102 | unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" 103 | \"{temp_dir}/{exe_name}\" {cmd_args}" 104 | ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash 105 | kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") 106 | rm -rf \"{temp_dir}\"" 107 | -------------------------------------------------------------------------------- /project.godot: -------------------------------------------------------------------------------- 1 | ; Engine configuration file. 2 | ; It's best edited using the editor UI and not directly, 3 | ; since the parameters that go here are not all obvious. 4 | ; 5 | ; Format: 6 | ; [section] ; section goes between [] 7 | ; param=value ; assign values to parameters 8 | 9 | config_version=5 10 | 11 | [application] 12 | 13 | config/name="Bussin GriddyCode" 14 | run/main_scene="res://Scenes/editor.tscn" 15 | config/features=PackedStringArray("4.2", "Forward Plus") 16 | boot_splash/show_image=false 17 | boot_splash/fullsize=false 18 | boot_splash/use_filter=false 19 | config/icon="res://Icons/griddycode.png" 20 | 21 | [autoload] 22 | 23 | Icons="*res://Scripts/icons.gd" 24 | LuaSingleton="*res://Scripts/lua_singleton.gd" 25 | Fs="*res://Scripts/fs.gd" 26 | Music="*res://Scripts/music.gd" 27 | CommentsData="*res://Scripts/comments_data.gd" 28 | DiscordSDKLoader="*res://addons/discord-sdk-gd/nodes/discord_autoload.gd" 29 | 30 | [display] 31 | 32 | window/size/viewport_width=1920 33 | window/size/viewport_height=1080 34 | window/stretch/mode="canvas_items" 35 | window/stretch/aspect="keep_height" 36 | 37 | [editor_plugins] 38 | 39 | enabled=PackedStringArray("res://addons/discord-sdk-gd/plugin.cfg") 40 | 41 | [gui] 42 | 43 | theme/default_font_antialiasing=2 44 | theme/default_font_hinting=0 45 | theme/default_font_multichannel_signed_distance_field=true 46 | 47 | [input] 48 | 49 | zoom_in={ 50 | "deadzone": 0.5, 51 | "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":61,"key_label":0,"unicode":61,"echo":false,"script":null) 52 | ] 53 | } 54 | zoom_out={ 55 | "deadzone": 0.5, 56 | "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":45,"key_label":0,"unicode":45,"echo":false,"script":null) 57 | ] 58 | } 59 | ui_open={ 60 | "deadzone": 0.5, 61 | "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":79,"key_label":0,"unicode":111,"echo":false,"script":null) 62 | ] 63 | } 64 | ui_settings={ 65 | "deadzone": 0.5, 66 | "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":44,"key_label":0,"unicode":44,"echo":false,"script":null) 67 | ] 68 | } 69 | ui_info={ 70 | "deadzone": 0.5, 71 | "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":73,"key_label":0,"unicode":105,"echo":false,"script":null) 72 | ] 73 | } 74 | ui_theme={ 75 | "deadzone": 0.5, 76 | "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":84,"key_label":0,"unicode":116,"echo":false,"script":null) 77 | ] 78 | } 79 | ui_comments={ 80 | "deadzone": 0.5, 81 | "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":76,"key_label":0,"unicode":108,"echo":false,"script":null) 82 | ] 83 | } 84 | --------------------------------------------------------------------------------