Full Code of mbrlabs/Lorien for AI

main 17e32227dfce cached
179 files
2.2 MB
573.0k tokens
1 requests
Download .txt
Showing preview only (2,288K chars total). Download the full file or copy to clipboard to get everything.
Repository: mbrlabs/Lorien
Branch: main
Commit: 17e32227dfce
Files: 179
Total size: 2.2 MB

Directory structure:
gitextract_k0igh7rb/

├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   └── workflows/
│       └── build.yml
├── .gitignore
├── LICENSE
├── README.md
├── art/
│   ├── custom_icons.afdesign
│   └── logo.afdesign
├── docs/
│   ├── changelog.md
│   ├── contributing.md
│   ├── file_format.md
│   ├── i18n.md
│   ├── manuals/
│   │   ├── manual_v0.1.0.md
│   │   ├── manual_v0.2.0.md
│   │   ├── manual_v0.3.0.md
│   │   ├── manual_v0.4.0.md
│   │   ├── manual_v0.5.0.md
│   │   ├── manual_v0.6.0.md
│   │   └── manual_v0.7.0.md
│   └── roadmap.md
├── lorien/
│   ├── Assets/
│   │   ├── Cursors/
│   │   │   └── move_cursor.png.import
│   │   ├── I18n/
│   │   │   ├── ar.txt
│   │   │   ├── de.txt
│   │   │   ├── en.txt
│   │   │   ├── es.txt
│   │   │   ├── fr.txt
│   │   │   ├── it.txt
│   │   │   ├── ko.txt
│   │   │   ├── pt-BR.txt
│   │   │   ├── ru.txt
│   │   │   ├── tr.txt
│   │   │   ├── uk.txt
│   │   │   ├── zh-CN.txt
│   │   │   └── zh-TW.txt
│   │   ├── Icons/
│   │   │   ├── add.png.import
│   │   │   ├── brush_tool.png.import
│   │   │   ├── canvas_color_tool.png.import
│   │   │   ├── circle_tool.png.import
│   │   │   ├── clear_canvas.png.import
│   │   │   ├── close.png.import
│   │   │   ├── color_picker.png.import
│   │   │   ├── copy.png.import
│   │   │   ├── cursor_icon.png.import
│   │   │   ├── delete.png.import
│   │   │   ├── edit.png.import
│   │   │   ├── eraser_tool.png.import
│   │   │   ├── fullscreen.png.import
│   │   │   ├── grid.png.import
│   │   │   ├── line_tool.png.import
│   │   │   ├── menu.png.import
│   │   │   ├── move_tool.png.import
│   │   │   ├── new_file.png.import
│   │   │   ├── open_file.png.import
│   │   │   ├── plus.png.import
│   │   │   ├── rectangle_tool.png.import
│   │   │   ├── redo.png.import
│   │   │   ├── save_file.png.import
│   │   │   ├── selection_tool.png.import
│   │   │   ├── tools.png.import
│   │   │   └── undo.png.import
│   │   ├── Player/
│   │   │   ├── p1_duck.png.import
│   │   │   ├── p1_front.png.import
│   │   │   ├── p1_hurt.png.import
│   │   │   ├── p1_jump.png.import
│   │   │   ├── p1_stand.png.import
│   │   │   └── p1_walk/
│   │   │       ├── p1_walk01.png.import
│   │   │       ├── p1_walk02.png.import
│   │   │       ├── p1_walk03.png.import
│   │   │       ├── p1_walk04.png.import
│   │   │       ├── p1_walk05.png.import
│   │   │       ├── p1_walk06.png.import
│   │   │       ├── p1_walk07.png.import
│   │   │       ├── p1_walk08.png.import
│   │   │       ├── p1_walk09.png.import
│   │   │       ├── p1_walk10.png.import
│   │   │       └── p1_walk11.png.import
│   │   ├── Textures/
│   │   │   ├── arrow_right.png.import
│   │   │   ├── dot.png.import
│   │   │   ├── palette_button.png.import
│   │   │   ├── palette_button_outline.png.import
│   │   │   ├── scrollbar.png.import
│   │   │   ├── scrollbar_bg.png.import
│   │   │   ├── scrollbar_hl.png.import
│   │   │   ├── selection_cursor.png.import
│   │   │   ├── slider_knob_white.png.import
│   │   │   ├── switch_off.png.import
│   │   │   └── switch_on.png.import
│   │   └── icon.png.import
│   ├── BrushStroke/
│   │   ├── BrushStroke.gd
│   │   ├── BrushStroke.tscn
│   │   ├── BrushStrokeOptimizer.gd
│   │   └── BrushStrokeTexture.gd
│   ├── Config.gd
│   ├── InfiniteCanvas/
│   │   ├── Cursor/
│   │   │   ├── BaseCursor.gd
│   │   │   ├── BrushCursor/
│   │   │   │   ├── BrushCursor.gd
│   │   │   │   └── BrushCursor.tscn
│   │   │   ├── SelectionCursor/
│   │   │   │   ├── SelectionCursor.gd
│   │   │   │   └── SelectionCursor.tscn
│   │   │   └── cursor.gdshader
│   │   ├── DebugDraw.gd
│   │   ├── InfiniteCanvas.gd
│   │   ├── InfiniteCanvas.tscn
│   │   ├── InfiniteCanvasGrid.gd
│   │   ├── PanZoomCamera.gd
│   │   ├── Tools/
│   │   │   ├── BrushTool.gd
│   │   │   ├── CanvasTool.gd
│   │   │   ├── CircleTool.gd
│   │   │   ├── EraserTool.gd
│   │   │   ├── LineTool.gd
│   │   │   ├── RectangleTool.gd
│   │   │   ├── SelectionRectangle.gd
│   │   │   ├── SelectionTool.gd
│   │   │   └── selection_rectangle.gdshader
│   │   ├── constant_pressure_curve.tres
│   │   └── default_pressure_curve.tres
│   ├── Main.gd
│   ├── Main.tscn
│   ├── Misc/
│   │   ├── GlobalSignals.gd
│   │   ├── I18nParser.gd
│   │   ├── KeybindingsManager.gd
│   │   ├── Player/
│   │   │   ├── Player.gd
│   │   │   └── Player.tscn
│   │   ├── Settings.gd
│   │   ├── StatePersistence.gd
│   │   ├── SvgExporter.gd
│   │   ├── Types.gd
│   │   └── Utils.gd
│   ├── Palette/
│   │   ├── Palette.gd
│   │   ├── PaletteManager.gd
│   │   └── default_palette.tres
│   ├── ProjectManager/
│   │   ├── Project.gd
│   │   ├── ProjectManager.gd
│   │   ├── ProjectMetadata.gd
│   │   └── Serializer.gd
│   ├── UI/
│   │   ├── ColorPalettePicker.gd
│   │   ├── ColorPalettePicker.tscn
│   │   ├── Components/
│   │   │   ├── FlatTextureButton.gd
│   │   │   ├── KeybindItem.gd
│   │   │   ├── KeybindItem.tscn
│   │   │   ├── PaletteButton.gd
│   │   │   └── PaletteButton.tscn
│   │   ├── Dialogs/
│   │   │   ├── AboutDialog.gd
│   │   │   ├── AboutDialog.tscn
│   │   │   ├── AddKeyDialog.tscn
│   │   │   ├── AlertDialog.gd
│   │   │   ├── AlertDialog.tscn
│   │   │   ├── DeletePaletteDialog.gd
│   │   │   ├── DeletePaletteDialog.tscn
│   │   │   ├── EditPaletteDialog.gd
│   │   │   ├── EditPaletteDialog.tscn
│   │   │   ├── ExitDialog.tscn
│   │   │   ├── NewPaletteDialog.gd
│   │   │   ├── NewPaletteDialog.tscn
│   │   │   ├── SettingsDialog.gd
│   │   │   ├── SettingsDialog.tscn
│   │   │   ├── UnsavedChangesDialog.gd
│   │   │   └── UnsavedChangesDialog.tscn
│   │   ├── MainMenu.gd
│   │   ├── MainMenu.tscn
│   │   ├── Menubar.gd
│   │   ├── Menubar.tscn
│   │   ├── Statusbar.gd
│   │   ├── Statusbar.tscn
│   │   ├── Themes/
│   │   │   ├── dark/
│   │   │   │   ├── tab_active.tres
│   │   │   │   ├── tab_inactive.tres
│   │   │   │   ├── theme.tres
│   │   │   │   └── toolbar.tres
│   │   │   └── light/
│   │   │       ├── tab_active.tres
│   │   │       ├── tab_inactive.tres
│   │   │       ├── theme.tres
│   │   │       └── toolbar.tres
│   │   ├── Toolbar.gd
│   │   └── Toolbar.tscn
│   ├── export_presets.cfg
│   └── project.godot
└── public/
    └── linux/
        ├── com.github.mbrlabs.Lorien.desktop
        ├── com.github.mbrlabs.Lorien.metainfo.xml
        └── x-lorien-canvas.mimetype.xml

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/FUNDING.yml
================================================
ko_fi: mbrlabs
custom: https://www.paypal.me/mbrlabs


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Report a bug in Lorien
title: ''
labels: bug
assignees: ''
---
<!-- Please search existing issues for potential duplicates before filing yours:
https://github.com/mbrlabs/lorien/issues?q=is%3Aissue
-->

**Lorien version:**
<!-- Specify commit hash if using a non-official build. -->


**OS/device including version:**
<!-- Specify GPU model and drivers if graphics-related. -->


**Issue description:**
<!-- What happened, and what was expected. -->


**Steps to reproduce:**

================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature/enhancement request
about: Request a new feature or enhancement in Lorien
title: ''
labels: enhancement
assignees: ''
---
<!-- Please search existing issues for potential duplicates before filing yours:
https://github.com/mbrlabs/lorien/issues?q=is%3Aissue
-->

**Feature/enhancement description:**
<!-- Describe the user-visible benefits if this feature is implemented. -->

================================================
FILE: .github/workflows/build.yml
================================================
name: "build"

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

env:
  GODOT_VERSION: 4.3
  EXPORT_NAME: Lorien
  LORIEN_VERSION: v0.7.0-dev

jobs:
  windows-export:
    name: Windows Export
    runs-on: ubuntu-latest
    container:
      image: docker://barichello/godot-ci:4.3
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup
        run: |
          mkdir -v -p build/${EXPORT_NAME}_${LORIEN_VERSION}_Windows
          mkdir -v -p ~/.local/share/godot/export_templates
          mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
      - name: Build
        run: | 
          cd lorien
          godot --headless -v --export-release "Windows Desktop" ../build/${EXPORT_NAME}_${LORIEN_VERSION}_Windows/${EXPORT_NAME}_${LORIEN_VERSION}.exe
      - name: Upload Artifact
        uses: actions/upload-artifact@v4
        with:
          name: Lorien Windows
          path: build/${{ env.EXPORT_NAME }}_${{ env.LORIEN_VERSION }}_Windows
          retention-days: 14

  linux-export:
    name: Linux Export
    runs-on: ubuntu-latest
    container:
      image: docker://barichello/godot-ci:4.3
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup
        run: |
          mkdir -v -p build/${EXPORT_NAME}_${LORIEN_VERSION}_Linux
          mkdir -v -p ~/.local/share/godot/export_templates
          mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
      - name: Build
        run: | 
          cd lorien
          godot --headless -v --export-release "Linux" ../build/${EXPORT_NAME}_${LORIEN_VERSION}_Linux/${EXPORT_NAME}_${LORIEN_VERSION}.x86_64
      - name: Upload Artifact
        uses: actions/upload-artifact@v4
        with:
          name: Lorien Linux
          path: build/${{ env.EXPORT_NAME }}_${{ env.LORIEN_VERSION }}_Linux
          retention-days: 14

  mac-export:
    name: Mac Export
    runs-on: ubuntu-latest
    container:
      image: docker://barichello/godot-ci:4.3
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup
        run: |
          mkdir -v -p build/${EXPORT_NAME}_${LORIEN_VERSION}_Mac
          mkdir -v -p ~/.local/share/godot/export_templates
          mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
      - name: Build
        run: | 
          cd lorien
          godot --headless -v --export-release "macOS" ../build/${EXPORT_NAME}_${LORIEN_VERSION}_Mac/${EXPORT_NAME}_${LORIEN_VERSION}.zip
      - name: Upload Artifact
        uses: actions/upload-artifact@v4
        with:
          name: Lorien Mac
          path: build/${{ env.EXPORT_NAME }}_${{ env.LORIEN_VERSION }}_Mac
          retention-days: 14

================================================
FILE: .gitignore
================================================
# Godot-specific ignores
.import/
.godot/

# Mono-specific ignores
.mono/
data_*/

# Visual Studio Code-specific ignores
.vscode/


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2021-2025 Marcus Brummer

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.


================================================
FILE: README.md
================================================
<img src="https://raw.githubusercontent.com/mbrlabs/Lorien/main/images/lorien.png" align="left"/>

# Lorien
<p>
    <a href="https://github.com/mbrlabs/Lorien/actions">
        <img src="https://github.com/mbrlabs/Lorien/workflows/build/badge.svg" alt="Build Passing" />
    </a>
    <a href="https://github.com/mbrlabs/Lorien/blob/main/LICENSE">
        <img src="https://img.shields.io/github/license/mbrlabs/Lorien.svg" alt="License" />
    </a>
</p>

