diff --git a/images/settings_32x32.png b/images/settings_32x32.png new file mode 100644 index 0000000..977e052 Binary files /dev/null and b/images/settings_32x32.png differ diff --git a/images/settings_32x32.png.import b/images/settings_32x32.png.import new file mode 100644 index 0000000..85d04d8 --- /dev/null +++ b/images/settings_32x32.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/settings_32x32.png-1ec947b33410cb1f2231e893c0d26b43.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/settings_32x32.png" +dest_files=[ "res://.import/settings_32x32.png-1ec947b33410cb1f2231e893c0d26b43.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/levels/en/bisect/bisect b/levels/en_EN/bisect/bisect similarity index 100% rename from levels/en/bisect/bisect rename to levels/en_EN/bisect/bisect diff --git a/levels/en/bisect/sequence b/levels/en_EN/bisect/sequence similarity index 100% rename from levels/en/bisect/sequence rename to levels/en_EN/bisect/sequence diff --git a/levels/en/branches/branch-create b/levels/en_EN/branches/branch-create similarity index 100% rename from levels/en/branches/branch-create rename to levels/en_EN/branches/branch-create diff --git a/levels/en/branches/branch-remove b/levels/en_EN/branches/branch-remove similarity index 100% rename from levels/en/branches/branch-remove rename to levels/en_EN/branches/branch-remove diff --git a/levels/en/branches/checkout-commit b/levels/en_EN/branches/checkout-commit similarity index 100% rename from levels/en/branches/checkout-commit rename to levels/en_EN/branches/checkout-commit diff --git a/levels/en/branches/fork b/levels/en_EN/branches/fork similarity index 100% rename from levels/en/branches/fork rename to levels/en_EN/branches/fork diff --git a/levels/en/branches/grow b/levels/en_EN/branches/grow similarity index 100% rename from levels/en/branches/grow rename to levels/en_EN/branches/grow diff --git a/levels/en/branches/reorder b/levels/en_EN/branches/reorder similarity index 100% rename from levels/en/branches/reorder rename to levels/en_EN/branches/reorder diff --git a/levels/en/branches/sequence b/levels/en_EN/branches/sequence similarity index 100% rename from levels/en/branches/sequence rename to levels/en_EN/branches/sequence diff --git a/levels/en/changing-the-past/rebase b/levels/en_EN/changing-the-past/rebase similarity index 100% rename from levels/en/changing-the-past/rebase rename to levels/en_EN/changing-the-past/rebase diff --git a/levels/en/changing-the-past/reorder b/levels/en_EN/changing-the-past/reorder similarity index 100% rename from levels/en/changing-the-past/reorder rename to levels/en_EN/changing-the-past/reorder diff --git a/levels/en/changing-the-past/sequence b/levels/en_EN/changing-the-past/sequence similarity index 100% rename from levels/en/changing-the-past/sequence rename to levels/en_EN/changing-the-past/sequence diff --git a/levels/en/files/files-add b/levels/en_EN/files/files-add similarity index 100% rename from levels/en/files/files-add rename to levels/en_EN/files/files-add diff --git a/levels/en/files/files-delete b/levels/en_EN/files/files-delete similarity index 100% rename from levels/en/files/files-delete rename to levels/en_EN/files/files-delete diff --git a/levels/en/files/sequence b/levels/en_EN/files/sequence similarity index 100% rename from levels/en/files/sequence rename to levels/en_EN/files/sequence diff --git a/levels/en/index/add b/levels/en_EN/index/add similarity index 100% rename from levels/en/index/add rename to levels/en_EN/index/add diff --git a/levels/en/index/change b/levels/en_EN/index/change similarity index 100% rename from levels/en/index/change rename to levels/en_EN/index/change diff --git a/levels/en/index/checkout b/levels/en_EN/index/checkout similarity index 100% rename from levels/en/index/checkout rename to levels/en_EN/index/checkout diff --git a/levels/en/index/compare b/levels/en_EN/index/compare similarity index 100% rename from levels/en/index/compare rename to levels/en_EN/index/compare diff --git a/levels/en/index/new b/levels/en_EN/index/new similarity index 100% rename from levels/en/index/new rename to levels/en_EN/index/new diff --git a/levels/en/index/reset b/levels/en_EN/index/reset similarity index 100% rename from levels/en/index/reset rename to levels/en_EN/index/reset diff --git a/levels/en/index/rm b/levels/en_EN/index/rm similarity index 100% rename from levels/en/index/rm rename to levels/en_EN/index/rm diff --git a/levels/en/index/sequence b/levels/en_EN/index/sequence similarity index 100% rename from levels/en/index/sequence rename to levels/en_EN/index/sequence diff --git a/levels/en/index/steps b/levels/en_EN/index/steps similarity index 100% rename from levels/en/index/steps rename to levels/en_EN/index/steps diff --git a/levels/en/intro/cli b/levels/en_EN/intro/cli similarity index 100% rename from levels/en/intro/cli rename to levels/en_EN/intro/cli diff --git a/levels/en/intro/commit b/levels/en_EN/intro/commit similarity index 100% rename from levels/en/intro/commit rename to levels/en_EN/intro/commit diff --git a/levels/en/intro/copies b/levels/en_EN/intro/copies similarity index 100% rename from levels/en/intro/copies rename to levels/en_EN/intro/copies diff --git a/levels/en/intro/init b/levels/en_EN/intro/init similarity index 100% rename from levels/en/intro/init rename to levels/en_EN/intro/init diff --git a/levels/en/intro/remote b/levels/en_EN/intro/remote similarity index 100% rename from levels/en/intro/remote rename to levels/en_EN/intro/remote diff --git a/levels/en/intro/risky b/levels/en_EN/intro/risky similarity index 100% rename from levels/en/intro/risky rename to levels/en_EN/intro/risky diff --git a/levels/en/intro/sequence b/levels/en_EN/intro/sequence similarity index 100% rename from levels/en/intro/sequence rename to levels/en_EN/intro/sequence diff --git a/levels/en/intro/who-are-you b/levels/en_EN/intro/who-are-you similarity index 100% rename from levels/en/intro/who-are-you rename to levels/en_EN/intro/who-are-you diff --git a/levels/en/low-level/basics b/levels/en_EN/low-level/basics similarity index 100% rename from levels/en/low-level/basics rename to levels/en_EN/low-level/basics diff --git a/levels/en/low-level/blob-create b/levels/en_EN/low-level/blob-create similarity index 100% rename from levels/en/low-level/blob-create rename to levels/en_EN/low-level/blob-create diff --git a/levels/en/low-level/blob-remove b/levels/en_EN/low-level/blob-remove similarity index 100% rename from levels/en/low-level/blob-remove rename to levels/en_EN/low-level/blob-remove diff --git a/levels/en/low-level/commit-create b/levels/en_EN/low-level/commit-create similarity index 100% rename from levels/en/low-level/commit-create rename to levels/en_EN/low-level/commit-create diff --git a/levels/en/low-level/commit-parents b/levels/en_EN/low-level/commit-parents similarity index 100% rename from levels/en/low-level/commit-parents rename to levels/en_EN/low-level/commit-parents diff --git a/levels/en/low-level/commit-rhombus b/levels/en_EN/low-level/commit-rhombus similarity index 100% rename from levels/en/low-level/commit-rhombus rename to levels/en_EN/low-level/commit-rhombus diff --git a/levels/en/low-level/index-add b/levels/en_EN/low-level/index-add similarity index 100% rename from levels/en/low-level/index-add rename to levels/en_EN/low-level/index-add diff --git a/levels/en/low-level/index-remove b/levels/en_EN/low-level/index-remove similarity index 100% rename from levels/en/low-level/index-remove rename to levels/en_EN/low-level/index-remove diff --git a/levels/en/low-level/index-update b/levels/en_EN/low-level/index-update similarity index 100% rename from levels/en/low-level/index-update rename to levels/en_EN/low-level/index-update diff --git a/levels/en/low-level/puzzle-apocalypse b/levels/en_EN/low-level/puzzle-apocalypse similarity index 100% rename from levels/en/low-level/puzzle-apocalypse rename to levels/en_EN/low-level/puzzle-apocalypse diff --git a/levels/en/low-level/puzzle-precious-blob b/levels/en_EN/low-level/puzzle-precious-blob similarity index 100% rename from levels/en/low-level/puzzle-precious-blob rename to levels/en_EN/low-level/puzzle-precious-blob diff --git a/levels/en/low-level/puzzle-trees-all-the-way-down b/levels/en_EN/low-level/puzzle-trees-all-the-way-down similarity index 100% rename from levels/en/low-level/puzzle-trees-all-the-way-down rename to levels/en_EN/low-level/puzzle-trees-all-the-way-down diff --git a/levels/en/low-level/ref-create b/levels/en_EN/low-level/ref-create similarity index 100% rename from levels/en/low-level/ref-create rename to levels/en_EN/low-level/ref-create diff --git a/levels/en/low-level/ref-move b/levels/en_EN/low-level/ref-move similarity index 100% rename from levels/en/low-level/ref-move rename to levels/en_EN/low-level/ref-move diff --git a/levels/en/low-level/ref-remove b/levels/en_EN/low-level/ref-remove similarity index 100% rename from levels/en/low-level/ref-remove rename to levels/en_EN/low-level/ref-remove diff --git a/levels/en/low-level/sequence b/levels/en_EN/low-level/sequence similarity index 100% rename from levels/en/low-level/sequence rename to levels/en_EN/low-level/sequence diff --git a/levels/en/low-level/symref-create b/levels/en_EN/low-level/symref-create similarity index 100% rename from levels/en/low-level/symref-create rename to levels/en_EN/low-level/symref-create diff --git a/levels/en/low-level/symref-no-deref b/levels/en_EN/low-level/symref-no-deref similarity index 100% rename from levels/en/low-level/symref-no-deref rename to levels/en_EN/low-level/symref-no-deref diff --git a/levels/en/low-level/tree-create b/levels/en_EN/low-level/tree-create similarity index 100% rename from levels/en/low-level/tree-create rename to levels/en_EN/low-level/tree-create diff --git a/levels/en/low-level/tree-nested b/levels/en_EN/low-level/tree-nested similarity index 100% rename from levels/en/low-level/tree-nested rename to levels/en_EN/low-level/tree-nested diff --git a/levels/en/low-level/tree-read b/levels/en_EN/low-level/tree-read similarity index 100% rename from levels/en/low-level/tree-read rename to levels/en_EN/low-level/tree-read diff --git a/levels/en/low-level/welcome b/levels/en_EN/low-level/welcome similarity index 100% rename from levels/en/low-level/welcome rename to levels/en_EN/low-level/welcome diff --git a/levels/en/merge/conflict b/levels/en_EN/merge/conflict similarity index 100% rename from levels/en/merge/conflict rename to levels/en_EN/merge/conflict diff --git a/levels/en/merge/merge b/levels/en_EN/merge/merge similarity index 100% rename from levels/en/merge/merge rename to levels/en_EN/merge/merge diff --git a/levels/en/merge/merge-abort b/levels/en_EN/merge/merge-abort similarity index 100% rename from levels/en/merge/merge-abort rename to levels/en_EN/merge/merge-abort diff --git a/levels/en/merge/sequence b/levels/en_EN/merge/sequence similarity index 100% rename from levels/en/merge/sequence rename to levels/en_EN/merge/sequence diff --git a/levels/en/remotes/friend b/levels/en_EN/remotes/friend similarity index 100% rename from levels/en/remotes/friend rename to levels/en_EN/remotes/friend diff --git a/levels/en/remotes/problems b/levels/en_EN/remotes/problems similarity index 100% rename from levels/en/remotes/problems rename to levels/en_EN/remotes/problems diff --git a/levels/en/remotes/sequence b/levels/en_EN/remotes/sequence similarity index 100% rename from levels/en/remotes/sequence rename to levels/en_EN/remotes/sequence diff --git a/levels/en/sandbox/empty b/levels/en_EN/sandbox/empty similarity index 100% rename from levels/en/sandbox/empty rename to levels/en_EN/sandbox/empty diff --git a/levels/en/sandbox/remote b/levels/en_EN/sandbox/remote similarity index 100% rename from levels/en/sandbox/remote rename to levels/en_EN/sandbox/remote diff --git a/levels/en/sandbox/sequence b/levels/en_EN/sandbox/sequence similarity index 100% rename from levels/en/sandbox/sequence rename to levels/en_EN/sandbox/sequence diff --git a/levels/en/sandbox/three-commits b/levels/en_EN/sandbox/three-commits similarity index 100% rename from levels/en/sandbox/three-commits rename to levels/en_EN/sandbox/three-commits diff --git a/levels/en/sequence b/levels/en_EN/sequence similarity index 100% rename from levels/en/sequence rename to levels/en_EN/sequence diff --git a/levels/en/shit-happens/bad-commit b/levels/en_EN/shit-happens/bad-commit similarity index 100% rename from levels/en/shit-happens/bad-commit rename to levels/en_EN/shit-happens/bad-commit diff --git a/levels/en/shit-happens/pushed-something-broken b/levels/en_EN/shit-happens/pushed-something-broken similarity index 100% rename from levels/en/shit-happens/pushed-something-broken rename to levels/en_EN/shit-happens/pushed-something-broken diff --git a/levels/en/shit-happens/reflog b/levels/en_EN/shit-happens/reflog similarity index 100% rename from levels/en/shit-happens/reflog rename to levels/en_EN/shit-happens/reflog diff --git a/levels/en/shit-happens/restore-a-file b/levels/en_EN/shit-happens/restore-a-file similarity index 100% rename from levels/en/shit-happens/restore-a-file rename to levels/en_EN/shit-happens/restore-a-file diff --git a/levels/en/shit-happens/restore-a-file-from-the-past b/levels/en_EN/shit-happens/restore-a-file-from-the-past similarity index 100% rename from levels/en/shit-happens/restore-a-file-from-the-past rename to levels/en_EN/shit-happens/restore-a-file-from-the-past diff --git a/levels/en/shit-happens/sequence b/levels/en_EN/shit-happens/sequence similarity index 100% rename from levels/en/shit-happens/sequence rename to levels/en_EN/shit-happens/sequence diff --git a/levels/en/stash/sequence b/levels/en_EN/stash/sequence similarity index 100% rename from levels/en/stash/sequence rename to levels/en_EN/stash/sequence diff --git a/levels/en/stash/stash b/levels/en_EN/stash/stash similarity index 100% rename from levels/en/stash/stash rename to levels/en_EN/stash/stash diff --git a/levels/en/stash/stash-branch b/levels/en_EN/stash/stash-branch similarity index 100% rename from levels/en/stash/stash-branch rename to levels/en_EN/stash/stash-branch diff --git a/levels/en/stash/stash-clear b/levels/en_EN/stash/stash-clear similarity index 100% rename from levels/en/stash/stash-clear rename to levels/en_EN/stash/stash-clear diff --git a/levels/en/stash/stash-merge b/levels/en_EN/stash/stash-merge similarity index 100% rename from levels/en/stash/stash-merge rename to levels/en_EN/stash/stash-merge diff --git a/levels/en/stash/stash-pop b/levels/en_EN/stash/stash-pop similarity index 100% rename from levels/en/stash/stash-pop rename to levels/en_EN/stash/stash-pop diff --git a/levels/en/tags/add-tag b/levels/en_EN/tags/add-tag similarity index 100% rename from levels/en/tags/add-tag rename to levels/en_EN/tags/add-tag diff --git a/levels/en/tags/add-tag-later b/levels/en_EN/tags/add-tag-later similarity index 100% rename from levels/en/tags/add-tag-later rename to levels/en_EN/tags/add-tag-later diff --git a/levels/en/tags/remote-tag b/levels/en_EN/tags/remote-tag similarity index 100% rename from levels/en/tags/remote-tag rename to levels/en_EN/tags/remote-tag diff --git a/levels/en/tags/remove-tag b/levels/en_EN/tags/remove-tag similarity index 100% rename from levels/en/tags/remove-tag rename to levels/en_EN/tags/remove-tag diff --git a/levels/en/tags/sequence b/levels/en_EN/tags/sequence similarity index 100% rename from levels/en/tags/sequence rename to levels/en_EN/tags/sequence diff --git a/levels/en/unused/checkout b/levels/en_EN/unused/checkout similarity index 100% rename from levels/en/unused/checkout rename to levels/en_EN/unused/checkout diff --git a/levels/en/unused/clone b/levels/en_EN/unused/clone similarity index 100% rename from levels/en/unused/clone rename to levels/en_EN/unused/clone diff --git a/levels/en/unused/commit b/levels/en_EN/unused/commit similarity index 100% rename from levels/en/unused/commit rename to levels/en_EN/unused/commit diff --git a/levels/en/unused/commit-a b/levels/en_EN/unused/commit-a similarity index 100% rename from levels/en/unused/commit-a rename to levels/en_EN/unused/commit-a diff --git a/levels/en/unused/fetch b/levels/en_EN/unused/fetch similarity index 100% rename from levels/en/unused/fetch rename to levels/en_EN/unused/fetch diff --git a/levels/en/unused/files-move b/levels/en_EN/unused/files-move similarity index 100% rename from levels/en/unused/files-move rename to levels/en_EN/unused/files-move diff --git a/levels/en/unused/index-mv b/levels/en_EN/unused/index-mv similarity index 100% rename from levels/en/unused/index-mv rename to levels/en_EN/unused/index-mv diff --git a/levels/en/unused/init b/levels/en_EN/unused/init similarity index 100% rename from levels/en/unused/init rename to levels/en_EN/unused/init diff --git a/levels/en/unused/pull-push b/levels/en_EN/unused/pull-push similarity index 100% rename from levels/en/unused/pull-push rename to levels/en_EN/unused/pull-push diff --git a/levels/en/unused/remotes-add b/levels/en_EN/unused/remotes-add similarity index 100% rename from levels/en/unused/remotes-add rename to levels/en_EN/unused/remotes-add diff --git a/levels/en/unused/remotes-delete b/levels/en_EN/unused/remotes-delete similarity index 100% rename from levels/en/unused/remotes-delete rename to levels/en_EN/unused/remotes-delete diff --git a/levels/en/unused/restore b/levels/en_EN/unused/restore similarity index 100% rename from levels/en/unused/restore rename to levels/en_EN/unused/restore diff --git a/levels/en/unused/split b/levels/en_EN/unused/split similarity index 100% rename from levels/en/unused/split rename to levels/en_EN/unused/split diff --git a/levels/en/unused/steps b/levels/en_EN/unused/steps similarity index 100% rename from levels/en/unused/steps rename to levels/en_EN/unused/steps diff --git a/levels/en/unused/who-are-you b/levels/en_EN/unused/who-are-you similarity index 100% rename from levels/en/unused/who-are-you rename to levels/en_EN/unused/who-are-you diff --git a/levels/en/workflows/gitignore b/levels/en_EN/workflows/gitignore similarity index 100% rename from levels/en/workflows/gitignore rename to levels/en_EN/workflows/gitignore diff --git a/levels/en/workflows/pr b/levels/en_EN/workflows/pr similarity index 100% rename from levels/en/workflows/pr rename to levels/en_EN/workflows/pr diff --git a/levels/en/workflows/sequence b/levels/en_EN/workflows/sequence similarity index 100% rename from levels/en/workflows/sequence rename to levels/en_EN/workflows/sequence diff --git a/levels/it/bisect/bisect b/levels/it_IT/bisect/bisect similarity index 100% rename from levels/it/bisect/bisect rename to levels/it_IT/bisect/bisect diff --git a/levels/it/bisect/sequence b/levels/it_IT/bisect/sequence similarity index 100% rename from levels/it/bisect/sequence rename to levels/it_IT/bisect/sequence diff --git a/levels/it/branches/branch-create b/levels/it_IT/branches/branch-create similarity index 100% rename from levels/it/branches/branch-create rename to levels/it_IT/branches/branch-create diff --git a/levels/it/branches/branch-remove b/levels/it_IT/branches/branch-remove similarity index 100% rename from levels/it/branches/branch-remove rename to levels/it_IT/branches/branch-remove diff --git a/levels/it/branches/checkout-commit b/levels/it_IT/branches/checkout-commit similarity index 100% rename from levels/it/branches/checkout-commit rename to levels/it_IT/branches/checkout-commit diff --git a/levels/it/branches/fork b/levels/it_IT/branches/fork similarity index 100% rename from levels/it/branches/fork rename to levels/it_IT/branches/fork diff --git a/levels/it/branches/grow b/levels/it_IT/branches/grow similarity index 100% rename from levels/it/branches/grow rename to levels/it_IT/branches/grow diff --git a/levels/it/branches/reorder b/levels/it_IT/branches/reorder similarity index 100% rename from levels/it/branches/reorder rename to levels/it_IT/branches/reorder diff --git a/levels/it/branches/sequence b/levels/it_IT/branches/sequence similarity index 100% rename from levels/it/branches/sequence rename to levels/it_IT/branches/sequence diff --git a/levels/it/changing-the-past/rebase b/levels/it_IT/changing-the-past/rebase similarity index 100% rename from levels/it/changing-the-past/rebase rename to levels/it_IT/changing-the-past/rebase diff --git a/levels/it/changing-the-past/reorder b/levels/it_IT/changing-the-past/reorder similarity index 100% rename from levels/it/changing-the-past/reorder rename to levels/it_IT/changing-the-past/reorder diff --git a/levels/it/changing-the-past/sequence b/levels/it_IT/changing-the-past/sequence similarity index 100% rename from levels/it/changing-the-past/sequence rename to levels/it_IT/changing-the-past/sequence diff --git a/levels/it/files/files-add b/levels/it_IT/files/files-add similarity index 100% rename from levels/it/files/files-add rename to levels/it_IT/files/files-add diff --git a/levels/it/files/files-delete b/levels/it_IT/files/files-delete similarity index 100% rename from levels/it/files/files-delete rename to levels/it_IT/files/files-delete diff --git a/levels/it/files/sequence b/levels/it_IT/files/sequence similarity index 100% rename from levels/it/files/sequence rename to levels/it_IT/files/sequence diff --git a/levels/it/index/add b/levels/it_IT/index/add similarity index 100% rename from levels/it/index/add rename to levels/it_IT/index/add diff --git a/levels/it/index/change b/levels/it_IT/index/change similarity index 100% rename from levels/it/index/change rename to levels/it_IT/index/change diff --git a/levels/it/index/checkout b/levels/it_IT/index/checkout similarity index 100% rename from levels/it/index/checkout rename to levels/it_IT/index/checkout diff --git a/levels/it/index/compare b/levels/it_IT/index/compare similarity index 100% rename from levels/it/index/compare rename to levels/it_IT/index/compare diff --git a/levels/it/index/new b/levels/it_IT/index/new similarity index 100% rename from levels/it/index/new rename to levels/it_IT/index/new diff --git a/levels/it/index/reset b/levels/it_IT/index/reset similarity index 100% rename from levels/it/index/reset rename to levels/it_IT/index/reset diff --git a/levels/it/index/rm b/levels/it_IT/index/rm similarity index 100% rename from levels/it/index/rm rename to levels/it_IT/index/rm diff --git a/levels/it/index/sequence b/levels/it_IT/index/sequence similarity index 100% rename from levels/it/index/sequence rename to levels/it_IT/index/sequence diff --git a/levels/it/index/steps b/levels/it_IT/index/steps similarity index 100% rename from levels/it/index/steps rename to levels/it_IT/index/steps diff --git a/levels/it/intro/cli b/levels/it_IT/intro/cli similarity index 100% rename from levels/it/intro/cli rename to levels/it_IT/intro/cli diff --git a/levels/it/intro/commit b/levels/it_IT/intro/commit similarity index 100% rename from levels/it/intro/commit rename to levels/it_IT/intro/commit diff --git a/levels/it/intro/copies b/levels/it_IT/intro/copies similarity index 100% rename from levels/it/intro/copies rename to levels/it_IT/intro/copies diff --git a/levels/it/intro/init b/levels/it_IT/intro/init similarity index 100% rename from levels/it/intro/init rename to levels/it_IT/intro/init diff --git a/levels/it/intro/remote b/levels/it_IT/intro/remote similarity index 100% rename from levels/it/intro/remote rename to levels/it_IT/intro/remote diff --git a/levels/it/intro/risky b/levels/it_IT/intro/risky similarity index 100% rename from levels/it/intro/risky rename to levels/it_IT/intro/risky diff --git a/levels/it/intro/sequence b/levels/it_IT/intro/sequence similarity index 100% rename from levels/it/intro/sequence rename to levels/it_IT/intro/sequence diff --git a/levels/it/intro/who-are-you b/levels/it_IT/intro/who-are-you similarity index 100% rename from levels/it/intro/who-are-you rename to levels/it_IT/intro/who-are-you diff --git a/levels/it/low-level/basics b/levels/it_IT/low-level/basics similarity index 100% rename from levels/it/low-level/basics rename to levels/it_IT/low-level/basics diff --git a/levels/it/low-level/blob-create b/levels/it_IT/low-level/blob-create similarity index 100% rename from levels/it/low-level/blob-create rename to levels/it_IT/low-level/blob-create diff --git a/levels/it/low-level/blob-remove b/levels/it_IT/low-level/blob-remove similarity index 100% rename from levels/it/low-level/blob-remove rename to levels/it_IT/low-level/blob-remove diff --git a/levels/it/low-level/commit-create b/levels/it_IT/low-level/commit-create similarity index 100% rename from levels/it/low-level/commit-create rename to levels/it_IT/low-level/commit-create diff --git a/levels/it/low-level/commit-parents b/levels/it_IT/low-level/commit-parents similarity index 100% rename from levels/it/low-level/commit-parents rename to levels/it_IT/low-level/commit-parents diff --git a/levels/it/low-level/commit-rhombus b/levels/it_IT/low-level/commit-rhombus similarity index 100% rename from levels/it/low-level/commit-rhombus rename to levels/it_IT/low-level/commit-rhombus diff --git a/levels/it/low-level/index-add b/levels/it_IT/low-level/index-add similarity index 100% rename from levels/it/low-level/index-add rename to levels/it_IT/low-level/index-add diff --git a/levels/it/low-level/index-remove b/levels/it_IT/low-level/index-remove similarity index 100% rename from levels/it/low-level/index-remove rename to levels/it_IT/low-level/index-remove diff --git a/levels/it/low-level/index-update b/levels/it_IT/low-level/index-update similarity index 100% rename from levels/it/low-level/index-update rename to levels/it_IT/low-level/index-update diff --git a/levels/it/low-level/puzzle-apocalypse b/levels/it_IT/low-level/puzzle-apocalypse similarity index 100% rename from levels/it/low-level/puzzle-apocalypse rename to levels/it_IT/low-level/puzzle-apocalypse diff --git a/levels/it/low-level/puzzle-precious-blob b/levels/it_IT/low-level/puzzle-precious-blob similarity index 100% rename from levels/it/low-level/puzzle-precious-blob rename to levels/it_IT/low-level/puzzle-precious-blob diff --git a/levels/it/low-level/puzzle-trees-all-the-way-down b/levels/it_IT/low-level/puzzle-trees-all-the-way-down similarity index 100% rename from levels/it/low-level/puzzle-trees-all-the-way-down rename to levels/it_IT/low-level/puzzle-trees-all-the-way-down diff --git a/levels/it/low-level/ref-create b/levels/it_IT/low-level/ref-create similarity index 100% rename from levels/it/low-level/ref-create rename to levels/it_IT/low-level/ref-create diff --git a/levels/it/low-level/ref-move b/levels/it_IT/low-level/ref-move similarity index 100% rename from levels/it/low-level/ref-move rename to levels/it_IT/low-level/ref-move diff --git a/levels/it/low-level/ref-remove b/levels/it_IT/low-level/ref-remove similarity index 100% rename from levels/it/low-level/ref-remove rename to levels/it_IT/low-level/ref-remove diff --git a/levels/it/low-level/sequence b/levels/it_IT/low-level/sequence similarity index 100% rename from levels/it/low-level/sequence rename to levels/it_IT/low-level/sequence diff --git a/levels/it/low-level/symref-create b/levels/it_IT/low-level/symref-create similarity index 100% rename from levels/it/low-level/symref-create rename to levels/it_IT/low-level/symref-create diff --git a/levels/it/low-level/symref-no-deref b/levels/it_IT/low-level/symref-no-deref similarity index 100% rename from levels/it/low-level/symref-no-deref rename to levels/it_IT/low-level/symref-no-deref diff --git a/levels/it/low-level/tree-create b/levels/it_IT/low-level/tree-create similarity index 100% rename from levels/it/low-level/tree-create rename to levels/it_IT/low-level/tree-create diff --git a/levels/it/low-level/tree-nested b/levels/it_IT/low-level/tree-nested similarity index 100% rename from levels/it/low-level/tree-nested rename to levels/it_IT/low-level/tree-nested diff --git a/levels/it/low-level/tree-read b/levels/it_IT/low-level/tree-read similarity index 100% rename from levels/it/low-level/tree-read rename to levels/it_IT/low-level/tree-read diff --git a/levels/it/low-level/welcome b/levels/it_IT/low-level/welcome similarity index 100% rename from levels/it/low-level/welcome rename to levels/it_IT/low-level/welcome diff --git a/levels/it/merge/conflict b/levels/it_IT/merge/conflict similarity index 100% rename from levels/it/merge/conflict rename to levels/it_IT/merge/conflict diff --git a/levels/it/merge/merge b/levels/it_IT/merge/merge similarity index 100% rename from levels/it/merge/merge rename to levels/it_IT/merge/merge diff --git a/levels/it/merge/merge-abort b/levels/it_IT/merge/merge-abort similarity index 100% rename from levels/it/merge/merge-abort rename to levels/it_IT/merge/merge-abort diff --git a/levels/it/merge/sequence b/levels/it_IT/merge/sequence similarity index 100% rename from levels/it/merge/sequence rename to levels/it_IT/merge/sequence diff --git a/levels/it/remotes/friend b/levels/it_IT/remotes/friend similarity index 100% rename from levels/it/remotes/friend rename to levels/it_IT/remotes/friend diff --git a/levels/it/remotes/problems b/levels/it_IT/remotes/problems similarity index 100% rename from levels/it/remotes/problems rename to levels/it_IT/remotes/problems diff --git a/levels/it/remotes/sequence b/levels/it_IT/remotes/sequence similarity index 100% rename from levels/it/remotes/sequence rename to levels/it_IT/remotes/sequence diff --git a/levels/it/sandbox/empty b/levels/it_IT/sandbox/empty similarity index 100% rename from levels/it/sandbox/empty rename to levels/it_IT/sandbox/empty diff --git a/levels/it/sandbox/remote b/levels/it_IT/sandbox/remote similarity index 100% rename from levels/it/sandbox/remote rename to levels/it_IT/sandbox/remote diff --git a/levels/it/sandbox/sequence b/levels/it_IT/sandbox/sequence similarity index 100% rename from levels/it/sandbox/sequence rename to levels/it_IT/sandbox/sequence diff --git a/levels/it/sandbox/three-commits b/levels/it_IT/sandbox/three-commits similarity index 100% rename from levels/it/sandbox/three-commits rename to levels/it_IT/sandbox/three-commits diff --git a/levels/it/sequence b/levels/it_IT/sequence similarity index 100% rename from levels/it/sequence rename to levels/it_IT/sequence diff --git a/levels/it/shit-happens/bad-commit b/levels/it_IT/shit-happens/bad-commit similarity index 100% rename from levels/it/shit-happens/bad-commit rename to levels/it_IT/shit-happens/bad-commit diff --git a/levels/it/shit-happens/pushed-something-broken b/levels/it_IT/shit-happens/pushed-something-broken similarity index 100% rename from levels/it/shit-happens/pushed-something-broken rename to levels/it_IT/shit-happens/pushed-something-broken diff --git a/levels/it/shit-happens/reflog b/levels/it_IT/shit-happens/reflog similarity index 100% rename from levels/it/shit-happens/reflog rename to levels/it_IT/shit-happens/reflog diff --git a/levels/it/shit-happens/restore-a-file b/levels/it_IT/shit-happens/restore-a-file similarity index 100% rename from levels/it/shit-happens/restore-a-file rename to levels/it_IT/shit-happens/restore-a-file diff --git a/levels/it/shit-happens/restore-a-file-from-the-past b/levels/it_IT/shit-happens/restore-a-file-from-the-past similarity index 100% rename from levels/it/shit-happens/restore-a-file-from-the-past rename to levels/it_IT/shit-happens/restore-a-file-from-the-past diff --git a/levels/it/shit-happens/sequence b/levels/it_IT/shit-happens/sequence similarity index 100% rename from levels/it/shit-happens/sequence rename to levels/it_IT/shit-happens/sequence diff --git a/levels/it/stash/sequence b/levels/it_IT/stash/sequence similarity index 100% rename from levels/it/stash/sequence rename to levels/it_IT/stash/sequence diff --git a/levels/it/stash/stash b/levels/it_IT/stash/stash similarity index 100% rename from levels/it/stash/stash rename to levels/it_IT/stash/stash diff --git a/levels/it/stash/stash-branch b/levels/it_IT/stash/stash-branch similarity index 100% rename from levels/it/stash/stash-branch rename to levels/it_IT/stash/stash-branch diff --git a/levels/it/stash/stash-clear b/levels/it_IT/stash/stash-clear similarity index 100% rename from levels/it/stash/stash-clear rename to levels/it_IT/stash/stash-clear diff --git a/levels/it/stash/stash-merge b/levels/it_IT/stash/stash-merge similarity index 100% rename from levels/it/stash/stash-merge rename to levels/it_IT/stash/stash-merge diff --git a/levels/it/stash/stash-pop b/levels/it_IT/stash/stash-pop similarity index 100% rename from levels/it/stash/stash-pop rename to levels/it_IT/stash/stash-pop diff --git a/levels/it/tags/add-tag b/levels/it_IT/tags/add-tag similarity index 100% rename from levels/it/tags/add-tag rename to levels/it_IT/tags/add-tag diff --git a/levels/it/tags/add-tag-later b/levels/it_IT/tags/add-tag-later similarity index 100% rename from levels/it/tags/add-tag-later rename to levels/it_IT/tags/add-tag-later diff --git a/levels/it/tags/remote-tag b/levels/it_IT/tags/remote-tag similarity index 100% rename from levels/it/tags/remote-tag rename to levels/it_IT/tags/remote-tag diff --git a/levels/it/tags/remove-tag b/levels/it_IT/tags/remove-tag similarity index 100% rename from levels/it/tags/remove-tag rename to levels/it_IT/tags/remove-tag diff --git a/levels/it/tags/sequence b/levels/it_IT/tags/sequence similarity index 100% rename from levels/it/tags/sequence rename to levels/it_IT/tags/sequence diff --git a/levels/it/unused/checkout b/levels/it_IT/unused/checkout similarity index 100% rename from levels/it/unused/checkout rename to levels/it_IT/unused/checkout diff --git a/levels/it/unused/clone b/levels/it_IT/unused/clone similarity index 100% rename from levels/it/unused/clone rename to levels/it_IT/unused/clone diff --git a/levels/it/unused/commit b/levels/it_IT/unused/commit similarity index 100% rename from levels/it/unused/commit rename to levels/it_IT/unused/commit diff --git a/levels/it/unused/commit-a b/levels/it_IT/unused/commit-a similarity index 100% rename from levels/it/unused/commit-a rename to levels/it_IT/unused/commit-a diff --git a/levels/it/unused/fetch b/levels/it_IT/unused/fetch similarity index 100% rename from levels/it/unused/fetch rename to levels/it_IT/unused/fetch diff --git a/levels/it/unused/files-move b/levels/it_IT/unused/files-move similarity index 100% rename from levels/it/unused/files-move rename to levels/it_IT/unused/files-move diff --git a/levels/it/unused/index-mv b/levels/it_IT/unused/index-mv similarity index 100% rename from levels/it/unused/index-mv rename to levels/it_IT/unused/index-mv diff --git a/levels/it/unused/init b/levels/it_IT/unused/init similarity index 100% rename from levels/it/unused/init rename to levels/it_IT/unused/init diff --git a/levels/it/unused/pull-push b/levels/it_IT/unused/pull-push similarity index 100% rename from levels/it/unused/pull-push rename to levels/it_IT/unused/pull-push diff --git a/levels/it/unused/remotes-add b/levels/it_IT/unused/remotes-add similarity index 100% rename from levels/it/unused/remotes-add rename to levels/it_IT/unused/remotes-add diff --git a/levels/it/unused/remotes-delete b/levels/it_IT/unused/remotes-delete similarity index 100% rename from levels/it/unused/remotes-delete rename to levels/it_IT/unused/remotes-delete diff --git a/levels/it/unused/restore b/levels/it_IT/unused/restore similarity index 100% rename from levels/it/unused/restore rename to levels/it_IT/unused/restore diff --git a/levels/it/unused/split b/levels/it_IT/unused/split similarity index 100% rename from levels/it/unused/split rename to levels/it_IT/unused/split diff --git a/levels/it/unused/steps b/levels/it_IT/unused/steps similarity index 100% rename from levels/it/unused/steps rename to levels/it_IT/unused/steps diff --git a/levels/it/unused/who-are-you b/levels/it_IT/unused/who-are-you similarity index 100% rename from levels/it/unused/who-are-you rename to levels/it_IT/unused/who-are-you diff --git a/levels/it/workflows/gitignore b/levels/it_IT/workflows/gitignore similarity index 100% rename from levels/it/workflows/gitignore rename to levels/it_IT/workflows/gitignore diff --git a/levels/it/workflows/pr b/levels/it_IT/workflows/pr similarity index 100% rename from levels/it/workflows/pr rename to levels/it_IT/workflows/pr diff --git a/levels/it/workflows/sequence b/levels/it_IT/workflows/sequence similarity index 100% rename from levels/it/workflows/sequence rename to levels/it_IT/workflows/sequence diff --git a/resources/localizations.csv b/resources/localizations.csv index 12f76b2..2a860b7 100644 --- a/resources/localizations.csv +++ b/resources/localizations.csv @@ -14,4 +14,7 @@ On macOS 10.8 and below, you can download Git from git-scm.com.","Ciao! Sembra c Su Linux, installalo dal tuo gestore di pacchetti, di solito il pacchetto si chiama "git"! Su macOS 10.8 e versioni precedenti, puoi scaricare Git da git-scm.com." -INSTALL,"Sure, I'll install it!","Sicuro, lo installerĂ²" \ No newline at end of file +INSTALL,"Sure, I'll install it!","Sicuro, lo installerĂ²" +LANGUAGE,Language,Linguaggio +ITALIAN,Italian,Italiano +ENGLISH,English,Inglese \ No newline at end of file diff --git a/resources/localizations.en.translation b/resources/localizations.en.translation index b578dfb..01525b3 100644 Binary files a/resources/localizations.en.translation and b/resources/localizations.en.translation differ diff --git a/resources/localizations.it.translation b/resources/localizations.it.translation index 1346041..410081c 100644 Binary files a/resources/localizations.it.translation and b/resources/localizations.it.translation differ diff --git a/scenes/cards.gd b/scenes/cards.gd index e6373d3..ee03e89 100644 --- a/scenes/cards.gd +++ b/scenes/cards.gd @@ -40,7 +40,7 @@ func draw_card(card): new_card.id = card["id"] new_card.command = card["command"] - new_card.description = card["description"][helpers.lang] + new_card.description = card["description"][game.lang] new_card.energy = 0 #card.energy new_card.position = Vector2(rect_size.x, rect_size.y*2) add_child(new_card) diff --git a/scenes/chapter.gd b/scenes/chapter.gd index b0c9ad4..1980e63 100644 --- a/scenes/chapter.gd +++ b/scenes/chapter.gd @@ -13,7 +13,7 @@ func load(path): var level_names = [] var dir = Directory.new() - dir.open("res://levels/" + helpers.lang + "/%s" % slug) + dir.open("res://levels/" + game.lang + "/%s" % slug) dir.list_dir_begin() while true: @@ -28,7 +28,7 @@ func load(path): var final_level_sequence = [] - var level_sequence = Array(helpers.read_file("res://levels/" + helpers.lang + "/%s/sequence" % slug, "").split("\n")) + var level_sequence = Array(helpers.read_file("res://levels/" + game.lang + "/%s/sequence" % slug, "").split("\n")) for level in level_sequence: if level == "": @@ -42,7 +42,7 @@ func load(path): for l in final_level_sequence: var level = Level.new() - level.load("res://levels/" + helpers.lang + "/%s/%s" % [slug, l]) + level.load("res://levels/" + game.lang + "/%s/%s" % [slug, l]) levels.push_back(level) func _to_string(): diff --git a/scenes/game.gd b/scenes/game.gd index 2f2a0b5..e8d689e 100644 --- a/scenes/game.gd +++ b/scenes/game.gd @@ -1,5 +1,7 @@ extends Node +var lang = OS.get_locale() # Variable for game localization + var tmp_prefix = OS.get_user_data_dir() + "/tmp/" var global_shell var fake_editor @@ -18,6 +20,7 @@ var state = {} var mutex func _ready(): + print(lang) mutex = Mutex.new() load_state() diff --git a/scenes/helpers.gd b/scenes/helpers.gd index 6d983d7..57dd61f 100644 --- a/scenes/helpers.gd +++ b/scenes/helpers.gd @@ -1,7 +1,5 @@ extends Node -var lang = "it" # Variable for localization - var debug_file_io = false # Crash the game and display the error message. diff --git a/scenes/levels.gd b/scenes/levels.gd index 07d645c..25593f7 100644 --- a/scenes/levels.gd +++ b/scenes/levels.gd @@ -9,7 +9,7 @@ func reload(): chapters = [] var dir = Directory.new() - dir.open("res://levels/" + helpers.lang) # TODO: Add language directory to get a correct language + dir.open("res://levels/" + game.lang) dir.list_dir_begin() var chapter_names = [] @@ -26,7 +26,7 @@ func reload(): var final_chapter_sequence = [] - var chapter_sequence = Array(helpers.read_file("res://levels/" + helpers.lang + "/sequence", "").split("\n")) + var chapter_sequence = Array(helpers.read_file("res://levels/" + game.lang + "/sequence", "").split("\n")) for chapter in chapter_sequence: if chapter == "": @@ -40,5 +40,5 @@ func reload(): for c in final_chapter_sequence: var chapter = Chapter.new() - chapter.load("res://levels/" + helpers.lang + "/%s" % c) + chapter.load("res://levels/" + game.lang + "/%s" % c) chapters.push_back(chapter) diff --git a/scenes/title.gd b/scenes/title.gd index f2374af..b79d977 100644 --- a/scenes/title.gd +++ b/scenes/title.gd @@ -1,9 +1,13 @@ extends Control +onready var popup = $VBoxContainer/Language + func _ready(): if !OS.has_feature("standalone") and !game.skipped_title: game.skipped_title = true get_tree().change_scene("res://scenes/level_select.tscn") + + make_popup_item() func quit(): get_tree().quit() @@ -20,3 +24,38 @@ func sandbox(): game.current_chapter = levels.chapters.size() - 1 game.current_level = levels.chapters[game.current_chapter].levels.size() -1 get_tree().change_scene("res://scenes/main.tscn") + + +func uncheck_all_item(): + # Set all item unchecked + var num = popup.get_popup().get_item_count() + for n in num: + popup.get_popup().set_item_checked(n, false) + pass + + +func make_popup_item(): + popup.get_popup().add_radio_check_item("en_EN", 0) + popup.get_popup().add_radio_check_item(tr("it_IT"), 1) + + uncheck_all_item() + + if game.lang == "en_EN": + popup.get_popup().set_item_checked(0, true) + elif game.lang == "it_IT": + popup.get_popup().set_item_checked(1, true) + + popup.get_popup().connect("id_pressed", self, "_on_item_pressed") + + +func _on_item_pressed(id): + uncheck_all_item() + + popup.get_popup().set_item_checked(id, true) + game.lang = popup.get_popup().get_item_text(id) + + + TranslationServer.set_locale(game.lang) + # DELETE ME + print(popup.get_popup().get_item_text(id)) + print(game.lang) diff --git a/scenes/title.tscn b/scenes/title.tscn index 2aa0fe7..d233369 100644 --- a/scenes/title.tscn +++ b/scenes/title.tscn @@ -66,6 +66,13 @@ margin_right = 351.0 margin_bottom = 127.0 text = "QUIT" +[node name="Language" type="MenuButton" parent="VBoxContainer"] +margin_top = 132.0 +margin_right = 351.0 +margin_bottom = 171.0 +text = "LANGUAGE" +flat = false + [node name="Sprite" type="Sprite" parent="."] [node name="oh-my-git" type="Sprite" parent="Sprite"]