Compare commits
163 Commits
Author | SHA1 | Date | |
---|---|---|---|
d86aa13668 | |||
cdd7a73813 | |||
3eac800771 | |||
a01c7c4bca | |||
c382671951 | |||
1e3d5e5129 | |||
22696e97f3 | |||
5d1ca70aef | |||
da0b10d43f | |||
3a1729556c | |||
b2c0d912a1 | |||
67453db87e | |||
6fde633b1a | |||
4b839233a3 | |||
d59fc6dc4a | |||
93571afa5c | |||
95042c4be3 | |||
aff11eb551 | |||
0bae4a44e7 | |||
bd0b210214 | |||
8e2a330557 | |||
e9012ccca8 | |||
e8f962494f | |||
9fc8f92e0f | |||
2056a7a200 | |||
73d09eecda | |||
c24f1e962e | |||
2c8822942f | |||
61ae5a3fcc | |||
def32e76f5 | |||
|
9e3f20dda2 | ||
|
8c85e39aaa | ||
|
2218bcc2db | ||
|
04c6ddf189 | ||
|
863a59fa6d | ||
|
35a95a9290 | ||
|
b43fbad07e | ||
|
d31245b724 | ||
|
9bbb52d413 | ||
|
e10f5327d8 | ||
|
c8eaf9ecd2 | ||
|
10a5b7d829 | ||
|
b14474bdbf | ||
|
2b94ed4077 | ||
|
b42bf6c6d2 | ||
|
48fd4ddb80 | ||
|
cc0afa07bd | ||
|
0038e85263 | ||
|
a46cd7d06e | ||
|
25484a876d | ||
|
1f483d5752 | ||
|
138c813c30 | ||
|
27aa6b14d1 | ||
|
2edb487de5 | ||
|
7e33700be5 | ||
|
05e800aebb | ||
|
cb08651f2f | ||
|
3124761ecd | ||
|
7e4e14eb0a | ||
|
6927573f52 | ||
|
ca4e18b0fd | ||
|
ab7a387635 | ||
|
8a3bf3ed4e | ||
|
a3192ce30b | ||
|
2cc8ce778f | ||
|
584452e118 | ||
|
194bd77103 | ||
|
eb550d7719 | ||
|
0912aaec00 | ||
|
a796516fb5 | ||
|
a9d0a1e1c2 | ||
|
a8acc28251 | ||
|
6331dd695b | ||
|
c9250fa989 | ||
|
ddea73e0a7 | ||
|
51b8fcf44c | ||
|
e0e64260fe | ||
|
3bd1b7b5ad | ||
|
cb7508ba47 | ||
|
6d709e6c73 | ||
|
bc97f46b78 | ||
|
75aaedf56b | ||
|
c1242cb160 | ||
|
f21b83321f | ||
|
6f483547f1 | ||
|
3c2ee96410 | ||
|
8454bf5f63 | ||
|
851409ec61 | ||
|
6c5e673a88 | ||
|
da8814f090 | ||
|
b770696bc4 | ||
|
a120ddc8f5 | ||
|
1cb324a674 | ||
|
5965161df7 | ||
|
a636be4115 | ||
|
d1432dfd4f | ||
|
07c53928d3 | ||
|
a326ff9de9 | ||
|
faccdcaf50 | ||
|
40a1c7f2ec | ||
|
1674456fbc | ||
|
5022ddf3a2 | ||
|
3a9cf072fb | ||
|
3785e44ad4 | ||
|
d4309adfad | ||
|
6076b056de | ||
|
5097c16a98 | ||
|
d0d9f66f65 | ||
|
29b3ccff4c | ||
|
709858b6cf | ||
|
0aa9ffbc11 | ||
|
59ac66641d | ||
|
7175a8385e | ||
|
276cc70dbc | ||
|
031b8a1430 | ||
|
c9f9744af9 | ||
|
365e0c0b18 | ||
|
e9dce7ad11 | ||
|
8ba98e17d6 | ||
|
96b564bb17 | ||
|
eab4d09281 | ||
|
7d7e27567b | ||
|
59ff3a1d6a | ||
|
61792868ee | ||
|
2515e39c2a | ||
|
69505abcd0 | ||
|
8a7e8d195c | ||
|
699f6a8920 | ||
|
c960869ed8 | ||
|
b5eea64718 | ||
|
b8e6179f94 | ||
|
6f88735e93 | ||
|
ff3dd2db0e | ||
|
7170ae4d20 | ||
|
ee76a8eb8b | ||
|
461796c5a9 | ||
|
492201b2d4 | ||
|
cbdccd2a52 | ||
|
11f1f443d4 | ||
|
6e4fcbb81c | ||
|
281c76aa18 | ||
|
fad007a20f | ||
|
ebafc83344 | ||
|
69364806ec | ||
|
bba286d7c8 | ||
|
f35b82f323 | ||
|
93888656bb | ||
|
5b8002d2c3 | ||
|
7c0c14b2d5 | ||
|
c4b6bcf664 | ||
|
0820d9e6c1 | ||
|
6abbe3ec08 | ||
|
4f176a09be | ||
|
b6390b3ae2 | ||
|
0675c67673 | ||
|
1b033859ef | ||
|
44171b6378 | ||
|
360a8b961b | ||
|
b7b871a6ff | ||
|
fc71a261c2 | ||
|
fa75cc6968 | ||
|
909d2a670d | ||
|
cfcfd35303 |
32
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: "[BUG]"
|
||||||
|
labels: bug
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
**Desktop (please complete the following information):**
|
||||||
|
- OS: [e.g. Windows]
|
||||||
|
- Godot Engine Version [e.g. 3.2.3rc6]
|
||||||
|
- Plugin Version [e.g. v1.7.0]
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: "[FEATURE]"
|
||||||
|
labels: enhancement
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe an implementation suggestion**
|
||||||
|
A clear and concise description of any implementation method you'd like to suggest. It may be technical or just theoretical.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
26
.gitignore
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Godot-specific ignores
|
||||||
|
.import/
|
||||||
|
scn/
|
||||||
|
.import
|
||||||
|
default_env.tres
|
||||||
|
icon.png
|
||||||
|
icon.png.import
|
||||||
|
project.godot
|
||||||
|
|
||||||
|
# Imported translations (automatically generated from CSV files)
|
||||||
|
*.translation
|
||||||
|
|
||||||
|
# Mono-specific ignores
|
||||||
|
.mono/
|
||||||
|
data_*/
|
||||||
|
mono_crash.*.json
|
||||||
|
|
||||||
|
# System/tool-specific ignores
|
||||||
|
.directory
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Plugin specific ignores
|
||||||
|
icons.pngs/
|
||||||
|
fonts/
|
||||||
|
file.samples/
|
||||||
|
icon.png
|
22
LICENSE
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 fenix-hub
|
||||||
|
Copyright (c) 2022 Péter Magyar
|
||||||
|
|
||||||
|
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.
|
3
Node2D.tscn
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[gd_scene format=2]
|
||||||
|
|
||||||
|
[node name="Node2D" type="Node2D"]
|
31
README.md
@ -1,16 +1,21 @@
|
|||||||
Check my **[Discord](https://discord.gg/KnJGY9S)** to stay updated on this repository.
|
<p align="right">
|
||||||
*(Recommended since the AssetLibrary is not automatically updated)*
|
<a href="https://discord.gg/KnJGY9S">
|
||||||
|
<img src="https://github.com/fenix-hub/ColoredBadges/blob/master/svg/social/discord.svg" alt="react" style="vertical-align:top; margin:6px 4px">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
This plugin is now supported in [Godot Extended Libraries Discord](https://discord.gg/JNrcucg), check out the [Godot Extended Libraries Project](https://github.com/godot-extended-libraries)!
|
This plugin is now supported in [Godot Extended Library Discord](https://discord.gg/JNrcucg), check out the [Godot Extended Library Project](https://github.com/godot-extended-libraries)!
|
||||||
|
|
||||||
# Godot Text Editor
|
<img src="addons/file-editor/icon.png" width="64" height="64" align="left">
|
||||||
|
|
||||||
|
# Godot File Editor
|
||||||
A little plugin to easy-way manage your text files inside your project folder.
|
A little plugin to easy-way manage your text files inside your project folder.
|
||||||
|
|
||||||
Author: *"Nicolo (fenix) Santilio"*
|
Author: *"Nicolo (fenix) Santilio"*
|
||||||
Version: *1.4.3*
|
Version: *1.9.2*
|
||||||
Godot Version: *3.1.1-stable*
|
Godot Version: *3.3.4*
|
||||||
|
|
||||||
**This repository was pushed directly from Godot Engine Editor thanks to [GitHub Integration](https://github.com/fenix-hub/godot-engine.github-integration)!**
|
**This repository was pushed directly from Godot Engine Editor thanks to this [GitHub Integration](https://github.com/fenix-hub/godot-engine.github-integration)!**
|
||||||
|
|
||||||
## What is this?
|
## What is this?
|
||||||
This is a little plugin I've made to easily edit text files in your project folder.
|
This is a little plugin I've made to easily edit text files in your project folder.
|
||||||
@ -21,7 +26,8 @@ When opening / creating a file, the editor will open and you will be able to edi
|
|||||||
You can just *Save* the file, or *Save file As* a new file (if it is a new file but also to make some copies).
|
You can just *Save* the file, or *Save file As* a new file (if it is a new file but also to make some copies).
|
||||||
You will also be able to see some informations about the file you are editing (time and date of last edit) and you can set your editor to *Read Only* if you don't want to make changes but still read the content of the file.
|
You will also be able to see some informations about the file you are editing (time and date of last edit) and you can set your editor to *Read Only* if you don't want to make changes but still read the content of the file.
|
||||||
Multiple files can be opened in different tabs.
|
Multiple files can be opened in different tabs.
|
||||||

|
 
|
||||||
|
 
|
||||||
|
|
||||||
## How do I install it?
|
## How do I install it?
|
||||||
**Manual**
|
**Manual**
|
||||||
@ -49,15 +55,16 @@ You can find this plugin in the AssetLib of Godot Engine Editor. Just download i
|
|||||||
+ "*.html ; HyperText Markup Language"
|
+ "*.html ; HyperText Markup Language"
|
||||||
+ "*.cfg ; Configuration File"
|
+ "*.cfg ; Configuration File"
|
||||||
+ "*.ini ; Initialization File (same as .cfg Configuration File)"
|
+ "*.ini ; Initialization File (same as .cfg Configuration File)"
|
||||||
|
+ "*.csv ; Comma-separated values File"
|
||||||
|
+ "*.res ; Resource File"
|
||||||
|
|
||||||
#### Current version
|
#### Current version
|
||||||
To check all the features included in the current version, please read the [VERSION file](./VERSION.md)
|
To check all the features that are included in the current version, please read the [VERSION file](./VERSION.md)
|
||||||
|
|
||||||
#### Upcoming features
|
#### Upcoming features
|
||||||
To check all the features I'm currently working on, please read the ["To Do" Column](https://github.com/fenix-hub/godot-engine.text-editor/projects/1#column-6702439)
|
To check all the features I'm currently working on, please read the [TODO file](./TODO.md)
|
||||||
|
|
||||||
# Disclaimer
|
# Disclaimer
|
||||||
This addon was built for a **personal use** intention. It was released as an open source plugin in the hope that it could be useful to the Godot Engine Community.
|
This addon was built for the intention of my **personal use**. It was released as an open source plugin in the hope that it could be useful to the Godot Engine Community.
|
||||||
As a "work in progress" project, there is *no warranty* for any eventual issue and bug that may broke your project.
|
As a "work in progress" project, there is *no warranty* for any eventual issue and bug that may broke your project.
|
||||||
I don't assume any responsibility for possible corruptions of your project files. It is always advisable to keep a copy of your files and check any changes.
|
I don't assume any responsibility for possible corruptions of your project files. It is always advisable to keep a copy of your files and check any changes.
|
||||||
|
|
||||||
|
87
VERSION.md
@ -1,87 +0,0 @@
|
|||||||
**version 0.0.1**
|
|
||||||
*added*
|
|
||||||
- Plugin Created
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.1.1**
|
|
||||||
*added*
|
|
||||||
- "Create new File" option
|
|
||||||
- "Open File" option
|
|
||||||
- "Delete File" option
|
|
||||||
- "Save File" option
|
|
||||||
- "Save File As.." option
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.1.2**
|
|
||||||
*fixed*
|
|
||||||
- Repository Installation, folder order
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.2.5**
|
|
||||||
*removed*
|
|
||||||
- Old layout
|
|
||||||
|
|
||||||
*added*
|
|
||||||
- New Layout
|
|
||||||
- Last modified time and date
|
|
||||||
- Tabs
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.3.1**
|
|
||||||
*added*
|
|
||||||
- Version check
|
|
||||||
- Preview support
|
|
||||||
- Context menu in editor
|
|
||||||
- BBCode converter
|
|
||||||
- Light Mardkwon converter (DEMO)
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 1.2.1**
|
|
||||||
*removed*
|
|
||||||
- Old layout, the plugin won't appear in docs
|
|
||||||
- Icons file extensions, plugin size reduced
|
|
||||||
- Old Mardkwon preview method
|
|
||||||
|
|
||||||
*added*
|
|
||||||
- More supported files
|
|
||||||
1. "*.dat ; Data File",
|
|
||||||
2. "*.xml ; XML File",
|
|
||||||
3. "*.sql ; SQL database file",
|
|
||||||
4. "*.json ; JavaScript Object Notation File",
|
|
||||||
5. "*.html ; HyperText Markup Language
|
|
||||||
- New Markdown preview method ( Markdown -> BBCode converter)
|
|
||||||
- New HTML preview method ( HTML -> BBCode converter)
|
|
||||||
- New Plugin Layout: a new ButtonTool "File" in you TopBar will appear
|
|
||||||
- Error check
|
|
||||||
- Message popups for closing unsaved files
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 1.4.3**
|
|
||||||
*removed*
|
|
||||||
- Old layout
|
|
||||||
|
|
||||||
*added*
|
|
||||||
- More supported files:
|
|
||||||
1. "*.cfg ; Configuration File",
|
|
||||||
2. "*.ini ; Initialization File (same as .cfg Configuration File)",
|
|
||||||
- Added some sample files
|
|
||||||
- Memorize system of last opened files
|
|
||||||
- Added *Editor* button , you can now choose which editor to use:
|
|
||||||
1. Vanilla Editor (simple text editor)
|
|
||||||
2. Cfg/Ini Editor (table editor for Cfg/Ini files)
|
|
||||||
Editors are automatically updated, so if you update a cfg/ini file in the Vanilla Editor it will be updated in the Cfg/Ini Editor, and viceversa
|
|
||||||
- Added editor shorcuts:
|
|
||||||
1. *Ctrl + N* (new file)
|
|
||||||
2. *Ctrl + O* (open file)
|
|
||||||
3. *Ctrl + Alt + C* (close file)
|
|
||||||
4. *Ctrl + S* (save file)
|
|
||||||
5. *Ctrl + Alt + S* (save file as...)
|
|
||||||
6. *Ctrl + D* (delete file)
|
|
||||||
7. *Ctrl + 1* (Vanilla Editor)
|
|
||||||
8. *Ctrl + 3* (Cfg/Ini Editor)
|
|
@ -1,63 +0,0 @@
|
|||||||
Check my **[Discord](https://discord.gg/KnJGY9S)** to stay updated on this repository.
|
|
||||||
*(Recommended since the AssetLibrary is not automatically updated)*
|
|
||||||
|
|
||||||
This plugin is now supported in [Godot Extended Library Discord](https://discord.gg/JNrcucg), check out the [Godot Extended Library Project](https://github.com/godot-extended-libraries)!
|
|
||||||
|
|
||||||
# Godot Text Editor
|
|
||||||
A little plugin to easy-way manage your text files inside your project folder.
|
|
||||||
|
|
||||||
Author: *"Nicolo (fenix) Santilio"*
|
|
||||||
Version: *1.4.3*
|
|
||||||
Godot Version: *3.1.1-stable*
|
|
||||||
|
|
||||||
**This repository was pushed directly from Godot Engine Editor thanks to [GitHub Integration](https://github.com/fenix-hub/godot-engine.github-integration)!**
|
|
||||||
|
|
||||||
## What is this?
|
|
||||||
This is a little plugin I've made to easily edit text files in your project folder.
|
|
||||||
|
|
||||||
## How does it work?
|
|
||||||
You can open an existing file, create a new file and delete a file.
|
|
||||||
When opening / creating a file, the editor will open and you will be able to edit it and save it.
|
|
||||||
You can just *Save* the file, or *Save file As* a new file (if it is a new file but also to make some copies).
|
|
||||||
You will also be able to see some informations about the file you are editing (time and date of last edit) and you can set your editor to *Read Only* if you don't want to make changes but still read the content of the file.
|
|
||||||
Multiple files can be opened in different tabs.
|
|
||||||

|
|
||||||
|
|
||||||
## How do I install it?
|
|
||||||
**Manual**
|
|
||||||
Just download this whole repository and put it in your `res://addons` folder inside the project you want to work on.
|
|
||||||
Then, go to `Project > Plugins > "File Editor" > Status > Activate`.
|
|
||||||
|
|
||||||
**Automatic**
|
|
||||||
You can find this plugin in the AssetLib of Godot Engine Editor. Just download it from there and everything should be fine!
|
|
||||||
(Remember to activate this plugin)
|
|
||||||
|
|
||||||
## Supported formats
|
|
||||||
+ "*.txt ; Plain Text File",
|
|
||||||
+ "*.rtf ; Rich Text Format File",
|
|
||||||
+ "*.log ; Log File",
|
|
||||||
+ "*.md ; MD File",
|
|
||||||
+ "*.doc ; WordPad Document",
|
|
||||||
+ "*.doc ; Microsoft Word Document",
|
|
||||||
+ "*.docm ; Word Open XML Macro-Enabled Document",
|
|
||||||
+ "*.docx ; Microsoft Word Open XML Document",
|
|
||||||
+ "*.bbs ; Bulletin Board System Text",
|
|
||||||
+ "*.dat ; Data File",
|
|
||||||
+ "*.xml ; XML File",
|
|
||||||
+ "*.sql ; SQL database file",
|
|
||||||
+ "*.json ; JavaScript Object Notation File",
|
|
||||||
+ "*.html ; HyperText Markup Language"
|
|
||||||
+ "*.cfg ; Configuration File"
|
|
||||||
+ "*.ini ; Initialization File (same as .cfg Configuration File)"
|
|
||||||
|
|
||||||
#### Current version
|
|
||||||
To check all the features included in the current version, please read the [VERSION file](./VERSION.md)
|
|
||||||
|
|
||||||
#### Upcoming features
|
|
||||||
To check all the features I'm currently working on, please read the [TODO file](./TODO.md)
|
|
||||||
|
|
||||||
# Disclaimer
|
|
||||||
This addon was built for a **personal use** intention. It was released as an open source plugin in the hope that it could be useful to the Godot Engine Community.
|
|
||||||
As a "work in progress" project, there is *no warranty* for any eventual issue and bug that may broke your project.
|
|
||||||
I don't assume any responsibility for possible corruptions of your project files. It is always advisable to keep a copy of your files and check any changes.
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
|||||||
**version 0.0.1**
|
|
||||||
*added*
|
|
||||||
- Plugin Created
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.1.1**
|
|
||||||
*added*
|
|
||||||
- "Create new File" option
|
|
||||||
- "Open File" option
|
|
||||||
- "Delete File" option
|
|
||||||
- "Save File" option
|
|
||||||
- "Save File As.." option
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.1.2**
|
|
||||||
*fixed*
|
|
||||||
- Repository Installation, folder order
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.2.5**
|
|
||||||
*removed*
|
|
||||||
- Old layout
|
|
||||||
|
|
||||||
*added*
|
|
||||||
- New Layout
|
|
||||||
- Last modified time and date
|
|
||||||
- Tabs
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.3.1**
|
|
||||||
*added*
|
|
||||||
- Version check
|
|
||||||
- Preview support
|
|
||||||
- Context menu in editor
|
|
||||||
- BBCode converter
|
|
||||||
- Light Mardkwon converter (DEMO)
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 1.2.1**
|
|
||||||
*removed*
|
|
||||||
- Old layout, the plugin won't appear in docs
|
|
||||||
- Icons file extensions, plugin size reduced
|
|
||||||
- Old Mardkwon preview method
|
|
||||||
|
|
||||||
*added*
|
|
||||||
- More supported files
|
|
||||||
1. "*.dat ; Data File",
|
|
||||||
2. "*.xml ; XML File",
|
|
||||||
3. "*.sql ; SQL database file",
|
|
||||||
4. "*.json ; JavaScript Object Notation File",
|
|
||||||
5. "*.html ; HyperText Markup Language
|
|
||||||
- New Markdown preview method ( Markdown -> BBCode converter)
|
|
||||||
- New HTML preview method ( HTML -> BBCode converter)
|
|
||||||
- New Plugin Layout: a new ButtonTool "File" in you TopBar will appear
|
|
||||||
- Error check
|
|
||||||
- Message popups for closing unsaved files
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 1.4.3**
|
|
||||||
*removed*
|
|
||||||
- Old layout
|
|
||||||
|
|
||||||
*added*
|
|
||||||
- More supported files:
|
|
||||||
1. "*.cfg ; Configuration File",
|
|
||||||
2. "*.ini ; Initialization File (same as .cfg Configuration File)",
|
|
||||||
- Added some sample files
|
|
||||||
- Memorize system of last opened files
|
|
||||||
- Added *Editor* button , you can now choose which editor to use:
|
|
||||||
1. Vanilla Editor (simple text editor)
|
|
||||||
2. Cfg/Ini Editor (table editor for Cfg/Ini files)
|
|
||||||
Editors are automatically updated, so if you update a cfg/ini file in the Vanilla Editor it will be updated in the Cfg/Ini Editor, and viceversa
|
|
||||||
- Added editor shorcuts:
|
|
||||||
1. *Ctrl + N* (new file)
|
|
||||||
2. *Ctrl + O* (open file)
|
|
||||||
3. *Ctrl + Alt + C* (close file)
|
|
||||||
4. *Ctrl + S* (save file)
|
|
||||||
5. *Ctrl + Alt + S* (save file as...)
|
|
||||||
6. *Ctrl + D* (delete file)
|
|
||||||
7. *Ctrl + 1* (Vanilla Editor)
|
|
||||||
8. *Ctrl + 3* (Cfg/Ini Editor)
|
|
@ -1,63 +0,0 @@
|
|||||||
Check my **[Discord](https://discord.gg/KnJGY9S)** to stay updated on this repository.
|
|
||||||
*(Recommended since the AssetLibrary is not automatically updated)*
|
|
||||||
|
|
||||||
This plugin is now supported in [Godot Extended Library Discord](https://discord.gg/JNrcucg), check out the [Godot Extended Library Project](https://github.com/godot-extended-libraries)!
|
|
||||||
|
|
||||||
# Godot Text Editor
|
|
||||||
A little plugin to easy-way manage your text files inside your project folder.
|
|
||||||
|
|
||||||
Author: *"Nicolo (fenix) Santilio"*
|
|
||||||
Version: *1.4.3*
|
|
||||||
Godot Version: *3.1.1-stable*
|
|
||||||
|
|
||||||
**This repository was pushed directly from Godot Engine Editor thanks to [GitHub Integration](https://github.com/fenix-hub/godot-engine.github-integration)!**
|
|
||||||
|
|
||||||
## What is this?
|
|
||||||
This is a little plugin I've made to easily edit text files in your project folder.
|
|
||||||
|
|
||||||
## How does it work?
|
|
||||||
You can open an existing file, create a new file and delete a file.
|
|
||||||
When opening / creating a file, the editor will open and you will be able to edit it and save it.
|
|
||||||
You can just *Save* the file, or *Save file As* a new file (if it is a new file but also to make some copies).
|
|
||||||
You will also be able to see some informations about the file you are editing (time and date of last edit) and you can set your editor to *Read Only* if you don't want to make changes but still read the content of the file.
|
|
||||||
Multiple files can be opened in different tabs.
|
|
||||||

|
|
||||||
|
|
||||||
## How do I install it?
|
|
||||||
**Manual**
|
|
||||||
Just download this whole repository and put it in your `res://addons` folder inside the project you want to work on.
|
|
||||||
Then, go to `Project > Plugins > "File Editor" > Status > Activate`.
|
|
||||||
|
|
||||||
**Automatic**
|
|
||||||
You can find this plugin in the AssetLib of Godot Engine Editor. Just download it from there and everything should be fine!
|
|
||||||
(Remember to activate this plugin)
|
|
||||||
|
|
||||||
## Supported formats
|
|
||||||
+ "*.txt ; Plain Text File",
|
|
||||||
+ "*.rtf ; Rich Text Format File",
|
|
||||||
+ "*.log ; Log File",
|
|
||||||
+ "*.md ; MD File",
|
|
||||||
+ "*.doc ; WordPad Document",
|
|
||||||
+ "*.doc ; Microsoft Word Document",
|
|
||||||
+ "*.docm ; Word Open XML Macro-Enabled Document",
|
|
||||||
+ "*.docx ; Microsoft Word Open XML Document",
|
|
||||||
+ "*.bbs ; Bulletin Board System Text",
|
|
||||||
+ "*.dat ; Data File",
|
|
||||||
+ "*.xml ; XML File",
|
|
||||||
+ "*.sql ; SQL database file",
|
|
||||||
+ "*.json ; JavaScript Object Notation File",
|
|
||||||
+ "*.html ; HyperText Markup Language"
|
|
||||||
+ "*.cfg ; Configuration File"
|
|
||||||
+ "*.ini ; Initialization File (same as .cfg Configuration File)"
|
|
||||||
|
|
||||||
#### Current version
|
|
||||||
To check all the features included in the current version, please read the [VERSION file](./VERSION.md)
|
|
||||||
|
|
||||||
#### Upcoming features
|
|
||||||
To check all the features I'm currently working on, please read the [TODO file](./TODO.md)
|
|
||||||
|
|
||||||
# Disclaimer
|
|
||||||
This addon was built for a **personal use** intention. It was released as an open source plugin in the hope that it could be useful to the Godot Engine Community.
|
|
||||||
As a "work in progress" project, there is *no warranty* for any eventual issue and bug that may broke your project.
|
|
||||||
I don't assume any responsibility for possible corruptions of your project files. It is always advisable to keep a copy of your files and check any changes.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
### to do (v-0.x.x)
|
|
||||||
- Popup dialog when closing a tab if there is new content
|
|
||||||
- Module for markdown support/conversion
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
|||||||
**version 0.0.1**
|
|
||||||
*added*
|
|
||||||
- Plugin Created
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.1.1**
|
|
||||||
*added*
|
|
||||||
- "Create new File" option
|
|
||||||
- "Open File" option
|
|
||||||
- "Delete File" option
|
|
||||||
- "Save File" option
|
|
||||||
- "Save File As.." option
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.1.2**
|
|
||||||
*fixed*
|
|
||||||
- Repository Installation, folder order
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.2.5**
|
|
||||||
*removed*
|
|
||||||
- Old layout
|
|
||||||
|
|
||||||
*added*
|
|
||||||
- New Layout
|
|
||||||
- Last modified time and date
|
|
||||||
- Tabs
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 0.3.1**
|
|
||||||
*added*
|
|
||||||
- Version check
|
|
||||||
- Preview support
|
|
||||||
- Context menu in editor
|
|
||||||
- BBCode converter
|
|
||||||
- Light Mardkwon converter (DEMO)
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 1.2.1**
|
|
||||||
*removed*
|
|
||||||
- Old layout, the plugin won't appear in docs
|
|
||||||
- Icons file extensions, plugin size reduced
|
|
||||||
- Old Mardkwon preview method
|
|
||||||
|
|
||||||
*added*
|
|
||||||
- More supported files
|
|
||||||
1. "*.dat ; Data File",
|
|
||||||
2. "*.xml ; XML File",
|
|
||||||
3. "*.sql ; SQL database file",
|
|
||||||
4. "*.json ; JavaScript Object Notation File",
|
|
||||||
5. "*.html ; HyperText Markup Language
|
|
||||||
- New Markdown preview method ( Markdown -> BBCode converter)
|
|
||||||
- New HTML preview method ( HTML -> BBCode converter)
|
|
||||||
- New Plugin Layout: a new ButtonTool "File" in you TopBar will appear
|
|
||||||
- Error check
|
|
||||||
- Message popups for closing unsaved files
|
|
||||||
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
**version 1.4.3**
|
|
||||||
*removed*
|
|
||||||
- Old layout
|
|
||||||
|
|
||||||
*added*
|
|
||||||
- More supported files:
|
|
||||||
1. "*.cfg ; Configuration File",
|
|
||||||
2. "*.ini ; Initialization File (same as .cfg Configuration File)",
|
|
||||||
- Added some sample files
|
|
||||||
- Memorize system of last opened files
|
|
||||||
- Added *Editor* button , you can now choose which editor to use:
|
|
||||||
1. Vanilla Editor (simple text editor)
|
|
||||||
2. Cfg/Ini Editor (table editor for Cfg/Ini files)
|
|
||||||
Editors are automatically updated, so if you update a cfg/ini file in the Vanilla Editor it will be updated in the Cfg/Ini Editor, and viceversa
|
|
||||||
- Added editor shorcuts:
|
|
||||||
1. *Ctrl + N* (new file)
|
|
||||||
2. *Ctrl + O* (open file)
|
|
||||||
3. *Ctrl + Alt + C* (close file)
|
|
||||||
4. *Ctrl + S* (save file)
|
|
||||||
5. *Ctrl + Alt + S* (save file as...)
|
|
||||||
6. *Ctrl + D* (delete file)
|
|
||||||
7. *Ctrl + 1* (Vanilla Editor)
|
|
||||||
8. *Ctrl + 3* (Cfg/Ini Editor)
|
|
@ -4,5 +4,13 @@
|
|||||||
[s]strikethrough text[/s]
|
[s]strikethrough text[/s]
|
||||||
[url]https://en.wikipedia.org[/url]
|
[url]https://en.wikipedia.org[/url]
|
||||||
[url=https://en.wikipedia.org]English Wikipedia[/url]
|
[url=https://en.wikipedia.org]English Wikipedia[/url]
|
||||||
|
[img]res://addons/file-editor/icon.png[/img]
|
||||||
[code]monospaced text[/code]
|
[code]monospaced text[/code]
|
||||||
left [center]center[/center] [right]right[/right]
|
left [center]center[/center] [right]right[/right]
|
||||||
|
[center][wave amp=50 freq=10]oooooondaaaaaaaaa[/wave][/center]
|
||||||
|
[center][tornado amp=50 freq=10 radius=5]tornaaaaaadoooooo[/tornado][/center]
|
||||||
|
[center][shake rate=15 level=10]scossa[/shake][/center]
|
||||||
|
[center][fade start=4 length=14]Effetto fantasmaaaaaa[/fade][/center]
|
||||||
|
[center][rainbow freq=4 sat=10 val=100]Arcobaleno![/rainbow][/center]
|
||||||
|
[center][pulse freq=6.0 height=5.0][pulse color=#00FFAA freq=2.0]Questo è un codice custom![/pulse][/pulse][/center]
|
||||||
|
*Some md text in bb file*
|
||||||
|
@ -1,19 +1,9 @@
|
|||||||
[Locale]
|
; last modified 1 April 2001 by John Doe
|
||||||
Language="en"
|
[owner]
|
||||||
[Version]
|
name="John Doe"
|
||||||
Major="2"
|
organization="Acme Widgets Inc."
|
||||||
Minor="1"
|
[database]
|
||||||
Micro="3"
|
; use IP address in case network name resolution is not working
|
||||||
[Directories]
|
server="192.0.2.62"
|
||||||
TempDir="C:\Users\Jon\AppData\Local\Audacity\SessionData"
|
port="143"
|
||||||
[AudioIO]
|
file="payroll.dat"
|
||||||
RecordingDevice="Microphone (Blue Snowball)"
|
|
||||||
Host="MME"
|
|
||||||
PlaybackDevice="Speakers / Headphones (Realtek)"
|
|
||||||
EffectsPreviewLen="6"
|
|
||||||
CutPreviewBeforeLen="2"
|
|
||||||
CutPreviewAfterLen="1"
|
|
||||||
SeekShortPeriod="1"
|
|
||||||
SeekLongPeriod="15"
|
|
||||||
Duplex="1"
|
|
||||||
SWPlaythrough="0"
|
|
||||||
|
19
addons/file-editor/file.samples/sample.csv
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
COLUMN 1; ;COLUMN2;COLUMN3;COLUMN5;COLUMN6;;;;;;;;;
|
||||||
|
this is a; ;csv file with empty spaces; ;-;NEW COLUMN;;;;;;;;;
|
||||||
|
anyway,;they are stored in; ;the file;-;F;;;;;;;;;
|
||||||
|
this;is a ;new;line;-;F;;;;;;;;;
|
||||||
|
line 5;and column 5;where created;with the editor;-;F;;;;;;;;;
|
||||||
|
-;-;-;-;-;F;;;;;;;;;
|
||||||
|
res;res;res;;F;e;;;;;;;;;
|
||||||
|
awew;aweawe;ewaewa;wwwwwwwwiiiiiiiii ;F;F;;;;;;;;;
|
||||||
|
ciao;ciao;;;F;F;;;;;;;;;
|
||||||
|
ciao;ciao;ciao;ciao;ciao;F;;;;;;;;;
|
||||||
|
NON;NE;VOGLIO;SAPERE;NIENTE;;;;;;;;;;
|
||||||
|
UFFA;UFFA;UFFA;NUFFA;;REFFA;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;
|
||||||
|
;;;;;;;;;;;;;;YES
|
|
3
addons/file-editor/file.samples/sample.csv.import
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="keep"
|
@ -1,7 +1,9 @@
|
|||||||
<b>bolded text</b>,
|
<b>bolded text</b>
|
||||||
<i>italicized text</i>,
|
<i>italicized text</i>
|
||||||
<ins>underlined text</ins>
|
<ins>insnderlined text</ins>
|
||||||
<del>strikethrough text</del>
|
<del>deltrikethroinsgh text</del>
|
||||||
<a href="https://en.wikipedia.org">English Wikipedia</a>
|
<a>httpdel://en.wikipedia.org</a>
|
||||||
<img src="res://addons/file-editor/icon.png"/>
|
<img src="res://addondel/file-editor/icon.png"/>
|
||||||
|
<a href=https://en.wikipedia.org>Englidelh Wikipedia</a>
|
||||||
|
<pre>monodelpaced text</pre>
|
||||||
|
left <center>center</center> <right>right</right>
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
; last modified 1 April 2001 by John Doe
|
|
||||||
[owner]
|
[owner]
|
||||||
name="John Doe"
|
name="John Doe"
|
||||||
organization="Acme Widgets Inc."
|
organization="Acme Widgets Inc."
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
; use IP address in case network name resolution is not working
|
|
||||||
server="192.0.2.62"
|
server="192.0.2.62"
|
||||||
port="143"
|
port="143"
|
||||||
file="payroll.dat"
|
file="payroll.dat"
|
||||||
|
[qqqq]
|
||||||
|
ewe="qq"
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
*italic*
|
**bolded text**
|
||||||
**bold**
|
*italicized text*
|
||||||
`monospace`
|
***bolded and italicized***
|
||||||
~~strikethrough~~
|
~~strikethrough~~
|
||||||
|
__underline__
|
||||||
|
> This is a quote
|
||||||
|
`this is some code`
|
||||||
[link](http://example.com)
|
[link](http://example.com)
|
||||||

|

|
||||||
|
|
||||||
Shopping list:
|
# header 1
|
||||||
- apples
|
## header 2
|
||||||
- oranges
|
### header 3
|
||||||
- pears
|
#### header 5
|
||||||
|
##### header 6
|
||||||
|
###### header7
|
||||||
|
1
addons/file-editor/file.samples/sample.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
This is a simple text file.
|
9
addons/file-editor/file.samples/translation.csv
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
keys;en;it;da;de;ja;es
|
||||||
|
HELLO;"""Hello!""";"""Ciao!""";"""Hej!""";"""Hallo!""";"""こんにちは!""";"""¡Hola!"""
|
||||||
|
BYE;"""Bye bye!""";"""Ciao ciao!""";"""Hej hej!""";"""Tschüss!""";"""バイバイ!""";"""¡Adiós!"""
|
||||||
|
GOODMORNING;"""Gooedmorning!""";"""Buongiorno!""";"""Gooedmorning!""";"""Guten Morgen!""";"""グーエドモーニング!""";"""¡Buen día!"""
|
||||||
|
CONFIRM;"""Confirm this action""";"""Conferma questa azione""";"""Bekræft denne handling""";"""Bestätigen Sie diese Aktion""";"""このアクションを確認します""";"""Confirma esta acción"""
|
||||||
|
CANCEL;"""Cancel this action""";"""Annulla questa azione""";"""Annuller denne handling""";"""Brechen Sie diese Aktion ab""";"""このアクションをキャンセルします""";"""Cancelar esta acción"""
|
||||||
|
YES;"""Yes, please""";"""Sì grazie""";"""Ja tak""";"""Ja bitte""";"""はい、お願いします""";"""Sí por favor"""
|
||||||
|
NO;"""No, thanks""";"""No grazie""";"""Nej tak""";"""Nein Danke""";"""結構です""";"""No, gracias"""
|
||||||
|
q;ds;q;q;q;w;q
|
|
3
addons/file-editor/file.samples/translation.csv.import
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="keep"
|
@ -28,6 +28,7 @@ process/fix_alpha_border=true
|
|||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/HDR_as_SRGB=false
|
process/HDR_as_SRGB=false
|
||||||
process/invert_color=false
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
stream=false
|
stream=false
|
||||||
size_limit=0
|
size_limit=0
|
||||||
detect_3d=true
|
detect_3d=true
|
||||||
|
BIN
addons/file-editor/icons.pngs/align.png.buttonicon
Normal file
After Width: | Height: | Size: 195 B |
BIN
addons/file-editor/icons.pngs/column.png.buttonicon
Normal file
After Width: | Height: | Size: 146 B |
BIN
addons/file-editor/icons.pngs/delimiter.png.buttonicon
Normal file
After Width: | Height: | Size: 283 B |
BIN
addons/file-editor/icons.pngs/drop_column.png.buttonicon
Normal file
After Width: | Height: | Size: 146 B |
BIN
addons/file-editor/icons.pngs/drop_row.png.buttonicon
Normal file
After Width: | Height: | Size: 150 B |
BIN
addons/file-editor/icons.pngs/row.png.buttonicon
Normal file
After Width: | Height: | Size: 150 B |
BIN
addons/file-editor/icons.pngs/settings.png.buttonicon
Normal file
After Width: | Height: | Size: 524 B |
BIN
addons/file-editor/icons.pngs/text-center.png.buttonicon
Normal file
After Width: | Height: | Size: 156 B |
BIN
addons/file-editor/icons.pngs/text-fill.png.buttonicon
Normal file
After Width: | Height: | Size: 142 B |
BIN
addons/file-editor/icons.pngs/text-left.png.buttonicon
Normal file
After Width: | Height: | Size: 154 B |
BIN
addons/file-editor/icons.pngs/text-right.png.buttonicon
Normal file
After Width: | Height: | Size: 154 B |
BIN
addons/file-editor/icons.pngs/tools.png.buttonicon
Normal file
After Width: | Height: | Size: 439 B |
BIN
addons/file-editor/icons.pngs/translate.png.buttonicon
Normal file
After Width: | Height: | Size: 462 B |
@ -1,4 +1,8 @@
|
|||||||
[Opened]
|
[Opened]
|
||||||
|
|
||||||
VERSION.md="res://addons/file-editor/VERSION.md"
|
translation.csv="res://addons/file-editor/file.samples/translation.csv"
|
||||||
README.md="res://addons/file-editor/README.md"
|
sample.bbs="res://addons/file-editor/file.samples/sample.bbs"
|
||||||
|
sample.cfg="res://addons/file-editor/file.samples/sample.cfg"
|
||||||
|
sample.ini="res://addons/file-editor/file.samples/sample.ini"
|
||||||
|
README.md="res://README.md"
|
||||||
|
VERSION.md="res://VERSION.md"
|
||||||
|
@ -3,5 +3,5 @@
|
|||||||
name="File Editor"
|
name="File Editor"
|
||||||
description="An internal file editor to view and edit text files in your project folder."
|
description="An internal file editor to view and edit text files in your project folder."
|
||||||
author="Nicolo 'fenix' Santilio"
|
author="Nicolo 'fenix' Santilio"
|
||||||
version="1.4.3"
|
version="1.9.0"
|
||||||
script="scripts/file-editor.gd"
|
script="scripts/file-editor.gd"
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
[gd_scene load_steps=20 format=2]
|
[gd_scene load_steps=15 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/file-editor/scripts/FileEditor.gd" type="Script" id=1]
|
[ext_resource path="res://addons/file-editor/scripts/FileEditor.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://addons/file-editor/fonts/Roboto-Black.ttf" type="DynamicFontData" id=2]
|
|
||||||
[ext_resource path="res://addons/file-editor/scenes/VanillaEditor.tscn" type="PackedScene" id=3]
|
|
||||||
[ext_resource path="res://addons/file-editor/scenes/IniEditor.tscn" type="PackedScene" id=4]
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=16]
|
[sub_resource type="Image" id=41]
|
||||||
data = {
|
data = {
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@ -14,41 +11,11 @@ data = {
|
|||||||
"width": 16
|
"width": 16
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=3]
|
[sub_resource type="ImageTexture" id=30]
|
||||||
image = SubResource( 16 )
|
image = SubResource( 41 )
|
||||||
size = Vector2( 16, 16 )
|
size = Vector2( 16, 16 )
|
||||||
|
|
||||||
[sub_resource type="Image" id=17]
|
[sub_resource type="Image" id=42]
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 175, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 175, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 239, 224, 224, 224, 239, 224, 224, 224, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 80, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
|
||||||
"format": "RGBA8",
|
|
||||||
"height": 16,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 16
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=5]
|
|
||||||
image = SubResource( 17 )
|
|
||||||
size = Vector2( 16, 16 )
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=18]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 80, 224, 224, 224, 206, 224, 224, 224, 238, 224, 224, 224, 238, 224, 224, 224, 174, 224, 224, 224, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 48, 224, 224, 224, 206, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 206, 224, 224, 224, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 48, 224, 224, 224, 238, 224, 224, 224, 254, 224, 224, 224, 206, 224, 224, 224, 112, 224, 224, 224, 16, 224, 224, 224, 16, 224, 224, 224, 80, 224, 224, 224, 222, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 206, 224, 224, 224, 254, 224, 224, 224, 222, 224, 224, 224, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 206, 224, 224, 224, 254, 224, 224, 224, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 96, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 96, 0, 0, 0, 0, 224, 224, 224, 64, 224, 224, 224, 206, 224, 224, 224, 222, 224, 224, 224, 64, 0, 0, 0, 0, 224, 224, 224, 96, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 206, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 32, 0, 0, 0, 0, 224, 224, 224, 222, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 222, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 16, 0, 0, 0, 0, 224, 224, 224, 222, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 222, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 126, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 96, 0, 0, 0, 0, 224, 224, 224, 64, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 96, 0, 0, 0, 0, 224, 224, 224, 80, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 126, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 222, 224, 224, 224, 254, 224, 224, 224, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 190, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 48, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 206, 224, 224, 224, 96, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 64, 224, 224, 224, 206, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 48, 224, 224, 224, 222, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 112, 224, 224, 224, 206, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 206, 224, 224, 224, 126, 224, 224, 224, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
|
||||||
"format": "RGBA8",
|
|
||||||
"height": 16,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 16
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=7]
|
|
||||||
image = SubResource( 18 )
|
|
||||||
size = Vector2( 16, 16 )
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=1]
|
|
||||||
size = 13
|
|
||||||
font_data = ExtResource( 2 )
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=19]
|
|
||||||
data = {
|
data = {
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@ -57,11 +24,11 @@ data = {
|
|||||||
"width": 16
|
"width": 16
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=9]
|
[sub_resource type="ImageTexture" id=32]
|
||||||
image = SubResource( 19 )
|
image = SubResource( 42 )
|
||||||
size = Vector2( 16, 16 )
|
size = Vector2( 16, 16 )
|
||||||
|
|
||||||
[sub_resource type="Image" id=20]
|
[sub_resource type="Image" id=43]
|
||||||
data = {
|
data = {
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@ -70,11 +37,11 @@ data = {
|
|||||||
"width": 16
|
"width": 16
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=11]
|
[sub_resource type="ImageTexture" id=34]
|
||||||
image = SubResource( 20 )
|
image = SubResource( 43 )
|
||||||
size = Vector2( 16, 16 )
|
size = Vector2( 16, 16 )
|
||||||
|
|
||||||
[sub_resource type="Image" id=21]
|
[sub_resource type="Image" id=44]
|
||||||
data = {
|
data = {
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@ -83,11 +50,11 @@ data = {
|
|||||||
"width": 16
|
"width": 16
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=13]
|
[sub_resource type="ImageTexture" id=36]
|
||||||
image = SubResource( 21 )
|
image = SubResource( 44 )
|
||||||
size = Vector2( 16, 16 )
|
size = Vector2( 16, 16 )
|
||||||
|
|
||||||
[sub_resource type="Image" id=22]
|
[sub_resource type="Image" id=45]
|
||||||
data = {
|
data = {
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@ -96,20 +63,34 @@ data = {
|
|||||||
"width": 16
|
"width": 16
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=15]
|
[sub_resource type="ImageTexture" id=38]
|
||||||
image = SubResource( 22 )
|
image = SubResource( 45 )
|
||||||
size = Vector2( 16, 16 )
|
size = Vector2( 16, 16 )
|
||||||
|
|
||||||
|
[sub_resource type="Image" id=46]
|
||||||
|
data = {
|
||||||
|
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
||||||
|
"format": "RGBA8",
|
||||||
|
"height": 16,
|
||||||
|
"mipmaps": false,
|
||||||
|
"width": 16
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="ImageTexture" id=40]
|
||||||
|
image = SubResource( 46 )
|
||||||
|
size = Vector2( 16, 16 )
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id=28]
|
||||||
|
|
||||||
[node name="FileEditor" type="Control"]
|
[node name="FileEditor" type="Control"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
margin_left = 7.0
|
|
||||||
margin_right = -6.0
|
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="FileEditorContainer" type="VBoxContainer" parent="."]
|
[node name="FileEditorContainer" type="VBoxContainer" parent="."]
|
||||||
|
visible = false
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
margin_left = 6.0
|
margin_left = 6.0
|
||||||
@ -119,99 +100,105 @@ size_flags_vertical = 3
|
|||||||
|
|
||||||
[node name="TobBar" type="HBoxContainer" parent="FileEditorContainer"]
|
[node name="TobBar" type="HBoxContainer" parent="FileEditorContainer"]
|
||||||
margin_right = 1000.0
|
margin_right = 1000.0
|
||||||
margin_bottom = 22.0
|
margin_bottom = 20.0
|
||||||
|
|
||||||
[node name="file_btn" type="MenuButton" parent="FileEditorContainer/TobBar"]
|
[node name="file_btn" type="MenuButton" parent="FileEditorContainer/TobBar"]
|
||||||
margin_right = 54.0
|
margin_right = 35.0
|
||||||
margin_bottom = 22.0
|
margin_bottom = 20.0
|
||||||
text = "File"
|
text = "File"
|
||||||
icon = SubResource( 3 )
|
items = [ "New File", null, 0, false, false, 0, 268435534, null, "", false, "Open File", null, 0, false, false, 1, 268435535, null, "", false, "Close File", null, 0, false, false, 2, 335544387, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Save File", null, 0, false, false, 3, 268435539, null, "", false, "Save File as...", null, 0, false, false, 4, 335544403, null, "", false, "Delete File", null, 0, false, false, 5, 268435524, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Search in file...", null, 0, false, false, 6, 268435526, null, "", false, "Replace occurencies", null, 0, false, false, 7, 268435538, null, "", false ]
|
||||||
items = [ "New File", null, 0, false, false, 0, 268435534, null, "", false, "Open File", null, 0, false, false, 1, 268435535, null, "", false, "Close File", null, 0, false, false, 2, 335544387, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Save File", null, 0, false, false, 3, 268435539, null, "", false, "Save File as...", null, 0, false, false, 4, 335544403, null, "", false, "Delete File", null, 0, false, false, 5, 268435524, null, "", false ]
|
|
||||||
|
|
||||||
[node name="editor_btn" type="MenuButton" parent="FileEditorContainer/TobBar"]
|
|
||||||
margin_left = 58.0
|
|
||||||
margin_right = 126.0
|
|
||||||
margin_bottom = 22.0
|
|
||||||
text = "Editor"
|
|
||||||
icon = SubResource( 5 )
|
|
||||||
items = [ "Vanilla Editor", null, 0, false, false, 0, 268435505, null, "", false, "CSV Editor", null, 0, false, false, 1, 0, null, "", false, "CFG/INI Editor", null, 0, false, false, 2, 268435507, null, "", false ]
|
|
||||||
|
|
||||||
[node name="preview_btn" type="MenuButton" parent="FileEditorContainer/TobBar"]
|
[node name="preview_btn" type="MenuButton" parent="FileEditorContainer/TobBar"]
|
||||||
margin_left = 130.0
|
margin_left = 39.0
|
||||||
margin_right = 211.0
|
margin_right = 101.0
|
||||||
margin_bottom = 22.0
|
margin_bottom = 20.0
|
||||||
text = "Preview"
|
text = "Preview"
|
||||||
icon = SubResource( 7 )
|
items = [ "BBCode Preview", null, 0, false, false, 0, 0, null, "", false, "Markdown Preview", null, 0, false, false, 1, 0, null, "", false, "HTML Preview", null, 0, false, false, 2, 0, null, "", false, "CSV Preview", null, 0, false, false, 3, 0, null, "", false ]
|
||||||
items = [ "BBCode Preview", null, 0, false, false, 0, 0, null, "", false, "Markdown Preview", null, 0, false, false, 1, 0, null, "", false, "HTML Preview", null, 0, false, false, 2, 0, null, "", false, "CSV Preview", null, 0, false, false, 3, 0, null, "", false, "XML Preview", null, 0, false, false, 4, 0, null, "", false, "JSON Preview", null, 0, false, false, 5, 0, null, "", false ]
|
|
||||||
|
|
||||||
[node name="version" type="Label" parent="FileEditorContainer/TobBar"]
|
[node name="SettingsBtn" type="MenuButton" parent="FileEditorContainer/TobBar"]
|
||||||
margin_left = 961.0
|
margin_left = 105.0
|
||||||
margin_top = 2.0
|
margin_right = 168.0
|
||||||
margin_right = 1000.0
|
margin_bottom = 20.0
|
||||||
margin_bottom = 19.0
|
text = "Settings"
|
||||||
size_flags_horizontal = 10
|
items = [ "Change Font", null, 0, false, false, 0, 0, null, "", false ]
|
||||||
custom_fonts/font = SubResource( 1 )
|
|
||||||
custom_colors/font_color = Color( 0.121569, 0.145098, 0.192157, 1 )
|
|
||||||
text = "v1.2.1"
|
|
||||||
align = 1
|
|
||||||
|
|
||||||
[node name="SplitContainer" type="HSplitContainer" parent="FileEditorContainer"]
|
[node name="SplitContainer" type="HSplitContainer" parent="FileEditorContainer"]
|
||||||
margin_top = 26.0
|
margin_top = 24.0
|
||||||
margin_right = 1000.0
|
margin_right = 1000.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
split_offset = 150
|
split_offset = 150
|
||||||
|
|
||||||
[node name="BoxContainer" type="VBoxContainer" parent="FileEditorContainer/SplitContainer"]
|
[node name="FileContainer" type="VBoxContainer" parent="FileEditorContainer/SplitContainer"]
|
||||||
margin_right = 208.0
|
margin_right = 153.0
|
||||||
margin_bottom = 574.0
|
margin_bottom = 576.0
|
||||||
|
|
||||||
[node name="OpenFileName" type="LineEdit" parent="FileEditorContainer/SplitContainer/BoxContainer"]
|
[node name="OpenFileList" type="ItemList" parent="FileEditorContainer/SplitContainer/FileContainer"]
|
||||||
margin_right = 208.0
|
margin_right = 153.0
|
||||||
margin_bottom = 24.0
|
margin_bottom = 572.0
|
||||||
mouse_filter = 2
|
|
||||||
text = "res://sample.html"
|
|
||||||
context_menu_enabled = false
|
|
||||||
|
|
||||||
[node name="OpenFileList" type="ItemList" parent="FileEditorContainer/SplitContainer/BoxContainer"]
|
|
||||||
margin_top = 28.0
|
|
||||||
margin_right = 208.0
|
|
||||||
margin_bottom = 570.0
|
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
items = [ "sample.bbs", SubResource( 9 ), false, "sample.xml", SubResource( 11 ), false, "sample.md", SubResource( 13 ), false, "sample.html", SubResource( 15 ), false ]
|
items = [ "translation.csv", SubResource( 30 ), false, "sample.bbs", SubResource( 32 ), false, "sample.cfg", SubResource( 34 ), false, "sample.ini", SubResource( 36 ), false, "README.md", SubResource( 38 ), false, "VERSION.md", SubResource( 40 ), false ]
|
||||||
allow_reselect = true
|
allow_reselect = true
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="FileEditorContainer/SplitContainer/BoxContainer"]
|
[node name="HSeparator" type="HSeparator" parent="FileEditorContainer/SplitContainer/FileContainer"]
|
||||||
margin_top = 574.0
|
margin_top = 576.0
|
||||||
margin_right = 208.0
|
margin_right = 153.0
|
||||||
margin_bottom = 574.0
|
margin_bottom = 576.0
|
||||||
rect_min_size = Vector2( 2, 0 )
|
rect_min_size = Vector2( 2, 0 )
|
||||||
custom_constants/separation = 0
|
custom_constants/separation = 0
|
||||||
|
custom_styles/separator = SubResource( 28 )
|
||||||
|
|
||||||
[node name="VanillaEditor" parent="FileEditorContainer/SplitContainer" instance=ExtResource( 3 )]
|
[node name="EditorContainer" type="VBoxContainer" parent="FileEditorContainer/SplitContainer"]
|
||||||
anchor_right = 0.0
|
margin_left = 165.0
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 220.0
|
|
||||||
margin_right = 1000.0
|
|
||||||
margin_bottom = 574.0
|
|
||||||
|
|
||||||
[node name="IniEditor" parent="FileEditorContainer/SplitContainer" instance=ExtResource( 4 )]
|
|
||||||
visible = false
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 220.0
|
|
||||||
margin_right = 1000.0
|
margin_right = 1000.0
|
||||||
margin_bottom = 576.0
|
margin_bottom = 576.0
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="FileEditorContainer/SplitContainer/EditorContainer"]
|
||||||
|
margin_right = 835.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="FileEditorContainer/SplitContainer/EditorContainer/HBoxContainer"]
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 71.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = "Editing file:"
|
||||||
|
|
||||||
|
[node name="OpenFileName" type="LineEdit" parent="FileEditorContainer/SplitContainer/EditorContainer/HBoxContainer"]
|
||||||
|
margin_left = 75.0
|
||||||
|
margin_right = 650.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
mouse_filter = 1
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
text = "res://VERSION.md"
|
||||||
|
editable = false
|
||||||
|
|
||||||
|
[node name="wrap_button" type="OptionButton" parent="FileEditorContainer/SplitContainer/EditorContainer/HBoxContainer"]
|
||||||
|
margin_left = 654.0
|
||||||
|
margin_right = 738.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
text = "No Wrap"
|
||||||
|
items = [ "No Wrap", null, false, 0, null, "Soft Wrap", null, false, 1, null ]
|
||||||
|
selected = 0
|
||||||
|
|
||||||
|
[node name="map_button" type="OptionButton" parent="FileEditorContainer/SplitContainer/EditorContainer/HBoxContainer"]
|
||||||
|
margin_left = 742.0
|
||||||
|
margin_right = 835.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
text = "Show Map"
|
||||||
|
items = [ "Hide Map", null, false, 0, null, "Show Map", null, false, 1, null ]
|
||||||
|
selected = 1
|
||||||
|
|
||||||
[node name="FileList" type="FileDialog" parent="."]
|
[node name="FileList" type="FileDialog" parent="."]
|
||||||
margin_top = 24.0
|
margin_top = 24.0
|
||||||
margin_right = 1024.0
|
margin_right = 1024.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
popup_exclusive = true
|
popup_exclusive = true
|
||||||
|
window_title = "Salva un file"
|
||||||
dialog_hide_on_ok = true
|
dialog_hide_on_ok = true
|
||||||
filters = PoolStringArray( "*.txt ; Plain Text File", "*.rtf ; Rich Text Format File", "*.log ; Log File", "*.md ; MD File", "*.doc ; WordPad Document", "*.doc ; Microsoft Word Document", "*.docm ; Word Open XML Macro-Enabled Document", "*.docx ; Microsoft Word Open XML Document", "*.bbs ; Bulletin Board System Text", "*.dat ; Data File", "*.xml ; XML File", "*.sql ; SQL database file", "*.json ; JavaScript Object Notation File", "*.html ; HyperText Markup Language", "*.csv ; Comma-separated values", "*.cfg ; Configuration File", "*.ini ; Initialization File (same as .cfg Configuration File)" )
|
filters = PoolStringArray( "*.txt ; Plain Text File", "*.rtf ; Rich Text Format File", "*.log ; Log File", "*.md ; MD File", "*.doc ; WordPad Document", "*.doc ; Microsoft Word Document", "*.docm ; Word Open XML Macro-Enabled Document", "*.docx ; Microsoft Word Open XML Document", "*.bbs ; Bulletin Board System Text", "*.dat ; Data File", "*.xml ; XML File", "*.sql ; SQL database file", "*.json ; JavaScript Object Notation File", "*.html ; HyperText Markup Language", "*.csv ; Comma-separated values", "*.cfg ; Configuration File", "*.ini ; Initialization File (same as .cfg Configuration File)", "*.csv ; Comma-separated values File", "*.res ; Resource File" )
|
||||||
|
show_hidden_files = true
|
||||||
|
|
||||||
[node name="NewFileDialogue" type="AcceptDialog" parent="."]
|
[node name="NewFileDialogue" type="AcceptDialog" parent="."]
|
||||||
margin_left = 348.254
|
margin_left = 348.254
|
||||||
@ -259,3 +246,19 @@ margin_bottom = 37.5
|
|||||||
window_title = "Unsaved changes"
|
window_title = "Unsaved changes"
|
||||||
dialog_text = "There are some unsaved changes.
|
dialog_text = "There are some unsaved changes.
|
||||||
Press \"OK\" if you want to close this tab anyway, or \"cancel\" if you want to keep on editing your file."
|
Press \"OK\" if you want to close this tab anyway, or \"cancel\" if you want to keep on editing your file."
|
||||||
|
|
||||||
|
[node name="SelectFontDialog" type="FileDialog" parent="."]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
margin_left = 222.0
|
||||||
|
margin_top = 132.0
|
||||||
|
margin_right = -221.0
|
||||||
|
margin_bottom = -131.0
|
||||||
|
window_title = "Open a File"
|
||||||
|
resizable = true
|
||||||
|
mode = 0
|
||||||
|
access = 2
|
||||||
|
filters = PoolStringArray( "*.TTF", "*.ttf" )
|
||||||
|
show_hidden_files = true
|
||||||
|
|
||||||
|
[connection signal="confirmed" from="ConfirmationDialog" to="." method="_on_ConfirmationDialog_confirmed"]
|
||||||
|
@ -1,144 +0,0 @@
|
|||||||
[gd_scene load_steps=12 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://addons/file-editor/scripts/FileScene.gd" type="Script" id=1]
|
|
||||||
[ext_resource path="res://addons/file-editor/fonts/Roboto-Black.ttf" type="DynamicFontData" id=2]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id=1]
|
|
||||||
content_margin_left = 10.0
|
|
||||||
content_margin_right = 10.0
|
|
||||||
bg_color = Color( 0.145098, 0.172549, 0.231373, 1 )
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=9]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=2]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=3]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=4]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=5]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=6]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=7]
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=8]
|
|
||||||
font_data = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="filename" type="VBoxContainer"]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="."]
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 4.0
|
|
||||||
|
|
||||||
[node name="TopBar" type="HBoxContainer" parent="."]
|
|
||||||
margin_top = 8.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 28.0
|
|
||||||
|
|
||||||
[node name="VSeparator" type="VSeparator" parent="TopBar"]
|
|
||||||
margin_right = 4.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
|
|
||||||
[node name="FileButton" type="MenuButton" parent="TopBar"]
|
|
||||||
margin_left = 8.0
|
|
||||||
margin_right = 51.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
custom_styles/hover = SubResource( 1 )
|
|
||||||
custom_styles/normal = SubResource( 1 )
|
|
||||||
text = "File"
|
|
||||||
flat = false
|
|
||||||
items = [ "Save File", null, 0, false, false, 0, 0, null, "", false, "Save file As...", null, 0, false, false, 1, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Normal Preview", null, 0, false, false, 2, 0, null, "", false, "BBCode Preview", null, 0, false, false, 3, 0, null, "", false, "Markdown Preview", null, 0, false, false, 4, 0, null, "", false, "HTML Preview", null, 0, false, false, 5, 0, null, "", false ]
|
|
||||||
|
|
||||||
[node name="filepath" type="Label" parent="TopBar"]
|
|
||||||
margin_left = 523.0
|
|
||||||
margin_top = 3.0
|
|
||||||
margin_right = 523.0
|
|
||||||
margin_bottom = 17.0
|
|
||||||
size_flags_horizontal = 6
|
|
||||||
|
|
||||||
[node name="close_btn" type="Button" parent="TopBar"]
|
|
||||||
margin_left = 996.0
|
|
||||||
margin_right = 1016.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
size_flags_horizontal = 8
|
|
||||||
text = "X"
|
|
||||||
|
|
||||||
[node name="VSeparator2" type="VSeparator" parent="TopBar"]
|
|
||||||
margin_left = 1020.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
|
|
||||||
[node name="TextEditor" type="TextEdit" parent="."]
|
|
||||||
margin_top = 32.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 577.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
syntax_highlighting = true
|
|
||||||
show_line_numbers = true
|
|
||||||
breakpoint_gutter = true
|
|
||||||
highlight_all_occurrences = true
|
|
||||||
smooth_scrolling = true
|
|
||||||
wrap_enabled = true
|
|
||||||
caret_blink = true
|
|
||||||
caret_blink_speed = 1.0
|
|
||||||
caret_moving_by_right_click = false
|
|
||||||
|
|
||||||
[node name="FileInfo" type="HBoxContainer" parent="."]
|
|
||||||
margin_top = 581.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 600.0
|
|
||||||
custom_constants/separation = 2
|
|
||||||
|
|
||||||
[node name="VSeparator4" type="VSeparator" parent="FileInfo"]
|
|
||||||
margin_right = 5.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
rect_min_size = Vector2( 5, 0 )
|
|
||||||
custom_styles/separator = SubResource( 9 )
|
|
||||||
|
|
||||||
[node name="lastmodified_icon" type="TextureRect" parent="FileInfo"]
|
|
||||||
margin_left = 7.0
|
|
||||||
margin_right = 7.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
stretch_mode = 4
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="FileInfo"]
|
|
||||||
margin_left = 9.0
|
|
||||||
margin_top = 2.0
|
|
||||||
margin_right = 134.0
|
|
||||||
margin_bottom = 16.0
|
|
||||||
text = "Last modified time:"
|
|
||||||
|
|
||||||
[node name="lastmodified" type="Label" parent="FileInfo"]
|
|
||||||
margin_left = 136.0
|
|
||||||
margin_top = 2.0
|
|
||||||
margin_right = 136.0
|
|
||||||
margin_bottom = 16.0
|
|
||||||
|
|
||||||
[node name="Readonly" type="CheckBox" parent="FileInfo"]
|
|
||||||
margin_left = 939.0
|
|
||||||
margin_right = 1018.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
size_flags_horizontal = 10
|
|
||||||
custom_styles/hover = SubResource( 2 )
|
|
||||||
custom_styles/pressed = SubResource( 3 )
|
|
||||||
custom_styles/focus = SubResource( 4 )
|
|
||||||
custom_styles/disabled = SubResource( 5 )
|
|
||||||
custom_styles/hover_pressed = SubResource( 6 )
|
|
||||||
custom_styles/normal = SubResource( 7 )
|
|
||||||
custom_fonts/font = SubResource( 8 )
|
|
||||||
custom_colors/font_color = Color( 0.145098, 0.172549, 0.231373, 1 )
|
|
||||||
custom_colors/font_color_pressed = Color( 1, 1, 1, 1 )
|
|
||||||
text = "Can Edit"
|
|
||||||
flat = true
|
|
||||||
|
|
||||||
[node name="VSeparator3" type="VSeparator" parent="FileInfo"]
|
|
||||||
margin_left = 1020.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
rect_min_size = Vector2( 4, 0 )
|
|
||||||
[connection signal="text_changed" from="TextEditor" to="." method="_on_TextEditor_text_changed"]
|
|
@ -1,369 +0,0 @@
|
|||||||
[gd_scene load_steps=16 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://addons/file-editor/scripts/IniVisualEditor.gd" type="Script" id=1]
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=15]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
|
||||||
"format": "RGBA8",
|
|
||||||
"height": 16,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 16
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=2]
|
|
||||||
image = SubResource( 15 )
|
|
||||||
size = Vector2( 16, 16 )
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=16]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
|
||||||
"format": "RGBA8",
|
|
||||||
"height": 16,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 16
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=4]
|
|
||||||
image = SubResource( 16 )
|
|
||||||
size = Vector2( 16, 16 )
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=17]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 222, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 64, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
|
||||||
"format": "RGBA8",
|
|
||||||
"height": 16,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 16
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=6]
|
|
||||||
image = SubResource( 17 )
|
|
||||||
size = Vector2( 16, 16 )
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=18]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 48, 224, 224, 224, 142, 224, 224, 224, 238, 224, 224, 224, 238, 224, 224, 224, 174, 224, 224, 224, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 32, 224, 224, 224, 238, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 158, 224, 224, 224, 254, 224, 224, 224, 190, 224, 224, 224, 48, 224, 224, 224, 32, 224, 224, 224, 190, 224, 224, 224, 254, 224, 224, 224, 158, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 32, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 254, 224, 224, 224, 238, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 32, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 158, 224, 224, 224, 254, 224, 224, 224, 190, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 158, 224, 224, 224, 254, 224, 224, 224, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 32, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 48, 224, 224, 224, 158, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 190, 224, 224, 224, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
|
||||||
"format": "RGBA8",
|
|
||||||
"height": 16,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 16
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=8]
|
|
||||||
image = SubResource( 18 )
|
|
||||||
size = Vector2( 16, 16 )
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=19]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
|
||||||
"format": "RGBA8",
|
|
||||||
"height": 16,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 16
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=10]
|
|
||||||
image = SubResource( 19 )
|
|
||||||
size = Vector2( 16, 16 )
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=20]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 175, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 175, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 16, 224, 224, 224, 239, 224, 224, 224, 239, 224, 224, 224, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 80, 224, 224, 224, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
|
||||||
"format": "RGBA8",
|
|
||||||
"height": 16,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 16
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=12]
|
|
||||||
image = SubResource( 20 )
|
|
||||||
size = Vector2( 16, 16 )
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=21]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 222, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 64, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 254, 224, 224, 224, 238, 224, 224, 224, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
|
||||||
"format": "RGBA8",
|
|
||||||
"height": 16,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 16
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=14]
|
|
||||||
image = SubResource( 21 )
|
|
||||||
size = Vector2( 16, 16 )
|
|
||||||
|
|
||||||
[node name="IniEditor" type="Control"]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
|
|
||||||
[node name="HSplitContainer" type="HSplitContainer" parent="VBoxContainer"]
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 595.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
split_offset = 100
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HSplitContainer"]
|
|
||||||
margin_right = 174.0
|
|
||||||
margin_bottom = 595.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/HSplitContainer/VBoxContainer"]
|
|
||||||
editor/display_folded = true
|
|
||||||
margin_right = 174.0
|
|
||||||
margin_bottom = 16.0
|
|
||||||
|
|
||||||
[node name="sections_icon" type="TextureRect" parent="VBoxContainer/HSplitContainer/VBoxContainer/HBoxContainer"]
|
|
||||||
margin_right = 16.0
|
|
||||||
margin_bottom = 16.0
|
|
||||||
texture = SubResource( 2 )
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="VBoxContainer/HSplitContainer/VBoxContainer/HBoxContainer"]
|
|
||||||
margin_left = 20.0
|
|
||||||
margin_top = 1.0
|
|
||||||
margin_right = 174.0
|
|
||||||
margin_bottom = 15.0
|
|
||||||
size_flags_horizontal = 7
|
|
||||||
text = "Sections"
|
|
||||||
|
|
||||||
[node name="sections2" type="ItemList" parent="VBoxContainer/HSplitContainer/VBoxContainer"]
|
|
||||||
margin_top = 20.0
|
|
||||||
margin_right = 174.0
|
|
||||||
margin_bottom = 567.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
allow_reselect = true
|
|
||||||
auto_height = true
|
|
||||||
same_column_width = true
|
|
||||||
|
|
||||||
[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer/HSplitContainer/VBoxContainer"]
|
|
||||||
editor/display_folded = true
|
|
||||||
margin_top = 571.0
|
|
||||||
margin_right = 174.0
|
|
||||||
margin_bottom = 595.0
|
|
||||||
alignment = 1
|
|
||||||
|
|
||||||
[node name="btn_add_section" type="ToolButton" parent="VBoxContainer/HSplitContainer/VBoxContainer/HBoxContainer2"]
|
|
||||||
margin_left = 57.0
|
|
||||||
margin_right = 85.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
hint_tooltip = "Add a new Section"
|
|
||||||
icon = SubResource( 4 )
|
|
||||||
|
|
||||||
[node name="btn_remove_section" type="ToolButton" parent="VBoxContainer/HSplitContainer/VBoxContainer/HBoxContainer2"]
|
|
||||||
margin_left = 89.0
|
|
||||||
margin_right = 117.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
hint_tooltip = "Remove selected Section"
|
|
||||||
icon = SubResource( 6 )
|
|
||||||
|
|
||||||
[node name="VBoxContainer2" type="VBoxContainer" parent="VBoxContainer/HSplitContainer"]
|
|
||||||
editor/display_folded = true
|
|
||||||
margin_left = 186.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 595.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
|
|
||||||
[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer/HSplitContainer/VBoxContainer2"]
|
|
||||||
margin_right = 838.0
|
|
||||||
margin_bottom = 16.0
|
|
||||||
|
|
||||||
[node name="keys_icon" type="TextureRect" parent="VBoxContainer/HSplitContainer/VBoxContainer2/HBoxContainer2"]
|
|
||||||
margin_right = 16.0
|
|
||||||
margin_bottom = 16.0
|
|
||||||
texture = SubResource( 8 )
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="VBoxContainer/HSplitContainer/VBoxContainer2/HBoxContainer2"]
|
|
||||||
margin_left = 20.0
|
|
||||||
margin_top = 1.0
|
|
||||||
margin_right = 838.0
|
|
||||||
margin_bottom = 15.0
|
|
||||||
size_flags_horizontal = 7
|
|
||||||
text = "Keys"
|
|
||||||
|
|
||||||
[node name="keys" type="Tree" parent="VBoxContainer/HSplitContainer/VBoxContainer2"]
|
|
||||||
margin_top = 20.0
|
|
||||||
margin_right = 838.0
|
|
||||||
margin_bottom = 567.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
columns = 2
|
|
||||||
allow_reselect = true
|
|
||||||
hide_folding = true
|
|
||||||
select_mode = 1
|
|
||||||
|
|
||||||
[node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer/HSplitContainer/VBoxContainer2"]
|
|
||||||
editor/display_folded = true
|
|
||||||
margin_top = 571.0
|
|
||||||
margin_right = 838.0
|
|
||||||
margin_bottom = 595.0
|
|
||||||
alignment = 1
|
|
||||||
|
|
||||||
[node name="btn_add_key" type="ToolButton" parent="VBoxContainer/HSplitContainer/VBoxContainer2/HBoxContainer3"]
|
|
||||||
margin_left = 373.0
|
|
||||||
margin_right = 401.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
hint_tooltip = "Add a new Key"
|
|
||||||
icon = SubResource( 10 )
|
|
||||||
|
|
||||||
[node name="btn_edit_key" type="ToolButton" parent="VBoxContainer/HSplitContainer/VBoxContainer2/HBoxContainer3"]
|
|
||||||
margin_left = 405.0
|
|
||||||
margin_right = 433.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
hint_tooltip = "Edit selected Key"
|
|
||||||
icon = SubResource( 12 )
|
|
||||||
|
|
||||||
[node name="btn_remove_key" type="ToolButton" parent="VBoxContainer/HSplitContainer/VBoxContainer2/HBoxContainer3"]
|
|
||||||
margin_left = 437.0
|
|
||||||
margin_right = 465.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
hint_tooltip = "Remove selected Key"
|
|
||||||
icon = SubResource( 14 )
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="VBoxContainer"]
|
|
||||||
margin_top = 599.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 600.0
|
|
||||||
rect_min_size = Vector2( 0, 1 )
|
|
||||||
custom_constants/separation = 0
|
|
||||||
|
|
||||||
[node name="Section" type="AcceptDialog" parent="."]
|
|
||||||
editor/display_folded = true
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
margin_left = -153.0
|
|
||||||
margin_top = -29.0
|
|
||||||
margin_right = 155.0
|
|
||||||
margin_bottom = 98.0
|
|
||||||
window_title = ""
|
|
||||||
|
|
||||||
[node name="Container" type="VBoxContainer" parent="Section"]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_left = 8.0
|
|
||||||
margin_top = 8.0
|
|
||||||
margin_right = -8.0
|
|
||||||
margin_bottom = -36.0
|
|
||||||
|
|
||||||
[node name="section" type="HBoxContainer" parent="Section/Container"]
|
|
||||||
margin_right = 292.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Section/Container/section"]
|
|
||||||
margin_top = 5.0
|
|
||||||
margin_right = 91.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
text = "Section name:"
|
|
||||||
|
|
||||||
[node name="_name" type="LineEdit" parent="Section/Container/section"]
|
|
||||||
margin_left = 95.0
|
|
||||||
margin_right = 292.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
context_menu_enabled = false
|
|
||||||
|
|
||||||
[node name="key" type="HBoxContainer" parent="Section/Container"]
|
|
||||||
margin_top = 28.0
|
|
||||||
margin_right = 292.0
|
|
||||||
margin_bottom = 52.0
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Section/Container/key"]
|
|
||||||
margin_top = 5.0
|
|
||||||
margin_right = 91.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
rect_min_size = Vector2( 91, 0 )
|
|
||||||
text = "Key name:"
|
|
||||||
align = 1
|
|
||||||
|
|
||||||
[node name="_name" type="LineEdit" parent="Section/Container/key"]
|
|
||||||
margin_left = 95.0
|
|
||||||
margin_right = 292.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
context_menu_enabled = false
|
|
||||||
|
|
||||||
[node name="value" type="HBoxContainer" parent="Section/Container"]
|
|
||||||
margin_top = 56.0
|
|
||||||
margin_right = 292.0
|
|
||||||
margin_bottom = 80.0
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Section/Container/value"]
|
|
||||||
margin_top = 5.0
|
|
||||||
margin_right = 91.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
rect_min_size = Vector2( 91, 0 )
|
|
||||||
text = "Key value:"
|
|
||||||
align = 1
|
|
||||||
|
|
||||||
[node name="_value" type="LineEdit" parent="Section/Container/value"]
|
|
||||||
margin_left = 95.0
|
|
||||||
margin_right = 292.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
context_menu_enabled = false
|
|
||||||
|
|
||||||
[node name="Key" type="ConfirmationDialog" parent="."]
|
|
||||||
editor/display_folded = true
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
margin_left = -150.0
|
|
||||||
margin_top = -46.0
|
|
||||||
margin_right = 151.0
|
|
||||||
margin_bottom = 64.0
|
|
||||||
window_title = "Add a new Key"
|
|
||||||
|
|
||||||
[node name="data" type="VBoxContainer" parent="Key"]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_left = 8.0
|
|
||||||
margin_top = 8.0
|
|
||||||
margin_right = -8.0
|
|
||||||
margin_bottom = -36.0
|
|
||||||
alignment = 1
|
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="Key/data"]
|
|
||||||
margin_top = 7.0
|
|
||||||
margin_right = 285.0
|
|
||||||
margin_bottom = 31.0
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Key/data/HBoxContainer"]
|
|
||||||
margin_top = 5.0
|
|
||||||
margin_right = 140.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
text = "Key name:"
|
|
||||||
align = 1
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="name" type="LineEdit" parent="Key/data/HBoxContainer"]
|
|
||||||
margin_left = 144.0
|
|
||||||
margin_right = 285.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="HBoxContainer2" type="HBoxContainer" parent="Key/data"]
|
|
||||||
margin_top = 35.0
|
|
||||||
margin_right = 285.0
|
|
||||||
margin_bottom = 59.0
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Key/data/HBoxContainer2"]
|
|
||||||
margin_top = 5.0
|
|
||||||
margin_right = 140.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
text = "Key value:"
|
|
||||||
align = 1
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="value" type="LineEdit" parent="Key/data/HBoxContainer2"]
|
|
||||||
margin_left = 144.0
|
|
||||||
margin_right = 285.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
size_flags_horizontal = 3
|
|
@ -1,62 +0,0 @@
|
|||||||
[gd_scene load_steps=12 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://addons/file-editor/scripts/Preview.gd" type="Script" id=1]
|
|
||||||
[ext_resource path="res://addons/file-editor/fonts/COUR.TTF" type="DynamicFontData" id=2]
|
|
||||||
[ext_resource path="res://addons/file-editor/fonts/Carlito-BoldItalic.ttf" type="DynamicFontData" id=3]
|
|
||||||
[ext_resource path="res://addons/file-editor/fonts/Carlito-Italic.ttf" type="DynamicFontData" id=4]
|
|
||||||
[ext_resource path="res://addons/file-editor/fonts/Carlito-Bold.ttf" type="DynamicFontData" id=5]
|
|
||||||
[ext_resource path="res://addons/file-editor/fonts/Carlito-Regular.ttf" type="DynamicFontData" id=6]
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=1]
|
|
||||||
use_mipmaps = true
|
|
||||||
use_filter = true
|
|
||||||
font_data = ExtResource( 2 )
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=2]
|
|
||||||
font_data = ExtResource( 3 )
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=3]
|
|
||||||
font_data = ExtResource( 4 )
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=4]
|
|
||||||
font_data = ExtResource( 5 )
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=5]
|
|
||||||
font_data = ExtResource( 6 )
|
|
||||||
|
|
||||||
[node name="Preview" type="WindowDialog"]
|
|
||||||
visible = true
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_left = 81.0
|
|
||||||
margin_top = 47.0
|
|
||||||
margin_right = -80.0
|
|
||||||
margin_bottom = -48.0
|
|
||||||
window_title = "File preview"
|
|
||||||
resizable = true
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
|
|
||||||
[node name="Container" type="VBoxContainer" parent="."]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
|
|
||||||
[node name="TextPreview" type="RichTextLabel" parent="Container"]
|
|
||||||
visible = false
|
|
||||||
margin_right = 863.0
|
|
||||||
margin_bottom = 250.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
custom_fonts/mono_font = SubResource( 1 )
|
|
||||||
custom_fonts/bold_italics_font = SubResource( 2 )
|
|
||||||
custom_fonts/italics_font = SubResource( 3 )
|
|
||||||
custom_fonts/bold_font = SubResource( 4 )
|
|
||||||
custom_fonts/normal_font = SubResource( 5 )
|
|
||||||
bbcode_enabled = true
|
|
||||||
scroll_following = true
|
|
||||||
|
|
||||||
[node name="TablePreview" type="GridContainer" parent="Container"]
|
|
||||||
margin_right = 863.0
|
|
||||||
margin_bottom = 505.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
|
||||||
columns = 3
|
|
||||||
[connection signal="popup_hide" from="." to="." method="_on_Preview_popup_hide"]
|
|
@ -1,88 +0,0 @@
|
|||||||
[gd_scene load_steps=10 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://addons/file-editor/scripts/FileScene.gd" type="Script" id=1]
|
|
||||||
[ext_resource path="res://addons/file-editor/fonts/Roboto-Black.ttf" type="DynamicFontData" id=2]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=1]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=2]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=3]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=4]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=5]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=6]
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=7]
|
|
||||||
font_data = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="VanillaEditor" type="VBoxContainer"]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
|
|
||||||
[node name="TextEditor" type="TextEdit" parent="."]
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 577.0
|
|
||||||
size_flags_vertical = 3
|
|
||||||
syntax_highlighting = true
|
|
||||||
show_line_numbers = true
|
|
||||||
breakpoint_gutter = true
|
|
||||||
highlight_all_occurrences = true
|
|
||||||
override_selected_font_color = true
|
|
||||||
smooth_scrolling = true
|
|
||||||
hiding_enabled = 1
|
|
||||||
wrap_enabled = true
|
|
||||||
caret_blink = true
|
|
||||||
caret_blink_speed = 1.0
|
|
||||||
caret_moving_by_right_click = false
|
|
||||||
|
|
||||||
[node name="FileInfo" type="HBoxContainer" parent="."]
|
|
||||||
margin_top = 581.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 600.0
|
|
||||||
custom_constants/separation = 2
|
|
||||||
|
|
||||||
[node name="lastmodified_icon" type="TextureRect" parent="FileInfo"]
|
|
||||||
margin_bottom = 19.0
|
|
||||||
stretch_mode = 4
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="FileInfo"]
|
|
||||||
margin_left = 2.0
|
|
||||||
margin_top = 2.0
|
|
||||||
margin_right = 127.0
|
|
||||||
margin_bottom = 16.0
|
|
||||||
text = "Last modified time:"
|
|
||||||
|
|
||||||
[node name="lastmodified" type="Label" parent="FileInfo"]
|
|
||||||
margin_left = 129.0
|
|
||||||
margin_top = 2.0
|
|
||||||
margin_right = 129.0
|
|
||||||
margin_bottom = 16.0
|
|
||||||
|
|
||||||
[node name="Readonly" type="CheckBox" parent="FileInfo"]
|
|
||||||
margin_left = 939.0
|
|
||||||
margin_right = 1018.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
size_flags_horizontal = 10
|
|
||||||
custom_styles/hover = SubResource( 1 )
|
|
||||||
custom_styles/pressed = SubResource( 2 )
|
|
||||||
custom_styles/focus = SubResource( 3 )
|
|
||||||
custom_styles/disabled = SubResource( 4 )
|
|
||||||
custom_styles/hover_pressed = SubResource( 5 )
|
|
||||||
custom_styles/normal = SubResource( 6 )
|
|
||||||
custom_fonts/font = SubResource( 7 )
|
|
||||||
custom_colors/font_color = Color( 0.145098, 0.172549, 0.231373, 1 )
|
|
||||||
custom_colors/font_color_pressed = Color( 1, 1, 1, 1 )
|
|
||||||
text = "Can Edit"
|
|
||||||
flat = true
|
|
||||||
|
|
||||||
[node name="VSeparator3" type="VSeparator" parent="FileInfo"]
|
|
||||||
margin_left = 1020.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
rect_min_size = Vector2( 4, 0 )
|
|
||||||
[connection signal="text_changed" from="TextEditor" to="." method="_on_TextEditor_text_changed"]
|
|
@ -1,412 +1,658 @@
|
|||||||
tool
|
tool
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
onready var FileList = $FileList
|
enum FileMenuOptions {
|
||||||
|
FILE_MENU_OPTION_NEW = 0,
|
||||||
onready var NewFileDialogue = $NewFileDialogue
|
FILE_MENU_OPTION_OPEN = 1,
|
||||||
onready var NewFileDialogue_name = $NewFileDialogue/VBoxContainer/new_filename
|
FILE_MENU_OPTION_CLOSE = 2,
|
||||||
|
FILE_MENU_OPTION_SAVE = 3,
|
||||||
onready var FileBTN = $FileEditorContainer/TobBar/file_btn.get_popup()
|
FILE_MENU_OPTION_SAVE_AS = 4,
|
||||||
onready var PreviewBTN = $FileEditorContainer/TobBar/preview_btn.get_popup()
|
FILE_MENU_OPTION_DELETE = 5,
|
||||||
onready var EditorBTN = $FileEditorContainer/TobBar/editor_btn.get_popup()
|
FILE_MENU_OPTION_SEARCH = 6,
|
||||||
|
FILE_MENU_OPTION_REPLACE = 7,
|
||||||
onready var Version = $FileEditorContainer/TobBar/version
|
};
|
||||||
|
|
||||||
onready var VanillaEditor = $FileEditorContainer/SplitContainer/VanillaEditor
|
|
||||||
onready var IniEditor = $FileEditorContainer/SplitContainer/IniEditor
|
|
||||||
|
|
||||||
onready var OpenFileList = $FileEditorContainer/SplitContainer/BoxContainer/OpenFileList
|
|
||||||
onready var OpenFileName = $FileEditorContainer/SplitContainer/BoxContainer/OpenFileName
|
|
||||||
|
|
||||||
var Preview = preload("res://addons/file-editor/scenes/Preview.tscn")
|
|
||||||
|
|
||||||
var DIRECTORY : String = "res://"
|
var DIRECTORY : String = "res://"
|
||||||
var EXCEPTIONS : String = "addons"
|
var EXCEPTIONS : String = "addons"
|
||||||
var EXTENSIONS : PoolStringArray = [
|
var EXTENSIONS : PoolStringArray = [
|
||||||
"*.txt ; Plain Text File",
|
"*.txt ; Plain Text File",
|
||||||
"*.rtf ; Rich Text Format File",
|
"*.rtf ; Rich Text Format File",
|
||||||
"*.log ; Log File",
|
"*.log ; Log File",
|
||||||
"*.md ; MD File",
|
"*.md ; MD File",
|
||||||
"*.doc ; WordPad Document",
|
"*.doc ; WordPad Document",
|
||||||
"*.doc ; Microsoft Word Document",
|
"*.doc ; Microsoft Word Document",
|
||||||
"*.docm ; Word Open XML Macro-Enabled Document",
|
"*.docm ; Word Open XML Macro-Enabled Document",
|
||||||
"*.docx ; Microsoft Word Open XML Document",
|
"*.docx ; Microsoft Word Open XML Document",
|
||||||
"*.bbs ; Bulletin Board System Text",
|
"*.bbs ; Bulletin Board System Text",
|
||||||
"*.dat ; Data File",
|
"*.dat ; Data File",
|
||||||
"*.xml ; XML File",
|
"*.xml ; XML File",
|
||||||
"*.sql ; SQL database file",
|
"*.sql ; SQL database file",
|
||||||
"*.json ; JavaScript Object Notation File",
|
"*.json ; JavaScript Object Notation File",
|
||||||
"*.html ; HyperText Markup Language",
|
"*.html ; HyperText Markup Language",
|
||||||
"*.csv ; Comma-separated values",
|
"*.csv ; Comma-separated values",
|
||||||
"*.cfg ; Configuration File",
|
"*.cfg ; Configuration File",
|
||||||
"*.ini ; Initialization File (same as .cfg Configuration File)",
|
"*.ini ; Initialization File (same as .cfg Configuration File)",
|
||||||
|
"*.csv ; Comma-separated values File",
|
||||||
|
"*.res ; Resource File",
|
||||||
]
|
]
|
||||||
|
|
||||||
var directories = []
|
|
||||||
var files = []
|
|
||||||
var current_file_index = -1
|
|
||||||
var current_file_path = ""
|
|
||||||
var save_as = false
|
|
||||||
|
|
||||||
func _ready():
|
var file_btn : MenuButton = null
|
||||||
clean_editor()
|
var preview_btn : MenuButton = null
|
||||||
update_version()
|
var settings_btn : MenuButton = null
|
||||||
connect_signals()
|
|
||||||
create_shortcuts()
|
|
||||||
load_icons()
|
|
||||||
|
|
||||||
|
var file_btn_popup : PopupMenu = null
|
||||||
|
var preview_btn_popup : PopupMenu = null
|
||||||
|
var settings_btn_popup : PopupMenu = null
|
||||||
|
|
||||||
var opened_files : Array = LastOpenedFiles.load_opened_files()
|
var editor_container : HSplitContainer = null
|
||||||
for open_file in opened_files:
|
var file_container : VBoxContainer = null
|
||||||
open_file(open_file[1])
|
var open_file_list : ItemList = null
|
||||||
|
var split_editor_container : VBoxContainer = null
|
||||||
|
var open_file_name : LineEdit = null
|
||||||
|
var wrap_btn : OptionButton = null
|
||||||
|
var map_btn : OptionButton = null
|
||||||
|
|
||||||
FileList.set_filters(EXTENSIONS)
|
var file_list : FileDialog = null
|
||||||
IniEditor.hide()
|
|
||||||
|
|
||||||
func create_shortcuts():
|
var new_file_dialogue : AcceptDialog = null
|
||||||
var hotkey
|
var new_file_dialogue_name : LineEdit = null
|
||||||
|
|
||||||
hotkey = InputEventKey.new()
|
var confirmation_close : ConfirmationDialog = null
|
||||||
hotkey.scancode = KEY_S
|
|
||||||
hotkey.control = true
|
|
||||||
FileBTN.set_item_accelerator(4,hotkey.get_scancode_with_modifiers()) # save file
|
|
||||||
|
|
||||||
hotkey = InputEventKey.new()
|
var select_font_dialog : FileDialog = null
|
||||||
|
|
||||||
|
var LastOpenedFiles : Reference = null
|
||||||
|
|
||||||
|
var Preview = preload("res://addons/file-editor/scripts/Preview.gd")
|
||||||
|
var VanillaEditor = preload("res://addons/file-editor/scripts/VanillaEditor.gd")
|
||||||
|
|
||||||
|
var directories : Array
|
||||||
|
var files : Array
|
||||||
|
var current_file_index : int = -1
|
||||||
|
var current_file_path : String
|
||||||
|
var save_as : bool = false
|
||||||
|
var current_editor : Control
|
||||||
|
var current_font : DynamicFont
|
||||||
|
|
||||||
|
var editing_file : bool = false
|
||||||
|
|
||||||
|
func _init() -> void:
|
||||||
|
set_anchors_and_margins_preset(Control.PRESET_WIDE)
|
||||||
|
size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
|
size_flags_horizontal = SIZE_EXPAND_FILL
|
||||||
|
|
||||||
|
var vbc : VBoxContainer = VBoxContainer.new()
|
||||||
|
add_child(vbc)
|
||||||
|
vbc.set_anchors_and_margins_preset(Control.PRESET_WIDE)
|
||||||
|
|
||||||
|
var tob_bar : HBoxContainer = HBoxContainer.new()
|
||||||
|
vbc.add_child(tob_bar)
|
||||||
|
|
||||||
|
file_btn = MenuButton.new()
|
||||||
|
tob_bar.add_child(file_btn)
|
||||||
|
file_btn.text = "File"
|
||||||
|
|
||||||
|
file_btn_popup = file_btn.get_popup()
|
||||||
|
|
||||||
|
var hotkey : InputEventKey = InputEventKey.new()
|
||||||
hotkey.scancode = KEY_N
|
hotkey.scancode = KEY_N
|
||||||
hotkey.control = true
|
hotkey.control = true
|
||||||
FileBTN.set_item_accelerator(0,hotkey.get_scancode_with_modifiers()) # new file
|
file_btn_popup.add_item("New File", FileMenuOptions.FILE_MENU_OPTION_NEW, hotkey.get_scancode_with_modifiers())
|
||||||
|
|
||||||
hotkey = InputEventKey.new()
|
hotkey = InputEventKey.new()
|
||||||
hotkey.scancode = KEY_O
|
hotkey.scancode = KEY_O
|
||||||
hotkey.control = true
|
hotkey.control = true
|
||||||
FileBTN.set_item_accelerator(1,hotkey.get_scancode_with_modifiers()) # open file
|
file_btn_popup.add_item("Open File", FileMenuOptions.FILE_MENU_OPTION_OPEN, hotkey.get_scancode_with_modifiers())
|
||||||
|
|
||||||
hotkey = InputEventKey.new()
|
|
||||||
hotkey.scancode = KEY_D
|
|
||||||
hotkey.control = true
|
|
||||||
FileBTN.set_item_accelerator(6,hotkey.get_scancode_with_modifiers()) # delete file
|
|
||||||
|
|
||||||
hotkey = InputEventKey.new()
|
|
||||||
hotkey.scancode = KEY_S
|
|
||||||
hotkey.control = true
|
|
||||||
hotkey.alt = true
|
|
||||||
FileBTN.set_item_accelerator(5,hotkey.get_scancode_with_modifiers()) #save file as
|
|
||||||
|
|
||||||
hotkey = InputEventKey.new()
|
hotkey = InputEventKey.new()
|
||||||
hotkey.scancode = KEY_C
|
hotkey.scancode = KEY_C
|
||||||
hotkey.control = true
|
hotkey.control = true
|
||||||
hotkey.alt = true
|
hotkey.alt = true
|
||||||
FileBTN.set_item_accelerator(2,hotkey.get_scancode_with_modifiers()) # close file
|
file_btn_popup.add_item("Close File", FileMenuOptions.FILE_MENU_OPTION_CLOSE, hotkey.get_scancode_with_modifiers())
|
||||||
|
|
||||||
# vanilla editor -----------------------
|
file_btn_popup.add_separator()
|
||||||
|
|
||||||
hotkey = InputEventKey.new()
|
hotkey = InputEventKey.new()
|
||||||
hotkey.scancode = KEY_1
|
hotkey.scancode = KEY_S
|
||||||
hotkey.control = true
|
hotkey.control = true
|
||||||
EditorBTN.set_item_accelerator(0,hotkey.get_scancode_with_modifiers()) # vanilla editor
|
file_btn_popup.add_item("Save File", FileMenuOptions.FILE_MENU_OPTION_SAVE, hotkey.get_scancode_with_modifiers())
|
||||||
|
|
||||||
hotkey = InputEventKey.new()
|
hotkey = InputEventKey.new()
|
||||||
hotkey.scancode = KEY_3
|
hotkey.scancode = KEY_S
|
||||||
hotkey.control = true
|
hotkey.control = true
|
||||||
EditorBTN.set_item_accelerator(2,hotkey.get_scancode_with_modifiers()) # vanilla editor
|
hotkey.alt = true
|
||||||
|
file_btn_popup.add_item("Save File as...", FileMenuOptions.FILE_MENU_OPTION_SAVE_AS, hotkey.get_scancode_with_modifiers())
|
||||||
|
|
||||||
func load_icons():
|
#hotkey = InputEventKey.new()
|
||||||
$FileEditorContainer/TobBar/file_btn.icon = IconLoader.load_icon_from_name("file")
|
#hotkey.scancode = KEY_D
|
||||||
$FileEditorContainer/TobBar/preview_btn.icon = IconLoader.load_icon_from_name("read")
|
#hotkey.control = true
|
||||||
$FileEditorContainer/TobBar/editor_btn.icon = IconLoader.load_icon_from_name("edit_")
|
#file_btn_popup.add_item("Delete File", FileMenuOptions.FILE_MENU_OPTION_DELETE, hotkey.get_scancode_with_modifiers())
|
||||||
|
file_btn_popup.add_item("Delete File", FileMenuOptions.FILE_MENU_OPTION_DELETE)
|
||||||
|
|
||||||
func connect_signals():
|
file_btn_popup.add_separator()
|
||||||
FileList.connect("confirmed",self,"update_list")
|
|
||||||
FileBTN.connect("id_pressed",self,"_on_filebtn_pressed")
|
|
||||||
PreviewBTN.connect("id_pressed",self,"_on_previewbtn_pressed")
|
|
||||||
EditorBTN.connect("id_pressed",self,"_on_editorbtn_pressed")
|
|
||||||
|
|
||||||
OpenFileList.connect("item_selected",self,"_on_fileitem_pressed")
|
hotkey = InputEventKey.new()
|
||||||
|
hotkey.scancode = KEY_F
|
||||||
|
hotkey.control = true
|
||||||
|
file_btn_popup.add_item("Search in file...", FileMenuOptions.FILE_MENU_OPTION_SEARCH, hotkey.get_scancode_with_modifiers())
|
||||||
|
|
||||||
VanillaEditor.connect("text_changed",self,"_on_vanillaeditor_text_changed")
|
hotkey = InputEventKey.new()
|
||||||
|
hotkey.scancode = KEY_R
|
||||||
|
hotkey.control = true
|
||||||
|
file_btn_popup.add_item("Replace occurencies", FileMenuOptions.FILE_MENU_OPTION_REPLACE, hotkey.get_scancode_with_modifiers())
|
||||||
|
|
||||||
#---------------- to update from IniEditor to VanillaEditor
|
#Preview
|
||||||
IniEditor.connect("update_file",self,"_on_update_file")
|
preview_btn = MenuButton.new()
|
||||||
|
tob_bar.add_child(preview_btn)
|
||||||
|
preview_btn.text = "Preview"
|
||||||
|
|
||||||
# ---- preview buttons
|
preview_btn_popup = preview_btn.get_popup()
|
||||||
|
|
||||||
|
preview_btn_popup.add_item("BBCode Preview")
|
||||||
|
preview_btn_popup.add_item("Markdown Preview")
|
||||||
|
preview_btn_popup.add_item("HTML Preview")
|
||||||
|
preview_btn_popup.add_item("CSV Preview")
|
||||||
|
|
||||||
|
#Settings
|
||||||
|
settings_btn = MenuButton.new()
|
||||||
|
tob_bar.add_child(settings_btn)
|
||||||
|
settings_btn.text = "Settings"
|
||||||
|
|
||||||
|
settings_btn_popup = settings_btn.get_popup()
|
||||||
|
|
||||||
|
settings_btn_popup.add_item("Change Font")
|
||||||
|
|
||||||
|
#SplitContainer
|
||||||
|
editor_container = HSplitContainer.new()
|
||||||
|
vbc.add_child(editor_container)
|
||||||
|
editor_container.split_offset = 150
|
||||||
|
editor_container.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||||
|
editor_container.size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
|
|
||||||
|
#Files
|
||||||
|
file_container = VBoxContainer.new()
|
||||||
|
editor_container.add_child(file_container)
|
||||||
|
|
||||||
|
open_file_list = ItemList.new()
|
||||||
|
file_container.add_child(open_file_list)
|
||||||
|
open_file_list.allow_reselect = true
|
||||||
|
open_file_list.size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
|
|
||||||
|
file_container.add_child(HSeparator.new())
|
||||||
|
|
||||||
|
#Editor
|
||||||
|
split_editor_container = VBoxContainer.new()
|
||||||
|
editor_container.add_child(split_editor_container)
|
||||||
|
|
||||||
|
var editor_top_bar : HBoxContainer = HBoxContainer.new()
|
||||||
|
split_editor_container.add_child(editor_top_bar)
|
||||||
|
|
||||||
|
var edtopbar_label : Label = Label.new()
|
||||||
|
editor_top_bar.add_child(edtopbar_label)
|
||||||
|
edtopbar_label.text = "Editing file:"
|
||||||
|
|
||||||
|
open_file_name = LineEdit.new()
|
||||||
|
editor_top_bar.add_child(open_file_name)
|
||||||
|
open_file_name.editable = false
|
||||||
|
open_file_name.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||||
|
open_file_name.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||||
|
|
||||||
|
wrap_btn = OptionButton.new()
|
||||||
|
editor_top_bar.add_child(wrap_btn)
|
||||||
|
wrap_btn.add_item("No Wrap")
|
||||||
|
wrap_btn.add_item("Soft Wrap")
|
||||||
|
|
||||||
|
map_btn = OptionButton.new()
|
||||||
|
editor_top_bar.add_child(map_btn)
|
||||||
|
map_btn.add_item("Hide Map")
|
||||||
|
map_btn.add_item("Show Map")
|
||||||
|
map_btn.selected = 1
|
||||||
|
|
||||||
|
#dialogs
|
||||||
|
file_list = FileDialog.new()
|
||||||
|
add_child(file_list)
|
||||||
|
file_list.show_hidden_files = true
|
||||||
|
file_list.dialog_hide_on_ok = true
|
||||||
|
file_list.window_title = "Save file"
|
||||||
|
file_list.popup_exclusive = true
|
||||||
|
file_list.set_anchors_and_margins_preset(Control.PRESET_WIDE)
|
||||||
|
file_list.margin_left = 222
|
||||||
|
file_list.margin_top = 132
|
||||||
|
file_list.margin_right = -221
|
||||||
|
file_list.margin_bottom = -131
|
||||||
|
file_list.rect_min_size = Vector2(200, 70)
|
||||||
|
|
||||||
|
new_file_dialogue = AcceptDialog.new()
|
||||||
|
add_child(new_file_dialogue)
|
||||||
|
new_file_dialogue.window_title = "Create new File"
|
||||||
|
|
||||||
|
var nfd_vbc : VBoxContainer = VBoxContainer.new()
|
||||||
|
new_file_dialogue.add_child(nfd_vbc)
|
||||||
|
|
||||||
|
var nfd_name : Label = Label.new()
|
||||||
|
nfd_vbc.add_child(nfd_name)
|
||||||
|
nfd_name.text = "Insert file name (no extension needed)"
|
||||||
|
nfd_name.align = Label.ALIGN_CENTER
|
||||||
|
nfd_name.valign = Label.VALIGN_CENTER
|
||||||
|
nfd_name.size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
|
|
||||||
|
new_file_dialogue_name = LineEdit.new()
|
||||||
|
nfd_vbc.add_child(new_file_dialogue_name)
|
||||||
|
new_file_dialogue_name.clear_button_enabled = true
|
||||||
|
new_file_dialogue_name.text = "example"
|
||||||
|
new_file_dialogue_name.rect_min_size = Vector2(200, 0)
|
||||||
|
new_file_dialogue_name.size_flags_horizontal = SIZE_EXPAND | SIZE_SHRINK_CENTER
|
||||||
|
new_file_dialogue_name.size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
|
|
||||||
|
confirmation_close = ConfirmationDialog.new()
|
||||||
|
add_child(confirmation_close)
|
||||||
|
confirmation_close.dialog_text = "There are some unsaved changes.\nPress \"OK\" if you want to close this tab anyway, or \"cancel\" if you want to keep on editing your file."
|
||||||
|
confirmation_close.window_title = "Unsaved changes"
|
||||||
|
confirmation_close.set_anchors_and_margins_preset(Control.PRESET_CENTER)
|
||||||
|
|
||||||
|
select_font_dialog = FileDialog.new()
|
||||||
|
add_child(select_font_dialog)
|
||||||
|
select_font_dialog.mode = FileDialog.MODE_OPEN_FILE
|
||||||
|
select_font_dialog.access = FileDialog.ACCESS_FILESYSTEM
|
||||||
|
select_font_dialog.show_hidden_files = true
|
||||||
|
select_font_dialog.window_title = "Open a File"
|
||||||
|
select_font_dialog.resizable = true
|
||||||
|
select_font_dialog.set_anchors_and_margins_preset(Control.PRESET_WIDE)
|
||||||
|
select_font_dialog.margin_left = 222
|
||||||
|
select_font_dialog.margin_top = 132
|
||||||
|
select_font_dialog.margin_right = -221
|
||||||
|
select_font_dialog.margin_bottom = -131
|
||||||
|
select_font_dialog.rect_min_size = Vector2(200, 70)
|
||||||
|
|
||||||
|
var farr : PoolStringArray = PoolStringArray()
|
||||||
|
farr.push_back("*.TTF")
|
||||||
|
farr.push_back("*.ttf")
|
||||||
|
select_font_dialog.filters = farr
|
||||||
|
|
||||||
|
|
||||||
func update_version():
|
func _ready() -> void:
|
||||||
var plugin_version = ""
|
if not Engine.is_editor_hint():
|
||||||
var config = ConfigFile.new()
|
return
|
||||||
var err = config.load("res://addons/file-editor/plugin.cfg")
|
|
||||||
if err == OK:
|
|
||||||
plugin_version = config.get_value("plugin","version")
|
|
||||||
Version.set_text("v"+plugin_version)
|
|
||||||
|
|
||||||
func create_selected_file():
|
clean_editor()
|
||||||
update_list()
|
connect_signals()
|
||||||
FileList.mode = FileDialog.MODE_SAVE_FILE
|
|
||||||
FileList.set_title("Create a new File")
|
|
||||||
if FileList.is_connected("file_selected",self,"delete_file"):
|
|
||||||
FileList.disconnect("file_selected",self,"delete_file")
|
|
||||||
if FileList.is_connected("file_selected",self,"open_file"):
|
|
||||||
FileList.disconnect("file_selected",self,"open_file")
|
|
||||||
if not FileList.is_connected("file_selected",self,"create_new_file"):
|
|
||||||
FileList.connect("file_selected",self,"create_new_file")
|
|
||||||
open_filelist()
|
|
||||||
|
|
||||||
func open_selected_file():
|
if LastOpenedFiles:
|
||||||
update_list()
|
var opened_files : Array = LastOpenedFiles.load_opened_files()
|
||||||
FileList.mode = FileDialog.MODE_OPEN_FILE
|
for opened_file in opened_files:
|
||||||
FileList.set_title("Select a File you want to edit")
|
open_file(opened_file[1], opened_file[2])
|
||||||
if FileList.is_connected("file_selected",self,"delete_file"):
|
|
||||||
FileList.disconnect("file_selected",self,"delete_file")
|
|
||||||
if FileList.is_connected("file_selected",self,"create_new_file"):
|
|
||||||
FileList.disconnect("file_selected",self,"create_new_file")
|
|
||||||
if not FileList.is_connected("file_selected",self,"open_file"):
|
|
||||||
FileList.connect("file_selected",self,"open_file")
|
|
||||||
open_filelist()
|
|
||||||
|
|
||||||
func delete_selected_file():
|
file_list.set_filters(EXTENSIONS)
|
||||||
update_list()
|
|
||||||
FileList.mode = FileDialog.MODE_OPEN_FILES
|
|
||||||
FileList.set_title("Select one or more Files you want to delete")
|
|
||||||
if FileList.is_connected("file_selected",self,"open_file"):
|
|
||||||
FileList.disconnect("file_selected",self,"open_file")
|
|
||||||
if FileList.is_connected("file_selected",self,"create_new_file"):
|
|
||||||
FileList.disconnect("file_selected",self,"create_new_file")
|
|
||||||
if not FileList.is_connected("files_selected",self,"delete_file"):
|
|
||||||
FileList.connect("files_selected",self,"delete_file")
|
|
||||||
open_filelist()
|
|
||||||
|
|
||||||
func save_current_file_as():
|
|
||||||
update_list()
|
|
||||||
FileList.mode = FileDialog.MODE_SAVE_FILE
|
|
||||||
FileList.set_title("Save this File as...")
|
|
||||||
if FileList.is_connected("file_selected",self,"delete_file"):
|
|
||||||
FileList.disconnect("file_selected",self,"delete_file")
|
|
||||||
if FileList.is_connected("file_selected",self,"open_file"):
|
|
||||||
FileList.disconnect("file_selected",self,"open_file")
|
|
||||||
if not FileList.is_connected("file_selected",self,"create_new_file"):
|
|
||||||
FileList.connect("file_selected",self,"create_new_file")
|
|
||||||
open_filelist()
|
|
||||||
|
|
||||||
func _on_filebtn_pressed(index : int):
|
func connect_signals() -> void:
|
||||||
|
file_list.connect("confirmed",self,"update_list")
|
||||||
|
file_btn_popup.connect("id_pressed",self,"_on_file_btn_pressed")
|
||||||
|
preview_btn_popup.connect("id_pressed",self,"_on_preview_btn_pressed")
|
||||||
|
settings_btn_popup.connect("id_pressed",self,"_on_settings_btn_pressed")
|
||||||
|
|
||||||
|
open_file_list.connect("item_selected",self,"_on_fileitem_pressed")
|
||||||
|
wrap_btn.connect("item_selected",self,"on_wrap_button")
|
||||||
|
map_btn.connect("item_selected",self,"on_minimap_button")
|
||||||
|
|
||||||
|
select_font_dialog.connect("file_selected",self,"_on_font_selected")
|
||||||
|
|
||||||
|
|
||||||
|
func create_selected_file() -> void:
|
||||||
|
update_list()
|
||||||
|
|
||||||
|
file_list.mode = FileDialog.MODE_SAVE_FILE
|
||||||
|
file_list.set_title("Create a new File")
|
||||||
|
|
||||||
|
if file_list.is_connected("file_selected",self,"delete_file"):
|
||||||
|
file_list.disconnect("file_selected",self,"delete_file")
|
||||||
|
|
||||||
|
if file_list.is_connected("file_selected",self,"open_file"):
|
||||||
|
file_list.disconnect("file_selected",self,"open_file")
|
||||||
|
|
||||||
|
if not file_list.is_connected("file_selected",self,"create_new_file"):
|
||||||
|
file_list.connect("file_selected",self,"create_new_file")
|
||||||
|
|
||||||
|
open_file_list()
|
||||||
|
|
||||||
|
func open_selected_file() -> void:
|
||||||
|
update_list()
|
||||||
|
|
||||||
|
file_list.mode = FileDialog.MODE_OPEN_FILE
|
||||||
|
file_list.set_title("Select a File you want to edit")
|
||||||
|
|
||||||
|
if file_list.is_connected("file_selected",self,"delete_file"):
|
||||||
|
file_list.disconnect("file_selected",self,"delete_file")
|
||||||
|
|
||||||
|
if file_list.is_connected("file_selected",self,"create_new_file"):
|
||||||
|
file_list.disconnect("file_selected",self,"create_new_file")
|
||||||
|
|
||||||
|
if not file_list.is_connected("file_selected",self,"open_file"):
|
||||||
|
file_list.connect("file_selected",self,"open_file")
|
||||||
|
|
||||||
|
open_file_list()
|
||||||
|
|
||||||
|
func delete_selected_file() -> void:
|
||||||
|
update_list()
|
||||||
|
|
||||||
|
file_list.mode = FileDialog.MODE_OPEN_FILES
|
||||||
|
file_list.set_title("Select one or more Files you want to delete")
|
||||||
|
|
||||||
|
if file_list.is_connected("file_selected",self,"open_file"):
|
||||||
|
file_list.disconnect("file_selected",self,"open_file")
|
||||||
|
|
||||||
|
if file_list.is_connected("file_selected",self,"create_new_file"):
|
||||||
|
file_list.disconnect("file_selected",self,"create_new_file")
|
||||||
|
|
||||||
|
if not file_list.is_connected("files_selected",self,"delete_file"):
|
||||||
|
file_list.connect("files_selected",self,"delete_file")
|
||||||
|
|
||||||
|
open_file_list()
|
||||||
|
|
||||||
|
func save_current_file_as() -> void:
|
||||||
|
update_list()
|
||||||
|
file_list.mode = FileDialog.MODE_SAVE_FILE
|
||||||
|
file_list.set_title("Save this File as...")
|
||||||
|
|
||||||
|
if file_list.is_connected("file_selected",self,"delete_file"):
|
||||||
|
file_list.disconnect("file_selected",self,"delete_file")
|
||||||
|
|
||||||
|
if file_list.is_connected("file_selected",self,"open_file"):
|
||||||
|
file_list.disconnect("file_selected",self,"open_file")
|
||||||
|
|
||||||
|
if not file_list.is_connected("file_selected",self,"create_new_file"):
|
||||||
|
file_list.connect("file_selected",self,"create_new_file")
|
||||||
|
|
||||||
|
open_file_list()
|
||||||
|
|
||||||
|
func _on_file_btn_pressed(index : int) -> void:
|
||||||
|
match index:
|
||||||
|
FileMenuOptions.FILE_MENU_OPTION_NEW:
|
||||||
|
create_selected_file()
|
||||||
|
FileMenuOptions.FILE_MENU_OPTION_OPEN:
|
||||||
|
open_selected_file()
|
||||||
|
FileMenuOptions.FILE_MENU_OPTION_CLOSE:
|
||||||
|
if current_file_index!=-1 and current_file_path != "":
|
||||||
|
close_file(current_file_index)
|
||||||
|
|
||||||
|
FileMenuOptions.FILE_MENU_OPTION_SAVE:
|
||||||
|
if current_file_index!=-1 and current_file_path != "":
|
||||||
|
save_as = false
|
||||||
|
|
||||||
|
save_file(current_file_path)
|
||||||
|
FileMenuOptions.FILE_MENU_OPTION_SAVE_AS:
|
||||||
|
if current_file_index!=-1 and current_file_path != "":
|
||||||
|
save_as = true
|
||||||
|
save_file(current_file_path)
|
||||||
|
save_current_file_as()
|
||||||
|
FileMenuOptions.FILE_MENU_OPTION_DELETE:
|
||||||
|
delete_selected_file()
|
||||||
|
FileMenuOptions.FILE_MENU_OPTION_SEARCH:
|
||||||
|
current_editor.open_search_box()
|
||||||
|
FileMenuOptions.FILE_MENU_OPTION_REPLACE:
|
||||||
|
current_editor.open_replace_box()
|
||||||
|
|
||||||
|
func _on_preview_btn_pressed(id : int) -> void:
|
||||||
|
if id == 0:
|
||||||
|
bbcode_preview()
|
||||||
|
elif id == 1:
|
||||||
|
markdown_preview()
|
||||||
|
elif id == 2:
|
||||||
|
html_preview()
|
||||||
|
elif id == 3:
|
||||||
|
csv_preview()
|
||||||
|
|
||||||
|
func _on_settings_btn_pressed(index : int) -> void:
|
||||||
match index:
|
match index:
|
||||||
0:
|
0:
|
||||||
create_selected_file()
|
select_font_dialog.popup()
|
||||||
1:
|
|
||||||
open_selected_file()
|
|
||||||
2:
|
|
||||||
if current_file_index!=-1 and current_file_path != "":
|
|
||||||
close_file(current_file_index)
|
|
||||||
|
|
||||||
3:
|
func _on_font_selected(font_path : String) -> void:
|
||||||
if current_file_index!=-1 and current_file_path != "":
|
current_editor.set_font(font_path)
|
||||||
save_as = false
|
LastOpenedFiles.store_editor_fonts(current_file_path.get_file(), font_path)
|
||||||
save_file(current_file_path)
|
|
||||||
4:
|
|
||||||
if current_file_index!=-1 and current_file_path != "":
|
|
||||||
save_as = true
|
|
||||||
save_file(current_file_path)
|
|
||||||
save_current_file_as()
|
|
||||||
5:
|
|
||||||
delete_selected_file()
|
|
||||||
|
|
||||||
func _on_previewbtn_pressed(id : int):
|
func _on_fileitem_pressed(index : int) -> void:
|
||||||
if id == 0:
|
|
||||||
bbcode_preview()
|
|
||||||
elif id == 1:
|
|
||||||
markdown_preview()
|
|
||||||
elif id == 2:
|
|
||||||
html_preview()
|
|
||||||
elif id == 3:
|
|
||||||
csv_preview()
|
|
||||||
elif id == 4:
|
|
||||||
xml_preview()
|
|
||||||
elif id == 5:
|
|
||||||
json_preview()
|
|
||||||
|
|
||||||
func _on_editorbtn_pressed(index : int):
|
|
||||||
match index:
|
|
||||||
0:
|
|
||||||
if not VanillaEditor.visible:
|
|
||||||
VanillaEditor.show()
|
|
||||||
IniEditor.hide()
|
|
||||||
2:
|
|
||||||
if not IniEditor.visible:
|
|
||||||
VanillaEditor.hide()
|
|
||||||
IniEditor.show()
|
|
||||||
|
|
||||||
func _on_fileitem_pressed(index : int):
|
|
||||||
current_file_index = index
|
current_file_index = index
|
||||||
var selected_item_metadata = OpenFileList.get_item_metadata(index)
|
var selected_item_metadata : Array = open_file_list.get_item_metadata(current_file_index)
|
||||||
current_file_path = selected_item_metadata[2]
|
var extension : String = selected_item_metadata[0].current_path.get_file().get_extension()
|
||||||
|
|
||||||
OpenFileName.set_text(current_file_path)
|
if open_file_list.get_item_text(current_file_index).begins_with("(*)"):
|
||||||
|
editing_file = true
|
||||||
|
else:
|
||||||
|
editing_file = false
|
||||||
|
|
||||||
VanillaEditor.new_file_open(selected_item_metadata[0],selected_item_metadata[1])
|
current_file_path = selected_item_metadata[0].current_path
|
||||||
open_in_inieditor(current_file_path)
|
|
||||||
|
|
||||||
func close_file(index):
|
if current_editor.visible or current_editor == null:
|
||||||
LastOpenedFiles.remove_opened_file(index,OpenFileList)
|
if current_editor != null:
|
||||||
OpenFileList.remove_item(index)
|
current_editor.hide()
|
||||||
OpenFileName.clear()
|
|
||||||
VanillaEditor.clean_editor()
|
|
||||||
|
|
||||||
func open_file(path : String):
|
current_editor = selected_item_metadata[0]
|
||||||
|
current_editor.show()
|
||||||
|
open_file_name.set_text(current_editor.current_path)
|
||||||
|
|
||||||
|
if wrap_btn.get_selected_id() == 1:
|
||||||
|
current_editor.set_wrap_enabled(true)
|
||||||
|
else:
|
||||||
|
current_editor.set_wrap_enabled(false)
|
||||||
|
|
||||||
|
if map_btn.get_selected_id() == 1:
|
||||||
|
current_editor.draw_minimap(true)
|
||||||
|
else:
|
||||||
|
current_editor.draw_minimap(false)
|
||||||
|
|
||||||
|
func open_file(path : String, font : String = "null") -> void:
|
||||||
if current_file_path != path:
|
if current_file_path != path:
|
||||||
current_file_path = path
|
current_file_path = path
|
||||||
|
|
||||||
open_in_vanillaeditor(path)
|
var vanilla_editor : Control = open_in_vanillaeditor(path)
|
||||||
open_in_inieditor(path)
|
|
||||||
|
|
||||||
LastOpenedFiles.store_opened_files(OpenFileList)
|
if font != "null" and vanilla_editor.get("custom_fonts/font")!=null:
|
||||||
|
vanilla_editor.set_font(font)
|
||||||
|
|
||||||
|
generate_file_item(path, vanilla_editor)
|
||||||
|
|
||||||
|
LastOpenedFiles.store_opened_files(open_file_list)
|
||||||
|
|
||||||
|
current_editor.show()
|
||||||
|
|
||||||
|
func generate_file_item(path : String , veditor : Control) -> void:
|
||||||
|
open_file_name.set_text(path)
|
||||||
|
open_file_list.add_item(path.get_file(), null,true)
|
||||||
|
|
||||||
|
current_file_index = open_file_list.get_item_count()-1
|
||||||
|
|
||||||
|
open_file_list.set_item_metadata(current_file_index,[veditor])
|
||||||
|
open_file_list.select(open_file_list.get_item_count()-1)
|
||||||
|
|
||||||
|
func open_in_vanillaeditor(path : String) -> Control:
|
||||||
|
var editor : Control = VanillaEditor.new()
|
||||||
|
editor.LastOpenedFiles = LastOpenedFiles
|
||||||
|
editor.file_list = file_list
|
||||||
|
split_editor_container.add_child(editor,true)
|
||||||
|
|
||||||
|
if current_editor and current_editor!=editor:
|
||||||
|
editor.show()
|
||||||
|
current_editor.hide()
|
||||||
|
|
||||||
|
|
||||||
|
current_editor = editor
|
||||||
|
editor.connect("text_changed",self,"_on_vanillaeditor_text_changed")
|
||||||
|
|
||||||
func open_in_vanillaeditor(path : String):
|
|
||||||
var current_file : File = File.new()
|
var current_file : File = File.new()
|
||||||
current_file.open(path,File.READ)
|
current_file.open(path,File.READ)
|
||||||
|
var current_content : String = ""
|
||||||
|
current_content = current_file.get_as_text()
|
||||||
|
|
||||||
var current_content = current_file.get_as_text()
|
|
||||||
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(path))
|
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(path))
|
||||||
|
|
||||||
current_file.close()
|
current_file.close()
|
||||||
|
editor.new_file_open(current_content,last_modified,current_file_path)
|
||||||
OpenFileName.set_text(path)
|
|
||||||
OpenFileList.add_item(path.get_file(),IconLoader.load_icon_from_name("file"),true)
|
|
||||||
current_file_index = OpenFileList.get_item_count()-1
|
|
||||||
OpenFileList.set_item_metadata(current_file_index,[current_content,last_modified,path])
|
|
||||||
|
|
||||||
VanillaEditor.new_file_open(current_content,last_modified)
|
|
||||||
|
|
||||||
update_list()
|
update_list()
|
||||||
|
|
||||||
OpenFileList.select(OpenFileList.get_item_count()-1)
|
if wrap_btn.get_selected_id() == 1:
|
||||||
|
current_editor.set_wrap_enabled(true)
|
||||||
|
|
||||||
func open_in_inieditor(path : String):
|
return editor
|
||||||
var extension = path.get_file().get_extension()
|
|
||||||
if extension == "ini" or extension == "cfg":
|
|
||||||
IniEditor.current_file_path = path
|
|
||||||
var current_file : ConfigFile = ConfigFile.new()
|
|
||||||
var err = current_file.load(path)
|
|
||||||
if err == OK:
|
|
||||||
var sections = current_file.get_sections()
|
|
||||||
var filemap = []
|
|
||||||
for section in sections:
|
|
||||||
var keys = []
|
|
||||||
var section_keys = current_file.get_section_keys(section)
|
|
||||||
for key in section_keys:
|
|
||||||
keys.append([key,current_file.get_value(section,key)])
|
|
||||||
|
|
||||||
filemap.append([section,keys])
|
func close_file(index : int) -> void:
|
||||||
|
if editing_file:
|
||||||
IniEditor.open_file(filemap)
|
confirmation_close.popup()
|
||||||
else:
|
else:
|
||||||
IniEditor.clean_editor()
|
confirm_close(index)
|
||||||
|
|
||||||
|
func confirm_close(index : int) -> void:
|
||||||
|
LastOpenedFiles.remove_opened_file(index,open_file_list)
|
||||||
|
open_file_list.remove_item(index)
|
||||||
|
open_file_name.clear()
|
||||||
|
current_editor.queue_free()
|
||||||
|
|
||||||
func _on_update_file():
|
if index > 0:
|
||||||
VanillaEditor.clean_editor()
|
open_file_list.select(index-1)
|
||||||
|
_on_fileitem_pressed(index-1)
|
||||||
|
|
||||||
|
func _on_update_file() -> void:
|
||||||
var current_file : File = File.new()
|
var current_file : File = File.new()
|
||||||
current_file.open(current_file_path,File.READ)
|
current_file.open(current_file_path,File.READ)
|
||||||
|
|
||||||
var current_content = current_file.get_as_text()
|
var current_content : String = current_file.get_as_text()
|
||||||
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(current_file_path))
|
var last_modified : Dictionary = OS.get_datetime_from_unix_time(current_file.get_modified_time(current_file_path))
|
||||||
|
|
||||||
current_file.close()
|
current_file.close()
|
||||||
|
|
||||||
VanillaEditor.new_file_open(current_content,last_modified)
|
current_editor.new_file_open(current_content,last_modified,current_file_path)
|
||||||
|
|
||||||
func delete_file(files_selected : PoolStringArray):
|
func delete_file(files_selected : PoolStringArray) -> void:
|
||||||
var dir = Directory.new()
|
var dir = Directory.new()
|
||||||
for file in files_selected:
|
for file in files_selected:
|
||||||
dir.remove(file)
|
dir.remove(file)
|
||||||
|
|
||||||
update_list()
|
update_list()
|
||||||
|
|
||||||
func open_newfiledialogue():
|
func open_new_file_dialogue() -> void:
|
||||||
NewFileDialogue.popup()
|
new_file_dialogue.popup()
|
||||||
NewFileDialogue.set_position(OS.get_screen_size()/2 - NewFileDialogue.get_size()/2)
|
new_file_dialogue.set_position(OS.get_screen_size()/2 - new_file_dialogue.get_size()/2)
|
||||||
|
|
||||||
func open_filelist():
|
func open_file_list() -> void:
|
||||||
update_list()
|
update_list()
|
||||||
FileList.popup()
|
file_list.popup()
|
||||||
FileList.set_position(OS.get_screen_size()/2 - FileList.get_size()/2)
|
file_list.set_position(OS.get_screen_size()/2 - file_list.get_size()/2)
|
||||||
|
|
||||||
func _on_vanillaeditor_text_changed():
|
func create_new_file(given_path : String) -> void:
|
||||||
if not OpenFileList.get_item_text(current_file_index).ends_with("(*)"):
|
var current_file : File = File.new()
|
||||||
OpenFileList.set_item_text(current_file_index,OpenFileList.get_item_text(current_file_index)+"(*)")
|
|
||||||
|
|
||||||
func create_new_file(given_path : String):
|
|
||||||
var current_file = File.new()
|
|
||||||
current_file.open(given_path,File.WRITE)
|
current_file.open(given_path,File.WRITE)
|
||||||
if save_as :
|
|
||||||
current_file.store_line(VanillaEditor.get_node("TextEditor").get_text())
|
if save_as:
|
||||||
|
current_file.store_line(current_editor.text_editor.get_text())
|
||||||
current_file.close()
|
current_file.close()
|
||||||
|
|
||||||
open_file(given_path)
|
open_file(given_path)
|
||||||
|
|
||||||
func save_file(current_path : String):
|
func save_file(current_path : String) -> void:
|
||||||
var current_file = File.new()
|
print("Saving file: ",current_path)
|
||||||
|
|
||||||
|
var current_file : File = File.new()
|
||||||
current_file.open(current_path,File.WRITE)
|
current_file.open(current_path,File.WRITE)
|
||||||
var current_content = VanillaEditor.get_node("TextEditor").get_text()
|
var current_content : String = ""
|
||||||
if current_content == null:
|
var lines : int = current_editor.text_editor.get_line_count()
|
||||||
current_content = ""
|
|
||||||
current_file.store_line(current_content)
|
for line in range(lines):
|
||||||
|
#if current_editor.text_editor.get_line(line) == "":
|
||||||
|
# continue
|
||||||
|
|
||||||
|
current_content = current_editor.text_editor.get_text()
|
||||||
|
current_file.store_line(current_editor.text_editor.get_line(line))
|
||||||
|
|
||||||
current_file.close()
|
current_file.close()
|
||||||
|
|
||||||
current_file_path = current_file_path
|
current_file_path = current_path
|
||||||
|
|
||||||
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(current_path))
|
var last_modified : Dictionary = OS.get_datetime_from_unix_time(current_file.get_modified_time(current_file_path))
|
||||||
|
|
||||||
VanillaEditor.update_lastmodified(last_modified,"save")
|
current_editor.update_lastmodified(last_modified,"save")
|
||||||
OpenFileList.set_item_metadata(current_file_index,[current_content,last_modified,current_path])
|
|
||||||
|
|
||||||
if OpenFileList.get_item_text(current_file_index).ends_with("(*)"):
|
|
||||||
OpenFileList.set_item_text(current_file_index,OpenFileList.get_item_text(current_file_index).rstrip("(*)"))
|
|
||||||
|
|
||||||
open_in_inieditor(current_file_path)
|
open_file_list.set_item_metadata(current_file_index,[current_editor])
|
||||||
|
|
||||||
|
if open_file_list.get_item_text(current_file_index).begins_with("(*)"):
|
||||||
|
open_file_list.set_item_text(current_file_index,open_file_list.get_item_text(current_file_index).lstrip("(*)"))
|
||||||
|
editing_file = false
|
||||||
|
|
||||||
update_list()
|
update_list()
|
||||||
|
|
||||||
func clean_editor():
|
func clean_editor() -> void:
|
||||||
OpenFileName.clear()
|
var nodes : Array = get_tree().get_nodes_in_group("vanilla_editor")
|
||||||
OpenFileList.clear()
|
|
||||||
VanillaEditor.clean_editor()
|
|
||||||
IniEditor.clean_editor()
|
|
||||||
|
|
||||||
func csv_preview():
|
for i in range(nodes.size()):
|
||||||
var preview = Preview.instance()
|
var vanillaeditor : Node = nodes[i]
|
||||||
|
vanillaeditor.queue_free()
|
||||||
|
|
||||||
|
open_file_name.clear()
|
||||||
|
open_file_list.clear()
|
||||||
|
|
||||||
|
|
||||||
|
func csv_preview() -> void:
|
||||||
|
var preview : Control = Preview.new()
|
||||||
get_parent().get_parent().get_parent().add_child(preview)
|
get_parent().get_parent().get_parent().add_child(preview)
|
||||||
preview.popup()
|
preview.popup()
|
||||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||||
var lines = VanillaEditor.get_node("TextEditor").get_line_count()
|
var lines : int = current_editor.text_editor.get_line_count()
|
||||||
var rows = []
|
var rows : Array = Array()
|
||||||
for i in range(0,lines-1):
|
|
||||||
rows.append(VanillaEditor.get_node("TextEditor").get_line(i).rsplit(",",false))
|
for i in range(0, lines-1):
|
||||||
|
rows.append(current_editor.text_editor.get_line(i).rsplit(",",false))
|
||||||
|
|
||||||
preview.print_csv(rows)
|
preview.print_csv(rows)
|
||||||
|
|
||||||
func bbcode_preview():
|
func bbcode_preview() -> void:
|
||||||
var preview = Preview.instance()
|
var preview : Control = Preview.new()
|
||||||
get_parent().get_parent().get_parent().add_child(preview)
|
get_parent().get_parent().get_parent().add_child(preview)
|
||||||
preview.popup()
|
preview.popup()
|
||||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||||
preview.print_bb(VanillaEditor.get_node("TextEditor").get_text())
|
preview.print_bb(current_editor.text_editor.get_text())
|
||||||
|
|
||||||
func markdown_preview():
|
func markdown_preview() -> void:
|
||||||
var preview = Preview.instance()
|
var preview : Control = Preview.new()
|
||||||
get_parent().get_parent().get_parent().add_child(preview)
|
get_parent().get_parent().get_parent().add_child(preview)
|
||||||
preview.popup()
|
preview.popup()
|
||||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||||
preview.print_markdown(VanillaEditor.get_node("TextEditor").get_text())
|
preview.print_markdown(current_editor.text_editor.get_text())
|
||||||
|
|
||||||
func html_preview():
|
func html_preview() -> void:
|
||||||
var preview = Preview.instance()
|
var preview : Control = Preview.new()
|
||||||
get_parent().get_parent().get_parent().add_child(preview)
|
get_parent().get_parent().get_parent().add_child(preview)
|
||||||
preview.popup()
|
preview.popup()
|
||||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||||
preview.print_html(VanillaEditor.get_node("TextEditor").get_text())
|
preview.print_html(current_editor.text_editor.get_text())
|
||||||
|
|
||||||
func xml_preview():
|
|
||||||
pass
|
|
||||||
|
|
||||||
func json_preview():
|
func _on_vanillaeditor_text_changed() -> void:
|
||||||
pass
|
if not open_file_list.get_item_text(current_file_index).begins_with("(*)"):
|
||||||
|
open_file_list.set_item_text(current_file_index,"(*)"+open_file_list.get_item_text(current_file_index))
|
||||||
|
editing_file = true
|
||||||
|
|
||||||
func update_list():
|
func update_list() -> void:
|
||||||
FileList.invalidate()
|
file_list.invalidate()
|
||||||
|
|
||||||
|
func on_wrap_button(index:int) -> void:
|
||||||
|
match index:
|
||||||
|
0:
|
||||||
|
current_editor.set_wrap_enabled(false)
|
||||||
|
1:
|
||||||
|
current_editor.set_wrap_enabled(true)
|
||||||
|
|
||||||
|
func on_minimap_button(index:int) -> void:
|
||||||
|
match index:
|
||||||
|
0:
|
||||||
|
current_editor.draw_minimap(false)
|
||||||
|
1:
|
||||||
|
current_editor.draw_minimap(true)
|
||||||
|
|
||||||
|
func check_file_preview(file : String) -> void:
|
||||||
|
# check whether the opened file has a corresponding preview session for its extension
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ConfirmationDialog_confirmed() -> void:
|
||||||
|
confirm_close(current_file_index)
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
tool
|
|
||||||
extends ToolButton
|
|
||||||
|
|
||||||
var fileditor_workspace
|
|
||||||
var fileditor
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
connect("pressed",self,"show_fileditor")
|
|
||||||
|
|
||||||
func show_fileditor():
|
|
||||||
fileditor_workspace.get_children()[0].hide()
|
|
||||||
fileditor_workspace.get_children()[1].hide()
|
|
||||||
fileditor_workspace.get_children()[2].hide()
|
|
||||||
fileditor_workspace.add_child(fileditor)
|
|
||||||
fileditor.show()
|
|
||||||
|
|
||||||
func load_values(fi, fe):
|
|
||||||
fileditor_workspace = fi
|
|
||||||
fileditor = fe
|
|
@ -1,69 +0,0 @@
|
|||||||
tool
|
|
||||||
extends VBoxContainer
|
|
||||||
|
|
||||||
|
|
||||||
onready var ReadOnly = $FileInfo/Readonly
|
|
||||||
|
|
||||||
onready var TextEditor = $TextEditor
|
|
||||||
|
|
||||||
onready var LastModified = $FileInfo/lastmodified
|
|
||||||
|
|
||||||
onready var FileList = get_parent().get_parent().get_parent().get_node("FileList")
|
|
||||||
|
|
||||||
onready var ClosingFile = get_parent().get_parent().get_parent().get_node("ConfirmationDialog")
|
|
||||||
|
|
||||||
onready var LastModifiedIcon = $FileInfo/lastmodified_icon
|
|
||||||
|
|
||||||
var current_path = ""
|
|
||||||
var current_filename = ""
|
|
||||||
var old_file_content = ""
|
|
||||||
var Preview = load("res://addons/file-editor/scenes/Preview.tscn")
|
|
||||||
|
|
||||||
signal text_changed()
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
|
|
||||||
ClosingFile.connect("confirmed",self,"queue_free")
|
|
||||||
|
|
||||||
ReadOnly.connect("toggled",self,"_on_Readonly_toggled")
|
|
||||||
|
|
||||||
ReadOnly.set("custom_icons/checked",IconLoader.load_icon_from_name("read"))
|
|
||||||
ReadOnly.set("custom_icons/unchecked",IconLoader.load_icon_from_name("edit"))
|
|
||||||
|
|
||||||
func clean_editor():
|
|
||||||
TextEditor.set_text("")
|
|
||||||
LastModifiedIcon.texture = IconLoader.load_icon_from_name("save")
|
|
||||||
LastModified.set_text("")
|
|
||||||
FileList.invalidate()
|
|
||||||
|
|
||||||
func new_file_open(file_content, last_modified):
|
|
||||||
TextEditor.set_text(file_content)
|
|
||||||
update_lastmodified(last_modified,"save")
|
|
||||||
FileList.invalidate()
|
|
||||||
|
|
||||||
func update_lastmodified(last_modified : Dictionary, icon : String):
|
|
||||||
LastModified.set_text(str(last_modified.hour)+":"+str(last_modified.minute)+" "+str(last_modified.day)+"/"+str(last_modified.month)+"/"+str(last_modified.year))
|
|
||||||
LastModifiedIcon.texture = IconLoader.load_icon_from_name(icon)
|
|
||||||
|
|
||||||
func new_file_create(file_name):
|
|
||||||
TextEditor.set_text("")
|
|
||||||
|
|
||||||
FileList.invalidate()
|
|
||||||
|
|
||||||
func close_editor():
|
|
||||||
if old_file_content != TextEditor.get_text():
|
|
||||||
ClosingFile.popup()
|
|
||||||
else:
|
|
||||||
queue_free()
|
|
||||||
|
|
||||||
func _on_Readonly_toggled(button_pressed):
|
|
||||||
if button_pressed:
|
|
||||||
ReadOnly.set_text("Read Only")
|
|
||||||
TextEditor.readonly = (true)
|
|
||||||
else:
|
|
||||||
ReadOnly.set_text("Can Edit")
|
|
||||||
TextEditor.readonly = (false)
|
|
||||||
|
|
||||||
func _on_TextEditor_text_changed():
|
|
||||||
LastModifiedIcon.texture = IconLoader.load_icon_from_name("saveas")
|
|
||||||
emit_signal("text_changed")
|
|
@ -1,16 +1,13 @@
|
|||||||
tool
|
tool
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
func _ready():
|
|
||||||
pass
|
|
||||||
|
|
||||||
func load_icon_from_name(icon_name : String) -> ImageTexture:
|
func load_icon_from_name(icon_name : String) -> ImageTexture:
|
||||||
var file = File.new()
|
var file : File = File.new()
|
||||||
var image = Image.new()
|
var image : Image = Image.new()
|
||||||
var texture = ImageTexture.new()
|
var texture : ImageTexture = ImageTexture.new()
|
||||||
|
|
||||||
file.open("res://addons/file-editor/icons.pngs/"+icon_name+".png.buttonicon", File.READ)
|
file.open("res://addons/file-editor/icons.pngs/"+icon_name+".png.buttonicon", File.READ)
|
||||||
var buffer = file.get_buffer(file.get_len())
|
var buffer : PoolByteArray = file.get_buffer(file.get_len())
|
||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
image.load_png_from_buffer(buffer)
|
image.load_png_from_buffer(buffer)
|
||||||
|
@ -1,274 +0,0 @@
|
|||||||
extends Control
|
|
||||||
tool
|
|
||||||
|
|
||||||
onready var Keys = $VBoxContainer/HSplitContainer/VBoxContainer2/keys
|
|
||||||
onready var Sections = $VBoxContainer/HSplitContainer/VBoxContainer/sections2
|
|
||||||
|
|
||||||
onready var BtnAddSection = $VBoxContainer/HSplitContainer/VBoxContainer/HBoxContainer2/btn_add_section
|
|
||||||
onready var BtnRemoveSection = $VBoxContainer/HSplitContainer/VBoxContainer/HBoxContainer2/btn_remove_section
|
|
||||||
|
|
||||||
onready var BtnAddKey = $VBoxContainer/HSplitContainer/VBoxContainer2/HBoxContainer3/btn_add_key
|
|
||||||
onready var BtnEditKey = $VBoxContainer/HSplitContainer/VBoxContainer2/HBoxContainer3/btn_edit_key
|
|
||||||
onready var BtnRemoveKey = $VBoxContainer/HSplitContainer/VBoxContainer2/HBoxContainer3/btn_remove_key
|
|
||||||
|
|
||||||
onready var Section = $Section
|
|
||||||
onready var Key = $Key
|
|
||||||
|
|
||||||
var selected_key
|
|
||||||
var selected_section : int = -1
|
|
||||||
var root : TreeItem
|
|
||||||
|
|
||||||
var current_file_path : String = ""
|
|
||||||
|
|
||||||
signal update_file()
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
create_table_names()
|
|
||||||
connect_signals()
|
|
||||||
load_icons()
|
|
||||||
clean_editor()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# var metadata = [["name","Godot Engine"],["version","1.0.0"],["color","Light Blue"]]
|
|
||||||
# load_section("Engine", metadata)
|
|
||||||
|
|
||||||
func connect_signals():
|
|
||||||
Sections.connect("item_selected",self,"_on_section_selected")
|
|
||||||
Sections.connect("nothing_selected",self,"_on_nosection_selected")
|
|
||||||
|
|
||||||
BtnAddSection.connect("pressed",self,"_on_addsection_pressed")
|
|
||||||
BtnRemoveSection.connect("pressed",self,"_on_removesection_pressed")
|
|
||||||
|
|
||||||
Keys.connect("item_selected",self,"_on_key_selected")
|
|
||||||
Keys.connect("nothing_selected",self,"_on_nokey_selected")
|
|
||||||
|
|
||||||
BtnAddKey.connect("pressed",self,"_on_addkey_pressed")
|
|
||||||
BtnRemoveKey.connect("pressed",self,"_on_removekey_pressed")
|
|
||||||
BtnEditKey.connect("pressed",self,"_on_editkey_pressed")
|
|
||||||
|
|
||||||
func create_table_names():
|
|
||||||
create_root()
|
|
||||||
Keys.hide_root = true
|
|
||||||
|
|
||||||
Keys.set_column_titles_visible(true)
|
|
||||||
Keys.set_column_title(0,"Name")
|
|
||||||
Keys.set_column_title(1,"Value")
|
|
||||||
|
|
||||||
func load_icons():
|
|
||||||
$VBoxContainer/HSplitContainer/VBoxContainer/HBoxContainer/sections_icon.texture = IconLoader.load_icon_from_name("sections")
|
|
||||||
$VBoxContainer/HSplitContainer/VBoxContainer2/HBoxContainer2/keys_icon.texture = IconLoader.load_icon_from_name("keys")
|
|
||||||
BtnAddSection.icon = IconLoader.load_icon_from_name("add")
|
|
||||||
BtnAddSection.hint_tooltip = "Add a new Section"
|
|
||||||
BtnRemoveSection.icon = IconLoader.load_icon_from_name("delete")
|
|
||||||
BtnRemoveSection.hint_tooltip = "Remove selected Section"
|
|
||||||
|
|
||||||
BtnAddKey.icon = IconLoader.load_icon_from_name("add")
|
|
||||||
BtnAddKey.hint_tooltip = "Add a new Key"
|
|
||||||
BtnRemoveKey.icon = IconLoader.load_icon_from_name("delete")
|
|
||||||
BtnRemoveKey.hint_tooltip = "Remove selected Key"
|
|
||||||
BtnEditKey.icon = IconLoader.load_icon_from_name("edit_")
|
|
||||||
BtnEditKey.hint_tooltip = "Edit selected Key"
|
|
||||||
|
|
||||||
func _on_addsection_pressed():
|
|
||||||
Section.get_node("Container/section/_name").show()
|
|
||||||
Section.window_title = "Add a new Section"
|
|
||||||
if not Section.is_connected("confirmed",self,"new_section"):
|
|
||||||
Section.connect("confirmed",self,"new_section")
|
|
||||||
if Section.is_connected("confirmed",self,"remove_section"):
|
|
||||||
Section.disconnect("confirmed",self,"remove_section")
|
|
||||||
Section.popup()
|
|
||||||
|
|
||||||
func _on_removesection_pressed():
|
|
||||||
Section.get_node("Container").hide()
|
|
||||||
Section.window_title = "Remove selected Section"
|
|
||||||
Section.dialog_text = "Are you sure you want to remove this Section?"
|
|
||||||
if not Section.is_connected("confirmed",self,"remove_section"):
|
|
||||||
Section.connect("confirmed",self,"remove_section")
|
|
||||||
if Section.is_connected("confirmed",self,"new_section"):
|
|
||||||
Section.disconnect("confirmed",self,"new_section")
|
|
||||||
Section.popup()
|
|
||||||
|
|
||||||
func _on_addkey_pressed():
|
|
||||||
Key.get_node("data").show()
|
|
||||||
Key.get_node("data/HBoxContainer/name").editable = true
|
|
||||||
Key.get_node("data/HBoxContainer/name").set_text("")
|
|
||||||
Key.window_title = "Add a new Key"
|
|
||||||
Key.dialog_text = ""
|
|
||||||
if not Key.is_connected("confirmed",self,"new_key"):
|
|
||||||
Key.connect("confirmed",self,"new_key")
|
|
||||||
if Key.is_connected("confirmed",self,"edit_key"):
|
|
||||||
Key.disconnect("confirmed",self,"edit_key")
|
|
||||||
if Key.is_connected("confirmed",self,"remove_key"):
|
|
||||||
Key.disconnect("confirmed",self,"remove_key")
|
|
||||||
Key.popup()
|
|
||||||
|
|
||||||
func _on_removekey_pressed():
|
|
||||||
Key.get_node("data").hide()
|
|
||||||
Key.window_title = "Delete selected Key"
|
|
||||||
Key.dialog_text = "Are you sure you want to remove the selected Key?"
|
|
||||||
if not Key.is_connected("confirmed",self,"remove_key"):
|
|
||||||
Key.connect("confirmed",self,"remove_key")
|
|
||||||
if Key.is_connected("confirmed",self,"edit_key"):
|
|
||||||
Key.disconnect("confirmed",self,"edit_key")
|
|
||||||
if Key.is_connected("confirmed",self,"new_key"):
|
|
||||||
Key.disconnect("confirmed",self,"new_key")
|
|
||||||
Key.popup()
|
|
||||||
|
|
||||||
func _on_editkey_pressed():
|
|
||||||
Key.get_node("data").show()
|
|
||||||
Key.get_node("data/HBoxContainer/name").editable = false
|
|
||||||
Key.get_node("data/HBoxContainer/name").set_text(str(selected_key.get_text(0)))
|
|
||||||
Key.window_title = "Edit selected Key"
|
|
||||||
Key.dialog_text = ""
|
|
||||||
if not Key.is_connected("confirmed",self,"edit_key"):
|
|
||||||
Key.connect("confirmed",self,"edit_key")
|
|
||||||
if Key.is_connected("confirmed",self,"remove_key"):
|
|
||||||
Key.disconnect("confirmed",self,"remove_key")
|
|
||||||
if Key.is_connected("confirmed",self,"new_key"):
|
|
||||||
Key.disconnect("confirmed",self,"new_key")
|
|
||||||
Key.popup()
|
|
||||||
|
|
||||||
func clean_editor():
|
|
||||||
Keys.clear()
|
|
||||||
Sections.clear()
|
|
||||||
selected_section = -1
|
|
||||||
BtnAddKey.disabled = true
|
|
||||||
if current_file_path == "":
|
|
||||||
BtnAddSection.disabled = true
|
|
||||||
else:
|
|
||||||
BtnAddSection.disabled = false
|
|
||||||
BtnEditKey.disabled = true
|
|
||||||
BtnRemoveKey.disabled = true
|
|
||||||
BtnRemoveSection.disabled = true
|
|
||||||
|
|
||||||
create_root()
|
|
||||||
|
|
||||||
func open_file(filemap : Array):
|
|
||||||
clean_editor()
|
|
||||||
for section in filemap:
|
|
||||||
load_sections(section[0],section[1])
|
|
||||||
|
|
||||||
func new_section():
|
|
||||||
var file = ConfigFile.new()
|
|
||||||
file.load(current_file_path)
|
|
||||||
|
|
||||||
var section_name = str(Section.get_node("Container/section/_name").get_text())
|
|
||||||
var key_name = str(Section.get_node("Container/key/_name").get_text())
|
|
||||||
var key_value = Section.get_node("Container/value/_value").get_text()
|
|
||||||
|
|
||||||
if section_name and key_name and key_value:
|
|
||||||
file.set_value(section_name,key_name,key_value)
|
|
||||||
file.save(current_file_path)
|
|
||||||
|
|
||||||
load_sections(section_name,[[key_name,key_value]])
|
|
||||||
|
|
||||||
emit_signal("update_file")
|
|
||||||
else:
|
|
||||||
print("Section <",section_name,"> with Key name: <",key_name,"> and Key value: <",key_value,"> not valid.")
|
|
||||||
|
|
||||||
func remove_section():
|
|
||||||
var file = ConfigFile.new()
|
|
||||||
file.load(current_file_path)
|
|
||||||
var current_section = Sections.get_item_text(selected_section)
|
|
||||||
file.erase_section(current_section)
|
|
||||||
Sections.remove_item(selected_section)
|
|
||||||
file.save(current_file_path)
|
|
||||||
|
|
||||||
emit_signal("update_file")
|
|
||||||
|
|
||||||
func new_key():
|
|
||||||
var key_name = str(Key.get_node("data/HBoxContainer/name").get_text())
|
|
||||||
var key_value = Key.get_node("data/HBoxContainer2/value").get_text()
|
|
||||||
if key_name and key_value:
|
|
||||||
|
|
||||||
var file = ConfigFile.new()
|
|
||||||
file.load(current_file_path)
|
|
||||||
|
|
||||||
var current_section = Sections.get_item_text(selected_section)
|
|
||||||
|
|
||||||
file.set_value(current_section,key_name,key_value)
|
|
||||||
file.save(current_file_path)
|
|
||||||
|
|
||||||
load_keys_selected_section([[key_name,key_value]])
|
|
||||||
|
|
||||||
file.save(current_file_path)
|
|
||||||
|
|
||||||
emit_signal("update_file")
|
|
||||||
else:
|
|
||||||
print("Key name: <",key_name,"> with Key value: <",key_value,"> not valid.")
|
|
||||||
|
|
||||||
func remove_key():
|
|
||||||
var section = Sections.get_item_text(selected_section)
|
|
||||||
var sectionmetadata = Sections.get_item_metadata(selected_section)
|
|
||||||
|
|
||||||
for meta in sectionmetadata:
|
|
||||||
if meta.has(selected_key.get_text(0)):
|
|
||||||
sectionmetadata.erase(meta)
|
|
||||||
|
|
||||||
Sections.set_item_metadata(selected_section,sectionmetadata)
|
|
||||||
|
|
||||||
if Sections.get_item_metadata(selected_section) == []:
|
|
||||||
Sections.remove_item(selected_section)
|
|
||||||
|
|
||||||
var file = ConfigFile.new()
|
|
||||||
file.load(current_file_path)
|
|
||||||
file.set_value(section,selected_key.get_text(0),null)
|
|
||||||
file.save(current_file_path)
|
|
||||||
|
|
||||||
Keys.clear()
|
|
||||||
create_root()
|
|
||||||
load_keys_selected_section(sectionmetadata)
|
|
||||||
|
|
||||||
emit_signal("update_file")
|
|
||||||
|
|
||||||
func edit_key():
|
|
||||||
remove_key()
|
|
||||||
new_key()
|
|
||||||
|
|
||||||
# load a section with custom fields @section_name = name of section ; @section_metadata = keys of this section with keys' properties
|
|
||||||
func load_sections(section_name : String, section_metadata : Array):
|
|
||||||
Sections.add_item(section_name,IconLoader.load_icon_from_name("section"),true)
|
|
||||||
Sections.set_item_metadata(Sections.get_item_count()-1,section_metadata)
|
|
||||||
|
|
||||||
# load a key of a selected section to fill the "keys" list
|
|
||||||
func load_keys_selected_section(metadata : Array):
|
|
||||||
for key in metadata:
|
|
||||||
var key_item = Keys.create_item(root)
|
|
||||||
key_item.set_text(0,key[0])
|
|
||||||
key_item.set_text(1,key[1])
|
|
||||||
|
|
||||||
func _on_section_selected(index : int):
|
|
||||||
Keys.clear()
|
|
||||||
create_root()
|
|
||||||
BtnRemoveSection.disabled = false
|
|
||||||
BtnAddSection.disabled = false
|
|
||||||
BtnAddKey.disabled = false
|
|
||||||
BtnRemoveKey.disabled = true
|
|
||||||
BtnEditKey.disabled = true
|
|
||||||
|
|
||||||
selected_section = index
|
|
||||||
if Sections.get_item_metadata(index):
|
|
||||||
load_keys_selected_section(Sections.get_item_metadata(index))
|
|
||||||
|
|
||||||
func _on_key_selected():
|
|
||||||
selected_key = Keys.get_selected()
|
|
||||||
BtnRemoveKey.disabled = false
|
|
||||||
BtnEditKey.disabled = false
|
|
||||||
|
|
||||||
func _on_nosection_selected():
|
|
||||||
BtnRemoveKey.disabled = true
|
|
||||||
BtnAddKey.disabled = true
|
|
||||||
BtnEditKey.disabled = true
|
|
||||||
BtnRemoveSection.disabled = true
|
|
||||||
Keys.clear()
|
|
||||||
selected_section = -1
|
|
||||||
|
|
||||||
func _on_nokey_selected():
|
|
||||||
BtnRemoveKey.disabled = true
|
|
||||||
BtnEditKey.disabled = true
|
|
||||||
|
|
||||||
func create_root():
|
|
||||||
root = Keys.create_item()
|
|
||||||
root.set_text(0,"KEY_NAME")
|
|
||||||
root.set_text(1,"KEY_VALUE")
|
|
@ -1,33 +1,71 @@
|
|||||||
tool
|
tool
|
||||||
extends Node
|
extends Reference
|
||||||
|
|
||||||
const lastopenedfile_path : String = "res://addons/file-editor/lastopenedfiles.lastcfg"
|
var editor_plugin : EditorPlugin = null
|
||||||
|
var editor_settings : EditorSettings = null
|
||||||
|
|
||||||
func _ready():
|
func store_opened_files(filecontainer : Control) -> void:
|
||||||
pass
|
var arr : Array = Array()
|
||||||
|
|
||||||
func store_opened_files(filecontainer : Control):
|
for child in range(filecontainer.get_item_count()):
|
||||||
var file = ConfigFile.new()
|
var filepath : String = filecontainer.get_item_metadata(child)[0].current_path
|
||||||
file.load(lastopenedfile_path)
|
|
||||||
for child in range(0,filecontainer.get_item_count()):
|
|
||||||
var filepath = filecontainer.get_item_metadata(child)[2]
|
|
||||||
file.set_value("Opened",filepath.get_file(),filepath)
|
|
||||||
|
|
||||||
file.save(lastopenedfile_path)
|
var a : Array = Array()
|
||||||
|
a.push_back(filepath.get_file())
|
||||||
|
a.push_back(filepath)
|
||||||
|
|
||||||
func remove_opened_file(index : int , filecontainer : Control):
|
arr.push_back(a)
|
||||||
var file = ConfigFile.new()
|
|
||||||
file.load(lastopenedfile_path)
|
editor_settings.set_project_metadata("file_editor", "files", arr)
|
||||||
var filepath = filecontainer.get_item_metadata(index)[2]
|
|
||||||
file.set_value("Opened",filepath.get_file(),null)
|
func remove_opened_file(index : int , filecontainer : Control) -> void:
|
||||||
file.save(lastopenedfile_path)
|
var filepath : String = filecontainer.get_item_metadata(index)[0].current_path
|
||||||
|
var f : String = filepath.get_file()
|
||||||
|
|
||||||
|
var arr : Array = editor_settings.get_project_metadata("file_editor", "files", Array())
|
||||||
|
|
||||||
|
for i in range(arr.size()):
|
||||||
|
var a : Array = arr[i]
|
||||||
|
|
||||||
|
if a[0] == f:
|
||||||
|
arr.remove(i)
|
||||||
|
break
|
||||||
|
|
||||||
|
editor_settings.set_project_metadata("file_editor", "files", arr)
|
||||||
|
|
||||||
|
var fonts_dict : Dictionary = editor_settings.get_project_metadata("file_editor", "file_fonts", Dictionary())
|
||||||
|
|
||||||
|
if fonts_dict.has(f):
|
||||||
|
fonts_dict.erase(f)
|
||||||
|
editor_settings.set_project_metadata("file_editor", "file_fonts", fonts_dict)
|
||||||
|
|
||||||
func load_opened_files() -> Array:
|
func load_opened_files() -> Array:
|
||||||
var file = ConfigFile.new()
|
var arr : Array = editor_settings.get_project_metadata("file_editor", "files", Array())
|
||||||
file.load(lastopenedfile_path)
|
var fonts_dict : Dictionary = editor_settings.get_project_metadata("file_editor", "file_fonts", Dictionary())
|
||||||
var keys = []
|
var keys : Array = Array()
|
||||||
if file.has_section("Opened"):
|
for i in range(arr.size()):
|
||||||
var openedfiles = file.get_section_keys("Opened")
|
var a : Array = arr[i]
|
||||||
for openedfile in openedfiles:
|
|
||||||
keys.append([openedfile,file.get_value("Opened",openedfile)])
|
# creating and returning an Array with this format [1:file name, 2:file path, 3:file font]
|
||||||
|
var k : Array
|
||||||
|
k.push_back(a[0])
|
||||||
|
k.push_back(a[1])
|
||||||
|
|
||||||
|
if fonts_dict.has(a[0]):
|
||||||
|
k.push_back(fonts_dict[a[0]])
|
||||||
|
else:
|
||||||
|
k.push_back("null")
|
||||||
|
|
||||||
|
keys.append(k)
|
||||||
|
|
||||||
return keys
|
return keys
|
||||||
|
|
||||||
|
func store_editor_fonts(file_name : String, font_path : String) -> void:
|
||||||
|
var fonts_dict : Dictionary = editor_settings.get_project_metadata("file_editor", "file_fonts", Dictionary())
|
||||||
|
fonts_dict[file_name] = font_path
|
||||||
|
editor_settings.set_project_metadata("file_editor", "file_fonts", fonts_dict)
|
||||||
|
|
||||||
|
|
||||||
|
func get_editor_font() -> String:
|
||||||
|
#var editor_plugin : EditorPlugin = EditorPlugin.new()
|
||||||
|
return editor_plugin.get_editor_interface().get_editor_settings().get_setting("interface/editor/code_font")
|
||||||
|
@ -1,105 +1,160 @@
|
|||||||
tool
|
tool
|
||||||
extends WindowDialog
|
extends WindowDialog
|
||||||
|
|
||||||
onready var TextPreview = $Container/TextPreview
|
var text_preview : RichTextLabel = null
|
||||||
onready var TablePreview = $Container/TablePreview
|
var table_preview : GridContainer = null
|
||||||
|
|
||||||
func _ready():
|
signal image_downloaded()
|
||||||
TextPreview.hide()
|
signal image_loaded()
|
||||||
TablePreview.hide()
|
|
||||||
|
|
||||||
func print_preview(content : String):
|
func _init() -> void:
|
||||||
TextPreview.append_bbcode(content)
|
window_title = "File preview"
|
||||||
TextPreview.show()
|
resizable = true
|
||||||
|
set_anchors_and_margins_preset(Control.PRESET_WIDE)
|
||||||
|
margin_left = 81
|
||||||
|
margin_top = 47
|
||||||
|
margin_right = -80
|
||||||
|
margin_bottom = -48
|
||||||
|
|
||||||
func print_bb(content : String):
|
var vbc : VBoxContainer = VBoxContainer.new()
|
||||||
TextPreview.append_bbcode(content)
|
vbc.set_anchors_and_margins_preset(Control.PRESET_WIDE)
|
||||||
TextPreview.show()
|
add_child(vbc)
|
||||||
|
|
||||||
func print_markdown(content : String):
|
text_preview = RichTextLabel.new()
|
||||||
var result = ""
|
vbc.add_child(text_preview)
|
||||||
var bolded = []
|
text_preview.scroll_following = true
|
||||||
var italics = []
|
text_preview.bbcode_enabled = true
|
||||||
var striked = []
|
text_preview.size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
var coded = []
|
text_preview.hide()
|
||||||
var linknames = []
|
|
||||||
var images = []
|
|
||||||
var links = []
|
|
||||||
var lists = []
|
|
||||||
|
|
||||||
var regex = RegEx.new()
|
table_preview = GridContainer.new()
|
||||||
|
vbc.add_child(table_preview)
|
||||||
|
table_preview.columns = 3
|
||||||
|
table_preview.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||||
|
table_preview.size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
|
table_preview.hide()
|
||||||
|
|
||||||
|
connect("popup_hide", self, "_on_Preview_popup_hide")
|
||||||
|
|
||||||
|
func print_preview(content : String) -> void:
|
||||||
|
text_preview.append_bbcode(content)
|
||||||
|
text_preview.show()
|
||||||
|
|
||||||
|
func print_bb(content : String) -> void:
|
||||||
|
text_preview.append_bbcode(content)
|
||||||
|
text_preview.show()
|
||||||
|
|
||||||
|
func print_markdown(content : String) -> void:
|
||||||
|
var result : Array = Array()
|
||||||
|
var bolded : Array = Array()
|
||||||
|
var italics : Array = Array()
|
||||||
|
var striked : Array = Array()
|
||||||
|
var coded : Array = Array()
|
||||||
|
var linknames : Array = Array()
|
||||||
|
var images : Array = Array()
|
||||||
|
var links : Array = Array()
|
||||||
|
var lists : Array = Array()
|
||||||
|
var underlined : Array = Array()
|
||||||
|
|
||||||
|
var regex : RegEx = RegEx.new()
|
||||||
regex.compile('\\*\\*(?<boldtext>.*)\\*\\*')
|
regex.compile('\\*\\*(?<boldtext>.*)\\*\\*')
|
||||||
result = regex.search_all(content)
|
result = regex.search_all(content)
|
||||||
if result:
|
for i in range(result.size()):
|
||||||
for res in result:
|
var res : RegExMatch = result[i]
|
||||||
bolded.append(res.get_string("boldtext"))
|
bolded.append(res.get_string("boldtext"))
|
||||||
|
|
||||||
|
regex.compile('\\_\\_(?<underlinetext>.*)\\_\\_')
|
||||||
|
result = regex.search_all(content)
|
||||||
|
for i in range(result.size()):
|
||||||
|
var res : RegExMatch = result[i]
|
||||||
|
underlined.append(res.get_string("underlinetext"))
|
||||||
|
|
||||||
regex.compile("\\*(?<italictext>.*)\\*")
|
regex.compile("\\*(?<italictext>.*)\\*")
|
||||||
result = regex.search_all(content)
|
result = regex.search_all(content)
|
||||||
if result:
|
for i in range(result.size()):
|
||||||
for res in result:
|
var res : RegExMatch = result[i]
|
||||||
italics.append(res.get_string("italictext"))
|
italics.append(res.get_string("italictext"))
|
||||||
|
|
||||||
regex.compile("~~(?<strikedtext>.*)~~")
|
regex.compile("~~(?<strikedtext>.*)~~")
|
||||||
result = regex.search_all(content)
|
result = regex.search_all(content)
|
||||||
if result:
|
for i in range(result.size()):
|
||||||
for res in result:
|
var res : RegExMatch = result[i]
|
||||||
striked.append(res.get_string("strikedtext"))
|
striked.append(res.get_string("strikedtext"))
|
||||||
|
|
||||||
regex.compile("`(?<coded>.*)`")
|
regex.compile("`(?<coded>.*)`")
|
||||||
result = regex.search_all(content)
|
result = regex.search_all(content)
|
||||||
if result:
|
for i in range(result.size()):
|
||||||
for res in result:
|
var res : RegExMatch = result[i]
|
||||||
coded.append(res.get_string("coded"))
|
coded.append(res.get_string("coded"))
|
||||||
|
|
||||||
regex.compile("[+-*](?<element>\\s.*)")
|
regex.compile("[+-*](?<element>\\s.*)")
|
||||||
result = regex.search_all(content)
|
result = regex.search_all(content)
|
||||||
if result:
|
for i in range(result.size()):
|
||||||
for res in result:
|
var res : RegExMatch = result[i]
|
||||||
lists.append(res.get_string("element"))
|
lists.append(res.get_string("element"))
|
||||||
|
|
||||||
regex.compile("(?<img>!\\[.*?\\))")
|
regex.compile("(?<img>!\\[.*?\\))")
|
||||||
result = regex.search_all(content)
|
result = regex.search_all(content)
|
||||||
if result:
|
for i in range(result.size()):
|
||||||
for res in result:
|
var res : RegExMatch = result[i]
|
||||||
images.append(res.get_string("img"))
|
images.append(res.get_string("img"))
|
||||||
|
|
||||||
regex.compile("\\[(?<linkname>.*?)\\]|\\((?<link>[h\\.]\\S*?)\\)")
|
regex.compile("\\[(?<linkname>.*?)\\]|\\((?<link>[h\\.]\\S*?)\\)")
|
||||||
result = regex.search_all(content)
|
result = regex.search_all(content)
|
||||||
if result:
|
for i in range(result.size()):
|
||||||
for res in result:
|
var res : RegExMatch = result[i]
|
||||||
if res.get_string("link")!="":
|
|
||||||
links.append(res.get_string("link"))
|
|
||||||
if res.get_string("linkname")!="":
|
|
||||||
linknames.append(res.get_string("linkname"))
|
|
||||||
|
|
||||||
for bold in bolded:
|
if res.get_string("link")!="":
|
||||||
|
links.append(res.get_string("link"))
|
||||||
|
|
||||||
|
if res.get_string("linkname")!="":
|
||||||
|
linknames.append(res.get_string("linkname"))
|
||||||
|
|
||||||
|
for i in range(bolded.size()):
|
||||||
|
var bold : String = bolded[i]
|
||||||
content = content.replace("**"+bold+"**","[b]"+bold+"[/b]")
|
content = content.replace("**"+bold+"**","[b]"+bold+"[/b]")
|
||||||
for italic in italics:
|
|
||||||
|
for i in range(italics.size()):
|
||||||
|
var italic : String = italics[i]
|
||||||
content = content.replace("*"+italic+"*","[i]"+italic+"[/i]")
|
content = content.replace("*"+italic+"*","[i]"+italic+"[/i]")
|
||||||
for strik in striked:
|
|
||||||
|
for i in range(striked.size()):
|
||||||
|
var strik : String = striked[i]
|
||||||
content = content.replace("~~"+strik+"~~","[s]"+strik+"[/s]")
|
content = content.replace("~~"+strik+"~~","[s]"+strik+"[/s]")
|
||||||
for code in coded:
|
|
||||||
|
for i in range(underlined.size()):
|
||||||
|
var underline : String = underlined[i]
|
||||||
|
content = content.replace("__"+underline+"__","[u]"+underline+"[/u]")
|
||||||
|
|
||||||
|
for i in range(coded.size()):
|
||||||
|
var code : String = coded[i]
|
||||||
content = content.replace("`"+code+"`","[code]"+code+"[/code]")
|
content = content.replace("`"+code+"`","[code]"+code+"[/code]")
|
||||||
for image in images:
|
|
||||||
|
for i in range(images.size()):
|
||||||
|
var image : String = images[i]
|
||||||
var substr = image.split("(")
|
var substr = image.split("(")
|
||||||
var imglink = substr[1].rstrip(")")
|
var imglink = substr[1].rstrip(")")
|
||||||
content = content.replace(image,"[img]"+imglink+"[/img]")
|
content = content.replace(image,"[img]"+imglink+"[/img]")
|
||||||
|
|
||||||
for i in links.size():
|
for i in links.size():
|
||||||
content = content.replace("["+linknames[i]+"]("+links[i]+")","[url="+links[i]+"]"+linknames[i]+"[/url]")
|
content = content.replace("["+linknames[i]+"]("+links[i]+")","[url="+links[i]+"]"+linknames[i]+"[/url]")
|
||||||
for element in lists:
|
|
||||||
|
for i in range(lists.size()):
|
||||||
|
var element : String = lists[i]
|
||||||
|
|
||||||
if content.find("- "+element):
|
if content.find("- "+element):
|
||||||
content = content.replace("-"+element,"[indent]-"+element+"[/indent]")
|
content = content.replace("-"+element,"[indent]-"+element+"[/indent]")
|
||||||
|
|
||||||
if content.find("+ "+element):
|
if content.find("+ "+element):
|
||||||
content = content.replace("+"+element,"[indent]-"+element+"[/indent]")
|
content = content.replace("+"+element,"[indent]-"+element+"[/indent]")
|
||||||
|
|
||||||
if content.find("* "+element):
|
if content.find("* "+element):
|
||||||
content = content.replace("+"+element,"[indent]-"+element+"[/indent]")
|
content = content.replace("+"+element,"[indent]-"+element+"[/indent]")
|
||||||
|
|
||||||
TextPreview.append_bbcode(content)
|
text_preview.append_bbcode(content)
|
||||||
TextPreview.show()
|
text_preview.show()
|
||||||
|
|
||||||
func print_html(content : String):
|
func print_html(content : String) -> void:
|
||||||
content = content.replace("<i>","[i]")
|
content = content.replace("<i>","[i]")
|
||||||
content = content.replace("</i>","[/i]")
|
content = content.replace("</i>","[/i]")
|
||||||
content = content.replace("<b>","[b]")
|
content = content.replace("<b>","[b]")
|
||||||
@ -120,12 +175,14 @@ func print_html(content : String):
|
|||||||
content = content.replace("</pre>","[/code]")
|
content = content.replace("</pre>","[/code]")
|
||||||
content = content.replace("<center>","[center]")
|
content = content.replace("<center>","[center]")
|
||||||
content = content.replace("</center>","[/center]")
|
content = content.replace("</center>","[/center]")
|
||||||
|
content = content.replace("<right>","[right]")
|
||||||
|
content = content.replace("</right>","[/right]")
|
||||||
|
|
||||||
TextPreview.append_bbcode(content)
|
text_preview.append_bbcode(content)
|
||||||
TextPreview.show()
|
text_preview.show()
|
||||||
|
|
||||||
func print_csv(rows : Array):
|
func print_csv(rows : Array) -> void:
|
||||||
TablePreview.columns = rows[0].size()
|
table_preview.columns = rows[0].size()
|
||||||
for item in rows:
|
for item in rows:
|
||||||
for string in item:
|
for string in item:
|
||||||
var label = Label.new()
|
var label = Label.new()
|
||||||
@ -133,10 +190,9 @@ func print_csv(rows : Array):
|
|||||||
label.set_h_size_flags(SIZE_EXPAND)
|
label.set_h_size_flags(SIZE_EXPAND)
|
||||||
label.set_align(1)
|
label.set_align(1)
|
||||||
label.set_valign(1)
|
label.set_valign(1)
|
||||||
TablePreview.add_child(label)
|
table_preview.add_child(label)
|
||||||
|
|
||||||
|
table_preview.show()
|
||||||
|
|
||||||
TablePreview.show()
|
func _on_Preview_popup_hide() -> void:
|
||||||
|
|
||||||
func _on_Preview_popup_hide():
|
|
||||||
queue_free()
|
queue_free()
|
||||||
|
374
addons/file-editor/scripts/VanillaEditor.gd
Normal file
@ -0,0 +1,374 @@
|
|||||||
|
tool
|
||||||
|
extends VBoxContainer
|
||||||
|
|
||||||
|
var LastOpenedFiles : Reference = null
|
||||||
|
|
||||||
|
var text_editor : TextEdit = null
|
||||||
|
|
||||||
|
var file_list : FileDialog = null
|
||||||
|
|
||||||
|
var search_box : HBoxContainer = null
|
||||||
|
var search_box_line_edit : LineEdit = null
|
||||||
|
var search_box_match_case_cb : CheckBox = null
|
||||||
|
var search_box_whole_words_cb : CheckBox = null
|
||||||
|
var search_box_close_button : Button = null
|
||||||
|
|
||||||
|
var replace_box : HBoxContainer = null
|
||||||
|
var replace_box_replace_le : LineEdit = null
|
||||||
|
var replace_box_with : LineEdit = null
|
||||||
|
var replace_box_button : Button = null
|
||||||
|
var replace_box_close : Button = null
|
||||||
|
|
||||||
|
var file_info_last_modified_icon : TextureRect = null
|
||||||
|
var file_info_last_modified : Label = null
|
||||||
|
var file_info_c_counter : Label = null
|
||||||
|
var file_info_read_only : CheckBox = null
|
||||||
|
|
||||||
|
var current_path : String = ""
|
||||||
|
var current_filename : String = ""
|
||||||
|
|
||||||
|
var search_flag : int = 0
|
||||||
|
|
||||||
|
signal text_changed()
|
||||||
|
|
||||||
|
func _init() -> void:
|
||||||
|
size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
|
set_anchors_and_margins_preset(Control.PRESET_WIDE)
|
||||||
|
|
||||||
|
text_editor = TextEdit.new()
|
||||||
|
add_child(text_editor)
|
||||||
|
text_editor.highlight_current_line = true
|
||||||
|
text_editor.syntax_highlighting = true
|
||||||
|
text_editor.show_line_numbers = true
|
||||||
|
text_editor.breakpoint_gutter = true
|
||||||
|
text_editor.highlight_all_occurrences = true
|
||||||
|
text_editor.override_selected_font_color = true
|
||||||
|
text_editor.smooth_scrolling = true
|
||||||
|
text_editor.hiding_enabled = true
|
||||||
|
#todo look this up from the editor settings
|
||||||
|
#text_editor.caret_blink = true
|
||||||
|
#text_editor.caret_blink_speed = 1
|
||||||
|
text_editor.caret_moving_by_right_click = false
|
||||||
|
text_editor.minimap_draw = true
|
||||||
|
text_editor.size_flags_vertical = SIZE_EXPAND_FILL
|
||||||
|
text_editor.set("custom_colors/member_variable_color", Color(0.737255, 0.882353, 1))
|
||||||
|
text_editor.set("custom_colors/code_folding_color", Color(1, 1, 1, 0.701961))
|
||||||
|
text_editor.set("custom_colors/function_color", Color(0.341176, 0.701961, 1))
|
||||||
|
text_editor.set("custom_colors/safe_line_number_color", Color(0.8, 0.968627, 0.827451, 0.74902))
|
||||||
|
text_editor.set("custom_colors/symbol_color", Color(0.670588, 0.788235, 1))
|
||||||
|
text_editor.set("custom_colors/caret_background_color", Color(0, 0, 0))
|
||||||
|
text_editor.set("custom_colors/selection_color", Color(0.411765, 0.611765, 0.909804, 0.34902))
|
||||||
|
text_editor.set("custom_colors/caret_color", Color(1, 1, 1))
|
||||||
|
text_editor.set("custom_colors/breakpoint_color", Color(1, 0.470588, 0.419608))
|
||||||
|
text_editor.set("custom_colors/font_color_selected", Color(0, 0, 0))
|
||||||
|
text_editor.set("custom_colors/font_color", Color(1, 1, 1))
|
||||||
|
text_editor.set("custom_colors/completion_font_color", Color(1, 1, 1, 0.392157))
|
||||||
|
text_editor.set("custom_colors/completion_scroll_color", Color(1, 1, 1, 0.070588))
|
||||||
|
text_editor.set("custom_colors/background_color", Color(0.121569, 0.145098, 0.192157))
|
||||||
|
text_editor.set("custom_colors/number_color", Color(0.631373, 1, 0.882353))
|
||||||
|
text_editor.set("custom_colors/completion_background_color", Color(0.196078, 0.231373, 0.309804))
|
||||||
|
text_editor.set("custom_colors/brace_mismatch_color", Color(1, 0.470588, 0.419608))
|
||||||
|
text_editor.set("custom_colors/current_line_color", Color(1, 1, 1, 0.070588))
|
||||||
|
text_editor.set("custom_colors/completion_selected_color", Color(1, 1, 1, 0.070588))
|
||||||
|
text_editor.set("custom_colors/mark_color", Color(1, 0.470588, 0.419608, 0.301961))
|
||||||
|
text_editor.set("custom_colors/word_highlighted_color", Color(1, 1, 1, 0.392157))
|
||||||
|
text_editor.set("custom_colors/completion_existing_color", Color(1, 1, 1, 0.392157))
|
||||||
|
text_editor.set("custom_constants/completion_lines", 20)
|
||||||
|
text_editor.set("custom_constants/completion_max_width", 20)
|
||||||
|
text_editor.set("custom_constants/completion_scroll_width", 20)
|
||||||
|
#text_editor.owner = self
|
||||||
|
|
||||||
|
search_box = HBoxContainer.new()
|
||||||
|
add_child(search_box)
|
||||||
|
search_box.hide()
|
||||||
|
|
||||||
|
var selabel : Label = Label.new()
|
||||||
|
search_box.add_child(selabel)
|
||||||
|
selabel.text = "Search:"
|
||||||
|
|
||||||
|
search_box_line_edit = LineEdit.new()
|
||||||
|
search_box.add_child(search_box_line_edit)
|
||||||
|
search_box_line_edit.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||||
|
search_box_line_edit.connect("text_changed", self, "_on_LineEdit_text_changed")
|
||||||
|
search_box_line_edit.connect("focus_entered", self, "_on_LineEdit_focus_entered")
|
||||||
|
|
||||||
|
search_box_match_case_cb = CheckBox.new()
|
||||||
|
search_box.add_child(search_box_match_case_cb)
|
||||||
|
search_box_match_case_cb.text = "Match Case"
|
||||||
|
search_box_match_case_cb.connect("toggled", self, "_on_matchcase_toggled")
|
||||||
|
|
||||||
|
search_box_whole_words_cb = CheckBox.new()
|
||||||
|
search_box.add_child(search_box_whole_words_cb)
|
||||||
|
search_box_whole_words_cb.text = "Whole Words"
|
||||||
|
search_box_whole_words_cb.connect("toggled", self, "_on_wholewords_toggled")
|
||||||
|
|
||||||
|
search_box_close_button = Button.new()
|
||||||
|
search_box.add_child(search_box_close_button)
|
||||||
|
search_box_close_button.text = "x"
|
||||||
|
search_box_close_button.flat = true
|
||||||
|
search_box_whole_words_cb.connect("pressed", self, "_on_close_pressed")
|
||||||
|
|
||||||
|
replace_box = HBoxContainer.new()
|
||||||
|
add_child(replace_box)
|
||||||
|
replace_box.hide()
|
||||||
|
|
||||||
|
var rblabel : Label = Label.new()
|
||||||
|
replace_box.add_child(rblabel)
|
||||||
|
rblabel.text = "Replace:"
|
||||||
|
|
||||||
|
replace_box_replace_le = LineEdit.new()
|
||||||
|
replace_box.add_child(replace_box_replace_le)
|
||||||
|
replace_box_replace_le.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||||
|
|
||||||
|
var rb2label : Label = Label.new()
|
||||||
|
replace_box.add_child(rb2label)
|
||||||
|
rb2label.text = "With:"
|
||||||
|
|
||||||
|
replace_box_with = LineEdit.new()
|
||||||
|
replace_box.add_child(replace_box_with)
|
||||||
|
replace_box_with.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||||
|
|
||||||
|
replace_box_button = Button.new()
|
||||||
|
replace_box.add_child(replace_box_button)
|
||||||
|
replace_box_button.text = "Replace"
|
||||||
|
replace_box_button.connect("pressed", self, "_on_Button_pressed")
|
||||||
|
|
||||||
|
replace_box_close = Button.new()
|
||||||
|
replace_box.add_child(replace_box_close)
|
||||||
|
replace_box_close.text = "x"
|
||||||
|
replace_box_close.flat = true
|
||||||
|
replace_box_button.connect("pressed", self, "_on_close2_pressed")
|
||||||
|
|
||||||
|
var file_info : HBoxContainer = HBoxContainer.new()
|
||||||
|
add_child(file_info)
|
||||||
|
|
||||||
|
file_info_last_modified_icon = TextureRect.new()
|
||||||
|
file_info.add_child(file_info_last_modified_icon)
|
||||||
|
file_info_last_modified_icon.stretch_mode = TextureRect.STRETCH_KEEP_CENTERED
|
||||||
|
|
||||||
|
var filabel : Label = Label.new()
|
||||||
|
file_info.add_child(filabel)
|
||||||
|
filabel.text = "Last modified time:"
|
||||||
|
|
||||||
|
file_info_last_modified = Label.new()
|
||||||
|
file_info.add_child(file_info_last_modified)
|
||||||
|
|
||||||
|
var fi2label : Label = Label.new()
|
||||||
|
file_info.add_child(fi2label)
|
||||||
|
fi2label.text = "Characters counter:"
|
||||||
|
fi2label.align = Label.ALIGN_RIGHT
|
||||||
|
fi2label.size_flags_horizontal = SIZE_EXPAND | SIZE_FILL | SIZE_SHRINK_CENTER | SIZE_SHRINK_END
|
||||||
|
|
||||||
|
file_info_c_counter = Label.new()
|
||||||
|
file_info.add_child(file_info_c_counter)
|
||||||
|
file_info_c_counter.size_flags_horizontal = SIZE_EXPAND
|
||||||
|
|
||||||
|
file_info_read_only = CheckBox.new()
|
||||||
|
file_info.add_child(file_info_read_only)
|
||||||
|
file_info_read_only.text = "Can Edit"
|
||||||
|
file_info_read_only.flat = true
|
||||||
|
file_info_read_only.size_flags_horizontal = SIZE_EXPAND | SIZE_SHRINK_END
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
text_editor.connect("text_changed", self, "_on_text_editor_text_changed")
|
||||||
|
|
||||||
|
#FileList = get_parent().get_parent().get_parent().get_parent().get_node("FileList")
|
||||||
|
|
||||||
|
file_info_read_only.connect("toggled",self,"_on_Readonly_toggled")
|
||||||
|
|
||||||
|
#file_info_read_only.set("custom_icons/checked",IconLoader.load_icon_from_name("read"))
|
||||||
|
#file_info_read_only.set("custom_icons/unchecked",IconLoader.load_icon_from_name("edit"))
|
||||||
|
|
||||||
|
add_to_group("vanilla_editor")
|
||||||
|
load_default_font()
|
||||||
|
|
||||||
|
func set_font(font_path : String) -> void:
|
||||||
|
var dynamic_font : DynamicFont = DynamicFont.new()
|
||||||
|
var dynamic_font_data : DynamicFontData = DynamicFontData.new()
|
||||||
|
dynamic_font_data.set_font_path(font_path)
|
||||||
|
dynamic_font.set_font_data(dynamic_font_data)
|
||||||
|
text_editor.set("custom_fonts/font",dynamic_font)
|
||||||
|
|
||||||
|
func load_default_font() -> void:
|
||||||
|
var default_font : String = LastOpenedFiles.get_editor_font()
|
||||||
|
|
||||||
|
if default_font != "":
|
||||||
|
set_font(default_font)
|
||||||
|
|
||||||
|
func set_wrap_enabled(enabled:bool) -> void:
|
||||||
|
text_editor.set_wrap_enabled(enabled)
|
||||||
|
text_editor.update()
|
||||||
|
|
||||||
|
func draw_minimap(value:bool) -> void:
|
||||||
|
text_editor.draw_minimap(value)
|
||||||
|
text_editor.update()
|
||||||
|
|
||||||
|
func color_region(filextension : String) -> void:
|
||||||
|
match(filextension):
|
||||||
|
"bbs":
|
||||||
|
text_editor.add_color_region("[b]","[/b]",Color8(153,153,255,255),false)
|
||||||
|
text_editor.add_color_region("[i]","[/i]",Color8(153,255,153,255),false)
|
||||||
|
text_editor.add_color_region("[s]","[/s]",Color8(255,153,153,255),false)
|
||||||
|
text_editor.add_color_region("[u]","[/u]",Color8(255,255,102,255),false)
|
||||||
|
text_editor.add_color_region("[url","[/url]",Color8(153,204,255,255),false)
|
||||||
|
text_editor.add_color_region("[code]","[/code]",Color8(192,192,192,255),false)
|
||||||
|
text_editor.add_color_region("[img]","[/img]",Color8(255,204,153,255),false)
|
||||||
|
text_editor.add_color_region("[center]","[/center]",Color8(175,238,238,255),false)
|
||||||
|
text_editor.add_color_region("[right]","[/right]",Color8(135,206,235,255),false)
|
||||||
|
"html":
|
||||||
|
text_editor.add_color_region("<b>","</b>",Color8(153,153,255,255),false)
|
||||||
|
text_editor.add_color_region("<i>","</i>",Color8(153,255,153,255),false)
|
||||||
|
text_editor.add_color_region("<del>","</del>",Color8(255,153,153,255),false)
|
||||||
|
text_editor.add_color_region("<ins>","</ins>",Color8(255,255,102,255),false)
|
||||||
|
text_editor.add_color_region("<a","</a>",Color8(153,204,255,255),false)
|
||||||
|
text_editor.add_color_region("<img","/>",Color8(255,204,153,255),true)
|
||||||
|
text_editor.add_color_region("<pre>","</pre>",Color8(192,192,192,255),false)
|
||||||
|
text_editor.add_color_region("<center>","</center>",Color8(175,238,238,255),false)
|
||||||
|
text_editor.add_color_region("<right>","</right>",Color8(135,206,235,255),false)
|
||||||
|
"md":
|
||||||
|
text_editor.add_color_region("***","***",Color8(126,186,181,255),false)
|
||||||
|
text_editor.add_color_region("**","**",Color8(153,153,255,255),false)
|
||||||
|
text_editor.add_color_region("*","*",Color8(153,255,153,255),false)
|
||||||
|
text_editor.add_color_region("+ ","",Color8(255,178,102,255),false)
|
||||||
|
text_editor.add_color_region("- ","",Color8(255,178,102,255),false)
|
||||||
|
text_editor.add_color_region("~~","~~",Color8(255,153,153,255),false)
|
||||||
|
text_editor.add_color_region("__","__",Color8(255,255,102,255),false)
|
||||||
|
text_editor.add_color_region("[",")",Color8(153,204,255,255),false)
|
||||||
|
text_editor.add_color_region("`","`",Color8(192,192,192,255),false)
|
||||||
|
text_editor.add_color_region('"*.','"',Color8(255,255,255,255),true)
|
||||||
|
text_editor.add_color_region("# ","",Color8(105,105,105,255),true)
|
||||||
|
text_editor.add_color_region("## ","",Color8(128,128,128,255),true)
|
||||||
|
text_editor.add_color_region("### ","",Color8(169,169,169,255),true)
|
||||||
|
text_editor.add_color_region("#### ","",Color8(192,192,192,255),true)
|
||||||
|
text_editor.add_color_region("##### ","",Color8(211,211,211,255),true)
|
||||||
|
text_editor.add_color_region("###### ","",Color8(255,255,255,255),true)
|
||||||
|
text_editor.add_color_region("> ","",Color8(172,138,79,255),true)
|
||||||
|
"cfg":
|
||||||
|
text_editor.add_color_region("[","]",Color8(153,204,255,255),false)
|
||||||
|
text_editor.add_color_region('"','"',Color8(255,255,102,255),false)
|
||||||
|
text_editor.add_color_region(';','',Color8(128,128,128,255),true)
|
||||||
|
"ini":
|
||||||
|
text_editor.add_color_region("[","]",Color8(153,204,255,255),false)
|
||||||
|
text_editor.add_color_region('"','"',Color8(255,255,102,255),false)
|
||||||
|
text_editor.add_color_region(';','',Color8(128,128,128,255),true)
|
||||||
|
_:
|
||||||
|
pass
|
||||||
|
|
||||||
|
func clean_editor() -> void:
|
||||||
|
text_editor.set_text("")
|
||||||
|
#file_info_last_modified_icon.texture = IconLoader.load_icon_from_name("save")
|
||||||
|
file_info_last_modified.set_text("")
|
||||||
|
file_list.invalidate()
|
||||||
|
current_filename = ""
|
||||||
|
current_path = ""
|
||||||
|
|
||||||
|
func new_file_open(file_content : String, last_modified : Dictionary, current_file_path : String) -> void:
|
||||||
|
current_path = current_file_path
|
||||||
|
current_filename = current_file_path.get_file()
|
||||||
|
color_region(current_filename.get_extension())
|
||||||
|
text_editor.set_text(file_content)
|
||||||
|
update_lastmodified(last_modified,"save")
|
||||||
|
file_list.invalidate()
|
||||||
|
count_characters()
|
||||||
|
|
||||||
|
func update_lastmodified(last_modified : Dictionary, icon : String) -> void:
|
||||||
|
file_info_last_modified.set_text(str(last_modified.hour)+":"+str(last_modified.minute)+" "+str(last_modified.day)+"/"+str(last_modified.month)+"/"+str(last_modified.year))
|
||||||
|
#file_info_last_modified_icon.texture = IconLoader.load_icon_from_name(icon)
|
||||||
|
|
||||||
|
func new_file_create(file_name : String) -> void:
|
||||||
|
text_editor.set_text("")
|
||||||
|
|
||||||
|
file_list.invalidate()
|
||||||
|
|
||||||
|
func _on_Readonly_toggled(button_pressed : bool) -> void:
|
||||||
|
if button_pressed:
|
||||||
|
file_info_read_only.set_text("Read Only")
|
||||||
|
text_editor.readonly = (true)
|
||||||
|
else:
|
||||||
|
file_info_read_only.set_text("Can Edit")
|
||||||
|
text_editor.readonly = (false)
|
||||||
|
|
||||||
|
func _on_text_editor_text_changed() -> void:
|
||||||
|
#file_info_last_modified_icon.texture = IconLoader.load_icon_from_name("saveas")
|
||||||
|
count_characters()
|
||||||
|
emit_signal("text_changed")
|
||||||
|
|
||||||
|
func count_characters() -> void:
|
||||||
|
var counted : int = 0
|
||||||
|
|
||||||
|
for line in range(text_editor.get_line_count()):
|
||||||
|
counted += text_editor.get_line(line).length()
|
||||||
|
|
||||||
|
file_info_c_counter.set_text(str(counted))
|
||||||
|
|
||||||
|
func _on_LineEdit_text_changed(new_text : String) -> void:
|
||||||
|
var linecount : int = text_editor.get_line_count()
|
||||||
|
if new_text != "":
|
||||||
|
var found : PoolIntArray
|
||||||
|
var find : bool = false
|
||||||
|
|
||||||
|
for line in range(linecount):
|
||||||
|
for column in range(text_editor.get_line(line).length()):
|
||||||
|
found = text_editor.search( new_text, search_flag, line , column )
|
||||||
|
|
||||||
|
if found.size():
|
||||||
|
if found[1] == line:
|
||||||
|
# if not find:
|
||||||
|
text_editor.select(line,found[0],found[1],found[0]+new_text.length())
|
||||||
|
# find = true
|
||||||
|
else:
|
||||||
|
text_editor.select(0,0,0,0)
|
||||||
|
else:
|
||||||
|
text_editor.select(0,0,0,0)
|
||||||
|
|
||||||
|
func _on_matchcase_toggled(button_pressed : bool) -> void:
|
||||||
|
if button_pressed:
|
||||||
|
search_flag = 1
|
||||||
|
else:
|
||||||
|
if search_box_whole_words_cb.is_pressed():
|
||||||
|
search_flag = 2
|
||||||
|
else:
|
||||||
|
search_flag = 0
|
||||||
|
|
||||||
|
_on_LineEdit_text_changed(search_box_line_edit.get_text())
|
||||||
|
|
||||||
|
func _on_wholewords_toggled(button_pressed : bool) -> void:
|
||||||
|
if button_pressed:
|
||||||
|
search_flag = 2
|
||||||
|
else:
|
||||||
|
if search_box_match_case_cb.is_pressed():
|
||||||
|
search_flag = 1
|
||||||
|
else:
|
||||||
|
search_flag = 0
|
||||||
|
|
||||||
|
_on_LineEdit_text_changed(search_box_line_edit.get_text())
|
||||||
|
|
||||||
|
func _on_close_pressed() -> void:
|
||||||
|
search_box.hide()
|
||||||
|
|
||||||
|
func open_search_box() -> void:
|
||||||
|
if search_box.visible:
|
||||||
|
search_box.hide()
|
||||||
|
else:
|
||||||
|
search_box.show()
|
||||||
|
search_box.get_node("LineEdit").grab_focus()
|
||||||
|
|
||||||
|
func _on_Button_pressed() -> void:
|
||||||
|
var linecount : int = text_editor.get_line_count()-1
|
||||||
|
var old_text : String = replace_box_replace_le.get_text()
|
||||||
|
var new_text : String = replace_box_with.get_text()
|
||||||
|
var text : String = text_editor.get_text()
|
||||||
|
text_editor.set_text(text.replace(old_text,new_text))
|
||||||
|
|
||||||
|
func open_replace_box() -> void:
|
||||||
|
if replace_box.visible:
|
||||||
|
replace_box.hide()
|
||||||
|
else:
|
||||||
|
replace_box.show()
|
||||||
|
replace_box.get_node("replace").grab_focus()
|
||||||
|
|
||||||
|
func _on_close2_pressed() -> void:
|
||||||
|
replace_box.hide()
|
||||||
|
|
||||||
|
func _on_LineEdit_focus_entered() -> void:
|
||||||
|
_on_LineEdit_text_changed(search_box_line_edit.get_text())
|
@ -1,23 +1,22 @@
|
|||||||
tool
|
tool
|
||||||
extends EditorPlugin
|
extends EditorPlugin
|
||||||
|
|
||||||
var doc = preload("../scenes/FileEditor.tscn").instance()
|
var IconLoader = preload("res://addons/file-editor/scripts/IconLoader.gd").new()
|
||||||
var plugin_version
|
var LastOpenedFiles = preload("res://addons/file-editor/scripts/LastOpenedFiles.gd").new()
|
||||||
var toolbar
|
|
||||||
var fileditorbutton
|
var FileEditor
|
||||||
var IconLoader = preload("res://addons/file-editor/scripts/IconLoader.gd")
|
|
||||||
|
|
||||||
func _enter_tree():
|
func _enter_tree():
|
||||||
add_autoload_singleton("IconLoader","res://addons/file-editor/scripts/IconLoader.gd")
|
LastOpenedFiles.editor_plugin = self
|
||||||
add_autoload_singleton("LastOpenedFiles","res://addons/file-editor/scripts/LastOpenedFiles.gd")
|
LastOpenedFiles.editor_settings = get_editor_interface().get_editor_settings()
|
||||||
get_editor_interface().get_editor_viewport().add_child(doc)
|
|
||||||
doc.hide()
|
FileEditor = preload("res://addons/file-editor/scripts/FileEditor.gd").new()
|
||||||
|
FileEditor.LastOpenedFiles = LastOpenedFiles
|
||||||
|
get_editor_interface().get_editor_viewport().add_child(FileEditor)
|
||||||
|
FileEditor.hide()
|
||||||
|
|
||||||
func _exit_tree():
|
func _exit_tree():
|
||||||
doc.clean_editor()
|
get_editor_interface().get_editor_viewport().remove_child(FileEditor)
|
||||||
get_editor_interface().get_editor_viewport().remove_child(doc)
|
|
||||||
remove_autoload_singleton("IconLoader")
|
|
||||||
remove_autoload_singleton("LastOpenedFiles")
|
|
||||||
|
|
||||||
func has_main_screen():
|
func has_main_screen():
|
||||||
return true
|
return true
|
||||||
@ -29,4 +28,4 @@ func get_plugin_icon():
|
|||||||
return IconLoader.load_icon_from_name("file")
|
return IconLoader.load_icon_from_name("file")
|
||||||
|
|
||||||
func make_visible(visible):
|
func make_visible(visible):
|
||||||
doc.visible = visible
|
FileEditor.visible = visible
|
||||||
|
28
project.pandemonium
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=4
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="fileed"
|
||||||
|
config/icon="res://icon.png"
|
||||||
|
|
||||||
|
[editor_plugins]
|
||||||
|
|
||||||
|
enabled=PoolStringArray( "res://addons/file-editor/plugin.cfg" )
|
||||||
|
|
||||||
|
[physics]
|
||||||
|
|
||||||
|
common/enable_pause_aware_picking=true
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
vram_compression/import_etc=true
|
||||||
|
vram_compression/import_etc2=false
|
||||||
|
environment/default_environment="res://default_env.tres"
|