├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── LICENSE ├── README.md ├── VERSION.md └── addons └── github-integration ├── fonts ├── Roboto-Black.ttf ├── Roboto-Black.ttf.tmp ├── Roboto-Regular.ttf ├── Roboto-Regular.ttf.tmp ├── SEGOEUI.TTF └── SEGOEUIB.TTF ├── github-logo.png ├── github-logo.png.import ├── icons.pngs ├── add-gray.png.iconpng ├── add.png.iconpng ├── align.png.buttonicon ├── background.png.iconpng ├── circle.png.iconpng ├── collaboration.png.iconpng ├── collaborator.png.iconpng ├── column.png.buttonicon ├── connection.png.iconpng ├── delete.png.buttonicon ├── dir-gray.png.iconpng ├── dir.png.iconpng ├── download-gray.png.iconpng ├── download.png.iconpng ├── edit.png.iconpng ├── edit_.png.iconpng ├── edit_gray.png.iconpng ├── file-gray.png.iconpng ├── file.png.buttonicon ├── file.png.iconpng ├── file_broken.png.iconpng ├── forks.png.iconpng ├── gists-back.png.iconpng ├── gists.png.iconpng ├── git_lfs-gray.png.iconpng ├── git_lfs.png.iconpng ├── githubicon.png.iconpng ├── image-gray.png.iconpng ├── image.png.iconpng ├── keys.png.buttonicon ├── lock.png.iconpng ├── new.png.buttonicon ├── noconnection.png.iconpng ├── organization.png.iconpng ├── read.png.buttonicon ├── reload-gray.png.iconpng ├── reload.png.iconpng ├── remove.png.buttonicon ├── repos-back.png.iconpng ├── repos.png.iconpng ├── resource-gray.png.iconpng ├── resource.png.iconpng ├── row.png.buttonicon ├── save.png.buttonicon ├── saveas.png.buttonicon ├── scene-gray.png.iconpng ├── scene.png.iconpng ├── script-gray.png.iconpng ├── script.png.iconpng ├── search.png.iconpng ├── searchconnection.png.iconpng ├── section.png.buttonicon ├── sections.png.buttonicon ├── stars.png.iconpng ├── text-center.png.buttonicon ├── text-fill.png.buttonicon ├── text-left.png.buttonicon ├── text-right.png.buttonicon └── watch.png.iconpng ├── icons ├── accept-w.png ├── accept-w.png.import ├── accept.png ├── accept.png.import ├── arrow-down.png ├── arrow-down.png.import ├── arrow-left.png ├── arrow-left.png.import ├── arrow-left.svg ├── arrow-left.svg.import ├── arrow-right.png ├── arrow-right.png.import ├── bell.png ├── bell.png.import ├── checked-white.png ├── checked-white.png.import ├── checked.png ├── checked.png.import ├── deny-w.png ├── deny-w.png.import ├── deny.png ├── deny.png.import ├── option-arrow.png ├── option-arrow.png.import ├── radioChecked.png ├── radioChecked.png.import ├── radioUncheckedhecked.png ├── radioUncheckedhecked.png.import ├── reload.png ├── reload.png.import ├── search.png ├── search.png.import ├── unchecked-white.png ├── unchecked-white.png.import ├── unchecked.png └── unchecked.png.import ├── plugin.cfg ├── resources ├── github-logo.png ├── github-logo.png.import ├── loading │ ├── throbber.png │ └── throbber.png.import ├── proxy.png ├── proxy.png.import ├── search.png ├── search.png.import ├── styles │ ├── Branch-black.tres │ ├── Branch-white.tres │ ├── ContentesBG-dark.tres │ ├── ContentesBG-white.tres │ ├── List-black.tres │ ├── List-white.tres │ ├── Repohead-black.tres │ └── Repohead-white.tres ├── themes │ ├── GitHubTheme-Dark.tres │ └── GitHubTheme.tres └── user │ ├── RoundAvatar.tres │ ├── circle.png │ ├── circle.png.iconpng.import │ ├── circle.png.import │ ├── discord.png │ ├── discord.png.import │ ├── paypal.png │ ├── paypal.png.import │ ├── placeholder.png │ └── placeholder.png.import ├── scenes ├── Commit.tscn ├── ContributorClass.tscn ├── EditGist.tscn ├── Gist.tscn ├── GistItem.tscn ├── GitHub.tscn ├── GreenBtn.tscn ├── Header.tscn ├── InvitationItem.tscn ├── NewRepo.tscn ├── NormalBtn.tscn ├── Notifications.tscn ├── RedBtn.tscn ├── Repo.tscn ├── RepositoryItem.tscn ├── RestHandler.tscn ├── SingIn.tscn ├── UserPanel.tscn └── loading.tscn ├── screenshots ├── .gdignore ├── banner.png ├── commit.PNG.screenshot ├── commit.png ├── gist.PNG.screenshot ├── gist.png ├── mainpanel1.PNG ├── repo.png ├── repo.png.screenshot ├── singin.png ├── singin.png.screenshot ├── userpanel.png └── userpanel.png.screenshot └── scripts ├── Commit.gd ├── ContributorClass.gd ├── Gist.gd ├── GistItem.gd ├── GitHub.gd ├── Header.gd ├── IconLoaderGithub.gd ├── InvitationItem.gd ├── NewGist.gd ├── Notifications.gd ├── PluginSettings.gd ├── Repo.gd ├── Repos.gd ├── RepositoryItem.gd ├── RestHandler.gd ├── SignIn.gd ├── UserPanel.gd ├── WindowDialog.gd ├── github-integration.gd ├── loading.gd └── user_data.gd /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | custom: ["https://paypal.me/NSantilio"] 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "[Bug] " 5 | labels: bug 6 | assignees: fenix-hub 7 | 8 | --- 9 | 10 | **Godot Version & Plugin Version** 11 | Godot: *x.x.x* 12 | Plugin: *x.x.x* 13 | 14 | **Describe the bug** 15 | A clear and concise description of what the bug is. 16 | 17 | **Screenshots** 18 | A screenshot of Godot Editor while you are encountering this bug, or a clear screenshot of Editor/External console. 19 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[Feature] " 5 | labels: enhancement 6 | assignees: fenix-hub 7 | 8 | --- 9 | 10 | **Describe the feature you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe a possible solution of implementation** 14 | A clear and concise description of any implementation solution. It is not mandatory, leave this blank if you don't want to get into technical stuff. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Plugin Specific ignores 2 | default_env.tres 3 | icon.png 4 | icon.png.import 5 | project.godot 6 | scn/ 7 | override.cfg 8 | 9 | # Godot-specific ignores 10 | .import/ 11 | export.cfg 12 | export_presets.cfg 13 | 14 | # Mono-specific ignores 15 | .mono/ 16 | data_*/ 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 fenix-hub 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | react 4 | 5 |

