From acda70405702db59f076f41b6639eceb4c0c605c Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 27 Apr 2023 11:39:41 -0600 Subject: [PATCH] move standalone projects into own directory --- .gitmodules | 8 +- projects/{ => _standalone}/aoc/build.hxml | 0 projects/{ => _standalone}/aoc/src/Main.hx | 0 projects/{ => _standalone}/aoc/src/Main_.kiss | 0 projects/{ => _standalone}/aoc/src/Util.hx | 0 projects/{ => _standalone}/aoc/src/Util.kiss | 0 .../{ => _standalone}/aoc/src/UtilMacros.kiss | 0 .../aoc/src/year2018/Solutions2018.hx | 0 .../aoc/src/year2018/Solutions2018.kiss | 0 .../aoc/src/year2018/inputs/day1.txt | 0 .../aoc/src/year2020/Adapters.hx | 0 .../aoc/src/year2020/Adapters.kiss | 0 .../aoc/src/year2020/Bags.hx | 0 .../aoc/src/year2020/Bags.kiss | 0 .../aoc/src/year2020/BootCode.hx | 0 .../aoc/src/year2020/BootCodeCommon.kiss | 0 .../aoc/src/year2020/BootCodeDSL.kiss | 0 .../aoc/src/year2020/BootCodeFixDSL.kiss | 0 .../aoc/src/year2020/Customs.hx | 0 .../aoc/src/year2020/Customs.kiss | 0 .../aoc/src/year2020/Evasion.hx | 0 .../aoc/src/year2020/EvasionDSL.kiss | 0 .../aoc/src/year2020/FerrySim.hx | 0 .../aoc/src/year2020/FerrySimDSL.kiss | 0 .../aoc/src/year2020/Passports.hx | 0 .../aoc/src/year2020/Passports.kiss | 0 .../aoc/src/year2020/Passwords.hx | 0 .../aoc/src/year2020/Passwords.kiss | 0 .../aoc/src/year2020/Seating.hx | 0 .../aoc/src/year2020/Seating.kiss | 0 .../aoc/src/year2020/Solutions2020.hx | 0 .../aoc/src/year2020/Solutions2020.kiss | 0 .../aoc/src/year2020/SummingTuples.hx | 0 .../aoc/src/year2020/SummingTuples.kiss | 0 .../aoc/src/year2020/Toboggan.hx | 0 .../aoc/src/year2020/Toboggan.kiss | 0 .../aoc/src/year2020/XMAS.hx | 0 .../aoc/src/year2020/XMAS.kiss | 0 .../aoc/src/year2020/inputs/day1-1.txt | 0 .../aoc/src/year2020/inputs/day10.txt | 0 .../aoc/src/year2020/inputs/day11-example.txt | 0 .../aoc/src/year2020/inputs/day11.txt | 0 .../aoc/src/year2020/inputs/day12.txt | 0 .../aoc/src/year2020/inputs/day2-1.txt | 0 .../aoc/src/year2020/inputs/day3-1.txt | 0 .../aoc/src/year2020/inputs/day4-1.txt | 0 .../aoc/src/year2020/inputs/day4-example.txt | 0 .../aoc/src/year2020/inputs/day5-1.txt | 0 .../aoc/src/year2020/inputs/day6-1.txt | 0 .../aoc/src/year2020/inputs/day6-example2.txt | 0 .../aoc/src/year2020/inputs/day7.txt | 0 .../aoc/src/year2020/inputs/day8-example.txt | 0 .../aoc/src/year2020/inputs/day8.txt | 0 .../aoc/src/year2020/inputs/day9.txt | 0 .../aoc/src/year2021/Day10.hx | 0 .../aoc/src/year2021/Day4.hx | 0 .../aoc/src/year2021/Day5.hx | 0 .../aoc/src/year2021/Solutions2021.hx | 0 .../aoc/src/year2021/Solutions2021.kiss | 0 .../aoc/src/year2021/day1.kiss | 0 .../aoc/src/year2021/day10.kiss | 0 .../aoc/src/year2021/day11.kiss | 0 .../aoc/src/year2021/day12.kiss | 0 .../aoc/src/year2021/day2.kiss | 0 .../aoc/src/year2021/day3.kiss | 0 .../aoc/src/year2021/day4.kiss | 0 .../aoc/src/year2021/day5.kiss | 0 .../aoc/src/year2021/day6.kiss | 0 .../aoc/src/year2021/day7.kiss | 0 .../aoc/src/year2021/day9.kiss | 0 .../aoc/src/year2021/inputs/day1.txt | 0 .../aoc/src/year2021/inputs/day10-example.txt | 0 .../aoc/src/year2021/inputs/day10.txt | 0 .../aoc/src/year2021/inputs/day11-example.txt | 0 .../aoc/src/year2021/inputs/day11.txt | 0 .../aoc/src/year2021/inputs/day12-example.txt | 0 .../aoc/src/year2021/inputs/day12.txt | 0 .../aoc/src/year2021/inputs/day2.txt | 0 .../aoc/src/year2021/inputs/day3.txt | 0 .../aoc/src/year2021/inputs/day4-example.txt | 0 .../aoc/src/year2021/inputs/day4.txt | 0 .../aoc/src/year2021/inputs/day5-example.txt | 0 .../aoc/src/year2021/inputs/day5.txt | 0 .../aoc/src/year2021/inputs/day6-example.txt | 0 .../aoc/src/year2021/inputs/day6.txt | 0 .../aoc/src/year2021/inputs/day7-example.txt | 0 .../aoc/src/year2021/inputs/day7.txt | 0 .../aoc/src/year2021/inputs/day9-example.txt | 0 .../aoc/src/year2021/inputs/day9.txt | 0 .../aoc/src/year2022/Day1.kiss | 0 .../aoc/src/year2022/Day10.kiss | 0 .../aoc/src/year2022/Day11.kiss | 0 .../aoc/src/year2022/Day13.kiss | 0 .../aoc/src/year2022/Day2.kiss | 0 .../aoc/src/year2022/Day3.kiss | 0 .../aoc/src/year2022/Day4.kiss | 0 .../aoc/src/year2022/Day5.kiss | 0 .../aoc/src/year2022/Day6.kiss | 0 .../aoc/src/year2022/Day7.kiss | 0 .../aoc/src/year2022/Day8.kiss | 0 .../aoc/src/year2022/FileSystem.hx | 0 .../aoc/src/year2022/Food.hx | 0 .../aoc/src/year2022/ListOrdering.hx | 0 .../aoc/src/year2022/Monkey.hx | 0 .../aoc/src/year2022/MonkeyDSL.kiss | 0 .../aoc/src/year2022/OpCode.hx | 0 .../aoc/src/year2022/Solutions2022.kiss | 0 .../aoc/src/year2022/inputs/Day11.monkeys | 0 .../src/year2022/inputs/Day11Example.monkeys | 0 .../aoc/src/year2022/inputs/day1.txt | 0 .../aoc/src/year2022/inputs/day10.txt | 0 .../aoc/src/year2022/inputs/day10example.txt | 0 .../aoc/src/year2022/inputs/day13.txt | 0 .../aoc/src/year2022/inputs/day13example.txt | 0 .../aoc/src/year2022/inputs/day2.txt | 0 .../aoc/src/year2022/inputs/day3.txt | 0 .../aoc/src/year2022/inputs/day4.txt | 0 .../aoc/src/year2022/inputs/day5.txt | 0 .../aoc/src/year2022/inputs/day6.txt | 0 .../aoc/src/year2022/inputs/day7.txt | 0 .../aoc/src/year2022/inputs/day8.txt | 0 .../aoc/src/year2022/inputs/day8example.txt | 0 projects/{ => _standalone}/aoc/test.sh | 0 .../duplicate-text-editor/.gitignore | 0 .../duplicate-text-editor/.vscode/launch.json | 0 .../duplicate-text-editor/.vscode/tasks.json | 0 .../duplicate-text-editor/.vscodeignore | 0 .../duplicate-text-editor/README.md | 0 .../duplicate-text-editor/build.hxml | 0 .../duplicate-text-editor/package-lock.json | 0 .../duplicate-text-editor/package.json | 0 .../duplicate-text-editor/src/Main.hx | 0 .../duplicate-text-editor/src/Main.kiss | 0 .../duplicate-text-editor/test.sh | 0 .../duplicate-text-editor/test/file.txt | 0 .../duplicate-text-editor/test/file2.txt | 0 .../.gitignore | 0 .../.vscode/extensions.json | 0 .../.vscode/launch.json | 0 .../.vscode/settings.json | 0 .../.vscode/tasks.json | 0 .../Project.xml | 0 .../assets/default.txt | 0 .../assets/ding.wav | Bin .../devlog/1.markdown | 0 .../devlog/2.markdown | 0 .../devlog/8-15-22-a.gif | Bin .../devlog/8-15-22-b.gif | Bin .../devlog/IMG_20220911_144514349.jpg | Bin .../devlog/cover.png | Bin .../devlog/gizmos.png | Bin .../devlog/habitica quest.png | Bin .../devlog/layton-jigsaw.png | Bin .../devlog/playtest.gif | Bin .../devlog/stressTest.png | Bin .../devlog/stressTestZoom.png | Bin .../hxformat.json | 0 .../playtest-todo.txt | 0 .../requirements.hxml | 0 .../screenshots/10-01-22.gif | Bin .../screenshots/9-24-22.png | Bin .../screenshots/screen1.png | Bin .../source/Entry.hx | 0 .../source/Entry.kiss | 0 .../source/FlxPomTimer.hx | 0 .../source/FlxPomTimer.kiss | 0 .../source/HabitModel.hx | 0 .../source/HabitModel.kiss | 0 .../source/HabitState.hx | 0 .../source/HabitState.kiss | 0 .../source/Main.hx | 0 .../source/PuzzlePack.hx | 0 .../source/PuzzlePack.kiss | 0 .../source/jigsawx/Assets/openfl.svg | 0 .../source/jigsawx/Assets/tablecloth.jpg | Bin .../source/jigsawx/JigsawMagicNumbers.hx | 0 .../source/jigsawx/JigsawPiece.hx | 0 .../source/jigsawx/JigsawSideData.hx | 0 .../source/jigsawx/Jigsawx.hx | 0 .../source/jigsawx/JigsawxOpenfl.hx | 0 .../source/jigsawx/LICENSE | 0 .../source/jigsawx/OpenEllipse.hx | 0 .../source/jigsawx/README.md | 0 .../source/jigsawx/application.xml | 0 .../source/jigsawx/compileOpenfl.hxml | 0 .../source/jigsawx/ds/CircleIter.hx | 0 .../source/jigsawx/math/Vec2.hx | 0 .../iso-rpg-engine/.gitignore | 0 .../iso-rpg-engine/.vscode/extensions.json | 0 .../iso-rpg-engine/.vscode/launch.json | 0 .../iso-rpg-engine/.vscode/settings.json | 0 .../iso-rpg-engine/.vscode/tasks.json | 0 .../iso-rpg-engine/Project.xml | 0 .../iso-rpg-engine/assets/bladesmoddata.txt | 0 .../assets/images/images-go-here.txt | 0 .../assets/music/music-goes-here.txt | 0 .../assets/sounds/sounds-go-here.txt | 0 .../iso-rpg-engine/hxformat.json | 0 .../iso-rpg-engine/source/AssetPaths.hx | 0 .../iso-rpg-engine/source/BladesMapState.hx | 0 .../iso-rpg-engine/source/BladesMapState.kiss | 0 .../iso-rpg-engine/source/Bmp.hx | 0 .../iso-rpg-engine/source/Main.hx | 0 .../source/data/blades/CreatureData.hx | 0 .../source/data/blades/FloorData.hx | 0 .../source/data/blades/ItemData.hx | 0 .../source/data/blades/ScenData.hx | 0 .../source/data/blades/Scenario.hx | 0 .../source/data/blades/SpriteSheet.hx | 0 .../source/data/blades/SpriteSheet.kiss | 0 .../source/data/blades/TerrainData.hx | 0 .../source/data/blades/TileMap.hx | 0 .../kiss-cli-tests/.gitignore | 0 .../new-express-project-input.txt | 0 .../new-flixel-project-input.txt | 0 .../kiss-cli-tests/new-project-input.txt | 0 .../{ => _standalone}/kiss-cli-tests/test.sh | 0 .../{ => _standalone}/kiss-vscode/.gitignore | 0 .../kiss-vscode/.vscode/launch.json | 0 .../kiss-vscode/.vscode/tasks.json | 0 .../kiss-vscode/.vscodeignore | 0 .../kiss-vscode/Kiss.configuration.json | 0 .../{ => _standalone}/kiss-vscode/README.md | 0 .../{ => _standalone}/kiss-vscode/build.hxml | 0 .../kiss-vscode/package-lock.json | 0 .../kiss-vscode/package.json | 0 .../{ => _standalone}/kiss-vscode/src/Main.hx | 0 .../kiss-vscode/src/Main.kiss | 0 .../src/commands/ExtensionTools.kiss | 0 .../kiss-vscode/src/commands/KissTools.kiss | 0 .../kiss-vscode/src/commands/Lines.kiss | 0 .../src/commands/_deprecated/EmacsPorts.kiss | 0 .../kiss-vscode/syntaxes/codeblock.json | 0 .../kiss-vscode/syntaxes/kiss.tmLanguage | 0 .../{ => _standalone}/kiss-vscode/test.sh | 0 .../{ => _standalone}/ksr-express/.gitignore | 0 .../{ => _standalone}/ksr-express/build.hxml | 0 .../ksr-express/package-lock.json | 0 .../ksr-express/package.json | 0 .../ksr-express/src/ksr_express/Engine.kiss | 0 .../{ => _standalone}/ksr-express/test.sh | 0 projects/{ => _standalone}/ktxt2/.gitignore | 0 .../ktxt2/.vscode/launch.json | 0 .../ktxt2/.vscode/tasks.json | 0 .../{ => _standalone}/ktxt2/.vscodeignore | 0 projects/{ => _standalone}/ktxt2/README.md | 0 projects/{ => _standalone}/ktxt2/build.hxml | 0 .../{ => _standalone}/ktxt2/package-lock.json | 0 projects/{ => _standalone}/ktxt2/package.json | 0 .../ktxt2/src/ktxt2/Commands.kiss | 0 .../ktxt2/src/ktxt2/EditorExterns.hx | 0 .../ktxt2/src/ktxt2/KTxt2.hx | 0 .../ktxt2/src/ktxt2/KTxt2.kiss | 0 .../ktxt2/src/ktxt2/KTxt2Editor.hx | 0 .../ktxt2/src/ktxt2/KTxt2Editor.kiss | 0 .../ktxt2/src/ktxt2/KTxt2EditorProvider.hx | 0 .../ktxt2/src/ktxt2/KTxt2EditorProvider.kiss | 0 .../{ => _standalone}/ktxt2/src/ktxt2/Main.hx | 0 .../ktxt2/src/ktxt2/Main.kiss | 0 .../ktxt2/src/ktxt2/NamesConversion.hx | 0 .../ktxt2/src/ktxt2/NamesConversion.kiss | 0 .../ktxt2/src/ktxt2/RegexConversion.hx | 0 .../ktxt2/src/ktxt2/RegexConversion.kiss | 0 .../ktxt2/src/ktxt2/StreamConversion.hx | 0 .../ktxt2/src/ktxt2/StreamConversion.kiss | 0 .../ktxt2/conversions/FountainToHollywoo.kiss | 0 projects/{ => _standalone}/ktxt2/test.sh | 0 .../nat-flixel-desktop-playground/.gitignore | 0 .../.vscode/extensions.json | 0 .../.vscode/launch.json | 0 .../.vscode/settings.json | 0 .../.vscode/tasks.json | 0 .../nat-flixel-desktop-playground/Project.xml | 0 .../nat-flixel-desktop-playground/README.md | 0 .../assets/data/data-goes-here.txt | 0 .../assets/images/images-go-here.txt | 0 .../assets/music/music-goes-here.txt | 0 .../assets/sounds/sounds-go-here.txt | 0 .../copy-extern-scripts.sh | 0 .../hxformat.json | 0 .../source/AssetPaths.hx | 0 .../source/EntrySprite.hx | 0 .../source/EntrySprite.kiss | 0 .../source/EntrySpriteSystem.hx | 0 .../source/EntrySpriteSystem.kiss | 0 .../source/Main.hx | 0 .../source/Main.kiss | 0 .../source/PlayState.hx | 0 .../source/PlayState.kiss | 0 .../source/import.hx | 0 .../nat-globelet-playground/.gitignore | 0 .../nat-globelet-playground/build.hxml | 0 .../nat-globelet-playground/package-lock.json | 0 .../nat-globelet-playground/package.json | 0 .../src/nat_globelet_playground/Main.hx | 0 .../src/nat_globelet_playground/Main_.kiss | 0 .../nat-globelet-playground/test.sh | 0 .../nat-godot-playground/.gitignore | 0 .../nat-godot-playground/EntryPanel.tscn | 0 .../nat-godot-playground/Main.tscn | 0 .../nat-godot-playground/Playground.tscn | 0 .../addons/haxe/LICENSE.md | 19 ++ .../addons/haxe/README.md | 71 +++++++ .../addons/haxe/icons/haxe.svg | 126 ++++++++++++ .../addons/haxe/plugin.cfg | 7 + .../addons/haxe/scenes/about.tscn | 14 ++ .../addons/haxe/scenes/building.tscn | 47 +++++ .../addons/haxe/scenes/new_script.tscn | 130 +++++++++++++ .../addons/haxe/scenes/tab.tscn | 35 ++++ .../addons/haxe/scripts/Setup.hx | 182 ++++++++++++++++++ .../addons/haxe/scripts/building.gd | 16 ++ .../addons/haxe/scripts/constants.gd | 6 + .../addons/haxe/scripts/editor_property.gd | 164 ++++++++++++++++ .../addons/haxe/scripts/haxe.gd | 103 ++++++++++ .../addons/haxe/scripts/inspector_plugin.gd | 22 +++ .../addons/haxe/scripts/new_script.gd | 157 +++++++++++++++ .../addons/haxe/scripts/tab.gd | 67 +++++++ .../nat-godot-playground/build.hxml | 0 .../nat-godot-playground/default_env.tres | 0 .../nat-godot-playground/icon.png | Bin .../nat-godot-playground.csproj | 0 .../nat-godot-playground.sln | 0 .../nat-godot-playground/playgrounds.json | 0 .../nat-godot-playground/project.godot | 0 .../scripts/EntryPanel.hx | 0 .../scripts/EntryPanelSystem.hx | 0 .../scripts/EntryPanelSystem.kiss | 0 .../nat-godot-playground/scripts/GodotUI.hx | 0 .../nat-godot-playground/scripts/GodotUI.kiss | 0 .../scripts/PlaygroundEntries.hx | 0 .../nat-godot-playground/scripts/RootNode.hx | 0 .../scripts/RootNode.kiss | 0 .../nat-godot-playground/scripts/import.hx | 0 .../nat-godot-playground/test.sh | 0 .../{ => _standalone}/pdf-salad/.gitignore | 0 .../{ => _standalone}/pdf-salad/README.md | 0 .../{ => _standalone}/pdf-salad/build.hxml | 0 .../pdf-salad/example-input/LICENSE | 0 .../example-input/antique-phone-shop.pdf | 0 .../pdf-salad/example-input/smashbrosgo.pdf | 0 .../pdf-salad/package-lock.json | 0 .../{ => _standalone}/pdf-salad/package.json | 0 .../pdf-salad/src/Externs.hx | 0 .../{ => _standalone}/pdf-salad/src/Main.hx | 0 .../pdf-salad/src/Main_.kiss | 0 projects/{ => _standalone}/pdf-salad/test.sh | 0 .../smart-stretch-reminder/.gitignore | 0 .../smart-stretch-reminder/.vscodeignore | 0 .../smart-stretch-reminder/README.md | 0 .../smart-stretch-reminder/build.hxml | 0 .../smart-stretch-reminder/package-lock.json | 0 .../smart-stretch-reminder/package.json | 0 .../smart-stretch-reminder/src/Main.hx | 0 .../smart-stretch-reminder/src/Main.kiss | 0 .../smart-stretch-reminder/test.sh | 0 projects/{ => _standalone}/tig-spy/.gitignore | 0 projects/{ => _standalone}/tig-spy/build.hxml | 0 .../tig-spy/icons/icon-48.png | Bin .../{ => _standalone}/tig-spy/manifest.json | 0 .../tig-spy/package-lock.json | 0 .../{ => _standalone}/tig-spy/package.json | 0 .../tig-spy/src/tig_spy/Background.hx | 0 .../tig-spy/src/tig_spy/Background.kiss | 0 .../tig-spy/src/tig_spy/Main.hx | 0 .../tig-spy/src/tig_spy/Main_.kiss | 0 .../tig-spy/src/tig_spy/Message.hx | 0 projects/{ => _standalone}/tig-spy/test.sh | 0 projects/kiss-vscode/kiss-vscode-0.0.18.vsix | Bin 33248 -> 0 bytes projects/nat-godot-playground/addons/haxe | 1 - 369 files changed, 1170 insertions(+), 5 deletions(-) rename projects/{ => _standalone}/aoc/build.hxml (100%) rename projects/{ => _standalone}/aoc/src/Main.hx (100%) rename projects/{ => _standalone}/aoc/src/Main_.kiss (100%) rename projects/{ => _standalone}/aoc/src/Util.hx (100%) rename projects/{ => _standalone}/aoc/src/Util.kiss (100%) rename projects/{ => _standalone}/aoc/src/UtilMacros.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2018/Solutions2018.hx (100%) rename projects/{ => _standalone}/aoc/src/year2018/Solutions2018.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2018/inputs/day1.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/Adapters.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/Adapters.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/Bags.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/Bags.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/BootCode.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/BootCodeCommon.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/BootCodeDSL.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/BootCodeFixDSL.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/Customs.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/Customs.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/Evasion.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/EvasionDSL.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/FerrySim.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/FerrySimDSL.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/Passports.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/Passports.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/Passwords.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/Passwords.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/Seating.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/Seating.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/Solutions2020.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/Solutions2020.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/SummingTuples.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/SummingTuples.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/Toboggan.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/Toboggan.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/XMAS.hx (100%) rename projects/{ => _standalone}/aoc/src/year2020/XMAS.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day1-1.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day10.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day11-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day11.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day12.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day2-1.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day3-1.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day4-1.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day4-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day5-1.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day6-1.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day6-example2.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day7.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day8-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day8.txt (100%) rename projects/{ => _standalone}/aoc/src/year2020/inputs/day9.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/Day10.hx (100%) rename projects/{ => _standalone}/aoc/src/year2021/Day4.hx (100%) rename projects/{ => _standalone}/aoc/src/year2021/Day5.hx (100%) rename projects/{ => _standalone}/aoc/src/year2021/Solutions2021.hx (100%) rename projects/{ => _standalone}/aoc/src/year2021/Solutions2021.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day1.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day10.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day11.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day12.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day2.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day3.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day4.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day5.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day6.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day7.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/day9.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day1.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day10-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day10.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day11-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day11.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day12-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day12.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day2.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day3.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day4-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day4.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day5-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day5.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day6-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day6.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day7-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day7.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day9-example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2021/inputs/day9.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day1.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day10.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day11.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day13.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day2.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day3.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day4.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day5.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day6.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day7.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/Day8.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/FileSystem.hx (100%) rename projects/{ => _standalone}/aoc/src/year2022/Food.hx (100%) rename projects/{ => _standalone}/aoc/src/year2022/ListOrdering.hx (100%) rename projects/{ => _standalone}/aoc/src/year2022/Monkey.hx (100%) rename projects/{ => _standalone}/aoc/src/year2022/MonkeyDSL.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/OpCode.hx (100%) rename projects/{ => _standalone}/aoc/src/year2022/Solutions2022.kiss (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/Day11.monkeys (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/Day11Example.monkeys (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day1.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day10.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day10example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day13.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day13example.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day2.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day3.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day4.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day5.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day6.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day7.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day8.txt (100%) rename projects/{ => _standalone}/aoc/src/year2022/inputs/day8example.txt (100%) rename projects/{ => _standalone}/aoc/test.sh (100%) rename projects/{ => _standalone}/duplicate-text-editor/.gitignore (100%) rename projects/{ => _standalone}/duplicate-text-editor/.vscode/launch.json (100%) rename projects/{ => _standalone}/duplicate-text-editor/.vscode/tasks.json (100%) rename projects/{ => _standalone}/duplicate-text-editor/.vscodeignore (100%) rename projects/{ => _standalone}/duplicate-text-editor/README.md (100%) rename projects/{ => _standalone}/duplicate-text-editor/build.hxml (100%) rename projects/{ => _standalone}/duplicate-text-editor/package-lock.json (100%) rename projects/{ => _standalone}/duplicate-text-editor/package.json (100%) rename projects/{ => _standalone}/duplicate-text-editor/src/Main.hx (100%) rename projects/{ => _standalone}/duplicate-text-editor/src/Main.kiss (100%) rename projects/{ => _standalone}/duplicate-text-editor/test.sh (100%) rename projects/{ => _standalone}/duplicate-text-editor/test/file.txt (100%) rename projects/{ => _standalone}/duplicate-text-editor/test/file2.txt (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/.gitignore (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/.vscode/extensions.json (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/.vscode/launch.json (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/.vscode/settings.json (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/.vscode/tasks.json (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/Project.xml (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/assets/default.txt (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/assets/ding.wav (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/1.markdown (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/2.markdown (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/8-15-22-a.gif (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/8-15-22-b.gif (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/IMG_20220911_144514349.jpg (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/cover.png (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/gizmos.png (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/habitica quest.png (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/layton-jigsaw.png (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/playtest.gif (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/stressTest.png (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/devlog/stressTestZoom.png (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/hxformat.json (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/playtest-todo.txt (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/requirements.hxml (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/screenshots/10-01-22.gif (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/screenshots/9-24-22.png (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/screenshots/screen1.png (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/Entry.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/Entry.kiss (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.kiss (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/HabitModel.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/HabitModel.kiss (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/HabitState.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/HabitState.kiss (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/Main.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/PuzzlePack.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/PuzzlePack.kiss (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/openfl.svg (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/tablecloth.jpg (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawMagicNumbers.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawPiece.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawSideData.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/Jigsawx.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawxOpenfl.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/LICENSE (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/OpenEllipse.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/README.md (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/application.xml (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/compileOpenfl.hxml (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/ds/CircleIter.hx (100%) rename projects/{ => _standalone}/flixel-desktop-habit-puzzle-game/source/jigsawx/math/Vec2.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/.gitignore (100%) rename projects/{ => _standalone}/iso-rpg-engine/.vscode/extensions.json (100%) rename projects/{ => _standalone}/iso-rpg-engine/.vscode/launch.json (100%) rename projects/{ => _standalone}/iso-rpg-engine/.vscode/settings.json (100%) rename projects/{ => _standalone}/iso-rpg-engine/.vscode/tasks.json (100%) rename projects/{ => _standalone}/iso-rpg-engine/Project.xml (100%) rename projects/{ => _standalone}/iso-rpg-engine/assets/bladesmoddata.txt (100%) rename projects/{ => _standalone}/iso-rpg-engine/assets/images/images-go-here.txt (100%) rename projects/{ => _standalone}/iso-rpg-engine/assets/music/music-goes-here.txt (100%) rename projects/{ => _standalone}/iso-rpg-engine/assets/sounds/sounds-go-here.txt (100%) rename projects/{ => _standalone}/iso-rpg-engine/hxformat.json (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/AssetPaths.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/BladesMapState.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/BladesMapState.kiss (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/Bmp.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/Main.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/data/blades/CreatureData.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/data/blades/FloorData.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/data/blades/ItemData.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/data/blades/ScenData.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/data/blades/Scenario.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/data/blades/SpriteSheet.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/data/blades/SpriteSheet.kiss (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/data/blades/TerrainData.hx (100%) rename projects/{ => _standalone}/iso-rpg-engine/source/data/blades/TileMap.hx (100%) rename projects/{ => _standalone}/kiss-cli-tests/.gitignore (100%) rename projects/{ => _standalone}/kiss-cli-tests/new-express-project-input.txt (100%) rename projects/{ => _standalone}/kiss-cli-tests/new-flixel-project-input.txt (100%) rename projects/{ => _standalone}/kiss-cli-tests/new-project-input.txt (100%) rename projects/{ => _standalone}/kiss-cli-tests/test.sh (100%) rename projects/{ => _standalone}/kiss-vscode/.gitignore (100%) rename projects/{ => _standalone}/kiss-vscode/.vscode/launch.json (100%) rename projects/{ => _standalone}/kiss-vscode/.vscode/tasks.json (100%) rename projects/{ => _standalone}/kiss-vscode/.vscodeignore (100%) rename projects/{ => _standalone}/kiss-vscode/Kiss.configuration.json (100%) rename projects/{ => _standalone}/kiss-vscode/README.md (100%) rename projects/{ => _standalone}/kiss-vscode/build.hxml (100%) rename projects/{ => _standalone}/kiss-vscode/package-lock.json (100%) rename projects/{ => _standalone}/kiss-vscode/package.json (100%) rename projects/{ => _standalone}/kiss-vscode/src/Main.hx (100%) rename projects/{ => _standalone}/kiss-vscode/src/Main.kiss (100%) rename projects/{ => _standalone}/kiss-vscode/src/commands/ExtensionTools.kiss (100%) rename projects/{ => _standalone}/kiss-vscode/src/commands/KissTools.kiss (100%) rename projects/{ => _standalone}/kiss-vscode/src/commands/Lines.kiss (100%) rename projects/{ => _standalone}/kiss-vscode/src/commands/_deprecated/EmacsPorts.kiss (100%) rename projects/{ => _standalone}/kiss-vscode/syntaxes/codeblock.json (100%) rename projects/{ => _standalone}/kiss-vscode/syntaxes/kiss.tmLanguage (100%) rename projects/{ => _standalone}/kiss-vscode/test.sh (100%) rename projects/{ => _standalone}/ksr-express/.gitignore (100%) rename projects/{ => _standalone}/ksr-express/build.hxml (100%) rename projects/{ => _standalone}/ksr-express/package-lock.json (100%) rename projects/{ => _standalone}/ksr-express/package.json (100%) rename projects/{ => _standalone}/ksr-express/src/ksr_express/Engine.kiss (100%) rename projects/{ => _standalone}/ksr-express/test.sh (100%) rename projects/{ => _standalone}/ktxt2/.gitignore (100%) rename projects/{ => _standalone}/ktxt2/.vscode/launch.json (100%) rename projects/{ => _standalone}/ktxt2/.vscode/tasks.json (100%) rename projects/{ => _standalone}/ktxt2/.vscodeignore (100%) rename projects/{ => _standalone}/ktxt2/README.md (100%) rename projects/{ => _standalone}/ktxt2/build.hxml (100%) rename projects/{ => _standalone}/ktxt2/package-lock.json (100%) rename projects/{ => _standalone}/ktxt2/package.json (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/Commands.kiss (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/EditorExterns.hx (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/KTxt2.hx (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/KTxt2.kiss (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/KTxt2Editor.hx (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/KTxt2Editor.kiss (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/KTxt2EditorProvider.hx (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/KTxt2EditorProvider.kiss (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/Main.hx (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/Main.kiss (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/NamesConversion.hx (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/NamesConversion.kiss (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/RegexConversion.hx (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/RegexConversion.kiss (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/StreamConversion.hx (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/StreamConversion.kiss (100%) rename projects/{ => _standalone}/ktxt2/src/ktxt2/conversions/FountainToHollywoo.kiss (100%) rename projects/{ => _standalone}/ktxt2/test.sh (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/.gitignore (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/.vscode/extensions.json (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/.vscode/launch.json (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/.vscode/settings.json (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/.vscode/tasks.json (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/Project.xml (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/README.md (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/assets/data/data-goes-here.txt (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/assets/images/images-go-here.txt (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/assets/music/music-goes-here.txt (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/assets/sounds/sounds-go-here.txt (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/copy-extern-scripts.sh (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/hxformat.json (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/AssetPaths.hx (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/EntrySprite.hx (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/EntrySprite.kiss (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/EntrySpriteSystem.hx (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/EntrySpriteSystem.kiss (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/Main.hx (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/Main.kiss (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/PlayState.hx (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/PlayState.kiss (100%) rename projects/{ => _standalone}/nat-flixel-desktop-playground/source/import.hx (100%) rename projects/{ => _standalone}/nat-globelet-playground/.gitignore (100%) rename projects/{ => _standalone}/nat-globelet-playground/build.hxml (100%) rename projects/{ => _standalone}/nat-globelet-playground/package-lock.json (100%) rename projects/{ => _standalone}/nat-globelet-playground/package.json (100%) rename projects/{ => _standalone}/nat-globelet-playground/src/nat_globelet_playground/Main.hx (100%) rename projects/{ => _standalone}/nat-globelet-playground/src/nat_globelet_playground/Main_.kiss (100%) rename projects/{ => _standalone}/nat-globelet-playground/test.sh (100%) rename projects/{ => _standalone}/nat-godot-playground/.gitignore (100%) rename projects/{ => _standalone}/nat-godot-playground/EntryPanel.tscn (100%) rename projects/{ => _standalone}/nat-godot-playground/Main.tscn (100%) rename projects/{ => _standalone}/nat-godot-playground/Playground.tscn (100%) create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/LICENSE.md create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/README.md create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/icons/haxe.svg create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/plugin.cfg create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scenes/about.tscn create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scenes/building.tscn create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scenes/new_script.tscn create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scenes/tab.tscn create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scripts/Setup.hx create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scripts/building.gd create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scripts/constants.gd create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scripts/editor_property.gd create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scripts/haxe.gd create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scripts/inspector_plugin.gd create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scripts/new_script.gd create mode 100644 projects/_standalone/nat-godot-playground/addons/haxe/scripts/tab.gd rename projects/{ => _standalone}/nat-godot-playground/build.hxml (100%) rename projects/{ => _standalone}/nat-godot-playground/default_env.tres (100%) rename projects/{ => _standalone}/nat-godot-playground/icon.png (100%) rename projects/{ => _standalone}/nat-godot-playground/nat-godot-playground.csproj (100%) rename projects/{ => _standalone}/nat-godot-playground/nat-godot-playground.sln (100%) rename projects/{ => _standalone}/nat-godot-playground/playgrounds.json (100%) rename projects/{ => _standalone}/nat-godot-playground/project.godot (100%) rename projects/{ => _standalone}/nat-godot-playground/scripts/EntryPanel.hx (100%) rename projects/{ => _standalone}/nat-godot-playground/scripts/EntryPanelSystem.hx (100%) rename projects/{ => _standalone}/nat-godot-playground/scripts/EntryPanelSystem.kiss (100%) rename projects/{ => _standalone}/nat-godot-playground/scripts/GodotUI.hx (100%) rename projects/{ => _standalone}/nat-godot-playground/scripts/GodotUI.kiss (100%) rename projects/{ => _standalone}/nat-godot-playground/scripts/PlaygroundEntries.hx (100%) rename projects/{ => _standalone}/nat-godot-playground/scripts/RootNode.hx (100%) rename projects/{ => _standalone}/nat-godot-playground/scripts/RootNode.kiss (100%) rename projects/{ => _standalone}/nat-godot-playground/scripts/import.hx (100%) rename projects/{ => _standalone}/nat-godot-playground/test.sh (100%) rename projects/{ => _standalone}/pdf-salad/.gitignore (100%) rename projects/{ => _standalone}/pdf-salad/README.md (100%) rename projects/{ => _standalone}/pdf-salad/build.hxml (100%) rename projects/{ => _standalone}/pdf-salad/example-input/LICENSE (100%) rename projects/{ => _standalone}/pdf-salad/example-input/antique-phone-shop.pdf (100%) rename projects/{ => _standalone}/pdf-salad/example-input/smashbrosgo.pdf (100%) rename projects/{ => _standalone}/pdf-salad/package-lock.json (100%) rename projects/{ => _standalone}/pdf-salad/package.json (100%) rename projects/{ => _standalone}/pdf-salad/src/Externs.hx (100%) rename projects/{ => _standalone}/pdf-salad/src/Main.hx (100%) rename projects/{ => _standalone}/pdf-salad/src/Main_.kiss (100%) rename projects/{ => _standalone}/pdf-salad/test.sh (100%) rename projects/{ => _standalone}/smart-stretch-reminder/.gitignore (100%) rename projects/{ => _standalone}/smart-stretch-reminder/.vscodeignore (100%) rename projects/{ => _standalone}/smart-stretch-reminder/README.md (100%) rename projects/{ => _standalone}/smart-stretch-reminder/build.hxml (100%) rename projects/{ => _standalone}/smart-stretch-reminder/package-lock.json (100%) rename projects/{ => _standalone}/smart-stretch-reminder/package.json (100%) rename projects/{ => _standalone}/smart-stretch-reminder/src/Main.hx (100%) rename projects/{ => _standalone}/smart-stretch-reminder/src/Main.kiss (100%) rename projects/{ => _standalone}/smart-stretch-reminder/test.sh (100%) rename projects/{ => _standalone}/tig-spy/.gitignore (100%) rename projects/{ => _standalone}/tig-spy/build.hxml (100%) rename projects/{ => _standalone}/tig-spy/icons/icon-48.png (100%) rename projects/{ => _standalone}/tig-spy/manifest.json (100%) rename projects/{ => _standalone}/tig-spy/package-lock.json (100%) rename projects/{ => _standalone}/tig-spy/package.json (100%) rename projects/{ => _standalone}/tig-spy/src/tig_spy/Background.hx (100%) rename projects/{ => _standalone}/tig-spy/src/tig_spy/Background.kiss (100%) rename projects/{ => _standalone}/tig-spy/src/tig_spy/Main.hx (100%) rename projects/{ => _standalone}/tig-spy/src/tig_spy/Main_.kiss (100%) rename projects/{ => _standalone}/tig-spy/src/tig_spy/Message.hx (100%) rename projects/{ => _standalone}/tig-spy/test.sh (100%) delete mode 100644 projects/kiss-vscode/kiss-vscode-0.0.18.vsix delete mode 160000 projects/nat-godot-playground/addons/haxe diff --git a/.gitmodules b/.gitmodules index 6cadbdf2..28138c65 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ -[submodule "projects/godot-squash-the-creeps-3d/addons/haxe"] - path = projects/godot-squash-the-creeps-3d/addons/haxe +[submodule "projects/_deprecated/godot-squash-the-creeps-3d/addons/haxe"] + path = projects/_deprecated/godot-squash-the-creeps-3d/addons/haxe url = https://github.com/HaxeGodot/editor-plugin.git -[submodule "projects/nat-godot-playground/addons/haxe"] - path = projects/nat-godot-playground/addons/haxe +[submodule "projects/_standalone/nat-godot-playground/addons/haxe"] + path = projects/_standalone/nat-godot-playground/addons/haxe url = https://github.com/HaxeGodot/editor-plugin.git diff --git a/projects/aoc/build.hxml b/projects/_standalone/aoc/build.hxml similarity index 100% rename from projects/aoc/build.hxml rename to projects/_standalone/aoc/build.hxml diff --git a/projects/aoc/src/Main.hx b/projects/_standalone/aoc/src/Main.hx similarity index 100% rename from projects/aoc/src/Main.hx rename to projects/_standalone/aoc/src/Main.hx diff --git a/projects/aoc/src/Main_.kiss b/projects/_standalone/aoc/src/Main_.kiss similarity index 100% rename from projects/aoc/src/Main_.kiss rename to projects/_standalone/aoc/src/Main_.kiss diff --git a/projects/aoc/src/Util.hx b/projects/_standalone/aoc/src/Util.hx similarity index 100% rename from projects/aoc/src/Util.hx rename to projects/_standalone/aoc/src/Util.hx diff --git a/projects/aoc/src/Util.kiss b/projects/_standalone/aoc/src/Util.kiss similarity index 100% rename from projects/aoc/src/Util.kiss rename to projects/_standalone/aoc/src/Util.kiss diff --git a/projects/aoc/src/UtilMacros.kiss b/projects/_standalone/aoc/src/UtilMacros.kiss similarity index 100% rename from projects/aoc/src/UtilMacros.kiss rename to projects/_standalone/aoc/src/UtilMacros.kiss diff --git a/projects/aoc/src/year2018/Solutions2018.hx b/projects/_standalone/aoc/src/year2018/Solutions2018.hx similarity index 100% rename from projects/aoc/src/year2018/Solutions2018.hx rename to projects/_standalone/aoc/src/year2018/Solutions2018.hx diff --git a/projects/aoc/src/year2018/Solutions2018.kiss b/projects/_standalone/aoc/src/year2018/Solutions2018.kiss similarity index 100% rename from projects/aoc/src/year2018/Solutions2018.kiss rename to projects/_standalone/aoc/src/year2018/Solutions2018.kiss diff --git a/projects/aoc/src/year2018/inputs/day1.txt b/projects/_standalone/aoc/src/year2018/inputs/day1.txt similarity index 100% rename from projects/aoc/src/year2018/inputs/day1.txt rename to projects/_standalone/aoc/src/year2018/inputs/day1.txt diff --git a/projects/aoc/src/year2020/Adapters.hx b/projects/_standalone/aoc/src/year2020/Adapters.hx similarity index 100% rename from projects/aoc/src/year2020/Adapters.hx rename to projects/_standalone/aoc/src/year2020/Adapters.hx diff --git a/projects/aoc/src/year2020/Adapters.kiss b/projects/_standalone/aoc/src/year2020/Adapters.kiss similarity index 100% rename from projects/aoc/src/year2020/Adapters.kiss rename to projects/_standalone/aoc/src/year2020/Adapters.kiss diff --git a/projects/aoc/src/year2020/Bags.hx b/projects/_standalone/aoc/src/year2020/Bags.hx similarity index 100% rename from projects/aoc/src/year2020/Bags.hx rename to projects/_standalone/aoc/src/year2020/Bags.hx diff --git a/projects/aoc/src/year2020/Bags.kiss b/projects/_standalone/aoc/src/year2020/Bags.kiss similarity index 100% rename from projects/aoc/src/year2020/Bags.kiss rename to projects/_standalone/aoc/src/year2020/Bags.kiss diff --git a/projects/aoc/src/year2020/BootCode.hx b/projects/_standalone/aoc/src/year2020/BootCode.hx similarity index 100% rename from projects/aoc/src/year2020/BootCode.hx rename to projects/_standalone/aoc/src/year2020/BootCode.hx diff --git a/projects/aoc/src/year2020/BootCodeCommon.kiss b/projects/_standalone/aoc/src/year2020/BootCodeCommon.kiss similarity index 100% rename from projects/aoc/src/year2020/BootCodeCommon.kiss rename to projects/_standalone/aoc/src/year2020/BootCodeCommon.kiss diff --git a/projects/aoc/src/year2020/BootCodeDSL.kiss b/projects/_standalone/aoc/src/year2020/BootCodeDSL.kiss similarity index 100% rename from projects/aoc/src/year2020/BootCodeDSL.kiss rename to projects/_standalone/aoc/src/year2020/BootCodeDSL.kiss diff --git a/projects/aoc/src/year2020/BootCodeFixDSL.kiss b/projects/_standalone/aoc/src/year2020/BootCodeFixDSL.kiss similarity index 100% rename from projects/aoc/src/year2020/BootCodeFixDSL.kiss rename to projects/_standalone/aoc/src/year2020/BootCodeFixDSL.kiss diff --git a/projects/aoc/src/year2020/Customs.hx b/projects/_standalone/aoc/src/year2020/Customs.hx similarity index 100% rename from projects/aoc/src/year2020/Customs.hx rename to projects/_standalone/aoc/src/year2020/Customs.hx diff --git a/projects/aoc/src/year2020/Customs.kiss b/projects/_standalone/aoc/src/year2020/Customs.kiss similarity index 100% rename from projects/aoc/src/year2020/Customs.kiss rename to projects/_standalone/aoc/src/year2020/Customs.kiss diff --git a/projects/aoc/src/year2020/Evasion.hx b/projects/_standalone/aoc/src/year2020/Evasion.hx similarity index 100% rename from projects/aoc/src/year2020/Evasion.hx rename to projects/_standalone/aoc/src/year2020/Evasion.hx diff --git a/projects/aoc/src/year2020/EvasionDSL.kiss b/projects/_standalone/aoc/src/year2020/EvasionDSL.kiss similarity index 100% rename from projects/aoc/src/year2020/EvasionDSL.kiss rename to projects/_standalone/aoc/src/year2020/EvasionDSL.kiss diff --git a/projects/aoc/src/year2020/FerrySim.hx b/projects/_standalone/aoc/src/year2020/FerrySim.hx similarity index 100% rename from projects/aoc/src/year2020/FerrySim.hx rename to projects/_standalone/aoc/src/year2020/FerrySim.hx diff --git a/projects/aoc/src/year2020/FerrySimDSL.kiss b/projects/_standalone/aoc/src/year2020/FerrySimDSL.kiss similarity index 100% rename from projects/aoc/src/year2020/FerrySimDSL.kiss rename to projects/_standalone/aoc/src/year2020/FerrySimDSL.kiss diff --git a/projects/aoc/src/year2020/Passports.hx b/projects/_standalone/aoc/src/year2020/Passports.hx similarity index 100% rename from projects/aoc/src/year2020/Passports.hx rename to projects/_standalone/aoc/src/year2020/Passports.hx diff --git a/projects/aoc/src/year2020/Passports.kiss b/projects/_standalone/aoc/src/year2020/Passports.kiss similarity index 100% rename from projects/aoc/src/year2020/Passports.kiss rename to projects/_standalone/aoc/src/year2020/Passports.kiss diff --git a/projects/aoc/src/year2020/Passwords.hx b/projects/_standalone/aoc/src/year2020/Passwords.hx similarity index 100% rename from projects/aoc/src/year2020/Passwords.hx rename to projects/_standalone/aoc/src/year2020/Passwords.hx diff --git a/projects/aoc/src/year2020/Passwords.kiss b/projects/_standalone/aoc/src/year2020/Passwords.kiss similarity index 100% rename from projects/aoc/src/year2020/Passwords.kiss rename to projects/_standalone/aoc/src/year2020/Passwords.kiss diff --git a/projects/aoc/src/year2020/Seating.hx b/projects/_standalone/aoc/src/year2020/Seating.hx similarity index 100% rename from projects/aoc/src/year2020/Seating.hx rename to projects/_standalone/aoc/src/year2020/Seating.hx diff --git a/projects/aoc/src/year2020/Seating.kiss b/projects/_standalone/aoc/src/year2020/Seating.kiss similarity index 100% rename from projects/aoc/src/year2020/Seating.kiss rename to projects/_standalone/aoc/src/year2020/Seating.kiss diff --git a/projects/aoc/src/year2020/Solutions2020.hx b/projects/_standalone/aoc/src/year2020/Solutions2020.hx similarity index 100% rename from projects/aoc/src/year2020/Solutions2020.hx rename to projects/_standalone/aoc/src/year2020/Solutions2020.hx diff --git a/projects/aoc/src/year2020/Solutions2020.kiss b/projects/_standalone/aoc/src/year2020/Solutions2020.kiss similarity index 100% rename from projects/aoc/src/year2020/Solutions2020.kiss rename to projects/_standalone/aoc/src/year2020/Solutions2020.kiss diff --git a/projects/aoc/src/year2020/SummingTuples.hx b/projects/_standalone/aoc/src/year2020/SummingTuples.hx similarity index 100% rename from projects/aoc/src/year2020/SummingTuples.hx rename to projects/_standalone/aoc/src/year2020/SummingTuples.hx diff --git a/projects/aoc/src/year2020/SummingTuples.kiss b/projects/_standalone/aoc/src/year2020/SummingTuples.kiss similarity index 100% rename from projects/aoc/src/year2020/SummingTuples.kiss rename to projects/_standalone/aoc/src/year2020/SummingTuples.kiss diff --git a/projects/aoc/src/year2020/Toboggan.hx b/projects/_standalone/aoc/src/year2020/Toboggan.hx similarity index 100% rename from projects/aoc/src/year2020/Toboggan.hx rename to projects/_standalone/aoc/src/year2020/Toboggan.hx diff --git a/projects/aoc/src/year2020/Toboggan.kiss b/projects/_standalone/aoc/src/year2020/Toboggan.kiss similarity index 100% rename from projects/aoc/src/year2020/Toboggan.kiss rename to projects/_standalone/aoc/src/year2020/Toboggan.kiss diff --git a/projects/aoc/src/year2020/XMAS.hx b/projects/_standalone/aoc/src/year2020/XMAS.hx similarity index 100% rename from projects/aoc/src/year2020/XMAS.hx rename to projects/_standalone/aoc/src/year2020/XMAS.hx diff --git a/projects/aoc/src/year2020/XMAS.kiss b/projects/_standalone/aoc/src/year2020/XMAS.kiss similarity index 100% rename from projects/aoc/src/year2020/XMAS.kiss rename to projects/_standalone/aoc/src/year2020/XMAS.kiss diff --git a/projects/aoc/src/year2020/inputs/day1-1.txt b/projects/_standalone/aoc/src/year2020/inputs/day1-1.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day1-1.txt rename to projects/_standalone/aoc/src/year2020/inputs/day1-1.txt diff --git a/projects/aoc/src/year2020/inputs/day10.txt b/projects/_standalone/aoc/src/year2020/inputs/day10.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day10.txt rename to projects/_standalone/aoc/src/year2020/inputs/day10.txt diff --git a/projects/aoc/src/year2020/inputs/day11-example.txt b/projects/_standalone/aoc/src/year2020/inputs/day11-example.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day11-example.txt rename to projects/_standalone/aoc/src/year2020/inputs/day11-example.txt diff --git a/projects/aoc/src/year2020/inputs/day11.txt b/projects/_standalone/aoc/src/year2020/inputs/day11.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day11.txt rename to projects/_standalone/aoc/src/year2020/inputs/day11.txt diff --git a/projects/aoc/src/year2020/inputs/day12.txt b/projects/_standalone/aoc/src/year2020/inputs/day12.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day12.txt rename to projects/_standalone/aoc/src/year2020/inputs/day12.txt diff --git a/projects/aoc/src/year2020/inputs/day2-1.txt b/projects/_standalone/aoc/src/year2020/inputs/day2-1.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day2-1.txt rename to projects/_standalone/aoc/src/year2020/inputs/day2-1.txt diff --git a/projects/aoc/src/year2020/inputs/day3-1.txt b/projects/_standalone/aoc/src/year2020/inputs/day3-1.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day3-1.txt rename to projects/_standalone/aoc/src/year2020/inputs/day3-1.txt diff --git a/projects/aoc/src/year2020/inputs/day4-1.txt b/projects/_standalone/aoc/src/year2020/inputs/day4-1.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day4-1.txt rename to projects/_standalone/aoc/src/year2020/inputs/day4-1.txt diff --git a/projects/aoc/src/year2020/inputs/day4-example.txt b/projects/_standalone/aoc/src/year2020/inputs/day4-example.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day4-example.txt rename to projects/_standalone/aoc/src/year2020/inputs/day4-example.txt diff --git a/projects/aoc/src/year2020/inputs/day5-1.txt b/projects/_standalone/aoc/src/year2020/inputs/day5-1.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day5-1.txt rename to projects/_standalone/aoc/src/year2020/inputs/day5-1.txt diff --git a/projects/aoc/src/year2020/inputs/day6-1.txt b/projects/_standalone/aoc/src/year2020/inputs/day6-1.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day6-1.txt rename to projects/_standalone/aoc/src/year2020/inputs/day6-1.txt diff --git a/projects/aoc/src/year2020/inputs/day6-example2.txt b/projects/_standalone/aoc/src/year2020/inputs/day6-example2.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day6-example2.txt rename to projects/_standalone/aoc/src/year2020/inputs/day6-example2.txt diff --git a/projects/aoc/src/year2020/inputs/day7.txt b/projects/_standalone/aoc/src/year2020/inputs/day7.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day7.txt rename to projects/_standalone/aoc/src/year2020/inputs/day7.txt diff --git a/projects/aoc/src/year2020/inputs/day8-example.txt b/projects/_standalone/aoc/src/year2020/inputs/day8-example.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day8-example.txt rename to projects/_standalone/aoc/src/year2020/inputs/day8-example.txt diff --git a/projects/aoc/src/year2020/inputs/day8.txt b/projects/_standalone/aoc/src/year2020/inputs/day8.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day8.txt rename to projects/_standalone/aoc/src/year2020/inputs/day8.txt diff --git a/projects/aoc/src/year2020/inputs/day9.txt b/projects/_standalone/aoc/src/year2020/inputs/day9.txt similarity index 100% rename from projects/aoc/src/year2020/inputs/day9.txt rename to projects/_standalone/aoc/src/year2020/inputs/day9.txt diff --git a/projects/aoc/src/year2021/Day10.hx b/projects/_standalone/aoc/src/year2021/Day10.hx similarity index 100% rename from projects/aoc/src/year2021/Day10.hx rename to projects/_standalone/aoc/src/year2021/Day10.hx diff --git a/projects/aoc/src/year2021/Day4.hx b/projects/_standalone/aoc/src/year2021/Day4.hx similarity index 100% rename from projects/aoc/src/year2021/Day4.hx rename to projects/_standalone/aoc/src/year2021/Day4.hx diff --git a/projects/aoc/src/year2021/Day5.hx b/projects/_standalone/aoc/src/year2021/Day5.hx similarity index 100% rename from projects/aoc/src/year2021/Day5.hx rename to projects/_standalone/aoc/src/year2021/Day5.hx diff --git a/projects/aoc/src/year2021/Solutions2021.hx b/projects/_standalone/aoc/src/year2021/Solutions2021.hx similarity index 100% rename from projects/aoc/src/year2021/Solutions2021.hx rename to projects/_standalone/aoc/src/year2021/Solutions2021.hx diff --git a/projects/aoc/src/year2021/Solutions2021.kiss b/projects/_standalone/aoc/src/year2021/Solutions2021.kiss similarity index 100% rename from projects/aoc/src/year2021/Solutions2021.kiss rename to projects/_standalone/aoc/src/year2021/Solutions2021.kiss diff --git a/projects/aoc/src/year2021/day1.kiss b/projects/_standalone/aoc/src/year2021/day1.kiss similarity index 100% rename from projects/aoc/src/year2021/day1.kiss rename to projects/_standalone/aoc/src/year2021/day1.kiss diff --git a/projects/aoc/src/year2021/day10.kiss b/projects/_standalone/aoc/src/year2021/day10.kiss similarity index 100% rename from projects/aoc/src/year2021/day10.kiss rename to projects/_standalone/aoc/src/year2021/day10.kiss diff --git a/projects/aoc/src/year2021/day11.kiss b/projects/_standalone/aoc/src/year2021/day11.kiss similarity index 100% rename from projects/aoc/src/year2021/day11.kiss rename to projects/_standalone/aoc/src/year2021/day11.kiss diff --git a/projects/aoc/src/year2021/day12.kiss b/projects/_standalone/aoc/src/year2021/day12.kiss similarity index 100% rename from projects/aoc/src/year2021/day12.kiss rename to projects/_standalone/aoc/src/year2021/day12.kiss diff --git a/projects/aoc/src/year2021/day2.kiss b/projects/_standalone/aoc/src/year2021/day2.kiss similarity index 100% rename from projects/aoc/src/year2021/day2.kiss rename to projects/_standalone/aoc/src/year2021/day2.kiss diff --git a/projects/aoc/src/year2021/day3.kiss b/projects/_standalone/aoc/src/year2021/day3.kiss similarity index 100% rename from projects/aoc/src/year2021/day3.kiss rename to projects/_standalone/aoc/src/year2021/day3.kiss diff --git a/projects/aoc/src/year2021/day4.kiss b/projects/_standalone/aoc/src/year2021/day4.kiss similarity index 100% rename from projects/aoc/src/year2021/day4.kiss rename to projects/_standalone/aoc/src/year2021/day4.kiss diff --git a/projects/aoc/src/year2021/day5.kiss b/projects/_standalone/aoc/src/year2021/day5.kiss similarity index 100% rename from projects/aoc/src/year2021/day5.kiss rename to projects/_standalone/aoc/src/year2021/day5.kiss diff --git a/projects/aoc/src/year2021/day6.kiss b/projects/_standalone/aoc/src/year2021/day6.kiss similarity index 100% rename from projects/aoc/src/year2021/day6.kiss rename to projects/_standalone/aoc/src/year2021/day6.kiss diff --git a/projects/aoc/src/year2021/day7.kiss b/projects/_standalone/aoc/src/year2021/day7.kiss similarity index 100% rename from projects/aoc/src/year2021/day7.kiss rename to projects/_standalone/aoc/src/year2021/day7.kiss diff --git a/projects/aoc/src/year2021/day9.kiss b/projects/_standalone/aoc/src/year2021/day9.kiss similarity index 100% rename from projects/aoc/src/year2021/day9.kiss rename to projects/_standalone/aoc/src/year2021/day9.kiss diff --git a/projects/aoc/src/year2021/inputs/day1.txt b/projects/_standalone/aoc/src/year2021/inputs/day1.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day1.txt rename to projects/_standalone/aoc/src/year2021/inputs/day1.txt diff --git a/projects/aoc/src/year2021/inputs/day10-example.txt b/projects/_standalone/aoc/src/year2021/inputs/day10-example.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day10-example.txt rename to projects/_standalone/aoc/src/year2021/inputs/day10-example.txt diff --git a/projects/aoc/src/year2021/inputs/day10.txt b/projects/_standalone/aoc/src/year2021/inputs/day10.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day10.txt rename to projects/_standalone/aoc/src/year2021/inputs/day10.txt diff --git a/projects/aoc/src/year2021/inputs/day11-example.txt b/projects/_standalone/aoc/src/year2021/inputs/day11-example.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day11-example.txt rename to projects/_standalone/aoc/src/year2021/inputs/day11-example.txt diff --git a/projects/aoc/src/year2021/inputs/day11.txt b/projects/_standalone/aoc/src/year2021/inputs/day11.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day11.txt rename to projects/_standalone/aoc/src/year2021/inputs/day11.txt diff --git a/projects/aoc/src/year2021/inputs/day12-example.txt b/projects/_standalone/aoc/src/year2021/inputs/day12-example.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day12-example.txt rename to projects/_standalone/aoc/src/year2021/inputs/day12-example.txt diff --git a/projects/aoc/src/year2021/inputs/day12.txt b/projects/_standalone/aoc/src/year2021/inputs/day12.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day12.txt rename to projects/_standalone/aoc/src/year2021/inputs/day12.txt diff --git a/projects/aoc/src/year2021/inputs/day2.txt b/projects/_standalone/aoc/src/year2021/inputs/day2.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day2.txt rename to projects/_standalone/aoc/src/year2021/inputs/day2.txt diff --git a/projects/aoc/src/year2021/inputs/day3.txt b/projects/_standalone/aoc/src/year2021/inputs/day3.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day3.txt rename to projects/_standalone/aoc/src/year2021/inputs/day3.txt diff --git a/projects/aoc/src/year2021/inputs/day4-example.txt b/projects/_standalone/aoc/src/year2021/inputs/day4-example.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day4-example.txt rename to projects/_standalone/aoc/src/year2021/inputs/day4-example.txt diff --git a/projects/aoc/src/year2021/inputs/day4.txt b/projects/_standalone/aoc/src/year2021/inputs/day4.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day4.txt rename to projects/_standalone/aoc/src/year2021/inputs/day4.txt diff --git a/projects/aoc/src/year2021/inputs/day5-example.txt b/projects/_standalone/aoc/src/year2021/inputs/day5-example.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day5-example.txt rename to projects/_standalone/aoc/src/year2021/inputs/day5-example.txt diff --git a/projects/aoc/src/year2021/inputs/day5.txt b/projects/_standalone/aoc/src/year2021/inputs/day5.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day5.txt rename to projects/_standalone/aoc/src/year2021/inputs/day5.txt diff --git a/projects/aoc/src/year2021/inputs/day6-example.txt b/projects/_standalone/aoc/src/year2021/inputs/day6-example.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day6-example.txt rename to projects/_standalone/aoc/src/year2021/inputs/day6-example.txt diff --git a/projects/aoc/src/year2021/inputs/day6.txt b/projects/_standalone/aoc/src/year2021/inputs/day6.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day6.txt rename to projects/_standalone/aoc/src/year2021/inputs/day6.txt diff --git a/projects/aoc/src/year2021/inputs/day7-example.txt b/projects/_standalone/aoc/src/year2021/inputs/day7-example.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day7-example.txt rename to projects/_standalone/aoc/src/year2021/inputs/day7-example.txt diff --git a/projects/aoc/src/year2021/inputs/day7.txt b/projects/_standalone/aoc/src/year2021/inputs/day7.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day7.txt rename to projects/_standalone/aoc/src/year2021/inputs/day7.txt diff --git a/projects/aoc/src/year2021/inputs/day9-example.txt b/projects/_standalone/aoc/src/year2021/inputs/day9-example.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day9-example.txt rename to projects/_standalone/aoc/src/year2021/inputs/day9-example.txt diff --git a/projects/aoc/src/year2021/inputs/day9.txt b/projects/_standalone/aoc/src/year2021/inputs/day9.txt similarity index 100% rename from projects/aoc/src/year2021/inputs/day9.txt rename to projects/_standalone/aoc/src/year2021/inputs/day9.txt diff --git a/projects/aoc/src/year2022/Day1.kiss b/projects/_standalone/aoc/src/year2022/Day1.kiss similarity index 100% rename from projects/aoc/src/year2022/Day1.kiss rename to projects/_standalone/aoc/src/year2022/Day1.kiss diff --git a/projects/aoc/src/year2022/Day10.kiss b/projects/_standalone/aoc/src/year2022/Day10.kiss similarity index 100% rename from projects/aoc/src/year2022/Day10.kiss rename to projects/_standalone/aoc/src/year2022/Day10.kiss diff --git a/projects/aoc/src/year2022/Day11.kiss b/projects/_standalone/aoc/src/year2022/Day11.kiss similarity index 100% rename from projects/aoc/src/year2022/Day11.kiss rename to projects/_standalone/aoc/src/year2022/Day11.kiss diff --git a/projects/aoc/src/year2022/Day13.kiss b/projects/_standalone/aoc/src/year2022/Day13.kiss similarity index 100% rename from projects/aoc/src/year2022/Day13.kiss rename to projects/_standalone/aoc/src/year2022/Day13.kiss diff --git a/projects/aoc/src/year2022/Day2.kiss b/projects/_standalone/aoc/src/year2022/Day2.kiss similarity index 100% rename from projects/aoc/src/year2022/Day2.kiss rename to projects/_standalone/aoc/src/year2022/Day2.kiss diff --git a/projects/aoc/src/year2022/Day3.kiss b/projects/_standalone/aoc/src/year2022/Day3.kiss similarity index 100% rename from projects/aoc/src/year2022/Day3.kiss rename to projects/_standalone/aoc/src/year2022/Day3.kiss diff --git a/projects/aoc/src/year2022/Day4.kiss b/projects/_standalone/aoc/src/year2022/Day4.kiss similarity index 100% rename from projects/aoc/src/year2022/Day4.kiss rename to projects/_standalone/aoc/src/year2022/Day4.kiss diff --git a/projects/aoc/src/year2022/Day5.kiss b/projects/_standalone/aoc/src/year2022/Day5.kiss similarity index 100% rename from projects/aoc/src/year2022/Day5.kiss rename to projects/_standalone/aoc/src/year2022/Day5.kiss diff --git a/projects/aoc/src/year2022/Day6.kiss b/projects/_standalone/aoc/src/year2022/Day6.kiss similarity index 100% rename from projects/aoc/src/year2022/Day6.kiss rename to projects/_standalone/aoc/src/year2022/Day6.kiss diff --git a/projects/aoc/src/year2022/Day7.kiss b/projects/_standalone/aoc/src/year2022/Day7.kiss similarity index 100% rename from projects/aoc/src/year2022/Day7.kiss rename to projects/_standalone/aoc/src/year2022/Day7.kiss diff --git a/projects/aoc/src/year2022/Day8.kiss b/projects/_standalone/aoc/src/year2022/Day8.kiss similarity index 100% rename from projects/aoc/src/year2022/Day8.kiss rename to projects/_standalone/aoc/src/year2022/Day8.kiss diff --git a/projects/aoc/src/year2022/FileSystem.hx b/projects/_standalone/aoc/src/year2022/FileSystem.hx similarity index 100% rename from projects/aoc/src/year2022/FileSystem.hx rename to projects/_standalone/aoc/src/year2022/FileSystem.hx diff --git a/projects/aoc/src/year2022/Food.hx b/projects/_standalone/aoc/src/year2022/Food.hx similarity index 100% rename from projects/aoc/src/year2022/Food.hx rename to projects/_standalone/aoc/src/year2022/Food.hx diff --git a/projects/aoc/src/year2022/ListOrdering.hx b/projects/_standalone/aoc/src/year2022/ListOrdering.hx similarity index 100% rename from projects/aoc/src/year2022/ListOrdering.hx rename to projects/_standalone/aoc/src/year2022/ListOrdering.hx diff --git a/projects/aoc/src/year2022/Monkey.hx b/projects/_standalone/aoc/src/year2022/Monkey.hx similarity index 100% rename from projects/aoc/src/year2022/Monkey.hx rename to projects/_standalone/aoc/src/year2022/Monkey.hx diff --git a/projects/aoc/src/year2022/MonkeyDSL.kiss b/projects/_standalone/aoc/src/year2022/MonkeyDSL.kiss similarity index 100% rename from projects/aoc/src/year2022/MonkeyDSL.kiss rename to projects/_standalone/aoc/src/year2022/MonkeyDSL.kiss diff --git a/projects/aoc/src/year2022/OpCode.hx b/projects/_standalone/aoc/src/year2022/OpCode.hx similarity index 100% rename from projects/aoc/src/year2022/OpCode.hx rename to projects/_standalone/aoc/src/year2022/OpCode.hx diff --git a/projects/aoc/src/year2022/Solutions2022.kiss b/projects/_standalone/aoc/src/year2022/Solutions2022.kiss similarity index 100% rename from projects/aoc/src/year2022/Solutions2022.kiss rename to projects/_standalone/aoc/src/year2022/Solutions2022.kiss diff --git a/projects/aoc/src/year2022/inputs/Day11.monkeys b/projects/_standalone/aoc/src/year2022/inputs/Day11.monkeys similarity index 100% rename from projects/aoc/src/year2022/inputs/Day11.monkeys rename to projects/_standalone/aoc/src/year2022/inputs/Day11.monkeys diff --git a/projects/aoc/src/year2022/inputs/Day11Example.monkeys b/projects/_standalone/aoc/src/year2022/inputs/Day11Example.monkeys similarity index 100% rename from projects/aoc/src/year2022/inputs/Day11Example.monkeys rename to projects/_standalone/aoc/src/year2022/inputs/Day11Example.monkeys diff --git a/projects/aoc/src/year2022/inputs/day1.txt b/projects/_standalone/aoc/src/year2022/inputs/day1.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day1.txt rename to projects/_standalone/aoc/src/year2022/inputs/day1.txt diff --git a/projects/aoc/src/year2022/inputs/day10.txt b/projects/_standalone/aoc/src/year2022/inputs/day10.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day10.txt rename to projects/_standalone/aoc/src/year2022/inputs/day10.txt diff --git a/projects/aoc/src/year2022/inputs/day10example.txt b/projects/_standalone/aoc/src/year2022/inputs/day10example.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day10example.txt rename to projects/_standalone/aoc/src/year2022/inputs/day10example.txt diff --git a/projects/aoc/src/year2022/inputs/day13.txt b/projects/_standalone/aoc/src/year2022/inputs/day13.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day13.txt rename to projects/_standalone/aoc/src/year2022/inputs/day13.txt diff --git a/projects/aoc/src/year2022/inputs/day13example.txt b/projects/_standalone/aoc/src/year2022/inputs/day13example.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day13example.txt rename to projects/_standalone/aoc/src/year2022/inputs/day13example.txt diff --git a/projects/aoc/src/year2022/inputs/day2.txt b/projects/_standalone/aoc/src/year2022/inputs/day2.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day2.txt rename to projects/_standalone/aoc/src/year2022/inputs/day2.txt diff --git a/projects/aoc/src/year2022/inputs/day3.txt b/projects/_standalone/aoc/src/year2022/inputs/day3.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day3.txt rename to projects/_standalone/aoc/src/year2022/inputs/day3.txt diff --git a/projects/aoc/src/year2022/inputs/day4.txt b/projects/_standalone/aoc/src/year2022/inputs/day4.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day4.txt rename to projects/_standalone/aoc/src/year2022/inputs/day4.txt diff --git a/projects/aoc/src/year2022/inputs/day5.txt b/projects/_standalone/aoc/src/year2022/inputs/day5.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day5.txt rename to projects/_standalone/aoc/src/year2022/inputs/day5.txt diff --git a/projects/aoc/src/year2022/inputs/day6.txt b/projects/_standalone/aoc/src/year2022/inputs/day6.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day6.txt rename to projects/_standalone/aoc/src/year2022/inputs/day6.txt diff --git a/projects/aoc/src/year2022/inputs/day7.txt b/projects/_standalone/aoc/src/year2022/inputs/day7.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day7.txt rename to projects/_standalone/aoc/src/year2022/inputs/day7.txt diff --git a/projects/aoc/src/year2022/inputs/day8.txt b/projects/_standalone/aoc/src/year2022/inputs/day8.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day8.txt rename to projects/_standalone/aoc/src/year2022/inputs/day8.txt diff --git a/projects/aoc/src/year2022/inputs/day8example.txt b/projects/_standalone/aoc/src/year2022/inputs/day8example.txt similarity index 100% rename from projects/aoc/src/year2022/inputs/day8example.txt rename to projects/_standalone/aoc/src/year2022/inputs/day8example.txt diff --git a/projects/aoc/test.sh b/projects/_standalone/aoc/test.sh similarity index 100% rename from projects/aoc/test.sh rename to projects/_standalone/aoc/test.sh diff --git a/projects/duplicate-text-editor/.gitignore b/projects/_standalone/duplicate-text-editor/.gitignore similarity index 100% rename from projects/duplicate-text-editor/.gitignore rename to projects/_standalone/duplicate-text-editor/.gitignore diff --git a/projects/duplicate-text-editor/.vscode/launch.json b/projects/_standalone/duplicate-text-editor/.vscode/launch.json similarity index 100% rename from projects/duplicate-text-editor/.vscode/launch.json rename to projects/_standalone/duplicate-text-editor/.vscode/launch.json diff --git a/projects/duplicate-text-editor/.vscode/tasks.json b/projects/_standalone/duplicate-text-editor/.vscode/tasks.json similarity index 100% rename from projects/duplicate-text-editor/.vscode/tasks.json rename to projects/_standalone/duplicate-text-editor/.vscode/tasks.json diff --git a/projects/duplicate-text-editor/.vscodeignore b/projects/_standalone/duplicate-text-editor/.vscodeignore similarity index 100% rename from projects/duplicate-text-editor/.vscodeignore rename to projects/_standalone/duplicate-text-editor/.vscodeignore diff --git a/projects/duplicate-text-editor/README.md b/projects/_standalone/duplicate-text-editor/README.md similarity index 100% rename from projects/duplicate-text-editor/README.md rename to projects/_standalone/duplicate-text-editor/README.md diff --git a/projects/duplicate-text-editor/build.hxml b/projects/_standalone/duplicate-text-editor/build.hxml similarity index 100% rename from projects/duplicate-text-editor/build.hxml rename to projects/_standalone/duplicate-text-editor/build.hxml diff --git a/projects/duplicate-text-editor/package-lock.json b/projects/_standalone/duplicate-text-editor/package-lock.json similarity index 100% rename from projects/duplicate-text-editor/package-lock.json rename to projects/_standalone/duplicate-text-editor/package-lock.json diff --git a/projects/duplicate-text-editor/package.json b/projects/_standalone/duplicate-text-editor/package.json similarity index 100% rename from projects/duplicate-text-editor/package.json rename to projects/_standalone/duplicate-text-editor/package.json diff --git a/projects/duplicate-text-editor/src/Main.hx b/projects/_standalone/duplicate-text-editor/src/Main.hx similarity index 100% rename from projects/duplicate-text-editor/src/Main.hx rename to projects/_standalone/duplicate-text-editor/src/Main.hx diff --git a/projects/duplicate-text-editor/src/Main.kiss b/projects/_standalone/duplicate-text-editor/src/Main.kiss similarity index 100% rename from projects/duplicate-text-editor/src/Main.kiss rename to projects/_standalone/duplicate-text-editor/src/Main.kiss diff --git a/projects/duplicate-text-editor/test.sh b/projects/_standalone/duplicate-text-editor/test.sh similarity index 100% rename from projects/duplicate-text-editor/test.sh rename to projects/_standalone/duplicate-text-editor/test.sh diff --git a/projects/duplicate-text-editor/test/file.txt b/projects/_standalone/duplicate-text-editor/test/file.txt similarity index 100% rename from projects/duplicate-text-editor/test/file.txt rename to projects/_standalone/duplicate-text-editor/test/file.txt diff --git a/projects/duplicate-text-editor/test/file2.txt b/projects/_standalone/duplicate-text-editor/test/file2.txt similarity index 100% rename from projects/duplicate-text-editor/test/file2.txt rename to projects/_standalone/duplicate-text-editor/test/file2.txt diff --git a/projects/flixel-desktop-habit-puzzle-game/.gitignore b/projects/_standalone/flixel-desktop-habit-puzzle-game/.gitignore similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/.gitignore rename to projects/_standalone/flixel-desktop-habit-puzzle-game/.gitignore diff --git a/projects/flixel-desktop-habit-puzzle-game/.vscode/extensions.json b/projects/_standalone/flixel-desktop-habit-puzzle-game/.vscode/extensions.json similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/.vscode/extensions.json rename to projects/_standalone/flixel-desktop-habit-puzzle-game/.vscode/extensions.json diff --git a/projects/flixel-desktop-habit-puzzle-game/.vscode/launch.json b/projects/_standalone/flixel-desktop-habit-puzzle-game/.vscode/launch.json similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/.vscode/launch.json rename to projects/_standalone/flixel-desktop-habit-puzzle-game/.vscode/launch.json diff --git a/projects/flixel-desktop-habit-puzzle-game/.vscode/settings.json b/projects/_standalone/flixel-desktop-habit-puzzle-game/.vscode/settings.json similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/.vscode/settings.json rename to projects/_standalone/flixel-desktop-habit-puzzle-game/.vscode/settings.json diff --git a/projects/flixel-desktop-habit-puzzle-game/.vscode/tasks.json b/projects/_standalone/flixel-desktop-habit-puzzle-game/.vscode/tasks.json similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/.vscode/tasks.json rename to projects/_standalone/flixel-desktop-habit-puzzle-game/.vscode/tasks.json diff --git a/projects/flixel-desktop-habit-puzzle-game/Project.xml b/projects/_standalone/flixel-desktop-habit-puzzle-game/Project.xml similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/Project.xml rename to projects/_standalone/flixel-desktop-habit-puzzle-game/Project.xml diff --git a/projects/flixel-desktop-habit-puzzle-game/assets/default.txt b/projects/_standalone/flixel-desktop-habit-puzzle-game/assets/default.txt similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/assets/default.txt rename to projects/_standalone/flixel-desktop-habit-puzzle-game/assets/default.txt diff --git a/projects/flixel-desktop-habit-puzzle-game/assets/ding.wav b/projects/_standalone/flixel-desktop-habit-puzzle-game/assets/ding.wav similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/assets/ding.wav rename to projects/_standalone/flixel-desktop-habit-puzzle-game/assets/ding.wav diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/1.markdown b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/1.markdown similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/1.markdown rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/1.markdown diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/2.markdown b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/2.markdown similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/2.markdown rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/2.markdown diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/8-15-22-a.gif b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/8-15-22-a.gif similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/8-15-22-a.gif rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/8-15-22-a.gif diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/8-15-22-b.gif b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/8-15-22-b.gif similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/8-15-22-b.gif rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/8-15-22-b.gif diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/IMG_20220911_144514349.jpg b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/IMG_20220911_144514349.jpg similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/IMG_20220911_144514349.jpg rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/IMG_20220911_144514349.jpg diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/cover.png b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/cover.png similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/cover.png rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/cover.png diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/gizmos.png b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/gizmos.png similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/gizmos.png rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/gizmos.png diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/habitica quest.png b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/habitica quest.png similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/habitica quest.png rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/habitica quest.png diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/layton-jigsaw.png b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/layton-jigsaw.png similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/layton-jigsaw.png rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/layton-jigsaw.png diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/playtest.gif b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/playtest.gif similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/playtest.gif rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/playtest.gif diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/stressTest.png b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/stressTest.png similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/stressTest.png rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/stressTest.png diff --git a/projects/flixel-desktop-habit-puzzle-game/devlog/stressTestZoom.png b/projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/stressTestZoom.png similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/devlog/stressTestZoom.png rename to projects/_standalone/flixel-desktop-habit-puzzle-game/devlog/stressTestZoom.png diff --git a/projects/flixel-desktop-habit-puzzle-game/hxformat.json b/projects/_standalone/flixel-desktop-habit-puzzle-game/hxformat.json similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/hxformat.json rename to projects/_standalone/flixel-desktop-habit-puzzle-game/hxformat.json diff --git a/projects/flixel-desktop-habit-puzzle-game/playtest-todo.txt b/projects/_standalone/flixel-desktop-habit-puzzle-game/playtest-todo.txt similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/playtest-todo.txt rename to projects/_standalone/flixel-desktop-habit-puzzle-game/playtest-todo.txt diff --git a/projects/flixel-desktop-habit-puzzle-game/requirements.hxml b/projects/_standalone/flixel-desktop-habit-puzzle-game/requirements.hxml similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/requirements.hxml rename to projects/_standalone/flixel-desktop-habit-puzzle-game/requirements.hxml diff --git a/projects/flixel-desktop-habit-puzzle-game/screenshots/10-01-22.gif b/projects/_standalone/flixel-desktop-habit-puzzle-game/screenshots/10-01-22.gif similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/screenshots/10-01-22.gif rename to projects/_standalone/flixel-desktop-habit-puzzle-game/screenshots/10-01-22.gif diff --git a/projects/flixel-desktop-habit-puzzle-game/screenshots/9-24-22.png b/projects/_standalone/flixel-desktop-habit-puzzle-game/screenshots/9-24-22.png similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/screenshots/9-24-22.png rename to projects/_standalone/flixel-desktop-habit-puzzle-game/screenshots/9-24-22.png diff --git a/projects/flixel-desktop-habit-puzzle-game/screenshots/screen1.png b/projects/_standalone/flixel-desktop-habit-puzzle-game/screenshots/screen1.png similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/screenshots/screen1.png rename to projects/_standalone/flixel-desktop-habit-puzzle-game/screenshots/screen1.png diff --git a/projects/flixel-desktop-habit-puzzle-game/source/Entry.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/Entry.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/Entry.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/Entry.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/Entry.kiss b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/Entry.kiss similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/Entry.kiss rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/Entry.kiss diff --git a/projects/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.kiss b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.kiss similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.kiss rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/FlxPomTimer.kiss diff --git a/projects/flixel-desktop-habit-puzzle-game/source/HabitModel.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/HabitModel.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/HabitModel.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/HabitModel.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/HabitModel.kiss b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/HabitModel.kiss similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/HabitModel.kiss rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/HabitModel.kiss diff --git a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/HabitState.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/HabitState.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/HabitState.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/HabitState.kiss similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/HabitState.kiss diff --git a/projects/flixel-desktop-habit-puzzle-game/source/Main.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/Main.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/Main.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/Main.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/PuzzlePack.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/PuzzlePack.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/PuzzlePack.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/PuzzlePack.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/PuzzlePack.kiss b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/PuzzlePack.kiss similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/PuzzlePack.kiss rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/PuzzlePack.kiss diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/openfl.svg b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/openfl.svg similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/openfl.svg rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/openfl.svg diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/tablecloth.jpg b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/tablecloth.jpg similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/tablecloth.jpg rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/Assets/tablecloth.jpg diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawMagicNumbers.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawMagicNumbers.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawMagicNumbers.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawMagicNumbers.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawPiece.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawPiece.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawPiece.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawPiece.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawSideData.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawSideData.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawSideData.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawSideData.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Jigsawx.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/Jigsawx.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Jigsawx.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/Jigsawx.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawxOpenfl.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawxOpenfl.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawxOpenfl.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawxOpenfl.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/LICENSE b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/LICENSE similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/LICENSE rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/LICENSE diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/OpenEllipse.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/OpenEllipse.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/OpenEllipse.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/OpenEllipse.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/README.md b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/README.md similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/README.md rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/README.md diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/application.xml b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/application.xml similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/application.xml rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/application.xml diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/compileOpenfl.hxml b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/compileOpenfl.hxml similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/compileOpenfl.hxml rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/compileOpenfl.hxml diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/ds/CircleIter.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/ds/CircleIter.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/ds/CircleIter.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/ds/CircleIter.hx diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/math/Vec2.hx b/projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/math/Vec2.hx similarity index 100% rename from projects/flixel-desktop-habit-puzzle-game/source/jigsawx/math/Vec2.hx rename to projects/_standalone/flixel-desktop-habit-puzzle-game/source/jigsawx/math/Vec2.hx diff --git a/projects/iso-rpg-engine/.gitignore b/projects/_standalone/iso-rpg-engine/.gitignore similarity index 100% rename from projects/iso-rpg-engine/.gitignore rename to projects/_standalone/iso-rpg-engine/.gitignore diff --git a/projects/iso-rpg-engine/.vscode/extensions.json b/projects/_standalone/iso-rpg-engine/.vscode/extensions.json similarity index 100% rename from projects/iso-rpg-engine/.vscode/extensions.json rename to projects/_standalone/iso-rpg-engine/.vscode/extensions.json diff --git a/projects/iso-rpg-engine/.vscode/launch.json b/projects/_standalone/iso-rpg-engine/.vscode/launch.json similarity index 100% rename from projects/iso-rpg-engine/.vscode/launch.json rename to projects/_standalone/iso-rpg-engine/.vscode/launch.json diff --git a/projects/iso-rpg-engine/.vscode/settings.json b/projects/_standalone/iso-rpg-engine/.vscode/settings.json similarity index 100% rename from projects/iso-rpg-engine/.vscode/settings.json rename to projects/_standalone/iso-rpg-engine/.vscode/settings.json diff --git a/projects/iso-rpg-engine/.vscode/tasks.json b/projects/_standalone/iso-rpg-engine/.vscode/tasks.json similarity index 100% rename from projects/iso-rpg-engine/.vscode/tasks.json rename to projects/_standalone/iso-rpg-engine/.vscode/tasks.json diff --git a/projects/iso-rpg-engine/Project.xml b/projects/_standalone/iso-rpg-engine/Project.xml similarity index 100% rename from projects/iso-rpg-engine/Project.xml rename to projects/_standalone/iso-rpg-engine/Project.xml diff --git a/projects/iso-rpg-engine/assets/bladesmoddata.txt b/projects/_standalone/iso-rpg-engine/assets/bladesmoddata.txt similarity index 100% rename from projects/iso-rpg-engine/assets/bladesmoddata.txt rename to projects/_standalone/iso-rpg-engine/assets/bladesmoddata.txt diff --git a/projects/iso-rpg-engine/assets/images/images-go-here.txt b/projects/_standalone/iso-rpg-engine/assets/images/images-go-here.txt similarity index 100% rename from projects/iso-rpg-engine/assets/images/images-go-here.txt rename to projects/_standalone/iso-rpg-engine/assets/images/images-go-here.txt diff --git a/projects/iso-rpg-engine/assets/music/music-goes-here.txt b/projects/_standalone/iso-rpg-engine/assets/music/music-goes-here.txt similarity index 100% rename from projects/iso-rpg-engine/assets/music/music-goes-here.txt rename to projects/_standalone/iso-rpg-engine/assets/music/music-goes-here.txt diff --git a/projects/iso-rpg-engine/assets/sounds/sounds-go-here.txt b/projects/_standalone/iso-rpg-engine/assets/sounds/sounds-go-here.txt similarity index 100% rename from projects/iso-rpg-engine/assets/sounds/sounds-go-here.txt rename to projects/_standalone/iso-rpg-engine/assets/sounds/sounds-go-here.txt diff --git a/projects/iso-rpg-engine/hxformat.json b/projects/_standalone/iso-rpg-engine/hxformat.json similarity index 100% rename from projects/iso-rpg-engine/hxformat.json rename to projects/_standalone/iso-rpg-engine/hxformat.json diff --git a/projects/iso-rpg-engine/source/AssetPaths.hx b/projects/_standalone/iso-rpg-engine/source/AssetPaths.hx similarity index 100% rename from projects/iso-rpg-engine/source/AssetPaths.hx rename to projects/_standalone/iso-rpg-engine/source/AssetPaths.hx diff --git a/projects/iso-rpg-engine/source/BladesMapState.hx b/projects/_standalone/iso-rpg-engine/source/BladesMapState.hx similarity index 100% rename from projects/iso-rpg-engine/source/BladesMapState.hx rename to projects/_standalone/iso-rpg-engine/source/BladesMapState.hx diff --git a/projects/iso-rpg-engine/source/BladesMapState.kiss b/projects/_standalone/iso-rpg-engine/source/BladesMapState.kiss similarity index 100% rename from projects/iso-rpg-engine/source/BladesMapState.kiss rename to projects/_standalone/iso-rpg-engine/source/BladesMapState.kiss diff --git a/projects/iso-rpg-engine/source/Bmp.hx b/projects/_standalone/iso-rpg-engine/source/Bmp.hx similarity index 100% rename from projects/iso-rpg-engine/source/Bmp.hx rename to projects/_standalone/iso-rpg-engine/source/Bmp.hx diff --git a/projects/iso-rpg-engine/source/Main.hx b/projects/_standalone/iso-rpg-engine/source/Main.hx similarity index 100% rename from projects/iso-rpg-engine/source/Main.hx rename to projects/_standalone/iso-rpg-engine/source/Main.hx diff --git a/projects/iso-rpg-engine/source/data/blades/CreatureData.hx b/projects/_standalone/iso-rpg-engine/source/data/blades/CreatureData.hx similarity index 100% rename from projects/iso-rpg-engine/source/data/blades/CreatureData.hx rename to projects/_standalone/iso-rpg-engine/source/data/blades/CreatureData.hx diff --git a/projects/iso-rpg-engine/source/data/blades/FloorData.hx b/projects/_standalone/iso-rpg-engine/source/data/blades/FloorData.hx similarity index 100% rename from projects/iso-rpg-engine/source/data/blades/FloorData.hx rename to projects/_standalone/iso-rpg-engine/source/data/blades/FloorData.hx diff --git a/projects/iso-rpg-engine/source/data/blades/ItemData.hx b/projects/_standalone/iso-rpg-engine/source/data/blades/ItemData.hx similarity index 100% rename from projects/iso-rpg-engine/source/data/blades/ItemData.hx rename to projects/_standalone/iso-rpg-engine/source/data/blades/ItemData.hx diff --git a/projects/iso-rpg-engine/source/data/blades/ScenData.hx b/projects/_standalone/iso-rpg-engine/source/data/blades/ScenData.hx similarity index 100% rename from projects/iso-rpg-engine/source/data/blades/ScenData.hx rename to projects/_standalone/iso-rpg-engine/source/data/blades/ScenData.hx diff --git a/projects/iso-rpg-engine/source/data/blades/Scenario.hx b/projects/_standalone/iso-rpg-engine/source/data/blades/Scenario.hx similarity index 100% rename from projects/iso-rpg-engine/source/data/blades/Scenario.hx rename to projects/_standalone/iso-rpg-engine/source/data/blades/Scenario.hx diff --git a/projects/iso-rpg-engine/source/data/blades/SpriteSheet.hx b/projects/_standalone/iso-rpg-engine/source/data/blades/SpriteSheet.hx similarity index 100% rename from projects/iso-rpg-engine/source/data/blades/SpriteSheet.hx rename to projects/_standalone/iso-rpg-engine/source/data/blades/SpriteSheet.hx diff --git a/projects/iso-rpg-engine/source/data/blades/SpriteSheet.kiss b/projects/_standalone/iso-rpg-engine/source/data/blades/SpriteSheet.kiss similarity index 100% rename from projects/iso-rpg-engine/source/data/blades/SpriteSheet.kiss rename to projects/_standalone/iso-rpg-engine/source/data/blades/SpriteSheet.kiss diff --git a/projects/iso-rpg-engine/source/data/blades/TerrainData.hx b/projects/_standalone/iso-rpg-engine/source/data/blades/TerrainData.hx similarity index 100% rename from projects/iso-rpg-engine/source/data/blades/TerrainData.hx rename to projects/_standalone/iso-rpg-engine/source/data/blades/TerrainData.hx diff --git a/projects/iso-rpg-engine/source/data/blades/TileMap.hx b/projects/_standalone/iso-rpg-engine/source/data/blades/TileMap.hx similarity index 100% rename from projects/iso-rpg-engine/source/data/blades/TileMap.hx rename to projects/_standalone/iso-rpg-engine/source/data/blades/TileMap.hx diff --git a/projects/kiss-cli-tests/.gitignore b/projects/_standalone/kiss-cli-tests/.gitignore similarity index 100% rename from projects/kiss-cli-tests/.gitignore rename to projects/_standalone/kiss-cli-tests/.gitignore diff --git a/projects/kiss-cli-tests/new-express-project-input.txt b/projects/_standalone/kiss-cli-tests/new-express-project-input.txt similarity index 100% rename from projects/kiss-cli-tests/new-express-project-input.txt rename to projects/_standalone/kiss-cli-tests/new-express-project-input.txt diff --git a/projects/kiss-cli-tests/new-flixel-project-input.txt b/projects/_standalone/kiss-cli-tests/new-flixel-project-input.txt similarity index 100% rename from projects/kiss-cli-tests/new-flixel-project-input.txt rename to projects/_standalone/kiss-cli-tests/new-flixel-project-input.txt diff --git a/projects/kiss-cli-tests/new-project-input.txt b/projects/_standalone/kiss-cli-tests/new-project-input.txt similarity index 100% rename from projects/kiss-cli-tests/new-project-input.txt rename to projects/_standalone/kiss-cli-tests/new-project-input.txt diff --git a/projects/kiss-cli-tests/test.sh b/projects/_standalone/kiss-cli-tests/test.sh similarity index 100% rename from projects/kiss-cli-tests/test.sh rename to projects/_standalone/kiss-cli-tests/test.sh diff --git a/projects/kiss-vscode/.gitignore b/projects/_standalone/kiss-vscode/.gitignore similarity index 100% rename from projects/kiss-vscode/.gitignore rename to projects/_standalone/kiss-vscode/.gitignore diff --git a/projects/kiss-vscode/.vscode/launch.json b/projects/_standalone/kiss-vscode/.vscode/launch.json similarity index 100% rename from projects/kiss-vscode/.vscode/launch.json rename to projects/_standalone/kiss-vscode/.vscode/launch.json diff --git a/projects/kiss-vscode/.vscode/tasks.json b/projects/_standalone/kiss-vscode/.vscode/tasks.json similarity index 100% rename from projects/kiss-vscode/.vscode/tasks.json rename to projects/_standalone/kiss-vscode/.vscode/tasks.json diff --git a/projects/kiss-vscode/.vscodeignore b/projects/_standalone/kiss-vscode/.vscodeignore similarity index 100% rename from projects/kiss-vscode/.vscodeignore rename to projects/_standalone/kiss-vscode/.vscodeignore diff --git a/projects/kiss-vscode/Kiss.configuration.json b/projects/_standalone/kiss-vscode/Kiss.configuration.json similarity index 100% rename from projects/kiss-vscode/Kiss.configuration.json rename to projects/_standalone/kiss-vscode/Kiss.configuration.json diff --git a/projects/kiss-vscode/README.md b/projects/_standalone/kiss-vscode/README.md similarity index 100% rename from projects/kiss-vscode/README.md rename to projects/_standalone/kiss-vscode/README.md diff --git a/projects/kiss-vscode/build.hxml b/projects/_standalone/kiss-vscode/build.hxml similarity index 100% rename from projects/kiss-vscode/build.hxml rename to projects/_standalone/kiss-vscode/build.hxml diff --git a/projects/kiss-vscode/package-lock.json b/projects/_standalone/kiss-vscode/package-lock.json similarity index 100% rename from projects/kiss-vscode/package-lock.json rename to projects/_standalone/kiss-vscode/package-lock.json diff --git a/projects/kiss-vscode/package.json b/projects/_standalone/kiss-vscode/package.json similarity index 100% rename from projects/kiss-vscode/package.json rename to projects/_standalone/kiss-vscode/package.json diff --git a/projects/kiss-vscode/src/Main.hx b/projects/_standalone/kiss-vscode/src/Main.hx similarity index 100% rename from projects/kiss-vscode/src/Main.hx rename to projects/_standalone/kiss-vscode/src/Main.hx diff --git a/projects/kiss-vscode/src/Main.kiss b/projects/_standalone/kiss-vscode/src/Main.kiss similarity index 100% rename from projects/kiss-vscode/src/Main.kiss rename to projects/_standalone/kiss-vscode/src/Main.kiss diff --git a/projects/kiss-vscode/src/commands/ExtensionTools.kiss b/projects/_standalone/kiss-vscode/src/commands/ExtensionTools.kiss similarity index 100% rename from projects/kiss-vscode/src/commands/ExtensionTools.kiss rename to projects/_standalone/kiss-vscode/src/commands/ExtensionTools.kiss diff --git a/projects/kiss-vscode/src/commands/KissTools.kiss b/projects/_standalone/kiss-vscode/src/commands/KissTools.kiss similarity index 100% rename from projects/kiss-vscode/src/commands/KissTools.kiss rename to projects/_standalone/kiss-vscode/src/commands/KissTools.kiss diff --git a/projects/kiss-vscode/src/commands/Lines.kiss b/projects/_standalone/kiss-vscode/src/commands/Lines.kiss similarity index 100% rename from projects/kiss-vscode/src/commands/Lines.kiss rename to projects/_standalone/kiss-vscode/src/commands/Lines.kiss diff --git a/projects/kiss-vscode/src/commands/_deprecated/EmacsPorts.kiss b/projects/_standalone/kiss-vscode/src/commands/_deprecated/EmacsPorts.kiss similarity index 100% rename from projects/kiss-vscode/src/commands/_deprecated/EmacsPorts.kiss rename to projects/_standalone/kiss-vscode/src/commands/_deprecated/EmacsPorts.kiss diff --git a/projects/kiss-vscode/syntaxes/codeblock.json b/projects/_standalone/kiss-vscode/syntaxes/codeblock.json similarity index 100% rename from projects/kiss-vscode/syntaxes/codeblock.json rename to projects/_standalone/kiss-vscode/syntaxes/codeblock.json diff --git a/projects/kiss-vscode/syntaxes/kiss.tmLanguage b/projects/_standalone/kiss-vscode/syntaxes/kiss.tmLanguage similarity index 100% rename from projects/kiss-vscode/syntaxes/kiss.tmLanguage rename to projects/_standalone/kiss-vscode/syntaxes/kiss.tmLanguage diff --git a/projects/kiss-vscode/test.sh b/projects/_standalone/kiss-vscode/test.sh similarity index 100% rename from projects/kiss-vscode/test.sh rename to projects/_standalone/kiss-vscode/test.sh diff --git a/projects/ksr-express/.gitignore b/projects/_standalone/ksr-express/.gitignore similarity index 100% rename from projects/ksr-express/.gitignore rename to projects/_standalone/ksr-express/.gitignore diff --git a/projects/ksr-express/build.hxml b/projects/_standalone/ksr-express/build.hxml similarity index 100% rename from projects/ksr-express/build.hxml rename to projects/_standalone/ksr-express/build.hxml diff --git a/projects/ksr-express/package-lock.json b/projects/_standalone/ksr-express/package-lock.json similarity index 100% rename from projects/ksr-express/package-lock.json rename to projects/_standalone/ksr-express/package-lock.json diff --git a/projects/ksr-express/package.json b/projects/_standalone/ksr-express/package.json similarity index 100% rename from projects/ksr-express/package.json rename to projects/_standalone/ksr-express/package.json diff --git a/projects/ksr-express/src/ksr_express/Engine.kiss b/projects/_standalone/ksr-express/src/ksr_express/Engine.kiss similarity index 100% rename from projects/ksr-express/src/ksr_express/Engine.kiss rename to projects/_standalone/ksr-express/src/ksr_express/Engine.kiss diff --git a/projects/ksr-express/test.sh b/projects/_standalone/ksr-express/test.sh similarity index 100% rename from projects/ksr-express/test.sh rename to projects/_standalone/ksr-express/test.sh diff --git a/projects/ktxt2/.gitignore b/projects/_standalone/ktxt2/.gitignore similarity index 100% rename from projects/ktxt2/.gitignore rename to projects/_standalone/ktxt2/.gitignore diff --git a/projects/ktxt2/.vscode/launch.json b/projects/_standalone/ktxt2/.vscode/launch.json similarity index 100% rename from projects/ktxt2/.vscode/launch.json rename to projects/_standalone/ktxt2/.vscode/launch.json diff --git a/projects/ktxt2/.vscode/tasks.json b/projects/_standalone/ktxt2/.vscode/tasks.json similarity index 100% rename from projects/ktxt2/.vscode/tasks.json rename to projects/_standalone/ktxt2/.vscode/tasks.json diff --git a/projects/ktxt2/.vscodeignore b/projects/_standalone/ktxt2/.vscodeignore similarity index 100% rename from projects/ktxt2/.vscodeignore rename to projects/_standalone/ktxt2/.vscodeignore diff --git a/projects/ktxt2/README.md b/projects/_standalone/ktxt2/README.md similarity index 100% rename from projects/ktxt2/README.md rename to projects/_standalone/ktxt2/README.md diff --git a/projects/ktxt2/build.hxml b/projects/_standalone/ktxt2/build.hxml similarity index 100% rename from projects/ktxt2/build.hxml rename to projects/_standalone/ktxt2/build.hxml diff --git a/projects/ktxt2/package-lock.json b/projects/_standalone/ktxt2/package-lock.json similarity index 100% rename from projects/ktxt2/package-lock.json rename to projects/_standalone/ktxt2/package-lock.json diff --git a/projects/ktxt2/package.json b/projects/_standalone/ktxt2/package.json similarity index 100% rename from projects/ktxt2/package.json rename to projects/_standalone/ktxt2/package.json diff --git a/projects/ktxt2/src/ktxt2/Commands.kiss b/projects/_standalone/ktxt2/src/ktxt2/Commands.kiss similarity index 100% rename from projects/ktxt2/src/ktxt2/Commands.kiss rename to projects/_standalone/ktxt2/src/ktxt2/Commands.kiss diff --git a/projects/ktxt2/src/ktxt2/EditorExterns.hx b/projects/_standalone/ktxt2/src/ktxt2/EditorExterns.hx similarity index 100% rename from projects/ktxt2/src/ktxt2/EditorExterns.hx rename to projects/_standalone/ktxt2/src/ktxt2/EditorExterns.hx diff --git a/projects/ktxt2/src/ktxt2/KTxt2.hx b/projects/_standalone/ktxt2/src/ktxt2/KTxt2.hx similarity index 100% rename from projects/ktxt2/src/ktxt2/KTxt2.hx rename to projects/_standalone/ktxt2/src/ktxt2/KTxt2.hx diff --git a/projects/ktxt2/src/ktxt2/KTxt2.kiss b/projects/_standalone/ktxt2/src/ktxt2/KTxt2.kiss similarity index 100% rename from projects/ktxt2/src/ktxt2/KTxt2.kiss rename to projects/_standalone/ktxt2/src/ktxt2/KTxt2.kiss diff --git a/projects/ktxt2/src/ktxt2/KTxt2Editor.hx b/projects/_standalone/ktxt2/src/ktxt2/KTxt2Editor.hx similarity index 100% rename from projects/ktxt2/src/ktxt2/KTxt2Editor.hx rename to projects/_standalone/ktxt2/src/ktxt2/KTxt2Editor.hx diff --git a/projects/ktxt2/src/ktxt2/KTxt2Editor.kiss b/projects/_standalone/ktxt2/src/ktxt2/KTxt2Editor.kiss similarity index 100% rename from projects/ktxt2/src/ktxt2/KTxt2Editor.kiss rename to projects/_standalone/ktxt2/src/ktxt2/KTxt2Editor.kiss diff --git a/projects/ktxt2/src/ktxt2/KTxt2EditorProvider.hx b/projects/_standalone/ktxt2/src/ktxt2/KTxt2EditorProvider.hx similarity index 100% rename from projects/ktxt2/src/ktxt2/KTxt2EditorProvider.hx rename to projects/_standalone/ktxt2/src/ktxt2/KTxt2EditorProvider.hx diff --git a/projects/ktxt2/src/ktxt2/KTxt2EditorProvider.kiss b/projects/_standalone/ktxt2/src/ktxt2/KTxt2EditorProvider.kiss similarity index 100% rename from projects/ktxt2/src/ktxt2/KTxt2EditorProvider.kiss rename to projects/_standalone/ktxt2/src/ktxt2/KTxt2EditorProvider.kiss diff --git a/projects/ktxt2/src/ktxt2/Main.hx b/projects/_standalone/ktxt2/src/ktxt2/Main.hx similarity index 100% rename from projects/ktxt2/src/ktxt2/Main.hx rename to projects/_standalone/ktxt2/src/ktxt2/Main.hx diff --git a/projects/ktxt2/src/ktxt2/Main.kiss b/projects/_standalone/ktxt2/src/ktxt2/Main.kiss similarity index 100% rename from projects/ktxt2/src/ktxt2/Main.kiss rename to projects/_standalone/ktxt2/src/ktxt2/Main.kiss diff --git a/projects/ktxt2/src/ktxt2/NamesConversion.hx b/projects/_standalone/ktxt2/src/ktxt2/NamesConversion.hx similarity index 100% rename from projects/ktxt2/src/ktxt2/NamesConversion.hx rename to projects/_standalone/ktxt2/src/ktxt2/NamesConversion.hx diff --git a/projects/ktxt2/src/ktxt2/NamesConversion.kiss b/projects/_standalone/ktxt2/src/ktxt2/NamesConversion.kiss similarity index 100% rename from projects/ktxt2/src/ktxt2/NamesConversion.kiss rename to projects/_standalone/ktxt2/src/ktxt2/NamesConversion.kiss diff --git a/projects/ktxt2/src/ktxt2/RegexConversion.hx b/projects/_standalone/ktxt2/src/ktxt2/RegexConversion.hx similarity index 100% rename from projects/ktxt2/src/ktxt2/RegexConversion.hx rename to projects/_standalone/ktxt2/src/ktxt2/RegexConversion.hx diff --git a/projects/ktxt2/src/ktxt2/RegexConversion.kiss b/projects/_standalone/ktxt2/src/ktxt2/RegexConversion.kiss similarity index 100% rename from projects/ktxt2/src/ktxt2/RegexConversion.kiss rename to projects/_standalone/ktxt2/src/ktxt2/RegexConversion.kiss diff --git a/projects/ktxt2/src/ktxt2/StreamConversion.hx b/projects/_standalone/ktxt2/src/ktxt2/StreamConversion.hx similarity index 100% rename from projects/ktxt2/src/ktxt2/StreamConversion.hx rename to projects/_standalone/ktxt2/src/ktxt2/StreamConversion.hx diff --git a/projects/ktxt2/src/ktxt2/StreamConversion.kiss b/projects/_standalone/ktxt2/src/ktxt2/StreamConversion.kiss similarity index 100% rename from projects/ktxt2/src/ktxt2/StreamConversion.kiss rename to projects/_standalone/ktxt2/src/ktxt2/StreamConversion.kiss diff --git a/projects/ktxt2/src/ktxt2/conversions/FountainToHollywoo.kiss b/projects/_standalone/ktxt2/src/ktxt2/conversions/FountainToHollywoo.kiss similarity index 100% rename from projects/ktxt2/src/ktxt2/conversions/FountainToHollywoo.kiss rename to projects/_standalone/ktxt2/src/ktxt2/conversions/FountainToHollywoo.kiss diff --git a/projects/ktxt2/test.sh b/projects/_standalone/ktxt2/test.sh similarity index 100% rename from projects/ktxt2/test.sh rename to projects/_standalone/ktxt2/test.sh diff --git a/projects/nat-flixel-desktop-playground/.gitignore b/projects/_standalone/nat-flixel-desktop-playground/.gitignore similarity index 100% rename from projects/nat-flixel-desktop-playground/.gitignore rename to projects/_standalone/nat-flixel-desktop-playground/.gitignore diff --git a/projects/nat-flixel-desktop-playground/.vscode/extensions.json b/projects/_standalone/nat-flixel-desktop-playground/.vscode/extensions.json similarity index 100% rename from projects/nat-flixel-desktop-playground/.vscode/extensions.json rename to projects/_standalone/nat-flixel-desktop-playground/.vscode/extensions.json diff --git a/projects/nat-flixel-desktop-playground/.vscode/launch.json b/projects/_standalone/nat-flixel-desktop-playground/.vscode/launch.json similarity index 100% rename from projects/nat-flixel-desktop-playground/.vscode/launch.json rename to projects/_standalone/nat-flixel-desktop-playground/.vscode/launch.json diff --git a/projects/nat-flixel-desktop-playground/.vscode/settings.json b/projects/_standalone/nat-flixel-desktop-playground/.vscode/settings.json similarity index 100% rename from projects/nat-flixel-desktop-playground/.vscode/settings.json rename to projects/_standalone/nat-flixel-desktop-playground/.vscode/settings.json diff --git a/projects/nat-flixel-desktop-playground/.vscode/tasks.json b/projects/_standalone/nat-flixel-desktop-playground/.vscode/tasks.json similarity index 100% rename from projects/nat-flixel-desktop-playground/.vscode/tasks.json rename to projects/_standalone/nat-flixel-desktop-playground/.vscode/tasks.json diff --git a/projects/nat-flixel-desktop-playground/Project.xml b/projects/_standalone/nat-flixel-desktop-playground/Project.xml similarity index 100% rename from projects/nat-flixel-desktop-playground/Project.xml rename to projects/_standalone/nat-flixel-desktop-playground/Project.xml diff --git a/projects/nat-flixel-desktop-playground/README.md b/projects/_standalone/nat-flixel-desktop-playground/README.md similarity index 100% rename from projects/nat-flixel-desktop-playground/README.md rename to projects/_standalone/nat-flixel-desktop-playground/README.md diff --git a/projects/nat-flixel-desktop-playground/assets/data/data-goes-here.txt b/projects/_standalone/nat-flixel-desktop-playground/assets/data/data-goes-here.txt similarity index 100% rename from projects/nat-flixel-desktop-playground/assets/data/data-goes-here.txt rename to projects/_standalone/nat-flixel-desktop-playground/assets/data/data-goes-here.txt diff --git a/projects/nat-flixel-desktop-playground/assets/images/images-go-here.txt b/projects/_standalone/nat-flixel-desktop-playground/assets/images/images-go-here.txt similarity index 100% rename from projects/nat-flixel-desktop-playground/assets/images/images-go-here.txt rename to projects/_standalone/nat-flixel-desktop-playground/assets/images/images-go-here.txt diff --git a/projects/nat-flixel-desktop-playground/assets/music/music-goes-here.txt b/projects/_standalone/nat-flixel-desktop-playground/assets/music/music-goes-here.txt similarity index 100% rename from projects/nat-flixel-desktop-playground/assets/music/music-goes-here.txt rename to projects/_standalone/nat-flixel-desktop-playground/assets/music/music-goes-here.txt diff --git a/projects/nat-flixel-desktop-playground/assets/sounds/sounds-go-here.txt b/projects/_standalone/nat-flixel-desktop-playground/assets/sounds/sounds-go-here.txt similarity index 100% rename from projects/nat-flixel-desktop-playground/assets/sounds/sounds-go-here.txt rename to projects/_standalone/nat-flixel-desktop-playground/assets/sounds/sounds-go-here.txt diff --git a/projects/nat-flixel-desktop-playground/copy-extern-scripts.sh b/projects/_standalone/nat-flixel-desktop-playground/copy-extern-scripts.sh similarity index 100% rename from projects/nat-flixel-desktop-playground/copy-extern-scripts.sh rename to projects/_standalone/nat-flixel-desktop-playground/copy-extern-scripts.sh diff --git a/projects/nat-flixel-desktop-playground/hxformat.json b/projects/_standalone/nat-flixel-desktop-playground/hxformat.json similarity index 100% rename from projects/nat-flixel-desktop-playground/hxformat.json rename to projects/_standalone/nat-flixel-desktop-playground/hxformat.json diff --git a/projects/nat-flixel-desktop-playground/source/AssetPaths.hx b/projects/_standalone/nat-flixel-desktop-playground/source/AssetPaths.hx similarity index 100% rename from projects/nat-flixel-desktop-playground/source/AssetPaths.hx rename to projects/_standalone/nat-flixel-desktop-playground/source/AssetPaths.hx diff --git a/projects/nat-flixel-desktop-playground/source/EntrySprite.hx b/projects/_standalone/nat-flixel-desktop-playground/source/EntrySprite.hx similarity index 100% rename from projects/nat-flixel-desktop-playground/source/EntrySprite.hx rename to projects/_standalone/nat-flixel-desktop-playground/source/EntrySprite.hx diff --git a/projects/nat-flixel-desktop-playground/source/EntrySprite.kiss b/projects/_standalone/nat-flixel-desktop-playground/source/EntrySprite.kiss similarity index 100% rename from projects/nat-flixel-desktop-playground/source/EntrySprite.kiss rename to projects/_standalone/nat-flixel-desktop-playground/source/EntrySprite.kiss diff --git a/projects/nat-flixel-desktop-playground/source/EntrySpriteSystem.hx b/projects/_standalone/nat-flixel-desktop-playground/source/EntrySpriteSystem.hx similarity index 100% rename from projects/nat-flixel-desktop-playground/source/EntrySpriteSystem.hx rename to projects/_standalone/nat-flixel-desktop-playground/source/EntrySpriteSystem.hx diff --git a/projects/nat-flixel-desktop-playground/source/EntrySpriteSystem.kiss b/projects/_standalone/nat-flixel-desktop-playground/source/EntrySpriteSystem.kiss similarity index 100% rename from projects/nat-flixel-desktop-playground/source/EntrySpriteSystem.kiss rename to projects/_standalone/nat-flixel-desktop-playground/source/EntrySpriteSystem.kiss diff --git a/projects/nat-flixel-desktop-playground/source/Main.hx b/projects/_standalone/nat-flixel-desktop-playground/source/Main.hx similarity index 100% rename from projects/nat-flixel-desktop-playground/source/Main.hx rename to projects/_standalone/nat-flixel-desktop-playground/source/Main.hx diff --git a/projects/nat-flixel-desktop-playground/source/Main.kiss b/projects/_standalone/nat-flixel-desktop-playground/source/Main.kiss similarity index 100% rename from projects/nat-flixel-desktop-playground/source/Main.kiss rename to projects/_standalone/nat-flixel-desktop-playground/source/Main.kiss diff --git a/projects/nat-flixel-desktop-playground/source/PlayState.hx b/projects/_standalone/nat-flixel-desktop-playground/source/PlayState.hx similarity index 100% rename from projects/nat-flixel-desktop-playground/source/PlayState.hx rename to projects/_standalone/nat-flixel-desktop-playground/source/PlayState.hx diff --git a/projects/nat-flixel-desktop-playground/source/PlayState.kiss b/projects/_standalone/nat-flixel-desktop-playground/source/PlayState.kiss similarity index 100% rename from projects/nat-flixel-desktop-playground/source/PlayState.kiss rename to projects/_standalone/nat-flixel-desktop-playground/source/PlayState.kiss diff --git a/projects/nat-flixel-desktop-playground/source/import.hx b/projects/_standalone/nat-flixel-desktop-playground/source/import.hx similarity index 100% rename from projects/nat-flixel-desktop-playground/source/import.hx rename to projects/_standalone/nat-flixel-desktop-playground/source/import.hx diff --git a/projects/nat-globelet-playground/.gitignore b/projects/_standalone/nat-globelet-playground/.gitignore similarity index 100% rename from projects/nat-globelet-playground/.gitignore rename to projects/_standalone/nat-globelet-playground/.gitignore diff --git a/projects/nat-globelet-playground/build.hxml b/projects/_standalone/nat-globelet-playground/build.hxml similarity index 100% rename from projects/nat-globelet-playground/build.hxml rename to projects/_standalone/nat-globelet-playground/build.hxml diff --git a/projects/nat-globelet-playground/package-lock.json b/projects/_standalone/nat-globelet-playground/package-lock.json similarity index 100% rename from projects/nat-globelet-playground/package-lock.json rename to projects/_standalone/nat-globelet-playground/package-lock.json diff --git a/projects/nat-globelet-playground/package.json b/projects/_standalone/nat-globelet-playground/package.json similarity index 100% rename from projects/nat-globelet-playground/package.json rename to projects/_standalone/nat-globelet-playground/package.json diff --git a/projects/nat-globelet-playground/src/nat_globelet_playground/Main.hx b/projects/_standalone/nat-globelet-playground/src/nat_globelet_playground/Main.hx similarity index 100% rename from projects/nat-globelet-playground/src/nat_globelet_playground/Main.hx rename to projects/_standalone/nat-globelet-playground/src/nat_globelet_playground/Main.hx diff --git a/projects/nat-globelet-playground/src/nat_globelet_playground/Main_.kiss b/projects/_standalone/nat-globelet-playground/src/nat_globelet_playground/Main_.kiss similarity index 100% rename from projects/nat-globelet-playground/src/nat_globelet_playground/Main_.kiss rename to projects/_standalone/nat-globelet-playground/src/nat_globelet_playground/Main_.kiss diff --git a/projects/nat-globelet-playground/test.sh b/projects/_standalone/nat-globelet-playground/test.sh similarity index 100% rename from projects/nat-globelet-playground/test.sh rename to projects/_standalone/nat-globelet-playground/test.sh diff --git a/projects/nat-godot-playground/.gitignore b/projects/_standalone/nat-godot-playground/.gitignore similarity index 100% rename from projects/nat-godot-playground/.gitignore rename to projects/_standalone/nat-godot-playground/.gitignore diff --git a/projects/nat-godot-playground/EntryPanel.tscn b/projects/_standalone/nat-godot-playground/EntryPanel.tscn similarity index 100% rename from projects/nat-godot-playground/EntryPanel.tscn rename to projects/_standalone/nat-godot-playground/EntryPanel.tscn diff --git a/projects/nat-godot-playground/Main.tscn b/projects/_standalone/nat-godot-playground/Main.tscn similarity index 100% rename from projects/nat-godot-playground/Main.tscn rename to projects/_standalone/nat-godot-playground/Main.tscn diff --git a/projects/nat-godot-playground/Playground.tscn b/projects/_standalone/nat-godot-playground/Playground.tscn similarity index 100% rename from projects/nat-godot-playground/Playground.tscn rename to projects/_standalone/nat-godot-playground/Playground.tscn diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/LICENSE.md b/projects/_standalone/nat-godot-playground/addons/haxe/LICENSE.md new file mode 100644 index 00000000..8947f567 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/LICENSE.md @@ -0,0 +1,19 @@ +Copyright (c) 2021 Valentin Lemière + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/README.md b/projects/_standalone/nat-godot-playground/addons/haxe/README.md new file mode 100644 index 00000000..d6e85be4 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/README.md @@ -0,0 +1,71 @@ +![](https://raw.github.com/HaxeGodot/godot/main/.github/logo.png) + +[haxe externs](https://github.com/HaxeGodot/godot) | [editor plugin](https://github.com/HaxeGodot/editor-plugin) | [demo](https://github.com/HaxeGodot/squash-the-creeps-3d) | [api doc](https://haxegodot.github.io/godot/) | [discussions](https://github.com/HaxeGodot/godot/discussions) + +# Godot Editor Haxe Support Plugin + +Godot 3.3 engine editor plugin to help with Haxe development. + +The plugin is still in alpha, open an [issue](https://github.com/HaxeGodot/editor-plugin/issues) for bug reports or feature requests. + +## Installation + +The plugin isn't yet available on the godot asset library, to install it you can either: + +* [download this repository](https://github.com/HaxeGodot/editor-plugin/archive/refs/heads/main.zip) and extract it in the `addons/haxe` folder of your project + + You need to remove the `editor-plugin-main` folder added by github: have `addons/haxe/plugin.cfg` not `addons/haxe/editor-plugin-main/plugin.cfg` +* add it as a submodule `git submodule add https://github.com/HaxeGodot/editor-plugin.git addons/haxe` + +You need to enable the plugin by going in the Project -> Project Settings menu, Plugins tab, and checking the Enabled box for the Haxe plugin. + +## Setup + +Haxe support requires Godot C#, if it hasn't been setup click on Project -> Tools -> C# -> Create C# solution. + +The plugin can setup by clicking on the Project -> Tools -> Haxe -> Setup menu. + +This will check for the presence of the godot haxelib, update the C# solution and add a hxml. +If the project already contains some of these files the setup will be stopped. + +You can also do a [manual setup](#manual-setup) if you want more control. + +## Haxe scripts + +You can add/load/remove a Haxe script on a node by clicking on it, and in the inspector in Node -> Script -> Haxe Script click on the resource box. + +When creating or clicking Edit on an script it'll open in your editor. By default it is configured for VSCode, and can be changed in Project -> Project Settings -> Haxe -> External Editor. For now only `None` and `VSCode` are supported. + +### Building + +You need to build the Haxe code before launching your game, you can do that: + +* by manually using the hxml `haxe build.hxml` +* through your editor +* directly in the Godot editor in the bottom tab Haxe -> Build Haxe Project + +Note: The files in `scripts/` must all define their main type, for a file `Foo.hx` you must have the type `Foo`, otherwise compilation will fail. + +## Manual setup + +Example hxml: +```hxml +--cs build +--define net-ver=50 +--define no-compilation +--define analyzer-optimize +--class-path scripts +--library godot +--macro godot.Godot.buildProject() +--dce full +``` + +Modify the `` of the `csproj` file: +```xml +true +netstandard2.1 +``` + +## License + +The plugin is MIT licensed. diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/icons/haxe.svg b/projects/_standalone/nat-godot-playground/addons/haxe/icons/haxe.svg new file mode 100644 index 00000000..04777bb0 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/icons/haxe.svg @@ -0,0 +1,126 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/plugin.cfg b/projects/_standalone/nat-godot-playground/addons/haxe/plugin.cfg new file mode 100644 index 00000000..547ff528 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Haxe" +description="Haxe support for the Godot engine." +author="ibilon" +version="0.1.0" +script="scripts/haxe.gd" diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scenes/about.tscn b/projects/_standalone/nat-godot-playground/addons/haxe/scenes/about.tscn new file mode 100644 index 00000000..5f27caaf --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scenes/about.tscn @@ -0,0 +1,14 @@ +[gd_scene format=2] + +[node name="About" type="AcceptDialog"] +margin_right = 83.0 +margin_bottom = 58.0 +window_title = "About Haxe support" +dialog_text = "This plugin adds support for the Haxe programming language. +Haxe support is in alpha. + +Discuss usage at: https://github.com/HaxeGodot/godot/discussions + +Report bugs about the editor plugin at: https://github.com/HaxeGodot/editor-plugin/issues/ +Report bugs about the code support at: https://github.com/HaxeGodot/godot/issues/ +" diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scenes/building.tscn b/projects/_standalone/nat-godot-playground/addons/haxe/scenes/building.tscn new file mode 100644 index 00000000..a55795c4 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scenes/building.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/haxe/scripts/building.gd" type="Script" id=1] + +[sub_resource type="StyleBoxFlat" id=1] +bg_color = Color( 0.219608, 0.211765, 0.227451, 1 ) +border_width_left = 3 +border_width_top = 3 +border_width_right = 3 +border_width_bottom = 3 +border_color = Color( 0.270588, 0.270588, 0.270588, 1 ) +corner_radius_top_left = 4 + +[node name="Control" type="Control"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -152.0 +margin_top = -38.5 +margin_right = 152.0 +margin_bottom = 38.5 +script = ExtResource( 1 ) + +[node name="Background" type="Panel" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_styles/panel = SubResource( 1 ) + +[node name="Label" type="Label" parent="."] +anchor_right = 1.0 +margin_bottom = 26.0 +text = "Building Haxe project..." +align = 1 +valign = 1 +autowrap = true +clip_text = true + +[node name="ProgressBar" type="ProgressBar" parent="."] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = 11.0 +margin_top = -6.5 +margin_right = -11.0 +margin_bottom = 7.5 +max_value = 1.0 diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scenes/new_script.tscn b/projects/_standalone/nat-godot-playground/addons/haxe/scenes/new_script.tscn new file mode 100644 index 00000000..6e918987 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scenes/new_script.tscn @@ -0,0 +1,130 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/haxe/scripts/new_script.gd" type="Script" id=1] + +[node name="NewScript" type="WindowDialog"] +margin_right = 350.0 +margin_bottom = 270.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +window_title = "Attach Node Haxe Script" +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="MarginContainer" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 10.0 +margin_top = 10.0 +margin_right = -10.0 +margin_bottom = -10.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +margin_right = 330.0 +margin_bottom = 250.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="GridContainer" type="GridContainer" parent="MarginContainer/VBoxContainer"] +margin_right = 330.0 +margin_bottom = 52.0 +columns = 2 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ClassLabel" type="Label" parent="MarginContainer/VBoxContainer/GridContainer"] +margin_top = 5.0 +margin_right = 54.0 +margin_bottom = 19.0 +text = "Inherits:" + +[node name="ClassValue" type="LineEdit" parent="MarginContainer/VBoxContainer/GridContainer"] +margin_left = 58.0 +margin_right = 330.0 +margin_bottom = 24.0 +size_flags_horizontal = 3 +text = "VBoxContainer" + +[node name="PathLabel" type="Label" parent="MarginContainer/VBoxContainer/GridContainer"] +margin_top = 33.0 +margin_right = 54.0 +margin_bottom = 47.0 +text = "Path:" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Path" type="HBoxContainer" parent="MarginContainer/VBoxContainer/GridContainer"] +margin_left = 58.0 +margin_top = 28.0 +margin_right = 330.0 +margin_bottom = 52.0 + +[node name="PathValue" type="LineEdit" parent="MarginContainer/VBoxContainer/GridContainer/Path"] +margin_right = 256.0 +margin_bottom = 24.0 +size_flags_horizontal = 3 +text = "res://scripts/VBoxContainer.hx" + +[node name="Load" type="Button" parent="MarginContainer/VBoxContainer/GridContainer/Path"] +margin_left = 260.0 +margin_right = 272.0 +margin_bottom = 24.0 + +[node name="PaddingTop" type="Control" parent="MarginContainer/VBoxContainer"] +margin_top = 56.0 +margin_right = 330.0 +margin_bottom = 66.0 +rect_min_size = Vector2( 0, 10 ) + +[node name="TextEdit" type="RichTextLabel" parent="MarginContainer/VBoxContainer"] +margin_top = 70.0 +margin_right = 330.0 +margin_bottom = 212.0 +rect_min_size = Vector2( 0, 110 ) +size_flags_vertical = 3 +bbcode_enabled = true +scroll_active = false + +[node name="PaddingBottom" type="Control" parent="MarginContainer/VBoxContainer"] +margin_top = 216.0 +margin_right = 330.0 +margin_bottom = 226.0 +rect_min_size = Vector2( 0, 10 ) + +[node name="Buttons" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +margin_top = 230.0 +margin_right = 330.0 +margin_bottom = 250.0 +alignment = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Left" type="Button" parent="MarginContainer/VBoxContainer/Buttons"] +margin_left = 92.0 +margin_right = 146.0 +margin_bottom = 20.0 +text = "Cancel" + +[node name="Padding" type="Control" parent="MarginContainer/VBoxContainer/Buttons"] +margin_left = 150.0 +margin_right = 180.0 +margin_bottom = 20.0 +rect_min_size = Vector2( 30, 0 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Right" type="Button" parent="MarginContainer/VBoxContainer/Buttons"] +margin_left = 184.0 +margin_right = 237.0 +margin_bottom = 20.0 +text = "Create" diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scenes/tab.tscn b/projects/_standalone/nat-godot-playground/addons/haxe/scenes/tab.tscn new file mode 100644 index 00000000..c4784550 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scenes/tab.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/haxe/scripts/tab.gd" type="Script" id=1] + +[node name="Tab" type="Control"] +margin_right = 40.0 +margin_bottom = 40.0 +rect_min_size = Vector2( 0, 200 ) +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +rect_min_size = Vector2( 0, 200 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button" type="Button" parent="VBoxContainer"] +margin_right = 130.0 +margin_bottom = 20.0 +size_flags_horizontal = 0 +text = "Build Haxe Project" + +[node name="TextLog" type="TextEdit" parent="VBoxContainer"] +margin_top = 24.0 +margin_right = 130.0 +margin_bottom = 200.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +readonly = true +context_menu_enabled = false diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scripts/Setup.hx b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/Setup.hx new file mode 100644 index 00000000..0e2301b3 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/Setup.hx @@ -0,0 +1,182 @@ +import sys.io.Process; +import haxe.xml.Access; +import sys.FileSystem; +import sys.io.File; + +using StringTools; + +class Setup { + public static function main() { + // Checking haxelib for godot externs. + final haxelibCheck = new Process("haxelib", ["path", "godot"]); + if (haxelibCheck.exitCode() != 0) { + Sys.print("haxelib"); + return; + } + + // Find unique csproj file. + var csproj = null; + + for (entry in FileSystem.readDirectory(".")) { + if (FileSystem.isDirectory(entry)) { + continue; + } + + if (entry.endsWith(".csproj")) { + if (csproj != null) { + Sys.print("multiple_csproj"); + return; + } + + csproj = entry; + } + } + + if (csproj == null) { + Sys.print("csproj"); + return; + } + + // Dirty check. + final dirty = ["build.hxml", "build/", "scripts/"].filter(entry -> FileSystem.exists(entry)); + + if (dirty.length != 0) { + Sys.print("dirty:" + dirty.join(" ")); + return; + } + + // Update csproj file. + final csprojData = new Access(Xml.parse(File.getContent(csproj))); + final propertyGroup = csprojData.node.Project.node.PropertyGroup; + + for (property in propertyGroup.elements) { + switch (property.name) { + case "AllowUnsafeBlocks", "TargetFramework": + propertyGroup.x.removeChild(property.x); + + default: + } + } + + propertyGroup.x.addChild(Xml.parse("true")); + propertyGroup.x.addChild(Xml.parse("netstandard2.1")); + + File.saveContent(csproj, XmlPrinter.print(csprojData.x)); + + // Create project. + FileSystem.createDirectory("scripts"); + File.saveContent("scripts/import.hx", "import godot.*;\nimport godot.GD.*;\n\nusing godot.Utils;\n"); + File.saveContent("build.hxml", "--cs build\n--define net-ver=50\n--define no-compilation\n--define analyzer-optimize\n--class-path scripts\n--library godot\n--macro godot.Godot.buildProject()\n--dce full\n"); + + final ret = Sys.command("haxe", ["build.hxml"]); + if (ret == 0) { + Sys.print("ok"); + } + } +} + +// Modified version of haxe.xml.Printer +class XmlPrinter { + static public function print(xml:Xml) { + final printer = new XmlPrinter(); + printer.writeNode(xml, ""); + return printer.output.toString(); + } + + var output:StringBuf; + + function new() { + output = new StringBuf(); + } + + function writeNode(value:Xml, indent:String) { + switch (value.nodeType) { + case CData: + write(indent + ""); + newline(); + case Comment: + var commentContent = value.nodeValue; + commentContent = ~/[\n\r\t]+/g.replace(commentContent, ""); + commentContent = ""; + write(indent); + write(StringTools.trim(commentContent)); + newline(); + case Document: + for (child in value) { + writeNode(child, indent); + } + case Element: + write(indent + "<"); + write(value.nodeName); + for (attribute in value.attributes()) { + write(" " + attribute + "=\""); + write(StringTools.htmlEscape(value.get(attribute), true)); + write("\""); + } + if (hasChildren(value)) { + final textOnly = hasTextOnly(value); + write(">"); + if (!textOnly) { + newline(); + } + for (child in value) { + writeNode(child, textOnly ? "" : (indent + " ")); + } + write((textOnly ? "" : indent) + ""); + newline(); + } else { + write("/>"); + newline(); + } + case PCData: + final nodeValue = value.nodeValue.trim(); + if (nodeValue.length != 0) { + write(indent + StringTools.htmlEscape(nodeValue)); + } + case ProcessingInstruction: + write(""); + newline(); + case DocType: + write(""); + newline(); + } + } + + inline function write(input:String) { + output.add(input); + } + + inline function newline() { + output.add("\n"); + } + + function hasTextOnly(value:Xml):Bool { + for (child in value) { + switch (child.nodeType) { + case PCData: + default: + return false; + } + } + return true; + } + + function hasChildren(value:Xml):Bool { + for (child in value) { + switch (child.nodeType) { + case Element, PCData: + return true; + case CData, Comment: + if (StringTools.ltrim(child.nodeValue).length != 0) { + return true; + } + case _: + } + } + return false; + } +} diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scripts/building.gd b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/building.gd new file mode 100644 index 00000000..f861440c --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/building.gd @@ -0,0 +1,16 @@ +tool +class_name Building + +extends Control + +func build_haxe_project(): + print("Building haxe project..."); + + var res = OS.execute("haxe", ["build.hxml"], true); + + $ProgressBar.value = 1 + yield(VisualServer, 'frame_post_draw') + + print("Project builded with code: ", res) + + queue_free() diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scripts/constants.gd b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/constants.gd new file mode 100644 index 00000000..da7c82d8 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/constants.gd @@ -0,0 +1,6 @@ +tool +class_name HaxePluginConstants + +const SETTING_HIDE_NATIVE_SCRIPT_FIELD := "haxe/hide_native_script_field" +const SETTING_EXTERNAL_EDITOR := "haxe/external_editor" +const BUILD_ON_PLAY := "haxe/build_on_play" diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scripts/editor_property.gd b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/editor_property.gd new file mode 100644 index 00000000..ce884ab4 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/editor_property.gd @@ -0,0 +1,164 @@ +tool +class_name HaxePluginEditorProperty +extends EditorProperty + +var haxe_icon := preload("res://addons/haxe/icons/haxe.svg") +var new_script_dialog := preload("res://addons/haxe/scenes/new_script.tscn") + +var base:Control +var object:Node +var script_name := "" +var script_path := "" +var b:MenuButton +var b2:MenuButton + +func setup(base:Control, object:Node) -> void: + self.base = base + self.object = object + label = "Haxe Script" + + var h := HBoxContainer.new() + + # TODO revert icon + b = MenuButton.new() + b.flat = true + h.add_child(b) + + b2 = MenuButton.new() + b2.flat = true + b2.icon = base.get_icon("GuiDropdown", "EditorIcons") + h.add_child(b2) + + add_child(h) + + update_property() + +func setup_menu(base:Control, button:MenuButton, has_script:bool) -> void: + if not button.is_connected("gui_input", self, "on_menu_gui"): + button.connect("gui_input", self, "on_menu_gui") + + var menu := button.get_popup() + + for i in range(menu.get_item_count()): + menu.remove_item(0) + + if not has_script: + menu.add_icon_item(base.get_icon("ScriptCreate", "EditorIcons"), "New Haxe Script") + else: + menu.add_icon_item(base.get_icon("ScriptRemove", "EditorIcons"), "Remove Haxe Script") + + menu.add_icon_item(base.get_icon("Load", "EditorIcons"), "Load Haxe Script") + + if has_script: + menu.add_icon_item(base.get_icon("Edit", "EditorIcons"), "Edit") + + if not menu.is_connected("index_pressed", self, "on_popup_select"): + menu.connect("index_pressed", self, "on_popup_select", [has_script]) + +func on_menu_gui(event:InputEvent) -> void: + # If is right click then pretend it's a left click + if event is InputEventMouseButton and event.pressed and event.button_index == 2: + event.button_index = 1 + +func on_popup_select(id:int, has_script:bool) -> void: + if id == 0: # New/Remove + if not has_script: # New + var dialog := new_script_dialog.instance() + dialog.setup(base, object.get_class(), object.get_path().get_name(object.get_path().get_name_count() - 1)) + dialog.theme = base.theme + dialog.connect("create", self, "on_create") + base.add_child(dialog) + dialog.popup_centered() + else: # Remove + object.remove_meta("haxe_script") + object.set_script(null) + elif id == 1: # Load + var dialog := EditorFileDialog.new() + base.add_child(dialog) + dialog.access = EditorFileDialog.ACCESS_RESOURCES + dialog.current_dir = "res://scripts/" + dialog.mode = EditorFileDialog.MODE_OPEN_FILE + dialog.theme = base.theme + dialog.add_filter("*.hx ; Haxe script") + dialog.connect("file_selected", self, "on_load_file") + dialog.popup_centered_ratio() + elif id == 2: # Edit + open_file(script_path) + else: + print("Unknown entry: ", id) + +func on_create(is_load:bool, class_value:String, path_value:String) -> void: + if not is_load: + var f := path_value.find_last("/") + var name := path_value.substr(f + 1, path_value.find_last(".hx") - f - 1) + + var d := path_value.substr(14).split("/") + d.remove(d.size() - 1) + + var pack := d.join(".") + if not pack.empty(): + pack = " " + pack; + + if class_value == name: + class_value = "godot." + class_value + + var file := File.new() + file.open(path_value, File.WRITE) + file.store_string("package" + pack + ";\n\nclass " + name + " extends " + class_value + " {\n}\n") + file.close() + + open_file(path_value) + + on_load_file(path_value) + +func open_file(path:String) -> void: + var editor:String = ProjectSettings.get(HaxePluginConstants.SETTING_EXTERNAL_EDITOR) + if editor == "None": + pass + elif editor == "VSCode": + OS.execute("code", [ProjectSettings.globalize_path(path)], false) + else: + print("Unknown external editor: " + editor) + +func on_load_file(path:String) -> void: + object.set_meta("haxe_script", path) + var cs_path := path.replace("res://scripts", "") + var p := cs_path.find_last("/") + var name := cs_path.substr(p, cs_path.length() - 2 - p) + "cs" + cs_path = "build/src" + cs_path.substr(0, p) + + var d := Directory.new() + d.make_dir_recursive(cs_path) + + var file_path := "res://" + cs_path + name + var cs_file := File.new() + if not cs_file.file_exists(file_path): + cs_file.open(file_path, File.WRITE) + cs_file.store_string("\n") + cs_file.close() + object.set_script(load(file_path)) + +func update_property() -> void: + var script_name := "[empty]" + + if object.has_meta("haxe_script"): + if not object.get_script(): + object.remove_meta("haxe_script") + else: + script_path = object.get_meta("haxe_script") + var p := script_path.find_last("/") + script_name = script_path.substr(p + 1) + + var has_script := script_path != "" + + b.size_flags_horizontal = MenuButton.SIZE_EXPAND_FILL + if has_script: + b.icon = haxe_icon + b.text = script_name + b.hint_tooltip = script_path + setup_menu(base, b, has_script) + + setup_menu(base, b2, has_script) + +func get_tooltip_text() -> String: + return "Haxe Script" diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scripts/haxe.gd b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/haxe.gd new file mode 100644 index 00000000..e1e18fe8 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/haxe.gd @@ -0,0 +1,103 @@ +tool +class_name HaxePlugin +extends EditorPlugin + +var about_dialog := preload("res://addons/haxe/scenes/about.tscn") +var tab := preload("res://addons/haxe/scenes/tab.tscn").instance() +var build_dialog := preload("res://addons/haxe/scenes/building.tscn") + +var inspector_plugin:HaxePluginInspectorPlugin + +func _enter_tree() -> void: + var base := get_editor_interface().get_base_control() + + # Init + setup_settings() + + # Inspector plugin + inspector_plugin = HaxePluginInspectorPlugin.new() + inspector_plugin.setup(base) + add_inspector_plugin(inspector_plugin) + + # Tool menu entry + var menu := PopupMenu.new() + menu.add_item("About") + menu.add_item("Setup") + menu.connect("index_pressed", self, "on_menu") + add_tool_submenu_item("Haxe", menu) + + # Bottom dock tab + tab.setup(base) + add_control_to_bottom_panel(tab, "Haxe") + +func _exit_tree() -> void: + # TODO tab.gd still leaks? + remove_control_from_bottom_panel(tab) + tab.queue_free() + remove_tool_menu_item("Haxe") + remove_inspector_plugin(inspector_plugin) + +func setup_settings() -> void: + if not ProjectSettings.has_setting(HaxePluginConstants.SETTING_HIDE_NATIVE_SCRIPT_FIELD): + ProjectSettings.set_setting(HaxePluginConstants.SETTING_HIDE_NATIVE_SCRIPT_FIELD, true) + + if not ProjectSettings.has_setting(HaxePluginConstants.SETTING_EXTERNAL_EDITOR): + ProjectSettings.set_setting(HaxePluginConstants.SETTING_EXTERNAL_EDITOR, "VSCode") + ProjectSettings.add_property_info({ + "name": HaxePluginConstants.SETTING_EXTERNAL_EDITOR, + "type": TYPE_STRING, + "hint": PROPERTY_HINT_ENUM, + "hint_string": "None,VSCode" + }); + + if not ProjectSettings.has_setting(HaxePluginConstants.BUILD_ON_PLAY): + ProjectSettings.set_setting(HaxePluginConstants.BUILD_ON_PLAY, false) + +func on_menu(id:int) -> void: + var theme := get_editor_interface().get_base_control().theme + + if id == 0: # About + var dialog := about_dialog.instance() + add_child(dialog) + dialog.theme = theme + dialog.popup_centered() + elif id == 1: # Setup + var output := [] + OS.execute("haxe", ["--class-path", "addons/haxe/scripts", "--run", "Setup"], true, output, true) + + var dialog := AcceptDialog.new() + add_child(dialog) + + if output.size() != 1: + dialog.dialog_text = "Unknown error:\n" + PoolStringArray(output).join("\n") + elif "command not found" in output[0].to_lower(): + dialog.dialog_text = "Haxe command not found." + elif output[0] == "haxelib": + dialog.dialog_text = "Godot externs not found.\nRun 'haxelib install godot' first." + elif output[0] == "multiple_csproj": + dialog.dialog_text = "Multiple C# solutions found.\nCannot setup." + elif output[0] == "csproj": + dialog.dialog_text = "C# solution not found (.csproj file).\nYou need to setup Godot Mono first:\nProject -> Tools -> Mono -> Create C# solution." + elif output[0].begins_with("dirty:"): + dialog.dialog_text = "Project already contains: " + output[0].substr(6) + "\nTo avoid data loss the setup wasn't run." + elif output[0] == "ok": + dialog.dialog_text = "Setup successful." + else: + dialog.dialog_text = "Unknown error: " + output[0] + + dialog.theme = theme + dialog.window_title = "Haxe Setup" + dialog.popup_centered() + else: + print("Unknown menu: ", id) + +func _input(event): + if event is InputEventKey and ProjectSettings.get_setting(HaxePluginConstants.BUILD_ON_PLAY): + if event.scancode == KEY_F5 or event.scancode == KEY_F6 and event.echo: + var dialog = build_dialog.instance() + + add_child(dialog) + + yield(VisualServer, 'frame_post_draw') + + dialog.call("build_haxe_project") diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scripts/inspector_plugin.gd b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/inspector_plugin.gd new file mode 100644 index 00000000..d94ef74b --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/inspector_plugin.gd @@ -0,0 +1,22 @@ +tool +class_name HaxePluginInspectorPlugin +extends EditorInspectorPlugin + +var base:Control + +func setup(base:Control) -> void: + self.base = base + +#warning-ignore:unused_argument +func can_handle(object:Object) -> bool: + return true + +#warning-ignore:unused_argument +func parse_property(object:Object, type:int, path:String, hint:int, hint_text:String, usage:int) -> bool: + if object is Node and type == TYPE_OBJECT and path == "script": + var e := HaxePluginEditorProperty.new() + e.setup(base, object) + add_custom_control(e) + return ProjectSettings.get_setting(HaxePluginConstants.SETTING_HIDE_NATIVE_SCRIPT_FIELD) + + return false diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scripts/new_script.gd b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/new_script.gd new file mode 100644 index 00000000..dad50e25 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/new_script.gd @@ -0,0 +1,157 @@ +tool +extends WindowDialog + +signal create(is_load, class_value, path_value) + +var base:Control + +var cancel_button:Button +var create_button:Button + +var class_valid := true +var path_valid := true +var name_valid := true +var name_warning := false +var extension_valid := true + +var is_load := false +var class_value := "" +var path_value := "" + +func setup(base:Control, class_value:String, name:String) -> void: + self.base = base + + var left := $MarginContainer/VBoxContainer/Buttons/Left + var right := $MarginContainer/VBoxContainer/Buttons/Right + + if OS.get_name() == "Windows" or OS.get_name() == "UWP": + setup_buttons(right, left) + else: + setup_buttons(left, right) + + $MarginContainer/VBoxContainer/GridContainer/ClassValue.connect("text_changed", self, "on_class") + $MarginContainer/VBoxContainer/GridContainer/Path/PathValue.connect("text_changed", self, "on_path") + + var path_button := $MarginContainer/VBoxContainer/GridContainer/Path/Load + path_button.icon = base.get_icon("Folder", "EditorIcons") + path_button.connect("button_down", self, "on_folder") + + on_class(class_value) + on_path("res://scripts/" + name.substr(0, 1).to_upper() + name.substr(1) + ".hx") + +func setup_buttons(cancel:Button, create:Button) -> void: + cancel.text = "Cancel" + cancel.connect("button_down", self, "on_cancel") + cancel_button = cancel + + create.text = "Create" + create.connect("button_down", self, "on_create") + create_button = create + +func on_cancel() -> void: + hide() + +func on_create() -> void: + hide() + emit_signal("create", is_load, class_value, path_value) + +func on_class(value:String) -> void: + class_value = value + class_valid = ClassDB.class_exists(value) and ClassDB.can_instance(value) + revalidate() + +func on_folder() -> void: + var file := path_value + file = file.substr(file.find_last("/") + 1) + + var dialog := EditorFileDialog.new() + base.add_child(dialog) + dialog.access = EditorFileDialog.ACCESS_RESOURCES + dialog.current_dir = "res://scripts/" + dialog.current_file = file + dialog.disable_overwrite_warning = true + dialog.theme = base.theme + dialog.window_title = "Open Haxe Script / Choose Location" + dialog.add_filter("*.hx ; Haxe script") + dialog.connect("file_selected", self, "on_path") + dialog.get_ok().text = "Open" + dialog.popup_centered_ratio() + +func on_path(fullpath:String) -> void: + path_value = fullpath + + var dir_p := fullpath.find_last("/") + var ext_p := fullpath.find_last(".") + + var path := "" + var file := "" + + if dir_p < ext_p: + path = fullpath.substr(0, dir_p) + file = fullpath.substr(dir_p + 1) + else: + path = fullpath + + var d := Directory.new() + var f := File.new() + + is_load = f.file_exists(path_value) + extension_valid = file.ends_with(".hx") + name_valid = ext_p < fullpath.length() - 1 and ext_p > dir_p + 1 + name_warning = name_valid && extension_valid && isBuiltin(file.substr(0, file.length() - 3)) + path_valid = path.begins_with("res://") and d.dir_exists(path) + revalidate() + +func isBuiltin(name:String) -> bool: + var haxeGodotBuiltins = ["Action", "CustomSignal", "CustomSignalUsings", "Godot", "Nullable1", "Signal", "SignalUsings", "Utils"] + return ClassDB.class_exists(name) or haxeGodotBuiltins.has(name) + +func revalidate() -> void: + var text_edit := $MarginContainer/VBoxContainer/TextEdit + text_edit.bbcode_text = "" + + var valid_color := Color(0.062775, 0.730469, 0.062775) + var error_color := Color(0.820312, 0.028839, 0.028839) + var warning_color := Color(0.9375, 0.537443, 0.06958) + + if not class_valid: + text_edit.push_color(error_color) + text_edit.append_bbcode("- Invalid inherited parent name.\n\n") + text_edit.pop() + elif not extension_valid: + text_edit.push_color(error_color) + text_edit.append_bbcode("- Invalid extension.\n\n") + text_edit.pop() + elif not path_valid: + text_edit.push_color(error_color) + text_edit.append_bbcode("- Invalid path.\n\n") + text_edit.pop() + elif not name_valid: + text_edit.push_color(error_color) + text_edit.append_bbcode("- Invalid filename.\n\n") + text_edit.pop() + else: + text_edit.push_color(valid_color) + text_edit.append_bbcode("- Haxe script path is valid.\n\n") + + if is_load: + text_edit.append_bbcode("- Will load an existing Haxe script.\n\n") + else: + text_edit.append_bbcode("- Will create a new Haxe script.\n\n") + + text_edit.pop() + + if name_warning: + text_edit.push_color(warning_color) + text_edit.append_bbcode("Warning: Having the script name be the same as a built-in type is usually not desired.\n\n") + text_edit.pop() + + var class_edit:LineEdit = $MarginContainer/VBoxContainer/GridContainer/ClassValue + var class_edit_column := class_edit.caret_position + class_edit.text = class_value + class_edit.caret_position = class_edit_column if class_edit_column <= class_value.length() else class_value.length() + + var path_edit:LineEdit = $MarginContainer/VBoxContainer/GridContainer/Path/PathValue + var path_edit_column := path_edit.caret_position + path_edit.text = path_value + path_edit.caret_position = path_edit_column if path_edit_column <= path_value.length() else path_value.length() diff --git a/projects/_standalone/nat-godot-playground/addons/haxe/scripts/tab.gd b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/tab.gd new file mode 100644 index 00000000..d7aebd21 --- /dev/null +++ b/projects/_standalone/nat-godot-playground/addons/haxe/scripts/tab.gd @@ -0,0 +1,67 @@ +tool +extends Control + +onready var button := $VBoxContainer/Button +onready var text_log := $VBoxContainer/TextLog + +var base:Control +var icon := 0 +var icons := [] +var mutex := Mutex.new() +var output := [] +var time := 0.0 +var thread:Thread = null + +func setup(base:Control) -> void: + self.base = base + + for i in range(8): + icons.append(base.get_icon("Progress%s"%(i + 1), "EditorIcons")) + +func _ready() -> void: + button.connect("button_down", self, "build_haxe_project") + +func build_haxe_project() -> void: + if thread != null: + return + + thread = Thread.new() + + button.icon = icons[0] + button.text = "Building Haxe Project ..." + icon = 0 + text_log.text = "" + time = 0.0 + output = [] + + thread.start(self, "run_thread") + +func _process(delta:float) -> void: + if thread != null: + update_log() + time += delta + if time > 0.1: + time = 0 + icon = (icon + 1) % 8 + button.icon = icons[icon] + +func run_thread(userdata) -> void: + var ret := OS.execute("haxe", ["build.hxml"], true, output, true) + update_log() + button.icon = base.get_icon("StatusSuccess" if ret == 0 else "StatusError", "EditorIcons") + button.text = "Build Haxe Project" + call_deferred("end_thread") + +func end_thread() -> void: + thread.wait_to_finish() + thread = null + +func update_log() -> void: + mutex.lock() + text_log.text = PoolStringArray(output).join("\n") + mutex.unlock() + +func _exit_tree(): + if thread != null: + thread.wait_to_finish() + thread = null diff --git a/projects/nat-godot-playground/build.hxml b/projects/_standalone/nat-godot-playground/build.hxml similarity index 100% rename from projects/nat-godot-playground/build.hxml rename to projects/_standalone/nat-godot-playground/build.hxml diff --git a/projects/nat-godot-playground/default_env.tres b/projects/_standalone/nat-godot-playground/default_env.tres similarity index 100% rename from projects/nat-godot-playground/default_env.tres rename to projects/_standalone/nat-godot-playground/default_env.tres diff --git a/projects/nat-godot-playground/icon.png b/projects/_standalone/nat-godot-playground/icon.png similarity index 100% rename from projects/nat-godot-playground/icon.png rename to projects/_standalone/nat-godot-playground/icon.png diff --git a/projects/nat-godot-playground/nat-godot-playground.csproj b/projects/_standalone/nat-godot-playground/nat-godot-playground.csproj similarity index 100% rename from projects/nat-godot-playground/nat-godot-playground.csproj rename to projects/_standalone/nat-godot-playground/nat-godot-playground.csproj diff --git a/projects/nat-godot-playground/nat-godot-playground.sln b/projects/_standalone/nat-godot-playground/nat-godot-playground.sln similarity index 100% rename from projects/nat-godot-playground/nat-godot-playground.sln rename to projects/_standalone/nat-godot-playground/nat-godot-playground.sln diff --git a/projects/nat-godot-playground/playgrounds.json b/projects/_standalone/nat-godot-playground/playgrounds.json similarity index 100% rename from projects/nat-godot-playground/playgrounds.json rename to projects/_standalone/nat-godot-playground/playgrounds.json diff --git a/projects/nat-godot-playground/project.godot b/projects/_standalone/nat-godot-playground/project.godot similarity index 100% rename from projects/nat-godot-playground/project.godot rename to projects/_standalone/nat-godot-playground/project.godot diff --git a/projects/nat-godot-playground/scripts/EntryPanel.hx b/projects/_standalone/nat-godot-playground/scripts/EntryPanel.hx similarity index 100% rename from projects/nat-godot-playground/scripts/EntryPanel.hx rename to projects/_standalone/nat-godot-playground/scripts/EntryPanel.hx diff --git a/projects/nat-godot-playground/scripts/EntryPanelSystem.hx b/projects/_standalone/nat-godot-playground/scripts/EntryPanelSystem.hx similarity index 100% rename from projects/nat-godot-playground/scripts/EntryPanelSystem.hx rename to projects/_standalone/nat-godot-playground/scripts/EntryPanelSystem.hx diff --git a/projects/nat-godot-playground/scripts/EntryPanelSystem.kiss b/projects/_standalone/nat-godot-playground/scripts/EntryPanelSystem.kiss similarity index 100% rename from projects/nat-godot-playground/scripts/EntryPanelSystem.kiss rename to projects/_standalone/nat-godot-playground/scripts/EntryPanelSystem.kiss diff --git a/projects/nat-godot-playground/scripts/GodotUI.hx b/projects/_standalone/nat-godot-playground/scripts/GodotUI.hx similarity index 100% rename from projects/nat-godot-playground/scripts/GodotUI.hx rename to projects/_standalone/nat-godot-playground/scripts/GodotUI.hx diff --git a/projects/nat-godot-playground/scripts/GodotUI.kiss b/projects/_standalone/nat-godot-playground/scripts/GodotUI.kiss similarity index 100% rename from projects/nat-godot-playground/scripts/GodotUI.kiss rename to projects/_standalone/nat-godot-playground/scripts/GodotUI.kiss diff --git a/projects/nat-godot-playground/scripts/PlaygroundEntries.hx b/projects/_standalone/nat-godot-playground/scripts/PlaygroundEntries.hx similarity index 100% rename from projects/nat-godot-playground/scripts/PlaygroundEntries.hx rename to projects/_standalone/nat-godot-playground/scripts/PlaygroundEntries.hx diff --git a/projects/nat-godot-playground/scripts/RootNode.hx b/projects/_standalone/nat-godot-playground/scripts/RootNode.hx similarity index 100% rename from projects/nat-godot-playground/scripts/RootNode.hx rename to projects/_standalone/nat-godot-playground/scripts/RootNode.hx diff --git a/projects/nat-godot-playground/scripts/RootNode.kiss b/projects/_standalone/nat-godot-playground/scripts/RootNode.kiss similarity index 100% rename from projects/nat-godot-playground/scripts/RootNode.kiss rename to projects/_standalone/nat-godot-playground/scripts/RootNode.kiss diff --git a/projects/nat-godot-playground/scripts/import.hx b/projects/_standalone/nat-godot-playground/scripts/import.hx similarity index 100% rename from projects/nat-godot-playground/scripts/import.hx rename to projects/_standalone/nat-godot-playground/scripts/import.hx diff --git a/projects/nat-godot-playground/test.sh b/projects/_standalone/nat-godot-playground/test.sh similarity index 100% rename from projects/nat-godot-playground/test.sh rename to projects/_standalone/nat-godot-playground/test.sh diff --git a/projects/pdf-salad/.gitignore b/projects/_standalone/pdf-salad/.gitignore similarity index 100% rename from projects/pdf-salad/.gitignore rename to projects/_standalone/pdf-salad/.gitignore diff --git a/projects/pdf-salad/README.md b/projects/_standalone/pdf-salad/README.md similarity index 100% rename from projects/pdf-salad/README.md rename to projects/_standalone/pdf-salad/README.md diff --git a/projects/pdf-salad/build.hxml b/projects/_standalone/pdf-salad/build.hxml similarity index 100% rename from projects/pdf-salad/build.hxml rename to projects/_standalone/pdf-salad/build.hxml diff --git a/projects/pdf-salad/example-input/LICENSE b/projects/_standalone/pdf-salad/example-input/LICENSE similarity index 100% rename from projects/pdf-salad/example-input/LICENSE rename to projects/_standalone/pdf-salad/example-input/LICENSE diff --git a/projects/pdf-salad/example-input/antique-phone-shop.pdf b/projects/_standalone/pdf-salad/example-input/antique-phone-shop.pdf similarity index 100% rename from projects/pdf-salad/example-input/antique-phone-shop.pdf rename to projects/_standalone/pdf-salad/example-input/antique-phone-shop.pdf diff --git a/projects/pdf-salad/example-input/smashbrosgo.pdf b/projects/_standalone/pdf-salad/example-input/smashbrosgo.pdf similarity index 100% rename from projects/pdf-salad/example-input/smashbrosgo.pdf rename to projects/_standalone/pdf-salad/example-input/smashbrosgo.pdf diff --git a/projects/pdf-salad/package-lock.json b/projects/_standalone/pdf-salad/package-lock.json similarity index 100% rename from projects/pdf-salad/package-lock.json rename to projects/_standalone/pdf-salad/package-lock.json diff --git a/projects/pdf-salad/package.json b/projects/_standalone/pdf-salad/package.json similarity index 100% rename from projects/pdf-salad/package.json rename to projects/_standalone/pdf-salad/package.json diff --git a/projects/pdf-salad/src/Externs.hx b/projects/_standalone/pdf-salad/src/Externs.hx similarity index 100% rename from projects/pdf-salad/src/Externs.hx rename to projects/_standalone/pdf-salad/src/Externs.hx diff --git a/projects/pdf-salad/src/Main.hx b/projects/_standalone/pdf-salad/src/Main.hx similarity index 100% rename from projects/pdf-salad/src/Main.hx rename to projects/_standalone/pdf-salad/src/Main.hx diff --git a/projects/pdf-salad/src/Main_.kiss b/projects/_standalone/pdf-salad/src/Main_.kiss similarity index 100% rename from projects/pdf-salad/src/Main_.kiss rename to projects/_standalone/pdf-salad/src/Main_.kiss diff --git a/projects/pdf-salad/test.sh b/projects/_standalone/pdf-salad/test.sh similarity index 100% rename from projects/pdf-salad/test.sh rename to projects/_standalone/pdf-salad/test.sh diff --git a/projects/smart-stretch-reminder/.gitignore b/projects/_standalone/smart-stretch-reminder/.gitignore similarity index 100% rename from projects/smart-stretch-reminder/.gitignore rename to projects/_standalone/smart-stretch-reminder/.gitignore diff --git a/projects/smart-stretch-reminder/.vscodeignore b/projects/_standalone/smart-stretch-reminder/.vscodeignore similarity index 100% rename from projects/smart-stretch-reminder/.vscodeignore rename to projects/_standalone/smart-stretch-reminder/.vscodeignore diff --git a/projects/smart-stretch-reminder/README.md b/projects/_standalone/smart-stretch-reminder/README.md similarity index 100% rename from projects/smart-stretch-reminder/README.md rename to projects/_standalone/smart-stretch-reminder/README.md diff --git a/projects/smart-stretch-reminder/build.hxml b/projects/_standalone/smart-stretch-reminder/build.hxml similarity index 100% rename from projects/smart-stretch-reminder/build.hxml rename to projects/_standalone/smart-stretch-reminder/build.hxml diff --git a/projects/smart-stretch-reminder/package-lock.json b/projects/_standalone/smart-stretch-reminder/package-lock.json similarity index 100% rename from projects/smart-stretch-reminder/package-lock.json rename to projects/_standalone/smart-stretch-reminder/package-lock.json diff --git a/projects/smart-stretch-reminder/package.json b/projects/_standalone/smart-stretch-reminder/package.json similarity index 100% rename from projects/smart-stretch-reminder/package.json rename to projects/_standalone/smart-stretch-reminder/package.json diff --git a/projects/smart-stretch-reminder/src/Main.hx b/projects/_standalone/smart-stretch-reminder/src/Main.hx similarity index 100% rename from projects/smart-stretch-reminder/src/Main.hx rename to projects/_standalone/smart-stretch-reminder/src/Main.hx diff --git a/projects/smart-stretch-reminder/src/Main.kiss b/projects/_standalone/smart-stretch-reminder/src/Main.kiss similarity index 100% rename from projects/smart-stretch-reminder/src/Main.kiss rename to projects/_standalone/smart-stretch-reminder/src/Main.kiss diff --git a/projects/smart-stretch-reminder/test.sh b/projects/_standalone/smart-stretch-reminder/test.sh similarity index 100% rename from projects/smart-stretch-reminder/test.sh rename to projects/_standalone/smart-stretch-reminder/test.sh diff --git a/projects/tig-spy/.gitignore b/projects/_standalone/tig-spy/.gitignore similarity index 100% rename from projects/tig-spy/.gitignore rename to projects/_standalone/tig-spy/.gitignore diff --git a/projects/tig-spy/build.hxml b/projects/_standalone/tig-spy/build.hxml similarity index 100% rename from projects/tig-spy/build.hxml rename to projects/_standalone/tig-spy/build.hxml diff --git a/projects/tig-spy/icons/icon-48.png b/projects/_standalone/tig-spy/icons/icon-48.png similarity index 100% rename from projects/tig-spy/icons/icon-48.png rename to projects/_standalone/tig-spy/icons/icon-48.png diff --git a/projects/tig-spy/manifest.json b/projects/_standalone/tig-spy/manifest.json similarity index 100% rename from projects/tig-spy/manifest.json rename to projects/_standalone/tig-spy/manifest.json diff --git a/projects/tig-spy/package-lock.json b/projects/_standalone/tig-spy/package-lock.json similarity index 100% rename from projects/tig-spy/package-lock.json rename to projects/_standalone/tig-spy/package-lock.json diff --git a/projects/tig-spy/package.json b/projects/_standalone/tig-spy/package.json similarity index 100% rename from projects/tig-spy/package.json rename to projects/_standalone/tig-spy/package.json diff --git a/projects/tig-spy/src/tig_spy/Background.hx b/projects/_standalone/tig-spy/src/tig_spy/Background.hx similarity index 100% rename from projects/tig-spy/src/tig_spy/Background.hx rename to projects/_standalone/tig-spy/src/tig_spy/Background.hx diff --git a/projects/tig-spy/src/tig_spy/Background.kiss b/projects/_standalone/tig-spy/src/tig_spy/Background.kiss similarity index 100% rename from projects/tig-spy/src/tig_spy/Background.kiss rename to projects/_standalone/tig-spy/src/tig_spy/Background.kiss diff --git a/projects/tig-spy/src/tig_spy/Main.hx b/projects/_standalone/tig-spy/src/tig_spy/Main.hx similarity index 100% rename from projects/tig-spy/src/tig_spy/Main.hx rename to projects/_standalone/tig-spy/src/tig_spy/Main.hx diff --git a/projects/tig-spy/src/tig_spy/Main_.kiss b/projects/_standalone/tig-spy/src/tig_spy/Main_.kiss similarity index 100% rename from projects/tig-spy/src/tig_spy/Main_.kiss rename to projects/_standalone/tig-spy/src/tig_spy/Main_.kiss diff --git a/projects/tig-spy/src/tig_spy/Message.hx b/projects/_standalone/tig-spy/src/tig_spy/Message.hx similarity index 100% rename from projects/tig-spy/src/tig_spy/Message.hx rename to projects/_standalone/tig-spy/src/tig_spy/Message.hx diff --git a/projects/tig-spy/test.sh b/projects/_standalone/tig-spy/test.sh similarity index 100% rename from projects/tig-spy/test.sh rename to projects/_standalone/tig-spy/test.sh diff --git a/projects/kiss-vscode/kiss-vscode-0.0.18.vsix b/projects/kiss-vscode/kiss-vscode-0.0.18.vsix deleted file mode 100644 index c255ec4907501685285d086d8a6b67c2826074cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33248 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

pNjk}bJ37!| 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 j|89kTt8V|R+