Lorien is an **infinite canvas drawing/note-taking app that is focused on performance, small savefiles and simplicity**. It's not based on bitmap images like Krita, Gimp or Photoshop; it rather saves brush strokes as a collection of points and renders them at runtime (kind of like SVG). It's primarily designed to be used as a digital notebook and as brainstorming tool. While it can totally be used to make small sketches and diagrams, it is not meant to replace traditional art programs that operate on bitmap images. It is entirely written in the [Godot Game Engine](https://godotengine.org/). For an overview on how to use Lorien have a look [at the manual](docs/manuals/manual_v0.6.0.md). 

![Lorien demo](https://raw.githubusercontent.com/mbrlabs/Lorien/main/images/lorien_demo.png)

⚠ **This is very much a WIP and still a bit rough around the edges** ⚠. The savefile format *might* also change in the future. Contributions (be it bug reports, code, art or [translations](docs/i18n.md)) are very welcome.

## Features as of v0.7.0-dev:
- Infinite canvas
- Infinite undo/redo
- (Almost) Infinite zoom
- Infinite grid
- Zen mode (toggles the UI on/off)
- Extremely small savefiles ([File format specs](docs/file_format.md))
- Work on multiple documents simultaneously
- [Tools](docs/manuals/manual_v0.7.0.md): Freehand brush, eraser, line tool, rectangle tool, circle/ellipse tool, selection tool
- Move and delete selected brush strokes
- SVG export
- Rebindable keyboard shortcuts
- Built-in and custom color palettes
- Designed to be used with a drawing tablet (Wacom, etc.). It also supports pressure sensitivity
- A little Surprise Mechanic™ when pressing F12
- Runs on Windows, Linux & macOS
- Localizations: German, English, Spanish, French, Italian, Korean, Brasilian Portuguese, Russian, Turkish, Ukrainian, Chinese

## Download
You can download the latest stable releases on [Github](https://github.com/mbrlabs/Lorien/releases). 

If you want to check out the bleeding edge main branch without building the project yourself you can also check out the [CI builds](https://github.com/mbrlabs/Lorien/actions). But make sure to backup your files and be prepared for bugs if you do that.

## More information
- [Contributing Guide](docs/contributing.md)
- [Localization](docs/i18n.md)
- [Changelog](docs/changelog.md)
- [Roadmap](docs/roadmap.md)

## Credits
- Brush stroke antialiasing: [godot-antialiased-line2d](https://github.com/godot-extended-libraries/godot-antialiased-line2d)
- Icons used for the UI: [Remix Icon](https://remixicon.com/)
- Blurred background image of demo screenshot: https://unsplash.com/photos/nO0V_T0g2fM


================================================
FILE: docs/changelog.md
================================================
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [0.7.0] 

### Breaking Changes
- The keybindings format is different, so you will need to update them again in case you changed them

### Added
- Brush stroke stabilizer/smoothing
- Adaptive frame rate for reduced GPU/CPU load when the user is idle
- Velocity based line thickness (in addition to pen pressure)
- File tabs are now responsive and can be scrolled when not enough screen width is availble
- File tabs can be moved via drag and drop
- Native file dialogs
- Option to change the internally used drawing tablet driver in the settings
- Setting to disable pressure sensitivity and always draw with a constant brush width
- Quit shortcut (`CTRL+Q` by default)
- Alternative way to pan the canvas by holding `SPACE` and moving the mouse
- The rectangle tool will now draw a perfect square while holding `SHIFT`
- Translations: Ukrainian, Arabic 

### Fixed
- Fixed SVG export for brush strokes that have been moved using the move tool
- Made zooming to the mouse cursor in the canvas more accurate
- Made it easier to delete single dots with the eraser tool

### Changed
- Migrated from Godot 3.5.3 to Godot 4.3
- Improved stability and quality of the brush tool 
- UI overhaul
- Decreased max line thickness from 50 to 32
- Improved icon resolution on Windows
- Disabled all audio functionality inherited from Godot

## [0.6.0] - 2023-11-06

It's been a while - but here is a another release! Special thanks goes to [@MrApplejuice](https://github.com/MrApplejuice) for adding support for rebindable keyboard shortcuts and [@hansemro](https://github.com/hansemro) for enabling the eraser mode when the pen is inverted!

This will be the last "major" version using Godot 3. After this release i will start porting Lorien to Godot 4.

### Added
- Rebindable keyboard shortcuts
- Use eraser tool while tablet pen is inverted
- Dotted grid pattern; can be changed back to lines (or none at all) in the settings
- Translations: Simplified Chinese, Traditional Chinese

### Fixed
- Fixed blurry interface on some macOS devices
- Fixed invisible cursor in some situations
- Fixed issue where moved brush strokes stayed in their original positions after exporting to SVG
- Fixed not being able to draw simple dots by just clicking/tapping the brush once

### Changed
- Changing the application language does not require a restart now
- Improved translations: Spanish, Brasilian Portuguese
- Improved UI auto scaling, especially for Windows and OSX
- Moved to grid toggle button from the toolbar to the settings
- Removed the canvas background color from the toolbar and moved it to Settings > Canvas Color. The previous setting (Appearance > Default canvas color was removed)
- `.lorien` files do no longer store the canvas background color
- Updated to Godot 3.5.3

## [0.5.0] - 2022-06-12

### Breaking Changes
Version `v0.5` of Lorien features a new SuperEraser, which erases brush strokes as soon as it inserects with them. The previous implementation just painted over new brush strokes, which always had the same color as the background - giving you the illusion of a traditional eraser like in bitmap-based programs (Gimp, Photoshop, etc.). The old implementation has been completely removed in favor of the SuperEraser.
The savefile format did not change. However previously made eraser-strokes will be skipped when loading `.lorien` files. Moreover when saving these files, the eraser-strokes will be permanently lost. 

If you rely on these eraser-strokes: DO NOT UPDATE to this version or BACKUP you `.lorien` files before opening them in the new version.

### Added
- Zooming with CTRL+MMB
- Automatically remembering and auto-opening .lorien files upon exit & launch
- Fullscreen support
- Basic SVG exporter
- Circle/Ellipse tool
- New eraser tool behaviour (SuperEraser): intersecting a brush stroke with the eraser brush removes the entiry brush stroke 
- The window size will be saved and restored across program restarts
- Center the canvas based on current mouse position (shortcut: `SPACE`)
- UI scaling for high-dpi monitors
- Toolbar can be scrolled through when the entire toolbar cannot be shown
- Changing the brush color while having strokes actively selected changes the color of these strokes
- Translations: Turkish, Brazilian Portuguese

### Fixed
- Fixed misplaced color picker after window resize
- Fixed keyboard shortcuts for MacOS

### Changed
- Updated to Godot 3.4.4
- Enabled low-energy mode
- Improved brush stroke antialiasing
- Improved selection tool performance on large documents
- Removed old fake-eraser in favor of new SuperEraser
- Removed rudimentary png export in favor of the new SVG exporter 
- Made the brush stroke optimizer less aggresive, which results in smoother lines at the expense of slightly bigger savefiles
- Increased the default pressure sensitvity from 1.0 to 1.5
- Lowered minimum window size
- Default to rounded brush stoke caps

## [0.4.0] - 2021-10-10

### Added
- Distraction free mode which hides the UI. Can be toggled with TAB
- Color palettes: You can use the built-in palette or create custom palettes yourself
- Easteregg: Pressing F12 spwans a playable character who can walk on the drawn lines
- Rectangle tool: Easily draw rectangular shapes
- Translations: Korean, French

### Fixed
- Issue where the the mouse cursor vanished when switching from annother program to Lorien while a dialog was open
- Some UI elements were not hooked up to the localization system

### Changed
- Updated to Godot 3.3.4
- Lines created with the line tool are now subdivided (more points between start and end point) so that it's easier to select them
- Removed the color picker tool in favour of the new palette system
- Removed the default brush color setting in favour of the new palette system
- UI: subtle rounded corners for most elements 
- UI: replaced some default Godot icons with custom versions
- UI: General polish

## [0.3.0] - 2021-07-23

### Added
- Infinite grid
- Copy-Paste selected brush strokes with CTRL+C/CTRL+V or duplicate in one step with CTRL+D
- The selection tool can now also deselect seperate brush strokes by holding down shift
- "Save as" functionality to save a file as a new file with a new file name, while keeping the original
- Implemented "Open" and "Save" functionality in menu
- Translations: Spanish, Russian
- Open files via drag'n drop from the filesystem
- Open files via cli arguments and "Open with.." functionality on Windows
- Option to set foreground and backgound FPS in the settings menu
- Option to set the line cap in settings menu (flat & round)
- Option to change the pressure sensitivity by a fixed multilpier

### Fixed
- Fixed camera position & zoom getting reset when switching between tabs
- Fixed an issue where a brush stroke disappeared if it got too long (See: [#26](https://github.com/mbrlabs/Lorien/issues/26))
- Use default canvas color from settings for newly opened tabs
- Fixed wrong pen pressure display in status bar
- Wrong scaling of cursors when switching between files
- Fixed issue where the brush tool won't activate when switching from annother program to the unfocused Lorien window

### Changed
- Disabled VSync and set the fixed target FPS to 144, which results in much smoother brush strokes and a better feeling on low Hz monitors
- Lower the FPS to 10 if the window is unfocused to reduce the CPU/GPU load and save energy
- Improved camera zoom
- Switched to GLES3 backend
- Removed unimplemented color-preset ui-elements from colorpickers
- Introduced a minimum window size so it can't be resized to 0 anymore
- The selection tool now selects any brush stroke when at least one stroke point is inside the selection rectangle

## [0.2.0] - 2021-06-03

### Added 
- Mention contributors in the About Dialog
- Improved closing of files with unsaved changes
- Export the whole canvas as PNG image
- Implemented the color picker tool, which let's you pick any color on the canvas
- Selection tool
- Ability to move selected brush strokes
- Ability to delete selected brush strokes with delete key
- Added an option to switch between languages: English, German and Italian
- Line Tool: snap in 15° steps when holding down shift 

### Fixed
- Fixed the size of the drawing area/viewport for [high resolution displays](https://github.com/mbrlabs/Lorien/issues/1)
- Fixed some memory leaks
- Various smaller fixes

### Changed
- Switched to GLES2 for better compability with older hardware
- Improved tooltip styling

## [0.1.0] - 2021-05-23

### Added
- Infinite canvas
- Infinite undo/redo
- (Almost) Infinite zoom
- Extremely small savefiles
- Work on multiple documents simultaneously
- Tools: Freehand brush, eraser, line tool
- You can choose different colors for brush strokes and the canvas background via an easy to use color picker
- Designed to be used with a drawing tablet (Wacom, etc.). It also supports pressure sensitivity
- Runs on Windows, Linux & Mac

[0.6.0]: https://github.com/mbrlabs/lorien/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/mbrlabs/lorien/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/mbrlabs/lorien/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/mbrlabs/lorien/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/mbrlabs/lorien/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/mbrlabs/lorien/releases/tag/v0.1.0


================================================
FILE: docs/contributing.md
================================================
# How to contribute

## General
This guide is loosly based on [Godot's contributing guidelines](https://github.com/godotengine/godot/blob/master/CONTRIBUTING.md):
- We use Godot 4.3-stable
- If you want to implement a big feature, open an issue or a [Github discussion](https://github.com/mbrlabs/Lorien/discussions) so we can talk about it first
- Format your commit messages with readability in mind

## Codestyle
- Adapt to the project's coding style
- Use C-style logical operators: `&&`, `||`, `!` instead of `and`, `or`, `not`
- Use function separators (see any `.gd` file in this repository for examples)
- Always use static typing


================================================
FILE: docs/file_format.md
================================================
# File Format

TODO because not final.           
See: https://github.com/mbrlabs/Lorien/blob/main/lorien/ProjectManager/Serializer.gd

================================================
FILE: docs/i18n.md
================================================
# Localization

### How Lorien handles localization

Godot has two ways to handle multiple languages right now:
- Putting all translations into one CSV file
- Gettext (.po files)

The CSV file way of doing things is fine if you work alone, but once you have multiple people working on translations you will get lot's of merge conflicts.
Gettext is more powerful and splits translations into seperate files, but i don't like the format.

However, you can add translations in code by using the TranslationServer. My localization files are simple `.txt` files. This makes translating strings really easy. The file format is very straight forward: One translation per line; then a key followed by the translation (sperated by at least one whitespace). The first key **must be** `LANGUAGE_NAME` followed by the language's name (in that same language, not in english). Here is an example for `English`:

`en.txt`:

```
LANGUAGE_NAME English

GREETING        Hello World!   
SAVE            Save   

# This is a comment

SAVE_AS         Save as..   # This is also a comment
TOOL_BRUSH      Brush Tool   

```

### How to add new translations

If you want to add more translations all you need to do is:
- Create a new translation file in `Assets/i18n/` using an external text editor
- That's it. The `.txt` file will be loaded automatically.

================================================
FILE: docs/manuals/manual_v0.1.0.md
================================================
# Lorien Manual v0.1.0

Drawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. 

## Basic Usage
- Draw with the left mouse button or with your drawing tablet's pen
- Pan/drag across the canvas with the middle mouse button (i recommend to map a button on your pen to the middle mouse button for easy navigation)
- Zoom with mouse wheel

## Keyboard shortcuts
- <kbd>Ctrl</kbd> + <kbd>S</kbd>: Saves the current file
- <kbd>Ctrl</kbd> + <kbd>N</kbd>: Open a new file
- <kbd>Ctrl</kbd> + <kbd>O</kbd>: Open a new empty tab
- <kbd>Ctrl</kbd> + <kbd>Z</kbd>: Undo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>Y</kbd>: Redo a brush stroke
- <kbd>B</kbd>: Brush tool
- <kbd>E</kbd>: Eraser tool
- <kbd>L</kbd>: Line tool
- <kbd>C</kbd>: Color picker tool

================================================
FILE: docs/manuals/manual_v0.2.0.md
================================================
# Lorien Manual v0.2.0

Drawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. 

## Basic Usage
- Draw with the left mouse button (<kbd>LMB</kbd>) or with your drawing tablet's pen
- Pan/drag across the canvas with the middle mouse button (i recommend to map a button on your pen to the middle mouse button for easy navigation)
- Zoom with mouse wheel

## Selection Tool
- With the Selection tool you can select a number of brush strokes by dragging across the screen with your <kbd>LMB</kbd> pressed. Brush strokes which are considered inside the selection recatangle will be added to the current selection. You can add more strokes to your current selection by holding down <kbd>Shift</kbd> while dragging.
- You can deselect your current selection by pressing <kbd>RMB</kbd> or <kbd>Esc</kbd>.
- To move the selected strokes simply drag them while holding down <kbd>LMB</kbd>. If you did not move your mouse while pressing <kbd>LMB</kbd>, everything will be deselected automatically.
- Press <kbd>Delete</kbd> to delete the current selection

## Line Tool
- You can hold down <kbd>Shift</kbd> while using the line tool to snap the line in 15° increments 

## Keyboard shortcuts
- <kbd>Ctrl</kbd> + <kbd>S</kbd>: Saves the current file
- <kbd>Ctrl</kbd> + <kbd>N</kbd>: Open a new file
- <kbd>Ctrl</kbd> + <kbd>O</kbd>: Open a new empty tab
- <kbd>Ctrl</kbd> + <kbd>Z</kbd>: Undo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>Y</kbd>: Redo a brush stroke
- <kbd>B</kbd>: Brush tool
- <kbd>E</kbd>: Eraser tool
- <kbd>L</kbd>: Line tool
- <kbd>C</kbd>: Color picker tool
- <kbd>S</kbd>: Selection tool
- <kbd>Esc</kbd> or <kbd>RMB</kbd>: Deselect everything
- <kbd>Delete</kbd>: Deletes selected brush strokes

================================================
FILE: docs/manuals/manual_v0.3.0.md
================================================
# Lorien Manual v0.3.0

Drawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. 

## Basic Usage
- Draw with the left mouse button (<kbd>LMB</kbd>) or with your drawing tablet's pen
- Pan/drag across the canvas with the middle mouse button (I recommend to map a button on your pen to the middle mouse button for easy navigation)
- Zoom with mouse wheel
- You can open files by dragging them into the window or by opening it via the menu (Shortcut <kbd>CTRL</kbd> + <kbd>O</kbd>)

## Selection Tool
- With the Selection tool you can select a number of brush strokes by dragging across the screen with your <kbd>LMB</kbd> pressed. Brush strokes which are considered inside the selection recatangle will be added to the current selection. You can add more strokes to your current selection by holding down <kbd>Shift</kbd> while dragging.
- You can deselect your current selection by pressing <kbd>RMB</kbd> or <kbd>Esc</kbd>.
- To move the selected strokes simply drag them while holding down <kbd>LMB</kbd>. If you did not move your mouse while pressing <kbd>LMB</kbd>, everything will be deselected automatically.
- Press <kbd>Delete</kbd> to delete the current selection
- Press <kbd>CTRL</kbd> + <kbd>C</kbd> to copy the current selection
- Press <kbd>CTRL</kbd> + <kbd>V</kbd> to paste the copied brush strokes
- Press <kbd>CTRL</kbd> + <kbd>D</kbd> to duplicate the current selection

## Line Tool
- You can hold down <kbd>Shift</kbd> while using the line tool to snap the line in 15° increments 

## Keyboard shortcuts
- <kbd>Ctrl</kbd> + <kbd>S</kbd>: Saves the current file
- <kbd>Ctrl</kbd> + <kbd>N</kbd>: Open a new file
- <kbd>Ctrl</kbd> + <kbd>O</kbd>: Open a new empty tab
- <kbd>Ctrl</kbd> + <kbd>Z</kbd>: Undo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>Y</kbd>: Redo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>C</kbd>: Copy selected brush strokes
- <kbd>Ctrl</kbd> + <kbd>V</kbd>: Paste copied brush strokes
- <kbd>Ctrl</kbd> + <kbd>D</kbd>: Duplicate selected brush strokes
- <kbd>B</kbd>: Brush tool
- <kbd>E</kbd>: Eraser tool
- <kbd>L</kbd>: Line tool
- <kbd>C</kbd>: Color picker tool
- <kbd>S</kbd>: Selection tool
- <kbd>Esc</kbd> or <kbd>RMB</kbd>: Deselect everything
- <kbd>Delete</kbd>: Deletes selected brush strokes


================================================
FILE: docs/manuals/manual_v0.4.0.md
================================================
# Lorien Manual v0.4.0

Drawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. 

## Basic Usage
- Draw with the left mouse button (<kbd>LMB</kbd>) or with your drawing tablet's pen
- Pan/drag across the canvas with the middle mouse button (i recommend to map a button on your pen to the middle mouse button for easy navigation)
- Zoom with mouse wheel
- You can open files by dragging them into the window or by opening it via the menu (Shortcut <kbd>CTRL</kbd> + <kbd>O</kbd>)

## Tools
Lorien provides you with different tools which you can find in the toolbar. If you want to enable a tool all you have to do is click on it or use the keyboard shortcut. If you hover over the icons you can also see a short description including the keyboard shortcut.

### Brush Tool
- The brush tool is selected by default. It allows you to freely draw on the canvas with your mouse or drawing tablet. 
- You can change the brush size with the adjuster in the toolbar
- The brush color can be changed by clicking on the colored button in the toolbar next to the brush size adjuster 
- It is pressure sensitve

### Rectangle Tool
- You can use the rectangle tool to create perfect (unfilled) rectagles
- Not pressure sensitive 

### Line Tool
- Allows you to draw perfect lines
- You can hold down <kbd>Shift</kbd> while using the line tool to snap the line in 15° increments 
- Not pressure sensitve

### Eraser Tool
- Allows you to erease any brush stroke
- Otherwise behaves like the brush tool

### Selection Tool
- With the Selection tool you can select a number of brush strokes by dragging across the screen with your <kbd>LMB</kbd> pressed. Brush strokes which are considered inside the selection recatangle will be added to the current selection. You can add more strokes to your current selection by holding down <kbd>Shift</kbd> while dragging.
- You can deselect your current selection by pressing <kbd>RMB</kbd> or <kbd>Esc</kbd>.
- To move the selected strokes simply drag them while holding down <kbd>LMB</kbd>. If you did not move your mouse while pressing <kbd>LMB</kbd>, everything will be deselected automatically.
- Press <kbd>Delete</kbd> to delete the current selection
- Press <kbd>CTRL</kbd> + <kbd>C</kbd> to copy the current selection
- Press <kbd>CTRL</kbd> + <kbd>V</kbd> to paste the copied brush strokes
- Press <kbd>CTRL</kbd> + <kbd>D</kbd> to duplicate the current selection

## Color Palettes
- Color palettes allow you to easily switch between different pre-defined colors. To open the pallete you have to click on the colored button in the toolbar next to the brush size adjsuter.
- You can add/edit/delete custom color palettes
- The default color palette can't be edited or deleted. If you want to customize it you can can make a copy of it and edit that instead.

## Keyboard shortcuts
- <kbd>Ctrl</kbd> + <kbd>S</kbd>: Saves the current file
- <kbd>Ctrl</kbd> + <kbd>N</kbd>: Open a new file
- <kbd>Ctrl</kbd> + <kbd>O</kbd>: Open a new empty tab
- <kbd>Ctrl</kbd> + <kbd>Z</kbd>: Undo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>Y</kbd>: Redo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>C</kbd>: Copy selected brush strokes
- <kbd>Ctrl</kbd> + <kbd>V</kbd>: Paste copied brush strokes
- <kbd>Ctrl</kbd> + <kbd>D</kbd>: Duplicate selected brush strokes
- <kbd>B</kbd>: Brush tool
- <kbd>R</kbd>: Rectangle tool
- <kbd>E</kbd>: Eraser tool
- <kbd>L</kbd>: Line tool
- <kbd>S</kbd>: Selection tool
- <kbd>Esc</kbd> or <kbd>RMB</kbd>: Deselect everything
- <kbd>Delete</kbd>: Deletes selected brush strokes
- <kbd>Tab</kbd>: enter/exit distraction free mode (no UI)
- <kbd>F12</kbd>: Spwans a playable character at the mouse position who can walk on the drawn lines (easteregg)


================================================
FILE: docs/manuals/manual_v0.5.0.md
================================================
# Lorien Manual v0.5.0

Drawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. 

## Basic Usage
- Draw with the left mouse button (<kbd>LMB</kbd>) or with your drawing tablet's pen
- Pan/drag across the canvas with the middle mouse button (i recommend to map a button on your pen to the middle mouse button for easy navigation)
- Zoom with the mouse wheel. You can also zoom while holding <kbd>CTRL</kbd> and the middle mouse button <kbd>MMB</kbd> while moving the mose up/down. This is especially useful when using a drawing tablet with a pen.
- You can open files by dragging them into the window or by opening it via the menu (Shortcut <kbd>CTRL</kbd> + <kbd>O</kbd>)

## Tools
Lorien provides you with different tools which you can find in the toolbar. If you want to enable a tool all you have to do is click on it or use the keyboard shortcut. If you hover over the icons you can also see a short description including the keyboard shortcut.

### Brush Tool
- The brush tool is selected by default. It allows you to freely draw on the canvas with your mouse or drawing tablet. 
- You can change the brush size with the adjuster in the toolbar
- The brush color can be changed by clicking on the colored button in the toolbar next to the brush size adjuster 
- It is pressure sensitve

### Rectangle Tool
- You can use the rectangle tool to create perfect (unfilled) rectagles
- Not pressure sensitive 

### Line Tool
- Allows you to draw perfect lines
- You can hold down <kbd>Shift</kbd> while using the line tool to snap the line in 15° increments 
- Not pressure sensitve

### Circle Tool
- Allows you to draw perfect ellipses and circles
- You can hold down <kbd>Shift</kbd> while using the circle tool to draw perfect circles. Otherwise it defaults to ellipses
- Not pressure sensitve

### Eraser Tool
- Allows you to erease brush strokes by drawing over it. Once the eraser intersects with a brush stroke, the whole brush stroke will be removed
- The brush size affects the area of effect

### Selection Tool
- With the Selection tool you can select a number of brush strokes by dragging across the screen with your <kbd>LMB</kbd> pressed. Brush strokes which are considered inside the selection recatangle will be added to the current selection. You can add more strokes to your current selection by holding down <kbd>Shift</kbd> while dragging.
- You can deselect your current selection by pressing <kbd>RMB</kbd> or <kbd>Esc</kbd>.
- To move the selected strokes simply drag them while holding down <kbd>LMB</kbd>. If you did not move your mouse while pressing <kbd>LMB</kbd>, everything will be deselected automatically.
- Press <kbd>Delete</kbd> to delete the current selection
- Press <kbd>CTRL</kbd> + <kbd>C</kbd> to copy the current selection
- Press <kbd>CTRL</kbd> + <kbd>V</kbd> to paste the copied brush strokes
- Press <kbd>CTRL</kbd> + <kbd>D</kbd> to duplicate the current selection

## Color Palettes
- Color palettes allow you to easily switch between different pre-defined colors. To open the pallete you have to click on the colored button in the toolbar next to the brush size adjsuter.
- You can add/edit/delete custom color palettes
- The default color palette can't be edited or deleted. If you want to customize it you can can make a copy of it and edit that instead.

## Keyboard shortcuts
- <kbd>Ctrl</kbd> + <kbd>S</kbd>: Saves the current file
- <kbd>Ctrl</kbd> + <kbd>N</kbd>: Open a new file
- <kbd>Ctrl</kbd> + <kbd>O</kbd>: Open a new empty tab
- <kbd>Ctrl</kbd> + <kbd>E</kbd>: Opens the SVG export dialog
- <kbd>Ctrl</kbd> + <kbd>Z</kbd>: Undo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>Y</kbd>: Redo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>C</kbd>: Copy selected brush strokes
- <kbd>Ctrl</kbd> + <kbd>V</kbd>: Paste copied brush strokes
- <kbd>Ctrl</kbd> + <kbd>D</kbd>: Duplicate selected brush strokes
- <kbd>SPACE</kbd>: Center the canvas based on current mouse position
- <kbd>B</kbd>: Brush tool
- <kbd>R</kbd>: Rectangle tool
- <kbd>E</kbd>: Eraser tool
- <kbd>L</kbd>: Line tool
- <kbd>C</kbd>: Circle tool
- <kbd>S</kbd>: Selection tool
- <kbd>Esc</kbd> or <kbd>RMB</kbd>: Deselect everything
- <kbd>Delete</kbd>: Deletes selected brush strokes
- <kbd>Tab</kbd>: enter/exit distraction free mode (no UI)
- <kbd>F12</kbd>: Spwans a playable character at the mouse position who can walk on the drawn lines (easteregg)


================================================
FILE: docs/manuals/manual_v0.6.0.md
================================================
# Lorien Manual v0.6.0

Drawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. 

## Basic Usage
- Draw with the left mouse button (<kbd>LMB</kbd>) or with your drawing tablet's pen
- Pan/drag across the canvas with the middle mouse button (i recommend to map a button on your pen to the middle mouse button for easy navigation)
- Zoom with the mouse wheel. You can also zoom while holding <kbd>CTRL</kbd> and the middle mouse button <kbd>MMB</kbd> while moving the mose up/down. This is especially useful when using a drawing tablet with a pen.
- You can open files by dragging them into the window or by opening it via the menu (Shortcut <kbd>CTRL</kbd> + <kbd>O</kbd>)

## Tools
Lorien provides you with different tools which you can find in the toolbar. If you want to enable a tool all you have to do is click on it or use the keyboard shortcut. If you hover over the icons you can also see a short description including the keyboard shortcut.

### Brush Tool
- The brush tool is selected by default. It allows you to freely draw on the canvas with your mouse or drawing tablet. 
- You can change the brush size with the adjuster in the toolbar
- The brush color can be changed by clicking on the colored button in the toolbar next to the brush size adjuster 
- It is pressure sensitve

### Rectangle Tool
- You can use the rectangle tool to create perfect (unfilled) rectagles
- Not pressure sensitive 

### Line Tool
- Allows you to draw perfect lines
- You can hold down <kbd>Shift</kbd> while using the line tool to snap the line in 15° increments 
- Not pressure sensitve

### Circle Tool
- Allows you to draw perfect ellipses and circles
- You can hold down <kbd>Shift</kbd> while using the circle tool to draw perfect circles. Otherwise it defaults to ellipses
- Not pressure sensitve

### Eraser Tool
- Allows you to erease brush strokes by drawing over it. Once the eraser intersects with a brush stroke, the whole brush stroke will be removed
- The brush size affects the area of effect
- When using a stylus/pen that supports erasing with the other side, Lorien automatically switches into the eraser mode  

### Selection Tool
- With the Selection tool you can select a number of brush strokes by dragging across the screen with your <kbd>LMB</kbd> pressed. Brush strokes which are considered inside the selection recatangle will be added to the current selection. You can add more strokes to your current selection by holding down <kbd>Shift</kbd> while dragging.
- You can deselect your current selection by pressing <kbd>RMB</kbd> or <kbd>Esc</kbd>.
- To move the selected strokes simply drag them while holding down <kbd>LMB</kbd>. If you did not move your mouse while pressing <kbd>LMB</kbd>, everything will be deselected automatically.
- Press <kbd>Delete</kbd> to delete the current selection
- Press <kbd>CTRL</kbd> + <kbd>C</kbd> to copy the current selection
- Press <kbd>CTRL</kbd> + <kbd>V</kbd> to paste the copied brush strokes
- Press <kbd>CTRL</kbd> + <kbd>D</kbd> to duplicate the current selection

## Color Palettes
- Color palettes allow you to easily switch between different pre-defined colors. To open the pallete you have to click on the colored button in the toolbar next to the brush size adjsuter.
- You can add/edit/delete custom color palettes
- The default color palette can't be edited or deleted. If you want to customize it you can can make a copy of it and edit that instead.

## Keyboard shortcuts
- <kbd>Ctrl</kbd> + <kbd>S</kbd>: Saves the current file
- <kbd>Ctrl</kbd> + <kbd>N</kbd>: Open a new file
- <kbd>Ctrl</kbd> + <kbd>O</kbd>: Open a new empty tab
- <kbd>Ctrl</kbd> + <kbd>E</kbd>: Opens the SVG export dialog
- <kbd>Ctrl</kbd> + <kbd>Z</kbd>: Undo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>Y</kbd>: Redo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>C</kbd>: Copy selected brush strokes
- <kbd>Ctrl</kbd> + <kbd>V</kbd>: Paste copied brush strokes
- <kbd>Ctrl</kbd> + <kbd>D</kbd>: Duplicate selected brush strokes
- <kbd>SPACE</kbd>: Center the canvas based on current mouse position
- <kbd>B</kbd>: Brush tool
- <kbd>R</kbd>: Rectangle tool
- <kbd>E</kbd>: Eraser tool
- <kbd>L</kbd>: Line tool
- <kbd>C</kbd>: Circle tool
- <kbd>S</kbd>: Selection tool
- <kbd>Esc</kbd> or <kbd>RMB</kbd>: Deselect everything
- <kbd>Delete</kbd>: Deletes selected brush strokes
- <kbd>Tab</kbd>: enter/exit distraction free mode (no UI)
- <kbd>F12</kbd>: Spwans a playable character at the mouse position who can walk on the drawn lines (easteregg)


================================================
FILE: docs/manuals/manual_v0.7.0.md
================================================
# Lorien Manual v0.7.0

Drawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. 

## Basic Usage
- Draw with the left mouse button (<kbd>LMB</kbd>) or with your drawing tablet's pen
- Pan/drag across the canvas with the middle mouse button (i recommend to map a button on your pen to the middle mouse button for easy navigation)
- Zoom with the mouse wheel. You can also zoom while holding <kbd>CTRL</kbd> and the middle mouse button <kbd>MMB</kbd> while moving the mose up/down. This is especially useful when using a drawing tablet with a pen.
- You can open files by dragging them into the window or by opening it via the menu (Shortcut <kbd>CTRL</kbd> + <kbd>O</kbd>)

## Tools
Lorien provides you with different tools which you can find in the toolbar. If you want to enable a tool all you have to do is click on it or use the keyboard shortcut. If you hover over the icons you can also see a short description including the keyboard shortcut.

### Brush Tool
- The brush tool is selected by default. It allows you to freely draw on the canvas with your mouse or drawing tablet. 
- You can change the brush size with the adjuster in the toolbar
- The brush color can be changed by clicking on the colored button in the toolbar next to the brush size adjuster 
- It is pressure sensitve

### Rectangle Tool
- You can use the rectangle tool to create perfect (unfilled) rectagles
- Not pressure sensitive 

### Line Tool
- Allows you to draw perfect lines
- You can hold down <kbd>Shift</kbd> while using the line tool to snap the line in 15° increments 
- Not pressure sensitve

### Circle Tool
- Allows you to draw perfect ellipses and circles
- You can hold down <kbd>Shift</kbd> while using the circle tool to draw perfect circles. Otherwise it defaults to ellipses
- Not pressure sensitve

### Eraser Tool
- Allows you to erease brush strokes by drawing over it. Once the eraser intersects with a brush stroke, the whole brush stroke will be removed
- The brush size affects the area of effect
- When using a stylus/pen that supports erasing with the other side, Lorien automatically switches into the eraser mode  

### Selection Tool
- With the Selection tool you can select a number of brush strokes by dragging across the screen with your <kbd>LMB</kbd> pressed. Brush strokes which are considered inside the selection recatangle will be added to the current selection. You can add more strokes to your current selection by holding down <kbd>Shift</kbd> while dragging.
- You can deselect your current selection by pressing <kbd>RMB</kbd> or <kbd>Esc</kbd>.
- To move the selected strokes simply drag them while holding down <kbd>LMB</kbd>. If you did not move your mouse while pressing <kbd>LMB</kbd>, everything will be deselected automatically.
- Press <kbd>Delete</kbd> to delete the current selection
- Press <kbd>CTRL</kbd> + <kbd>C</kbd> to copy the current selection
- Press <kbd>CTRL</kbd> + <kbd>V</kbd> to paste the copied brush strokes
- Press <kbd>CTRL</kbd> + <kbd>D</kbd> to duplicate the current selection

## Color Palettes
- Color palettes allow you to easily switch between different pre-defined colors. To open the pallete you have to click on the colored button in the toolbar next to the brush size adjsuter.
- You can add/edit/delete custom color palettes
- The default color palette can't be edited or deleted. If you want to customize it you can can make a copy of it and edit that instead.

## Keyboard shortcuts
- <kbd>Ctrl</kbd> + <kbd>S</kbd>: Saves the current file
- <kbd>Ctrl</kbd> + <kbd>N</kbd>: Open a new file
- <kbd>Ctrl</kbd> + <kbd>O</kbd>: Open a new empty tab
- <kbd>Ctrl</kbd> + <kbd>E</kbd>: Opens the SVG export dialog
- <kbd>Ctrl</kbd> + <kbd>Z</kbd>: Undo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>Y</kbd>: Redo a brush stroke
- <kbd>Ctrl</kbd> + <kbd>C</kbd>: Copy selected brush strokes
- <kbd>Ctrl</kbd> + <kbd>V</kbd>: Paste copied brush strokes
- <kbd>Ctrl</kbd> + <kbd>D</kbd>: Duplicate selected brush strokes
- <kbd>B</kbd>: Brush tool
- <kbd>R</kbd>: Rectangle tool
- <kbd>E</kbd>: Eraser tool
- <kbd>L</kbd>: Line tool
- <kbd>C</kbd>: Circle tool
- <kbd>S</kbd>: Selection tool
- <kbd>Esc</kbd> or <kbd>RMB</kbd>: Deselect everything
- <kbd>Delete</kbd>: Deletes selected brush strokes
- <kbd>Tab</kbd>: Toggle zen mode (no UI)
- <kbd>F12</kbd>: Easteregg: spwans a playable character at the mouse position who can walk/jump/crouch on brush strokes.


================================================
FILE: docs/roadmap.md
================================================
# Roadmap

The old roadmap is for the most part implemented or obsolete. 
So this needs to be updated at some point :)

================================================
FILE: lorien/Assets/Cursors/move_cursor.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://cynvq1tyvqx67"
path="res://.godot/imported/move_cursor.png-443b66feec64cf631c7817838e2e4aaa.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Cursors/move_cursor.png"
dest_files=["res://.godot/imported/move_cursor.png-443b66feec64cf631c7817838e2e4aaa.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/I18n/ar.txt
================================================
LANGUAGE_NAME العربية

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           فتح
MENU_SAVE           حفظ
MENU_SAVE_AS        حفظ باسم
MENU_SETTINGS       إعدادات
MENU_MANUAL         الدليل
MENU_BUG_TRACKER    مراقب الأخطاء
MENU_ABOUT          حول
MENU_EXPORT         إخراج
MENU_QUIT           Quit        # TODO

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        إنشاء ملف جديد
TOOLBAR_TOOLTIP_OPEN_FILE       فتح ملف
TOOLBAR_TOOLTIP_SAVE_FILE       حفظ ملف
TOOLBAR_TOOLTIP_UNDO            تراجع عن الإجراء
TOOLBAR_TOOLTIP_REDO            إعادة الإجراء
TOOLBAR_TOOLTIP_BRUSH_TOOL      الفرشاة
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  المستطيل
TOOLBAR_TOOLTIP_CIRCLE_TOOL     الدائرة
TOOLBAR_TOOLTIP_LINE_TOOL       سطر
TOOLBAR_TOOLTIP_ERASER_TOOL     ممحاة
TOOLBAR_TOOLTIP_BRUSH_COLOR     لون الفرشاة
TOOLBAR_TOOLTIP_BRUSH_SIZE      مقاس الفرشاة
TOOLBAR_TOOLTIP_CANVAS_COLOR    لون اللوحة
TOOLBAR_FULLSCREEN_TOGGLE       تبديل ملء الشاشة

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        إنشاء لوح ألوان جديد
COLOR_PALETTE_PICKER_HINT_EDIT       تعديل لوح الألوان الحالي
COLOR_PALETTE_PICKER_HINT_DUPLICATE  كرر لوح الألوان الحالي
COLOR_PALETTE_PICKER_HINT_DELETE     حذف لوح الألوان الحالي نهائيًا

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              موقع
STATUSBAR_ZOOM                  تكبير
STATUSBAR_PRESSURE              ضغط
STATUSBAR_FPS                   عدد الأطر في الثانية
STATUSBAR_STROKES               خطوط
STATUSBAR_POINTS                نقاط

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  إعدادات
SETTINGS_GENERAL                عام
SETTINGS_APPEARANCE             مظهر
SETTINGS_RENDERING              العرض
SETTINGS_PRESSURE_SENSITIVITY   حساسية الضغط
SETTINGS_BRUSH_SIZE             مقاس الفرشاة الافتراضي
SETTINGS_CANVAS_COLOR           لون اللوحة الافتراضي
SETTINGS_PROJECT_FOLDER         ملف المشروع الافتراضي
SETTINGS_LANGUAGE               اللغة
SETTINGS_TABLET_DRIVER          Tablet Driver
SETTINGS_THEME                  الشكل
SETTINGS_UI_SCALE               حجم واجهة المستخدم
SETTINGS_UI_SCALE_AUTO          تلقائي
SETTINGS_UI_SCALE_CUSTOM        مخصص              
SETTINGS_FPS_FOREGROUND         عدد الأطر في الثانية(الأمامية)
SETTINGS_FPS_BACKGROUND         عدد الأطر في الثانية(الخلفية)
SETTINGS_BRUSH_CAPS             وضع تدوير الفرشاة
SETTINGS_BRUSH_CAPS_FLAT        مسطح
SETTINGS_BRUSH_CAPS_ROUND       دائري
SETTINGS_RESTART_NOTICE  	    مطلوب إعادة التشغيل لتطبيق الإعدادات الجديدة

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              حول
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & contributors 
ABOUT_DIALOG_LICSENSE           Lorien is licensed under:
ABOUT_DIALOG_BASED_ON           Lorien is based on:
ABOUT_DIALOG_EASTEREGG          Easteregg character:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    حفظ التغييرات؟
UNSAVED_CHANGES_DIALOG_TEXT     هل تريد حفظ التغييرات قبل إغلاق الملف؟

# -----------------------------------------------------------------------------
# Exit dialog
# -----------------------------------------------------------------------------

EXIT_DIALOG_TITLE    حفظ التغييرات؟
EXIT_DIALOG_TEXT     هل تريد حفظ التغييرات قبل الخروج من Lorien؟

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		لوح ألوان جديد
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		كرر لوح الألوان
NEW_PALETTE_DIALOG_PLACEHOLDER 			اسم لوح الألوان 

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			مسح لوح الألوان
DELETE_PALETTE_DIALOG_TEXT 				هل أنت متأكد أنك تريد حذف نهائيًا:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		تعديل لوح الألوان

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ERROR_NOT_IMPLEMENTED               لم تنفذ بعد.
ERROR_AUTOSAVE_NOT_IMPLEMENTED      لم يتم تنفيذ "الحفظ التلقائي" لملف "بدون عنوان". يرجى حفظه يدويًا.
ALERT_EDITING_BUILTIN_PALETTE       تعديل لوحات الألوان المدمجة غير ممكن. إذا كنت ترغب في تخصيص هذه اللوحة ، يمكنك عمل نسخة و تعديلها بدلاً من ذلك.
ALERT_DELETING_BUILTIN_PALETTE      لا يمكن حذف لوحات الألوان المدمجة في البرنامج.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            حفظ
DISCARD         رفض
CANCEL          إلغاء
DELETE          مسح


================================================
FILE: lorien/Assets/I18n/de.txt
================================================
LANGUAGE_NAME Deutsch

# --------------------------------------------------------------------------------
# Menu
# --------------------------------------------------------------------------------

MENU_OPEN           Öffnen...
MENU_SAVE           Speichern
MENU_SAVE_AS        Speichern als...
MENU_SETTINGS       Einstellungen
MENU_MANUAL         Benutzeranleitung
MENU_BUG_TRACKER    Bug Tracker
MENU_ABOUT          Über
MENU_EXPORT         Exportieren...
MENU_QUIT           Schließen

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        Neue Datei anlegen
TOOLBAR_TOOLTIP_OPEN_FILE       Datei öffnen
TOOLBAR_TOOLTIP_SAVE_FILE       Datei speichern
TOOLBAR_TOOLTIP_UNDO            Undo Action
TOOLBAR_TOOLTIP_REDO            Redo Action
TOOLBAR_TOOLTIP_BRUSH_TOOL      Pinsel Werkzeug
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  Rechteck Werkzeug
TOOLBAR_TOOLTIP_LINE_TOOL       Linien Werkzeug
TOOLBAR_TOOLTIP_ERASER_TOOL     Radierer
TOOLBAR_TOOLTIP_SELECT_TOOL     Auswahl Werkzeug
TOOLBAR_TOOLTIP_BRUSH_COLOR     Pinsel Farbe
TOOLBAR_TOOLTIP_BRUSH_SIZE      Pinsel Größe
TOOLBAR_TOOLTIP_CANVAS_COLOR    Canvas Farbe

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_EDIT       Aktuelle Farbpalette editieren
COLOR_PALETTE_PICKER_HINT_NEW        Neue Farbpalette anlegen
COLOR_PALETTE_PICKER_HINT_DUPLICATE  Aktuelle Farbpalette duplizieren
COLOR_PALETTE_PICKER_HINT_DELETE     Aktuelle Farbpalette permanent löschen


# -----------------------------------------------------------------------------
# Statusbar
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              Position
STATUSBAR_ZOOM                  Zoom
STATUSBAR_PRESSURE              Druck
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               Striche
STATUSBAR_POINTS                Punkte

# -----------------------------------------------------------------------------
# Settings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  Einstellungen
SETTINGS_GENERAL                Generell
SETTINGS_APPEARANCE             Ansicht
SETTINGS_RENDERING              Rendering
SETTINGS_PRESSURE_SENSITIVITY   Druckempfindlichkeit
SETTINGS_BRUSH_SIZE             Default Pinsel Größe
SETTINGS_PROJECT_FOLDER         Default Project Ordner
SETTINGS_LANGUAGE               Sprache
SETTINGS_TABLET_DRIVER          Tablet Treiber
SETTINGS_THEME                  Theme
SETTINGS_GRID_SIZE              Grid Größe
SETTINGS_GRID_PATTERN           Grid Pattern
SETTINGS_CANVAS_COLOR           Canvas Farbe
SETTINGS_FPS_FOREGROUND         Vordergrund Fps
SETTINGS_FPS_BACKGROUND         Hintergrund Fps
SETTINGS_BRUSH_CAPS	            Pinsel Abrundung
SETTINGS_BRUSH_CAPS_FLAT        Flach
SETTINGS_BRUSH_CAPS_ROUND       Abgerundet
SETTINGS_RESTART_NOTICE  		Ein Neustart ist notwendig um die Einstellungen zu übernehmen

# -----------------------------------------------------------------------------
# About dialog
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              Über
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & Mitwirkende
ABOUT_DIALOG_LICSENSE           Lorien ist lizenziert unter:
ABOUT_DIALOG_BASED_ON           Lorien basiert auf:
ABOUT_DIALOG_EASTEREGG          Easteregg Charakter:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warnung
UNSAVED_CHANGES_DIALOG_TEXT     Willst du deine Änderungen speichern?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		Neue Farbpalette
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		Farbpalette duplizieren
NEW_PALETTE_DIALOG_PLACEHOLDER 			Palette Name 

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			Farbpalette löschen
DELETE_PALETTE_DIALOG_TEXT 				Bist du sicher folgende Farbpalette permanent zu löschen:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		Palette bearbeiten

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------
ALERT_EDITING_BUILTIN_PALETTE       Built-in Paletten können nicht verändert werden. Um diese Palette zu anzupassen, mache eine Kopie und verändere diese stattdessen.
ALERT_DELETING_BUILTIN_PALETTE      Built-in Farbpaletten können nicht gelöscht werden.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            Speichern
DISCARD         Verwerfen
CANCEL          Abbrechen
DELETE          Löschen

# -----------------------------------------------------------------------------
# Action names
# -----------------------------------------------------------------------------

ACTION_shortcut_save_project        Datei speichern
ACTION_shortcut_new_project         Neue Datei
ACTION_shortcut_open_project        Datei öffnen
ACTION_shortcut_close_project       Datei schließen
ACTION_shortcut_quit                Schließen
ACTION_shortcut_undo                Undo
ACTION_shortcut_redo                Redo
ACTION_shortcut_brush_tool          Pinsel Werkzeug
ACTION_shortcut_line_tool           Linien Werkzeug
ACTION_shortcut_eraser_tool         Radiergummi
ACTION_shortcut_select_tool         Auswahl Werkzeug
ACTION_shortcut_rectangle_tool      Rechteck Werkzeug
ACTION_shortcut_circle_tool         Kreis Werkzeug
ACTION_shortcut_export_project      Datei exportieren
ACTION_deselect_all_strokes         Aktuelle Auswahl entfernen 
ACTION_delete_selected_strokes      Aktuelle Auswahl löschen
ACTION_copy_strokes                 Kopieren
ACTION_paste_strokes                Einfügen
ACTION_duplicate_strokes            Auswahl duplizieren
ACTION_toggle_zen_mode              Toggle Zen Mode
ACTION_toggle_player                Toggle Easteregg
ACTION_toggle_fullscreen            Vollbildmodus

================================================
FILE: lorien/Assets/I18n/en.txt
================================================
LANGUAGE_NAME English

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           Open...
MENU_SAVE           Save
MENU_SAVE_AS        Save as...
MENU_SETTINGS       Settings
MENU_MANUAL         Online Manual
MENU_BUG_TRACKER    Bug Tracker
MENU_ABOUT          About
MENU_EXPORT         Export...
MENU_QUIT           Quit

# -----------------------------------------------------------------------------
# Project
# -----------------------------------------------------------------------------
PROJECT_NAME_UNTITLED                   Untitled
PROJECT_NAME_UNTITLED_UNSAVED           Untitled (*)
# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        Create New File
TOOLBAR_TOOLTIP_OPEN_FILE       Open File
TOOLBAR_TOOLTIP_SAVE_FILE       Save File
TOOLBAR_TOOLTIP_UNDO            Undo Action
TOOLBAR_TOOLTIP_REDO            Redo Action
TOOLBAR_TOOLTIP_BRUSH_TOOL      Brush Tool
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  Rectangle Tool
TOOLBAR_TOOLTIP_CIRCLE_TOOL     Circle Tool
TOOLBAR_TOOLTIP_LINE_TOOL       Line Tool
TOOLBAR_TOOLTIP_ERASER_TOOL     Eraser
TOOLBAR_TOOLTIP_SELECT_TOOL     Selection Tool
TOOLBAR_TOOLTIP_BRUSH_COLOR     Brush Color
TOOLBAR_TOOLTIP_BRUSH_SIZE      Brush Size
TOOLBAR_TOOLTIP_CANVAS_COLOR    Canvas Color
TOOLBAR_FULLSCREEN_TOGGLE       Toggle fullscreen

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        Create new color palette
COLOR_PALETTE_PICKER_HINT_EDIT       Edit the current color palette
COLOR_PALETTE_PICKER_HINT_DUPLICATE  Duplicate the current color palette
COLOR_PALETTE_PICKER_HINT_DELETE     Delete the current color palette permanently

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              Position
STATUSBAR_ZOOM                  Zoom
STATUSBAR_PRESSURE              Pressure
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               Strokes
STATUSBAR_POINTS                Points

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                          Settings
SETTINGS_GENERAL                        General
SETTINGS_APPEARANCE                     Appearance
SETTINGS_RENDERING                      Rendering
SETTINGS_KEYBINDINGS                    Keybindings
SETTINGS_PRESSURE_SENSITIVITY           Pressure Sensitivity
SETTINGS_CONSTANT_PRESSURE              Constant Pressure
SETTINGS_STABILIZER_STRENGTH            Stabilizer Strength
SETTINGS_BRUSH_SIZE                     Default Brush Size
SETTINGS_PROJECT_FOLDER                 Default save/load folder
SETTINGS_PROJECT_FOLDER_PLACEHOLDER     e.g. C:/Users/me/Lorien
SETTINGS_GRID_SIZE                      Grid Size
SETTINGS_LANGUAGE                       Language
SETTINGS_TABLET_DRIVER                  Tablet Driver
SETTINGS_THEME                          Theme
SETTINGS_THEME_DARK                     Dark Mode
SETTINGS_THEME_LIGHT                    Light Mode
SETTINGS_UI_SCALE                       UI Scale
SETTINGS_UI_SCALE_AUTO                  Auto
SETTINGS_UI_SCALE_CUSTOM                Custom
SETTINGS_GRID_SIZE                      Grid Size
SETTINGS_GRID_PATTERN                   Grid Pattern
SETTINGS_GRID_PATTERN_DOTS              Dots
SETTINGS_GRID_PATTERN_LINES             Lines
SETTINGS_GRID_PATTERN_NONE              None
SETTINGS_CANVAS_COLOR                   Canvas Color
SETTINGS_FPS_FOREGROUND                 Foreground Fps
SETTINGS_FPS_BACKGROUND                 Background Fps
SETTINGS_BRUSH_CAPS                     Brush Rounding Mode
SETTINGS_BRUSH_CAPS_FLAT                Flat
SETTINGS_BRUSH_CAPS_ROUND               Round
SETTINGS_RESTART_NOTICE  		        Restart required to apply the new settings
SETTINGS_TOOL_PRESSURE                  Default Tools Pressure

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              About
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & contributors 
ABOUT_DIALOG_LICSENSE           Lorien is licensed under:
ABOUT_DIALOG_BASED_ON           Lorien is based on:
ABOUT_DIALOG_EASTEREGG          Easteregg character:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warning
UNSAVED_CHANGES_DIALOG_TEXT     Do you want to save your changes before closing the file(s)?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		New Palette
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		Duplicate Palette
NEW_PALETTE_DIALOG_PLACEHOLDER 			Palette name 

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			Delete palette
DELETE_PALETTE_DIALOG_TEXT 				Are you sure you want to permanently delete:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		Edit Palette

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ALERT_EDITING_BUILTIN_PALETTE       Editing built-in palettes is not possible. If you want to customize this palette you can make a copy and edit that instead. # TODO
ALERT_DELETING_BUILTIN_PALETTE      Deleting built-in palettes is not possible.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            Save
DISCARD         Discard
CANCEL          Cancel
DELETE          Delete

# -----------------------------------------------------------------------------
# Action names
# -----------------------------------------------------------------------------

ACTION_shortcut_save_project        Save File
ACTION_shortcut_new_project         New File
ACTION_shortcut_open_project        Open File
ACTION_shortcut_close_project       Close File
ACTION_shortcut_quit                Quit
ACTION_shortcut_undo                Undo
ACTION_shortcut_redo                Redo
ACTION_shortcut_brush_tool          Brush Tool
ACTION_shortcut_line_tool           Line Tool
ACTION_shortcut_eraser_tool         Eraser Tool
ACTION_shortcut_select_tool         Selection Tool
ACTION_shortcut_rectangle_tool      Rectangle Tool
ACTION_shortcut_circle_tool         Circle Tool
ACTION_shortcut_export_project      Export File
ACTION_deselect_all_strokes         Deselect All Strokes
ACTION_delete_selected_strokes      Delete Selected Strokes
ACTION_copy_strokes                 Copy
ACTION_paste_strokes                Paste
ACTION_duplicate_strokes            Duplicate strokes
ACTION_toggle_zen_mode              Toggle Zen Mode
ACTION_toggle_player                Toggle Easteregg
ACTION_toggle_fullscreen            Toggle Fullscreen
ACTION_canvas_pan_key               Pan Key

================================================
FILE: lorien/Assets/I18n/es.txt
================================================
LANGUAGE_NAME Español

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           Abrir...
MENU_SAVE           Guardar
MENU_SAVE_AS        Guardar como...
MENU_SETTINGS       Configuración
MENU_MANUAL         Manual en línea
MENU_BUG_TRACKER    Reportar un error
MENU_ABOUT          Acerca de
MENU_EXPORT         Exportar...
MENU_QUIT           Salir

# -----------------------------------------------------------------------------
# Project
# -----------------------------------------------------------------------------
PROJECT_NAME_UNTITLED                   Sin título
PROJECT_NAME_UNTITLED_UNSAVED           Sin título (*)
# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        Crear Nuevo Archivo
TOOLBAR_TOOLTIP_OPEN_FILE       Abrir Archivo
TOOLBAR_TOOLTIP_SAVE_FILE       Guardar Archivo
TOOLBAR_TOOLTIP_UNDO            Deshacer Acción
TOOLBAR_TOOLTIP_REDO            Rehacer Acción
TOOLBAR_TOOLTIP_BRUSH_TOOL      Herramienta de Pincel
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  Herramienta de Rectángulo
TOOLBAR_TOOLTIP_CIRCLE_TOOL     Herramienta de Círculo
TOOLBAR_TOOLTIP_LINE_TOOL       Herramienta de Línea
TOOLBAR_TOOLTIP_ERASER_TOOL     Herramienta de Borrador
TOOLBAR_TOOLTIP_SELECT_TOOL     Herramienta de Selección
TOOLBAR_TOOLTIP_BRUSH_COLOR     Color de Pincel
TOOLBAR_TOOLTIP_BRUSH_SIZE      Tamaño de Pincel
TOOLBAR_TOOLTIP_CANVAS_COLOR    Color de Lienzo
TOOLBAR_FULLSCREEN_TOGGLE       Alternar pantalla completa

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        Crear una nueva paleta de colores
COLOR_PALETTE_PICKER_HINT_EDIT       Editar la paleta de colores actual
COLOR_PALETTE_PICKER_HINT_DUPLICATE  Duplicar la paleta de colores actual
COLOR_PALETTE_PICKER_HINT_DELETE     Eliminar permanentemente la paleta de colores actual

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              Posición
STATUSBAR_ZOOM                  Zoom
STATUSBAR_PRESSURE              Presión
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               Trazos
STATUSBAR_POINTS                Puntos

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                          Configuración
SETTINGS_GENERAL                        General
SETTINGS_APPEARANCE                     Apariencia
SETTINGS_RENDERING                      Renderizado
SETTINGS_KEYBINDINGS                    Atajos de teclado
SETTINGS_PRESSURE_SENSITIVITY           Sensibilidad de presión
SETTINGS_CONSTANT_PRESSURE              Presión constante
SETTINGS_STABILIZER_STRENGTH            Fuerza del estabilizador
SETTINGS_BRUSH_SIZE                     Tamaño de Pincel predeterminado
SETTINGS_PROJECT_FOLDER                 Carpeta de carga y guardado predeterminada
SETTINGS_PROJECT_FOLDER_PLACEHOLDER     p.ej. C:/Users/yo/Lorien
SETTINGS_GRID_SIZE                      Tamaño de Cuadrícula
SETTINGS_LANGUAGE                       Idioma
SETTINGS_TABLET_DRIVER                  Driver de tableta
SETTINGS_THEME                          Tema
SETTINGS_THEME_DARK                     Modo oscuro
SETTINGS_THEME_LIGHT                    Modo claro
SETTINGS_UI_SCALE                       Escala de interfaz de usuario
SETTINGS_UI_SCALE_AUTO                  Automática
SETTINGS_UI_SCALE_CUSTOM                Personalizada
SETTINGS_GRID_SIZE                      Tamaño de Cuadrícula
SETTINGS_GRID_PATTERN                   Patrón de Cuadrícula
SETTINGS_GRID_PATTERN_DOTS              Puntos
SETTINGS_GRID_PATTERN_LINES             Líneas
SETTINGS_GRID_PATTERN_NONE              Ninguno
SETTINGS_CANVAS_COLOR                   Color de Lienzo
SETTINGS_FPS_FOREGROUND                 FPS en primer plano
SETTINGS_FPS_BACKGROUND                 FPS en fondo
SETTINGS_BRUSH_CAPS                     Modo de Redondeado de Pincel
SETTINGS_BRUSH_CAPS_FLAT                Plano
SETTINGS_BRUSH_CAPS_ROUND               Redondo
SETTINGS_RESTART_NOTICE  		        Se requiere de un reinicio para aplicar la nueva configuración
SETTINGS_TOOL_PRESSURE                  Presión de las herramientas predeterminada

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              Acerca de
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & colaboradores 
ABOUT_DIALOG_LICSENSE           Lorien está licenciado bajo:
ABOUT_DIALOG_BASED_ON           Lorien está basado en:
ABOUT_DIALOG_EASTEREGG          Personaje secreto:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Advertencia
UNSAVED_CHANGES_DIALOG_TEXT     ¿Quieres guardar los cambios antes de cerrar el(los) archivo(s)?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		Nueva Paleta
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		Duplicar Paleta
NEW_PALETTE_DIALOG_PLACEHOLDER 			Nombre de Paleta

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			Eliminar Paleta
DELETE_PALETTE_DIALOG_TEXT 				¿Estás seguro de que deseas eliminar permanentemente?:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE       Editar Paleta

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ALERT_EDITING_BUILTIN_PALETTE       No es posible editar las paletas incorporadas. Si deseas personalizar esta paleta, puedes copiarla y editarla. # TODO
ALERT_DELETING_BUILTIN_PALETTE      No es posible eliminar las paletas incorporadas.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            Guardar
DISCARD         Descartar
CANCEL          Cancelar
DELETE          Eliminar

# -----------------------------------------------------------------------------
# Action names
# -----------------------------------------------------------------------------

ACTION_shortcut_save_project        Guardar Archivo
ACTION_shortcut_new_project         Nuevo Archivo
ACTION_shortcut_open_project        Abrir Archivo
ACTION_shortcut_close_project       Cerrar Archivo
ACTION_shortcut_quit                Salir
ACTION_shortcut_undo                Deshacer
ACTION_shortcut_redo                Rehacer
ACTION_shortcut_brush_tool          Herramienta de Pincel
ACTION_shortcut_line_tool           Herramienta de Línea
ACTION_shortcut_eraser_tool         Herramienta de Borrador
ACTION_shortcut_select_tool         Herramienta de Selección
ACTION_shortcut_rectangle_tool      Herramienta de Rectángulo
ACTION_shortcut_circle_tool         Herramienta de Círculo
ACTION_shortcut_export_project      Exportar Archivo
ACTION_deselect_all_strokes         Deseleccionar todos los trazos
ACTION_delete_selected_strokes      Eliminar los trazos seleccionados
ACTION_copy_strokes                 Copiar
ACTION_paste_strokes                Pegar
ACTION_duplicate_strokes            Duplicar trazos
ACTION_toggle_zen_mode              Alternar Modo Zen
ACTION_toggle_player                Alternar Huevo de Pascua
ACTION_toggle_fullscreen            Alternar Pantalla Completa
ACTION_canvas_pan_key               Tecla panorámica

================================================
FILE: lorien/Assets/I18n/fr.txt
================================================
LANGUAGE_NAME Français

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           Ouvrir...
MENU_SAVE           Enregistrer
MENU_SAVE_AS        Enregistrer sous...
MENU_SETTINGS       Paramètres
MENU_MANUAL         Documentation
MENU_BUG_TRACKER    Suivi des bogues
MENU_ABOUT          À propos
MENU_EXPORT         Exporter...
MENU_QUIT           Quitter

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        Créer un nouveau fichier
TOOLBAR_TOOLTIP_OPEN_FILE       Ouvrir un fichier
TOOLBAR_TOOLTIP_SAVE_FILE       Enregistrer un fichier
TOOLBAR_TOOLTIP_UNDO            Annuler l'action
TOOLBAR_TOOLTIP_REDO            Rétablir l'action
TOOLBAR_TOOLTIP_BRUSH_TOOL      Pinceau
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  Rectangle
TOOLBAR_TOOLTIP_LINE_TOOL       Ligne
TOOLBAR_TOOLTIP_ERASER_TOOL     Gomme
TOOLBAR_TOOLTIP_SELECT_TOOL     Outil de sélection
TOOLBAR_TOOLTIP_BRUSH_COLOR     Couleur de la brosse
TOOLBAR_TOOLTIP_BRUSH_SIZE      Épaisseur de la brosse
TOOLBAR_TOOLTIP_CANVAS_COLOR    Couleur du canevas

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        Créer une nouvelle palette de couleurs
COLOR_PALETTE_PICKER_HINT_EDIT       Editer la palette de couleurs active
COLOR_PALETTE_PICKER_HINT_DUPLICATE  Dupliquer la palette de couleurs active
COLOR_PALETTE_PICKER_HINT_DELETE     Supprimer la palette de couleurs active de façon permanente

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              Position
STATUSBAR_ZOOM                  Échelle
STATUSBAR_PRESSURE              Pression
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               Courbes
STATUSBAR_POINTS                Points

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  Paramètres
SETTINGS_GENERAL                Général
SETTINGS_APPEARANCE             Apparence
SETTINGS_RENDERING              Affichage
SETTINGS_PRESSURE_SENSITIVITY   Sensibilité de la pression
SETTINGS_BRUSH_SIZE             Épaisseur par défaut de la brosse
SETTINGS_PROJECT_FOLDER         Dossier par défaut du projet
SETTINGS_LANGUAGE               Langue
SETTINGS_TABLET_DRIVER          Tablet Driver
SETTINGS_THEME                  Thème
SETTINGS_FPS_FOREGROUND         Fps lorsque actif
SETTINGS_FPS_BACKGROUND         Fps lorsque inactif
SETTINGS_CANVAS_COLOR           Couleur du canevas
SETTINGS_BRUSH_CAPS             Extrémités des tracés
SETTINGS_BRUSH_CAPS_FLAT        Plates
SETTINGS_BRUSH_CAPS_ROUND       Arrondies
SETTINGS_RESTART_NOTICE  		Un redémarrage est nécessaire pour appliquer les changements

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              A propos
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & contributeurs 
ABOUT_DIALOG_LICSENSE           Lorien est sous licence:
ABOUT_DIALOG_BASED_ON           Lorien est basé sur:
ABOUT_DIALOG_EASTEREGG          Personnage Easter egg:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warning # TODO
UNSAVED_CHANGES_DIALOG_TEXT     Voulez-vous enregistrer les changements avant de fermer?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		    Nouvelle palette
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		    Dupliquer palette
NEW_PALETTE_DIALOG_PLACEHOLDER 			    Nom de la palette

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			Supprimer palette
DELETE_PALETTE_DIALOG_TEXT 				Êtes-vous sûr de vouloir supprimer de façon permanente la palette?

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		    Modifier la palette

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ALERT_EDITING_BUILTIN_PALETTE      L'édition de palettes pré-existances n'est pas possible. Si vous souhaitez la modifier, vous pouvez en faire une copie et l'éditer.
ALERT_DELETING_BUILTIN_PALETTE     La suppression de palettes pré-existantes n'est pas possible.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            Enregistrer
DISCARD         Ignorer
CANCEL          Annuler
DELETE          Supprimer


================================================
FILE: lorien/Assets/I18n/it.txt
================================================
LANGUAGE_NAME Italiano

# -----------------------------------------------------------------------------
# Menu
# -----------------------------------------------------------------------------

MENU_OPEN           Apri...
MENU_SAVE           Salva
MENU_SAVE_AS        Salva come...
MENU_SETTINGS       Impostazioni
MENU_MANUAL         Manuale
MENU_BUG_TRACKER    Monitoraggio dei bug
MENU_ABOUT          Informazioni
MENU_EXPORT         Esporta...
MENU_QUIT           Esci

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        Crea nuovo file
TOOLBAR_TOOLTIP_OPEN_FILE       Apri File
TOOLBAR_TOOLTIP_SAVE_FILE       Salva File
TOOLBAR_TOOLTIP_UNDO            Annulla Azione
TOOLBAR_TOOLTIP_REDO            Ripeti Azione
TOOLBAR_TOOLTIP_BRUSH_TOOL      Strumento Pennello
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  Strumento Rettangolo
TOOLBAR_TOOLTIP_LINE_TOOL       Strumento Linea
TOOLBAR_TOOLTIP_ERASER_TOOL     Gomma per cancellare
TOOLBAR_TOOLTIP_SELECT_TOOL     Seleziona strumento
TOOLBAR_TOOLTIP_BRUSH_COLOR     Colore Pennello
TOOLBAR_TOOLTIP_BRUSH_SIZE      Dimensione del Pennello					
TOOLBAR_FULLSCREEN_TOGGLE       Commuta la modalità a schermo intero

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        Crea una nuova tavolozza di colori
COLOR_PALETTE_PICKER_HINT_EDIT       Modifica la tavolozza dei colori corrente
COLOR_PALETTE_PICKER_HINT_DUPLICATE  Duplica la tavolozza dei colori corrente
COLOR_PALETTE_PICKER_HINT_DELETE     Elimina la tavolozza dei colori corrente in modo permanente

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              Posizione
STATUSBAR_ZOOM                  Zoom
STATUSBAR_PRESSURE              Pressione
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               Tratti
STATUSBAR_POINTS                Punti

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  Impostazioni
SETTINGS_GENERAL                Generale
SETTINGS_APPEARANCE             Aspetto
SETTINGS_RENDERING              Rendering
SETTINGS_PRESSURE_SENSITIVITY   Sensibilità alla pressione 
SETTINGS_BRUSH_SIZE             Dimensione Pennello Predefinita
SETTINGS_PROJECT_FOLDER         Cartella di Progetto Predefinita
SETTINGS_LANGUAGE               Lingua
SETTINGS_TABLET_DRIVER          Driver del tablet
SETTINGS_THEME                  Tema
SETTINGS_FPS_FOREGROUND         Fps in primo piano 
SETTINGS_FPS_BACKGROUND         Fps sullo sfondo 
SETTINGS_CANVAS_COLOR           Colore della Tela
SETTINGS_BRUSH_CAPS             Modalità arrotondamento pennello 
SETTINGS_BRUSH_CAPS_FLAT        Piatto 
SETTINGS_BRUSH_CAPS_ROUND       Rotondo 
SETTINGS_RESTART_NOTICE  		È necessario riavviare per applicare le nuove impostazioni 		

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              Informazioni
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & contributori 
ABOUT_DIALOG_LICSENSE           Lorien è concesso in licenza sotto:
ABOUT_DIALOG_BASED_ON           Lorien si basa su:
ABOUT_DIALOG_EASTEREGG          Carattere Easteregg: 								

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Attenzione # TODO
UNSAVED_CHANGES_DIALOG_TEXT     Vuoi salvare le modifiche prima di chiudere il file?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		Nuova tavolozza
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		Tavolozza duplicata
NEW_PALETTE_DIALOG_PLACEHOLDER 			Nome della tavolozza

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			Elimina tavolozza
DELETE_PALETTE_DIALOG_TEXT 				Sei sicuro di voler eliminare definitivamente:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		    Modifica tavolozza

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------
ALERT_EDITING_BUILTIN_PALETTE       Non è possibile modificare le tavolozze integrate. Se desideri personalizzare questa tavolozza, puoi crearne una copia e modificarla.
ALERT_DELETING_BUILTIN_PALETTE      Non è possibile eliminare le tavolozze integrate.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            Salva
DISCARD         Abbandona
CANCEL          Cancella
DELETE          Elimina

#----------------------------------------------------------------------------
# Action names
#----------------------------------------------------------------------------

ACTION_shortcut_save_project        Salva il progetto
ACTION_shortcut_new_project         Nuovo progetto
ACTION_shortcut_open_project        Apri il progetto
ACTION_shortcut_quit                Esci                
ACTION_shortcut_undo                Torna indietro
ACTION_shortcut_redo                Ripeti azione
ACTION_shortcut_brush_tool          Strumento Pennello
ACTION_shortcut_line_tool           Strumento Linea 
ACTION_shortcut_eraser_tool         Strumento Gomma
ACTION_shortcut_select_tool         Seleziona Strumento
ACTION_shortcut_rectangle_tool      Strumento Rettangolo 
ACTION_shortcut_circle_tool         Strumento Cerchio
ACTION_shortcut_export_project      Esporta progetto
ACTION_deselect_all_strokes         Deseleziona tutti i tratti
ACTION_delete_selected_strokes      Elimina i tratti selezionati
ACTION_copy_strokes                 Copia i tratti
ACTION_paste_strokes                Incolla i tratti
ACTION_duplicate_strokes            Duplica i tratti
ACTION_toggle_zen_mode              Attiva la modalità Zen
ACTION_toggle_player                Attiva Easteregg
ACTION_toggle_fullscreen            Schermo intero

#---------------------------------------------------------------------------
# Keybindings dialog messages
#---------------------------------------------------------------------------

#Bind key dialog

KEYBINDING_DIALOG_BIND_WINDOW_NAME Assegna scorciatoia
KEYBINDING_DIALOG_BIND_ACTION      Scorciatoia: {action}

#Rebin already bound key dialog 
KEYBINDING_DIALOG_REBIND_WINDOW_NAME Riassegnare la scorciatoia?
KEYBINDING_DIALOG_REBIND_MESSAGE 'event' è già assegnata to {action}.\n\nSei sicuro di volerla riassegnare?





================================================
FILE: lorien/Assets/I18n/ko.txt
================================================
LANGUAGE_NAME 한국어

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           열기...
MENU_SAVE           저장
MENU_SAVE_AS        다른 이름으로 저장...
MENU_SETTINGS       설정
MENU_MANUAL         설명서
MENU_BUG_TRACKER    버그 제보
MENU_ABOUT          정보
MENU_EXPORT         내보내기...
MENU_QUIT           종료

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        새 파일 만들기
TOOLBAR_TOOLTIP_OPEN_FILE       파일 열기
TOOLBAR_TOOLTIP_SAVE_FILE       파일 저장하기
TOOLBAR_TOOLTIP_UNDO            되돌리기
TOOLBAR_TOOLTIP_REDO            다시하기
TOOLBAR_TOOLTIP_BRUSH_TOOL      브러쉬
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  사각형
TOOLBAR_TOOLTIP_CIRCLE_TOOL     원
TOOLBAR_TOOLTIP_LINE_TOOL       직선
TOOLBAR_TOOLTIP_ERASER_TOOL     지우개
TOOLBAR_TOOLTIP_SELECT_TOOL     범위 선택
TOOLBAR_TOOLTIP_BRUSH_COLOR     브러쉬 색깔
TOOLBAR_TOOLTIP_BRUSH_SIZE      브러쉬 크기
TOOLBAR_FULLSCREEN_TOGGLE       전체화면/원래대로

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        새 컬러 팔레트 만들기
COLOR_PALETTE_PICKER_HINT_EDIT       현재 컬러 팔레트 수정
COLOR_PALETTE_PICKER_HINT_DUPLICATE  현재 컬러 팔레트 복제
COLOR_PALETTE_PICKER_HINT_DELETE     현재 컬러 팔레트를 완전히 삭제

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              위치
STATUSBAR_ZOOM                  확대
STATUSBAR_PRESSURE              필압
STATUSBAR_FPS                   프레임
STATUSBAR_STROKES               획
STATUSBAR_POINTS                점

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  설정
SETTINGS_GENERAL                일반
SETTINGS_APPEARANCE             모양
SETTINGS_RENDERING              렌더링
SETTINGS_PRESSURE_SENSITIVITY   필압 민감도
SETTINGS_BRUSH_SIZE             기본 브러쉬 크기
SETTINGS_PROJECT_FOLDER         기본 프로젝트 풀더
SETTINGS_LANGUAGE               언어
SETTINGS_TABLET_DRIVER          Tablet Driver
SETTINGS_THEME                  테마
SETTINGS_UI_SCALE               UI 표시 배율
SETTINGS_UI_SCALE_AUTO          자동
SETTINGS_UI_SCALE_CUSTOM        수동
SETTINGS_FPS_FOREGROUND         필기 프레임
SETTINGS_FPS_BACKGROUND         배경 프레임
SETTINGS_CANVAS_COLOR           배경 색깔
SETTINGS_BRUSH_CAPS             브러쉬 끝 부분 모양
SETTINGS_BRUSH_CAPS_FLAT        평평하게
SETTINGS_BRUSH_CAPS_ROUND       둥굴게
SETTINGS_RESTART_NOTICE  		변경된 설정을 적용하려면 재시작이 필요합니다.

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              정보
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer 와 기여자들
ABOUT_DIALOG_LICSENSE           Lorien은 다음의 라이센스를 따릅니다:
ABOUT_DIALOG_BASED_ON           Lorien은 다음의 기술을 기반으로 합니다:
ABOUT_DIALOG_EASTEREGG          이스터에그:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warning # TODO
UNSAVED_CHANGES_DIALOG_TEXT     파일을 닫기 전에 저장할까요?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		새로운 팔레트
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		팔레트 복제
NEW_PALETTE_DIALOG_PLACEHOLDER 			팔레트 이름 

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			팔레트 삭제
DELETE_PALETTE_DIALOG_TEXT 				이 팔레트를 완전히 삭제하시겠습니까?

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		팔레트 수정

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ALERT_EDITING_BUILTIN_PALETTE       내장된 팔레트를 수정할 수 없습니다. 수정이 필요하시면 내장된 팔레트를 복제 후 이용하세요.
ALERT_DELETING_BUILTIN_PALETTE      내장된 팔레트를 수정할 수 없습니다.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            저장하고 나가기
DISCARD         저장하지 않고 나가기
CANCEL          취소
DELETE          삭제


================================================
FILE: lorien/Assets/I18n/pt-BR.txt
================================================
LANGUAGE_NAME Português Brasileiro

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           Abrir...
MENU_SAVE           Salvar
MENU_SAVE_AS        Salvar como...
MENU_SETTINGS       Configurações
MENU_MANUAL         Manual
MENU_BUG_TRACKER    Rastreador de Bugs
MENU_ABOUT          Sobre
MENU_EXPORT         Exportar...
MENU_QUIT           Sair

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        Novo Arquivo
TOOLBAR_TOOLTIP_OPEN_FILE       Abrir Arquivo
TOOLBAR_TOOLTIP_SAVE_FILE       Salvar Arquivo
TOOLBAR_TOOLTIP_UNDO            Desfazer Ação
TOOLBAR_TOOLTIP_REDO            Refazer Ação
TOOLBAR_TOOLTIP_BRUSH_TOOL      Pincel
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  Ferramenta Retângulo
TOOLBAR_TOOLTIP_CIRCLE_TOOL     Ferramenta Círculo
TOOLBAR_TOOLTIP_LINE_TOOL       Ferramenta Linha
TOOLBAR_TOOLTIP_ERASER_TOOL     Borracha
TOOLBAR_TOOLTIP_SELECT_TOOL     Ferramenta de Seleção
TOOLBAR_TOOLTIP_BRUSH_COLOR     Cor do Pincel
TOOLBAR_TOOLTIP_BRUSH_SIZE      Tamanho do Pincel
TOOLBAR_FULLSCREEN_TOGGLE       (Des)ativar Tela Cheia

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        Nova paleta de cores
COLOR_PALETTE_PICKER_HINT_EDIT       Editar a paleta de cores atual
COLOR_PALETTE_PICKER_HINT_DUPLICATE  Duplicar a paleta de cores atual
COLOR_PALETTE_PICKER_HINT_DELETE     Deletar a paleta de cores atual permanentemente

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              Posição
STATUSBAR_ZOOM                  Ampliação
STATUSBAR_PRESSURE              Pressão
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               Traços
STATUSBAR_POINTS                Pontos

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  Configurações
SETTINGS_GENERAL                Geral
SETTINGS_APPEARANCE             Aparência
SETTINGS_RENDERING              Renderização
SETTINGS_KEYBINDINGS            Teclas de Atalho
SETTINGS_PRESSURE_SENSITIVITY   Sensibilidade à Pressão
SETTINGS_CONSTANT_PRESSURE      Pressão Constante?
SETTINGS_BRUSH_SIZE             Tamanho Padrão do Pincel
SETTINGS_CANVAS_COLOR           Cor da Área de Desenho
SETTINGS_PROJECT_FOLDER         Pasta Padrão do Projeto
SETTINGS_LANGUAGE               Idioma
SETTINGS_TABLET_DRIVER          Tablet Driver
SETTINGS_THEME                  Tema
SETTINGS_UI_SCALE               Escala da Interface
SETTINGS_UI_SCALE_AUTO          Automática
SETTINGS_UI_SCALE_CUSTOM        Personalizada
SETTINGS_FPS_FOREGROUND         FPS em Primeiro Plano
SETTINGS_FPS_BACKGROUND         FPS em Segundo Plano
SETTINGS_BRUSH_CAPS             Modo de Arredondamento do Pincel
SETTINGS_BRUSH_CAPS_FLAT        Uniforme
SETTINGS_BRUSH_CAPS_ROUND       Redondo
SETTINGS_RESTART_NOTICE  		É necessário reiniciar para aplicar as novas configurações

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              Sobre
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & contribuidores 
ABOUT_DIALOG_LICSENSE           Lorien é licenciado sob:
ABOUT_DIALOG_BASED_ON           Lorien é baseado em:
ABOUT_DIALOG_EASTEREGG          Personagem secreto:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warning # TODO
UNSAVED_CHANGES_DIALOG_TEXT     Quer salvar suas alterações antes de fechar o arquivo?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		Nova paleta
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		Duplicar paleta
NEW_PALETTE_DIALOG_PLACEHOLDER 			Nome da paleta

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			Deletar paleta
DELETE_PALETTE_DIALOG_TEXT 				Tem certeza que quer remover permanentemente:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		Editar paleta

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ALERT_EDITING_BUILTIN_PALETTE       Não é possível editar paletas predefinidas, pode fazer uma cópia e editá-la em vez disso. # TODO
ALERT_DELETING_BUILTIN_PALETTE      Não é possível deletar paletas predefinidas.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            Salvar
DISCARD         Descartar
CANCEL          Cancelar
DELETE          Deletar

# -----------------------------------------------------------------------------
# Action names
# -----------------------------------------------------------------------------

ACTION_shortcut_save_project        Salvar Projeto
ACTION_shortcut_new_project         Novo Projeto
ACTION_shortcut_open_project        Abrir Projeto
ACTION_shortcut_quit                Quit                # TODO
ACTION_shortcut_undo                Desfazer
ACTION_shortcut_redo                Refazer
ACTION_shortcut_brush_tool          Pincel
ACTION_shortcut_line_tool           Ferramenta Linha
ACTION_shortcut_eraser_tool         Borracha
ACTION_shortcut_select_tool         Ferramenta de Seleção
ACTION_shortcut_rectangle_tool      Ferramenta Retângulo
ACTION_shortcut_circle_tool         Ferramenta Círculo
ACTION_shortcut_export_project      Exportar Projeto
ACTION_deselect_all_strokes         Desmarcar todos os traços
ACTION_delete_selected_strokes      Deletar traços selecionados
ACTION_copy_strokes                 Copiar traços
ACTION_paste_strokes                Colar traços
ACTION_duplicate_strokes            Duplicar traços
ACTION_toggle_zen_mode              Toggle Zen Mode
ACTION_toggle_player                Toggle Easteregg
ACTION_toggle_fullscreen            (Des)ativar Tela Cheia

# -----------------------------------------------------------------------------
# Kebindings dialog messages
# -----------------------------------------------------------------------------

# Bind key dialog
KEYBINDING_DIALOG_BIND_WINDOW_NAME     Vincular tecla
KEYBINDING_DIALOG_BIND_ACTION          Ação: {action}

# Rebind already bound key dialog
KEYBINDING_DIALOG_REBIND_WINDOW_NAME   Redefinir tecla?
KEYBINDING_DIALOG_REBIND_MESSAGE       '{event}' já está vinculado com {action}.\n\nQuer redefinir?


================================================
FILE: lorien/Assets/I18n/ru.txt
================================================
LANGUAGE_NAME Русский

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           Open... # TODO 
MENU_SAVE           Сохранить
MENU_SAVE_AS        Сохранить как...
MENU_SETTINGS       Настройки
MENU_MANUAL         Руководство
MENU_BUG_TRACKER    Баг трекер
MENU_ABOUT          О Lorien
MENU_EXPORT         Экспортировать...
MENU_QUIT           Выход

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        Создать новый файл
TOOLBAR_TOOLTIP_OPEN_FILE       Открыть файл
TOOLBAR_TOOLTIP_SAVE_FILE       Сохранить файл
TOOLBAR_TOOLTIP_UNDO            Отменить действие
TOOLBAR_TOOLTIP_REDO            Повторить действие
TOOLBAR_TOOLTIP_BRUSH_TOOL      Кисть
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  Rectangle Tool 									    # TODO
TOOLBAR_TOOLTIP_LINE_TOOL       Линия
TOOLBAR_TOOLTIP_ERASER_TOOL     Стерка
TOOLBAR_TOOLTIP_SELECT_TOOL     Выделить
TOOLBAR_TOOLTIP_BRUSH_SIZE      Размер кисти
TOOLBAR_TOOLTIP_CANVAS_COLOR    Цвет холста

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        Create new color palette						# TODO
COLOR_PALETTE_PICKER_HINT_EDIT       Edit the current color palette  				# TODO
COLOR_PALETTE_PICKER_HINT_DUPLICATE  Duplicate the current color palette 			# TODO
COLOR_PALETTE_PICKER_HINT_DELETE     Delete the current color palette permanently 	# TODO

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              Позиция
STATUSBAR_ZOOM                  Zoom
STATUSBAR_PRESSURE              Давление
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               Штрихи
STATUSBAR_POINTS                Количество точек

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  Настройки
SETTINGS_GENERAL                Общее
SETTINGS_APPEARANCE             Внешний вид
SETTINGS_RENDERING              Рендеринг
SETTINGS_PRESSURE_SENSITIVITY   Pressure Sensitivity # TODO
SETTINGS_BRUSH_SIZE             Размер кисти по умолчанию
SETTINGS_CANVAS_COLOR           Цвет кисти
SETTINGS_PROJECT_FOLDER         Папка проекта по умолчанию
SETTINGS_LANGUAGE               Язык
SETTINGS_TABLET_DRIVER          Tablet Driver
SETTINGS_THEME                  Тема
SETTINGS_FPS_FOREGROUND         Foreground Fps 										# TODO
SETTINGS_FPS_BACKGROUND         Background Fps 										# TODO
SETTINGS_BRUSH_CAPS             Brush Rounding Mode 								# TODO
SETTINGS_BRUSH_CAPS_FLAT        Flat 												# TODO
SETTINGS_BRUSH_CAPS_ROUND       Round 												# TODO
SETTINGS_RESTART_NOTICE  		Restart required to apply the new settings 			# TODO

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              О Lorien
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer и контрибютеры
ABOUT_DIALOG_LICSENSE           Lorien находится под лицензией:
ABOUT_DIALOG_BASED_ON           Lorien основан на:
ABOUT_DIALOG_EASTEREGG          Easteregg character: 								# TODO

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warning # TODO
UNSAVED_CHANGES_DIALOG_TEXT     Вы хотите сохранить изменения перед закрытием файла?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		New Palette  								# TODO
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		Duplicate Palette 							# TODO
NEW_PALETTE_DIALOG_PLACEHOLDER 			Palette name  								# TODO

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			Delete palette 									# TODO
DELETE_PALETTE_DIALOG_TEXT 				Are you sure you want to permanently delete:    # TODO

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		Edit Palette 										# TODO

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------
ALERT_EDITING_BUILTIN_PALETTE       Editing built-in palettes is not possible. If you want to customize this palette you can make a copy and edit that instead. # TODO
ALERT_DELETING_BUILTIN_PALETTE      Deleting built-in palettes is not possible. # TODO

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            Сохранить
DISCARD         Отказаться
CANCEL          Отмена
DELETE          Delete 			# TODO

================================================
FILE: lorien/Assets/I18n/tr.txt
================================================
LANGUAGE_NAME Türkçe

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           ... Aç
MENU_SAVE           Kaydet
MENU_SAVE_AS        ... Olarak Kaydet
MENU_SETTINGS       Ayarlar
MENU_MANUAL         Kullanım Kılauzu
MENU_BUG_TRACKER    Hata İzleyici
MENU_ABOUT          Hakkında
MENU_EXPORT         ... Dışa Aktar
MENU_QUIT           Oyunu Kapat

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        Yeni Dosya Oluştur
TOOLBAR_TOOLTIP_OPEN_FILE       Dosya Aç
TOOLBAR_TOOLTIP_SAVE_FILE       Dosya Kaydet
TOOLBAR_TOOLTIP_UNDO            Geri Al
TOOLBAR_TOOLTIP_REDO            İleri Al
TOOLBAR_TOOLTIP_BRUSH_TOOL      Fırça
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  Dikdörtgen Aracı
TOOLBAR_TOOLTIP_CIRCLE_TOOL     Çember Aracı
TOOLBAR_TOOLTIP_LINE_TOOL       Çizgi Aracı
TOOLBAR_TOOLTIP_ERASER_TOOL     Silgi
TOOLBAR_TOOLTIP_SELECT_TOOL     Seçim Aracı
TOOLBAR_TOOLTIP_BRUSH_COLOR     Fırça Rengi
TOOLBAR_TOOLTIP_BRUSH_SIZE      Fırça Boyutu
TOOLBAR_FULLSCREEN_TOGGLE       Tam Ekran

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        Yeni renk paleti oluştur
COLOR_PALETTE_PICKER_HINT_EDIT       Mevcut paleti düzenle
COLOR_PALETTE_PICKER_HINT_DUPLICATE  Mevcut paleti kopyala
COLOR_PALETTE_PICKER_HINT_DELETE     Mevcut paleti kalıcı olarak sil

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              Pozisyon
STATUSBAR_ZOOM                  Yaklaştır
STATUSBAR_PRESSURE              Basınç
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               Vuruşlar
STATUSBAR_POINTS                Noktalar

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  Ayarlar
SETTINGS_GENERAL                Genel
SETTINGS_APPEARANCE             Görünüm
SETTINGS_RENDERING              Rendering
SETTINGS_KEYBINDINGS            Tuşlar
SETTINGS_PRESSURE_SENSITIVITY   Basınç Hassaslığı
SETTINGS_BRUSH_SIZE             Varsayılan Fırça Boyutu
SETTINGS_CANVAS_COLOR           Tuval Rengi
SETTINGS_PROJECT_FOLDER         Varsayılan Proje Klasörü
SETTINGS_GRID_SIZE              Izgara Boyutu
SETTINGS_LANGUAGE               Dil
SETTINGS_TABLET_DRIVER          Tablet Driver
SETTINGS_THEME                  Tema
SETTINGS_UI_SCALE               UI Boyutu
SETTINGS_UI_SCALE_AUTO          Otomatik
SETTINGS_UI_SCALE_CUSTOM        Özel              
SETTINGS_FPS_FOREGROUND         Ön plan Fps
SETTINGS_FPS_BACKGROUND         Arka plan Fps
SETTINGS_BRUSH_CAPS             Fırça Yuvarlama Modu
SETTINGS_BRUSH_CAPS_FLAT        Düz
SETTINGS_BRUSH_CAPS_ROUND       Yuvarlak
SETTINGS_RESTART_NOTICE  		Yeni ayarların uygulanması için yeniden başlatma gereklidir

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              Hakkında
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & katkıda bulunanlar 
ABOUT_DIALOG_LICSENSE           Lorien, altında lisanslanmıştır:
ABOUT_DIALOG_BASED_ON           Lorien, tabanlıdır:
ABOUT_DIALOG_EASTEREGG          Easteregg karakteri:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warning # TODO
UNSAVED_CHANGES_DIALOG_TEXT     Dosyayı kapatmadan önce değişikliklerinizi kaydetmek istiyor musunuz?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		Yeni Palet
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		Paleti kopyala
NEW_PALETTE_DIALOG_PLACEHOLDER 			Palet adı 

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			Paleti sil
DELETE_PALETTE_DIALOG_TEXT 				Gerçekten bunu silmek istiyor musunuz:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		Paleti Düzenle

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ALERT_EDITING_BUILTIN_PALETTE       Yerleşik paletleri düzenlemek mümkün değildir. Bu paleti özelleştirmek istiyorsanız, bunun yerine bir kopya oluşturabilir ve düzenleyebilirsiniz.. # TODO
ALERT_DELETING_BUILTIN_PALETTE      Yerleşik paletleri silmek mümkün değildir.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            Kaydet
DISCARD         Kaydetme
CANCEL          İptal
DELETE          Sil

# -----------------------------------------------------------------------------
# Action names
# -----------------------------------------------------------------------------

ACTION_shortcut_save_project        Projeyi Kaydet
ACTION_shortcut_new_project         Yeni Proje
ACTION_shortcut_open_project        Projeyi Aç
ACTION_shortcut_quit                Quit                # TODO
ACTION_shortcut_undo                Geri
ACTION_shortcut_redo                İleri
ACTION_shortcut_brush_tool          Fırça aracı
ACTION_shortcut_line_tool           Çizgi aracı
ACTION_shortcut_eraser_tool         Silgi aracı
ACTION_shortcut_select_tool         Seçim aracı
ACTION_shortcut_rectangle_tool      Dikdörtgen aracı
ACTION_shortcut_circle_tool         Çember aracı
ACTION_shortcut_export_project      Projeyi dışa aktar
ACTION_deselect_all_strokes         Tüm vuruşların seçimini kaldır
ACTION_delete_selected_strokes      Seçili vuruşları sil
ACTION_copy_strokes                 Kopyala
ACTION_paste_strokes                Yapıştır
ACTION_duplicate_strokes            Vuruşlarıkopyala
ACTION_toggle_zen_mode              Toggle Zen Mode
ACTION_toggle_player                Toggle Easteregg
ACTION_toggle_fullscreen            Tam Ekran

# -----------------------------------------------------------------------------
# Kebindings dialog messages
# -----------------------------------------------------------------------------
# Bind key dialog
KEYBINDING_DIALOG_BIND_WINDOW_NAME     Tuş ata
KEYBINDING_DIALOG_BIND_ACTION          Aksiyon: {action}
# Rebind already bound key dialog
KEYBINDING_DIALOG_REBIND_WINDOW_NAME   Tuşu yeniden ata?
KEYBINDING_DIALOG_REBIND_MESSAGE       '{event}' zaten {action}'a bağlı.\n\n Yeniden atamak istiyor musunuz?


================================================
FILE: lorien/Assets/I18n/uk.txt
================================================
LANGUAGE_NAME Українська

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           Відкрити...
MENU_SAVE           Зберегти
MENU_SAVE_AS        Зберегти як...
MENU_SETTINGS       Налаштування
MENU_MANUAL         Документація
MENU_BUG_TRACKER    Баг трекер
MENU_ABOUT          Про Lorien
MENU_EXPORT         Eкспорт...
MENU_QUIT           Вийти

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        Створити Новий Файл
TOOLBAR_TOOLTIP_OPEN_FILE       Відкрити Файл
TOOLBAR_TOOLTIP_SAVE_FILE       Зберегти файл
TOOLBAR_TOOLTIP_UNDO            Назад
TOOLBAR_TOOLTIP_REDO            Вперед
TOOLBAR_TOOLTIP_BRUSH_TOOL      Пензлик
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  Прямокутник
TOOLBAR_TOOLTIP_CIRCLE_TOOL     Коло
TOOLBAR_TOOLTIP_LINE_TOOL       Лінія
TOOLBAR_TOOLTIP_ERASER_TOOL     Гумка
TOOLBAR_TOOLTIP_SELECT_TOOL     Виділення
TOOLBAR_TOOLTIP_BRUSH_COLOR     Колір Пензлика
TOOLBAR_TOOLTIP_BRUSH_SIZE      Розмір Пензлика
TOOLBAR_TOOLTIP_CANVAS_COLOR    Колір Полотна
TOOLBAR_FULLSCREEN_TOGGLE       Перемкнути Повноєкранний Режим

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        Створити нову палітру кольорів
COLOR_PALETTE_PICKER_HINT_EDIT       Змінити поточну палітру
COLOR_PALETTE_PICKER_HINT_DUPLICATE  Дублікат поточної палітри
COLOR_PALETTE_PICKER_HINT_DELETE     Назавжди видалити палітру

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              Позиція
STATUSBAR_ZOOM                  Масштаб
STATUSBAR_PRESSURE              Натиск
STATUSBAR_FPS                   FPS          # use "Кадрів в секунду"?
STATUSBAR_STROKES               Штрихи
STATUSBAR_POINTS                Точки

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  Налаштування
SETTINGS_GENERAL                Загальне
SETTINGS_APPEARANCE             Вигляд
SETTINGS_RENDERING              Рендер
SETTINGS_KEYBINDINGS            Гарячі Клавіши
SETTINGS_PRESSURE_SENSITIVITY   Чутливість до Натиску
SETTINGS_BRUSH_SIZE             Розмір Пензлика за замовчуванням
SETTINGS_PROJECT_FOLDER         Папка Проекту за замовчуванням
SETTINGS_GRID_SIZE              Розмір сітки
SETTINGS_LANGUAGE               Мова
SETTINGS_TABLET_DRIVER          Tablet Driver
SETTINGS_THEME                  Тема
SETTINGS_UI_SCALE               Розмір UI
SETTINGS_UI_SCALE_AUTO          Авто
SETTINGS_UI_SCALE_CUSTOM        Власний
SETTINGS_GRID_SIZE              Розмір Сітки
SETTINGS_GRID_PATTERN           Тип Сітки
SETTINGS_CANVAS_COLOR           Колір Полотна
SETTINGS_FPS_FOREGROUND         Fps Переднього Плану
SETTINGS_FPS_BACKGROUND         Fps Фону
SETTINGS_BRUSH_CAPS             Заокруглення Пензлика
SETTINGS_BRUSH_CAPS_FLAT        Плоский
SETTINGS_BRUSH_CAPS_ROUND       Округлий
SETTINGS_RESTART_NOTICE  		Для застосування нових налаштувань, потрібно перезапустити програму

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              Про Lorien
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & співавтори
ABOUT_DIALOG_LICSENSE           Lorien знаходиться під ліцензією:
ABOUT_DIALOG_BASED_ON           Lorien створений на основі:
ABOUT_DIALOG_EASTEREGG          Easteregg character:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warning # TODO
UNSAVED_CHANGES_DIALOG_TEXT     Чи хочете ви зберегти свої зміни перед тим, як закрити цей файл?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		Нова палітра
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		Дублювати палітру
NEW_PALETTE_DIALOG_PLACEHOLDER 			Назва палітри

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			Видалити палітру
DELETE_PALETTE_DIALOG_TEXT 				Ви впевнені, що ви хочете назавжди видалити:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		Змінити палітру

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ALERT_EDITING_BUILTIN_PALETTE       Неможливо змінити вбудовану палітру. Якщо ви хочете кастомізувати цю палітру, ви можете зробити її копію та змінити її.
ALERT_DELETING_BUILTIN_PALETTE      Неможливо видаляти вбудовану палітру.

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            Зберегти
DISCARD         Відкинути     # not sure about this
CANCEL          Скасувати
DELETE          Видалити

# -----------------------------------------------------------------------------
# Action names
# -----------------------------------------------------------------------------

ACTION_shortcut_save_project        Зберегти проєкт
ACTION_shortcut_new_project         Новий проєкт
ACTION_shortcut_open_project        Відкрити проєкт
ACTION_shortcut_quit                Quit                # TODO
ACTION_shortcut_undo                Назад
ACTION_shortcut_redo                Вперед
ACTION_shortcut_brush_tool          Пензлик
ACTION_shortcut_line_tool           Лінія
ACTION_shortcut_eraser_tool         Гумка
ACTION_shortcut_select_tool         Виділення
ACTION_shortcut_rectangle_tool      Прямокутник
ACTION_shortcut_circle_tool         Коло
ACTION_shortcut_export_project      Експорт проєкту
ACTION_deselect_all_strokes         Відмінити виділення
ACTION_delete_selected_strokes      Видалити вибрані штрихи
ACTION_copy_strokes                 Скопіювати
ACTION_paste_strokes                Вставити
ACTION_duplicate_strokes            Дублювати штрихи
ACTION_toggle_zen_mode              Toggle Zen Mode
ACTION_toggle_player                Toggle Easteregg
ACTION_toggle_fullscreen            Перемкнути повноекранний режим

# -----------------------------------------------------------------------------
# Kebindings dialog messages
# -----------------------------------------------------------------------------

# Bind key dialog
KEYBINDING_DIALOG_BIND_WINDOW_NAME     Прив'язати клавішу
KEYBINDING_DIALOG_BIND_ACTION          Дія: {action}

# Rebind already bound key dialog
KEYBINDING_DIALOG_REBIND_WINDOW_NAME   Змінити клавішу?
KEYBINDING_DIALOG_REBIND_MESSAGE       '{event}' вже прив'язана до {action}.\n\nДійсно хочете змінити клавішу?


================================================
FILE: lorien/Assets/I18n/zh-CN.txt
================================================
LANGUAGE_NAME 汉语 # Simplified Chinese

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           打开...
MENU_SAVE           保存
MENU_SAVE_AS        另存为...
MENU_SETTINGS       设置
MENU_MANUAL         手册
MENU_BUG_TRACKER    Bug 追踪器
MENU_ABOUT          关于
MENU_EXPORT         导出...
MENU_QUIT           退出

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        创建新文件
TOOLBAR_TOOLTIP_OPEN_FILE       打开文件
TOOLBAR_TOOLTIP_SAVE_FILE       保存文件
TOOLBAR_TOOLTIP_UNDO            撤销操作
TOOLBAR_TOOLTIP_REDO            重做操作
TOOLBAR_TOOLTIP_BRUSH_TOOL      画笔工具
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  矩形工具
TOOLBAR_TOOLTIP_CIRCLE_TOOL     圆形工具
TOOLBAR_TOOLTIP_LINE_TOOL       直线工具
TOOLBAR_TOOLTIP_ERASER_TOOL     橡皮擦
TOOLBAR_TOOLTIP_SELECT_TOOL     选择工具
TOOLBAR_TOOLTIP_BRUSH_COLOR     画笔颜色
TOOLBAR_TOOLTIP_BRUSH_SIZE      画笔大小
TOOLBAR_FULLSCREEN_TOGGLE       切换全屏

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        新建调色板
COLOR_PALETTE_PICKER_HINT_EDIT       编辑当前调色板
COLOR_PALETTE_PICKER_HINT_DUPLICATE  创建当前调色板的副本
COLOR_PALETTE_PICKER_HINT_DELETE     永久删除当前调色板

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              位置
STATUSBAR_ZOOM                  缩放
STATUSBAR_PRESSURE              压力
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               笔划数
STATUSBAR_POINTS                点数

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  设置
SETTINGS_GENERAL                通用
SETTINGS_APPEARANCE             外观
SETTINGS_RENDERING              渲染
SETTINGS_PRESSURE_SENSITIVITY   压力敏感度
SETTINGS_BRUSH_SIZE             默认画笔大小
SETTINGS_CANVAS_COLOR           画布颜色
SETTINGS_PROJECT_FOLDER         默认项目路径
SETTINGS_LANGUAGE               语言
SETTINGS_TABLET_DRIVER          Tablet Driver
SETTINGS_THEME                  主题
SETTINGS_UI_SCALE               UI 缩放
SETTINGS_UI_SCALE_AUTO          自动
SETTINGS_UI_SCALE_CUSTOM        自定义
SETTINGS_FPS_FOREGROUND         前台 Fps
SETTINGS_FPS_BACKGROUND         后台 Fps
SETTINGS_BRUSH_CAPS             画笔圆角模式
SETTINGS_BRUSH_CAPS_FLAT        方形
SETTINGS_BRUSH_CAPS_ROUND       圆形
SETTINGS_RESTART_NOTICE  		需要重新启动程序以应用新的设置

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              关于
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & contributors 
ABOUT_DIALOG_LICSENSE           Lorien 采用以下协议授权:
ABOUT_DIALOG_BASED_ON           Lorien 基于:
ABOUT_DIALOG_EASTEREGG          复活节彩蛋角色:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warning # TODO
UNSAVED_CHANGES_DIALOG_TEXT     你想在关闭文件之前保存你的修改吗?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		新建调色板
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		创建调色板副本
NEW_PALETTE_DIALOG_PLACEHOLDER 			调色板名称

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			删除调色板
DELETE_PALETTE_DIALOG_TEXT 				你确定要永久删除:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		编辑调色板

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ALERT_EDITING_BUILTIN_PALETTE       无法编辑内置调色板。如果你想自定义这个调色板,你可以创建一个副本并编辑它。
ALERT_DELETING_BUILTIN_PALETTE      无法删除内置调色板。

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            保存
DISCARD         丢弃
CANCEL          取消
DELETE          删除


================================================
FILE: lorien/Assets/I18n/zh-TW.txt
================================================
LANGUAGE_NAME 漢語 # Traditional Chinese

# -----------------------------------------------------------------------------
# Menu strings
# -----------------------------------------------------------------------------

MENU_OPEN           開啟...
MENU_SAVE           存檔
MENU_SAVE_AS        另存為...
MENU_SETTINGS       設定
MENU_MANUAL         線上說明
MENU_BUG_TRACKER    問題追蹤
MENU_ABOUT          關於
MENU_EXPORT         匯出...
MENU_QUIT           退出

# -----------------------------------------------------------------------------
# Toolbar
# -----------------------------------------------------------------------------
TOOLBAR_TOOLTIP_NEW_FILE        建立新檔
TOOLBAR_TOOLTIP_OPEN_FILE       開啟舊檔
TOOLBAR_TOOLTIP_SAVE_FILE       儲存檔案
TOOLBAR_TOOLTIP_UNDO            回上一步
TOOLBAR_TOOLTIP_REDO            取消上一步
TOOLBAR_TOOLTIP_BRUSH_TOOL      畫筆工具
TOOLBAR_TOOLTIP_RECTANGLE_TOOL  矩形工具
TOOLBAR_TOOLTIP_CIRCLE_TOOL     圓形工具
TOOLBAR_TOOLTIP_LINE_TOOL       線條工具
TOOLBAR_TOOLTIP_ERASER_TOOL     橡皮擦
TOOLBAR_TOOLTIP_SELECT_TOOL     選擇工具
TOOLBAR_TOOLTIP_BRUSH_COLOR     畫筆顏色
TOOLBAR_TOOLTIP_BRUSH_SIZE      畫筆大小
TOOLBAR_FULLSCREEN_TOGGLE       全螢幕切換

# -----------------------------------------------------------------------------
# Color Palette Picker
# -----------------------------------------------------------------------------
COLOR_PALETTE_PICKER_HINT_NEW        建立新的調色板
COLOR_PALETTE_PICKER_HINT_EDIT       編輯目前調色板
COLOR_PALETTE_PICKER_HINT_DUPLICATE  從目前調色板建立副本
COLOR_PALETTE_PICKER_HINT_DELETE     刪除目前調色板

# -----------------------------------------------------------------------------
# Statusbar strings
# -----------------------------------------------------------------------------

STATUSBAR_POSITION              位置
STATUSBAR_ZOOM                  縮放
STATUSBAR_PRESSURE              筆壓
STATUSBAR_FPS                   FPS
STATUSBAR_STROKES               筆劃數
STATUSBAR_POINTS                點數

# -----------------------------------------------------------------------------
# Settings strings
# -----------------------------------------------------------------------------

SETTINGS_TITLE                  設定
SETTINGS_GENERAL                一般
SETTINGS_APPEARANCE             外觀
SETTINGS_RENDERING              渲染
SETTINGS_PRESSURE_SENSITIVITY   筆壓敏感度
SETTINGS_BRUSH_SIZE             預設畫筆大小
SETTINGS_CANVAS_COLOR           畫布底色
SETTINGS_PROJECT_FOLDER         預設專案目錄
SETTINGS_LANGUAGE               語言
SETTINGS_TABLET_DRIVER          Tablet Driver
SETTINGS_THEME                  佈景主題
SETTINGS_UI_SCALE               UI 縮放
SETTINGS_UI_SCALE_AUTO          自動
SETTINGS_UI_SCALE_CUSTOM        自定義
SETTINGS_FPS_FOREGROUND         前景 FPS
SETTINGS_FPS_BACKGROUND         背景 FPS
SETTINGS_BRUSH_CAPS             畫筆圓角模式
SETTINGS_BRUSH_CAPS_FLAT        方形
SETTINGS_BRUSH_CAPS_ROUND       圓形
SETTINGS_RESTART_NOTICE  		重新啟動應用程式以套用新的設定

# -----------------------------------------------------------------------------
# About dialog strings
# -----------------------------------------------------------------------------

ABOUT_DIALOG_TITLE              關於
ABOUT_DIALOG_COPYRIGHT          © 2021-2024 Marcus Brummer & contributors 
ABOUT_DIALOG_LICSENSE           Lorien 所採用的授權條:
ABOUT_DIALOG_BASED_ON           Lorien 是基於:
ABOUT_DIALOG_EASTEREGG          復活節彩蛋角色:

# -----------------------------------------------------------------------------
# Unsaved changes dialog
# -----------------------------------------------------------------------------

UNSAVED_CHANGES_DIALOG_TITLE    Warning # TODO
UNSAVED_CHANGES_DIALOG_TEXT     關閉檔案前是否要儲存此次的變更?

# -----------------------------------------------------------------------------
# New palette dialog
# -----------------------------------------------------------------------------
NEW_PALETTE_DIALOG_CREATE_TITLE 		建立新的調色板
NEW_PALETTE_DIALOG_DUPLICATE_TITLE 		以目前調色板建立副本
NEW_PALETTE_DIALOG_PLACEHOLDER 			新的調色板名稱

# -----------------------------------------------------------------------------
# Delete palette dialog
# -----------------------------------------------------------------------------
DELETE_PALETTE_DIALOG_TITLE 			刪除調色板
DELETE_PALETTE_DIALOG_TEXT 				確定要刪除調色板:

# -----------------------------------------------------------------------------
# Edit palette dialog
# -----------------------------------------------------------------------------
EDIT_PALETTE_DIALOG_TITLE 		編輯調色板

# -----------------------------------------------------------------------------
# Error/Alert messages
# -----------------------------------------------------------------------------

ALERT_EDITING_BUILTIN_PALETTE       不能編輯預設的調色板。如果你想自訂目前的調色板,可以先新建副本再進行編輯。
ALERT_DELETING_BUILTIN_PALETTE      不能刪除預設的調色板。

# -----------------------------------------------------------------------------
# Generic strings
# -----------------------------------------------------------------------------

SAVE            儲存
DISCARD         放棄
CANCEL          取消
DELETE          删除


================================================
FILE: lorien/Assets/Icons/add.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bbdkcvds2nxg7"
path="res://.godot/imported/add.png-3520d3bd6bbe6551666d487ef1026a75.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/add.png"
dest_files=["res://.godot/imported/add.png-3520d3bd6bbe6551666d487ef1026a75.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/brush_tool.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://cs5qdaf401w45"
path="res://.godot/imported/brush_tool.png-35459a2a76c7d070175c90bd375b03f3.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/brush_tool.png"
dest_files=["res://.godot/imported/brush_tool.png-35459a2a76c7d070175c90bd375b03f3.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/canvas_color_tool.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://i3rocgvfk221"
path="res://.godot/imported/canvas_color_tool.png-f7543959b94b6430741ede0ff6a667ed.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/canvas_color_tool.png"
dest_files=["res://.godot/imported/canvas_color_tool.png-f7543959b94b6430741ede0ff6a667ed.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/circle_tool.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://0qicbkag5jd3"
path="res://.godot/imported/circle_tool.png-01eaf4eb2971e0fa5b01c7cff0734ad5.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/circle_tool.png"
dest_files=["res://.godot/imported/circle_tool.png-01eaf4eb2971e0fa5b01c7cff0734ad5.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/clear_canvas.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://di3rucqyq5bk7"
path="res://.godot/imported/clear_canvas.png-008945759847e1530ab7844b2e476645.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/clear_canvas.png"
dest_files=["res://.godot/imported/clear_canvas.png-008945759847e1530ab7844b2e476645.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/close.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bp1yka17gbjtu"
path="res://.godot/imported/close.png-70dea5968a1cec9ee14e5d97f8f6de68.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/close.png"
dest_files=["res://.godot/imported/close.png-70dea5968a1cec9ee14e5d97f8f6de68.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/color_picker.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://tcovt1vw06tr"
path="res://.godot/imported/color_picker.png-a70b82c0caa965b9d941049c337ec552.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/color_picker.png"
dest_files=["res://.godot/imported/color_picker.png-a70b82c0caa965b9d941049c337ec552.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/copy.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://ci340bpx1hg78"
path="res://.godot/imported/copy.png-0e9e4610337c18e7d6f1c2a6ba468c12.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/copy.png"
dest_files=["res://.godot/imported/copy.png-0e9e4610337c18e7d6f1c2a6ba468c12.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/cursor_icon.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://cv4jae3ml8jlh"
path="res://.godot/imported/cursor_icon.png-a8679cce6d1a6159233d7f1c06150c08.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/cursor_icon.png"
dest_files=["res://.godot/imported/cursor_icon.png-a8679cce6d1a6159233d7f1c06150c08.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/delete.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://c3maqrdnsjgiq"
path="res://.godot/imported/delete.png-4df4b82a76375b3514503a0b1ebc142f.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/delete.png"
dest_files=["res://.godot/imported/delete.png-4df4b82a76375b3514503a0b1ebc142f.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/edit.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bu10tixbxmwus"
path="res://.godot/imported/edit.png-0fa3be9dd51a3426e6079c23f2ce4e0a.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/edit.png"
dest_files=["res://.godot/imported/edit.png-0fa3be9dd51a3426e6079c23f2ce4e0a.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/eraser_tool.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bynefqnt8pdby"
path="res://.godot/imported/eraser_tool.png-948df7d00cff64fa0f88c54b8ca606f6.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/eraser_tool.png"
dest_files=["res://.godot/imported/eraser_tool.png-948df7d00cff64fa0f88c54b8ca606f6.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/fullscreen.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://b4mgx1os6mdeg"
path="res://.godot/imported/fullscreen.png-ca23a29924a680b1c411d77abca7d86c.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/fullscreen.png"
dest_files=["res://.godot/imported/fullscreen.png-ca23a29924a680b1c411d77abca7d86c.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/grid.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bup7ms7nmbw0m"
path="res://.godot/imported/grid.png-8bfff87b3cd26042e7eaa81bab15f4d5.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/grid.png"
dest_files=["res://.godot/imported/grid.png-8bfff87b3cd26042e7eaa81bab15f4d5.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/line_tool.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bn1qdw0v30np0"
path="res://.godot/imported/line_tool.png-978e848631c8b06d1f4ac691060d1cfa.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/line_tool.png"
dest_files=["res://.godot/imported/line_tool.png-978e848631c8b06d1f4ac691060d1cfa.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/menu.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://r233fnxk5qkf"
path="res://.godot/imported/menu.png-db6d009b9768ab59af57af2bf2ca45ed.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/menu.png"
dest_files=["res://.godot/imported/menu.png-db6d009b9768ab59af57af2bf2ca45ed.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/move_tool.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bnh02pwlrohcf"
path="res://.godot/imported/move_tool.png-6e9cc52d7f4431c276fbf2caf71da662.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/move_tool.png"
dest_files=["res://.godot/imported/move_tool.png-6e9cc52d7f4431c276fbf2caf71da662.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/new_file.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://b14r0skgpftxj"
path="res://.godot/imported/new_file.png-0d6707e486bc6975c117bb30bfd5c390.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/new_file.png"
dest_files=["res://.godot/imported/new_file.png-0d6707e486bc6975c117bb30bfd5c390.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/open_file.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dxi6gc6npiskq"
path="res://.godot/imported/open_file.png-c88db8352e7590761a7dba8acd66f21e.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/open_file.png"
dest_files=["res://.godot/imported/open_file.png-c88db8352e7590761a7dba8acd66f21e.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/plus.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bmutnbt040e0b"
path="res://.godot/imported/plus.png-4323aaa71e210eccf34db655d7faed75.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/plus.png"
dest_files=["res://.godot/imported/plus.png-4323aaa71e210eccf34db655d7faed75.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/rectangle_tool.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://7a3xk8n0q24k"
path="res://.godot/imported/rectangle_tool.png-7c5bfe4509f7bc9fee57927aff38ed97.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/rectangle_tool.png"
dest_files=["res://.godot/imported/rectangle_tool.png-7c5bfe4509f7bc9fee57927aff38ed97.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/redo.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://see51v4hg68f"
path="res://.godot/imported/redo.png-9fc31f44732cd3d5afb37980266dc473.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/redo.png"
dest_files=["res://.godot/imported/redo.png-9fc31f44732cd3d5afb37980266dc473.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/save_file.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://c4kv3i7fmom58"
path="res://.godot/imported/save_file.png-9cd5cd8db86ab83f81b7066aab1c2cbb.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/save_file.png"
dest_files=["res://.godot/imported/save_file.png-9cd5cd8db86ab83f81b7066aab1c2cbb.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/selection_tool.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://ddxis8f7tvg66"
path="res://.godot/imported/selection_tool.png-821d418c0802c9f715d085b14601297e.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/selection_tool.png"
dest_files=["res://.godot/imported/selection_tool.png-821d418c0802c9f715d085b14601297e.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/tools.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://byk2mc1luvjki"
path="res://.godot/imported/tools.png-91965a13da00c51e3e1274b2607929b4.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/tools.png"
dest_files=["res://.godot/imported/tools.png-91965a13da00c51e3e1274b2607929b4.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Icons/undo.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://h54g8ofkc3p8"
path="res://.godot/imported/undo.png-b391b6f2827b70101f94b911ec554a50.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Icons/undo.png"
dest_files=["res://.godot/imported/undo.png-b391b6f2827b70101f94b911ec554a50.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_duck.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://b122l270v6tvm"
path="res://.godot/imported/p1_duck.png-673d1b2e46cd96165aa6df6f70a50cdc.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_duck.png"
dest_files=["res://.godot/imported/p1_duck.png-673d1b2e46cd96165aa6df6f70a50cdc.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_front.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://ha8dl8gprvvr"
path="res://.godot/imported/p1_front.png-4778b4f024a65b74547bfe007fbe2b6d.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_front.png"
dest_files=["res://.godot/imported/p1_front.png-4778b4f024a65b74547bfe007fbe2b6d.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_hurt.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://rnedtmq7m02m"
path="res://.godot/imported/p1_hurt.png-fc969a10c1eb8e351ab66c9a9e314703.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_hurt.png"
dest_files=["res://.godot/imported/p1_hurt.png-fc969a10c1eb8e351ab66c9a9e314703.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_jump.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://cqyukg3uuycf4"
path="res://.godot/imported/p1_jump.png-ee55cd964296a5e5be6a3ceb0bc52fe7.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_jump.png"
dest_files=["res://.godot/imported/p1_jump.png-ee55cd964296a5e5be6a3ceb0bc52fe7.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_stand.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://ffgv0s7vrro5"
path="res://.godot/imported/p1_stand.png-81ae6f47c8239fa1b5dae57da65475b4.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_stand.png"
dest_files=["res://.godot/imported/p1_stand.png-81ae6f47c8239fa1b5dae57da65475b4.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk01.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://byicebm3xqqvf"
path="res://.godot/imported/p1_walk01.png-9d637418594112831067c04af91b869d.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk01.png"
dest_files=["res://.godot/imported/p1_walk01.png-9d637418594112831067c04af91b869d.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk02.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://c0b2kwqc11hmp"
path="res://.godot/imported/p1_walk02.png-ecb66a024f5088b726573c2f531eb50d.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk02.png"
dest_files=["res://.godot/imported/p1_walk02.png-ecb66a024f5088b726573c2f531eb50d.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk03.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://c0a6dcqg7ifki"
path="res://.godot/imported/p1_walk03.png-9363f71812014a8617ecacd615964bb0.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk03.png"
dest_files=["res://.godot/imported/p1_walk03.png-9363f71812014a8617ecacd615964bb0.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk04.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://cfltcpca42j7y"
path="res://.godot/imported/p1_walk04.png-2a587477805c897fa2dbb99d54429f90.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk04.png"
dest_files=["res://.godot/imported/p1_walk04.png-2a587477805c897fa2dbb99d54429f90.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk05.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dnc8qra7ik1og"
path="res://.godot/imported/p1_walk05.png-3d30d9d934d726b8e884c14a8e19905e.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk05.png"
dest_files=["res://.godot/imported/p1_walk05.png-3d30d9d934d726b8e884c14a8e19905e.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk06.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://col76yk5anc3w"
path="res://.godot/imported/p1_walk06.png-9168aef074459d1e1823494be76eb553.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk06.png"
dest_files=["res://.godot/imported/p1_walk06.png-9168aef074459d1e1823494be76eb553.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk07.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://di3s8n8y1er54"
path="res://.godot/imported/p1_walk07.png-ba80ffef40f84442121c516e8ab1ea1b.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk07.png"
dest_files=["res://.godot/imported/p1_walk07.png-ba80ffef40f84442121c516e8ab1ea1b.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk08.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dwuysgyc8j82w"
path="res://.godot/imported/p1_walk08.png-a3dab989144b0b58fa0d2d5c24174b5b.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk08.png"
dest_files=["res://.godot/imported/p1_walk08.png-a3dab989144b0b58fa0d2d5c24174b5b.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk09.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://danut7sqbg40s"
path="res://.godot/imported/p1_walk09.png-29971744c5cd89e82f3749b21a0a05a2.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk09.png"
dest_files=["res://.godot/imported/p1_walk09.png-29971744c5cd89e82f3749b21a0a05a2.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk10.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://b8cmwiibg70sy"
path="res://.godot/imported/p1_walk10.png-7843a5167854808b6449923c6f0d42f2.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk10.png"
dest_files=["res://.godot/imported/p1_walk10.png-7843a5167854808b6449923c6f0d42f2.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Player/p1_walk/p1_walk11.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dy4wi0nvwge3k"
path="res://.godot/imported/p1_walk11.png-6aa52d789eeb1f1d49d7e66cedd01eca.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Player/p1_walk/p1_walk11.png"
dest_files=["res://.godot/imported/p1_walk11.png-6aa52d789eeb1f1d49d7e66cedd01eca.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/arrow_right.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://f75au3rhdj7d"
path="res://.godot/imported/arrow_right.png-10caef975eb4713cb62e858128e8aa09.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/arrow_right.png"
dest_files=["res://.godot/imported/arrow_right.png-10caef975eb4713cb62e858128e8aa09.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/dot.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://cllsvja6j2npu"
path="res://.godot/imported/dot.png-b21ef9585338c4335a449b7945e77989.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/dot.png"
dest_files=["res://.godot/imported/dot.png-b21ef9585338c4335a449b7945e77989.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/palette_button.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bb2kaiahpvl5m"
path="res://.godot/imported/palette_button.png-fd335e0dbb703bd94af22f96bfff0f31.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/palette_button.png"
dest_files=["res://.godot/imported/palette_button.png-fd335e0dbb703bd94af22f96bfff0f31.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/palette_button_outline.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://d2x4s44tq3fd3"
path="res://.godot/imported/palette_button_outline.png-1dde46a159e7ac04bf8f4d8211981e2d.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/palette_button_outline.png"
dest_files=["res://.godot/imported/palette_button_outline.png-1dde46a159e7ac04bf8f4d8211981e2d.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/scrollbar.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dijv04a2yoqh2"
path="res://.godot/imported/scrollbar.png-eadd7aad7ff0b21abf904a8ffd9a0d17.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/scrollbar.png"
dest_files=["res://.godot/imported/scrollbar.png-eadd7aad7ff0b21abf904a8ffd9a0d17.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/scrollbar_bg.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://rn8146pf73a8"
path="res://.godot/imported/scrollbar_bg.png-3cbfdbe3f3545d9e0b439db7f8ef5b9f.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/scrollbar_bg.png"
dest_files=["res://.godot/imported/scrollbar_bg.png-3cbfdbe3f3545d9e0b439db7f8ef5b9f.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/scrollbar_hl.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dpy8q7l3et7er"
path="res://.godot/imported/scrollbar_hl.png-8a162faa1f983be213b07295471fc0ec.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/scrollbar_hl.png"
dest_files=["res://.godot/imported/scrollbar_hl.png-8a162faa1f983be213b07295471fc0ec.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/selection_cursor.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dobdco0am2obq"
path="res://.godot/imported/selection_cursor.png-c4d243d49e4bdda5af5ac45f72f7778f.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/selection_cursor.png"
dest_files=["res://.godot/imported/selection_cursor.png-c4d243d49e4bdda5af5ac45f72f7778f.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/slider_knob_white.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bq4dsmdix16kd"
path="res://.godot/imported/slider_knob_white.png-3e114d323795e813365f68173837837b.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/slider_knob_white.png"
dest_files=["res://.godot/imported/slider_knob_white.png-3e114d323795e813365f68173837837b.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/switch_off.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://baw4u2ij0ftpe"
path="res://.godot/imported/switch_off.png-3338dccdaecfa98b3d52f0fdbc42a09f.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/switch_off.png"
dest_files=["res://.godot/imported/switch_off.png-3338dccdaecfa98b3d52f0fdbc42a09f.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/Textures/switch_on.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://vbj8ub3j37ih"
path="res://.godot/imported/switch_on.png-fff765fdb0aaf21336651f1a319abb80.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Textures/switch_on.png"
dest_files=["res://.godot/imported/switch_on.png-fff765fdb0aaf21336651f1a319abb80.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/Assets/icon.png.import
================================================
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://b6io62g8b730e"
path="res://.godot/imported/icon.png-ec880de02d5dab0aa15458af9d6c53ed.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/icon.png"
dest_files=["res://.godot/imported/icon.png-ec880de02d5dab0aa15458af9d6c53ed.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


================================================
FILE: lorien/BrushStroke/BrushStroke.gd
================================================
extends Node2D
class_name BrushStroke

# ------------------------------------------------------------------------------------------------
const MAX_POINTS 			:= 1000
const MAX_PRESSURE_DIFF 	:= 0.05
const MIN_PRESSURE_VALUE 	:= 0.1
const MAX_PRESSURE_VALUE 	:= 1.0
const COLLIDER_NODE_NAME 	:= "StrokeCollider"
const GROUP_ONSCREEN 		:= "onscreen_stroke"

const MAX_VECTOR2 := Vector2(2147483647, 2147483647)
const MIN_VECTOR2 := -MAX_VECTOR2

# ------------------------------------------------------------------------------------------------
@onready var _line2d: Line2D = $Line2D
@onready var _visibility_notifier: VisibleOnScreenNotifier2D = $VisibleOnScreenNotifier2D

var color: Color: get = get_color, set = set_color
var size: int
var points: Array[Vector2]
var pressures: Array[float]
var top_left_pos: Vector2
var bottom_right_pos: Vector2

# ------------------------------------------------------------------------------------------------
func _ready() -> void:
	_line2d.width_curve = Curve.new()
	_line2d.texture = BrushStrokeTexture.texture
	
	_visibility_notifier.screen_entered.connect(func() -> void: add_to_group(GROUP_ONSCREEN))
	_visibility_notifier.screen_exited.connect(func() -> void: remove_from_group(GROUP_ONSCREEN))
	
	var rounding_mode: int = Settings.get_value(
		Settings.RENDERING_BRUSH_ROUNDING, Config.DEFAULT_BRUSH_ROUNDING
	)
	
	match rounding_mode:
		Types.BrushRoundingType.FLAT:
			_line2d.end_cap_mode = Line2D.LINE_CAP_NONE
			_line2d.begin_cap_mode = Line2D.LINE_CAP_NONE
		Types.BrushRoundingType.ROUNDED:
			_line2d.end_cap_mode = Line2D.LINE_CAP_ROUND
			_line2d.begin_cap_mode = Line2D.LINE_CAP_ROUND
	
	refresh()

# -------------------------------------------------------------------------------------------------
func _to_string() -> String:
	return "Color: %s, Size: %d, Points: %s" % [color, size, points]

# -------------------------------------------------------------------------------------------------
func add_point(point: Vector2, pressure: float) -> void:
	# Smooth out pressure values (on Linux i sometimes get really high pressure spikes)
	if !pressures.is_empty():
		var last_pressure: float = pressures.back()
		var pressure_diff := pressure - last_pressure
		if abs(pressure_diff) > MAX_PRESSURE_DIFF:
			pressure = last_pressure + sign(pressure_diff) * MAX_PRESSURE_DIFF
	pressure = clamp(pressure, MIN_PRESSURE_VALUE, MAX_PRESSURE_VALUE)
	
	points.append(point)
	pressures.append(pressure)

# ------------------------------------------------------------------------------------------------
func remove_last_point() -> void:
	if !points.is_empty():
		points.pop_back()
		pressures.pop_back()
		_line2d.points.remove_at(_line2d.points.size() - 1)
		_line2d.width_curve.remove_point(_line2d.width_curve.get_point_count() - 1)

# ------------------------------------------------------------------------------------------------
func remove_all_points() -> void:
	if !points.is_empty():
		points.clear()
		pressures.clear()
		_line2d.points = PackedVector2Array()
		_line2d.width_curve.clear_points()

# -------------------------------------------------------------------------------------------------
func enable_collider(enable: bool) -> void:
	# Remove current collider
	var body: StaticBody2D = get_node_or_null(COLLIDER_NODE_NAME)
	if body != null:
		remove_child(body)
		body.queue_free()
	
	# Create new collider
	if enable:
		body = StaticBody2D.new()
		body.name = COLLIDER_NODE_NAME
		var idx := 0
		while idx < points.size()-1:
			var col := CollisionShape2D.new()
			var shape := SegmentShape2D.new()
			shape.a = points[idx]
			shape.b = points[idx + 1]
			col.shape = shape
			body.add_child(col)
			idx += 1
		add_child(body)

# ------------------------------------------------------------------------------------------------
func refresh() -> void:
	_line2d.clear_points()
	_line2d.width_curve.clear_points()
	
	if points.is_empty():
		return
	
	_line2d.default_color = color
	_line2d.width = size
	
	var p_idx := 0
	var top_left := MAX_VECTOR2
	var bottom_right := MIN_VECTOR2
	var curve_step: float = 1.0 / pressures.size()
	for point: Vector2 in points:
		# Add the point
		_line2d.add_point(point)
		var pressure: float = pressures[p_idx]
		_line2d.width_curve.add_point(Vector2(curve_step * p_idx, pressure / MAX_PRESSURE_VALUE))
		p_idx += 1
			
		# Update the extreme values
		top_left.x = min(top_left.x, point.x)
		top_left.y = min(top_left.y, point.y)
		bottom_right.x = max(bottom_right.x, point.x)
		bottom_right.y = max(bottom_right.y, point.y)
		
	top_left_pos = top_left
	bottom_right_pos = bottom_right
	_visibility_notifier.rect = Utils.calculate_rect(top_left, bottom_right)

# -------------------------------------------------------------------------------------------------
func set_color(c: Color) -> void:
	color = c
	if _line2d != null:
		_line2d.default_color = color

# -------------------------------------------------------------------------------------------------
func get_color() -> Color:
	return color

# -------------------------------------------------------------------------------------------------
func clear() -> void:
	points.clear()
	pressures.clear()
	_line2d.clear_points()
	_line2d.width_curve.clear_points()


================================================
FILE: lorien/BrushStroke/BrushStroke.tscn
================================================
[gd_scene load_steps=2 format=3 uid="uid://c4qnqdrb1kmv7"]

[ext_resource type="Script" path="res://BrushStroke/BrushStroke.gd" id="1"]

[node name="BrushStroke" type="Node2D"]
script = ExtResource("1")

[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]

[node name="Line2D" type="Line2D" parent="."]
texture_filter = 6
texture_mode = 2
joint_mode = 2


================================================
FILE: lorien/BrushStroke/BrushStrokeOptimizer.gd
================================================
class_name BrushStrokeOptimizer

# -------------------------------------------------------------------------------------------------
const ANGLE_THRESHOLD := 0.5
const MIN_DISTANCE := 4.0

# -------------------------------------------------------------------------------------------------
var points_removed := 0

# -------------------------------------------------------------------------------------------------
func reset() -> void:
	points_removed = 0

# -------------------------------------------------------------------------------------------------
func optimize(s: BrushStroke) -> void:
	
	if s.points.size() < 8:
		return

	var filtered_points: Array[Vector2]
	var filtered_pressures: Array[float]
	
	filtered_points.append(s.points.front())
	filtered_pressures.append(s.pressures.front())
	
	var previous_angle := 0.0
	
	for i: int in range(1, s.points.size()):
		var prev_point := s.points[i-1]
		var point := s.points[i]
		var pressure := s.pressures[i]
		
		# Distance between 2 points must be greater than x
		var distance := prev_point.distance_to(point)
		
		# Angle between points must be beigger than x deg
		var angle := rad_to_deg(prev_point.angle_to_point(point))
		var angle_diff: float = abs(abs(angle) - abs(previous_angle))
		previous_angle = angle
		
		if distance > MIN_DISTANCE || angle_diff >= ANGLE_THRESHOLD:
			filtered_points.append(point)
			filtered_pressures.append(pressure)
		else:
			points_removed += 1

	# add back last point
	if !filtered_points.back().is_equal_approx(s.points.back()):
		filtered_points.append(s.points.back())
		filtered_pressures.append(s.pressures.back())

	s.points = filtered_points
	s.pressures = filtered_pressures


================================================
FILE: lorien/BrushStroke/BrushStrokeTexture.gd
================================================
extends Node

# -------------------------------------------------------------------------------------------------
# Note:
#
# This code is taken from: https://github.com/godot-extended-libraries/godot-antialiased-line2d
# which has been released under the MIT license
# -------------------------------------------------------------------------------------------------

# Generates the antialiased Line2D texture that will be used by the various nodes.
# We do this in a singleton to perform this generation once at load, rather than once
# for every AntialiasedLine2D node. This generation can take several dozen milliseconds,
# so it would cause stuttering if performed during gameplay.

var texture: ImageTexture

func _ready() -> void:
	# Generate a texture with custom mipmaps (1-pixel feather on the top and bottom sides).
	# The texture must be square for mipmaps to work correctly. The texture's in-memory size is still
	# pretty low (less than 200 KB), so this should not cause any performance problems.
	var data := PackedByteArray()
	for mipmap: int in [256, 128, 64, 32, 16, 8, 4, 2, 1]:
		for y: int in mipmap:
			for x: int in mipmap:
				# White. If you need a different color for the Line2D, change the `default_color` property.
				data.push_back(255)

				# The last two mips are very thin. They require special handling to prevent lines
				# from disappearing entirely.
				if mipmap >= 4:
					if y == 0 or y == mipmap - 1:
						# Fully transparent.
						data.push_back(0)
					else:
						# Fully opaque.
						data.push_back(255)
				elif mipmap == 2:
					# Line will be a bit misaligned, but it'll look smoother than using lower alpha
					# for both pixels.
					if y == 1:
						# Fully transparent.
						data.push_back(0)
					else:
						# Fully opaque.
						data.push_back(255)
				else: # mipmap == 1
					# Average of 0 and 255 (there is only one pixel).
					data.push_back(128)

	var image := Image.create_from_data(256, 256, true, Image.FORMAT_LA8, data)
	texture = ImageTexture.create_from_image(image)


================================================
FILE: lorien/Config.gd
================================================
class_name Config

const VERSION_MAJOR					:= 0
const VERSION_MINOR					:= 7
const VERSION_PATCH					:= 0
const VERSION_STATUS				:= "-beta1"
static var VERSION_STRING			:= "%d.%d.%d%s" % [VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH, VERSION_STATUS]
const CONFIG_PATH 					:= "user://settings_v4.cfg"
const PALETTES_PATH					:= "user://palettes.cfg"
const STATE_PATH					:= "user://state.cfg"
const MAX_PALETTE_SIZE 				:= 40
const MIN_PALETTE_SIZE 				:= 1
const BACKGROUND_IDLE_TIME_THRESHOLD := 250 # in ms
const MIN_WINDOW_SIZE				:= Vector2(320, 256)
const DEFAULT_CANVAS_COLOR 			:= Color("202124")
const DEFAULT_BRUSH_COLOR 			:= Color.WHITE
const DEFAULT_BRUSH_SIZE			:= 10
const DEFAULT_PRESSURE_SENSITIVITY  := 1.0
const DEFAULT_CONSTANT_PRESSURE		:= false
const DEFAULT_TOOL_PRESSURE			:= 0.5
const DEFAULT_STABILIZER_STRENGTH 	:= 0.5
const DEFAULT_SELECTION_COLOR 		:= Color("#2a967c")
const DEFAULT_FOREGROUND_FPS 		:= 144
const DEFAULT_BACKGROUND_FPS		:= 10
const DEFAULT_BRUSH_ROUNDING		:= Types.BrushRoundingType.ROUNDED
const DEFAULT_UI_SCALE_MODE 		:= Types.UIScale.AUTO
const DEFAULT_UI_SCALE  			:= 1.0
const DEFAULT_GRID_PATTERN 			:= Types.GridPattern.DOTS
const DEFAULT_GRID_SIZE 			:= 25.0
const DEFAULT_APPEARANCE_THEME		:= 0


================================================
FILE: lorien/InfiniteCanvas/Cursor/BaseCursor.gd
================================================
@icon("res://Assets/Icons/cursor_icon.png")
class_name BaseCursor
extends Sprite2D

# -------------------------------------------------------------------------------------------------
var _brush_size: int
var _pressure := 1.0

@onready var _camera: Camera2D = get_viewport().get_node("Camera2D")

# -------------------------------------------------------------------------------------------------
func _input(event: InputEvent) -> void:
	if event is InputEventMouseMotion:
		update_position()

# -------------------------------------------------------------------------------------------------
func update_position() -> void:
	global_position = _camera.get_global_mouse_position()

# -------------------------------------------------------------------------------------------------
func set_pressure(pressure: float) -> void:
	_pressure = pressure

# -------------------------------------------------------------------------------------------------
func change_size(value: int) -> void:
	_brush_size = value

# -------------------------------------------------------------------------------------------------
func _on_canvas_position_changed(pos: Vector2) -> void:
	update_position()

# -------------------------------------------------------------------------------------------------
func _on_zoom_changed(value: float) -> void:
	pass


================================================
FILE: lorien/InfiniteCanvas/Cursor/BrushCursor/BrushCursor.gd
================================================
class_name BrushCursor
extends BaseCursor

# -------------------------------------------------------------------------------------------------
func _draw() -> void:
	var radius := _brush_size/2.0
	draw_arc(Vector2.ZERO, radius*_pressure, 0, PI*2, 32, Color.BLACK, 0.5, true)
	#draw_circle(Vector2.ZERO, radius*0.08, Color.BLACK)

# -------------------------------------------------------------------------------------------------
func set_pressure(pressure: float) -> void:
	if pressure <= 1.0:
		_pressure = pressure
		queue_redraw()

# -------------------------------------------------------------------------------------------------
func change_size(brush_size: int) -> void:
	super(brush_size)
	queue_redraw()


================================================
FILE: lorien/InfiniteCanvas/Cursor/BrushCursor/BrushCursor.tscn
================================================
[gd_scene load_steps=4 format=3 uid="uid://cf3j2vavqos04"]

[ext_resource type="Shader" path="res://InfiniteCanvas/Cursor/cursor.gdshader" id="1"]
[ext_resource type="Script" path="res://InfiniteCanvas/Cursor/BrushCursor/BrushCursor.gd" id="2"]

[sub_resource type="ShaderMaterial" id="1"]
shader = ExtResource("1")

[node name="BrushCursor" type="Sprite2D"]
material = SubResource("1")
script = ExtResource("2")


================================================
FILE: lorien/InfiniteCanvas/Cursor/SelectionCursor/SelectionCursor.gd
================================================
class_name SelectionCursor
extends BaseCursor

# -------------------------------------------------------------------------------------------------
const MOVE_TEXTURE = preload("res://Assets/Cursors/move_cursor.png")
const SELECT_TEXTURE = preload("res://Assets/Textures/selection_cursor.png")

enum Mode {
	MOVE,
	SELECT
}

# -------------------------------------------------------------------------------------------------
var mode := Mode.SELECT: get = get_mode, set = set_mode

# -------------------------------------------------------------------------------------------------
func _on_zoom_changed(zoom_value: float) -> void:
	scale = Vector2.ONE / zoom_value

# -------------------------------------------------------------------------------------------------
func set_mode(m: Mode) -> void:
	mode = m
	match mode:
		Mode.MOVE: texture = MOVE_TEXTURE
		_: texture = SELECT_TEXTURE

# -------------------------------------------------------------------------------------------------
func get_mode() -> int:
	return mode


================================================
FILE: lorien/InfiniteCanvas/Cursor/SelectionCursor/SelectionCursor.tscn
================================================
[gd_scene load_steps=4 format=2]

[ext_resource path="res://InfiniteCanvas/Cursor/SelectionCursor/SelectionCursor.gd" type="Script" id=1]
[ext_resource path="res://InfiniteCanvas/Cursor/cursor.gdshader" type="Shader" id=2]

[sub_resource type="ShaderMaterial" id=1]
shader = ExtResource( 2 )

[node name="SelectionCursor" type="Sprite2D"]
material = SubResource( 1 )
script = ExtResource( 1 )


================================================
FILE: lorien/InfiniteCanvas/Cursor/cursor.gdshader
================================================
shader_type canvas_item;

uniform sampler2D SCREEN_TEXTURE: hint_screen_texture, filter_linear_mipmap;

void fragment() {
	vec4 background_color = texture(SCREEN_TEXTURE, SCREEN_UV);
	vec4 texture_color = texture(TEXTURE, UV);

	vec3 inverted = vec3(texture_color.rgb - background_color.rgb);
	float grayscale = (inverted.r + inverted.g + inverted.b) / 3.0;
	grayscale = min(1.0, grayscale*1.25);

	COLOR = vec4(grayscale, grayscale, grayscale, texture_color.a);
}

================================================
FILE: lorien/InfiniteCanvas/DebugDraw.gd
================================================
extends Node2D

#
# This is used to draw debug stuff like bounding boxes etc.
#

# -------------------------------------------------------------------------------------------------
var _bounding_boxes: Array[Rect2]

# -------------------------------------------------------------------------------------------------
func set_bounding_boxes(boxes: Array[Rect2]) -> void:
	_bounding_boxes = boxes
	queue_redraw()

# -------------------------------------------------------------------------------------------------
func _draw() -> void:
	for box in _bounding_boxes:
		draw_rect(box, Color.RED, false)


=============
Download .txt
gitextract_k0igh7rb/

├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   └── workflows/
│       └── build.yml
├── .gitignore
├── LICENSE
├── README.md
├── art/
│   ├── custom_icons.afdesign
│   └── logo.afdesign
├── docs/
│   ├── changelog.md
│   ├── contributing.md
│   ├── file_format.md
│   ├── i18n.md
│   ├── manuals/
│   │   ├── manual_v0.1.0.md
│   │   ├── manual_v0.2.0.md
│   │   ├── manual_v0.3.0.md
│   │   ├── manual_v0.4.0.md
│   │   ├── manual_v0.5.0.md
│   │   ├── manual_v0.6.0.md
│   │   └── manual_v0.7.0.md
│   └── roadmap.md
├── lorien/
│   ├── Assets/
│   │   ├── Cursors/
│   │   │   └── move_cursor.png.import
│   │   ├── I18n/
│   │   │   ├── ar.txt
│   │   │   ├── de.txt
│   │   │   ├── en.txt
│   │   │   ├── es.txt
│   │   │   ├── fr.txt
│   │   │   ├── it.txt
│   │   │   ├── ko.txt
│   │   │   ├── pt-BR.txt
│   │   │   ├── ru.txt
│   │   │   ├── tr.txt
│   │   │   ├── uk.txt
│   │   │   ├── zh-CN.txt
│   │   │   └── zh-TW.txt
│   │   ├── Icons/
│   │   │   ├── add.png.import
│   │   │   ├── brush_tool.png.import
│   │   │   ├── canvas_color_tool.png.import
│   │   │   ├── circle_tool.png.import
│   │   │   ├── clear_canvas.png.import
│   │   │   ├── close.png.import
│   │   │   ├── color_picker.png.import
│   │   │   ├── copy.png.import
│   │   │   ├── cursor_icon.png.import
│   │   │   ├── delete.png.import
│   │   │   ├── edit.png.import
│   │   │   ├── eraser_tool.png.import
│   │   │   ├── fullscreen.png.import
│   │   │   ├── grid.png.import
│   │   │   ├── line_tool.png.import
│   │   │   ├── menu.png.import
│   │   │   ├── move_tool.png.import
│   │   │   ├── new_file.png.import
│   │   │   ├── open_file.png.import
│   │   │   ├── plus.png.import
│   │   │   ├── rectangle_tool.png.import
│   │   │   ├── redo.png.import
│   │   │   ├── save_file.png.import
│   │   │   ├── selection_tool.png.import
│   │   │   ├── tools.png.import
│   │   │   └── undo.png.import
│   │   ├── Player/
│   │   │   ├── p1_duck.png.import
│   │   │   ├── p1_front.png.import
│   │   │   ├── p1_hurt.png.import
│   │   │   ├── p1_jump.png.import
│   │   │   ├── p1_stand.png.import
│   │   │   └── p1_walk/
│   │   │       ├── p1_walk01.png.import
│   │   │       ├── p1_walk02.png.import
│   │   │       ├── p1_walk03.png.import
│   │   │       ├── p1_walk04.png.import
│   │   │       ├── p1_walk05.png.import
│   │   │       ├── p1_walk06.png.import
│   │   │       ├── p1_walk07.png.import
│   │   │       ├── p1_walk08.png.import
│   │   │       ├── p1_walk09.png.import
│   │   │       ├── p1_walk10.png.import
│   │   │       └── p1_walk11.png.import
│   │   ├── Textures/
│   │   │   ├── arrow_right.png.import
│   │   │   ├── dot.png.import
│   │   │   ├── palette_button.png.import
│   │   │   ├── palette_button_outline.png.import
│   │   │   ├── scrollbar.png.import
│   │   │   ├── scrollbar_bg.png.import
│   │   │   ├── scrollbar_hl.png.import
│   │   │   ├── selection_cursor.png.import
│   │   │   ├── slider_knob_white.png.import
│   │   │   ├── switch_off.png.import
│   │   │   └── switch_on.png.import
│   │   └── icon.png.import
│   ├── BrushStroke/
│   │   ├── BrushStroke.gd
│   │   ├── BrushStroke.tscn
│   │   ├── BrushStrokeOptimizer.gd
│   │   └── BrushStrokeTexture.gd
│   ├── Config.gd
│   ├── InfiniteCanvas/
│   │   ├── Cursor/
│   │   │   ├── BaseCursor.gd
│   │   │   ├── BrushCursor/
│   │   │   │   ├── BrushCursor.gd
│   │   │   │   └── BrushCursor.tscn
│   │   │   ├── SelectionCursor/
│   │   │   │   ├── SelectionCursor.gd
│   │   │   │   └── SelectionCursor.tscn
│   │   │   └── cursor.gdshader
│   │   ├── DebugDraw.gd
│   │   ├── InfiniteCanvas.gd
│   │   ├── InfiniteCanvas.tscn
│   │   ├── InfiniteCanvasGrid.gd
│   │   ├── PanZoomCamera.gd
│   │   ├── Tools/
│   │   │   ├── BrushTool.gd
│   │   │   ├── CanvasTool.gd
│   │   │   ├── CircleTool.gd
│   │   │   ├── EraserTool.gd
│   │   │   ├── LineTool.gd
│   │   │   ├── RectangleTool.gd
│   │   │   ├── SelectionRectangle.gd
│   │   │   ├── SelectionTool.gd
│   │   │   └── selection_rectangle.gdshader
│   │   ├── constant_pressure_curve.tres
│   │   └── default_pressure_curve.tres
│   ├── Main.gd
│   ├── Main.tscn
│   ├── Misc/
│   │   ├── GlobalSignals.gd
│   │   ├── I18nParser.gd
│   │   ├── KeybindingsManager.gd
│   │   ├── Player/
│   │   │   ├── Player.gd
│   │   │   └── Player.tscn
│   │   ├── Settings.gd
│   │   ├── StatePersistence.gd
│   │   ├── SvgExporter.gd
│   │   ├── Types.gd
│   │   └── Utils.gd
│   ├── Palette/
│   │   ├── Palette.gd
│   │   ├── PaletteManager.gd
│   │   └── default_palette.tres
│   ├── ProjectManager/
│   │   ├── Project.gd
│   │   ├── ProjectManager.gd
│   │   ├── ProjectMetadata.gd
│   │   └── Serializer.gd
│   ├── UI/
│   │   ├── ColorPalettePicker.gd
│   │   ├── ColorPalettePicker.tscn
│   │   ├── Components/
│   │   │   ├── FlatTextureButton.gd
│   │   │   ├── KeybindItem.gd
│   │   │   ├── KeybindItem.tscn
│   │   │   ├── PaletteButton.gd
│   │   │   └── PaletteButton.tscn
│   │   ├── Dialogs/
│   │   │   ├── AboutDialog.gd
│   │   │   ├── AboutDialog.tscn
│   │   │   ├── AddKeyDialog.tscn
│   │   │   ├── AlertDialog.gd
│   │   │   ├── AlertDialog.tscn
│   │   │   ├── DeletePaletteDialog.gd
│   │   │   ├── DeletePaletteDialog.tscn
│   │   │   ├── EditPaletteDialog.gd
│   │   │   ├── EditPaletteDialog.tscn
│   │   │   ├── ExitDialog.tscn
│   │   │   ├── NewPaletteDialog.gd
│   │   │   ├── NewPaletteDialog.tscn
│   │   │   ├── SettingsDialog.gd
│   │   │   ├── SettingsDialog.tscn
│   │   │   ├── UnsavedChangesDialog.gd
│   │   │   └── UnsavedChangesDialog.tscn
│   │   ├── MainMenu.gd
│   │   ├── MainMenu.tscn
│   │   ├── Menubar.gd
│   │   ├── Menubar.tscn
│   │   ├── Statusbar.gd
│   │   ├── Statusbar.tscn
│   │   ├── Themes/
│   │   │   ├── dark/
│   │   │   │   ├── tab_active.tres
│   │   │   │   ├── tab_inactive.tres
│   │   │   │   ├── theme.tres
│   │   │   │   └── toolbar.tres
│   │   │   └── light/
│   │   │       ├── tab_active.tres
│   │   │       ├── tab_inactive.tres
│   │   │       ├── theme.tres
│   │   │       └── toolbar.tres
│   │   ├── Toolbar.gd
│   │   └── Toolbar.tscn
│   ├── export_presets.cfg
│   └── project.godot
└── public/
    └── linux/
        ├── com.github.mbrlabs.Lorien.desktop
        ├── com.github.mbrlabs.Lorien.metainfo.xml
        └── x-lorien-canvas.mimetype.xml
Condensed preview — 179 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,298K chars).
[
  {
    "path": ".github/FUNDING.yml",
    "chars": 53,
    "preview": "ko_fi: mbrlabs\ncustom: https://www.paypal.me/mbrlabs\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 503,
    "preview": "---\nname: Bug report\nabout: Report a bug in Lorien\ntitle: ''\nlabels: bug\nassignees: ''\n---\n<!-- Please search existing i"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 392,
    "preview": "---\nname: Feature/enhancement request\nabout: Request a new feature or enhancement in Lorien\ntitle: ''\nlabels: enhancemen"
  },
  {
    "path": ".github/workflows/build.yml",
    "chars": 2930,
    "preview": "name: \"build\"\n\non:\n  push:\n    branches: [ main ]\n  pull_request:\n    branches: [ main ]\n\nenv:\n  GODOT_VERSION: 4.3\n  EX"
  },
  {
    "path": ".gitignore",
    "chars": 130,
    "preview": "# Godot-specific ignores\n.import/\n.godot/\n\n# Mono-specific ignores\n.mono/\ndata_*/\n\n# Visual Studio Code-specific ignores"
  },
  {
    "path": "LICENSE",
    "chars": 1076,
    "preview": "MIT License\n\nCopyright (c) 2021-2025 Marcus Brummer\n\nPermission is hereby granted, free of charge, to any person obtaini"
  },
  {
    "path": "README.md",
    "chars": 3100,
    "preview": "<img src=\"https://raw.githubusercontent.com/mbrlabs/Lorien/main/images/lorien.png\" align=\"left\"/>\n\n# Lorien\n<p>\n    <a h"
  },
  {
    "path": "docs/changelog.md",
    "chars": 9478,
    "preview": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Change"
  },
  {
    "path": "docs/contributing.md",
    "chars": 639,
    "preview": "# How to contribute\n\n## General\nThis guide is loosly based on [Godot's contributing guidelines](https://github.com/godot"
  },
  {
    "path": "docs/file_format.md",
    "chars": 134,
    "preview": "# File Format\n\nTODO because not final.           \nSee: https://github.com/mbrlabs/Lorien/blob/main/lorien/ProjectManager"
  },
  {
    "path": "docs/i18n.md",
    "chars": 1334,
    "preview": "# Localization\n\n### How Lorien handles localization\n\nGodot has two ways to handle multiple languages right now:\n- Puttin"
  },
  {
    "path": "docs/manuals/manual_v0.1.0.md",
    "chars": 776,
    "preview": "# Lorien Manual v0.1.0\n\nDrawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. \n\n## Ba"
  },
  {
    "path": "docs/manuals/manual_v0.2.0.md",
    "chars": 1738,
    "preview": "# Lorien Manual v0.2.0\n\nDrawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. \n\n## Ba"
  },
  {
    "path": "docs/manuals/manual_v0.3.0.md",
    "chars": 2271,
    "preview": "# Lorien Manual v0.3.0\n\nDrawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. \n\n## Ba"
  },
  {
    "path": "docs/manuals/manual_v0.4.0.md",
    "chars": 3728,
    "preview": "# Lorien Manual v0.4.0\n\nDrawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. \n\n## Ba"
  },
  {
    "path": "docs/manuals/manual_v0.5.0.md",
    "chars": 4404,
    "preview": "# Lorien Manual v0.5.0\n\nDrawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. \n\n## Ba"
  },
  {
    "path": "docs/manuals/manual_v0.6.0.md",
    "chars": 4526,
    "preview": "# Lorien Manual v0.6.0\n\nDrawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. \n\n## Ba"
  },
  {
    "path": "docs/manuals/manual_v0.7.0.md",
    "chars": 4449,
    "preview": "# Lorien Manual v0.7.0\n\nDrawing tablets are supported and recommended, but you can also just use Keyboard+Mouse. \n\n## Ba"
  },
  {
    "path": "docs/roadmap.md",
    "chars": 118,
    "preview": "# Roadmap\n\nThe old roadmap is for the most part implemented or obsolete. \nSo this needs to be updated at some point :)"
  },
  {
    "path": "lorien/Assets/Cursors/move_cursor.png.import",
    "chars": 782,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cynvq1tyvqx67\"\npath=\"res://.godot/imported/move_cursor"
  },
  {
    "path": "lorien/Assets/I18n/ar.txt",
    "chars": 5935,
    "preview": "LANGUAGE_NAME العربية\n\n# -----------------------------------------------------------------------------\n# Menu strings\n# "
  },
  {
    "path": "lorien/Assets/I18n/de.txt",
    "chars": 6866,
    "preview": "LANGUAGE_NAME Deutsch\n\n# --------------------------------------------------------------------------------\n# Menu\n# -----"
  },
  {
    "path": "lorien/Assets/I18n/en.txt",
    "chars": 8009,
    "preview": "LANGUAGE_NAME English\n\n# -----------------------------------------------------------------------------\n# Menu strings\n# "
  },
  {
    "path": "lorien/Assets/I18n/es.txt",
    "chars": 8542,
    "preview": "LANGUAGE_NAME Español\n\n# -----------------------------------------------------------------------------\n# Menu strings\n# "
  },
  {
    "path": "lorien/Assets/I18n/fr.txt",
    "chars": 5693,
    "preview": "LANGUAGE_NAME Français\n\n# -----------------------------------------------------------------------------\n# Menu strings\n#"
  },
  {
    "path": "lorien/Assets/I18n/it.txt",
    "chars": 7540,
    "preview": "LANGUAGE_NAME Italiano\n\n# -----------------------------------------------------------------------------\n# Menu\n# -------"
  },
  {
    "path": "lorien/Assets/I18n/ko.txt",
    "chars": 4989,
    "preview": "LANGUAGE_NAME 한국어\n\n# -----------------------------------------------------------------------------\n# Menu strings\n# ----"
  },
  {
    "path": "lorien/Assets/I18n/pt-BR.txt",
    "chars": 7600,
    "preview": "LANGUAGE_NAME Português Brasileiro\n\n# -----------------------------------------------------------------------------\n# Me"
  },
  {
    "path": "lorien/Assets/I18n/ru.txt",
    "chars": 5703,
    "preview": "LANGUAGE_NAME Русский\n\n# -----------------------------------------------------------------------------\n# Menu strings\n# "
  },
  {
    "path": "lorien/Assets/I18n/tr.txt",
    "chars": 7441,
    "preview": "LANGUAGE_NAME Türkçe\n\n# -----------------------------------------------------------------------------\n# Menu strings\n# -"
  },
  {
    "path": "lorien/Assets/I18n/uk.txt",
    "chars": 7670,
    "preview": "LANGUAGE_NAME Українська\n\n# -----------------------------------------------------------------------------\n# Menu strings"
  },
  {
    "path": "lorien/Assets/I18n/zh-CN.txt",
    "chars": 4877,
    "preview": "LANGUAGE_NAME 汉语 # Simplified Chinese\n\n# -----------------------------------------------------------------------------\n#"
  },
  {
    "path": "lorien/Assets/I18n/zh-TW.txt",
    "chars": 4887,
    "preview": "LANGUAGE_NAME 漢語 # Traditional Chinese\n\n# -----------------------------------------------------------------------------\n"
  },
  {
    "path": "lorien/Assets/Icons/add.png.import",
    "chars": 756,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bbdkcvds2nxg7\"\npath=\"res://.godot/imported/add.png-352"
  },
  {
    "path": "lorien/Assets/Icons/brush_tool.png.import",
    "chars": 777,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cs5qdaf401w45\"\npath=\"res://.godot/imported/brush_tool."
  },
  {
    "path": "lorien/Assets/Icons/canvas_color_tool.png.import",
    "chars": 797,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://i3rocgvfk221\"\npath=\"res://.godot/imported/canvas_color"
  },
  {
    "path": "lorien/Assets/Icons/circle_tool.png.import",
    "chars": 779,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://0qicbkag5jd3\"\npath=\"res://.godot/imported/circle_tool."
  },
  {
    "path": "lorien/Assets/Icons/clear_canvas.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://di3rucqyq5bk7\"\npath=\"res://.godot/imported/clear_canva"
  },
  {
    "path": "lorien/Assets/Icons/close.png.import",
    "chars": 762,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bp1yka17gbjtu\"\npath=\"res://.godot/imported/close.png-7"
  },
  {
    "path": "lorien/Assets/Icons/color_picker.png.import",
    "chars": 782,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://tcovt1vw06tr\"\npath=\"res://.godot/imported/color_picker"
  },
  {
    "path": "lorien/Assets/Icons/copy.png.import",
    "chars": 759,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ci340bpx1hg78\"\npath=\"res://.godot/imported/copy.png-0e"
  },
  {
    "path": "lorien/Assets/Icons/cursor_icon.png.import",
    "chars": 780,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cv4jae3ml8jlh\"\npath=\"res://.godot/imported/cursor_icon"
  },
  {
    "path": "lorien/Assets/Icons/delete.png.import",
    "chars": 765,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c3maqrdnsjgiq\"\npath=\"res://.godot/imported/delete.png-"
  },
  {
    "path": "lorien/Assets/Icons/edit.png.import",
    "chars": 759,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bu10tixbxmwus\"\npath=\"res://.godot/imported/edit.png-0f"
  },
  {
    "path": "lorien/Assets/Icons/eraser_tool.png.import",
    "chars": 780,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bynefqnt8pdby\"\npath=\"res://.godot/imported/eraser_tool"
  },
  {
    "path": "lorien/Assets/Icons/fullscreen.png.import",
    "chars": 777,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b4mgx1os6mdeg\"\npath=\"res://.godot/imported/fullscreen."
  },
  {
    "path": "lorien/Assets/Icons/grid.png.import",
    "chars": 759,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bup7ms7nmbw0m\"\npath=\"res://.godot/imported/grid.png-8b"
  },
  {
    "path": "lorien/Assets/Icons/line_tool.png.import",
    "chars": 774,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bn1qdw0v30np0\"\npath=\"res://.godot/imported/line_tool.p"
  },
  {
    "path": "lorien/Assets/Icons/menu.png.import",
    "chars": 758,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://r233fnxk5qkf\"\npath=\"res://.godot/imported/menu.png-db6"
  },
  {
    "path": "lorien/Assets/Icons/move_tool.png.import",
    "chars": 774,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bnh02pwlrohcf\"\npath=\"res://.godot/imported/move_tool.p"
  },
  {
    "path": "lorien/Assets/Icons/new_file.png.import",
    "chars": 771,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b14r0skgpftxj\"\npath=\"res://.godot/imported/new_file.pn"
  },
  {
    "path": "lorien/Assets/Icons/open_file.png.import",
    "chars": 774,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dxi6gc6npiskq\"\npath=\"res://.godot/imported/open_file.p"
  },
  {
    "path": "lorien/Assets/Icons/plus.png.import",
    "chars": 759,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bmutnbt040e0b\"\npath=\"res://.godot/imported/plus.png-43"
  },
  {
    "path": "lorien/Assets/Icons/rectangle_tool.png.import",
    "chars": 788,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://7a3xk8n0q24k\"\npath=\"res://.godot/imported/rectangle_to"
  },
  {
    "path": "lorien/Assets/Icons/redo.png.import",
    "chars": 758,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://see51v4hg68f\"\npath=\"res://.godot/imported/redo.png-9fc"
  },
  {
    "path": "lorien/Assets/Icons/save_file.png.import",
    "chars": 774,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c4kv3i7fmom58\"\npath=\"res://.godot/imported/save_file.p"
  },
  {
    "path": "lorien/Assets/Icons/selection_tool.png.import",
    "chars": 789,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ddxis8f7tvg66\"\npath=\"res://.godot/imported/selection_t"
  },
  {
    "path": "lorien/Assets/Icons/tools.png.import",
    "chars": 762,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://byk2mc1luvjki\"\npath=\"res://.godot/imported/tools.png-9"
  },
  {
    "path": "lorien/Assets/Icons/undo.png.import",
    "chars": 758,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://h54g8ofkc3p8\"\npath=\"res://.godot/imported/undo.png-b39"
  },
  {
    "path": "lorien/Assets/Player/p1_duck.png.import",
    "chars": 769,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b122l270v6tvm\"\npath=\"res://.godot/imported/p1_duck.png"
  },
  {
    "path": "lorien/Assets/Player/p1_front.png.import",
    "chars": 771,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ha8dl8gprvvr\"\npath=\"res://.godot/imported/p1_front.png"
  },
  {
    "path": "lorien/Assets/Player/p1_hurt.png.import",
    "chars": 768,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://rnedtmq7m02m\"\npath=\"res://.godot/imported/p1_hurt.png-"
  },
  {
    "path": "lorien/Assets/Player/p1_jump.png.import",
    "chars": 769,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cqyukg3uuycf4\"\npath=\"res://.godot/imported/p1_jump.png"
  },
  {
    "path": "lorien/Assets/Player/p1_stand.png.import",
    "chars": 771,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ffgv0s7vrro5\"\npath=\"res://.godot/imported/p1_stand.png"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk01.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://byicebm3xqqvf\"\npath=\"res://.godot/imported/p1_walk01.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk02.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c0b2kwqc11hmp\"\npath=\"res://.godot/imported/p1_walk02.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk03.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c0a6dcqg7ifki\"\npath=\"res://.godot/imported/p1_walk03.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk04.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cfltcpca42j7y\"\npath=\"res://.godot/imported/p1_walk04.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk05.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dnc8qra7ik1og\"\npath=\"res://.godot/imported/p1_walk05.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk06.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://col76yk5anc3w\"\npath=\"res://.godot/imported/p1_walk06.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk07.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://di3s8n8y1er54\"\npath=\"res://.godot/imported/p1_walk07.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk08.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dwuysgyc8j82w\"\npath=\"res://.godot/imported/p1_walk08.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk09.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://danut7sqbg40s\"\npath=\"res://.godot/imported/p1_walk09.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk10.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b8cmwiibg70sy\"\npath=\"res://.godot/imported/p1_walk10.p"
  },
  {
    "path": "lorien/Assets/Player/p1_walk/p1_walk11.png.import",
    "chars": 783,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dy4wi0nvwge3k\"\npath=\"res://.godot/imported/p1_walk11.p"
  },
  {
    "path": "lorien/Assets/Textures/arrow_right.png.import",
    "chars": 782,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://f75au3rhdj7d\"\npath=\"res://.godot/imported/arrow_right."
  },
  {
    "path": "lorien/Assets/Textures/dot.png.import",
    "chars": 759,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cllsvja6j2npu\"\npath=\"res://.godot/imported/dot.png-b21"
  },
  {
    "path": "lorien/Assets/Textures/palette_button.png.import",
    "chars": 792,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bb2kaiahpvl5m\"\npath=\"res://.godot/imported/palette_but"
  },
  {
    "path": "lorien/Assets/Textures/palette_button_outline.png.import",
    "chars": 816,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d2x4s44tq3fd3\"\npath=\"res://.godot/imported/palette_but"
  },
  {
    "path": "lorien/Assets/Textures/scrollbar.png.import",
    "chars": 777,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dijv04a2yoqh2\"\npath=\"res://.godot/imported/scrollbar.p"
  },
  {
    "path": "lorien/Assets/Textures/scrollbar_bg.png.import",
    "chars": 785,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://rn8146pf73a8\"\npath=\"res://.godot/imported/scrollbar_bg"
  },
  {
    "path": "lorien/Assets/Textures/scrollbar_hl.png.import",
    "chars": 786,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dpy8q7l3et7er\"\npath=\"res://.godot/imported/scrollbar_h"
  },
  {
    "path": "lorien/Assets/Textures/selection_cursor.png.import",
    "chars": 798,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dobdco0am2obq\"\npath=\"res://.godot/imported/selection_c"
  },
  {
    "path": "lorien/Assets/Textures/slider_knob_white.png.import",
    "chars": 801,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bq4dsmdix16kd\"\npath=\"res://.godot/imported/slider_knob"
  },
  {
    "path": "lorien/Assets/Textures/switch_off.png.import",
    "chars": 780,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://baw4u2ij0ftpe\"\npath=\"res://.godot/imported/switch_off."
  },
  {
    "path": "lorien/Assets/Textures/switch_on.png.import",
    "chars": 776,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://vbj8ub3j37ih\"\npath=\"res://.godot/imported/switch_on.pn"
  },
  {
    "path": "lorien/Assets/icon.png.import",
    "chars": 753,
    "preview": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b6io62g8b730e\"\npath=\"res://.godot/imported/icon.png-ec"
  },
  {
    "path": "lorien/BrushStroke/BrushStroke.gd",
    "chars": 5224,
    "preview": "extends Node2D\nclass_name BrushStroke\n\n# -------------------------------------------------------------------------------"
  },
  {
    "path": "lorien/BrushStroke/BrushStroke.tscn",
    "chars": 386,
    "preview": "[gd_scene load_steps=2 format=3 uid=\"uid://c4qnqdrb1kmv7\"]\n\n[ext_resource type=\"Script\" path=\"res://BrushStroke/BrushStr"
  },
  {
    "path": "lorien/BrushStroke/BrushStrokeOptimizer.gd",
    "chars": 1683,
    "preview": "class_name BrushStrokeOptimizer\n\n# -------------------------------------------------------------------------------------"
  },
  {
    "path": "lorien/BrushStroke/BrushStrokeTexture.gd",
    "chars": 2042,
    "preview": "extends Node\n\n# -------------------------------------------------------------------------------------------------\n# Note"
  },
  {
    "path": "lorien/Config.gd",
    "chars": 1251,
    "preview": "class_name Config\n\nconst VERSION_MAJOR\t\t\t\t\t:= 0\nconst VERSION_MINOR\t\t\t\t\t:= 7\nconst VERSION_PATCH\t\t\t\t\t:= 0\nconst VERSION_"
  },
  {
    "path": "lorien/InfiniteCanvas/Cursor/BaseCursor.gd",
    "chars": 1336,
    "preview": "@icon(\"res://Assets/Icons/cursor_icon.png\")\nclass_name BaseCursor\nextends Sprite2D\n\n# ----------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Cursor/BrushCursor/BrushCursor.gd",
    "chars": 714,
    "preview": "class_name BrushCursor\nextends BaseCursor\n\n# ---------------------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Cursor/BrushCursor/BrushCursor.tscn",
    "chars": 413,
    "preview": "[gd_scene load_steps=4 format=3 uid=\"uid://cf3j2vavqos04\"]\n\n[ext_resource type=\"Shader\" path=\"res://InfiniteCanvas/Curso"
  },
  {
    "path": "lorien/InfiniteCanvas/Cursor/SelectionCursor/SelectionCursor.gd",
    "chars": 1025,
    "preview": "class_name SelectionCursor\nextends BaseCursor\n\n# -----------------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Cursor/SelectionCursor/SelectionCursor.tscn",
    "chars": 393,
    "preview": "[gd_scene load_steps=4 format=2]\n\n[ext_resource path=\"res://InfiniteCanvas/Cursor/SelectionCursor/SelectionCursor.gd\" ty"
  },
  {
    "path": "lorien/InfiniteCanvas/Cursor/cursor.gdshader",
    "chars": 464,
    "preview": "shader_type canvas_item;\n\nuniform sampler2D SCREEN_TEXTURE: hint_screen_texture, filter_linear_mipmap;\n\nvoid fragment() "
  },
  {
    "path": "lorien/InfiniteCanvas/DebugDraw.gd",
    "chars": 598,
    "preview": "extends Node2D\n\n#\n# This is used to draw debug stuff like bounding boxes etc.\n#\n\n# -------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/InfiniteCanvas.gd",
    "chars": 15907,
    "preview": "extends SubViewportContainer\nclass_name InfiniteCanvas\n\n# --------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/InfiniteCanvas.tscn",
    "chars": 3482,
    "preview": "[gd_scene load_steps=17 format=3 uid=\"uid://c4u5gk5n2aiom\"]\n\n[ext_resource type=\"Script\" path=\"res://InfiniteCanvas/Infi"
  },
  {
    "path": "lorien/InfiniteCanvas/InfiniteCanvasGrid.gd",
    "chars": 3221,
    "preview": "class_name InfiniteCanvasGrid\nextends Node2D\n\n# ------------------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/PanZoomCamera.gd",
    "chars": 6835,
    "preview": "extends Camera2D\n\n# -------------------------------------------------------------------------------------------------\nsi"
  },
  {
    "path": "lorien/InfiniteCanvas/Tools/BrushTool.gd",
    "chars": 4152,
    "preview": "class_name BrushTool\nextends CanvasTool\n\n# -----------------------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Tools/CanvasTool.gd",
    "chars": 4549,
    "preview": "@icon(\"res://Assets/Icons/tools.png\")\nclass_name CanvasTool\nextends Node\n\n# --------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Tools/CircleTool.gd",
    "chars": 2974,
    "preview": "class_name CircleTool\nextends CanvasTool\n\n# ----------------------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Tools/EraserTool.gd",
    "chars": 3840,
    "preview": "class_name EraserTool\nextends CanvasTool\n\n# ----------------------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Tools/LineTool.gd",
    "chars": 2359,
    "preview": "class_name LineTool\nextends CanvasTool\n\n# ------------------------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Tools/RectangleTool.gd",
    "chars": 2320,
    "preview": "class_name RectangleTool\nextends CanvasTool\n\n# -------------------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Tools/SelectionRectangle.gd",
    "chars": 939,
    "preview": "extends Node2D\nclass_name SelectionRectangle\n\nconst OUTLINE_COLOR = Color.WHITE\nconst FILL_COLOR = Color(1.0, 1.0, 1.0, "
  },
  {
    "path": "lorien/InfiniteCanvas/Tools/SelectionTool.gd",
    "chars": 11567,
    "preview": "class_name SelectionTool\nextends CanvasTool\n\n# -------------------------------------------------------------------------"
  },
  {
    "path": "lorien/InfiniteCanvas/Tools/selection_rectangle.gdshader",
    "chars": 290,
    "preview": "shader_type canvas_item;\n\nuniform vec4 background_color;\n\nvoid fragment() {\n\tvec3 inverted = vec3(1.0) - background_colo"
  },
  {
    "path": "lorien/InfiniteCanvas/constant_pressure_curve.tres",
    "chars": 97,
    "preview": "[gd_resource type=\"Curve\" format=2]\n\n[resource]\n_data = [ Vector2( 0, 1 ), 0.0, 0.210526, 0, 0 ]\n"
  },
  {
    "path": "lorien/InfiniteCanvas/default_pressure_curve.tres",
    "chars": 178,
    "preview": "[gd_resource type=\"Curve\" format=3 uid=\"uid://bgd7v60kyywsk\"]\n\n[resource]\n_data = [Vector2(0, 0.252555), 0.0, 0.747445, "
  },
  {
    "path": "lorien/Main.gd",
    "chars": 28116,
    "preview": "extends Control\n\n# -------------------------------------------------------------------------------------------------\n@on"
  },
  {
    "path": "lorien/Main.tscn",
    "chars": 6298,
    "preview": "[gd_scene load_steps=16 format=3 uid=\"uid://2uaupgd20h03\"]\n\n[ext_resource type=\"Script\" path=\"res://Main.gd\" id=\"1\"]\n[ex"
  },
  {
    "path": "lorien/Misc/GlobalSignals.gd",
    "chars": 199,
    "preview": "extends Node\n\n# -------------------------------------------------------------------------------------------------\nsignal"
  },
  {
    "path": "lorien/Misc/I18nParser.gd",
    "chars": 3433,
    "preview": "class_name I18nParser\n\n# -----------------------------------------------------------------------------------------------"
  },
  {
    "path": "lorien/Misc/KeybindingsManager.gd",
    "chars": 2067,
    "preview": "extends Node\n\n# -------------------------------------------------------------------------------------------------\nclass "
  },
  {
    "path": "lorien/Misc/Player/Player.gd",
    "chars": 1470,
    "preview": "class_name Player\nextends CharacterBody2D\n\n# ---------------------------------------------------------------------------"
  },
  {
    "path": "lorien/Misc/Player/Player.tscn",
    "chars": 3597,
    "preview": "[gd_scene load_steps=20 format=3 uid=\"uid://dsfivcktd8k5d\"]\n\n[ext_resource type=\"Script\" path=\"res://Misc/Player/Player."
  },
  {
    "path": "lorien/Misc/Settings.gd",
    "chars": 4126,
    "preview": "extends Node\n\n# -------------------------------------------------------------------------------------------------\nconst "
  },
  {
    "path": "lorien/Misc/StatePersistence.gd",
    "chars": 1685,
    "preview": "extends Node\n\n# -------------------------------------------------------------------------------------------------\nconst "
  },
  {
    "path": "lorien/Misc/SvgExporter.gd",
    "chars": 3037,
    "preview": "class_name SvgExporter\nextends RefCounted\n\n# TODOs\n# - Stroke width / pressue data\n\n# ----------------------------------"
  },
  {
    "path": "lorien/Misc/Types.gd",
    "chars": 1164,
    "preview": "extends Node\nclass_name Types\n\n# ---------------------------------------------------------------------------------------"
  },
  {
    "path": "lorien/Misc/Utils.gd",
    "chars": 5013,
    "preview": "extends Node\n\n# -------------------------------------------------------------------------------------------------\nconst "
  },
  {
    "path": "lorien/Palette/Palette.gd",
    "chars": 150,
    "preview": "class_name Palette\nextends Resource\n\n@export var name: String\n@export var uuid: String\n@export var builtin: bool\n@export"
  },
  {
    "path": "lorien/Palette/PaletteManager.gd",
    "chars": 4876,
    "preview": "extends Node\n\n# -------------------------------------------------------------------------------------------------\nconst "
  },
  {
    "path": "lorien/Palette/default_palette.tres",
    "chars": 574,
    "preview": "[gd_resource type=\"Resource\" load_steps=2 format=2]\n\n[ext_resource path=\"res://Palette/Palette.gd\" type=\"Script\" id=1]\n\n"
  },
  {
    "path": "lorien/ProjectManager/Project.gd",
    "chars": 1830,
    "preview": "class_name Project\n\n# Emitted whenever something marks the project as dirty, even if it's already dirty.\nsignal dirtied\n"
  },
  {
    "path": "lorien/ProjectManager/ProjectManager.gd",
    "chars": 4309,
    "preview": "extends Node\n\n# -------------------------------------------------------------------------------------------------\nsignal"
  },
  {
    "path": "lorien/ProjectManager/ProjectMetadata.gd",
    "chars": 1122,
    "preview": "extends Node\n\n# -------------------------------------------------------------------------------------------------\nconst "
  },
  {
    "path": "lorien/ProjectManager/Serializer.gd",
    "chars": 4563,
    "preview": "class_name Serializer\n\n# TODO: !IMPORTANT! all of this needs validation\n# TODO: !IMPORTANT! all of this needs validation"
  },
  {
    "path": "lorien/UI/ColorPalettePicker.gd",
    "chars": 8269,
    "preview": "class_name ColorPalettePicker\nextends PanelContainer\n\n# ----------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/ColorPalettePicker.tscn",
    "chars": 4047,
    "preview": "[gd_scene load_steps=11 format=3 uid=\"uid://dsxmmndtd4r2c\"]\n\n[ext_resource type=\"Theme\" uid=\"uid://u5qnpgxqykiv\" path=\"r"
  },
  {
    "path": "lorien/UI/Components/FlatTextureButton.gd",
    "chars": 2196,
    "preview": "class_name FlatTextureButton\nextends TextureButton\n\n# ------------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Components/KeybindItem.gd",
    "chars": 2373,
    "preview": "class_name KeybindItem\nextends HBoxContainer\n\n# ------------------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Components/KeybindItem.tscn",
    "chars": 635,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://ct7pvupldkei5\"]\n\n[ext_resource type=\"Script\" path=\"res://UI/Components/Keybin"
  },
  {
    "path": "lorien/UI/Components/PaletteButton.gd",
    "chars": 2436,
    "preview": "class_name PaletteButton\nextends Control\n\n# ----------------------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Components/PaletteButton.tscn",
    "chars": 1027,
    "preview": "[gd_scene load_steps=4 format=2]\n\n[ext_resource path=\"res://Assets/Textures/palette_button_outline.png\" type=\"Texture2D\""
  },
  {
    "path": "lorien/UI/Dialogs/AboutDialog.gd",
    "chars": 803,
    "preview": "class_name AboutDialog\nextends PanelContainer\n\n# -----------------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Dialogs/AboutDialog.tscn",
    "chars": 3649,
    "preview": "[gd_scene load_steps=5 format=3 uid=\"uid://dug4jmvhrb3t1\"]\n\n[ext_resource type=\"Theme\" uid=\"uid://u5qnpgxqykiv\" path=\"re"
  },
  {
    "path": "lorien/UI/Dialogs/AddKeyDialog.tscn",
    "chars": 3981,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://d37dx0p100hbv\"]\n\n[sub_resource type=\"GDScript\" id=\"GDScript_ljttw\"]\nscript/so"
  },
  {
    "path": "lorien/UI/Dialogs/AlertDialog.gd",
    "chars": 175,
    "preview": "extends AcceptDialog\n\n# ------------------------------------------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Dialogs/AlertDialog.tscn",
    "chars": 445,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://bi7pkm1cg1s4w\"]\n\n[ext_resource type=\"Theme\" uid=\"uid://u5qnpgxqykiv\" path=\"re"
  },
  {
    "path": "lorien/UI/Dialogs/DeletePaletteDialog.gd",
    "chars": 1519,
    "preview": "class_name DeletePaletteDialog\nextends MarginContainer\n\n# --------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Dialogs/DeletePaletteDialog.tscn",
    "chars": 1118,
    "preview": "[gd_scene load_steps=2 format=3 uid=\"uid://bl2x4yif2wrml\"]\n\n[ext_resource type=\"Script\" path=\"res://UI/Dialogs/DeletePal"
  },
  {
    "path": "lorien/UI/Dialogs/EditPaletteDialog.gd",
    "chars": 5389,
    "preview": "class_name EditPaletteDialog\nextends MarginContainer\n\n# ----------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Dialogs/EditPaletteDialog.tscn",
    "chars": 4756,
    "preview": "[gd_scene load_steps=5 format=3 uid=\"uid://6jilea2pwjuk\"]\n\n[ext_resource type=\"Script\" path=\"res://UI/Dialogs/EditPalett"
  },
  {
    "path": "lorien/UI/Dialogs/ExitDialog.tscn",
    "chars": 1147,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://by1hug8oa5vft\"]\n\n[ext_resource type=\"Script\" path=\"res://UI/Dialogs/UnsavedCh"
  },
  {
    "path": "lorien/UI/Dialogs/NewPaletteDialog.gd",
    "chars": 2174,
    "preview": "class_name NewPaletteDialog\nextends MarginContainer\n\n# -----------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Dialogs/NewPaletteDialog.tscn",
    "chars": 1167,
    "preview": "[gd_scene load_steps=2 format=3 uid=\"uid://jow4q8tm6qro\"]\n\n[ext_resource type=\"Script\" path=\"res://UI/Dialogs/NewPalette"
  },
  {
    "path": "lorien/UI/Dialogs/SettingsDialog.gd",
    "chars": 16552,
    "preview": "class_name SettingsDialog\nextends PanelContainer\n\n# --------------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Dialogs/SettingsDialog.tscn",
    "chars": 16733,
    "preview": "[gd_scene load_steps=6 format=3 uid=\"uid://cgs8d5y8yrwl0\"]\n\n[ext_resource type=\"Theme\" uid=\"uid://u5qnpgxqykiv\" path=\"re"
  },
  {
    "path": "lorien/UI/Dialogs/UnsavedChangesDialog.gd",
    "chars": 838,
    "preview": "class_name UnsavedChangesDialog\nextends PanelContainer\n\n# --------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Dialogs/UnsavedChangesDialog.tscn",
    "chars": 1384,
    "preview": "[gd_scene load_steps=4 format=3 uid=\"uid://ct2b6hxxjlc6h\"]\n\n[ext_resource type=\"Script\" path=\"res://UI/Dialogs/UnsavedCh"
  },
  {
    "path": "lorien/UI/MainMenu.gd",
    "chars": 3694,
    "preview": "class_name MainMenu\nextends PopupMenu\n\n# -------------------------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/MainMenu.tscn",
    "chars": 376,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://c41oe1lt7u6r8\"]\n\n[ext_resource type=\"Theme\" uid=\"uid://u5qnpgxqykiv\" path=\"re"
  },
  {
    "path": "lorien/UI/Menubar.gd",
    "chars": 3830,
    "preview": "class_name Menubar\nextends Panel\n\n# ------------------------------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Menubar.tscn",
    "chars": 2095,
    "preview": "[gd_scene load_steps=8 format=3 uid=\"uid://e4oiel4oqq0b\"]\n\n[ext_resource type=\"Theme\" uid=\"uid://u5qnpgxqykiv\" path=\"res"
  },
  {
    "path": "lorien/UI/Statusbar.gd",
    "chars": 2719,
    "preview": "extends Panel\nclass_name Statusbar\n\n# ----------------------------------------------------------------------------------"
  },
  {
    "path": "lorien/UI/Statusbar.tscn",
    "chars": 2224,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://bwer12t6vfkg1\"]\n\n[ext_resource type=\"Theme\" uid=\"uid://u5qnpgxqykiv\" path=\"re"
  },
  {
    "path": "lorien/UI/Themes/dark/tab_active.tres",
    "chars": 328,
    "preview": "[gd_resource type=\"StyleBoxFlat\" format=3 uid=\"uid://dtn7ehcyfik4a\"]\n\n[resource]\ncontent_margin_left = 8.0\ncontent_margi"
  },
  {
    "path": "lorien/UI/Themes/dark/tab_inactive.tres",
    "chars": 220,
    "preview": "[gd_resource type=\"StyleBoxFlat\" format=3 uid=\"uid://kdduww61cjw\"]\n\n[resource]\ncontent_margin_left = 8.0\ncontent_margin_"
  },
  {
    "path": "lorien/UI/Themes/dark/theme.tres",
    "chars": 889734,
    "preview": "[gd_resource type=\"Theme\" load_steps=28 format=4 uid=\"uid://u5qnpgxqykiv\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://bp"
  },
  {
    "path": "lorien/UI/Themes/dark/toolbar.tres",
    "chars": 131,
    "preview": "[gd_resource type=\"StyleBoxFlat\" format=3 uid=\"uid://bv2204gysvy56\"]\n\n[resource]\nbg_color = Color(0.207843, 0.211765, 0."
  },
  {
    "path": "lorien/UI/Themes/light/tab_active.tres",
    "chars": 328,
    "preview": "[gd_resource type=\"StyleBoxFlat\" format=3 uid=\"uid://df8d16wfmjt31\"]\n\n[resource]\ncontent_margin_left = 8.0\ncontent_margi"
  },
  {
    "path": "lorien/UI/Themes/light/tab_inactive.tres",
    "chars": 222,
    "preview": "[gd_resource type=\"StyleBoxFlat\" format=3 uid=\"uid://c1igpcht4hbro\"]\n\n[resource]\ncontent_margin_left = 8.0\ncontent_margi"
  },
  {
    "path": "lorien/UI/Themes/light/theme.tres",
    "chars": 889065,
    "preview": "[gd_resource type=\"Theme\" load_steps=27 format=4 uid=\"uid://cf4gyeqbly7p8\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://b"
  },
  {
    "path": "lorien/UI/Themes/light/toolbar.tres",
    "chars": 130,
    "preview": "[gd_resource type=\"StyleBoxFlat\" format=3 uid=\"uid://or8j03g5vd58\"]\n\n[resource]\nbg_color = Color(0.870588, 0.894118, 0.9"
  },
  {
    "path": "lorien/UI/Toolbar.gd",
    "chars": 10251,
    "preview": "extends ScrollContainer\nclass_name Toolbar\n\nsignal new_project\nsignal open_project(filepath: String)\nsignal save_project"
  },
  {
    "path": "lorien/UI/Toolbar.tscn",
    "chars": 8311,
    "preview": "[gd_scene load_steps=19 format=3 uid=\"uid://c0ral10lvpo7f\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://c4kv3i7fmom58\" pa"
  },
  {
    "path": "lorien/export_presets.cfg",
    "chars": 15606,
    "preview": "[preset.0]\n\nname=\"Linux\"\nplatform=\"Linux\"\nrunnable=true\nadvanced_options=false\ndedicated_server=false\ncustom_features=\"\""
  },
  {
    "path": "lorien/project.godot",
    "chars": 15243,
    "preview": "; Engine configuration file.\n; It's best edited using the editor UI and not directly,\n; since the parameters that go her"
  },
  {
    "path": "public/linux/com.github.mbrlabs.Lorien.desktop",
    "chars": 336,
    "preview": "[Desktop Entry]\nType=Application\nName=Lorien\nGenericName=Note Taking\nComment=Infinite canvas drawing/whiteboarding app\nC"
  },
  {
    "path": "public/linux/com.github.mbrlabs.Lorien.metainfo.xml",
    "chars": 1764,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component type=\"desktop-application\">\n  <id>com.github.mbrlabs.Lorien</id>\n\n  <n"
  },
  {
    "path": "public/linux/x-lorien-canvas.mimetype.xml",
    "chars": 322,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\">\n   <mim"
  }
]

// ... and 2 more files (download for full content)

About this extraction

This page contains the full source code of the mbrlabs/Lorien GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 179 files (2.2 MB), approximately 573.0k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!