6 | 7 | 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)! 8 | 9 | 10 | 11 | # GitHub Integration 12 | A complete GitHub integration for your Godot Editor! Manage your project without even opening your browser. 13 | 14 | Author: *"Nicolo (fenix) Santilio"* 15 | Version: *1.4.4* 16 | Godot Version: *3.2.4-rc3* 17 | Wiki: *[supported](https://github.com/fenix-hub/godot-engine.github-integration/wiki)* 18 | 19 | 20 | 21 | ## What is this? 22 | *GitHub Integration* is a addon for Godot Engine that I've created mainly for a personal purpose. 23 | Pushing and Pulling repositories while I'm working on Godot (especially if I'm under a GameJam) could take some time and force me to save the project, open the brwoser/git bash/git gui, and do all the stuff. 24 | With this little addon which works directly in the editor, managing all your repositories will be very easy. 25 | 26 | ## What can it do? 27 | *Github Integration* offers the main functionalities provided by GitHub (and git itself), in a more accessible way. 28 | Currenlty, you can: 29 | - Manage all of your public and private **repositories**, *including* the ones you share with organizations and the ones in which you are a collaborator (with proper permissions): create, delete, push and clone repositories within your Godot project 30 | - Manage all of your public and private **gists**: delete, edit and create gists with a functional text editor 31 | - Manage collaboration invitations, inviting user to your repositories or accept/decline invitations you have received 32 | 33 | ## How does it work? 34 | I'm currently working on a [Wiki](https://github.com/fenix-hub/godot-engine.github-integration/wiki) for this plugin. It is a process that will take some time to complete since I want to provide a well-organized wiki with some basic explanations about GitHub itself. Anyway, I'm working on a user-friendly plugin, so everything should be the very ease to use for GitHub experienced users, and a little intuitive for people who never used GitHub or are not so experienced. 35 | If you want to see some screenshots you can find them here `addons/github-integration/screenshots` 36 | 37 | ## Supporters page 38 | 39 | 40 | 41 | 42 | 43 |
@masterworm2
masterworm2
@auctru
autcru
44 | 45 | ## :warning: Disclaimer 46 | As a "work in progress" project, there is *no warranty* for any eventual issue and bug that may broke your project. 47 | I don't assume any responsibility for possible corruptions of your project. It is always advisable to keep a copy of your project and check any changes you make in your Github repository. 48 | 49 | ----------------- 50 | > This text file was created via [TextEditor Integration](https://github.com/fenix-hub/godot-engine.text-editor) inside Godot Engine's Editor. -------------------------------------------------------------------------------- /VERSION.md: -------------------------------------------------------------------------------- 1 | **version 0.1.5** 2 | *added* 3 | + Light code clean 4 | + Some Bugfix 5 | + Plugin output for debug of some of the operations 6 | + Automatic Filling of sign in fields 7 | + Multiple files commit and changes commit 8 | + Every text and image file format supported 9 | + Filtering in committing 10 | + Autoload branches content 11 | 12 | *removed* 13 | + Single file commit 14 | + Only text file commit 15 | 16 | ---------------------- 17 | 18 | **version 0.2.5** 19 | *added* 20 | + Code clean 21 | + Chose branch to commit 22 | + Delete resource selected in repository 23 | + Filters: Exceptions, Only, Start from 24 | 25 | ---------------------- 26 | 27 | **version 0.2.7** 28 | *added* 29 | + Code clean 30 | + Fix some little animations 31 | + New commit method: tree created from blobs, creates a single commit with more files 32 | 33 | *removed* 34 | + Old commit method 35 | 36 | ---------------------- 37 | 38 | **version 0.2.9** 39 | *added* 40 | + Code clean 41 | + Bugfix with commits 42 | + A marker next to "Sign-in" buttons appears if a logfile is found 43 | 44 | ---------------------- 45 | 46 | **version 0.3.1** 47 | *added* 48 | + Several bugfixes 49 | 50 | -------------------- 51 | 52 | **version 0.3.2** 53 | *added* 54 | + New folder organization (whole plugin in *addon* folder) 55 | + New install method (AssetLib from GodotEngine Editor) 56 | 57 | -------------------- 58 | 59 | **version 0.6.0** 60 | *removed* 61 | - old position: 62 | - the plugin doesn't appear in docs anymore. Instead, it will load a new tool in the top toolbar 63 | - old layout: 64 | - RepositoryList and GistList now show more informations about their contents 65 | - old repository's content system: 66 | - Repositories contents are now listed in a tree way 67 | - old "commit to repository" system and FILTERS: 68 | - The old system was based on a Filtering system: I introduced filters to help people choose which file to exclude from your commit, which files should negate an exclusion, and eventually from which path to start. This system was based on the conception that the whole commit started from the `res://` path. Now, you can select in a more interactive way all files and folders you want to commit, and exclude them with a .gitignore system. 69 | 70 | *added* 71 | + Informations about repositories: 72 | + Repositories now have their own icons: *lock* for private, *fork* for forked repositories, *gray repo* for own public repositories 73 | + Repositories show their forked times and stars 74 | + License templates: new repositories can now be created with a license template from all availables github supported licenses 75 | + Repository contents system: 76 | + files are now displayed in a compact, more readable tree system. Files and folders are differentiated, and folders can be folded and unfolded to show their contents 77 | + you can now delete multiple files just CTRL/SHIFT selecting them. **remember:** folders cannot be deleted by github integrity rules. Delete all folder's contents to delete the folder itself 78 | + you can now create a new branch from all selectable branches in your repository 79 | + **!Repository committing system**: 80 | + [filtering] 81 | + Since FILTERS are not supported anymore, the usage of `.gitignore` is now implemented. 82 | + a `.gitignore` file is loaded from the repository you want to commit to. If this repository doesn't have a gitignore, an empty and new gitignore can be created and committed. 83 | + the "gitignore editor" is shown next to the "committing tree" so you can procedurally select files and folders, and exclude/include them with the gitignore. *if you don't know how to use a gitignore, I recommend you to click on the `?` button in the bottom-right of the gitignore editor* 84 | + the "edit .gitignore" button will prevent any unwanted modifications to be applied by any chance (miss-typing, or you just don't need to edit the gitignore since it was loaded from the repository) 85 | + [file choosing] 86 | + Since FILTERS are not supported anymore, the commit process won't start from the project folder. 87 | + Now you can select multiple files and directories you want to commit through a file dialog showing your whole project folder. 88 | + Files and directories can always be removed before committing 89 | **Please, note that the gitignore filtering method is custom made. To fully support the same gitignore method applied by GitHub some tests are needed** 90 | + **Gists** can now be opened, edited, and pushed with a cusotm GitEditor. Gists which contain more than one file are supported, and you can edit more files at the same time. 91 | 92 | -------------------- 93 | 94 | **version 0.6.2** 95 | *fixed* 96 | - new method to show contents of repositories: faster code and works better. Empty repositories won't be loaded 97 | - now each loading has a loading screen covering the whole scene: no more missclicks during a repository loading or a commit 98 | - new icons in repositories to visually show what's the content type ( adapted to Godot Engine's file types) 99 | 100 | -------------------- 101 | 102 | **version 0.7.0** 103 | *added* 104 | - **pull / clone button** : you can now pull from any branch of a selected repository. A local copy of your repository with files relative to the selected branch will be created in a .zip file inside your 'res://' folder. In this way you will be able to manage your repository's files in the way you prefer. Pulling/Cloning works on public, private and forked repositories. 105 | 106 | -------------------- 107 | 108 | **version 0.7.2** 109 | *added* 110 | - **debug messages checkbox** : a new checkbox will appear on the top-left corner of the GUI. With this checkbox you can decide if you want to get debug messages from this plugin or not. You can enable/disable it in any plugin tab 111 | 112 | *fidex* 113 | - **deleting repository's resources** : with the previous version a bug occured and it wasn't possible to delete resources within a repository. 114 | 115 | -------------------- 116 | 117 | **version 0.7.4** 118 | *added* 119 | - **auto extraction** : the plugin is now able to auto-extract downloaded archives automatically. _your OS needs python_ to run the extraction script since it is not currently built in Godot Engine. It is still a beta script, so it is highly recommended to use it inside empty projects and have some tests. You can always report issues and contact me for any bug. 120 | - **sing up link** : if you don't have an account, or want to create a new one, you can click on the *'Don't have a GitHub account yet?'* button in the main tab of the plugin 121 | 122 | -------------------- 123 | 124 | **version 0.7.5** 125 | *fixed* 126 | - **minor bugs** 127 | 128 | -------------------- 129 | 130 | **version 0.7.8** 131 | *fixed* 132 | - *[!] icon for log file* appeared even though there weren't log files already stored 133 | - increased the number of repositories that will be listed. Default GitHub repository listing provides only 30 repositories at time. Now the limit is increased to 100. 134 | 135 | *added* 136 | - user's datas are now stored in an **encrypted file**, and datas are shared on an upper level folder. Now you won't need to save the same datas for each 'github integration' plugin you install in your new projects, but all the projects you have and in which you use this plugin will always use the same log file. This log file will be stored at `/AppData/Roaming/Godot/github_integration/` 137 | - the plugin now supports two different unzipping methods, one with a *Python script* and one with a *GDScript*. The second one is offered by an external plugin, which is the [gdunzip](https://github.com/jellehermsen/gdunzip) plugin developed by [jellehermsen](https://github.com/jellehermsen) (please, check it out!!). **NOTE:** If you've got Python installed on your PC, it is recommended using the Python one, since the GDScript one is not developed by me and may not work. In that case, please make an issue with specific informations about the problem you've encountered, and I'll make sure to discuss about it with the developer. 138 | 139 | -------------------- 140 | 141 | **version 0.8.2** 142 | *fixed* 143 | - autoload errors with 3.2 beta versions (and so on) 144 | - some interface bugs 145 | - minor bugfixes 146 | 147 | *added* 148 | - **new authentication method** : it is now possible to log into your GitHub profile with an *Access Token*. Since GitHub will deprecate the basic authentication method (which consists of `your e-mail : your password`) this plugin will **only work** with your personal access token. 149 | Please, visit [this site](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) to understand what a Personal Access Token is, and how to use it. You will also find this link as a button in the plugin. 150 | 151 | -------------------- 152 | 153 | **version 0.8.4** 154 | *fixed* 155 | - plugin ui 156 | - extraction methods 157 | 158 | *added* 159 | - introduced a java extraction method for zip files. 160 | 161 | ------------------- 162 | **version 0.9.0** 163 | *fixed* 164 | - opening shared repositories 165 | 166 | *added* 167 | - new repositories explorer 168 | - search bar for repositories 169 | 170 | ----------------- 171 | **version 1.0.0** 172 | *fixed* 173 | - overall fixes 174 | - *infinite loading after commit/push:* fixed an issue that blocked commiting and pushing an entire project or some specific files. Now everything should be committed fine. A whole project can be committed just selecting "Select current directory" 175 | - *.gitignore handling:* fixed gitignore handling, sometimes they were empty or overwritten randomly 176 | 177 | *added* 178 | - *new UI:* now the plugin follows the official GitHub color palette and interface 179 | - *gist searchbar:* it is now possible to use the searchbar for gist 180 | - *autolog:* now an auto login option is available. When activated, the plugin will automatically log inside user's github profile 181 | - **darkmode:** it is now available a darkmode. Both light and dark modes respect github color palette. The dark mode can be activated anytime during the plugin usage 182 | 183 | ----------------- 184 | **version 1.1.0** 185 | *fixed* 186 | - *faster login and auto-login* 187 | - *minor errors with nodes* 188 | 189 | *added* 190 | - *fast social button to header:* you can now join the social I share in the README with some buttons in the header. 191 | 192 | ----------------- 193 | **version 1.2.0** 194 | *fixed* 195 | - dark theme fixed 196 | 197 | *added* 198 | - *collaborations:* you can now invite other users for a collaboration in your repositories. If the user has been invited successfully, they will receive an email with an invitation to accept/decline. Users that have repositories in collaboration will see these repositories marked with a new icon inside their repositories list. Collaborators can work with this repositories as they are their own repositories (based on the permissions granted), so teamworking will be much faster. 199 | 200 | 201 | > This text file was created via [TextEditor Integration](https://github.com/fenix-hub/godot-engine.text-editor) inside Godot Engine's Editor. 202 | 203 | 204 | 205 | 206 | -------------------------------------------------------------------------------- /addons/github-integration/fonts/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/fonts/Roboto-Black.ttf -------------------------------------------------------------------------------- /addons/github-integration/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /addons/github-integration/fonts/SEGOEUI.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/fonts/SEGOEUI.TTF -------------------------------------------------------------------------------- /addons/github-integration/fonts/SEGOEUIB.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/fonts/SEGOEUIB.TTF -------------------------------------------------------------------------------- /addons/github-integration/github-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/github-logo.png -------------------------------------------------------------------------------- /addons/github-integration/github-logo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/github-logo.png-47e01e9fc59994c0db55903788d0795b.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/github-logo.png" 13 | dest_files=[ "res://.import/github-logo.png-47e01e9fc59994c0db55903788d0795b.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/add-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/add-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/add.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/add.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/align.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/align.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/background.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/background.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/circle.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/circle.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/collaboration.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/collaboration.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/collaborator.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/collaborator.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/column.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/column.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/connection.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/connection.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/delete.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/delete.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/dir-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/dir-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/dir.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/dir.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/download-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/download-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/download.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/download.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/edit.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/edit.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/edit_.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/edit_.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/edit_gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/edit_gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/file-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/file-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/file.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/file.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/file.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/file.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/file_broken.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/file_broken.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/forks.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/forks.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/gists-back.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/gists-back.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/gists.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/gists.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/git_lfs-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/git_lfs-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/git_lfs.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/git_lfs.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/githubicon.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/githubicon.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/image-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/image-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/image.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/image.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/keys.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/keys.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/lock.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/lock.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/new.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/new.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/noconnection.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/noconnection.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/organization.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/organization.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/read.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/read.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/reload-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/reload-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/reload.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/reload.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/remove.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/remove.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/repos-back.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/repos-back.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/repos.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/repos.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/resource-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/resource-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/resource.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/resource.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/row.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/row.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/save.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/save.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/saveas.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/saveas.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/scene-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/scene-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/scene.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/scene.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/script-gray.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/script-gray.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/script.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/script.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/search.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/search.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/searchconnection.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/searchconnection.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/section.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/section.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/sections.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/sections.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/stars.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/stars.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/text-center.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/text-center.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/text-fill.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/text-fill.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/text-left.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/text-left.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/text-right.png.buttonicon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/text-right.png.buttonicon -------------------------------------------------------------------------------- /addons/github-integration/icons.pngs/watch.png.iconpng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons.pngs/watch.png.iconpng -------------------------------------------------------------------------------- /addons/github-integration/icons/accept-w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/accept-w.png -------------------------------------------------------------------------------- /addons/github-integration/icons/accept-w.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/accept-w.png-5d14172905ef883ae53edc9c9d7c3161.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/accept-w.png" 13 | dest_files=[ "res://.import/accept-w.png-5d14172905ef883ae53edc9c9d7c3161.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/accept.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/accept.png -------------------------------------------------------------------------------- /addons/github-integration/icons/accept.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/accept.png-69f9c244a8fc65b0e8e0a9f63861044d.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/accept.png" 13 | dest_files=[ "res://.import/accept.png-69f9c244a8fc65b0e8e0a9f63861044d.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/arrow-down.png -------------------------------------------------------------------------------- /addons/github-integration/icons/arrow-down.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/arrow-down.png-05925cd689ad05c4a0467266ab52cce9.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/arrow-down.png" 13 | dest_files=[ "res://.import/arrow-down.png-05925cd689ad05c4a0467266ab52cce9.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/arrow-left.png -------------------------------------------------------------------------------- /addons/github-integration/icons/arrow-left.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/arrow-left.png-1941a3f221b2e3cc142502e269e458f9.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/arrow-left.png" 13 | dest_files=[ "res://.import/arrow-left.png-1941a3f221b2e3cc142502e269e458f9.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /addons/github-integration/icons/arrow-left.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/arrow-left.svg-dd6535743349ac0a285fc99ef3ed711e.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/arrow-left.svg" 13 | dest_files=[ "res://.import/arrow-left.svg-dd6535743349ac0a285fc99ef3ed711e.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=true 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=2.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/arrow-right.png -------------------------------------------------------------------------------- /addons/github-integration/icons/arrow-right.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/arrow-right.png-cd9e94faef510d4ea4099650bfff27fb.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/arrow-right.png" 13 | dest_files=[ "res://.import/arrow-right.png-cd9e94faef510d4ea4099650bfff27fb.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/bell.png -------------------------------------------------------------------------------- /addons/github-integration/icons/bell.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/bell.png-f23eb8d10b79024fd8e597ba841b0bbc.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/bell.png" 13 | dest_files=[ "res://.import/bell.png-f23eb8d10b79024fd8e597ba841b0bbc.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/checked-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/checked-white.png -------------------------------------------------------------------------------- /addons/github-integration/icons/checked-white.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/checked-white.png-369373d01ee5029fc1178bf0eb2cf357.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/checked-white.png" 13 | dest_files=[ "res://.import/checked-white.png-369373d01ee5029fc1178bf0eb2cf357.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/checked.png -------------------------------------------------------------------------------- /addons/github-integration/icons/checked.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/checked.png-8845c77d4b851b4662c4287d01836338.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/checked.png" 13 | dest_files=[ "res://.import/checked.png-8845c77d4b851b4662c4287d01836338.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/deny-w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/deny-w.png -------------------------------------------------------------------------------- /addons/github-integration/icons/deny-w.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/deny-w.png-7897b4d59c46a228e49aaedb77364b95.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/deny-w.png" 13 | dest_files=[ "res://.import/deny-w.png-7897b4d59c46a228e49aaedb77364b95.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/deny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/deny.png -------------------------------------------------------------------------------- /addons/github-integration/icons/deny.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/deny.png-dd404a9604acf11f9384f4685f1dbed0.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/deny.png" 13 | dest_files=[ "res://.import/deny.png-dd404a9604acf11f9384f4685f1dbed0.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/option-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/option-arrow.png -------------------------------------------------------------------------------- /addons/github-integration/icons/option-arrow.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/option-arrow.png-a593ddd4971494c16c9554162db7cc36.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/option-arrow.png" 13 | dest_files=[ "res://.import/option-arrow.png-a593ddd4971494c16c9554162db7cc36.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/radioChecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/radioChecked.png -------------------------------------------------------------------------------- /addons/github-integration/icons/radioChecked.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/radioChecked.png-8a7b8b7596e87fb20baf7b5540faa542.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/radioChecked.png" 13 | dest_files=[ "res://.import/radioChecked.png-8a7b8b7596e87fb20baf7b5540faa542.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/radioUncheckedhecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/radioUncheckedhecked.png -------------------------------------------------------------------------------- /addons/github-integration/icons/radioUncheckedhecked.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/radioUncheckedhecked.png-d5681921ff8218e97c08919dcf562297.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/radioUncheckedhecked.png" 13 | dest_files=[ "res://.import/radioUncheckedhecked.png-d5681921ff8218e97c08919dcf562297.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/reload.png -------------------------------------------------------------------------------- /addons/github-integration/icons/reload.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/reload.png-ec1821d2ce6b88dacf319266a4f3710a.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/reload.png" 13 | dest_files=[ "res://.import/reload.png-ec1821d2ce6b88dacf319266a4f3710a.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/search.png -------------------------------------------------------------------------------- /addons/github-integration/icons/search.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/search.png-3cca5de8d391e3e5ae6aaca6f3c3abf2.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/search.png" 13 | dest_files=[ "res://.import/search.png-3cca5de8d391e3e5ae6aaca6f3c3abf2.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=true 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=false 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=true 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/unchecked-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/unchecked-white.png -------------------------------------------------------------------------------- /addons/github-integration/icons/unchecked-white.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/unchecked-white.png-9152f6ec19987a25880de343cabe86fa.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/unchecked-white.png" 13 | dest_files=[ "res://.import/unchecked-white.png-9152f6ec19987a25880de343cabe86fa.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/icons/unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/icons/unchecked.png -------------------------------------------------------------------------------- /addons/github-integration/icons/unchecked.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/unchecked.png-02470437d0cf6ccdb5e5f0adbcafe421.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/icons/unchecked.png" 13 | dest_files=[ "res://.import/unchecked.png-02470437d0cf6ccdb5e5f0adbcafe421.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/plugin.cfg: -------------------------------------------------------------------------------- 1 | [plugin] 2 | 3 | name="GitHub integration" 4 | description="Plugin to integrate GitHub requests directly via Godot Engine Editor" 5 | author="Nicolo (fenix) Santilio" 6 | version="1.4.4" 7 | script="scripts/github-integration.gd" 8 | -------------------------------------------------------------------------------- /addons/github-integration/resources/github-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/resources/github-logo.png -------------------------------------------------------------------------------- /addons/github-integration/resources/github-logo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/github-logo.png-ecbc9f6d20796b46b889486439e860bc.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/resources/github-logo.png" 13 | dest_files=[ "res://.import/github-logo.png-ecbc9f6d20796b46b889486439e860bc.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=false 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/resources/loading/throbber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/resources/loading/throbber.png -------------------------------------------------------------------------------- /addons/github-integration/resources/loading/throbber.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/throbber.png-ae03ce9c717cd2fb342f9f5d37de98d0.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/resources/loading/throbber.png" 13 | dest_files=[ "res://.import/throbber.png-ae03ce9c717cd2fb342f9f5d37de98d0.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=true 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/resources/proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/resources/proxy.png -------------------------------------------------------------------------------- /addons/github-integration/resources/proxy.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/proxy.png-eb05e86e1b09889d8d9cb4eff7df2f1b.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/resources/proxy.png" 13 | dest_files=[ "res://.import/proxy.png-eb05e86e1b09889d8d9cb4eff7df2f1b.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/resources/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/resources/search.png -------------------------------------------------------------------------------- /addons/github-integration/resources/search.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/search.png-9b9b7cef4594258a01318d95c85ad610.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/resources/search.png" 13 | dest_files=[ "res://.import/search.png-9b9b7cef4594258a01318d95c85ad610.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=true 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=false 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=true 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/resources/styles/Branch-black.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 5.0 5 | content_margin_right = 5.0 6 | content_margin_top = 10.0 7 | content_margin_bottom = 10.0 8 | bg_color = Color( 0.235294, 0.286275, 0.333333, 1 ) 9 | border_width_left = 1 10 | border_width_top = 1 11 | border_width_right = 1 12 | border_width_bottom = 1 13 | border_color = Color( 0.180392, 0.231373, 0.301961, 1 ) 14 | corner_radius_top_left = 10 15 | corner_radius_top_right = 10 16 | corner_detail = 20 17 | anti_aliasing = false 18 | -------------------------------------------------------------------------------- /addons/github-integration/resources/styles/Branch-white.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 5.0 5 | content_margin_right = 5.0 6 | content_margin_top = 10.0 7 | content_margin_bottom = 10.0 8 | bg_color = Color( 0.945098, 0.972549, 1, 1 ) 9 | border_width_left = 1 10 | border_width_top = 1 11 | border_width_right = 1 12 | border_width_bottom = 1 13 | border_color = Color( 0.835294, 0.909804, 1, 1 ) 14 | corner_radius_top_left = 10 15 | corner_radius_top_right = 10 16 | corner_detail = 20 17 | anti_aliasing = false 18 | -------------------------------------------------------------------------------- /addons/github-integration/resources/styles/ContentesBG-dark.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 4.0 5 | content_margin_right = 4.0 6 | bg_color = Color( 0.168627, 0.188235, 0.203922, 1 ) 7 | border_width_left = 1 8 | border_width_right = 1 9 | border_width_bottom = 1 10 | border_color = Color( 0.137255, 0.137255, 0.14902, 1 ) 11 | corner_radius_bottom_right = 10 12 | corner_radius_bottom_left = 10 13 | corner_detail = 20 14 | anti_aliasing = false 15 | -------------------------------------------------------------------------------- /addons/github-integration/resources/styles/ContentesBG-white.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 4.0 5 | content_margin_right = 4.0 6 | bg_color = Color( 1, 1, 1, 1 ) 7 | border_width_left = 1 8 | border_width_right = 1 9 | border_width_bottom = 1 10 | border_color = Color( 0.890196, 0.890196, 0.898039, 1 ) 11 | corner_radius_bottom_right = 10 12 | corner_radius_bottom_left = 10 13 | corner_detail = 20 14 | anti_aliasing = false 15 | -------------------------------------------------------------------------------- /addons/github-integration/resources/styles/List-black.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 10.0 5 | content_margin_right = 10.0 6 | content_margin_top = 10.0 7 | content_margin_bottom = 10.0 8 | bg_color = Color( 0.168627, 0.188235, 0.203922, 1 ) 9 | border_width_left = 1 10 | border_width_top = 1 11 | border_width_right = 1 12 | border_width_bottom = 1 13 | border_color = Color( 0.113725, 0.121569, 0.129412, 1 ) 14 | corner_radius_top_left = 10 15 | corner_radius_top_right = 10 16 | corner_radius_bottom_right = 10 17 | corner_radius_bottom_left = 10 18 | corner_detail = 20 19 | anti_aliasing = false 20 | -------------------------------------------------------------------------------- /addons/github-integration/resources/styles/List-white.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 10.0 5 | content_margin_right = 10.0 6 | content_margin_top = 10.0 7 | content_margin_bottom = 10.0 8 | bg_color = Color( 1, 1, 1, 1 ) 9 | border_width_left = 1 10 | border_width_top = 1 11 | border_width_right = 1 12 | border_width_bottom = 1 13 | border_color = Color( 0.870588, 0.87451, 0.882353, 1 ) 14 | corner_radius_top_left = 10 15 | corner_radius_top_right = 10 16 | corner_radius_bottom_right = 10 17 | corner_radius_bottom_left = 10 18 | corner_detail = 20 19 | anti_aliasing = false 20 | -------------------------------------------------------------------------------- /addons/github-integration/resources/styles/Repohead-black.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 0.0 5 | content_margin_right = 0.0 6 | content_margin_top = 10.0 7 | content_margin_bottom = 10.0 8 | bg_color = Color( 0.184314, 0.203922, 0.223529, 1 ) 9 | border_width_bottom = 1 10 | border_color = Color( 0.133333, 0.152941, 0.168627, 1 ) 11 | corner_detail = 20 12 | expand_margin_left = 20.0 13 | expand_margin_right = 20.0 14 | anti_aliasing = false 15 | -------------------------------------------------------------------------------- /addons/github-integration/resources/styles/Repohead-white.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=2] 2 | 3 | [resource] 4 | content_margin_left = 0.0 5 | content_margin_right = 0.0 6 | content_margin_top = 10.0 7 | content_margin_bottom = 10.0 8 | bg_color = Color( 0.980392, 0.984314, 0.988235, 1 ) 9 | border_width_bottom = 1 10 | border_color = Color( 0.882353, 0.894118, 0.909804, 1 ) 11 | corner_detail = 20 12 | expand_margin_left = 20.0 13 | expand_margin_right = 20.0 14 | anti_aliasing = false 15 | -------------------------------------------------------------------------------- /addons/github-integration/resources/user/RoundAvatar.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ShaderMaterial" load_steps=5 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/resources/user/circle.png" type="Texture" id=1] 4 | 5 | [sub_resource type="VisualShaderNodeTexture" id=1] 6 | output_port_for_preview = 1 7 | texture = ExtResource( 1 ) 8 | 9 | [sub_resource type="VisualShaderNodeTexture" id=2] 10 | source = 2 11 | 12 | [sub_resource type="VisualShader" id=3] 13 | code = "shader_type canvas_item; 14 | uniform sampler2D tex_frg_3; 15 | 16 | 17 | 18 | void vertex() { 19 | // Output:0 20 | 21 | } 22 | 23 | void fragment() { 24 | // Texture:4 25 | vec3 n_out4p0; 26 | float n_out4p1; 27 | { 28 | vec4 _tex_read = texture(TEXTURE , UV.xy); 29 | n_out4p0 = _tex_read.rgb; 30 | n_out4p1 = _tex_read.a; 31 | } 32 | 33 | // Texture:3 34 | vec4 tex_frg_3_read = texture(tex_frg_3, UV.xy); 35 | vec3 n_out3p0 = tex_frg_3_read.rgb; 36 | float n_out3p1 = tex_frg_3_read.a; 37 | 38 | // Output:0 39 | COLOR.rgb = n_out4p0; 40 | COLOR.a = n_out3p1; 41 | 42 | } 43 | 44 | void light() { 45 | // Output:0 46 | 47 | } 48 | " 49 | graph_offset = Vector2( -371.254, 150 ) 50 | mode = 1 51 | flags/light_only = false 52 | nodes/fragment/3/node = SubResource( 1 ) 53 | nodes/fragment/3/position = Vector2( 0, 200 ) 54 | nodes/fragment/4/node = SubResource( 2 ) 55 | nodes/fragment/4/position = Vector2( 0, 80 ) 56 | nodes/fragment/connections = PoolIntArray( 4, 0, 0, 0, 3, 1, 0, 1 ) 57 | 58 | [resource] 59 | shader = SubResource( 3 ) 60 | -------------------------------------------------------------------------------- /addons/github-integration/resources/user/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/resources/user/circle.png -------------------------------------------------------------------------------- /addons/github-integration/resources/user/circle.png.iconpng.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/circle.png-c3ba04f17b6d42fdf030b659f9304d97.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/user/circle.png" 13 | dest_files=[ "res://.import/circle.png-c3ba04f17b6d42fdf030b659f9304d97.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/resources/user/circle.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/circle.png-ab6085011eacb640874b71ad62328370.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/resources/user/circle.png" 13 | dest_files=[ "res://.import/circle.png-ab6085011eacb640874b71ad62328370.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/resources/user/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/resources/user/discord.png -------------------------------------------------------------------------------- /addons/github-integration/resources/user/discord.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/discord.png-cabaff2402b5a64a4a182b44af99f8dc.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/resources/user/discord.png" 13 | dest_files=[ "res://.import/discord.png-cabaff2402b5a64a4a182b44af99f8dc.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=true 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/resources/user/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/resources/user/paypal.png -------------------------------------------------------------------------------- /addons/github-integration/resources/user/paypal.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/paypal.png-5bebf862c20f1b601f51756463163b86.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/resources/user/paypal.png" 13 | dest_files=[ "res://.import/paypal.png-5bebf862c20f1b601f51756463163b86.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=true 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/resources/user/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/resources/user/placeholder.png -------------------------------------------------------------------------------- /addons/github-integration/resources/user/placeholder.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/placeholder.png-fdd683ee36ca80dff9ce9c6b1ddb20ee.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/github-integration/resources/user/placeholder.png" 13 | dest_files=[ "res://.import/placeholder.png-fdd683ee36ca80dff9ce9c6b1ddb20ee.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=true 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/Commit.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=7 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scripts/Commit.gd" type="Script" id=1] 4 | [ext_resource path="res://addons/github-integration/icons/arrow-left.svg" type="Texture" id=2] 5 | [ext_resource path="res://addons/github-integration/resources/themes/GitHubTheme-Dark.tres" type="Theme" id=3] 6 | 7 | [sub_resource type="StyleBoxEmpty" id=1] 8 | 9 | [sub_resource type="Shader" id=2] 10 | code = "shader_type canvas_item; 11 | render_mode unshaded, blend_disabled; 12 | 13 | uniform float speed = 5.0; 14 | 15 | vec2 rotateUV(vec2 uv, vec2 pivot, float rotation) { 16 | float cosa = cos(rotation); 17 | float sina = sin(rotation); 18 | uv -= pivot; 19 | return vec2( 20 | cosa * uv.x - sina * uv.y, 21 | cosa * uv.y + sina * uv.x 22 | ) + pivot; 23 | } 24 | 25 | void vertex() { 26 | VERTEX = rotateUV(VERTEX, TEXTURE_PIXEL_SIZE+vec2(45,45), TIME * speed); 27 | } 28 | 29 | " 30 | 31 | [sub_resource type="ShaderMaterial" id=3] 32 | shader = SubResource( 2 ) 33 | shader_param/speed = 0 34 | 35 | [node name="Commit" type="Control"] 36 | anchor_right = 1.0 37 | anchor_bottom = 1.0 38 | theme = ExtResource( 3 ) 39 | script = ExtResource( 1 ) 40 | __meta__ = { 41 | "_edit_use_anchors_": false 42 | } 43 | 44 | [node name="BG" type="ColorRect" parent="."] 45 | anchor_right = 1.0 46 | anchor_bottom = 1.0 47 | color = Color( 0.964706, 0.972549, 0.980392, 1 ) 48 | 49 | [node name="VBoxContainer2" type="VBoxContainer" parent="."] 50 | anchor_right = 1.0 51 | anchor_bottom = 1.0 52 | margin_left = 16.0 53 | margin_top = 16.0 54 | margin_right = -16.0 55 | margin_bottom = -16.0 56 | __meta__ = { 57 | "_edit_use_anchors_": false 58 | } 59 | 60 | [node name="close2" type="TextureButton" parent="VBoxContainer2"] 61 | modulate = Color( 0.27451, 0.262745, 0.266667, 1 ) 62 | margin_right = 32.0 63 | margin_bottom = 32.0 64 | size_flags_horizontal = 0 65 | shortcut_in_tooltip = false 66 | texture_normal = ExtResource( 2 ) 67 | 68 | [node name="Label2" type="Label" parent="VBoxContainer2"] 69 | visible = false 70 | margin_top = 18.0 71 | margin_right = 984.0 72 | margin_bottom = 40.0 73 | size_flags_horizontal = 3 74 | custom_colors/font_color = Color( 0.133333, 0.133333, 0.133333, 1 ) 75 | text = "COMMIT AND PUSH" 76 | align = 1 77 | valign = 1 78 | 79 | [node name="HSeparator9" type="HSeparator" parent="VBoxContainer2"] 80 | margin_top = 36.0 81 | margin_right = 992.0 82 | margin_bottom = 44.0 83 | rect_min_size = Vector2( 0, 8 ) 84 | custom_styles/separator = SubResource( 1 ) 85 | 86 | [node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer2"] 87 | margin_top = 48.0 88 | margin_right = 992.0 89 | margin_bottom = 78.0 90 | alignment = 1 91 | 92 | [node name="Branch" type="Label" parent="VBoxContainer2/HBoxContainer2"] 93 | margin_left = 391.0 94 | margin_top = 4.0 95 | margin_right = 447.0 96 | margin_bottom = 26.0 97 | text = "Branch:" 98 | align = 2 99 | 100 | [node name="branch" type="OptionButton" parent="VBoxContainer2/HBoxContainer2"] 101 | margin_left = 451.0 102 | margin_right = 601.0 103 | margin_bottom = 30.0 104 | rect_min_size = Vector2( 150, 0 ) 105 | 106 | [node name="HBoxContainer7" type="HBoxContainer" parent="VBoxContainer2"] 107 | margin_top = 82.0 108 | margin_right = 992.0 109 | margin_bottom = 114.0 110 | alignment = 1 111 | 112 | [node name="Message" type="Label" parent="VBoxContainer2/HBoxContainer7"] 113 | margin_left = 257.0 114 | margin_top = 5.0 115 | margin_right = 380.0 116 | margin_bottom = 27.0 117 | text = "Commit Message:" 118 | align = 2 119 | 120 | [node name="message" type="LineEdit" parent="VBoxContainer2/HBoxContainer7"] 121 | margin_left = 384.0 122 | margin_right = 734.0 123 | margin_bottom = 32.0 124 | rect_min_size = Vector2( 350, 0 ) 125 | size_flags_vertical = 3 126 | caret_blink = true 127 | caret_blink_speed = 0.5 128 | 129 | [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer2"] 130 | margin_top = 118.0 131 | margin_right = 992.0 132 | margin_bottom = 140.0 133 | alignment = 1 134 | 135 | [node name="Content" type="Label" parent="VBoxContainer2/HBoxContainer"] 136 | margin_left = 438.0 137 | margin_right = 542.0 138 | margin_bottom = 22.0 139 | size_flags_vertical = 1 140 | text = "Committing to:" 141 | align = 2 142 | 143 | [node name="repository" type="Label" parent="VBoxContainer2/HBoxContainer"] 144 | margin_left = 546.0 145 | margin_right = 554.0 146 | margin_bottom = 22.0 147 | grow_horizontal = 0 148 | grow_vertical = 0 149 | size_flags_vertical = 3 150 | custom_colors/font_color = Color( 0.0745098, 0.627451, 0.419608, 1 ) 151 | 152 | [node name="HSeparator8" type="HSeparator" parent="VBoxContainer2"] 153 | margin_top = 144.0 154 | margin_right = 992.0 155 | margin_bottom = 152.0 156 | rect_min_size = Vector2( 0, 8 ) 157 | custom_styles/separator = SubResource( 1 ) 158 | 159 | [node name="HBoxContainer4" type="HBoxContainer" parent="VBoxContainer2"] 160 | margin_top = 156.0 161 | margin_right = 992.0 162 | margin_bottom = 178.0 163 | 164 | [node name="Label" type="Label" parent="VBoxContainer2/HBoxContainer4"] 165 | margin_right = 494.0 166 | margin_bottom = 22.0 167 | size_flags_horizontal = 3 168 | text = ".gitignore" 169 | align = 1 170 | 171 | [node name="Label2" type="Label" parent="VBoxContainer2/HBoxContainer4"] 172 | margin_left = 498.0 173 | margin_right = 992.0 174 | margin_bottom = 22.0 175 | size_flags_horizontal = 3 176 | text = "Committing files" 177 | align = 1 178 | 179 | [node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer2"] 180 | margin_top = 182.0 181 | margin_right = 992.0 182 | margin_bottom = 480.0 183 | size_flags_horizontal = 3 184 | size_flags_vertical = 3 185 | 186 | [node name="VBoxContainer2" type="VBoxContainer" parent="VBoxContainer2/HBoxContainer3"] 187 | margin_right = 494.0 188 | margin_bottom = 298.0 189 | size_flags_horizontal = 3 190 | size_flags_vertical = 3 191 | 192 | [node name="gitignore" type="TextEdit" parent="VBoxContainer2/HBoxContainer3/VBoxContainer2"] 193 | margin_right = 494.0 194 | margin_bottom = 264.0 195 | size_flags_horizontal = 3 196 | size_flags_vertical = 3 197 | readonly = true 198 | show_line_numbers = true 199 | smooth_scrolling = true 200 | wrap_enabled = true 201 | 202 | [node name="girignorebuttons" type="HBoxContainer" parent="VBoxContainer2/HBoxContainer3/VBoxContainer2"] 203 | margin_top = 268.0 204 | margin_right = 494.0 205 | margin_bottom = 298.0 206 | 207 | [node name="gitignoreBtn" type="CheckBox" parent="VBoxContainer2/HBoxContainer3/VBoxContainer2/girignorebuttons"] 208 | margin_right = 114.0 209 | margin_bottom = 30.0 210 | text = "Edit .gitignore" 211 | 212 | [node name="about_gitignoreBtn" type="Button" parent="VBoxContainer2/HBoxContainer3/VBoxContainer2/girignorebuttons"] 213 | margin_left = 468.0 214 | margin_right = 494.0 215 | margin_bottom = 30.0 216 | size_flags_horizontal = 10 217 | custom_colors/font_color = Color( 1, 0, 0.843137, 1 ) 218 | text = "?" 219 | flat = true 220 | 221 | [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer2/HBoxContainer3"] 222 | margin_left = 498.0 223 | margin_right = 992.0 224 | margin_bottom = 298.0 225 | size_flags_horizontal = 3 226 | size_flags_vertical = 3 227 | 228 | [node name="uncommitted" type="ItemList" parent="VBoxContainer2/HBoxContainer3/VBoxContainer"] 229 | margin_right = 494.0 230 | margin_bottom = 264.0 231 | size_flags_horizontal = 3 232 | size_flags_vertical = 3 233 | select_mode = 1 234 | 235 | [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer2/HBoxContainer3/VBoxContainer"] 236 | margin_top = 268.0 237 | margin_right = 494.0 238 | margin_bottom = 298.0 239 | custom_constants/separation = 20 240 | alignment = 1 241 | 242 | [node name="choosefilesBtn" type="Button" parent="VBoxContainer2/HBoxContainer3/VBoxContainer/HBoxContainer"] 243 | margin_left = 34.0 244 | margin_right = 127.0 245 | margin_bottom = 30.0 246 | size_flags_horizontal = 4 247 | text = "Select Files" 248 | 249 | [node name="choosedirectoryBtn" type="Button" parent="VBoxContainer2/HBoxContainer3/VBoxContainer/HBoxContainer"] 250 | margin_left = 147.0 251 | margin_right = 269.0 252 | margin_bottom = 30.0 253 | size_flags_horizontal = 4 254 | text = "Select Directory" 255 | 256 | [node name="removefileBtn" type="Button" parent="VBoxContainer2/HBoxContainer3/VBoxContainer/HBoxContainer"] 257 | margin_left = 289.0 258 | margin_right = 459.0 259 | margin_bottom = 30.0 260 | custom_colors/font_color = Color( 1, 0, 0, 1 ) 261 | disabled = true 262 | text = "Remove Files/Directory" 263 | 264 | [node name="error" type="Label" parent="VBoxContainer2"] 265 | visible = false 266 | margin_top = 536.0 267 | margin_right = 1004.0 268 | margin_bottom = 550.0 269 | size_flags_horizontal = 3 270 | custom_colors/font_color = Color( 1, 0, 0.235294, 1 ) 271 | text = "Error: " 272 | align = 1 273 | 274 | [node name="loading2" type="TextureRect" parent="VBoxContainer2"] 275 | visible = false 276 | material = SubResource( 3 ) 277 | margin_left = 477.0 278 | margin_top = 482.0 279 | margin_right = 527.0 280 | margin_bottom = 532.0 281 | rect_min_size = Vector2( 50, 50 ) 282 | rect_pivot_offset = Vector2( 25, 25 ) 283 | size_flags_horizontal = 4 284 | size_flags_vertical = 8 285 | expand = true 286 | stretch_mode = 6 287 | 288 | [node name="HSeparator11" type="HSeparator" parent="VBoxContainer2"] 289 | margin_top = 484.0 290 | margin_right = 992.0 291 | margin_bottom = 492.0 292 | rect_min_size = Vector2( 0, 8 ) 293 | custom_styles/separator = SubResource( 1 ) 294 | 295 | [node name="ProgressBar" type="ProgressBar" parent="VBoxContainer2"] 296 | margin_top = 496.0 297 | margin_right = 992.0 298 | margin_bottom = 510.0 299 | 300 | [node name="HSeparator12" type="HSeparator" parent="VBoxContainer2"] 301 | margin_top = 514.0 302 | margin_right = 992.0 303 | margin_bottom = 522.0 304 | rect_min_size = Vector2( 0, 8 ) 305 | custom_styles/separator = SubResource( 1 ) 306 | 307 | [node name="Button" type="Button" parent="VBoxContainer2"] 308 | margin_left = 429.0 309 | margin_top = 526.0 310 | margin_right = 562.0 311 | margin_bottom = 556.0 312 | size_flags_horizontal = 4 313 | size_flags_vertical = 8 314 | text = "Commit and Push" 315 | 316 | [node name="HSeparator10" type="HSeparator" parent="VBoxContainer2"] 317 | margin_top = 560.0 318 | margin_right = 992.0 319 | margin_bottom = 568.0 320 | rect_min_size = Vector2( 0, 8 ) 321 | custom_styles/separator = SubResource( 1 ) 322 | 323 | [node name="ChooseFile" type="FileDialog" parent="."] 324 | anchor_left = 0.5 325 | anchor_top = 0.5 326 | anchor_right = 0.5 327 | anchor_bottom = 0.5 328 | margin_left = -437.5 329 | margin_top = -238.0 330 | margin_right = 437.5 331 | margin_bottom = 238.0 332 | window_title = "Open File(s)" 333 | resizable = true 334 | mode = 1 335 | __meta__ = { 336 | "_edit_use_anchors_": false 337 | } 338 | [connection signal="pressed" from="VBoxContainer2/close2" to="." method="_on_close2_pressed"] 339 | [connection signal="visibility_changed" from="VBoxContainer2/loading2" to="." method="_on_loading2_visibility_changed"] 340 | [connection signal="pressed" from="VBoxContainer2/Button" to="." method="_on_Button_pressed"] 341 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/ContributorClass.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/resources/user/circle.png" type="Texture" id=1] 4 | [ext_resource path="res://addons/github-integration/scripts/ContributorClass.gd" type="Script" id=2] 5 | [ext_resource path="res://addons/github-integration/resources/user/RoundAvatar.tres" type="Material" id=3] 6 | 7 | [node name="Contributor" type="HBoxContainer"] 8 | anchor_right = 1.0 9 | anchor_bottom = 1.0 10 | script = ExtResource( 2 ) 11 | __meta__ = { 12 | "_edit_use_anchors_": false 13 | } 14 | 15 | [node name="Avatar" type="TextureRect" parent="."] 16 | material = ExtResource( 3 ) 17 | margin_right = 40.0 18 | margin_bottom = 600.0 19 | rect_min_size = Vector2( 40, 40 ) 20 | texture = ExtResource( 1 ) 21 | expand = true 22 | stretch_mode = 6 23 | 24 | [node name="Login" type="Label" parent="."] 25 | margin_left = 44.0 26 | margin_top = 293.0 27 | margin_right = 75.0 28 | margin_bottom = 307.0 29 | text = "login" 30 | __meta__ = { 31 | "_edit_use_anchors_": false 32 | } 33 | 34 | [node name="Name" type="Label" parent="."] 35 | modulate = Color( 1, 1, 1, 0.627451 ) 36 | margin_left = 79.0 37 | margin_top = 293.0 38 | margin_right = 115.0 39 | margin_bottom = 307.0 40 | text = "name" 41 | 42 | [node name="HTTPRequest" type="HTTPRequest" parent="."] 43 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/EditGist.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=9 format=2] 2 | 3 | [ext_resource path="res://addons/file-editor/fonts/Roboto-Black.ttf" type="DynamicFontData" id=1] 4 | 5 | [sub_resource type="StyleBoxEmpty" id=1] 6 | 7 | [sub_resource type="StyleBoxEmpty" id=2] 8 | 9 | [sub_resource type="StyleBoxEmpty" id=3] 10 | 11 | [sub_resource type="StyleBoxEmpty" id=4] 12 | 13 | [sub_resource type="StyleBoxEmpty" id=5] 14 | 15 | [sub_resource type="StyleBoxEmpty" id=6] 16 | 17 | [sub_resource type="DynamicFont" id=7] 18 | font_data = ExtResource( 1 ) 19 | 20 | [node name="Readonly" type="CheckBox"] 21 | margin_left = 945.0 22 | margin_right = 1024.0 23 | margin_bottom = 19.0 24 | size_flags_horizontal = 10 25 | custom_styles/hover = SubResource( 1 ) 26 | custom_styles/pressed = SubResource( 2 ) 27 | custom_styles/focus = SubResource( 3 ) 28 | custom_styles/disabled = SubResource( 4 ) 29 | custom_styles/hover_pressed = SubResource( 5 ) 30 | custom_styles/normal = SubResource( 6 ) 31 | custom_fonts/font = SubResource( 7 ) 32 | custom_colors/font_color = Color( 0.145098, 0.172549, 0.231373, 1 ) 33 | custom_colors/font_color_pressed = Color( 1, 1, 1, 1 ) 34 | text = "Can Edit" 35 | flat = true 36 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/GistItem.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scripts/GistItem.gd" type="Script" id=1] 4 | 5 | [sub_resource type="StyleBoxFlat" id=1] 6 | content_margin_left = 0.0 7 | content_margin_right = 0.0 8 | content_margin_top = 0.0 9 | content_margin_bottom = 0.0 10 | bg_color = Color( 0.6, 0.6, 0.6, 0 ) 11 | 12 | [sub_resource type="Image" id=4] 13 | data = { 14 | "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, 255, 255, 255, 175, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 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, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 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, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 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, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 32, 255, 255, 255, 191, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 191, 255, 255, 255, 16, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 32, 255, 255, 255, 223, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 143, 255, 255, 255, 223, 255, 255, 255, 16, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 207, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 191, 255, 255, 255, 191, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 32, 255, 255, 255, 239, 255, 255, 255, 112, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 112, 255, 255, 255, 223, 255, 255, 255, 32, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 32, 255, 255, 255, 207, 0, 0, 0, 0, 255, 255, 255, 16, 255, 255, 255, 207, 255, 255, 255, 32, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 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, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 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, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 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, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), 15 | "format": "RGBA8", 16 | "height": 16, 17 | "mipmaps": false, 18 | "width": 16 19 | } 20 | 21 | [sub_resource type="ImageTexture" id=3] 22 | image = SubResource( 4 ) 23 | size = Vector2( 16, 16 ) 24 | 25 | [node name="GistItem" type="PanelContainer"] 26 | anchor_right = 1.0 27 | anchor_bottom = 0.04 28 | margin_bottom = -1.90735e-06 29 | rect_min_size = Vector2( 0, 24 ) 30 | custom_styles/panel = SubResource( 1 ) 31 | script = ExtResource( 1 ) 32 | __meta__ = { 33 | "_edit_use_anchors_": false 34 | } 35 | 36 | [node name="BG" type="ColorRect" parent="."] 37 | visible = false 38 | margin_right = 1024.0 39 | margin_bottom = 24.0 40 | color = Color( 0, 0, 0, 0.0588235 ) 41 | 42 | [node name="Gist" type="HBoxContainer" parent="."] 43 | margin_right = 1024.0 44 | margin_bottom = 24.0 45 | custom_constants/separation = 0 46 | alignment = 1 47 | 48 | [node name="Name" type="HBoxContainer" parent="Gist"] 49 | margin_right = 512.0 50 | margin_bottom = 24.0 51 | size_flags_horizontal = 3 52 | alignment = 1 53 | 54 | [node name="Icon" type="TextureRect" parent="Gist/Name"] 55 | modulate = Color( 0.337255, 0.32549, 0.329412, 1 ) 56 | margin_top = 4.0 57 | margin_right = 16.0 58 | margin_bottom = 20.0 59 | rect_min_size = Vector2( 16, 16 ) 60 | size_flags_horizontal = 0 61 | size_flags_vertical = 4 62 | expand = true 63 | stretch_mode = 6 64 | 65 | [node name="Text" type="Label" parent="Gist/Name"] 66 | margin_left = 20.0 67 | margin_top = 5.0 68 | margin_right = 512.0 69 | margin_bottom = 19.0 70 | size_flags_horizontal = 3 71 | text = "GistName" 72 | 73 | [node name="Files" type="HBoxContainer" parent="Gist"] 74 | margin_left = 512.0 75 | margin_right = 1024.0 76 | margin_bottom = 24.0 77 | size_flags_horizontal = 3 78 | alignment = 1 79 | 80 | [node name="Icon" type="TextureRect" parent="Gist/Files"] 81 | modulate = Color( 0.337255, 0.32549, 0.329412, 1 ) 82 | margin_top = 4.0 83 | margin_right = 16.0 84 | margin_bottom = 20.0 85 | rect_min_size = Vector2( 16, 16 ) 86 | size_flags_horizontal = 0 87 | size_flags_vertical = 4 88 | texture = SubResource( 3 ) 89 | expand = true 90 | stretch_mode = 6 91 | 92 | [node name="Amount" type="Label" parent="Gist/Files"] 93 | margin_left = 20.0 94 | margin_top = 5.0 95 | margin_right = 512.0 96 | margin_bottom = 19.0 97 | size_flags_horizontal = 3 98 | text = "Files: 0" 99 | [connection signal="gui_input" from="." to="." method="_on_GistItem_gui_input"] 100 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/GitHub.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=11 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scripts/GitHub.gd" type="Script" id=1] 4 | [ext_resource path="res://addons/github-integration/resources/themes/GitHubTheme-Dark.tres" type="Theme" id=2] 5 | [ext_resource path="res://addons/github-integration/scenes/loading.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://addons/github-integration/scenes/Header.tscn" type="PackedScene" id=4] 7 | [ext_resource path="res://addons/github-integration/scenes/Commit.tscn" type="PackedScene" id=5] 8 | [ext_resource path="res://addons/github-integration/scenes/SingIn.tscn" type="PackedScene" id=6] 9 | [ext_resource path="res://addons/github-integration/scenes/UserPanel.tscn" type="PackedScene" id=7] 10 | [ext_resource path="res://addons/github-integration/scenes/Repo.tscn" type="PackedScene" id=8] 11 | [ext_resource path="res://addons/github-integration/scenes/Gist.tscn" type="PackedScene" id=9] 12 | [ext_resource path="res://addons/github-integration/scenes/Notifications.tscn" type="PackedScene" id=10] 13 | 14 | [node name="GitHub" type="Control"] 15 | anchor_right = 1.0 16 | anchor_bottom = 1.0 17 | margin_bottom = 1.0 18 | rect_clip_content = true 19 | mouse_filter = 1 20 | size_flags_horizontal = 3 21 | size_flags_vertical = 3 22 | theme = ExtResource( 2 ) 23 | script = ExtResource( 1 ) 24 | __meta__ = { 25 | "_edit_use_anchors_": false, 26 | "_editor_description_": "1. fixed bug that was resetting the editor mode to light 27 | 2. refactoring 28 | 3. code style revisited" 29 | } 30 | 31 | [node name="VersionCheck" type="HTTPRequest" parent="."] 32 | 33 | [node name="SingIn" parent="." instance=ExtResource( 6 )] 34 | margin_top = 48.0 35 | rect_clip_content = true 36 | 37 | [node name="UserPanel" parent="." instance=ExtResource( 7 )] 38 | visible = false 39 | margin_top = 48.0 40 | rect_clip_content = true 41 | 42 | [node name="Repo" parent="." instance=ExtResource( 8 )] 43 | visible = false 44 | margin_top = 48.0 45 | 46 | [node name="Commit" parent="." instance=ExtResource( 5 )] 47 | visible = false 48 | margin_top = 48.0 49 | rect_clip_content = true 50 | 51 | [node name="Gist" parent="." instance=ExtResource( 9 )] 52 | margin_top = 48.0 53 | rect_clip_content = true 54 | theme = ExtResource( 2 ) 55 | 56 | [node name="Notifications" parent="." instance=ExtResource( 10 )] 57 | visible = false 58 | theme = ExtResource( 2 ) 59 | 60 | [node name="Header" parent="." instance=ExtResource( 4 )] 61 | anchor_bottom = 0.0 62 | margin_bottom = 48.0 63 | rect_clip_content = true 64 | 65 | [node name="loading" parent="." instance=ExtResource( 3 )] 66 | visible = false 67 | margin_top = 48.0 68 | color = Color( 0, 0, 0, 0.627451 ) 69 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/GreenBtn.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [sub_resource type="StyleBoxFlat" id=1] 4 | content_margin_left = 10.0 5 | content_margin_right = 10.0 6 | content_margin_top = 8.0 7 | content_margin_bottom = 8.0 8 | bg_color = Color( 0.180392, 0.643137, 0.309804, 1 ) 9 | border_width_left = 1 10 | border_width_top = 1 11 | border_width_right = 1 12 | border_width_bottom = 1 13 | border_color = Color( 0.160784, 0.462745, 0.247059, 1 ) 14 | corner_radius_top_left = 5 15 | corner_radius_top_right = 5 16 | corner_radius_bottom_right = 5 17 | corner_radius_bottom_left = 5 18 | anti_aliasing = false 19 | 20 | [sub_resource type="StyleBoxFlat" id=2] 21 | content_margin_left = 10.0 22 | content_margin_right = 10.0 23 | content_margin_top = 8.0 24 | content_margin_bottom = 8.0 25 | bg_color = Color( 0.180392, 0.643137, 0.309804, 1 ) 26 | border_width_left = 1 27 | border_width_top = 1 28 | border_width_right = 1 29 | border_width_bottom = 1 30 | border_color = Color( 0.160784, 0.462745, 0.247059, 1 ) 31 | corner_radius_top_left = 5 32 | corner_radius_top_right = 5 33 | corner_radius_bottom_right = 5 34 | corner_radius_bottom_left = 5 35 | shadow_color = Color( 0.117647, 1, 0, 0.6 ) 36 | shadow_size = 5 37 | anti_aliasing = false 38 | 39 | [sub_resource type="StyleBoxFlat" id=3] 40 | content_margin_left = 10.0 41 | content_margin_right = 10.0 42 | content_margin_top = 8.0 43 | content_margin_bottom = 8.0 44 | bg_color = Color( 0.294118, 0.380392, 0.317647, 1 ) 45 | border_width_left = 1 46 | border_width_top = 1 47 | border_width_right = 1 48 | border_width_bottom = 1 49 | border_color = Color( 0.164706, 0.278431, 0.196078, 1 ) 50 | corner_radius_top_left = 5 51 | corner_radius_top_right = 5 52 | corner_radius_bottom_right = 5 53 | corner_radius_bottom_left = 5 54 | anti_aliasing = false 55 | 56 | [sub_resource type="StyleBoxFlat" id=4] 57 | content_margin_left = 10.0 58 | content_margin_right = 10.0 59 | content_margin_top = 8.0 60 | content_margin_bottom = 8.0 61 | bg_color = Color( 0.180392, 0.643137, 0.309804, 1 ) 62 | border_width_left = 1 63 | border_width_top = 1 64 | border_width_right = 1 65 | border_width_bottom = 1 66 | border_color = Color( 0.160784, 0.462745, 0.247059, 1 ) 67 | corner_radius_top_left = 5 68 | corner_radius_top_right = 5 69 | corner_radius_bottom_right = 5 70 | corner_radius_bottom_left = 5 71 | anti_aliasing = false 72 | 73 | [node name="GreenBtn" type="Button"] 74 | anchor_right = 0.367 75 | anchor_bottom = 0.05 76 | margin_right = 0.191986 77 | rect_min_size = Vector2( 120, 0 ) 78 | size_flags_horizontal = 7 79 | custom_styles/hover = SubResource( 1 ) 80 | custom_styles/pressed = SubResource( 2 ) 81 | custom_styles/focus = SubResource( 2 ) 82 | custom_styles/disabled = SubResource( 3 ) 83 | custom_styles/normal = SubResource( 4 ) 84 | custom_colors/font_color_disabled = Color( 0.6, 0.6, 0.6, 1 ) 85 | custom_colors/font_color = Color( 1, 1, 1, 1 ) 86 | custom_colors/font_color_hover = Color( 1, 1, 1, 1 ) 87 | custom_colors/font_color_pressed = Color( 0.831373, 0.831373, 0.831373, 1 ) 88 | text = "green button" 89 | __meta__ = { 90 | "_edit_use_anchors_": false 91 | } 92 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/InvitationItem.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=7 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scripts/InvitationItem.gd" type="Script" id=1] 4 | [ext_resource path="res://addons/github-integration/icons/deny.png" type="Texture" id=2] 5 | [ext_resource path="res://addons/github-integration/icons/accept.png" type="Texture" id=3] 6 | [ext_resource path="res://addons/github-integration/resources/user/circle.png" type="Texture" id=4] 7 | [ext_resource path="res://addons/github-integration/resources/user/RoundAvatar.tres" type="Material" id=5] 8 | 9 | [sub_resource type="StyleBoxEmpty" id=1] 10 | 11 | [node name="InvitationItem" type="HBoxContainer"] 12 | anchor_right = 1.0 13 | anchor_bottom = 1.0 14 | custom_constants/separation = 0 15 | script = ExtResource( 1 ) 16 | __meta__ = { 17 | "_edit_use_anchors_": false 18 | } 19 | 20 | [node name="Avatar" type="TextureRect" parent="."] 21 | material = ExtResource( 5 ) 22 | margin_top = 280.0 23 | margin_right = 40.0 24 | margin_bottom = 320.0 25 | rect_min_size = Vector2( 40, 40 ) 26 | size_flags_horizontal = 0 27 | size_flags_vertical = 4 28 | texture = ExtResource( 4 ) 29 | expand = true 30 | stretch_mode = 6 31 | 32 | [node name="VSeparator" type="VSeparator" parent="."] 33 | margin_left = 40.0 34 | margin_right = 47.0 35 | margin_bottom = 600.0 36 | custom_styles/separator = SubResource( 1 ) 37 | custom_constants/separation = 7 38 | __meta__ = { 39 | "_edit_use_anchors_": false 40 | } 41 | 42 | [node name="User" type="LinkButton" parent="."] 43 | margin_left = 47.0 44 | margin_top = 293.0 45 | margin_right = 75.0 46 | margin_bottom = 307.0 47 | size_flags_vertical = 4 48 | text = "user" 49 | 50 | [node name="Label" type="Label" parent="."] 51 | margin_left = 75.0 52 | margin_top = 293.0 53 | margin_right = 258.0 54 | margin_bottom = 307.0 55 | text = "invited you to collaborate on" 56 | 57 | [node name="Repository" type="LinkButton" parent="."] 58 | margin_left = 258.0 59 | margin_top = 293.0 60 | margin_right = 287.0 61 | margin_bottom = 307.0 62 | size_flags_vertical = 4 63 | text = "repo" 64 | 65 | [node name="Label2" type="Label" parent="."] 66 | margin_left = 287.0 67 | margin_top = 293.0 68 | margin_right = 401.0 69 | margin_bottom = 307.0 70 | text = "with permissions:" 71 | 72 | [node name="Permissions" type="Label" parent="."] 73 | margin_left = 401.0 74 | margin_top = 293.0 75 | margin_right = 473.0 76 | margin_bottom = 307.0 77 | text = "permission" 78 | 79 | [node name="Result" type="Label" parent="."] 80 | margin_left = 861.0 81 | margin_top = 293.0 82 | margin_right = 861.0 83 | margin_bottom = 307.0 84 | size_flags_horizontal = 10 85 | 86 | [node name="AcceptBtn" type="Button" parent="."] 87 | margin_left = 861.0 88 | margin_right = 940.0 89 | margin_bottom = 600.0 90 | size_flags_horizontal = 8 91 | custom_colors/font_color = Color( 0, 0.815686, 0.0705882, 1 ) 92 | custom_constants/hseparation = 5 93 | text = "Accept" 94 | icon = ExtResource( 3 ) 95 | flat = true 96 | 97 | [node name="VSeparator2" type="VSeparator" parent="."] 98 | visible = false 99 | margin_left = 1016.0 100 | margin_right = 1024.0 101 | margin_bottom = 600.0 102 | custom_styles/separator = SubResource( 1 ) 103 | custom_constants/separation = 8 104 | __meta__ = { 105 | "_edit_use_anchors_": false 106 | } 107 | 108 | [node name="DeclineBtn" type="Button" parent="."] 109 | margin_left = 940.0 110 | margin_right = 1024.0 111 | margin_bottom = 600.0 112 | custom_colors/font_color = Color( 1, 0, 0.270588, 1 ) 113 | custom_constants/hseparation = 5 114 | text = "Decline" 115 | icon = ExtResource( 2 ) 116 | flat = true 117 | 118 | [node name="HTTPRequest" type="HTTPRequest" parent="."] 119 | use_threads = true 120 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/NewRepo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scripts/WindowDialog.gd" type="Script" id=1] 4 | 5 | [sub_resource type="StyleBoxEmpty" id=3] 6 | 7 | [node name="NewRepo" type="ConfirmationDialog"] 8 | anchor_left = 0.5 9 | anchor_top = 0.5 10 | anchor_right = 0.5 11 | anchor_bottom = 0.5 12 | margin_left = -288.5 13 | margin_top = -133.5 14 | margin_right = 288.5 15 | margin_bottom = 133.5 16 | popup_exclusive = true 17 | window_title = "[Create a new Repository]" 18 | dialog_hide_on_ok = false 19 | script = ExtResource( 1 ) 20 | __meta__ = { 21 | "_edit_use_anchors_": false 22 | } 23 | 24 | [node name="VBoxContainer" type="VBoxContainer" parent="."] 25 | anchor_left = 0.5 26 | anchor_top = 0.5 27 | anchor_right = 0.5 28 | anchor_bottom = 0.5 29 | margin_left = -280.5 30 | margin_top = -125.5 31 | margin_right = 280.5 32 | margin_bottom = 97.5 33 | 34 | [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] 35 | margin_right = 561.0 36 | margin_bottom = 24.0 37 | 38 | [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer"] 39 | margin_top = 5.0 40 | margin_right = 278.0 41 | margin_bottom = 19.0 42 | size_flags_horizontal = 3 43 | text = "Repository Name:" 44 | 45 | [node name="nome" type="LineEdit" parent="VBoxContainer/HBoxContainer"] 46 | margin_left = 282.0 47 | margin_right = 561.0 48 | margin_bottom = 24.0 49 | size_flags_horizontal = 3 50 | 51 | [node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer"] 52 | margin_top = 28.0 53 | margin_right = 561.0 54 | margin_bottom = 52.0 55 | 56 | [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer2"] 57 | margin_top = 5.0 58 | margin_right = 278.0 59 | margin_bottom = 19.0 60 | size_flags_horizontal = 3 61 | text = "Repository Description:" 62 | 63 | [node name="descrizione" type="LineEdit" parent="VBoxContainer/HBoxContainer2"] 64 | margin_left = 282.0 65 | margin_right = 561.0 66 | margin_bottom = 24.0 67 | size_flags_horizontal = 3 68 | 69 | [node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer"] 70 | margin_top = 56.0 71 | margin_right = 561.0 72 | margin_bottom = 76.0 73 | 74 | [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3"] 75 | margin_top = 3.0 76 | margin_right = 278.0 77 | margin_bottom = 17.0 78 | size_flags_horizontal = 3 79 | text = "Privacy:" 80 | 81 | [node name="privacy" type="OptionButton" parent="VBoxContainer/HBoxContainer3"] 82 | margin_left = 282.0 83 | margin_right = 561.0 84 | margin_bottom = 20.0 85 | size_flags_horizontal = 3 86 | text = "Private" 87 | items = [ "Private", null, false, 0, null, "Public", null, false, 1, null ] 88 | selected = 0 89 | 90 | [node name="HBoxContainer4" type="HBoxContainer" parent="VBoxContainer"] 91 | margin_top = 80.0 92 | margin_right = 561.0 93 | margin_bottom = 104.0 94 | 95 | [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer4"] 96 | margin_top = 5.0 97 | margin_right = 278.0 98 | margin_bottom = 19.0 99 | size_flags_horizontal = 3 100 | text = "Initialize with README:" 101 | 102 | [node name="readme" type="CheckBox" parent="VBoxContainer/HBoxContainer4"] 103 | margin_left = 282.0 104 | margin_right = 561.0 105 | margin_bottom = 24.0 106 | size_flags_horizontal = 3 107 | 108 | [node name="HBoxContainer5" type="HBoxContainer" parent="VBoxContainer"] 109 | margin_top = 108.0 110 | margin_right = 561.0 111 | margin_bottom = 128.0 112 | 113 | [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer5"] 114 | margin_top = 3.0 115 | margin_right = 278.0 116 | margin_bottom = 17.0 117 | size_flags_horizontal = 3 118 | text = "Add .gitignore:" 119 | 120 | [node name="gitignore" type="OptionButton" parent="VBoxContainer/HBoxContainer5"] 121 | margin_left = 282.0 122 | margin_right = 561.0 123 | margin_bottom = 20.0 124 | size_flags_horizontal = 3 125 | text = "Haskell" 126 | items = [ "Haskell", null, false, 0, "Haskell", "Godot", null, false, 1, null ] 127 | selected = 0 128 | 129 | [node name="HBoxContainer6" type="HBoxContainer" parent="VBoxContainer"] 130 | margin_top = 132.0 131 | margin_right = 561.0 132 | margin_bottom = 152.0 133 | 134 | [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer6"] 135 | margin_top = 3.0 136 | margin_right = 278.0 137 | margin_bottom = 17.0 138 | size_flags_horizontal = 3 139 | text = "Add license:" 140 | 141 | [node name="license" type="OptionButton" parent="VBoxContainer/HBoxContainer6"] 142 | margin_left = 282.0 143 | margin_right = 561.0 144 | margin_bottom = 20.0 145 | size_flags_horizontal = 3 146 | text = "Academic Free License v3.0" 147 | items = [ "Academic Free License v3.0", null, false, 0, "afl-3.0", "Apache license 2.0", null, false, 1, "apache-2.0", "Artistic license 2.0", null, false, 2, "artistic-2.0", "Boost Software License 1.0", null, false, 3, "bsl-1.0", "BSD 2-clause \"Simplified\" license", null, false, 4, "bsd-2-clause", "BSD 3-clause \"New\" or \"Revised\" license", null, false, 5, "bsd-3-clause", "BSD 3-clause Clear license", null, false, 6, "bsd-3-clause-clear", "Creative Commons license family", null, false, 7, "cc", "Creative Commons Zero v1.0 Universal", null, false, 8, "cc0-1.0", "Creative Commons Attribution 4.0", null, false, 9, "cc-by-4.0", "Creative Commons Attribution Share Alike 4.0", null, false, 10, "cc-by-sa-4.0", "Do What The F*ck You Want To Public License", null, false, 11, "wtfpl", "Educational Community License v2.0", null, false, 12, "ecl-2.0", "Eclipse Public License 1.0", null, false, 13, "epl-1.0", "European Union Public License 1.1", null, false, 14, "eupl-1.1", "GNU Affero General Public License v3.0", null, false, 15, "agpl-3.0", "GNU General Public License family", null, false, 16, "gpl", "GNU General Public License v2.0", null, false, 17, "gpl-2.0", "GNU General Public License v3.0", null, false, 18, "gpl-3.0", "GNU Lesser General Public License family", null, false, 19, "lgpl", "GNU Lesser General Public License v2.1", null, false, 20, "lgpl-2.1", "GNU Lesser General Public License v3.0", null, false, 21, "lgpl-3.0", "ISC", null, false, 22, "isc", "LaTeX Project Public License v1.3c", null, false, 23, "lppl-1.3c", "Microsoft Public License", null, false, 24, "ms-pl", "MIT", null, false, 25, "mit", "Mozilla Public License 2.0", null, false, 26, "mpl-2.0", "Open Software License 3.0", null, false, 27, "osl-3.0", "PostgreSQL License", null, false, 28, "postgresql", "SIL Open Font License 1.1", null, false, 29, "ofl-1.1", "University of Illinois/NCSA Open Source License", null, false, 30, "ncsa", "The Unlicense", null, false, 31, "unlicense", "zLib License", null, false, 32, "zlib" ] 148 | selected = 0 149 | 150 | [node name="HSeparator8" type="HSeparator" parent="VBoxContainer"] 151 | visible = false 152 | margin_top = 184.0 153 | margin_right = 561.0 154 | margin_bottom = 192.0 155 | rect_min_size = Vector2( 0, 8 ) 156 | custom_styles/separator = SubResource( 3 ) 157 | 158 | [node name="error" type="Label" parent="VBoxContainer"] 159 | visible = false 160 | margin_top = 184.0 161 | margin_right = 561.0 162 | margin_bottom = 203.0 163 | size_flags_horizontal = 3 164 | custom_colors/font_color = Color( 1, 0, 0.235294, 1 ) 165 | text = "Error: " 166 | align = 1 167 | [connection signal="confirmed" from="." to="." method="_on_NewRepo_confirmed"] 168 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/NormalBtn.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=2] 2 | 3 | [node name="NormalBtn" type="Button"] 4 | anchor_right = 0.117 5 | anchor_bottom = 0.053 6 | margin_right = 0.191994 7 | margin_bottom = 0.199999 8 | text = "normal button" 9 | __meta__ = { 10 | "_edit_use_anchors_": false 11 | } 12 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/Notifications.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scripts/Notifications.gd" type="Script" id=1] 4 | [ext_resource path="res://addons/github-integration/resources/themes/GitHubTheme.tres" type="Theme" id=2] 5 | 6 | [sub_resource type="StyleBoxEmpty" id=1] 7 | 8 | [sub_resource type="StyleBoxFlat" id=2] 9 | content_margin_left = 5.0 10 | content_margin_bottom = 4.0 11 | draw_center = false 12 | border_width_bottom = 1 13 | 14 | [sub_resource type="StyleBoxEmpty" id=3] 15 | content_margin_left = 7.0 16 | 17 | [node name="Notifications" type="Control"] 18 | anchor_right = 1.0 19 | anchor_bottom = 1.0 20 | margin_top = 48.0 21 | theme = ExtResource( 2 ) 22 | script = ExtResource( 1 ) 23 | __meta__ = { 24 | "_edit_use_anchors_": false 25 | } 26 | 27 | [node name="BG" type="ColorRect" parent="."] 28 | anchor_right = 1.0 29 | anchor_bottom = 1.0 30 | margin_left = 1.0 31 | margin_right = 1.0 32 | 33 | [node name="NotificationsContainer" type="VBoxContainer" parent="."] 34 | anchor_right = 1.0 35 | anchor_bottom = 1.0 36 | margin_left = 8.0 37 | margin_top = 8.0 38 | margin_right = -8.0 39 | margin_bottom = -8.0 40 | __meta__ = { 41 | "_edit_use_anchors_": false 42 | } 43 | 44 | [node name="NotificationsTabs" type="HBoxContainer" parent="NotificationsContainer"] 45 | margin_right = 1008.0 46 | margin_bottom = 536.0 47 | size_flags_horizontal = 3 48 | size_flags_vertical = 3 49 | custom_constants/separation = 8 50 | 51 | [node name="NotificationsTree" type="Tree" parent="NotificationsContainer/NotificationsTabs"] 52 | margin_right = 180.0 53 | margin_bottom = 536.0 54 | rect_min_size = Vector2( 180, 0 ) 55 | hide_folding = true 56 | hide_root = true 57 | 58 | [node name="Tabs" type="VBoxContainer" parent="NotificationsContainer/NotificationsTabs"] 59 | margin_left = 188.0 60 | margin_right = 1008.0 61 | margin_bottom = 536.0 62 | size_flags_horizontal = 3 63 | 64 | [node name="HSeparator" type="HSeparator" parent="NotificationsContainer/NotificationsTabs/Tabs"] 65 | margin_right = 820.0 66 | margin_bottom = 10.0 67 | custom_styles/separator = SubResource( 1 ) 68 | custom_constants/separation = 10 69 | 70 | [node name="Invitations" type="VBoxContainer" parent="NotificationsContainer/NotificationsTabs/Tabs"] 71 | visible = false 72 | margin_top = 14.0 73 | margin_right = 820.0 74 | margin_bottom = 198.0 75 | size_flags_horizontal = 3 76 | size_flags_vertical = 3 77 | 78 | [node name="Label" type="Label" parent="NotificationsContainer/NotificationsTabs/Tabs/Invitations"] 79 | margin_right = 820.0 80 | margin_bottom = 22.0 81 | text = "There are 0 invitations received" 82 | 83 | [node name="Settings" type="VBoxContainer" parent="NotificationsContainer/NotificationsTabs/Tabs"] 84 | margin_top = 14.0 85 | margin_right = 820.0 86 | margin_bottom = 536.0 87 | size_flags_horizontal = 3 88 | size_flags_vertical = 3 89 | custom_constants/separation = 20 90 | 91 | [node name="Notifications" type="VBoxContainer" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings"] 92 | margin_right = 820.0 93 | margin_bottom = 84.0 94 | custom_constants/separation = 0 95 | 96 | [node name="Label" type="Label" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Notifications"] 97 | margin_right = 820.0 98 | margin_bottom = 18.0 99 | custom_styles/normal = SubResource( 2 ) 100 | custom_colors/font_color_shadow = Color( 0, 0, 0, 0.392157 ) 101 | text = "Notifications Settings" 102 | 103 | [node name="AutoUpdateNotificationsChk" type="CheckButton" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Notifications"] 104 | margin_top = 18.0 105 | margin_right = 820.0 106 | margin_bottom = 52.0 107 | rect_min_size = Vector2( 300, 0 ) 108 | pressed = true 109 | text = "Auto update notifications" 110 | 111 | [node name="AutoUpdateTimer" type="HBoxContainer" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Notifications"] 112 | margin_top = 52.0 113 | margin_right = 820.0 114 | margin_bottom = 84.0 115 | 116 | [node name="Label" type="Label" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Notifications/AutoUpdateTimer"] 117 | margin_top = 9.0 118 | margin_right = 687.0 119 | margin_bottom = 23.0 120 | size_flags_horizontal = 3 121 | custom_styles/normal = SubResource( 3 ) 122 | text = "Auto update notifications timer" 123 | 124 | [node name="Amount" type="LineEdit" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Notifications/AutoUpdateTimer"] 125 | margin_left = 691.0 126 | margin_right = 755.0 127 | margin_bottom = 32.0 128 | text = "5" 129 | align = 1 130 | 131 | [node name="Label2" type="Label" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Notifications/AutoUpdateTimer"] 132 | margin_left = 759.0 133 | margin_top = 5.0 134 | margin_right = 820.0 135 | margin_bottom = 27.0 136 | text = "minutes" 137 | 138 | [node name="Plugin" type="VBoxContainer" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings"] 139 | margin_top = 104.0 140 | margin_right = 820.0 141 | margin_bottom = 230.0 142 | size_flags_vertical = 3 143 | custom_constants/separation = 0 144 | 145 | [node name="Label" type="Label" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Plugin"] 146 | margin_right = 820.0 147 | margin_bottom = 18.0 148 | custom_styles/normal = SubResource( 2 ) 149 | custom_colors/font_color_shadow = Color( 0, 0, 0, 0.392157 ) 150 | text = "Plugin Settings" 151 | 152 | [node name="DebugMessagesChk" type="CheckButton" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Plugin"] 153 | margin_top = 18.0 154 | margin_right = 820.0 155 | margin_bottom = 52.0 156 | rect_min_size = Vector2( 300, 0 ) 157 | pressed = true 158 | text = "Debug messages in output console" 159 | 160 | [node name="AutoLoginChk" type="CheckButton" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Plugin"] 161 | margin_top = 52.0 162 | margin_right = 820.0 163 | margin_bottom = 86.0 164 | rect_min_size = Vector2( 300, 0 ) 165 | text = "Auto login at plugin startup" 166 | 167 | [node name="DarkmodeChk" type="CheckButton" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Plugin"] 168 | margin_top = 86.0 169 | margin_right = 820.0 170 | margin_bottom = 120.0 171 | rect_min_size = Vector2( 300, 0 ) 172 | pressed = true 173 | text = "Darkmode" 174 | 175 | [node name="Repositories" type="VBoxContainer" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings"] 176 | margin_top = 250.0 177 | margin_right = 820.0 178 | margin_bottom = 376.0 179 | size_flags_vertical = 3 180 | custom_constants/separation = 0 181 | 182 | [node name="Label" type="Label" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Repositories"] 183 | margin_right = 820.0 184 | margin_bottom = 18.0 185 | custom_styles/normal = SubResource( 2 ) 186 | custom_colors/font_color_shadow = Color( 0, 0, 0, 0.392157 ) 187 | text = "Repositories" 188 | 189 | [node name="OwnerAffiliations" type="HBoxContainer" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Repositories"] 190 | margin_top = 18.0 191 | margin_right = 820.0 192 | margin_bottom = 40.0 193 | custom_constants/separation = 10 194 | 195 | [node name="Label" type="Label" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Repositories/OwnerAffiliations"] 196 | margin_right = 158.0 197 | margin_bottom = 22.0 198 | text = "Filter owner affiliations:" 199 | 200 | [node name="Owner" type="CheckBox" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Repositories/OwnerAffiliations"] 201 | margin_left = 470.0 202 | margin_right = 535.0 203 | margin_bottom = 22.0 204 | size_flags_horizontal = 10 205 | text = "owner" 206 | 207 | [node name="Collaborator" type="CheckBox" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Repositories/OwnerAffiliations"] 208 | margin_left = 545.0 209 | margin_right = 647.0 210 | margin_bottom = 22.0 211 | text = "collaborator" 212 | 213 | [node name="OrganizationMember" type="CheckBox" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings/Repositories/OwnerAffiliations"] 214 | margin_left = 657.0 215 | margin_right = 820.0 216 | margin_bottom = 22.0 217 | text = "organization member" 218 | 219 | [node name="ResetPluginBtn" type="Button" parent="NotificationsContainer/NotificationsTabs/Tabs/Settings"] 220 | margin_top = 492.0 221 | margin_right = 127.0 222 | margin_bottom = 522.0 223 | size_flags_horizontal = 0 224 | size_flags_vertical = 10 225 | custom_colors/font_color = Color( 1, 0, 0, 1 ) 226 | custom_colors/font_color_hover = Color( 0, 0, 0, 1 ) 227 | text = "Reset this plugin" 228 | 229 | [node name="Timer" type="Timer" parent="."] 230 | wait_time = 300.0 231 | 232 | [node name="ResetPluginDialog" type="ConfirmationDialog" parent="."] 233 | anchor_left = 0.5 234 | anchor_top = 0.5 235 | anchor_right = 0.5 236 | anchor_bottom = 0.5 237 | margin_left = -327.5 238 | margin_top = -46.5 239 | margin_right = 327.5 240 | margin_bottom = 46.5 241 | window_title = "Reset this plugin" 242 | dialog_text = "Resetting this plugin will delete everything that was stored from the first time. 243 | Continue only if you don't want to use this plugin anymore, or if it was suggested by the developer." 244 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/RedBtn.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [sub_resource type="StyleBoxFlat" id=1] 4 | content_margin_left = 10.0 5 | content_margin_right = 10.0 6 | content_margin_top = 8.0 7 | content_margin_bottom = 8.0 8 | bg_color = Color( 0.643137, 0.180392, 0.211765, 1 ) 9 | border_width_left = 1 10 | border_width_top = 1 11 | border_width_right = 1 12 | border_width_bottom = 1 13 | border_color = Color( 0.462745, 0.160784, 0.180392, 1 ) 14 | corner_radius_top_left = 5 15 | corner_radius_top_right = 5 16 | corner_radius_bottom_right = 5 17 | corner_radius_bottom_left = 5 18 | anti_aliasing = false 19 | 20 | [sub_resource type="StyleBoxFlat" id=2] 21 | content_margin_left = 10.0 22 | content_margin_right = 10.0 23 | content_margin_top = 8.0 24 | content_margin_bottom = 8.0 25 | bg_color = Color( 0.643137, 0.180392, 0.211765, 1 ) 26 | border_width_left = 1 27 | border_width_top = 1 28 | border_width_right = 1 29 | border_width_bottom = 1 30 | border_color = Color( 0.462745, 0.160784, 0.188235, 1 ) 31 | corner_radius_top_left = 5 32 | corner_radius_top_right = 5 33 | corner_radius_bottom_right = 5 34 | corner_radius_bottom_left = 5 35 | shadow_color = Color( 1, 0, 0.0941176, 0.6 ) 36 | shadow_size = 5 37 | anti_aliasing = false 38 | 39 | [sub_resource type="StyleBoxFlat" id=3] 40 | content_margin_left = 10.0 41 | content_margin_right = 10.0 42 | content_margin_top = 8.0 43 | content_margin_bottom = 8.0 44 | bg_color = Color( 0.380392, 0.294118, 0.301961, 1 ) 45 | border_width_left = 1 46 | border_width_top = 1 47 | border_width_right = 1 48 | border_width_bottom = 1 49 | border_color = Color( 0.278431, 0.164706, 0.176471, 1 ) 50 | corner_radius_top_left = 5 51 | corner_radius_top_right = 5 52 | corner_radius_bottom_right = 5 53 | corner_radius_bottom_left = 5 54 | anti_aliasing = false 55 | 56 | [sub_resource type="StyleBoxFlat" id=4] 57 | content_margin_left = 10.0 58 | content_margin_right = 10.0 59 | content_margin_top = 8.0 60 | content_margin_bottom = 8.0 61 | bg_color = Color( 0.643137, 0.180392, 0.223529, 1 ) 62 | border_width_left = 1 63 | border_width_top = 1 64 | border_width_right = 1 65 | border_width_bottom = 1 66 | border_color = Color( 0.462745, 0.160784, 0.180392, 1 ) 67 | corner_radius_top_left = 5 68 | corner_radius_top_right = 5 69 | corner_radius_bottom_right = 5 70 | corner_radius_bottom_left = 5 71 | anti_aliasing = false 72 | 73 | [node name="RedBtn" type="Button"] 74 | anchor_right = 0.367 75 | anchor_bottom = 0.05 76 | margin_right = 0.191986 77 | rect_min_size = Vector2( 120, 0 ) 78 | size_flags_horizontal = 7 79 | custom_styles/hover = SubResource( 1 ) 80 | custom_styles/pressed = SubResource( 2 ) 81 | custom_styles/focus = SubResource( 2 ) 82 | custom_styles/disabled = SubResource( 3 ) 83 | custom_styles/normal = SubResource( 4 ) 84 | custom_colors/font_color_disabled = Color( 0.6, 0.6, 0.6, 1 ) 85 | custom_colors/font_color = Color( 1, 1, 1, 1 ) 86 | text = "red button" 87 | __meta__ = { 88 | "_edit_use_anchors_": false 89 | } 90 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/RepositoryItem.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=7 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scripts/RepositoryItem.gd" type="Script" id=1] 4 | 5 | [sub_resource type="StyleBoxFlat" id=1] 6 | content_margin_left = 0.0 7 | content_margin_right = 0.0 8 | content_margin_top = 0.0 9 | content_margin_bottom = 0.0 10 | bg_color = Color( 0, 0, 0, 0 ) 11 | 12 | [sub_resource type="Image" id=6] 13 | data = { 14 | "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, 255, 255, 255, 64, 255, 255, 255, 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, 255, 255, 255, 175, 255, 255, 255, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 48, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, 255, 159, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, 255, 16, 255, 255, 255, 48, 255, 255, 255, 80, 255, 255, 255, 112, 255, 255, 255, 143, 255, 255, 255, 239, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 143, 255, 255, 255, 127, 255, 255, 255, 64, 255, 255, 255, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 80, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 255, 255, 255, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 255, 255, 255, 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, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 159, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, 255, 223, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 255, 255, 255, 223, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 239, 255, 255, 255, 239, 255, 255, 255, 112, 255, 255, 255, 16, 0, 0, 0, 0, 255, 255, 255, 112, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, 255, 32, 255, 255, 255, 159, 255, 255, 255, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 159, 255, 255, 255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), 15 | "format": "RGBA8", 16 | "height": 16, 17 | "mipmaps": false, 18 | "width": 16 19 | } 20 | 21 | [sub_resource type="ImageTexture" id=3] 22 | image = SubResource( 6 ) 23 | size = Vector2( 16, 16 ) 24 | 25 | [sub_resource type="Image" id=7] 26 | data = { 27 | "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, 255, 255, 255, 64, 255, 255, 255, 197, 255, 255, 255, 223, 255, 255, 255, 64, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 64, 255, 255, 255, 197, 255, 255, 255, 223, 255, 255, 255, 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, 255, 255, 255, 211, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 211, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 211, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 211, 0, 0, 0, 0, 255, 255, 255, 16, 255, 255, 255, 211, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 211, 0, 0, 0, 0, 255, 255, 255, 16, 255, 255, 255, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 64, 255, 255, 255, 239, 255, 255, 255, 207, 255, 255, 255, 96, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 64, 255, 255, 255, 239, 255, 255, 255, 207, 255, 255, 255, 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, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, 255, 239, 255, 255, 255, 255, 255, 255, 255, 112, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 112, 255, 255, 255, 255, 255, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 32, 255, 255, 255, 239, 255, 255, 255, 255, 255, 255, 255, 112, 255, 255, 255, 112, 255, 255, 255, 255, 255, 255, 255, 223, 255, 255, 255, 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, 255, 255, 255, 32, 255, 255, 255, 239, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 255, 255, 255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 32, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, 255, 64, 255, 255, 255, 239, 255, 255, 255, 255, 255, 255, 255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 211, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 211, 0, 0, 0, 0, 255, 255, 255, 16, 255, 255, 255, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 64, 255, 255, 255, 239, 255, 255, 255, 197, 255, 255, 255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), 28 | "format": "RGBA8", 29 | "height": 16, 30 | "mipmaps": false, 31 | "width": 16 32 | } 33 | 34 | [sub_resource type="ImageTexture" id=5] 35 | image = SubResource( 7 ) 36 | size = Vector2( 16, 16 ) 37 | 38 | [node name="RepositoryItem" type="PanelContainer"] 39 | anchor_right = 1.0 40 | anchor_bottom = 0.04 41 | margin_bottom = -1.90735e-06 42 | rect_min_size = Vector2( 0, 24 ) 43 | custom_styles/panel = SubResource( 1 ) 44 | script = ExtResource( 1 ) 45 | __meta__ = { 46 | "_edit_use_anchors_": false 47 | } 48 | 49 | [node name="BG" type="ColorRect" parent="."] 50 | visible = false 51 | margin_right = 1024.0 52 | margin_bottom = 24.0 53 | color = Color( 0, 0, 0, 0.0588235 ) 54 | 55 | [node name="Repository" type="HBoxContainer" parent="."] 56 | margin_right = 1024.0 57 | margin_bottom = 24.0 58 | custom_constants/separation = 0 59 | alignment = 1 60 | 61 | [node name="Name" type="HBoxContainer" parent="Repository"] 62 | margin_right = 341.0 63 | margin_bottom = 24.0 64 | size_flags_horizontal = 3 65 | alignment = 1 66 | 67 | [node name="Collaborator" type="TextureRect" parent="Repository/Name"] 68 | modulate = Color( 0, 0.392157, 1, 1 ) 69 | margin_top = 4.0 70 | margin_right = 16.0 71 | margin_bottom = 20.0 72 | rect_min_size = Vector2( 16, 16 ) 73 | size_flags_horizontal = 0 74 | size_flags_vertical = 4 75 | expand = true 76 | stretch_mode = 6 77 | 78 | [node name="Icon" type="TextureRect" parent="Repository/Name"] 79 | modulate = Color( 0.337255, 0.32549, 0.329412, 1 ) 80 | light_mask = -2147483647 81 | margin_left = 20.0 82 | margin_top = 4.0 83 | margin_right = 36.0 84 | margin_bottom = 20.0 85 | rect_min_size = Vector2( 16, 16 ) 86 | size_flags_horizontal = 0 87 | size_flags_vertical = 4 88 | expand = true 89 | stretch_mode = 6 90 | 91 | [node name="Text" type="Label" parent="Repository/Name"] 92 | margin_left = 40.0 93 | margin_top = 5.0 94 | margin_right = 341.0 95 | margin_bottom = 19.0 96 | size_flags_horizontal = 3 97 | text = "RepositoryName" 98 | 99 | [node name="Stars" type="HBoxContainer" parent="Repository"] 100 | margin_left = 341.0 101 | margin_right = 682.0 102 | margin_bottom = 24.0 103 | size_flags_horizontal = 3 104 | alignment = 1 105 | 106 | [node name="Icon" type="TextureRect" parent="Repository/Stars"] 107 | modulate = Color( 0.337255, 0.32549, 0.329412, 1 ) 108 | margin_top = 4.0 109 | margin_right = 16.0 110 | margin_bottom = 20.0 111 | rect_min_size = Vector2( 16, 16 ) 112 | size_flags_horizontal = 0 113 | size_flags_vertical = 4 114 | texture = SubResource( 3 ) 115 | expand = true 116 | stretch_mode = 6 117 | 118 | [node name="Amount" type="Label" parent="Repository/Stars"] 119 | margin_left = 20.0 120 | margin_top = 5.0 121 | margin_right = 341.0 122 | margin_bottom = 19.0 123 | size_flags_horizontal = 3 124 | text = "Stars: 0" 125 | 126 | [node name="Forks" type="HBoxContainer" parent="Repository"] 127 | margin_left = 682.0 128 | margin_right = 1024.0 129 | margin_bottom = 24.0 130 | size_flags_horizontal = 3 131 | alignment = 1 132 | 133 | [node name="Icon" type="TextureRect" parent="Repository/Forks"] 134 | modulate = Color( 0.337255, 0.32549, 0.329412, 1 ) 135 | margin_top = 4.0 136 | margin_right = 16.0 137 | margin_bottom = 20.0 138 | rect_min_size = Vector2( 16, 16 ) 139 | size_flags_horizontal = 0 140 | size_flags_vertical = 4 141 | texture = SubResource( 5 ) 142 | expand = true 143 | stretch_mode = 6 144 | 145 | [node name="Amount" type="Label" parent="Repository/Forks"] 146 | margin_left = 20.0 147 | margin_top = 5.0 148 | margin_right = 342.0 149 | margin_bottom = 19.0 150 | size_flags_horizontal = 3 151 | text = "Forks: 0" 152 | 153 | [connection signal="gui_input" from="." to="." method="_on_RepositoryItem_gui_input"] 154 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/RestHandler.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scripts/RestHandler.gd" type="Script" id=1] 4 | 5 | [node name="Node" type="Node"] 6 | script = ExtResource( 1 ) 7 | 8 | [node name="Client" type="HTTPRequest" parent="."] 9 | use_threads = true 10 | 11 | [node name="NotificationsClient" type="HTTPRequest" parent="."] 12 | use_threads = true 13 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/SingIn.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=8 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scenes/RedBtn.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://addons/github-integration/scenes/GreenBtn.tscn" type="PackedScene" id=2] 5 | [ext_resource path="res://addons/github-integration/scripts/SignIn.gd" type="Script" id=3] 6 | [ext_resource path="res://addons/github-integration/github-logo.png" type="Texture" id=4] 7 | [ext_resource path="res://addons/github-integration/resources/themes/GitHubTheme-Dark.tres" type="Theme" id=5] 8 | 9 | [sub_resource type="StyleBoxEmpty" id=1] 10 | 11 | [sub_resource type="StyleBoxFlat" id=2] 12 | content_margin_left = 5.0 13 | content_margin_right = 5.0 14 | draw_center = false 15 | 16 | [node name="SingIn" type="Control"] 17 | anchor_right = 1.0 18 | anchor_bottom = 1.0 19 | mouse_filter = 1 20 | size_flags_horizontal = 3 21 | size_flags_vertical = 3 22 | theme = ExtResource( 5 ) 23 | script = ExtResource( 3 ) 24 | __meta__ = { 25 | "_edit_group_": true, 26 | "_edit_use_anchors_": false 27 | } 28 | 29 | [node name="BG" type="ColorRect" parent="."] 30 | anchor_right = 1.0 31 | anchor_bottom = 1.0 32 | color = Color( 0.141176, 0.160784, 0.180392, 1 ) 33 | __meta__ = { 34 | "_edit_use_anchors_": false 35 | } 36 | 37 | [node name="FieldContainer" type="PanelContainer" parent="."] 38 | anchor_left = 0.5 39 | anchor_top = 0.5 40 | anchor_right = 0.5 41 | anchor_bottom = 0.5 42 | margin_left = -195.0 43 | margin_top = -284.0 44 | margin_right = 195.0 45 | margin_bottom = 284.0 46 | mouse_filter = 1 47 | __meta__ = { 48 | "_edit_use_anchors_": false 49 | } 50 | 51 | [node name="signin_panel" type="VBoxContainer" parent="FieldContainer"] 52 | margin_left = 20.0 53 | margin_top = 20.0 54 | margin_right = 370.0 55 | margin_bottom = 548.0 56 | grow_horizontal = 2 57 | grow_vertical = 2 58 | alignment = 1 59 | __meta__ = { 60 | "_edit_use_anchors_": false 61 | } 62 | 63 | [node name="GithubLogo" type="TextureRect" parent="FieldContainer/signin_panel"] 64 | margin_right = 350.0 65 | margin_bottom = 128.0 66 | rect_min_size = Vector2( 0, 60 ) 67 | texture = ExtResource( 4 ) 68 | stretch_mode = 4 69 | 70 | [node name="LogoText" type="Label" parent="FieldContainer/signin_panel"] 71 | margin_top = 132.0 72 | margin_right = 350.0 73 | margin_bottom = 154.0 74 | size_flags_horizontal = 3 75 | text = "Sign-in to GitHub" 76 | align = 1 77 | 78 | [node name="EmailLbl" type="Label" parent="FieldContainer/signin_panel"] 79 | margin_top = 158.0 80 | margin_right = 43.0 81 | margin_bottom = 180.0 82 | size_flags_horizontal = 0 83 | text = "Email" 84 | __meta__ = { 85 | "_edit_use_anchors_": false 86 | } 87 | 88 | [node name="Mail" type="LineEdit" parent="FieldContainer/signin_panel"] 89 | margin_top = 184.0 90 | margin_right = 350.0 91 | margin_bottom = 218.0 92 | rect_min_size = Vector2( 350, 0 ) 93 | size_flags_horizontal = 3 94 | text = "" 95 | clear_button_enabled = true 96 | placeholder_text = "Insert your e-mail..." 97 | placeholder_alpha = 0.4 98 | 99 | [node name="SEPARATOR" type="HSeparator" parent="FieldContainer/signin_panel"] 100 | margin_top = 222.0 101 | margin_right = 350.0 102 | margin_bottom = 230.0 103 | rect_min_size = Vector2( 0, 3 ) 104 | custom_styles/separator = SubResource( 1 ) 105 | custom_constants/separation = 8 106 | 107 | [node name="Token" type="HBoxContainer" parent="FieldContainer/signin_panel"] 108 | margin_top = 234.0 109 | margin_right = 350.0 110 | margin_bottom = 256.0 111 | 112 | [node name="TokenLbl" type="Label" parent="FieldContainer/signin_panel/Token"] 113 | margin_right = 46.0 114 | margin_bottom = 22.0 115 | size_flags_horizontal = 0 116 | text = "Token" 117 | __meta__ = { 118 | "_edit_use_anchors_": false 119 | } 120 | 121 | [node name="btnCreateToken" type="LinkButton" parent="FieldContainer/signin_panel/Token"] 122 | margin_left = 267.0 123 | margin_top = 8.0 124 | margin_right = 350.0 125 | margin_bottom = 22.0 126 | size_flags_horizontal = 14 127 | size_flags_vertical = 8 128 | text = "Create Token" 129 | underline = 1 130 | 131 | [node name="Password" type="LineEdit" parent="FieldContainer/signin_panel"] 132 | margin_top = 260.0 133 | margin_right = 350.0 134 | margin_bottom = 294.0 135 | rect_min_size = Vector2( 350, 0 ) 136 | size_flags_horizontal = 3 137 | text = "" 138 | secret = true 139 | clear_button_enabled = true 140 | placeholder_text = "Insert your token..." 141 | placeholder_alpha = 0.4 142 | 143 | [node name="SEPARATOR1" type="HSeparator" parent="FieldContainer/signin_panel"] 144 | margin_top = 298.0 145 | margin_right = 350.0 146 | margin_bottom = 308.0 147 | rect_min_size = Vector2( 0, 3 ) 148 | custom_styles/separator = SubResource( 1 ) 149 | custom_constants/separation = 10 150 | 151 | [node name="HBoxContainer3" type="HBoxContainer" parent="FieldContainer/signin_panel"] 152 | margin_top = 312.0 153 | margin_right = 350.0 154 | margin_bottom = 342.0 155 | alignment = 1 156 | 157 | [node name="btnSignIn" parent="FieldContainer/signin_panel/HBoxContainer3" instance=ExtResource( 2 )] 158 | anchor_right = 0.0 159 | anchor_bottom = 0.0 160 | margin_right = 332.0 161 | margin_bottom = 30.0 162 | disabled = true 163 | text = "Sign In" 164 | 165 | [node name="logfile" type="Label" parent="FieldContainer/signin_panel/HBoxContainer3"] 166 | margin_left = 336.0 167 | margin_top = 8.0 168 | margin_right = 350.0 169 | margin_bottom = 22.0 170 | hint_tooltip = "A logfile has been found! Just press \"Sign-in\" without filling the fields." 171 | mouse_filter = 1 172 | size_flags_horizontal = 8 173 | custom_styles/normal = SubResource( 2 ) 174 | custom_colors/font_color = Color( 0.92549, 0.133333, 0.392157, 1 ) 175 | text = "!" 176 | 177 | [node name="SEPARATOR2" type="HSeparator" parent="FieldContainer/signin_panel"] 178 | margin_top = 346.0 179 | margin_right = 350.0 180 | margin_bottom = 361.0 181 | rect_min_size = Vector2( 0, 15 ) 182 | custom_styles/separator = SubResource( 1 ) 183 | 184 | [node name="singup" type="LinkButton" parent="FieldContainer/signin_panel"] 185 | margin_left = 69.0 186 | margin_top = 365.0 187 | margin_right = 281.0 188 | margin_bottom = 379.0 189 | size_flags_horizontal = 4 190 | text = "Don't have a GitHub account yet?" 191 | underline = 1 192 | 193 | [node name="SEPARATOR3" type="HSeparator" parent="FieldContainer/signin_panel"] 194 | margin_top = 383.0 195 | margin_right = 350.0 196 | margin_bottom = 387.0 197 | rect_min_size = Vector2( 0, 3 ) 198 | custom_styles/separator = SubResource( 1 ) 199 | 200 | [node name="error" type="Label" parent="FieldContainer/signin_panel"] 201 | visible = false 202 | margin_top = 305.0 203 | margin_right = 464.0 204 | margin_bottom = 319.0 205 | size_flags_horizontal = 3 206 | custom_colors/font_color = Color( 1, 0, 0.235294, 1 ) 207 | text = "Error: " 208 | align = 1 209 | 210 | [node name="DeleteDataBtn" parent="FieldContainer/signin_panel" instance=ExtResource( 1 )] 211 | anchor_right = 0.0 212 | anchor_bottom = 0.0 213 | margin_top = 498.0 214 | margin_right = 350.0 215 | margin_bottom = 528.0 216 | size_flags_vertical = 10 217 | text = "Delete User Data" 218 | 219 | [node name="DeleteHover" type="ColorRect" parent="."] 220 | visible = false 221 | anchor_right = 1.0 222 | anchor_bottom = 1.0 223 | color = Color( 0, 0, 0, 0.313726 ) 224 | __meta__ = { 225 | "_edit_use_anchors_": false 226 | } 227 | 228 | [node name="DeletePopup" type="ConfirmationDialog" parent="."] 229 | anchor_left = 0.5 230 | anchor_top = 0.5 231 | anchor_right = 0.5 232 | anchor_bottom = 0.5 233 | margin_left = -185.5 234 | margin_top = -35.0 235 | margin_right = 185.5 236 | margin_bottom = 35.0 237 | window_title = "Delete User Data" 238 | dialog_text = "Are you sure you want to delete your current user data?" 239 | __meta__ = { 240 | "_edit_use_anchors_": false 241 | } 242 | [connection signal="pressed" from="FieldContainer/signin_panel/singup" to="." method="_on_singup_pressed"] 243 | -------------------------------------------------------------------------------- /addons/github-integration/scenes/loading.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [ext_resource path="res://addons/github-integration/scripts/loading.gd" type="Script" id=1] 4 | [ext_resource path="res://addons/github-integration/resources/loading/throbber.png" type="Texture" id=2] 5 | 6 | [sub_resource type="Shader" id=1] 7 | code = "shader_type canvas_item; 8 | render_mode unshaded, blend_disabled; 9 | 10 | uniform float speed = 5.0; 11 | 12 | vec2 rotateUV(vec2 uv, vec2 pivot, float rotation) { 13 | float cosa = cos(rotation); 14 | float sina = sin(rotation); 15 | uv -= pivot; 16 | return vec2( 17 | cosa * uv.x - sina * uv.y, 18 | cosa * uv.y + sina * uv.x 19 | ) + pivot; 20 | } 21 | 22 | void vertex() { 23 | VERTEX = rotateUV(VERTEX, TEXTURE_PIXEL_SIZE+vec2(45,45), TIME * speed); 24 | } 25 | 26 | " 27 | 28 | [sub_resource type="ShaderMaterial" id=2] 29 | shader = SubResource( 1 ) 30 | shader_param/speed = 0 31 | 32 | [node name="loading" type="ColorRect"] 33 | anchor_right = 1.0 34 | anchor_bottom = 1.0 35 | color = Color( 0, 0, 0, 0.745098 ) 36 | script = ExtResource( 1 ) 37 | __meta__ = { 38 | "_edit_use_anchors_": false 39 | } 40 | 41 | [node name="VBoxContainer" type="VBoxContainer" parent="."] 42 | anchor_right = 1.0 43 | anchor_bottom = 1.0 44 | alignment = 1 45 | __meta__ = { 46 | "_edit_use_anchors_": false 47 | } 48 | 49 | [node name="loading2" type="TextureRect" parent="VBoxContainer"] 50 | material = SubResource( 2 ) 51 | margin_left = 467.0 52 | margin_top = 246.0 53 | margin_right = 557.0 54 | margin_bottom = 336.0 55 | rect_min_size = Vector2( 90, 90 ) 56 | size_flags_horizontal = 4 57 | size_flags_vertical = 0 58 | texture = ExtResource( 2 ) 59 | expand = true 60 | stretch_mode = 6 61 | __meta__ = { 62 | "_edit_use_anchors_": false 63 | } 64 | 65 | [node name="ProgressBar" type="ProgressBar" parent="VBoxContainer"] 66 | visible = false 67 | margin_left = 362.0 68 | margin_top = 322.0 69 | margin_right = 662.0 70 | margin_bottom = 336.0 71 | rect_min_size = Vector2( 300, 0 ) 72 | size_flags_horizontal = 4 73 | 74 | [node name="Number" type="Label" parent="VBoxContainer"] 75 | visible = false 76 | margin_left = 506.0 77 | margin_top = 340.0 78 | margin_right = 518.0 79 | margin_bottom = 354.0 80 | grow_horizontal = 2 81 | grow_vertical = 2 82 | size_flags_horizontal = 4 83 | text = "..." 84 | align = 1 85 | 86 | [node name="Message" type="Label" parent="VBoxContainer"] 87 | margin_left = 483.0 88 | margin_top = 340.0 89 | margin_right = 540.0 90 | margin_bottom = 354.0 91 | grow_horizontal = 2 92 | grow_vertical = 2 93 | size_flags_horizontal = 4 94 | text = "message" 95 | align = 1 96 | [connection signal="visibility_changed" from="." to="." method="_on_loading_visibility_changed"] 97 | -------------------------------------------------------------------------------- /addons/github-integration/screenshots/.gdignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/.gdignore -------------------------------------------------------------------------------- /addons/github-integration/screenshots/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/banner.png -------------------------------------------------------------------------------- /addons/github-integration/screenshots/commit.PNG.screenshot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/commit.PNG.screenshot -------------------------------------------------------------------------------- /addons/github-integration/screenshots/commit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/commit.png -------------------------------------------------------------------------------- /addons/github-integration/screenshots/gist.PNG.screenshot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/gist.PNG.screenshot -------------------------------------------------------------------------------- /addons/github-integration/screenshots/gist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/gist.png -------------------------------------------------------------------------------- /addons/github-integration/screenshots/mainpanel1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/mainpanel1.PNG -------------------------------------------------------------------------------- /addons/github-integration/screenshots/repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/repo.png -------------------------------------------------------------------------------- /addons/github-integration/screenshots/repo.png.screenshot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/repo.png.screenshot -------------------------------------------------------------------------------- /addons/github-integration/screenshots/singin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/singin.png -------------------------------------------------------------------------------- /addons/github-integration/screenshots/singin.png.screenshot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/singin.png.screenshot -------------------------------------------------------------------------------- /addons/github-integration/screenshots/userpanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/userpanel.png -------------------------------------------------------------------------------- /addons/github-integration/screenshots/userpanel.png.screenshot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fenix-hub/godot-engine.github-integration/28afca33955e6ef9d14aa1a6ac8c388d8ea9873f/addons/github-integration/screenshots/userpanel.png.screenshot -------------------------------------------------------------------------------- /addons/github-integration/scripts/ContributorClass.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends HBoxContainer 3 | class_name ContributorClass 4 | 5 | onready var avatar_texture : TextureRect = $Avatar 6 | onready var login_lbl : Label = $Login 7 | onready var name_lbl : Label = $Name 8 | onready var client : HTTPRequest = $HTTPRequest 9 | 10 | var is_downloading : bool = false 11 | 12 | var _avatar : String 13 | var _name : String 14 | var _login : String 15 | 16 | func _ready() -> void: 17 | client.connect("request_completed", self, "_on_request_completed") 18 | pass 19 | # RestHandler.connect("user_contributor_requested", self, "_on_contributor_avatar_requested") 20 | 21 | func load_contributor(contributor_login : String, contributor_name : String = "", contributor_avatar : String = "") -> void: 22 | set_contributor_login(contributor_login) 23 | set_contributor_name(contributor_name) 24 | set_contributor_avatar(contributor_avatar) 25 | 26 | func set_contributor_login(l : String) -> void: 27 | _login = l 28 | login_lbl.set_text(_login) 29 | 30 | func set_contributor_name(n : String) -> void: 31 | _name = n 32 | name_lbl.set_text(_name) 33 | 34 | func set_contributor_avatar(a : String) -> void: 35 | _avatar = a 36 | client.request(_avatar) 37 | is_downloading = true 38 | 39 | func _process(delta): 40 | if is_downloading: pass#print(client.get_downloaded_bytes()/client.get_body_size()*100, " %") 41 | 42 | func _on_request_completed(result: int, response_code: int, headers: PoolStringArray, avatar: PoolByteArray) -> void: 43 | if result == 0: 44 | if response_code == 200: 45 | var image : Image = Image.new() 46 | var extension : String = avatar.subarray(0,1).hex_encode() 47 | match extension: 48 | "ffd8": 49 | image.load_jpg_from_buffer(avatar) 50 | "8950": 51 | image.load_png_from_buffer(avatar) 52 | var texture : ImageTexture = ImageTexture.new() 53 | texture.create_from_image(image) 54 | avatar_texture.set_texture(texture) 55 | is_downloading = false 56 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/GistItem.gd: -------------------------------------------------------------------------------- 1 | tool 2 | class_name GistItem 3 | extends PanelContainer 4 | 5 | signal gist_selected(gist) 6 | signal gist_clicked(this_gist) 7 | 8 | onready var Name = $Gist/Name 9 | onready var Files = $Gist/Files 10 | onready var BG = $BG 11 | 12 | var _name : String 13 | var _files_amount : int 14 | var _files : Array 15 | var _metadata : Dictionary 16 | var _gist : Dictionary 17 | var _id : String 18 | 19 | func _ready(): 20 | Files.get_node("Icon").set_texture(IconLoaderGithub.load_icon_from_name("gists")) 21 | 22 | func set_gist(gist : Dictionary): 23 | _gist = gist 24 | _id = gist.resourcePath 25 | _name = gist.files[0].name 26 | _files = gist.files 27 | _files_amount = _files.size() 28 | Name.get_node("Text").set_text(_name) 29 | Files.get_node("Amount").set_text("Files: "+str(_files_amount)) 30 | 31 | var gist_icon : ImageTexture 32 | if gist.isPublic: 33 | gist_icon = (IconLoaderGithub.load_icon_from_name("gists")) 34 | else: 35 | gist_icon = (IconLoaderGithub.load_icon_from_name("lock")) 36 | if gist.isFork: 37 | pass 38 | Name.get_node("Icon").set_texture(gist_icon) 39 | 40 | func deselect(): 41 | BG.hide() 42 | 43 | func _on_GistItem_gui_input(event): 44 | if event is InputEventMouseButton: 45 | if event.is_pressed() and event.button_index == 1: 46 | BG.show() 47 | emit_signal("gist_clicked", self) 48 | if event.doubleclick: 49 | emit_signal("gist_selected", self) 50 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/GitHub.gd: -------------------------------------------------------------------------------- 1 | # ---------------------------------------------- 2 | # ~{ GitHub Integration }~ 3 | # [Author] Nicolò "fenix" Santilio 4 | # [github] fenix-hub/godot-engine.github-integration 5 | # [version] 0.2.9 6 | # [date] 09.13.2019 7 | 8 | # ----------------------------------------------- 9 | 10 | tool 11 | extends Control 12 | 13 | onready var VersionCheck : HTTPRequest = $VersionCheck 14 | 15 | onready var SignIn : Control = $SingIn 16 | onready var UserPanel : Control = $UserPanel 17 | onready var CommitRepo : Control = $Commit 18 | onready var Repo : Control = $Repo 19 | onready var Gist : Control = $Gist 20 | onready var Commit : Control = $Commit 21 | onready var LoadNode : Control = $loading 22 | onready var Version : Control = $Header/datas/version 23 | onready var ConnectionIcon : TextureRect = $Header/datas/connection 24 | onready var Header : Control = $Header 25 | onready var RestartConnection = Header.get_node("datas/restart_connection") 26 | onready var Menu : PopupMenu = $Header/datas/Menu.get_popup() 27 | onready var Notifications : Control = $Notifications 28 | 29 | var user_avatar : ImageTexture = ImageTexture.new() 30 | var user_img = Image.new() 31 | 32 | var connection_status : Array = [ 33 | IconLoaderGithub.load_icon_from_name("searchconnection"), 34 | IconLoaderGithub.load_icon_from_name("noconnection"), 35 | IconLoaderGithub.load_icon_from_name("connection") 36 | ] 37 | 38 | var plugin_version : String 39 | var plugin_name : String 40 | 41 | # Load the configuration file for this plugin to fetch some info 42 | func load_config() -> void: 43 | var config = ConfigFile.new() 44 | var err = config.load("res://addons/github-integration/plugin.cfg") 45 | if err == OK: 46 | plugin_version = config.get_value("plugin","version") 47 | plugin_name = "[%s] >> " % config.get_value("plugin","name") 48 | 49 | func connect_signals() -> void: 50 | Menu.connect("index_pressed", self, "menu_item_pressed") 51 | RestartConnection.connect("pressed",self,"check_connection") 52 | VersionCheck.connect("request_completed",self,"_on_version_check") 53 | SignIn.connect("signed",self,"signed") 54 | UserPanel.connect("completed_loading", SignIn, "_on_completed_loading") 55 | UserPanel.connect("loaded_gists", Gist, "_on_loaded_repositories") 56 | Header.connect("load_invitations", Notifications, "_on_load_invitations_list") 57 | Header.notifications_btn.connect("pressed", Notifications, "_open_notifications") 58 | Notifications.connect("add_notifications", Header, "_on_add_notifications") 59 | 60 | func hide_nodes() -> void: 61 | Repo.hide() 62 | SignIn.show() 63 | UserPanel.hide() 64 | Commit.hide() 65 | LoadNode.hide() 66 | 67 | func _ready(): 68 | connect_signals() 69 | hide_nodes() 70 | # Load Config file 71 | load_config() 72 | Version.text = "v "+plugin_version 73 | 74 | ConnectionIcon.set_texture(connection_status[0]) 75 | ConnectionIcon.use_parent_material = false 76 | ConnectionIcon.material.set("shader_param/speed", 3) 77 | 78 | # Check the connection with the API 79 | RestHandler.check_connection() 80 | # Yield until the "_check_connection" function returns a value 81 | var connection = yield(RestHandler, "_check_connection") 82 | match connection: 83 | true: 84 | ConnectionIcon.set_texture(connection_status[2]) 85 | ConnectionIcon.set_tooltip("Connected to GitHub API") 86 | RestartConnection.hide() 87 | false: 88 | ConnectionIcon.set_texture(connection_status[1]) 89 | ConnectionIcon.set_tooltip("Can't connect to GitHub API, check your internet connection or API status") 90 | RestartConnection.show() 91 | ConnectionIcon.use_parent_material = true 92 | ConnectionIcon.material.set("shader_param/speed", 0) 93 | 94 | Menu.set_item_checked(0, PluginSettings.debug) 95 | Menu.set_item_checked(1, PluginSettings.auto_log) 96 | # Check the plugin verison 97 | VersionCheck.request("https://api.github.com/repos/fenix-hub/godot-engine.github-integration/tags",[],false,HTTPClient.METHOD_GET,"") 98 | 99 | if PluginSettings.auto_log: 100 | SignIn.sign_in() 101 | 102 | set_darkmode(PluginSettings.darkmode) 103 | 104 | # Show or hide the loading screen 105 | func loading(value : bool) -> void: 106 | LoadNode.visible = value 107 | 108 | # Show the loading process, giving the current value and a maximum value 109 | func show_loading_progress(value : float, max_value : float) -> void: 110 | LoadNode.show_progress(value,max_value) 111 | 112 | func hide_loading_progress(): 113 | LoadNode.hide_progress() 114 | 115 | func show_number(value : float, type : String) -> void: 116 | LoadNode.show_number(value,type) 117 | 118 | func hide_number() -> void: 119 | LoadNode.hide_number() 120 | 121 | # If User Signed 122 | func signed() -> void: 123 | UserPanel.load_panel() 124 | set_avatar(UserData.AVATAR) 125 | set_username(UserData.USER.login) 126 | yield(UserPanel, "completed_loading") 127 | Notifications.request_notifications() 128 | 129 | # Print a debug message if the debug setting is set to "true", with a debug type from 0 to 2 130 | func print_debug_message(message : String = "", type : int = 0) -> void: 131 | if PluginSettings.debug == true: 132 | match type: 133 | 0: 134 | print(plugin_name,message) 135 | 1: 136 | printerr(plugin_name,message) 137 | 2: 138 | push_warning(plugin_name+message) 139 | if type != 1: set_loading_message(message) 140 | 141 | func set_loading_message(message : String): 142 | LoadNode.message.set_text(message) 143 | 144 | # Control logic for each item in the plugin menu 145 | func menu_item_pressed(id : int) -> void: 146 | match id: 147 | # 0: 148 | # _on_debug_toggled(!Menu.is_item_checked(id)) 149 | # 1: 150 | # _on_autologin_toggled(!Menu.is_item_checked(id)) 151 | 0: 152 | OS.shell_open("https://github.com/fenix-hub/godot-engine.github-integration/wiki") 153 | 1: 154 | logout() 155 | 2: 156 | set_darkmode(!Menu.is_item_checked(id)) 157 | 158 | # Logout function 159 | func logout(): 160 | set_avatar(IconLoaderGithub.load_icon_from_name("circle")) 161 | set_username("user") 162 | SignIn.show() 163 | UserPanel._clear() 164 | UserPanel.hide() 165 | Repo.hide() 166 | Commit.hide() 167 | Gist.hide() 168 | Notifications._clear() 169 | Notifications.hide() 170 | SignIn.Mail.text = "" 171 | SignIn.Token.text = "" 172 | UserData.logout_user() 173 | 174 | # Set to darkmode each single Control 175 | func set_darkmode(darkmode : bool) -> void: 176 | PluginSettings.set_darkmode(darkmode) 177 | SignIn.set_darkmode(darkmode) 178 | UserPanel.set_darkmode(darkmode) 179 | Repo.set_darkmode(darkmode) 180 | Commit.set_darkmode(darkmode) 181 | Gist.set_darkmode(darkmode) 182 | Header.set_darkmode(darkmode) 183 | Notifications.set_darkmode(darkmode) 184 | 185 | func set_avatar(avatar : ImageTexture) -> void: 186 | $Header/datas/avatar.texture = avatar 187 | 188 | func set_username(username : String) -> void: 189 | $Header/datas/user.text = username 190 | 191 | # If the plugin version has been checked 192 | func _on_version_check(result, response_code, headers, body ) -> void: 193 | if result == 0: 194 | if response_code == 200: 195 | var tags : Array = JSON.parse(body.get_string_from_utf8()).result 196 | var first_tag : Dictionary = tags[0] as Dictionary 197 | if first_tag.name != ("v"+plugin_version): 198 | print_debug_message("a new plugin version has been found, current version is %s and new version is %s" % [("v"+plugin_version), first_tag.name],1) 199 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/Header.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends Control 3 | 4 | onready var discord : TextureButton = $datas/discord 5 | onready var paypal : TextureButton = $datas/paypal 6 | onready var github : TextureButton = $datas/github 7 | onready var notifications_btn : TextureButton = $datas/notifications 8 | onready var notifications_lbl : Label = $datas/notifications/VBoxContainer/NotificationsLbl 9 | 10 | signal load_invitations(list) 11 | 12 | var notifications : int = 0 13 | 14 | func _ready(): 15 | hide_notifications() 16 | _connect_signals() 17 | 18 | func _connect_signals(): 19 | discord.connect("pressed",self,"_join_discord") 20 | paypal.connect("pressed",self,"_support_paypal") 21 | github.connect("pressed",self,"_check_git") 22 | notifications_btn.connect("pressed", self, "_notifications_opened") 23 | 24 | func set_darkmode(darkmode : bool): 25 | if darkmode: 26 | set_theme(load("res://addons/github-integration/resources/themes/GitHubTheme-Dark.tres")) 27 | else: 28 | set_theme(load("res://addons/github-integration/resources/themes/GitHubTheme.tres")) 29 | 30 | func _join_discord(): 31 | OS.shell_open("https://discord.gg/KnJGY9S") 32 | 33 | func _support_paypal(): 34 | OS.shell_open("https://paypal.me/NSantilio?locale.x=it_IT") 35 | 36 | func _check_git(): 37 | OS.shell_open("https://github.com/fenix-hub/godot-engine.github-integration") 38 | 39 | func _notifications_opened(): 40 | if get_parent().Notifications.visible : 41 | hide_notifications() 42 | else: 43 | if notifications > 0: 44 | set_notifications() 45 | 46 | func _on_add_notifications(amount : int): 47 | notifications+=amount 48 | set_notifications() 49 | 50 | func set_notifications(): 51 | notifications_lbl.set_text(str(notifications)) 52 | notifications_btn.set_tooltip("You have "+str(notifications)+" unread notifications") 53 | notifications_lbl.show() if notifications > 0 else hide_notifications() 54 | 55 | func hide_notifications(): 56 | notifications_lbl.hide() 57 | notifications_btn.set_tooltip("You have no unread notifications") 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/IconLoaderGithub.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends Node 3 | 4 | func _ready(): 5 | pass 6 | 7 | func load_icon_from_name(icon_name : String) -> ImageTexture: 8 | var file = File.new() 9 | var image = Image.new() 10 | var texture = ImageTexture.new() 11 | 12 | file.open("res://addons/github-integration/icons.pngs/"+icon_name+".png.iconpng", File.READ) 13 | var buffer = file.get_buffer(file.get_len()) 14 | file.close() 15 | 16 | image.load_png_from_buffer(buffer) 17 | texture.create_from_image(image) 18 | return texture 19 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/InvitationItem.gd: -------------------------------------------------------------------------------- 1 | tool 2 | class_name InvitationItem 3 | extends HBoxContainer 4 | 5 | onready var user_lbl : LinkButton = $User 6 | onready var repository_lbl : LinkButton = $Repository 7 | onready var permissions_lbl : Label = $Permissions 8 | onready var client : HTTPRequest = $HTTPRequest 9 | onready var avatar_texture : TextureRect = $Avatar 10 | onready var accept_btn : Button = $AcceptBtn 11 | onready var decline_btn : Button = $DeclineBtn 12 | onready var result_lbl : Label = $Result 13 | 14 | var invitation_id : int 15 | var user_invitation : String 16 | var repository_invitation : String 17 | var avatar_invitation : String 18 | var user_url : String 19 | var repository_url : String 20 | 21 | signal set_to_load_next(to_load) 22 | signal add_notifications(amount) 23 | signal invitation_accepted() 24 | signal invitation_declined() 25 | 26 | func _ready(): 27 | user_lbl.connect("pressed", self, "_on_user_pressed") 28 | repository_lbl.connect("pressed", self, "_on_repository_pressed") 29 | client.connect("request_completed", self, "_on_request_completed") 30 | accept_btn.connect("pressed", self, "_on_invite_accept") 31 | decline_btn.connect("pressed", self, "_on_invite_decline") 32 | RestHandler.connect("invitation_accepted", self, "_on_invitation_accepted") 33 | RestHandler.connect("invitation_declined", self, "_on_invitation_declined") 34 | 35 | func load_invitation(invitation : Dictionary) -> void: 36 | invitation_id = invitation.id 37 | set_user_invitation(invitation.inviter.login) 38 | set_repository_invitation(invitation.repository.name) 39 | set_avatar_invitation(invitation.inviter.avatar_url) 40 | user_url = invitation.inviter.html_url 41 | repository_url = invitation.repository.html_url 42 | permissions_lbl.set_text(invitation.permissions) 43 | 44 | func set_user_invitation(user : String) -> void: 45 | user_invitation = user 46 | user_lbl.set_text(user_invitation) 47 | 48 | func set_repository_invitation(repository : String): 49 | repository_invitation = repository 50 | repository_lbl.set_text(repository_invitation) 51 | 52 | func set_avatar_invitation(avatar : String): 53 | avatar_invitation = avatar 54 | client.request(avatar) 55 | 56 | func _on_user_pressed(): 57 | OS.shell_open(user_url) 58 | 59 | func _on_repository_pressed(): 60 | OS.shell_open(repository_url) 61 | 62 | func _on_invite_accept(): 63 | RestHandler.request_accept_invitation(invitation_id) 64 | decline_btn.hide() 65 | accept_btn.hide() 66 | set_result("Invitation accepted.") 67 | emit_signal("add_notifications", -1) 68 | emit_signal("invitation_declined") 69 | 70 | func _on_invite_decline(): 71 | RestHandler.request_decline_invitation(invitation_id) 72 | decline_btn.hide() 73 | accept_btn.hide() 74 | set_result("Invitation declined.") 75 | emit_signal("add_notifications", -1) 76 | emit_signal("invitation_accepted") 77 | 78 | func set_result(message : String): 79 | result_lbl.set_text(message) 80 | 81 | func _on_invitation_accepted(): 82 | emit_signal("set_to_load_next", true) 83 | queue_free() 84 | 85 | func _on_invitation_declined(): 86 | queue_free() 87 | 88 | func _on_request_completed(result: int, response_code: int, headers: PoolStringArray, avatar: PoolByteArray) -> void: 89 | if result == 0: 90 | if response_code == 200: 91 | var image : Image = Image.new() 92 | var extension : String = avatar.subarray(0,1).hex_encode() 93 | match extension: 94 | "ffd8": 95 | image.load_jpg_from_buffer(avatar) 96 | "8950": 97 | image.load_png_from_buffer(avatar) 98 | var texture : ImageTexture = ImageTexture.new() 99 | texture.create_from_image(image) 100 | avatar_texture.set_texture(texture) 101 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/NewGist.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends WindowDialog 3 | 4 | onready var description = $VBoxContainer/HBoxContainer/description 5 | onready var FileName : LineEdit = $VBoxContainer/HBoxContainer2/filename 6 | 7 | onready var FromProject = $VBoxContainer/HBoxContainer4/Button 8 | onready var NewGists = $VBoxContainer/HBoxContainer4/Button2 9 | onready var GistFiles = $FileDialog 10 | 11 | onready var privacy = $VBoxContainer/HBoxContainer3/privacy 12 | 13 | var filelist 14 | 15 | var EXTENSIONS : PoolStringArray = [ 16 | "*.txt ; Plain Text File", 17 | "*.rtf ; Rich Text Format File", 18 | "*.log ; Log File", 19 | "*.md ; MD File", 20 | "*.doc ; WordPad Document", 21 | "*.doc ; Microsoft Word Document", 22 | "*.docm ; Word Open XML Macro-Enabled Document", 23 | "*.docx ; Microsoft Word Open XML Document", 24 | "*.bbs ; Bulletin Board System Text", 25 | "*.dat ; Data File", 26 | "*.xml ; XML File", 27 | "*.sql ; SQL database file", 28 | "*.json ; JavaScript Object Notation File", 29 | "*.html ; HyperText Markup Language", 30 | "*.csv ; Comma-separated values", 31 | "*.cfg ; Configuration File", 32 | "*.ini ; Initialization File (same as .cfg Configuration File)", 33 | "*.csv ; Comma-separated values File", 34 | ] 35 | 36 | func _ready(): 37 | NewGists.connect("pressed",self,"on_newgists_pressed") 38 | FromProject.connect("pressed",self,"on_fromproject_pressed") 39 | GistFiles.connect("files_selected",self,"on_files_selected") 40 | GistFiles.set_filters(EXTENSIONS) 41 | 42 | func on_newgists_pressed(): 43 | var priv 44 | if privacy.get_selected_id() == 0: 45 | priv = true 46 | else: 47 | priv = false 48 | 49 | var desc = description.get_text() 50 | var file_name : String = FileName.get_text() 51 | if file_name != "" and file_name!=" ": 52 | get_parent().get_parent().Gist.initialize_new_gist(priv, file_name, desc) 53 | hide() 54 | get_parent().hide() 55 | else: 56 | get_parent().get_parent().print_debug_message("you must give a name to the root file.",1) 57 | 58 | func on_fromproject_pressed(): 59 | GistFiles.popup() 60 | 61 | func on_files_selected(files : PoolStringArray): 62 | var priv 63 | if privacy.get_selected_id() == 0: 64 | priv = true 65 | else: 66 | priv = false 67 | 68 | var desc = description.get_text() 69 | get_parent().get_parent().Gist.initialize_new_gist(priv, files[0], desc, files) 70 | hide() 71 | get_parent().hide() 72 | 73 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/Notifications.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends Control 3 | 4 | var invitation_item_scene : PackedScene = preload("res://addons/github-integration/scenes/InvitationItem.tscn") 5 | 6 | onready var timer : Timer = $Timer 7 | onready var tabs : VBoxContainer = $NotificationsContainer/NotificationsTabs/Tabs 8 | onready var notification_tree : Tree = $NotificationsContainer/NotificationsTabs/NotificationsTree 9 | onready var invitations_list_box : VBoxContainer = tabs.get_node("Invitations") 10 | onready var settings_list_box : VBoxContainer = tabs.get_node("Settings") 11 | onready var auto_update_notifications_chk : CheckButton = $NotificationsContainer/NotificationsTabs/Tabs/Settings/Notifications/AutoUpdateNotificationsChk 12 | onready var auto_update_notifications_amount : LineEdit = $NotificationsContainer/NotificationsTabs/Tabs/Settings/Notifications/AutoUpdateTimer/Amount 13 | onready var debug_messages_chk : CheckButton = $NotificationsContainer/NotificationsTabs/Tabs/Settings/Plugin/DebugMessagesChk 14 | onready var auto_login_chk : CheckButton = $NotificationsContainer/NotificationsTabs/Tabs/Settings/Plugin/AutoLoginChk 15 | onready var darkmode_chck : CheckButton = $NotificationsContainer/NotificationsTabs/Tabs/Settings/Plugin/DarkmodeChk 16 | onready var owner_check : CheckBox = $NotificationsContainer/NotificationsTabs/Tabs/Settings/Repositories/OwnerAffiliations/Owner 17 | onready var collaborator_check : CheckBox = $NotificationsContainer/NotificationsTabs/Tabs/Settings/Repositories/OwnerAffiliations/Collaborator 18 | onready var organization_member_check : CheckBox = $NotificationsContainer/NotificationsTabs/Tabs/Settings/Repositories/OwnerAffiliations/OrganizationMember 19 | 20 | 21 | signal add_notifications(amount) 22 | 23 | var to_load_next : bool = false 24 | var notifications_tabs : Array = ["Invitations", "Settings"] 25 | 26 | func _ready(): 27 | if PluginSettings._loaded : pass 28 | else: yield(PluginSettings,"ready") 29 | load_settings() 30 | _connect_signals() 31 | load_notification_tabs() 32 | notification_tree.get_root().get_children().select(0) 33 | set_invitations_amount(0) 34 | 35 | func _connect_signals() -> void: 36 | timer.connect("timeout", self, "_on_timeout") 37 | notification_tree.connect("item_selected", self, "_on_item_selected") 38 | RestHandler.connect("notification_request_failed", self, "_on_notification_request_failed") 39 | RestHandler.connect("invitations_list_requested", self, "_on_invitations_list_requested") 40 | auto_update_notifications_chk.connect("toggled", self, "_on_auto_update_toggled") 41 | auto_update_notifications_amount.connect("text_entered", self, "_on_auto_update_amount_entered") 42 | debug_messages_chk.connect("toggled", self, "_on_debug_toggled") 43 | auto_login_chk.connect("toggled", self, "_on_autologin_toggled") 44 | darkmode_chck.connect("toggled", self, "_on_darkmode_toggled") 45 | $NotificationsContainer/NotificationsTabs/Tabs/Settings/ResetPluginBtn.connect("pressed", self, "_on_reset_plugin_pressed") 46 | $ResetPluginDialog.connect("confirmed", self, "_on_reset_confirmed") 47 | owner_check.connect("toggled", self, "_on_owner_check_pressed") 48 | collaborator_check.connect("toggled", self, "_on_collaborator_check_pressed") 49 | organization_member_check.connect("toggled", self, "_on_organization_member_check_pressed") 50 | 51 | func load_settings(): 52 | var auto_update_notifications : bool = PluginSettings.auto_update_notifications 53 | var auto_update_timer : float = PluginSettings.auto_update_timer 54 | var darkmode : bool = PluginSettings.darkmode 55 | set_auto_update_timer(auto_update_timer) 56 | set_auto_update(auto_update_notifications) 57 | auto_update_notifications_chk.set_pressed(auto_update_notifications) 58 | auto_update_notifications_amount.set_text(str(auto_update_timer/60)) 59 | debug_messages_chk.set_pressed(PluginSettings.debug) 60 | auto_login_chk.set_pressed(PluginSettings.auto_log) 61 | darkmode_chck.set_pressed(darkmode) 62 | var owner_affiliations : Array = PluginSettings.owner_affiliations 63 | load_owner_affiliations(owner_affiliations) 64 | 65 | func load_owner_affiliations(affiliations : Array): 66 | owner_check.set_pressed("OWNER" in affiliations) 67 | collaborator_check.set_pressed("COLLABORATOR" in affiliations) 68 | organization_member_check.set_pressed("ORGANIZATION_MEMBER" in affiliations) 69 | 70 | func _on_notification_request_failed(requesting : int, error_body : Dictionary): 71 | match requesting: 72 | RestHandler.REQUESTS.INVITATIONS_LIST: 73 | get_parent().print_debug_message("ERROR: "+error_body.message, 1) 74 | 75 | func hide_notification_tab(tab : TreeItem) -> TreeItem: 76 | if tab.get_text(0) != "Settings": tab.hide() 77 | return tab.get_next() 78 | 79 | func load_notification_tabs() -> void: 80 | var root : TreeItem = notification_tree.create_item() 81 | for tab in notifications_tabs: 82 | var invitations_item : TreeItem = notification_tree.create_item(root) 83 | invitations_item.set_text(0, tab) 84 | 85 | func hide_notification_tabs(): 86 | var next_item : TreeItem = hide_notification_tab(notification_tree.get_root().get_children()) 87 | while next_item!=null: 88 | next_item = hide_notification_tab(next_item) 89 | 90 | func set_darkmode(darkmode : bool) -> void: 91 | if darkmode: 92 | $BG.color = "#24292e" 93 | set_theme(load("res://addons/github-integration/resources/themes/GitHubTheme-Dark.tres")) 94 | else: 95 | $BG.color = "#f6f8fa" 96 | set_theme(load("res://addons/github-integration/resources/themes/GitHubTheme.tres")) 97 | 98 | func _open_notifications(): 99 | set_visible(not visible) 100 | get_parent().UserPanel.load_panel() if (not visible and to_load_next) else null 101 | 102 | func _on_item_selected(): 103 | var item : TreeItem = notification_tree.get_selected() 104 | for tab in tabs.get_children(): tab.hide() if tab is VBoxContainer else null 105 | tabs.get_node(item.get_text(0)).show() 106 | 107 | func _on_timeout(): 108 | request_notifications() 109 | 110 | func request_notifications() -> void: 111 | if not PluginSettings.auto_update_notifications: return 112 | if UserData.USER == {} : return 113 | get_parent().print_debug_message("loading notifications, please wait...") 114 | emit_signal("add_notifications",-get_parent().Header.notifications) 115 | RestHandler.request_invitations_list() 116 | 117 | func _on_invitations_list_requested(invitations_list : Array) -> void: 118 | if invitations_list.size(): 119 | emit_signal("add_notifications", invitations_list.size()) 120 | _on_load_invitations_list(invitations_list) 121 | 122 | var invitations : int 123 | 124 | func _on_load_invitations_list(invitations_list : Array) -> void: 125 | clear_invitations_list() 126 | invitations = invitations_list.size() 127 | for invitation in invitations_list: 128 | var invitation_item : InvitationItem = invitation_item_scene.instance() 129 | invitations_list_box.add_child(invitation_item) 130 | invitation_item.load_invitation(invitation) 131 | invitation_item.connect("set_to_load_next", self, "set_to_load_next") 132 | invitation_item.connect("add_notifications", get_parent().Header, "_on_add_notifications") 133 | invitation_item.connect("invitation_accepted", self, "_on_invitation_accepted") 134 | invitation_item.connect("invitation_declined", self, "_on_invitation_declined") 135 | set_invitations_amount(invitations_list.size()) 136 | 137 | func _on_auto_update_toggled(toggled : bool): 138 | set_auto_update(toggled) 139 | get_parent().print_debug_message("auto update for notifications: %s" % ["enabled" if toggled else "disabled"]) 140 | 141 | func _on_auto_update_amount_entered(amount_txt : String): 142 | if amount_txt.is_valid_float() or amount_txt.is_valid_integer(): 143 | set_auto_update_timer(float(amount_txt)*60) 144 | get_parent().print_debug_message("auto update timer for notifications set to %s minute(s)" % amount_txt) 145 | 146 | # If the "debug" button is toggled 147 | func _on_debug_toggled(button_pressed : bool) -> void: 148 | PluginSettings.set_debug(button_pressed) 149 | get_parent().print_debug_message("Debug messages in output console: %s" % button_pressed) 150 | 151 | # If the "auto login" button is toggled 152 | func _on_autologin_toggled(button_pressed : bool) -> void: 153 | PluginSettings.set_auto_log(button_pressed) 154 | get_parent().print_debug_message("Auto Login at plugin startup: %s" % button_pressed) 155 | 156 | func _on_darkmode_toggled(toggled : bool): 157 | get_parent().print_debug_message("Darkmode set to %s" % toggled) 158 | get_parent().set_darkmode(toggled) 159 | 160 | func set_auto_update_timer(amount : float): 161 | timer.set_wait_time(amount) 162 | PluginSettings.set_auto_update_timer(amount) 163 | 164 | func set_auto_update(enabled : bool): 165 | timer.start() if enabled else timer.stop() 166 | PluginSettings.set_auto_update_notifications(enabled) 167 | 168 | func clear_invitations_list(): 169 | invitations = 0 170 | for invitation in invitations_list_box.get_children(): invitation.free() if not invitation is Label else null 171 | set_invitations_amount(0) 172 | 173 | func set_invitations_amount(amount : int): 174 | tabs.get_node("Invitations/Label").set_text("There are %s invitations received"%amount) 175 | 176 | func set_to_load_next(to_load : bool): 177 | to_load_next = to_load 178 | 179 | func _on_invitation_accepted(): 180 | invitations-=1 181 | set_invitations_amount(invitations) 182 | 183 | func _on_invitation_declined(): 184 | invitations-=1 185 | set_invitations_amount(invitations) 186 | 187 | func _on_reset_plugin_pressed(): 188 | $ResetPluginDialog.popup() 189 | 190 | func _clear(): 191 | emit_signal("add_notifications",-get_parent().Header.notifications) 192 | clear_invitations_list() 193 | 194 | func _on_reset_confirmed(): 195 | _clear() 196 | hide() 197 | get_parent().logout() 198 | get_parent().SignIn.delete_user() 199 | PluginSettings.reset_plugin() 200 | 201 | func _on_owner_check_pressed(toggled : bool): 202 | if toggled: 203 | if not "OWNER" in PluginSettings.owner_affiliations: 204 | PluginSettings.owner_affiliations.append("OWNER") 205 | else: 206 | if "OWNER" in PluginSettings.owner_affiliations: 207 | PluginSettings.owner_affiliations.erase("OWNER") 208 | PluginSettings.set_owner_affiliations(PluginSettings.owner_affiliations) 209 | get_parent().print_debug_message("repositories setting '%s': %s"%["OWNER",toggled]) 210 | 211 | func _on_collaborator_check_pressed(toggled : bool): 212 | if toggled: 213 | if not ("COLLABORATOR" in PluginSettings.owner_affiliations): 214 | PluginSettings.owner_affiliations.append("COLLABORATOR") 215 | else: 216 | if "COLLABORATOR" in PluginSettings.owner_affiliations: 217 | PluginSettings.owner_affiliations.erase("COLLABORATOR") 218 | PluginSettings.set_owner_affiliations(PluginSettings.owner_affiliations) 219 | get_parent().print_debug_message("repositories setting '%s': %s"%["COLLABORATOR",toggled]) 220 | 221 | func _on_organization_member_check_pressed(toggled : bool): 222 | if toggled: 223 | if not "ORGANIZATION_MEMBER" in PluginSettings.owner_affiliations: 224 | PluginSettings.owner_affiliations.append("ORGANIZATION_MEMBER") 225 | else: 226 | if "ORGANIZATION_MEMBER" in PluginSettings.owner_affiliations: 227 | PluginSettings.owner_affiliations.erase("ORGANIZATION_MEMBER") 228 | PluginSettings.set_owner_affiliations(PluginSettings.owner_affiliations) 229 | get_parent().print_debug_message("repositories setting '%s': %s"%["ORGANIZATION_MEMBER",toggled]) 230 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/PluginSettings.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends Node 3 | 4 | var directory_name = "github_integration" 5 | var plugin_path : String = ProjectSettings.globalize_path("user://").replace("app_userdata/"+ProjectSettings.get_setting('application/config/name')+"/",directory_name)+"/" 6 | 7 | var setting_file : String = "settings.cfg" 8 | 9 | var debug : bool = true 10 | var auto_log : bool = false 11 | var darkmode : bool = false 12 | var auto_update_notifications : bool = true 13 | var auto_update_timer : float = 300 14 | var owner_affiliations : Array = ["OWNER","COLLABORATOR","ORGANIZATION_MEMBER"] 15 | 16 | var _loaded : bool = false 17 | 18 | func _check_plugin_path(): 19 | var dir = Directory.new() 20 | if not dir.dir_exists(plugin_path): 21 | dir.make_dir(plugin_path) 22 | if debug: 23 | printerr("[GitHub Integration] >> ","made custom directory in user folder, it is placed at ", plugin_path) 24 | 25 | func _ready(): 26 | _check_plugin_path() 27 | var config_file : ConfigFile = ConfigFile.new() 28 | var err = config_file.load(plugin_path+setting_file) 29 | if err == 0: 30 | debug = config_file.get_value("settings","debug", debug) 31 | auto_log = config_file.get_value("settings","auto_log", auto_log) 32 | darkmode = config_file.get_value("settings","darkmode", darkmode) 33 | auto_update_notifications = config_file.get_value("settings","auto_update_notifications", auto_update_notifications) 34 | auto_update_timer = config_file.get_value("settings","auto_update_timer",auto_update_timer) 35 | owner_affiliations = config_file.get_value("settings", "owner_affiliations", owner_affiliations) 36 | else: 37 | config_file.save(plugin_path+setting_file) 38 | config_file.set_value("settings","debug",debug) 39 | config_file.set_value("settings","auto_log",auto_log) 40 | config_file.set_value("settings","darkmode",darkmode) 41 | config_file.set_value("settings","auto_update_notifications", auto_update_notifications) 42 | config_file.set_value("settings","auto_update_timer",auto_update_timer) 43 | config_file.set_value("settings","owner_affiliations",owner_affiliations) 44 | config_file.save(plugin_path+setting_file) 45 | _loaded = true 46 | 47 | func set_debug(d : bool): 48 | debug = d 49 | save_setting("debug", debug) 50 | 51 | func set_auto_log(a : bool): 52 | auto_log = a 53 | save_setting("auto_log", auto_log) 54 | 55 | func set_darkmode(d : bool): 56 | darkmode = d 57 | save_setting("darkmode", darkmode) 58 | 59 | func set_auto_update_notifications(enabled : bool): 60 | auto_update_notifications = enabled 61 | save_setting("auto_update_notifications", enabled) 62 | 63 | func set_auto_update_timer(timer : float): 64 | auto_update_timer = timer 65 | save_setting("auto_update_timer", timer) 66 | 67 | func set_owner_affiliations(affiliations : Array): 68 | owner_affiliations = affiliations 69 | save_setting("owner_affiliations", owner_affiliations) 70 | 71 | func save_setting(key : String, value): 72 | _check_plugin_path() 73 | var file : ConfigFile = ConfigFile.new() 74 | var err = file.load(plugin_path+setting_file) 75 | if err == OK: 76 | file.set_value("settings",key,value) 77 | file.save(plugin_path+setting_file) 78 | 79 | func get_setting(key : String, default_value = ""): 80 | _check_plugin_path() 81 | var file : ConfigFile = ConfigFile.new() 82 | var err = file.load(plugin_path+setting_file) 83 | if err == OK: 84 | if file.has_section_key("settings","key"): 85 | return file.get_value("settings","key") 86 | else: 87 | print("setting '%s' not found, now created" % key) 88 | file.set_value("settings", key, default_value) 89 | 90 | func reset_plugin(): 91 | delete_all_files(plugin_path) 92 | print("[Github Integration] github_integration folder completely removed.") 93 | 94 | func delete_all_files(path : String): 95 | var directories = [] 96 | var dir : Directory = Directory.new() 97 | dir.open(path) 98 | dir.list_dir_begin(true,false) 99 | var file = dir.get_next() 100 | while (file != ""): 101 | if dir.current_is_dir(): 102 | var directorypath = dir.get_current_dir()+"/"+file 103 | directories.append(directorypath) 104 | else: 105 | var filepath = dir.get_current_dir()+"/"+file 106 | dir.remove(filepath) 107 | 108 | file = dir.get_next() 109 | 110 | dir.list_dir_end() 111 | 112 | for directory in directories: 113 | delete_all_files(directory) 114 | dir.remove(path) 115 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/Repos.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends Tree 3 | 4 | signal moved(item, to_item, shift) 5 | 6 | 7 | func get_drag_data(position): # begin drag 8 | set_drop_mode_flags(DROP_MODE_INBETWEEN | DROP_MODE_ON_ITEM) 9 | 10 | var preview = Label.new() 11 | preview.text = get_selected().get_text(0) 12 | set_drag_preview(preview) # not necessary 13 | 14 | return get_selected() # TreeItem 15 | 16 | 17 | func can_drop_data(position, data): 18 | return data is TreeItem # you shall not pass! 19 | 20 | 21 | func drop_data(position, item): # end drag 22 | var to_item = get_item_at_position(position) 23 | var shift = get_drop_section_at_position(position) 24 | # shift == 0 if dropping on item, -1, +1 if in between 25 | 26 | emit_signal('moved', item, to_item, shift) 27 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/RepositoryItem.gd: -------------------------------------------------------------------------------- 1 | tool 2 | class_name RepositoryItem 3 | extends PanelContainer 4 | 5 | 6 | signal repo_selected(repo) 7 | signal repo_clicked(repo) 8 | 9 | onready var Name = $Repository/Name 10 | onready var Stars = $Repository/Stars 11 | onready var Forks = $Repository/Forks 12 | onready var Collaborator = $Repository/Name/Collaborator 13 | onready var BG = $BG 14 | 15 | var _name : String 16 | var _stars : int 17 | var _forks : int 18 | var _metadata : Dictionary 19 | var _repository : Dictionary 20 | 21 | func _ready(): 22 | Stars.get_node("Icon").set_texture(IconLoaderGithub.load_icon_from_name("stars")) 23 | Forks.get_node("Icon").set_texture(IconLoaderGithub.load_icon_from_name("forks")) 24 | 25 | func set_repository(repository : Dictionary, current_project : bool = false): 26 | _repository = repository 27 | _name = str(repository.name) 28 | name = _name 29 | _stars = repository.stargazerCount 30 | _forks = repository.forkCount 31 | 32 | # Check collaboration 33 | var is_collaborator : bool = repository.owner.login != UserData.USER.login 34 | 35 | Name.get_node("Text").set_text(_name) 36 | Stars.get_node("Amount").set_text("Stars: "+str(_stars)) 37 | Forks.get_node("Amount").set_text("Forks: "+str(_forks)) 38 | 39 | var repo_icon : ImageTexture 40 | if repository.isPrivate: 41 | repo_icon = IconLoaderGithub.load_icon_from_name("lock") 42 | Name.get_node("Icon").set_tooltip("Private") 43 | else: 44 | repo_icon = IconLoaderGithub.load_icon_from_name("repos") 45 | Name.get_node("Icon").set_tooltip("Public") 46 | if repository.isFork: 47 | repo_icon = IconLoaderGithub.load_icon_from_name("forks") 48 | Name.get_node("Icon").set_tooltip("Forked") 49 | if is_collaborator: 50 | Collaborator.texture = IconLoaderGithub.load_icon_from_name("collaboration") 51 | Collaborator.set_tooltip("Collaboration") 52 | if repository.isInOrganization: 53 | Collaborator.texture = IconLoaderGithub.load_icon_from_name("organization") 54 | Collaborator.set_tooltip("Organization") 55 | Name.get_node("Icon").set_texture(repo_icon) 56 | 57 | if current_project: 58 | pass 59 | 60 | func deselect(): 61 | BG.hide() 62 | 63 | func _on_RepositoryItem_gui_input(event): 64 | if event is InputEventMouseButton: 65 | if event.is_pressed() and event.button_index == 1: 66 | BG.show() 67 | emit_signal("repo_clicked", self) 68 | if event.doubleclick: 69 | emit_signal("repo_selected", self) 70 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/SignIn.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends Control 3 | 4 | signal signed() 5 | 6 | onready var Mail : LineEdit = $FieldContainer/signin_panel/Mail 7 | onready var Token : LineEdit = $FieldContainer/signin_panel/Password 8 | onready var Error : Label = $FieldContainer/signin_panel/error 9 | onready var LogfileIcon : Label = $FieldContainer/signin_panel/HBoxContainer3/logfile 10 | onready var btnSignIn : Button = $FieldContainer/signin_panel/HBoxContainer3/btnSignIn 11 | onready var btnCreateToken : LinkButton = $FieldContainer/signin_panel/Token/btnCreateToken 12 | onready var DeleteDataBtn : Button = $FieldContainer/signin_panel/DeleteDataBtn 13 | onready var DeletePopup : ConfirmationDialog = $DeletePopup 14 | onready var DeleteHover : ColorRect = $DeleteHover 15 | 16 | var mail : String 17 | var token : String 18 | var auth : String 19 | enum REQUESTS { LOGIN = 0, AVATAR = 1, END = -1 , USER = 2 } 20 | var requesting : int 21 | var user_data : Dictionary 22 | 23 | var logfile : bool = false 24 | 25 | onready var Client : HTTPClient = HTTPClient.new() 26 | 27 | var userdata : bool = false 28 | 29 | func connect_signals() -> void: 30 | Mail.connect("text_changed", self, "_on_mail_changed") 31 | Token.connect("text_changed", self, "_on_token_changed") 32 | 33 | btnSignIn.connect("pressed",self,"sign_in") 34 | btnCreateToken.connect("pressed",self,"create_token") 35 | 36 | DeleteDataBtn.connect("pressed",self,"_on_delete_pressed") 37 | DeletePopup.connect("confirmed",self,"_on_delete_confirm") 38 | DeletePopup.connect("popup_hide", self, "close_popup") 39 | 40 | # Connections to the RestHandler 41 | RestHandler.connect("request_failed", self, "_on_request_failed") 42 | RestHandler.connect("user_requested", self, "_on_user_requested") 43 | RestHandler.connect("user_avatar_requested", self, "_on_user_avatar_requested") 44 | 45 | func _ready() -> void: 46 | connect_signals() 47 | LogfileIcon.hide() 48 | Error.hide() 49 | 50 | DeleteDataBtn.set_disabled(true) 51 | 52 | yield(get_tree(),"idle_frame") 53 | check_user() 54 | 55 | func _on_userdata_ready(): 56 | userdata = true 57 | 58 | func check_user(): 59 | if UserData.user_exists(): 60 | logfile = true 61 | LogfileIcon.show() 62 | DeleteDataBtn.disabled = false 63 | Mail.text = "" 64 | _on_mail_changed(Mail.text) 65 | Token.text = "" 66 | _on_token_changed(Token.text) 67 | get_parent().print_debug_message("user data found, just sign in without using your credentials.") 68 | btnSignIn.set_disabled(false) 69 | 70 | func set_darkmode(darkmode : bool) -> void: 71 | if darkmode: 72 | $BG.color = "#24292e" 73 | set_theme(load("res://addons/github-integration/resources/themes/GitHubTheme-Dark.tres")) 74 | else: 75 | $BG.color = "#f6f8fa" 76 | set_theme(load("res://addons/github-integration/resources/themes/GitHubTheme.tres")) 77 | 78 | func create_token() -> void: 79 | OS.shell_open("https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line") 80 | 81 | func sign_in() -> void: 82 | get_parent().print_debug_message("logging in...") 83 | 84 | if !logfile: 85 | # If there isn't a logfile inside user's folder 86 | mail = Mail.text 87 | token = Token.text 88 | if mail!="" and token!="": 89 | get_parent().loading(true) 90 | auth = Marshalls.utf8_to_base64(mail+":"+token) 91 | RestHandler.request_user(token) 92 | else: 93 | get_parent().print_debug_message("Bad credentials - you need to insert your e-mail and token.", 1) 94 | else: 95 | # If there is a logfile 96 | get_parent().loading(true) 97 | UserData.load_user() 98 | emit_signal("signed") 99 | 100 | func _on_completed_loading(): 101 | get_parent().loading(false) 102 | hide() 103 | 104 | func _on_request_failed(request_code : int, error_body : Dictionary) -> void: 105 | match request_code: 106 | RestHandler.REQUESTS.USER: 107 | set_process(false) 108 | get_parent().loading(true) 109 | Error.show() 110 | Error.text = "Error: "+str(error_body.message) 111 | get_parent().print_debug_message("Bad credentials - incorrect username or token.",1) 112 | get_parent().loading(false) 113 | 114 | func _on_user_requested(user : Dictionary) -> void: 115 | Error.hide() 116 | user_data = user 117 | RestHandler.request_user_avatar(user_data.avatar_url) 118 | 119 | func _on_user_avatar_requested(user_avatar : PoolByteArray) -> void: 120 | get_parent().loading(true) 121 | UserData.save(user_data, user_avatar, auth, token, mail) 122 | emit_signal("signed") 123 | DeleteDataBtn.set_disabled(false) 124 | 125 | func _on_singup_pressed(): 126 | OS.shell_open("https://github.com/join?source=header-home") 127 | 128 | func _on_wiki_pressed(): 129 | OS.shell_open("https://github.com/fenix-hub/godot-engine.github-integration/wiki") 130 | 131 | func _on_delete_pressed(): 132 | DeletePopup.popup() 133 | DeleteHover.show() 134 | 135 | func _on_delete_confirm(): 136 | delete_user() 137 | 138 | func delete_user(): 139 | UserData.delete_user() 140 | logfile = false 141 | LogfileIcon.hide() 142 | DeleteDataBtn.disabled = true 143 | Mail.text = "" 144 | Token.text = "" 145 | 146 | func close_popup() : 147 | DeleteHover.hide() 148 | 149 | func _on_mail_changed(text : String): 150 | if not text in [""," "] and not Token.text in [""," "]: btnSignIn.set_disabled(false) 151 | else: if not logfile: btnSignIn.set_disabled(true) 152 | 153 | func _on_token_changed(text : String): 154 | if not text in [""," "] and not Mail.text in [""," "]: btnSignIn.set_disabled(false) 155 | else: if not logfile: btnSignIn.set_disabled(true) 156 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/WindowDialog.gd: -------------------------------------------------------------------------------- 1 | # ---------------------------------------------- 2 | # ~{ GitHub Integration }~ 3 | # [Author] Nicolò "fenix" Santilio 4 | # [github] fenix-hub/godot-engine.github-integration 5 | # [version] 0.2.9 6 | # [date] 09.13.2019 7 | 8 | 9 | 10 | # ----------------------------------------------- 11 | 12 | tool 13 | extends Control 14 | 15 | 16 | onready var gitignore = $VBoxContainer/HBoxContainer5/gitignore 17 | onready var privacy = $VBoxContainer/HBoxContainer3/privacy 18 | onready var readme = $VBoxContainer/HBoxContainer4/readme 19 | onready var license = $VBoxContainer/HBoxContainer6/license 20 | onready var nome = $VBoxContainer/HBoxContainer/nome 21 | onready var descrizione = $VBoxContainer/HBoxContainer2/descrizione 22 | 23 | enum REQUESTS { REPOS = 0, GISTS = 1, END = -1 } 24 | var requesting 25 | var new_repo = HTTPRequest.new() 26 | var repo_body 27 | 28 | var LICENSES = ["afl-3.0","apache-2.0","artistic-2.0","bsl-1.0","bsd-2-clause","bsd-3-clause","bsd-3-clause-clear","cc","cc0-1.0","cc-by-4.0","cc-by-sa-4.0","wtfpl","ecl-2.0","epl-1.0","eupl-1.1", 29 | "agpl-3.0","gpl","gpl-2.0","gpl-3.0","lgpl","lgpl-2.1","lgpl-3.0","isc","lppl-1.3c","ms-pl","mit","mpl-2.0","osl-3.0","postgresql","ofl-1.1","ncsa","unlicense","zlib"] 30 | 31 | #var GITIGNORE = ["Haskell","Godot"] 32 | 33 | onready var error = $VBoxContainer/error 34 | 35 | func _ready(): 36 | call_deferred("add_child",new_repo) 37 | new_repo.connect("request_completed",self,"request_completed") 38 | gitignore.select(0) 39 | license.select(0) 40 | error.hide() 41 | load_metadata() 42 | 43 | func load_metadata(): 44 | for l in range(0,license.get_item_count()): 45 | license.set_item_metadata(l,LICENSES[l]) 46 | 47 | func request_completed(result, response_code, headers, body ): 48 | if result == 0: 49 | match requesting: 50 | REQUESTS.REPOS: 51 | if response_code == 201: 52 | hide() 53 | get_parent().get_parent().print_debug_message("created new repository...") 54 | get_parent().request_repositories() 55 | elif response_code == 422: 56 | error.text = "Error: "+JSON.parse(body.get_string_from_utf8()).result.errors[0].message 57 | error.show() 58 | REQUESTS.GISTS: 59 | if response_code == 200: 60 | pass 61 | 62 | func load_body() -> Dictionary: 63 | var priv 64 | if privacy.get_selected_id() == 0: 65 | priv = true 66 | else: 67 | priv = false 68 | 69 | var read 70 | if readme.pressed: 71 | read = true 72 | else: 73 | read = false 74 | 75 | var gitignor = gitignore.get_item_text(gitignore.get_selected_id()) 76 | var licens = license.get_item_metadata(license.get_selected_id()) 77 | 78 | repo_body = { 79 | "name": nome.get_text(), 80 | "description": descrizione.get_text(), 81 | "private": priv, 82 | "has_issues": true, 83 | "has_projects": true, 84 | "has_wiki": true, 85 | "auto_init": read, 86 | "gitignore_template": gitignor, 87 | "license_template": licens 88 | } 89 | 90 | return repo_body 91 | 92 | func _on_NewRepo_confirmed(): 93 | get_parent().get_parent().loading(true) 94 | error.hide() 95 | requesting = REQUESTS.REPOS 96 | new_repo.request("https://api.github.com/user/repos",UserData.header,false,HTTPClient.METHOD_POST,JSON.print(load_body())) 97 | 98 | 99 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/github-integration.gd: -------------------------------------------------------------------------------- 1 | # ---------------------------------------------- 2 | # ~{ GitHub Integration }~ 3 | # [Author] Nicolò "fenix" Santilio 4 | # [github] fenix-hub/godot-engine.github-integration 5 | # [version] 0.2.9 6 | # [date] 09.13.2019 7 | 8 | 9 | 10 | 11 | 12 | # ----------------------------------------------- 13 | 14 | tool 15 | extends EditorPlugin 16 | var doc 17 | var IconLoaderGithub = preload("res://addons/github-integration/scripts/IconLoaderGithub.gd").new() 18 | var GitHubDoc 19 | 20 | func _enter_tree(): 21 | self.add_autoload_singleton("PluginSettings","res://addons/github-integration/scripts/PluginSettings.gd") 22 | self.add_autoload_singleton("IconLoaderGithub","res://addons/github-integration/scripts/IconLoaderGithub.gd") 23 | self.add_autoload_singleton("UserData","res://addons/github-integration/scripts/user_data.gd") 24 | self.add_autoload_singleton("RestHandler","res://addons/github-integration/scenes/RestHandler.tscn") 25 | doc = load("res://addons/github-integration/scenes/GitHub.tscn") 26 | GitHubDoc = doc.instance() 27 | get_editor_interface().get_editor_viewport().add_child(GitHubDoc) 28 | GitHubDoc.hide() 29 | 30 | 31 | func _exit_tree(): 32 | self.remove_autoload_singleton("PluginSettings") 33 | self.remove_autoload_singleton("IconLoaderGithub") 34 | self.remove_autoload_singleton("RestHandler") 35 | self.remove_autoload_singleton("UserData") 36 | get_editor_interface().get_editor_viewport().remove_child(GitHubDoc) 37 | GitHubDoc.queue_free() 38 | 39 | func has_main_screen(): 40 | return true 41 | 42 | func get_plugin_name(): 43 | return "GitHub" 44 | 45 | func get_plugin_icon(): 46 | return IconLoaderGithub.load_icon_from_name("githubicon") 47 | 48 | func make_visible(visible): 49 | GitHubDoc.visible = visible 50 | 51 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/loading.gd: -------------------------------------------------------------------------------- 1 | tool 2 | extends ColorRect 3 | 4 | # Declare member variables here. Examples: 5 | # var a = 2 6 | # var b = "text" 7 | onready var Progress = $VBoxContainer/ProgressBar 8 | onready var Number = $VBoxContainer/Number 9 | onready var message : Label = $VBoxContainer/Message 10 | # Called when the node enters the scene tree for the first time. 11 | func _ready(): 12 | Progress.hide() 13 | Number.hide() 14 | RestHandler.loading = self 15 | 16 | func _on_loading_visibility_changed(): 17 | if visible: 18 | $VBoxContainer/loading2.show() 19 | $VBoxContainer/loading2.material.set_shader_param("speed",5) 20 | else: 21 | Progress.hide() 22 | Progress.set_value(0) 23 | Number.hide() 24 | Number.set_text("...") 25 | $VBoxContainer/loading2.material.set_shader_param("speed",0) 26 | 27 | func show_progress(value : float , max_value : float): 28 | Progress.show() 29 | Progress.set_value(range_lerp(value,0,max_value,0,100)) 30 | 31 | func hide_progress(): 32 | Progress.hide() 33 | 34 | func show_number(value : float , ref_value : float, type : String): 35 | Number.show() 36 | Number.set_text(str(value)+" "+type+" downloaded (of ~"+str(ref_value)+" "+type+")") 37 | 38 | func hide_number(): 39 | Number.hide() 40 | -------------------------------------------------------------------------------- /addons/github-integration/scripts/user_data.gd: -------------------------------------------------------------------------------- 1 | # ---------------------------------------------- 2 | # ~{ GitHub Integration }~ 3 | # [Author] Nicolò "fenix" Santilio 4 | # [github] fenix-hub/godot-engine.github-integration 5 | # [version] 0.2.9 6 | # [date] 09.13.2019 7 | 8 | 9 | 10 | 11 | 12 | # ----------------------------------------------- 13 | 14 | tool 15 | extends Node 16 | 17 | # saves and loads user datas from custom folder in user://github_integration/user_data.ud 18 | 19 | var directory : String = "" 20 | var file_name : String = "user_data.ud" 21 | var avatar_name : String = "avatar" 22 | 23 | var USER : Dictionary = {} 24 | 25 | # --- on the USER usage 26 | # login = username 27 | # avatar 28 | # id 29 | 30 | var AVATAR : ImageTexture 31 | var AUTH : String 32 | var TOKEN : String 33 | var MAIL : String 34 | 35 | var header : Array = [""] 36 | var gitlfs_header : Array = [""] 37 | var gitlfs_request : String = ".git/info/lfs/objects/batch" 38 | 39 | var plugin_version : String = "0.9.4" 40 | 41 | func _ready(): 42 | directory = PluginSettings.plugin_path 43 | 44 | func user_exists(): 45 | var file : File = File.new() 46 | return (true if file.file_exists(directory+file_name) else false) 47 | 48 | func save(user : Dictionary, avatar : PoolByteArray, auth : String, token : String, mail : String) -> void: 49 | var file = File.new() 50 | 51 | if user!=null: 52 | var err = file.open_encrypted_with_pass(directory+file_name,File.WRITE,OS.get_unique_id()) 53 | USER = user 54 | AUTH = auth 55 | TOKEN = token 56 | MAIL = mail 57 | var formatting : PoolStringArray 58 | formatting.append(auth) #0 59 | formatting.append(mail) #1 60 | formatting.append(token) #2 61 | formatting.append(JSON.print(user)) #3 62 | formatting.append(plugin_version) #4 63 | file.store_csv_line(formatting) 64 | file.close() 65 | if PluginSettings.debug: 66 | print("[GitHub Integration] >> ","saved user datas in user folder") 67 | 68 | 69 | save_avatar(avatar) 70 | 71 | header = ["Authorization: Token "+token] 72 | 73 | func save_avatar(avatar : PoolByteArray): 74 | var file : File = File.new() 75 | if avatar == null: 76 | return 77 | var image : Image = Image.new() 78 | var extension : String = avatar.subarray(0,1).hex_encode() 79 | match extension: 80 | "ffd8": 81 | image.load_jpg_from_buffer(avatar) 82 | file.open(directory+avatar_name+".jpg", File.WRITE) 83 | file.store_buffer(avatar) 84 | "8950": 85 | image.load_png_from_buffer(avatar) 86 | image.save_png(directory+avatar_name+".png") 87 | # file.open(directory+avatar_name+".png", File.WRITE) 88 | file.close() 89 | load_avatar() 90 | 91 | func load_avatar(): 92 | var file : File = File.new() 93 | var av : Image = Image.new() 94 | var img_text : ImageTexture = ImageTexture.new() 95 | if file.file_exists(directory+avatar_name+".png"): 96 | av.load(directory+avatar_name+".png") 97 | img_text.create_from_image(av) 98 | AVATAR = img_text 99 | elif file.file_exists(directory+avatar_name+".jpg"): 100 | av.load(directory+avatar_name+".jpg") 101 | img_text.create_from_image(av) 102 | AVATAR = img_text 103 | else: 104 | AVATAR = null 105 | 106 | func load_user() -> PoolStringArray : 107 | var file = File.new() 108 | var content : PoolStringArray 109 | 110 | if PluginSettings.debug: 111 | print("[GitHub Integration] >> loading user profile, checking for existing logfile...") 112 | 113 | if file.file_exists(directory+file_name) : 114 | if PluginSettings.debug: 115 | print("[GitHub Integration] >> ","logfile found, fetching datas..") 116 | file.open_encrypted_with_pass(directory+file_name,File.READ,OS.get_unique_id()) 117 | content = file.get_csv_line() 118 | if content.size() < 5: 119 | if PluginSettings.debug: 120 | printerr("[GitHub Integration] >> ","this log file belongs to an older version of this plugin and will not support the mail/password login deprecation, so it will be deleted. Please, insert your credentials again.") 121 | file.close() 122 | var dir = Directory.new() 123 | dir.remove(directory+file_name) 124 | content = [] 125 | return content 126 | 127 | AUTH = content[0] 128 | MAIL = content[1] 129 | TOKEN = content[2] 130 | USER = JSON.parse(content[3]).result 131 | load_avatar() 132 | 133 | header = ["Authorization: Token "+TOKEN] 134 | gitlfs_header = [ 135 | "Accept: application/vnd.github.v3+json", 136 | "Accept: application/vnd.git-lfs+json", 137 | "Content-Type: application/vnd.git-lfs+json"] 138 | gitlfs_header.append(header[0]) 139 | else: 140 | if PluginSettings.debug: 141 | printerr("[GitHub Integration] >> ","no logfile found, log in for the first time to create a logfile.") 142 | 143 | return content 144 | 145 | func logout_user(): 146 | AUTH = "null" 147 | MAIL = "null" 148 | TOKEN = "null" 149 | USER = {} 150 | AVATAR = null 151 | header = [] 152 | 153 | func delete_user(): 154 | var dir : Directory = Directory.new() 155 | dir.open(directory) 156 | dir.remove(directory+file_name) 157 | dir.remove(directory+avatar_name) 158 | --------------------------------------------------------------------------------